diff --git a/base/modules/psb_desc_mod.F90 b/base/modules/psb_desc_mod.F90 index 69170102..3bb6b829 100644 --- a/base/modules/psb_desc_mod.F90 +++ b/base/modules/psb_desc_mod.F90 @@ -231,6 +231,7 @@ module psb_desc_mod procedure, pass(desc) :: get_local_cols => psb_cd_get_local_cols procedure, pass(desc) :: get_global_rows => psb_cd_get_global_rows procedure, pass(desc) :: get_global_cols => psb_cd_get_global_cols + procedure, pass(desc) :: get_global_indices => psb_cd_get_global_indices procedure, pass(desc) :: a_get_list => psb_cd_get_list procedure, pass(desc) :: v_get_list => psb_cd_v_get_list generic, public :: get_list => a_get_list, v_get_list @@ -497,6 +498,40 @@ contains end function psb_cd_get_global_cols + function psb_cd_get_global_indices(desc,owned) result(val) + implicit none + integer(psb_ipk_), allocatable :: val(:) + class(psb_desc_type), intent(in) :: desc + logical, intent(in), optional :: owned + + logical :: owned_ + integer(psb_ipk_) :: i, nr, info + + owned_=.true. + if (present(owned)) owned_=owned + + + if (allocated(desc%indxmap)) then + if (owned_) then + nr = desc%get_local_rows() + else + nr = desc%get_local_cols() + end if + nr = max(nr,0) + allocate(val(nr)) + do i=1, nr + val(i) = i + end do + call desc%l2gip(val,info,owned=owned_) + else + allocate(val(0)) + endif + + end function psb_cd_get_global_indices + + + + function cd_get_fmt(desc) result(val) implicit none character(len=5) :: val diff --git a/docs/html/footnode.html b/docs/html/footnode.html index 3759b3f9..0e55d7ce 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 0079f0dd..50ce2fc9 100644
Binary files a/docs/html/img100.png and b/docs/html/img100.png differ
diff --git a/docs/html/img101.png b/docs/html/img101.png
index c75f817b..985ac48f 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 f6a5345a..503b1ab6 100644
Binary files a/docs/html/img102.png and b/docs/html/img102.png differ
diff --git a/docs/html/img103.png b/docs/html/img103.png
index a44fda45..2f53c222 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 154e1ae1..b83a8d66 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 c6ccf1f8..6a6e2e7a 100644
Binary files a/docs/html/img105.png and b/docs/html/img105.png differ
diff --git a/docs/html/img106.png b/docs/html/img106.png
index 04ec0bc9..05d4f74a 100644
Binary files a/docs/html/img106.png and b/docs/html/img106.png differ
diff --git a/docs/html/img107.png b/docs/html/img107.png
index b954c0b5..de35d7fa 100644
Binary files a/docs/html/img107.png and b/docs/html/img107.png differ
diff --git a/docs/html/img108.png b/docs/html/img108.png
index 1015f11a..d974a444 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 41f0d840..92823e6a 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 4d7a3454..c352f896 100644
Binary files a/docs/html/img110.png and b/docs/html/img110.png differ
diff --git a/docs/html/img111.png b/docs/html/img111.png
index 6e24d57c..f21abed1 100644
Binary files a/docs/html/img111.png and b/docs/html/img111.png differ
diff --git a/docs/html/img112.png b/docs/html/img112.png
index 3429fd92..60d8dfe1 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 cb96fe7f..0f14d830 100644
Binary files a/docs/html/img113.png and b/docs/html/img113.png differ
diff --git a/docs/html/img114.png b/docs/html/img114.png
index 54801413..ffb003b8 100644
Binary files a/docs/html/img114.png and b/docs/html/img114.png differ
diff --git a/docs/html/img115.png b/docs/html/img115.png
index c37fb377..04caf6e5 100644
Binary files a/docs/html/img115.png and b/docs/html/img115.png differ
diff --git a/docs/html/img116.png b/docs/html/img116.png
index 4ad33e56..47f71ed5 100644
Binary files a/docs/html/img116.png and b/docs/html/img116.png differ
diff --git a/docs/html/img117.png b/docs/html/img117.png
index c37ce6dd..5cfc2662 100644
Binary files a/docs/html/img117.png and b/docs/html/img117.png differ
diff --git a/docs/html/img118.png b/docs/html/img118.png
index 69215c61..988e80e2 100644
Binary files a/docs/html/img118.png and b/docs/html/img118.png differ
diff --git a/docs/html/img119.png b/docs/html/img119.png
index 1ba043fe..34390973 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 db88f2a2..be0d5a7d 100644
Binary files a/docs/html/img120.png and b/docs/html/img120.png differ
diff --git a/docs/html/img121.png b/docs/html/img121.png
index 899aed9a..101ad4d6 100644
Binary files a/docs/html/img121.png and b/docs/html/img121.png differ
diff --git a/docs/html/img122.png b/docs/html/img122.png
index 0df5312e..a8d143ed 100644
Binary files a/docs/html/img122.png and b/docs/html/img122.png differ
diff --git a/docs/html/img123.png b/docs/html/img123.png
index 5a4d8813..faeee6e4 100644
Binary files a/docs/html/img123.png and b/docs/html/img123.png differ
diff --git a/docs/html/img124.png b/docs/html/img124.png
index f76a56d0..18112b72 100644
Binary files a/docs/html/img124.png and b/docs/html/img124.png differ
diff --git a/docs/html/img125.png b/docs/html/img125.png
index 542fa178..f51cb667 100644
Binary files a/docs/html/img125.png and b/docs/html/img125.png differ
diff --git a/docs/html/img126.png b/docs/html/img126.png
index 1e0359c3..83d7a517 100644
Binary files a/docs/html/img126.png and b/docs/html/img126.png differ
diff --git a/docs/html/img127.png b/docs/html/img127.png
index fb0711bb..4a97c54d 100644
Binary files a/docs/html/img127.png and b/docs/html/img127.png differ
diff --git a/docs/html/img128.png b/docs/html/img128.png
index 6ffb8caa..51862530 100644
Binary files a/docs/html/img128.png and b/docs/html/img128.png differ
diff --git a/docs/html/img129.png b/docs/html/img129.png
index 9e76e5c7..d677cf77 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 3c2f35d4..77dcbe5b 100644
Binary files a/docs/html/img130.png and b/docs/html/img130.png differ
diff --git a/docs/html/img131.png b/docs/html/img131.png
index dc16bb5b..2dc97d67 100644
Binary files a/docs/html/img131.png and b/docs/html/img131.png differ
diff --git a/docs/html/img132.png b/docs/html/img132.png
index 16fbe1b7..5976bb15 100644
Binary files a/docs/html/img132.png and b/docs/html/img132.png differ
diff --git a/docs/html/img133.png b/docs/html/img133.png
index f2318bce..69a41dd7 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 74ab3af1..fad10afc 100644
Binary files a/docs/html/img134.png and b/docs/html/img134.png differ
diff --git a/docs/html/img135.png b/docs/html/img135.png
index 35b42919..865798ac 100644
Binary files a/docs/html/img135.png and b/docs/html/img135.png differ
diff --git a/docs/html/img136.png b/docs/html/img136.png
index d2000c19..0417d2c4 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 8bd13e4d..f5338df3 100644
Binary files a/docs/html/img137.png and b/docs/html/img137.png differ
diff --git a/docs/html/img138.png b/docs/html/img138.png
index 8e169ee0..0401ba94 100644
Binary files a/docs/html/img138.png and b/docs/html/img138.png differ
diff --git a/docs/html/img139.png b/docs/html/img139.png
index 0a3ba10e..bb8f30e9 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 bd704217..ccc43d90 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 c233c5ac..e69de29b 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 e69de29b..10db9042 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 859f5eaa..e69de29b 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 e69de29b..8960f51e 100644
Binary files a/docs/html/img144.png and b/docs/html/img144.png differ
diff --git a/docs/html/img145.png b/docs/html/img145.png
index af8b3c65..39bf0cf5 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 c44d39c8..aeaea35d 100644
Binary files a/docs/html/img146.png and b/docs/html/img146.png differ
diff --git a/docs/html/img147.png b/docs/html/img147.png
index 95a5527c..338166ee 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 1bd1c8a0..c6deb42b 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 8c81a050..6a3212cc 100644
Binary files a/docs/html/img149.png and b/docs/html/img149.png differ
diff --git a/docs/html/img150.png b/docs/html/img150.png
index 9c94fe5a..ed9fceca 100644
Binary files a/docs/html/img150.png and b/docs/html/img150.png differ
diff --git a/docs/html/img151.png b/docs/html/img151.png
index e54621cf..7844a986 100644
Binary files a/docs/html/img151.png and b/docs/html/img151.png differ
diff --git a/docs/html/img152.png b/docs/html/img152.png
index 7844a986..35e0dbf1 100644
Binary files a/docs/html/img152.png and b/docs/html/img152.png differ
diff --git a/docs/html/img153.png b/docs/html/img153.png
index 8563ecf1..80a5fde7 100644
Binary files a/docs/html/img153.png and b/docs/html/img153.png differ
diff --git a/docs/html/img154.png b/docs/html/img154.png
index fb3abe02..4713133c 100644
Binary files a/docs/html/img154.png and b/docs/html/img154.png differ
diff --git a/docs/html/img155.png b/docs/html/img155.png
index 4713133c..0603223e 100644
Binary files a/docs/html/img155.png and b/docs/html/img155.png differ
diff --git a/docs/html/img156.png b/docs/html/img156.png
index 0603223e..0b4b6c1c 100644
Binary files a/docs/html/img156.png and b/docs/html/img156.png differ
diff --git a/docs/html/img157.png b/docs/html/img157.png
index 0b4b6c1c..f7f0a499 100644
Binary files a/docs/html/img157.png and b/docs/html/img157.png differ
diff --git a/docs/html/img158.png b/docs/html/img158.png
index f7f0a499..41e972b9 100644
Binary files a/docs/html/img158.png and b/docs/html/img158.png differ
diff --git a/docs/html/img159.png b/docs/html/img159.png
index 41e972b9..ac96f44d 100644
Binary files a/docs/html/img159.png and b/docs/html/img159.png differ
diff --git a/docs/html/img160.png b/docs/html/img160.png
index ac96f44d..14e162a3 100644
Binary files a/docs/html/img160.png and b/docs/html/img160.png differ
diff --git a/docs/html/img161.png b/docs/html/img161.png
index 14e162a3..0e2bf7fa 100644
Binary files a/docs/html/img161.png and b/docs/html/img161.png differ
diff --git a/docs/html/img162.png b/docs/html/img162.png
index 0e2bf7fa..09d1d796 100644
Binary files a/docs/html/img162.png and b/docs/html/img162.png differ
diff --git a/docs/html/img163.png b/docs/html/img163.png
index 09d1d796..41988bf5 100644
Binary files a/docs/html/img163.png and b/docs/html/img163.png differ
diff --git a/docs/html/img164.png b/docs/html/img164.png
index 41988bf5..159bf1eb 100644
Binary files a/docs/html/img164.png and b/docs/html/img164.png differ
diff --git a/docs/html/img165.png b/docs/html/img165.png
index 7e245b76..51cfc1ee 100644
Binary files a/docs/html/img165.png and b/docs/html/img165.png differ
diff --git a/docs/html/img20.png b/docs/html/img20.png
index 551925d4..9f8a50df 100644
Binary files a/docs/html/img20.png and b/docs/html/img20.png differ
diff --git a/docs/html/img25.png b/docs/html/img25.png
index 9c151e35..00aba8b7 100644
Binary files a/docs/html/img25.png and b/docs/html/img25.png differ
diff --git a/docs/html/img28.png b/docs/html/img28.png
index c654886a..0cafba56 100644
Binary files a/docs/html/img28.png and b/docs/html/img28.png differ
diff --git a/docs/html/img29.png b/docs/html/img29.png
index 1cde3351..e341cc95 100644
Binary files a/docs/html/img29.png and b/docs/html/img29.png differ
diff --git a/docs/html/img33.png b/docs/html/img33.png
index e1f69edd..fb967761 100644
Binary files a/docs/html/img33.png and b/docs/html/img33.png differ
diff --git a/docs/html/img34.png b/docs/html/img34.png
index 8ac8e75b..ef5546ea 100644
Binary files a/docs/html/img34.png and b/docs/html/img34.png differ
diff --git a/docs/html/img38.png b/docs/html/img38.png
index 00dbf7e6..e1a29cbd 100644
Binary files a/docs/html/img38.png and b/docs/html/img38.png differ
diff --git a/docs/html/img39.png b/docs/html/img39.png
index 05b47478..262d8531 100644
Binary files a/docs/html/img39.png and b/docs/html/img39.png differ
diff --git a/docs/html/img42.png b/docs/html/img42.png
index c3cdee01..11cbaf17 100644
Binary files a/docs/html/img42.png and b/docs/html/img42.png differ
diff --git a/docs/html/img45.png b/docs/html/img45.png
index fb4b7995..cb4b88ad 100644
Binary files a/docs/html/img45.png and b/docs/html/img45.png differ
diff --git a/docs/html/img46.png b/docs/html/img46.png
index 1267e6b3..698eace9 100644
Binary files a/docs/html/img46.png and b/docs/html/img46.png differ
diff --git a/docs/html/img53.png b/docs/html/img53.png
index 4e8a4e16..fcbddcdc 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 b5b74989..98a0daec 100644
Binary files a/docs/html/img54.png and b/docs/html/img54.png differ
diff --git a/docs/html/img55.png b/docs/html/img55.png
index e121e0d8..a7fd3b73 100644
Binary files a/docs/html/img55.png and b/docs/html/img55.png differ
diff --git a/docs/html/img56.png b/docs/html/img56.png
index 62401d3c..593e4cf5 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 e6a5b6cd..6ce9093e 100644
Binary files a/docs/html/img57.png and b/docs/html/img57.png differ
diff --git a/docs/html/img58.png b/docs/html/img58.png
index 6ce9093e..ac65c1ae 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 706e96dc..9eb4538d 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 9b5e36ea..f213c213 100644
Binary files a/docs/html/img60.png and b/docs/html/img60.png differ
diff --git a/docs/html/img61.png b/docs/html/img61.png
index 5c11fa45..d71bd926 100644
Binary files a/docs/html/img61.png and b/docs/html/img61.png differ
diff --git a/docs/html/img62.png b/docs/html/img62.png
index d9049fe7..432763a5 100644
Binary files a/docs/html/img62.png and b/docs/html/img62.png differ
diff --git a/docs/html/img63.png b/docs/html/img63.png
index 5060d61f..bf2c7bbc 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 f7ec8bb7..432763a5 100644
Binary files a/docs/html/img64.png and b/docs/html/img64.png differ
diff --git a/docs/html/img65.png b/docs/html/img65.png
index 5060d61f..0f133fbf 100644
Binary files a/docs/html/img65.png and b/docs/html/img65.png differ
diff --git a/docs/html/img66.png b/docs/html/img66.png
index 51488101..33b41c4d 100644
Binary files a/docs/html/img66.png and b/docs/html/img66.png differ
diff --git a/docs/html/img67.png b/docs/html/img67.png
index 84c02e7b..2068bf5d 100644
Binary files a/docs/html/img67.png and b/docs/html/img67.png differ
diff --git a/docs/html/img68.png b/docs/html/img68.png
index cebf3207..9bc24eca 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 cdb9d212..2202ac74 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 68219adc..5fd95a8c 100644
Binary files a/docs/html/img70.png and b/docs/html/img70.png differ
diff --git a/docs/html/img71.png b/docs/html/img71.png
index 03168677..ab90c16d 100644
Binary files a/docs/html/img71.png and b/docs/html/img71.png differ
diff --git a/docs/html/img72.png b/docs/html/img72.png
index af247ba2..c4b1412a 100644
Binary files a/docs/html/img72.png and b/docs/html/img72.png differ
diff --git a/docs/html/img73.png b/docs/html/img73.png
index 1588dfab..f30e3ea6 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 79d30ef8..b286bba5 100644
Binary files a/docs/html/img74.png and b/docs/html/img74.png differ
diff --git a/docs/html/img75.png b/docs/html/img75.png
index d1056eda..c39ebf4e 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 89778c40..bfd4b177 100644
Binary files a/docs/html/img76.png and b/docs/html/img76.png differ
diff --git a/docs/html/img77.png b/docs/html/img77.png
index b10c809a..c86cc64f 100644
Binary files a/docs/html/img77.png and b/docs/html/img77.png differ
diff --git a/docs/html/img78.png b/docs/html/img78.png
index 0ee708a9..18b5c0a9 100644
Binary files a/docs/html/img78.png and b/docs/html/img78.png differ
diff --git a/docs/html/img79.png b/docs/html/img79.png
index ef89bdfb..249e6086 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 0c79fb58..8bcdb184 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 e0dd7dff..935c456a 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 8e78a50c..3ffa14f5 100644
Binary files a/docs/html/img82.png and b/docs/html/img82.png differ
diff --git a/docs/html/img83.png b/docs/html/img83.png
index 16575795..a4793c56 100644
Binary files a/docs/html/img83.png and b/docs/html/img83.png differ
diff --git a/docs/html/img84.png b/docs/html/img84.png
index ef60bae9..c1e8d746 100644
Binary files a/docs/html/img84.png and b/docs/html/img84.png differ
diff --git a/docs/html/img85.png b/docs/html/img85.png
index a0ddc2dd..37a6ec01 100644
Binary files a/docs/html/img85.png and b/docs/html/img85.png differ
diff --git a/docs/html/img86.png b/docs/html/img86.png
index 79fd2f9f..da9d1a45 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 a0e52b5d..7272efa2 100644
Binary files a/docs/html/img87.png and b/docs/html/img87.png differ
diff --git a/docs/html/img88.png b/docs/html/img88.png
index 84ab80b6..6205fcae 100644
Binary files a/docs/html/img88.png and b/docs/html/img88.png differ
diff --git a/docs/html/img89.png b/docs/html/img89.png
index b060748f..24b0ded1 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 943425a7..d7b63b63 100644
Binary files a/docs/html/img90.png and b/docs/html/img90.png differ
diff --git a/docs/html/img91.png b/docs/html/img91.png
index ae2c4cd8..1a5e9297 100644
Binary files a/docs/html/img91.png and b/docs/html/img91.png differ
diff --git a/docs/html/img92.png b/docs/html/img92.png
index 2abf9ed6..a96b5b14 100644
Binary files a/docs/html/img92.png and b/docs/html/img92.png differ
diff --git a/docs/html/img93.png b/docs/html/img93.png
index 80975054..a16e477b 100644
Binary files a/docs/html/img93.png and b/docs/html/img93.png differ
diff --git a/docs/html/img94.png b/docs/html/img94.png
index 4ffe5949..c7fd4779 100644
Binary files a/docs/html/img94.png and b/docs/html/img94.png differ
diff --git a/docs/html/img95.png b/docs/html/img95.png
index f71e274b..485ba97e 100644
Binary files a/docs/html/img95.png and b/docs/html/img95.png differ
diff --git a/docs/html/img96.png b/docs/html/img96.png
index dc005ccf..108b51d1 100644
Binary files a/docs/html/img96.png and b/docs/html/img96.png differ
diff --git a/docs/html/img97.png b/docs/html/img97.png
index 71d5daf6..6a4aacc6 100644
Binary files a/docs/html/img97.png and b/docs/html/img97.png differ
diff --git a/docs/html/img98.png b/docs/html/img98.png
index 99bf4164..155fcb94 100644
Binary files a/docs/html/img98.png and b/docs/html/img98.png differ
diff --git a/docs/html/img99.png b/docs/html/img99.png
index 2a7871d6..75c942c9 100644
Binary files a/docs/html/img99.png and b/docs/html/img99.png differ
diff --git a/docs/html/index.html b/docs/html/index.html
index 221d7bb7..617a94d1 100644
--- a/docs/html/index.html
+++ b/docs/html/index.html
@@ -59,9 +59,9 @@ University of Rome ``Tor Vergata'', Italy
 


-Software version: 3.2 +Software version: 3.4
-March 31st, 2014. +April 30, 2015.

@@ -106,293 +106,295 @@ March 31st, 2014.
  • get_global_cols -- Get number of global cols
  • get_context -- Get communication context + HREF="node16.html">get_global_indices -- Get vector of global indices
  • Clone -- clone current object + HREF="node17.html">get_context -- Get communication context
  • psb_cd_get_large_threshold -- Get threshold for - index mapping switch + HREF="node18.html">Clone -- clone current object
  • psb_cd_set_large_threshold -- Set threshold for + HREF="node19.html">psb_cd_get_large_threshold -- Get threshold for index mapping switch
  • Named Constants - + HREF="node20.html">psb_cd_set_large_threshold -- Set threshold for + index mapping switch
  • Sparse Matrix class -
      + HREF="node21.html">Named Constants +
  • Sparse Matrix Methods + HREF="node22.html">Sparse Matrix class + + HREF="node39.html">clone -- Clone current object
  • Dense Vector Data Structure -
      + HREF="node40.html">Named Constants +
  • Vector Methods + HREF="node41.html">Dense Vector Data Structure + + HREF="node45.html">get_vect -- Get a copy of the vector contents
  • Preconditioner data structure + HREF="node46.html">clone -- Clone current object -
  • Computational routines -
      + HREF="node47.html">Preconditioner data structure +
    +
  • psb_geaxpby -- General Dense Matrix Sum + HREF="node48.html">Computational routines +
    -
  • Communication routines -
    • psb_halo -- Halo Data Communication + HREF="node62.html">Communication routines +
      -
    • Data management routines -
      • psb_cdall -- Allocates a communication descriptor + HREF="node67.html">Data management routines +
        -
      • Parallel environment routines -
        • psb_init -- Initializes PSBLAS parallel - environment + HREF="node95.html">Parallel environment routines +
          -
        • Error handling
        • Utilities -
            + HREF="node112.html">Error handling
          • hb_read -- Read a sparse matrix from a file in the - Harwell-Boeing format + HREF="node113.html">Utilities +
            -
          • Preconditioner routines -
            • psb_precinit -- Initialize a preconditioner + HREF="node120.html">Preconditioner routines +
              -
            • Iterative Methods -

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

              @@ -53,52 +53,52 @@ Contents

              diff --git a/docs/html/node10.html b/docs/html/node10.html index 0b6c9490..83b32fb0 100644 --- a/docs/html/node10.html +++ b/docs/html/node10.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: Descriptor Methods - Up: Up: Data Structures and Classes - Previous: Previous: Data Structures and Classes -   Contents

              @@ -66,7 +66,7 @@ necessary for implementing the various algorithms of interest to us.

              The data structure itself psb_desc_type can be treated as an opaque object handled via the tools routines of -Sec. 6 or the query routines detailed below; +Sec. 6 or the query routines detailed below; nevertheless we include here a description for the curious reader. @@ -117,7 +117,7 @@ All methods but the last are purely local; the last method potentially requires communication among processes, and thus is a synchronous method. The choice of a specific dynamic type for the index map is made at the time the descriptor is initially allocated, according to -the mode of initialization (see also 6). +the mode of initialization (see also 6).

              The descriptor contents are as follows: @@ -202,7 +202,7 @@ Specified as: an allocatable integer array of rank two. The Fortran 2003 declaration for psb_desc_type structures is as follows: -

              +
              Figure 3: The PSBLAS defined data type that @@ -249,52 +249,54 @@ state, which can take the following values: Subsections
              - next - up - previous - contents
              - Next: Next: Descriptor Methods - Up: Up: Data Structures and Classes - Previous: Previous: Data Structures and Classes -   Contents diff --git a/docs/html/node100.html b/docs/html/node100.html index 28024d62..d33b4687 100644 --- a/docs/html/node100.html +++ b/docs/html/node100.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -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.
              -Returned as: a real(psb_dpk_) variable. +Scope: global. +
              +Type: required. +
              +Intent: in. +
              +Specified as: an integer variable. +
              +
              id
              +
              Identifier of a process in the PSBLAS virtual parallel machine. +
              +Scope: local. +
              +Type: required. +
              +Intent: in. +
              +Specified as: an integer value. +$0 \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/node101.html b/docs/html/node101.html index 42f1576f..8873ac7b 100644 --- a/docs/html/node101.html +++ b/docs/html/node101.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. +
              Function value
              +
              the elapsed time in seconds.
              -Scope: global. -
              -Type: required. -
              -Intent: in. -
              -Specified as: an integer variable. +Returned as: a real(psb_dpk_) variable.
              diff --git a/docs/html/node102.html b/docs/html/node102.html index ceac5fe2..18b9efbd 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_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/node103.html b/docs/html/node103.html index e4528930..5db11be1 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 --> -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/node104.html b/docs/html/node104.html index 9fc5bf20..81d9760f 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_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="img131.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/node105.html b/docs/html/node105.html index 059a5ee2..630cbe99 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 --> -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.
              @@ -111,10 +111,9 @@ Specified as: an integer value $-1<= root <= np-1$, default -1. -
              + WIDTH="165" HEIGHT="30" ALIGN="MIDDLE" BORDER="0" + SRC="img132.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/node106.html b/docs/html/node106.html index 9e182649..78d4fb95 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 --> -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.
              @@ -111,8 +111,8 @@ 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/node107.html b/docs/html/node107.html index a9fd5959..0327b3f5 100644 --- a/docs/html/node107.html +++ b/docs/html/node107.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.
              @@ -111,8 +111,8 @@ 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/node108.html b/docs/html/node108.html index 61eb5fd6..1b08e3f1 100644 --- a/docs/html/node108.html +++ b/docs/html/node108.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.
              @@ -96,8 +96,8 @@ 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.
              @@ -111,8 +111,8 @@ 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/node109.html b/docs/html/node109.html index bfba6e48..95308a2d 100644 --- a/docs/html/node109.html +++ b/docs/html/node109.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="img132.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/node11.html b/docs/html/node11.html index a5c19ce3..bf128cdd 100644 --- a/docs/html/node11.html +++ b/docs/html/node11.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
              - Next: Next: get_local_rows Get - Up: Up: Descriptor data structure - Previous: Previous: Descriptor data structure -   Contents

              diff --git a/docs/html/node110.html b/docs/html/node110.html index 029f7553..151633bb 100644 --- a/docs/html/node110.html +++ b/docs/html/node110.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="img134.png" + ALT="$0<= dst <= np-1$">.
              m
              Number of rows. @@ -110,17 +127,17 @@ 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/node111.html b/docs/html/node111.html index 7b63f510..3f54df29 100644 --- a/docs/html/node111.html +++ b/docs/html/node111.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,325 +18,172 @@ original version by: Nikos Drakos, CBLU, University of Leeds - - - + + - next - + up - previous - contents
              - Next: Utilities - Up: userhtml - Previous: psb_rcv Receive -   Next: Error handling + Up: Parallel environment routines + Previous: psb_snd Send +   Contents

              -

              -Error handling -

              - -

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

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

              - -

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

              +psb_rcv -- Receive data +

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

              - -

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

              -ifstarsubroutinesubroutinepsb_errpushPushes an error code onto the error - stack - -

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

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

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

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

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

              -
              +Specified as: an integer value \begin{lstlisting}
-call psb_error(icontxt)
-\end{lstlisting} -
              - -

              -

              -
              Type:
              -
              Asynchronous. -
              -
              On Entry
              -
              -
              -
              icontxt
              -
              the communication context. + WIDTH="147" HEIGHT="30" ALIGN="MIDDLE" BORDER="0" + SRC="img139.png" + ALT="$0<= src <= np-1$">. +
              +
              m
              +
              Number of rows.
              -Scope: global +Scope: global.
              -Type: optional +Type: Optional.
              Intent: in.
              -Specified as: an integer. +Specified as: an integer value +$0<= m <= size(dat,1)$. +
              +When $dat$ is a rank 2 array, specifies the number of rows to be sent +independently of the leading dimension $size(dat,1)$; must have the +same value on sending and receiving processes.
              -

              -ifstarsubroutinesubroutinepsb_set_errverbositySets the verbosity of error - messages. - -

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

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

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

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

              -

              -
              Type:
              -
              Asynchronous. -
              -
              On Entry
              -
              -
              -
              err_act
              -
              the type of action. -
              -Scope: global -
              -Type: required -
              -Intent: in. -
              -Specified as: an integer. Possible values: psb_act_ret, -psb_act_abort. -
              -
              +
                +
              1. This subroutine implies a synchronization, but only between the + calling process and the source process $src$. +
              2. +


              - next - + up - previous - contents
              - Next: Utilities - Up: userhtml - Previous: psb_rcv Receive -   Next: Error handling + Up: Parallel environment routines + Previous: psb_snd Send +   Contents diff --git a/docs/html/node112.html b/docs/html/node112.html index d484a3a4..a738fe90 100644 --- a/docs/html/node112.html +++ b/docs/html/node112.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -Utilities - +Error handling + @@ -18,77 +18,327 @@ original version by: Nikos Drakos, CBLU, University of Leeds - - + + - next - up - previous - contents
              - Next: hb_read Read - Up: Next: Utilities + Up: userhtml - Previous: Error handling -   Previous: psb_rcv Receive +   Contents

              -

              - -
              -Utilities +

              +Error handling

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

              -


              - -Subsections - - - -

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

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

              + +

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

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

              + +

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

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

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

              +

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

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

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

              +

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

              +ifstarsubroutinesubroutinepsb_set_errverbositySets the verbosity of error + messages. + +

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

              +

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

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

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

              +

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

              +


              + + +next + +up + +previous + +contents +
              + Next: Utilities + Up: userhtml + Previous: psb_rcv Receive +   Contents + diff --git a/docs/html/node113.html b/docs/html/node113.html index 493ba990..5d97b674 100644 --- a/docs/html/node113.html +++ b/docs/html/node113.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,144 +18,77 @@ 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: Error handling +   Contents

              -

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

              - -

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

              +
              +Utilities +

              -

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

              -

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

              + +Subsections -

              -


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

              diff --git a/docs/html/node114.html b/docs/html/node114.html index 69c87ace..9ab08186 100644 --- a/docs/html/node114.html +++ b/docs/html/node114.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,49 +20,49 @@ 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


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

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

              +

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

              -

              -
              On Return
              -
              +A charachter variable of length 72 holding a copy of the +matrix title as specified by the Harwell-Boeing format and contained +in the input file.
              iret
              Error code. @@ -143,26 +134,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/node115.html b/docs/html/node115.html index ae926606..d758e086 100644 --- a/docs/html/node115.html +++ b/docs/html/node115.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,49 +20,49 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - next - + up - previous - contents
              - Next: mm_array_read Read - Up: Utilities - Previous: hb_write Write -   Next: mm_mat_read Read + Up: Utilities + Previous: hb_read Read +   Contents

              -

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

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


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

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

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

              -
              a
              -
              the sparse matrix read from file. -
              -Type:required. -
              -Specified as: a structured data of type spdatapsb_Tspmat_type. -
              iret
              Error code.
              @@ -114,7 +141,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/node116.html b/docs/html/node116.html index 03ea5f4e..455b52b1 100644 --- a/docs/html/node116.html +++ b/docs/html/node116.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -mm_array_read -- Read a dense array from a file in the MatrixMarket format - +mm_mat_read -- Read a sparse matrix from a file in the MatrixMarket format + @@ -20,49 +20,49 @@ 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_array_read Read + Up: Utilities + Previous: hb_write Write +   Contents

              -

              -mm_array_read -- Read a dense array from a +

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


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

              -
              b
              -
              Rigth hand side(s). +
              a
              +
              the sparse matrix read from file.
              -Type: required +Type:required.
              -An array of type real or complex, rank 1 or 2 and having the ALLOCATABLE -attribute; will be allocated and filled in if the input file contains -a right hand side, otherwise will be left in the UNALLOCATED state. +Specified as: a structured data of type spdatapsb_Tspmat_type.
              iret
              Error code. diff --git a/docs/html/node117.html b/docs/html/node117.html index ceec6ff1..187170c3 100644 --- a/docs/html/node117.html +++ b/docs/html/node117.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_array_read -- Read a dense array from a file in the MatrixMarket format + @@ -20,51 +20,53 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - next - + up - previous - contents
              - Next: mm_array_write Write - Up: Utilities - Previous: mm_array_read Read -   Next: mm_mat_write Write + Up: Utilities + Previous: mm_mat_read Read +   Contents

              -

              -mm_mat_write -- Write a sparse matrix to a +

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


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

              Type:
              Asynchronous. @@ -72,28 +74,13 @@ call mm_mat_write(a, mtitle, iret, iunit, filename)
              On Entry
              -
              a
              -
              the sparse matrix to be written. -
              -Type:required. -
              -Specified as: a structured data of type spdatapsb_Tspmat_type. -
              -
              mtitle
              -
              Matrix title. -
              -Type: required -
              -A charachter variable holding a descriptive title for the matrix to be - written to file. -
              filename
              -
              The name of the file to be written to. +
              The name of the file to be read.
              Type:optional.
              Specified as: a character variable containing a valid file name, or --, in which case the default output unit 6 (i.e. standard output +-, in which case the default input unit 5 (i.e. standard input in Unix jargon) is used. Default: -.
              iunit
              @@ -110,6 +97,15 @@ Specified as: an integer value. Only meaningful if filename is not -On Return
              +
              b
              +
              Rigth hand side(s). +
              +Type: required +
              +An array of type real or complex, rank 1 or 2 and having the ALLOCATABLE +attribute; will be allocated and filled in if the input file contains +a right hand side, otherwise will be left in the UNALLOCATED state. +
              iret
              Error code.
              diff --git a/docs/html/node118.html b/docs/html/node118.html index 46a55d34..8181c601 100644 --- a/docs/html/node118.html +++ b/docs/html/node118.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -mm_array_write -- Write a dense array from a file in the MatrixMarket format - +mm_mat_write -- Write a sparse matrix to a file in the MatrixMarket format + @@ -18,54 +18,53 @@ original version by: Nikos Drakos, CBLU, University of Leeds + - + - next - + up - previous - contents
              - Next: Preconditioner routines - Up: Utilities - Previous: mm_mat_write Write -   Next: mm_array_write Write + Up: Utilities + Previous: mm_array_read Read +   Contents

              -

              -mm_array_write -- Write a dense array from a +

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


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

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

              filename
              -
              The name of the file to be written. +
              The name of the file to be written to.
              Type:optional.
              Specified as: a character variable containing a valid file name, or --, in which case the default input unit 5 (i.e. standard input +-, in which case the default output unit 6 (i.e. standard output in Unix jargon) is used. Default: -.
              iunit
              diff --git a/docs/html/node119.html b/docs/html/node119.html index 14a76910..576e6b51 100644 --- a/docs/html/node119.html +++ b/docs/html/node119.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_array_write -- Write a dense array from a file in the MatrixMarket format + @@ -18,79 +18,100 @@ original version by: Nikos Drakos, CBLU, University of Leeds - - - + + - next - + up - previous - contents
              - Next: psb_precinit Initialize - Up: userhtml - Previous: mm_array_write Write -   Next: Preconditioner routines + Up: Utilities + Previous: mm_mat_write Write +   Contents

              -

              - -
              -Preconditioner routines -

              +

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

              -The base PSBLAS library contains the implementation of two simple -preconditioning techniques: +
              +\begin{lstlisting}
+call mm_array_write(b, iret, iunit, filename)
+\end{lstlisting} +
              -

                -
              • Diagonal Scaling -
              • -
              • Block Jacobi with ILU(0) factorization -
              • -
              -The supporting data type and subroutine interfaces are defined in the -module psb_prec_mod. +

              +

              +
              Type:
              +
              Asynchronous. +
              +
              On Entry
              +
              +
              +
              b
              +
              Rigth hand side(s). +
              +Type: required +
              +An array of type real or complex, rank 1 or 2; will be written..
              +
              filename
              +
              The name of the file to be written. +
              +Type:optional. +
              +Specified as: a character variable containing a valid file name, or +-, in which case the default input unit 5 (i.e. standard input +in Unix jargon) is used. Default: -. +
              +
              iunit
              +
              The Fortran file unit number. +
              +Type:optional. +
              +Specified as: an integer value. Only meaningful if filename is not -. +
              +

              -


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



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

              diff --git a/docs/html/node120.html b/docs/html/node120.html index 48726bc6..dd238734 100644 --- a/docs/html/node120.html +++ b/docs/html/node120.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,80 @@ 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_array_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/node121.html b/docs/html/node121.html index b2218160..ba843227 100644 --- a/docs/html/node121.html +++ b/docs/html/node121.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_precbld -- Builds a preconditioner - +psb_precinit -- Initialize a preconditioner + @@ -20,137 +20,118 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - next - + up - previous - contents
              - Next: psb_precaply Preconditioner - Up: Preconditioner routines - Previous: psb_precinit Initialize -   Next: psb_precbld Builds + Up: Preconditioner routines + Previous: Preconditioner routines +   Contents

              -

              -psb_precbld -- Builds a preconditioner +

              +psb_precinit -- Initialize a preconditioner

              -call psb_precbld(a, desc_a, prec, info,amold,vmold)
              +call psb_precinit(prec, ptype, info)
               

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

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

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

              - -

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

              -
              On Return
              -
              +
              NONE
              +
              No preconditioning, i.e. the preconditioner is just a copy + operator.
              -
              prec
              -
              the preconditioner. -
              -Scope: local -
              -Type: required -
              -Intent: inout. -
              -Specified as: a precondtioner data structure precdatapsb_prec_type -
              -
              info
              -
              Error code. -
              -Scope: local -
              -Type: required -
              -Intent: out. -
              -An integer value; 0 means no error has been detected. +
              DIAG
              +
              Diagonal scaling; each entry of the input vector is + multiplied by the reciprocal of the sum of the absolute values of + the coefficients in the corresponding row of matrix $A$; +
              +
              BJAC
              +
              Precondition by a factorization of the + block-diagonal of matrix $A$, where block boundaries are determined + by the data allocation boundaries for each process; requires no + communication. Only the incomplete factorization $ILU(0)$ is + currently implemented.
              diff --git a/docs/html/node122.html b/docs/html/node122.html index 984a9dc9..0a139a77 100644 --- a/docs/html/node122.html +++ b/docs/html/node122.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_precaply -- Preconditioner application routine - +psb_precbld -- Builds a preconditioner + @@ -20,46 +20,44 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - next - + up - previous - contents
              - Next: psb_precdescr Prints - Up: Preconditioner routines - Previous: psb_precbld Builds -   Next: psb_precaply Preconditioner + Up: Preconditioner routines + Previous: psb_precinit Initialize +   Contents

              -

              -psb_precaply -- Preconditioner application - routine +

              +psb_precbld -- Builds a preconditioner

              -call psb_precaply(prec,x,y,desc_a,info,trans,work)
              -call psb_precaply(prec,x,desc_a,info,trans)
              +call psb_precbld(a, desc_a, prec, info,amold,vmold)
               

              @@ -70,54 +68,60 @@ call psb_precaply(prec,x,desc_a,info,trans)

              On Entry
              -
              prec
              -
              the preconditioner. +
              a
              +
              the system sparse matrix. Scope: local
              Type: required
              -Intent: in. +Intent: in, target.
              -Specified as: a preconditioner data structure precdatapsb_prec_type. +Specified as: a sparse matrix data structure spdatapsb_Tspmat_type.
              -
              x
              -
              the source vector. +
              prec
              +
              the preconditioner. +
              Scope: local
              Type: required
              Intent: inout.
              -Specified as: a rank one array or an object of type vdatapsb_T_vect_type. -
              +Specified as: an already initialized precondtioner data structure precdatapsb_prec_type +

              desc_a
              -
              the problem communication descriptor. +
              the problem communication descriptor. Scope: local
              Type: required
              -Intent: in. +Intent: in, target.
              -Specified as: a communication data structure descdatapsb_desc_type. +Specified as: a communication descriptor data structure descdatapsb_desc_type.
              -
              trans
              -
              Scope: +
              amold
              +
              The desired dynamic type for the internal matrix storage.
              -Type: optional +Scope: local. +
              +Type: optional.
              Intent: in.
              -Specified as: a character. +Specified as: an object of a class derived from spbasedatapsb_T_base_sparse_mat.
              -
              work
              -
              an optional work space -Scope: local +
              vmold
              +
              The desired dynamic type for the internal vector storage.
              -Type: optional +Scope: local.
              -Intent: inout. +Type: optional. +
              +Intent: in.
              -Specified as: a double precision array. +Specified as: an object of a class derived from vbasedatapsb_T_base_vect_type. + +

              @@ -126,16 +130,17 @@ Specified as: a double precision array.
              On Return
              -
              y
              -
              the destination vector. +
              prec
              +
              the preconditioner. +
              Scope: local
              Type: required
              Intent: inout.
              -Specified as: a rank one array or an object of type vdatapsb_T_vect_type. -
              +Specified as: a precondtioner data structure precdatapsb_prec_type +

              info
              Error code.
              diff --git a/docs/html/node123.html b/docs/html/node123.html index cba58e26..bf517f50 100644 --- a/docs/html/node123.html +++ b/docs/html/node123.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 + @@ -20,52 +20,52 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - next - + up - previous - contents
              - Next: clone clone - 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
              @@ -80,15 +80,72 @@ Intent: in.
              Specified as: a preconditioner data structure precdatapsb_prec_type.
              -
              iout
              -
              output unit. +
              x
              +
              the source vector. Scope: local
              -Type: optiona +Type: required +
              +Intent: inout. +
              +Specified as: a rank one array or an object of type vdatapsb_T_vect_type. +
              +
              desc_a
              +
              the problem communication descriptor. +Scope: local +
              +Type: required +
              +Intent: in. +
              +Specified as: a communication data structure descdatapsb_desc_type. +
              +
              trans
              +
              Scope: +
              +Type: optional
              Intent: in.
              -Specified as: an integer number. +Specified as: a character. +
              +
              work
              +
              an optional work space +Scope: local +
              +Type: optional +
              +Intent: inout. +
              +Specified as: a double precision array. +
              +
              + +

              +

              +
              On Return
              +
              +
              +
              y
              +
              the destination vector. +Scope: local +
              +Type: required +
              +Intent: inout. +
              +Specified as: a rank one array or an object of type vdatapsb_T_vect_type. +
              +
              info
              +
              Error code. +
              +Scope: local +
              +Type: required +
              +Intent: out. +
              +An integer value; 0 means no error has been detected.
              diff --git a/docs/html/node124.html b/docs/html/node124.html index 441e85ce..0be908ea 100644 --- a/docs/html/node124.html +++ b/docs/html/node124.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -clone -- clone current preconditioner - +psb_precdescr -- Prints a description of current preconditioner + @@ -18,45 +18,48 @@ original version by: Nikos Drakos, CBLU, University of Leeds + - + - next - + up - previous - contents
              - Next: Iterative Methods - Up: Preconditioner routines - Previous: psb_precdescr Prints -   Next: clone clone + Up: Preconditioner routines + Previous: psb_precaply Preconditioner +   Contents

              -

              -clone -- clone current +

              +psb_precdescr -- Prints a description of current preconditioner

              +

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

              @@ -69,21 +72,23 @@ call prec%clone(precout,info)

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

              -

              -
              On Return
              -
              -
              -
              precout
              -
              A copy of the input object. +Type: required +
              +Intent: in. +
              +Specified as: a preconditioner data structure precdatapsb_prec_type.
              -
              info
              -
              Return code. +
              iout
              +
              output unit. +Scope: local +
              +Type: optiona +
              +Intent: in. +
              +Specified as: an integer number.
              diff --git a/docs/html/node125.html b/docs/html/node125.html index e72791d0..189dedfd 100644 --- a/docs/html/node125.html +++ b/docs/html/node125.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -Iterative Methods - +clone -- clone current preconditioner + @@ -18,61 +18,76 @@ original version by: Nikos Drakos, CBLU, University of Leeds - - - + + - next - + up - previous - contents
              - Next: psb_krylov Krylov - Up: userhtml - Previous: clone clone -   Next: Iterative Methods + Up: Preconditioner routines + Previous: psb_precdescr Prints +   Contents

              -

              - -
              -Iterative Methods -

              +

              +clone -- clone current + preconditioner +

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

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

              +
              Type:
              +
              Asynchronous. +
              +
              On Entry
              +
              +
              +
              prec
              +
              the preconditioner. +
              +Scope: local. +
              +

              -


              - -Subsections +
              +
              On Return
              +
              +
              +
              precout
              +
              A copy of the input object. +
              +
              info
              +
              Return code. +
              +
              - - +



              diff --git a/docs/html/node126.html b/docs/html/node126.html index 7953689b..6ba53b45 100644 --- a/docs/html/node126.html +++ b/docs/html/node126.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_krylov -- Krylov Methods Driver Routine - +Iterative Methods + @@ -18,377 +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: clone clone +   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. - -

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

              -

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

              -

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

              -

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

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

              +Iterative Methods +

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

              - -

              -


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

              + +Subsections + + + +

              diff --git a/docs/html/node127.html b/docs/html/node127.html index 7b2da19f..8484ef40 100644 --- a/docs/html/node127.html +++ b/docs/html/node127.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -Bibliography - +psb_krylov -- Krylov Methods Driver Routine + @@ -18,166 +18,377 @@ 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 -

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

              +
              +psb_krylov -- Krylov Methods Driver + Routine +

              -

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

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

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

              +The stopping criterion 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.

              -

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

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

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

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

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

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

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

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

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

              -

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

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

              -

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

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

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

              -

              19 + +
              istop
              +
              An integer specifying the stopping criterion. +
              +Scope: global +
              +Type: optional. +
              +Intent: in. +
              +Values: 1: use the normwise backward error, 2: use the scaled 2-norm +of the residual. Default: 2. +
              +
              On Return
              -M. Snir, S. Otto, S. Huss-Lederman, D. Walker and J. Dongarra, -MPI: The Complete Reference. Volume 1 - The MPI Core, second edition, -MIT Press, 1998. +
              +
              x
              +
              The computed solution. +
              +Scope: local +
              +Type: required +
              +Intent: inout. +
              +Specified as: a rank one array or an object of type vdatapsb_T_vect_type. +
              +
              iter
              +
              The number of iterations performed. +
              +Scope: global +
              +Type: optional +
              +Intent: out. +
              +Returned as: an integer variable. +
              +
              err
              +
              The convergence estimate on exit. +
              +Scope: global +
              +Type: optional +
              +Intent: out. +
              +Returned as: a real number. +
              +
              cond
              +
              An estimate of the condition number of matrix $A$; only + available with the $CG$ method. +
              +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/node128.html b/docs/html/node128.html index 494d542b..7cd5f15e 100644 --- a/docs/html/node128.html +++ b/docs/html/node128.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,165 @@ 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 +
              + D. Barbieri, V. Cardellini, S. Filippone and D. Rouson +Design Patterns for Scientific Computations on Sparse Matrices, + HPSS 2011, Algorithms and Programming Tools for Next-Generation High-Performance Scientific Software, Bordeaux, Sep. 2011 + +

              +

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

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

              4 +
              P. D'Ambra, S. Filippone, D. Di Serafino
              +On the Development of PSBLAS-based Parallel Two-level Schwarz Preconditioners +
              +Applied Numerical Mathematics, Elsevier Science, +Volume 57, Issues 11-12, November-December 2007, Pages 1181-1196. -

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

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

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

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

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

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

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

              11 +
              +S. Filippone and A. Buttari, +Object-Oriented Techniques for Sparse Matrix Computations in Fortran 2003,
              -Copyright © 1997, 1998, 1999, -Ross Moore, -Mathematics Department, Macquarie University, Sydney. +ACM Transactions on Mathematical Software, 38(4), 2012. +

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

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

              +

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

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

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

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

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

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

              +

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

              -The translation was initiated by Salvatore Filippone on 2014-03-27


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

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

              diff --git a/docs/html/node15.html b/docs/html/node15.html index 8fd8d977..b7e7ea79 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: get_context Get - Up: Next: get_global_indices Get + Up: Descriptor data structure - Previous: Previous: get_global_rows Get -   Contents

              diff --git a/docs/html/node16.html b/docs/html/node16.html index 4adeeebb..7c24d80a 100644 --- a/docs/html/node16.html +++ b/docs/html/node16.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -get_context -- Get communication context - +get_global_indices -- Get vector of global indices + @@ -26,38 +26,38 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
              - Next: Clone clone - Up: Next: get_context Get + Up: Descriptor data structure - Previous: Previous: get_global_cols Get -   Contents

              -get_context -- Get communication context +get_global_indices -- Get vector of global indices

              -ictxt = desc%get_context()
              +myidx = desc%get_global_indices([owned])
               

              @@ -72,6 +72,15 @@ ictxt = desc%get_context()

              the communication descriptor.
              Scope: local. +
              +Type: required. +
              +
              owned
              +
              Choose if you only want owned indices + (owned=.true.) or also halo indices (owned=.false.). +Scope: local. +
              +Type: optional; default: .true..
              @@ -81,7 +90,8 @@ Scope: local.
              Function value
              -
              The communication context. +
              The global indices, returned as an allocatable + integer array of rank 1.
              diff --git a/docs/html/node17.html b/docs/html/node17.html index 61591708..e7ed959c 100644 --- a/docs/html/node17.html +++ b/docs/html/node17.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -Clone -- clone current object - +get_context -- Get communication context + @@ -26,38 +26,38 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
              - Next: psb_cd_get_large_threshold Get - Up: Next: Clone clone + Up: Descriptor data structure - Previous: get_context Get -   Previous: get_global_indices Get +   Contents

              -Clone -- clone current object +get_context -- Get communication context

              -call  desc%clone(descout,info)
              +ictxt = desc%get_context()
               

              @@ -80,11 +80,8 @@ Scope: local.

              On Return
              -
              descout
              -
              A copy of the input object. -
              -
              info
              -
              Return code. +
              Function value
              +
              The communication context.
              diff --git a/docs/html/node18.html b/docs/html/node18.html index 9bb9bf69..2ab05633 100644 --- a/docs/html/node18.html +++ b/docs/html/node18.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_cd_get_large_threshold -- Get threshold for index mapping switch - +Clone -- clone current object + @@ -26,39 +26,38 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
              - Next: psb_cd_set_large_threshold Set - Up: Next: psb_cd_get_large_threshold Get + Up: Descriptor data structure - Previous: Clone clone -   Previous: get_context Get +   Contents

              -psb_cd_get_large_threshold -- Get threshold for - index mapping switch +Clone -- clone current object

              -ith = psb_cd_get_large_threshold()
              +call  desc%clone(descout,info)
               

              @@ -66,13 +65,26 @@ ith = psb_cd_get_large_threshold()

              Type:
              Asynchronous.
              -
              On Return
              +
              On Entry
              -
              Function value
              -
              The current value for the size threshold. +
              desc
              +
              the communication descriptor. +
              +Scope: local. +
              +

              +

              +
              On Return
              +
              +
              +
              descout
              +
              A copy of the input object. +
              +
              info
              +
              Return code.
              diff --git a/docs/html/node19.html b/docs/html/node19.html index 69efaa14..783e4418 100644 --- a/docs/html/node19.html +++ b/docs/html/node19.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_cd_set_large_threshold -- Set threshold for index mapping switch - +psb_cd_get_large_threshold -- Get threshold for index mapping switch + @@ -26,66 +26,55 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
              - Next: Named Constants - Up: Next: psb_cd_set_large_threshold Set + Up: Descriptor data structure - Previous: psb_cd_get_large_threshold Get -   Previous: Clone clone +   Contents

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

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

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

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



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

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

              The PSBLAS library version 3 is implemented in the Fortran 2003 [17] programming language, with reuse and/or + HREF="node128.html#metcalf">17] programming language, with reuse and/or adaptation of existing Fortran 77 and Fortran 95 software, plus a handful of C routines. @@ -81,11 +81,11 @@ mostly in the handling of requirements for evolution and adaptation of the library to new computing architectures and integration of new algorithms. For a detailed discussion of our design see [11]; other + HREF="node128.html#Sparse03">11]; other works discussing advanced programming in Fortran 2003 include [1,18]; sufficient support for + HREF="node128.html#DesPat:11">1,18]; sufficient support for Fortran 2003 is now available from many compilers, including the GNU Fortran compiler from the Free Software Foundation (as of version 4.6). @@ -94,7 +94,7 @@ Previous approaches have been based on mixing Fortran 95, with its support for object-based design, with other languages; these have been advocated by a number of authors, e.g. [16]. Moreover, the Fortran 95 facilities for dynamic + HREF="node128.html#machiels">16]. Moreover, the Fortran 95 facilities for dynamic memory management and interface overloading greatly enhance the usability of the PSBLAS subroutines. In this way, the library can take care of runtime memory @@ -105,12 +105,12 @@ implementation or compilation time. The presentation of the PSBLAS library follows the general structure of the proposal for serial Sparse BLAS [8,9], which in its turn is based on the + HREF="node128.html#sblas97">8,9], which in its turn is based on the proposal for BLAS on dense matrices [15,5,6]. + HREF="node128.html#BLAS1">15,5,6].

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


              - next - up - previous - contents
              - Next: Next: General overview - Up: Up: userhtml - Previous: Previous: Contents -   Contents diff --git a/docs/html/node20.html b/docs/html/node20.html index 34bc8e03..44f3378a 100644 --- a/docs/html/node20.html +++ b/docs/html/node20.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -Named Constants - +psb_cd_set_large_threshold -- Set threshold for index mapping switch + @@ -18,6 +18,7 @@ original version by: Nikos Drakos, CBLU, University of Leeds + @@ -25,71 +26,66 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
              - Next: Sparse Matrix class - Up: Next: Named Constants + Up: Descriptor data structure - Previous: psb_cd_set_large_threshold Set -   Previous: psb_cd_get_large_threshold Get +   Contents

              -

              - -
              -Named Constants +

              +psb_cd_set_large_threshold -- Set threshold for + index mapping switch

              + +

              +

              +call psb_cd_set_large_threshold(ith)
              +
              + +

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

              +

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



              diff --git a/docs/html/node21.html b/docs/html/node21.html index 712d9f0c..7cfeaa36 100644 --- a/docs/html/node21.html +++ b/docs/html/node21.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -Sparse Matrix class - +Named Constants + @@ -18,199 +18,81 @@ original version by: Nikos Drakos, CBLU, University of Leeds - - - + + - next - + up - previous - contents
              - Next: Sparse Matrix Methods - Up: Data Structures and Classes - Previous: Named Constants -   Next: Sparse Matrix class + Up: Descriptor data structure + Previous: psb_cd_set_large_threshold Set +   Contents

              -

              - +

              +
              -Sparse Matrix class -

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

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



              - -Subsections - - - -
              - - -next - -up - -previous - -contents -
              - Next: Sparse Matrix Methods - Up: Data Structures and Classes - Previous: Named Constants -   Contents - diff --git a/docs/html/node22.html b/docs/html/node22.html index 3240fc4f..8a1a62da 100644 --- a/docs/html/node22.html +++ b/docs/html/node22.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -Sparse Matrix Methods - +Sparse Matrix class + @@ -18,45 +18,199 @@ original version by: Nikos Drakos, CBLU, University of Leeds - - - + + + - next - + up - previous - contents
              - Next: get_nrows Get - Up: Sparse Matrix class - Previous: Sparse Matrix class -   Next: Sparse Matrix Methods + Up: Data Structures and Classes + Previous: Named Constants +   Contents

              -

              -Sparse Matrix Methods -

              +

              + +
              +Sparse Matrix class +

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



              + +Subsections + + + +
              + + +next + +up + +previous + +contents +
              + Next: Sparse Matrix Methods + Up: Data Structures and Classes + Previous: Named Constants +   Contents + diff --git a/docs/html/node23.html b/docs/html/node23.html index 0bac5b5e..a45720e4 100644 --- a/docs/html/node23.html +++ b/docs/html/node23.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -get_nrows -- Get number of rows in a sparse matrix - +Sparse Matrix Methods + @@ -20,71 +20,41 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - next - + up - previous - contents
              - Next: get_ncols Get - Up: Sparse Matrix class - Previous: Sparse Matrix Methods -   Next: get_nrows Get + Up: Sparse Matrix class + Previous: Sparse Matrix class +   Contents

              -

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

              +Sparse Matrix Methods

              -

              -

              -nr = a%get_nrows()
              -
              - -

              -

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

              -

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



              diff --git a/docs/html/node24.html b/docs/html/node24.html index f0884f16..46c8a971 100644 --- a/docs/html/node24.html +++ b/docs/html/node24.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -get_ncols -- Get number of columns in a sparse matrix - +get_nrows -- Get number of rows in a sparse matrix + @@ -20,45 +20,44 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - next - + up - previous - contents
              - Next: get_nnzeros Get - Up: Sparse Matrix class - Previous: get_nrows Get -   Next: get_ncols Get + Up: Sparse Matrix class + Previous: Sparse Matrix Methods +   Contents

              -

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

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

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

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

              Function value
              -
              The number of columns of sparse matrix a. +
              The number of rows of sparse matrix a.
              diff --git a/docs/html/node25.html b/docs/html/node25.html index a320bfe5..243aa682 100644 --- a/docs/html/node25.html +++ b/docs/html/node25.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -get_nnzeros -- Get number of nonzero elements in a sparse matrix - +get_ncols -- Get number of columns in a sparse matrix + @@ -20,45 +20,45 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - next - + up - previous - contents
              - Next: get_size Get - Up: Sparse Matrix class - Previous: get_ncols Get -   Next: get_nnzeros Get + Up: Sparse Matrix class + Previous: get_nrows Get +   Contents

              -

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

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

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

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

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

              -Notes - -

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



              diff --git a/docs/html/node26.html b/docs/html/node26.html index 6efbba63..989aea10 100644 --- a/docs/html/node26.html +++ b/docs/html/node26.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -get_size -- Get maximum number of nonzero elements in a sparse matrix - +get_nnzeros -- Get number of nonzero elements in a sparse matrix + @@ -20,45 +20,45 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - next - + up - previous - contents
              - Next: sizeof Get - Up: Sparse Matrix class - Previous: get_nnzeros Get -   Next: get_size Get + Up: Sparse Matrix class + Previous: get_ncols Get +   Contents

              -

              -get_size -- Get maximum number of nonzero elements +

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

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

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

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

              +Notes + +

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



              diff --git a/docs/html/node27.html b/docs/html/node27.html index 35466d76..91464dc0 100644 --- a/docs/html/node27.html +++ b/docs/html/node27.html @@ -7,10 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -sizeof -- Get memory occupation in bytes -of a sparse matrix - +get_size -- Get maximum number of nonzero elements in a sparse matrix + @@ -22,45 +20,45 @@ of a sparse matrix"> - + - next - + up - previous - contents
              - Next: get_fmt Short - Up: Sparse Matrix class - Previous: get_size Get -   Next: sizeof Get + Up: Sparse Matrix class + Previous: get_nnzeros Get +   Contents

              -

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

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

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

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

              Function value
              -
              The memory occupation in bytes. +
              The maximum number of nonzero elements that can + be stored in sparse matrix a using its current memory allocation.
              diff --git a/docs/html/node28.html b/docs/html/node28.html index 4523690b..2dc631fa 100644 --- a/docs/html/node28.html +++ b/docs/html/node28.html @@ -7,8 +7,10 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -get_fmt -- Short description of the dynamic type - +sizeof -- Get memory occupation in bytes +of a sparse matrix + @@ -20,44 +22,45 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - next - + up - previous - contents
              - Next: is_bld, is_upd, is_asb - Up: Sparse Matrix class - Previous: sizeof Get -   Next: get_fmt Short + Up: Sparse Matrix class + Previous: get_size Get +   Contents

              -

              -get_fmt -- Short description of the dynamic type +

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

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

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

              Function value
              -
              A short string describing the dynamic type of - the matrix. Predefined values include NULL, COO, - CSR and CSC. +
              The memory occupation in bytes.
              diff --git a/docs/html/node29.html b/docs/html/node29.html index 7c935066..e9bbedde 100644 --- a/docs/html/node29.html +++ b/docs/html/node29.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -is_bld, is_upd, is_asb -- Status check - +get_fmt -- Short description of the dynamic type + @@ -20,46 +20,44 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - next - + up - previous - contents
              - Next: is_lower, is_upper, is_triangle, is_unit - Up: Sparse Matrix class - Previous: get_fmt Short -   Next: is_bld, is_upd, is_asb + Up: Sparse Matrix class + Previous: sizeof Get +   Contents

              -

              -is_bld, is_upd, is_asb -- Status check +

              +get_fmt -- Short description of the dynamic type

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

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

              Function value
              -
              A logical value indicating whether the - matrix is in the Build, Update or Assembled state, respectively. +
              A short string describing the dynamic type of + the matrix. Predefined values include NULL, COO, + CSR and CSC.
              diff --git a/docs/html/node3.html b/docs/html/node3.html index 779b2553..c43e156d 100644 --- a/docs/html/node3.html +++ b/docs/html/node3.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
              - Next: Next: Basic Nomenclature - Up: Up: userhtml - Previous: Previous: Introduction -   Contents

              @@ -78,10 +78,10 @@ calls to the serial sparse BLAS subroutines. In a similar way, the inter-process message exchanges are encapsulated in an applicaiton layer that has been strongly inspired by the Basic Linear Algebra Communication Subroutines (BLACS) library [7]. + HREF="node128.html#BLACS">7]. Usually there is no need to deal directly with MPI; however, in some cases, MPI routines are used directly to improve efficiency. For -further details on our communication layer see Sec. 7. +further details on our communication layer see Sec. 7.

              @@ -134,7 +134,7 @@ equation indices to processes. In particular it is consistent with the usage of graph partitioning tools commonly available in the literature, e.g. METIS [14]. + HREF="node128.html#METIS">14]. Dense vectors conform to sparse matrices, that is, the entries of a vector follow the same distribution of the matrix rows. @@ -154,43 +154,43 @@ bottleneck would make this option unattractive in most cases. Subsections


              - next - up - previous - contents
              - Next: Next: Basic Nomenclature - Up: Up: userhtml - Previous: Previous: Introduction -   Contents diff --git a/docs/html/node30.html b/docs/html/node30.html index 785a3bd7..f3da0088 100644 --- a/docs/html/node30.html +++ b/docs/html/node30.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -is_lower, is_upper, is_triangle, is_unit -- Format check - +is_bld, is_upd, is_asb -- Status check + @@ -20,48 +20,46 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - next - + up - previous - contents
              - Next: cscnv Convert - Up: Sparse Matrix class - Previous: is_bld, is_upd, is_asb -   Next: is_lower, is_upper, is_triangle, is_unit + Up: Sparse Matrix class + Previous: get_fmt Short +   Contents

              -

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

              +is_bld, is_upd, is_asb -- Status check

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

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

              Function value
              A logical value indicating whether the - matrix is triangular; if is_triangle() returns .true. - check also if it is lower, upper and with a unit (i.e. assumed) - diagonal. + matrix is in the Build, Update or Assembled state, respectively.
              diff --git a/docs/html/node31.html b/docs/html/node31.html index 17af1ce9..680b7c5b 100644 --- a/docs/html/node31.html +++ b/docs/html/node31.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -cscnv -- Convert to a different storage format - +is_lower, is_upper, is_triangle, is_unit -- Format check + @@ -20,45 +20,48 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - next - + up - previous - contents
              - Next: csclip Reduce - Up: Sparse Matrix class - Previous: is_lower, is_upper, is_triangle, is_unit -   Next: cscnv Convert + Up: Sparse Matrix class + Previous: is_bld, is_upd, is_asb +   Contents

              -

              -cscnv -- Convert to a different storage format +

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

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

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

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

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

              On Return
              -
              b,a
              -
              A copy of a with a new storage format. -
              -A variable of type psb_Tspmat_type. -
              -
              info
              -
              Return code. +
              Function value
              +
              A logical value indicating whether the + matrix is triangular; if is_triangle() returns .true. + check also if it is lower, upper and with a unit (i.e. assumed) + diagonal.
              diff --git a/docs/html/node32.html b/docs/html/node32.html index ab775b02..901f3e4e 100644 --- a/docs/html/node32.html +++ b/docs/html/node32.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -csclip -- Reduce to a submatrix - +cscnv -- Convert to a different storage format + @@ -20,50 +20,48 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - next - + up - previous - contents
              - Next: get_diag Get - Up: Sparse Matrix class - Previous: cscnv Convert -   Next: csclip Reduce + Up: Sparse Matrix class + Previous: is_lower, is_upper, is_triangle, is_unit +   Contents

              -

              -csclip -- Reduce to a submatrix +

              +cscnv -- Convert to a different storage format

              +

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

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

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

              On Return
              -
              b
              -
              A copy of a submatrix of a. +
              b,a
              +
              A copy of a with a new storage format.
              A variable of type psb_Tspmat_type.
              diff --git a/docs/html/node33.html b/docs/html/node33.html index c130df9f..8a974231 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 --> -get_diag -- Get main diagonal - +csclip -- Reduce to a submatrix + @@ -20,47 +20,50 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - next - + up - previous - contents
              - Next: clip_diag Cut - Up: Sparse Matrix class - Previous: csclip Reduce -   Next: get_diag Get + Up: Sparse Matrix class + Previous: cscnv Convert +   Contents

              -

              -get_diag -- Get main diagonal +

              +csclip -- Reduce to a submatrix

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

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

              Type:
              Asynchronous. @@ -75,15 +78,24 @@ A variable of type psb_Tspmat_type.
              Scope: local.
              +
              imin,imax,jmin,jmax
              +
              Minimum and maximum row and column indices. +
              +Type: optional. +
              +
              rscale,cscale
              +
              Whether to rescale row/column indices. +Type: optional. +
              On Return
              -
              d
              -
              A copy of the main diagonal. +
              b
              +
              A copy of a submatrix of a.
              -A one-dimensional array of the appropriate type. +A variable of type psb_Tspmat_type.
              info
              Return code. diff --git a/docs/html/node34.html b/docs/html/node34.html index 09411b48..073a4f97 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 --> -clip_diag -- Cut out main diagonal - +get_diag -- Get main diagonal + @@ -20,47 +20,47 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - next - + up - previous - contents
              - Next: tril Return - Up: Sparse Matrix class - Previous: get_diag Get -   Next: clip_diag Cut + Up: Sparse Matrix class + Previous: csclip Reduce +   Contents

              -

              -clip_diag -- Cut out main diagonal +

              +get_diag -- Get main diagonal

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

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

              Type:
              Asynchronous. @@ -80,10 +80,10 @@ Scope: local.
              On Return
              -
              b
              -
              A copy of a without the main diagonal. +
              d
              +
              A copy of the main diagonal.
              -A variable of type psb_Tspmat_type. +A one-dimensional array of the appropriate type.
              info
              Return code. diff --git a/docs/html/node35.html b/docs/html/node35.html index de65968f..62c33864 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 --> -tril -- Return the lower triangle - +clip_diag -- Cut out main diagonal + @@ -20,50 +20,47 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - next - + up - previous - contents
              - Next: triu Return - Up: Sparse Matrix class - Previous: clip_diag Cut -   Next: tril Return + Up: Sparse Matrix class + Previous: get_diag Get +   Contents

              -

              -tril -- Return the lower triangle +

              +clip_diag -- Cut out main diagonal

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

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

              Type:
              Asynchronous. @@ -78,27 +75,13 @@ A variable of type psb_Tspmat_type.
              Scope: local.
              -
              diag
              -
              Include diagonals up to this one; diag=1 means the - first superdiagonal, diag=-1 means the first subdiagonal. -Default 0. -
              -
              imin,imax,jmin,jmax
              -
              Minimum and maximum row and column indices. -
              -Type: optional. -
              -
              rscale,cscale
              -
              Whether to rescale row/column indices. -Type: optional. -
              On Return
              b
              -
              A copy of a subtriangle of a. +
              A copy of a without the main diagonal.
              A variable of type psb_Tspmat_type.
              diff --git a/docs/html/node36.html b/docs/html/node36.html index d1d44a39..58884288 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 --> -triu -- Return the upper triangle - +tril -- Return the lower triangle + @@ -20,48 +20,48 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - next - + up - previous - contents
              - Next: psb_set_mat_default Set - Up: Sparse Matrix class - Previous: tril Return -   Next: triu Return + Up: Sparse Matrix class + Previous: clip_diag Cut +   Contents

              -

              -triu -- Return the upper triangle +

              +tril -- Return the lower triangle

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

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

              diff --git a/docs/html/node37.html b/docs/html/node37.html index 03ea5c7c..035ad5de 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 --> -psb_set_mat_default -- Set default storage format - +triu -- Return the upper triangle + @@ -20,47 +20,50 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - next - + up - previous - contents
              - Next: clone Clone - Up: Sparse Matrix class - Previous: triu Return -   Next: psb_set_mat_default Set + Up: Sparse Matrix class + Previous: tril Return +   Contents

              -

              -psb_set_mat_default -- Set default storage format +

              +triu -- Return the upper triangle

              -

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

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

              Type:
              Asynchronous. @@ -69,10 +72,38 @@ call psb_set_mat_default(a)
              a
              -
              a variable of class(psb_T_base_sparse_mat) requesting - a new default storage format. +
              the sparse matrix. +
              +A variable of type psb_Tspmat_type. +
              +Scope: local. +
              +
              diag
              +
              Include diagonals up to this one; diag=1 means the + first superdiagonal, diag=-1 means the first subdiagonal. +Default 0. +
              +
              imin,imax,jmin,jmax
              +
              Minimum and maximum row and column indices. +
              +Type: optional. +
              +
              rscale,cscale
              +
              Whether to rescale row/column indices. +Type: optional. +
              +
              +
              +
              On Return
              +
              +
              +
              b
              +
              A copy of a subtriangle of a.
              -Type: required. +A variable of type psb_Tspmat_type. +
              +
              info
              +
              Return code.
              diff --git a/docs/html/node38.html b/docs/html/node38.html index 70cdf4d6..9897d333 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 --> -clone -- Clone current object - +psb_set_mat_default -- Set default storage format + @@ -20,44 +20,44 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - next - + up - previous - contents
              - Next: Named Constants - Up: Sparse Matrix class - Previous: psb_set_mat_default Set -   Next: clone Clone + Up: Sparse Matrix class + Previous: triu Return +   Contents

              -

              -clone -- Clone current object +

              +psb_set_mat_default -- Set default storage format

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

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

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

              -

              -
              On Return
              -
              -
              -
              b
              -
              A copy of the input object. -
              -
              info
              -
              Return code. +Type: required.
              diff --git a/docs/html/node39.html b/docs/html/node39.html index dead1376..02a3ad98 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 --> -Named Constants - +clone -- Clone current object + @@ -18,63 +18,73 @@ original version by: Nikos Drakos, CBLU, University of Leeds + - + - next - + up - previous - contents
              - Next: Dense Vector Data Structure - Up: Sparse Matrix class - Previous: clone Clone -   Next: Named Constants + Up: Sparse Matrix class + Previous: psb_set_mat_default Set +   Contents

              -

              - -
              -Named Constants +

              +clone -- Clone current object

              + +

              +

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

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

              +

              +
              On Return
              +
              -
              psb_upd_srch_
              -
              Update strategy based on search into the data structure; +
              b
              +
              A copy of the input object.
              -
              psb_upd_perm_
              -
              Update strategy based on additional - permutation data (see tools routine description). +
              info
              +
              Return code.
              diff --git a/docs/html/node4.html b/docs/html/node4.html index b524ff62..6510dd1b 100644 --- a/docs/html/node4.html +++ b/docs/html/node4.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
              - Next: Next: Library contents - Up: Up: General overview - Previous: Previous: General overview -   Contents

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

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


              - next - up - previous - contents
              - Next: Next: Library contents - Up: Up: General overview - Previous: Previous: General overview -   Contents diff --git a/docs/html/node40.html b/docs/html/node40.html index ecd5e185..9eb332eb 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 --> -Dense Vector Data Structure - +Named Constants + @@ -18,147 +18,68 @@ original version by: Nikos Drakos, CBLU, University of Leeds - - - + + - next - + up - previous - contents
              - Next: Vector Methods - Up: Data Structures and Classes - Previous: Named Constants -   Next: Dense Vector Data Structure + Up: Sparse Matrix class + Previous: clone Clone +   Contents

              -

              - +

              +
              -Dense Vector Data Structure -

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

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

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



              - -Subsections - - - -
              - - -next - -up - -previous - -contents -
              - Next: Vector Methods - Up: Data Structures and Classes - Previous: Named Constants -   Contents - diff --git a/docs/html/node41.html b/docs/html/node41.html index 73ca0ca3..aa6441b8 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 --> -Vector Methods - +Dense Vector Data Structure + @@ -18,43 +18,147 @@ original version by: Nikos Drakos, CBLU, University of Leeds - - - + + + - next - + up - previous - contents
              - Next: get_nrows Get - Up: Dense Vector Data Structure - Previous: Dense Vector Data Structure -   Next: Vector Methods + Up: Data Structures and Classes + Previous: Named Constants +   Contents

              -

              -Vector Methods -

              +

              + +
              +Dense Vector Data Structure +

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

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

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



              + +Subsections + + + +
              + + +next + +up + +previous + +contents +
              + Next: Vector Methods + Up: Data Structures and Classes + Previous: Named Constants +   Contents + diff --git a/docs/html/node42.html b/docs/html/node42.html index c00b5f97..c09438b8 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 --> -get_nrows -- Get number of rows in a dense vector - +Vector Methods + @@ -20,72 +20,40 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - next - + up - previous - contents
              - Next: sizeof Get - Up: Dense Vector Data Structure - Previous: Vector Methods -   Next: get_nrows Get + Up: Dense Vector Data Structure + Previous: Dense Vector Data Structure +   Contents

              -

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

              +Vector Methods

              - -

              -

              -nr = v%get_nrows()
              -
              - -

              -

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

              -

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



              diff --git a/docs/html/node43.html b/docs/html/node43.html index 52b233e9..d3b2b20e 100644 --- a/docs/html/node43.html +++ b/docs/html/node43.html @@ -7,10 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -sizeof -- Get memory occupation in bytes -of a dense vector - +get_nrows -- Get number of rows in a dense vector + @@ -22,45 +20,44 @@ of a dense vector"> - + - next - + up - previous - contents
              - Next: get_vect Get - Up: Dense Vector Data Structure - Previous: get_nrows Get -   Next: sizeof Get + Up: Dense Vector Data Structure + Previous: Vector Methods +   Contents

              -

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

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

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

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

              Function value
              -
              The memory occupation in bytes. +
              The number of rows of dense vector v.
              diff --git a/docs/html/node44.html b/docs/html/node44.html index 67834ab4..35405147 100644 --- a/docs/html/node44.html +++ b/docs/html/node44.html @@ -7,8 +7,10 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -get_vect -- Get a copy of the vector contents - +sizeof -- Get memory occupation in bytes +of a dense vector + @@ -20,44 +22,45 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - next - + up - previous - contents
              - Next: clone Clone - Up: Dense Vector Data Structure - Previous: sizeof Get -   Next: get_vect Get + Up: Dense Vector Data Structure + Previous: get_nrows Get +   Contents

              -

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

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

              -extv = v%get_vect()
              +memory_size = v%sizeof()
               

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

              Function value
              -
              An allocatable array holding a copy of the dense - vector contents. +
              The memory occupation in bytes.
              diff --git a/docs/html/node45.html b/docs/html/node45.html index 4a0bc088..a9c83cf2 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 --> -clone -- Clone current object - +get_vect -- Get a copy of the vector contents + @@ -18,44 +18,46 @@ original version by: Nikos Drakos, CBLU, University of Leeds + - + - next - + up - previous - contents
              - Next: Preconditioner data structure - Up: Dense Vector Data Structure - Previous: get_vect Get -   Next: clone Clone + Up: Dense Vector Data Structure + Previous: sizeof Get +   Contents

              -

              -clone -- Clone current object +

              +get_vect -- Get a copy of the vector contents

              +

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

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

              On Entry
              -
              x
              -
              the dense vector. +
              v
              +
              the dense vector
              -Scope: local. +Scope: local
              @@ -78,11 +80,9 @@ Scope: local.
              On Return
              -
              y
              -
              A copy of the input object. -
              -
              info
              -
              Return code. +
              Function value
              +
              An allocatable array holding a copy of the dense + vector contents.
              diff --git a/docs/html/node46.html b/docs/html/node46.html index d78dbe8c..d1bd01d2 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 --> -Preconditioner data structure - +clone -- Clone current object + @@ -18,70 +18,73 @@ original version by: Nikos Drakos, CBLU, University of Leeds - - + + - next - + up - previous - contents
              - Next: Computational routines - Up: Data Structures and Classes - Previous: clone Clone -   Next: Preconditioner data structure + Up: Dense Vector Data Structure + Previous: get_vect Get +   Contents

              -

              - -
              -Preconditioner data structure -

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

              +clone -- Clone current object +

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

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

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

              +

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



              diff --git a/docs/html/node47.html b/docs/html/node47.html index d9da841a..757db90d 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 --> -Computational routines - +Preconditioner data structure + @@ -18,78 +18,72 @@ original version by: Nikos Drakos, CBLU, University of Leeds - - - + + - next - + up - previous - contents
              - Next: psb_geaxpby General - Up: userhtml - Previous: Preconditioner data structure -   Next: Computational routines + Up: Data Structures and Classes + Previous: clone Clone +   Contents

              -

              -Computational routines -

              +

              + +
              +Preconditioner data structure +

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

              -


              - -Subsections +A preconditioner is held in the precdata psb_prec_type data structure reported in +figure 6. The psb_prec_type +data type may contain a simple preconditioning matrix with the +associated communication descriptor.The internal preconditioner is allocated appropriately with the +dynamic type corresponding to the desired preconditioner. - - +
              + + + +
              Figure 6: +The PSBLAS defined data type that contains a preconditioner.
              +
              + +
              +
              +  type psb_Tprec_type
              +    class(psb_T_base_prec_type), allocatable :: prec
              +  end type psb_Tprec_type
              +
              +
              +
              + +



              diff --git a/docs/html/node48.html b/docs/html/node48.html index 07752905..27293ed5 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_geaxpby -- General Dense Matrix Sum - +Computational routines + @@ -18,264 +18,79 @@ original version by: Nikos Drakos, CBLU, University of Leeds - - - + + + - next - + up - previous - contents
              - Next: psb_gedot Dot - Up: Computational routines - Previous: Computational routines -   Next: psb_geaxpby General + Up: userhtml + Previous: Preconditioner data structure +   Contents

              -

              -psb_geaxpby -- General Dense Matrix Sum -

              - -

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

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

              - -

              -

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

              -

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

              -
              - -

              -

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

              -

              -
              +

              +Computational routines +

              -

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

              + +Subsections -

              -


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

              diff --git a/docs/html/node49.html b/docs/html/node49.html index 101487e3..e4362f61 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_gedot -- Dot Product - +psb_geaxpby -- General Dense Matrix Sum + @@ -20,132 +20,100 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - next - + up - previous - contents
              - Next: psb_gedots Generalized - Up: Computational routines - Previous: psb_geaxpby General -   Next: psb_gedot Dot + Up: Computational routines + Previous: Computational routines +   Contents

              -

              -psb_gedot -- Dot Product +

              +psb_geaxpby -- General Dense Matrix Sum

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

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

              -

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

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

              +

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


              -
              +
              -
              Table 2: +Table 1: Data types
              - + ALT="$y$">, $\alpha$, $\beta$ + - + - + - + - +
              $dot$, $x$, $y$FunctionSubroutine
              Short Precision Realpsb_gedotpsb_geaxpby
              Long Precision Realpsb_gedotpsb_geaxpby
              Short Precision Complexpsb_gedotpsb_geaxpby
              Long Precision Complexpsb_gedotpsb_geaxpby
              @@ -162,10 +130,24 @@ Data types
              On Entry
              +
              alpha
              +
              the scalar $\alpha$. +
              +Scope: global +
              +Type: required +
              +Intent: in. +
              +Specified as: a number of the data type indicated in Table 1. +
              x
              the local portion of global dense matrix $x$.
              @@ -175,18 +157,32 @@ Type: required
              Intent: in.
              -Specified as: a rank one or two array or an object of type vdatapsb_T_vect_type -containing numbers of type specified in -Table 2. The rank of psb_T_vect_type +containing numbers of type +specified in Table 1. The rank of $x$ must be the same of $y$.
              +
              beta
              +
              the scalar $\beta$. +
              +Scope: global +
              +Type: required +
              +Intent: in. +
              +Specified as: a number of the data type indicated in Table 1. +
              y
              -
              the local portion of global dense matrix +
              the local portion of the global dense matrix local
              Type: required
              -Intent: in. +Intent: inout.
              -Specified as: a rank one or two array or an object of type vdatapsb_T_vect_type -containing numbers of type specified in -Table 2. The rank of psb_T_vect_type containing numbers of the type +indicated in Table 1. The rank of $y$ must be the same of $x$.
              @@ -221,21 +216,27 @@ Specified as: an object of type descdatapsb_desc_type.

              + + +

              +

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


              - next - + up - previous - contents
              - Next: psb_gedots Generalized - Up: Computational routines - Previous: psb_geaxpby General -   Next: psb_gedot Dot + Up: Computational routines + Previous: Computational routines +   Contents diff --git a/docs/html/node5.html b/docs/html/node5.html index 841b2116..fb5da7f7 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 @@ -169,26 +169,26 @@ whose current value is 3.0.0


              - next - up - previous - contents
              - Next: Next: Application structure - Up: Up: General overview - Previous: Previous: Basic Nomenclature -   Contents diff --git a/docs/html/node50.html b/docs/html/node50.html index 112974be..7fb387f4 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_gedots -- Generalized Dot Product - +psb_gedot -- Dot Product + @@ -20,117 +20,132 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - next - + up - previous - contents
              - Next: psb_normi Infinity-Norm - Up: Computational routines - Previous: psb_gedot Dot -   Next: psb_gedots Generalized + Up: Computational routines + Previous: psb_geaxpby General +   Contents

              -

              -psb_gedots -- Generalized Dot Product +

              +psb_gedot -- Dot Product

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

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

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

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

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

              -
              +
              -
              Table 3: +Table 2: Data types
              - + - + - + - + - +
              $res$, $dot$, $x$, $y$SubroutineFunction
              Short Precision Realpsb_gedotspsb_gedot
              Long Precision Realpsb_gedotspsb_gedot
              Short Precision Complexpsb_gedotspsb_gedot
              Long Precision Complexpsb_gedotspsb_gedot
              @@ -150,9 +165,9 @@ Data types
              x
              the local portion of global dense matrix $x$. + ALT="$x$">.
              Scope: local
              @@ -162,8 +177,8 @@ Intent: in.
              Specified as: a rank one or two array or an object of type vdatapsb_T_vect_type containing numbers of type specified in -Table 3. The rank of 2. The rank of $x$ must be the same of in.
              Specified as: a rank one or two array or an object of type vdatapsb_T_vect_type containing numbers of type specified in -Table 3. The rank of 2. The rank of $y$ must be the same of $x$.
              @@ -203,13 +218,15 @@ Type: required Intent: in.
              Specified as: an object of type descdatapsb_desc_type. + +

              On Return
              -
              res
              +
              Function value
              is the dot product of subvectors $x$ and psb_desc_type.
              Scope: global
              -Intent: out. -
              -Specified as: a number or a rank-one array of the data type indicated -in Table 2. +Specified as: a number of the data type indicated in Table 2.
              info
              Error code. @@ -239,26 +253,26 @@ An integer value; 0 means no error has been detected.


              - next - + up - previous - contents
              - Next: psb_normi Infinity-Norm - Up: Computational routines - Previous: psb_gedot Dot -   Next: psb_gedots Generalized + Up: Computational routines + Previous: psb_geaxpby General +   Contents diff --git a/docs/html/node51.html b/docs/html/node51.html index 4796a1b1..8892066f 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_normi -- Infinity-Norm of Vector - +psb_gedots -- Generalized Dot Product + @@ -20,128 +20,117 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - next - + up - previous - contents
              - Next: psb_geamaxs Generalized - Up: Computational routines - Previous: psb_gedots Generalized -   Next: psb_normi Infinity-Norm + Up: Computational routines + Previous: psb_gedot Dot +   Contents

              -

              -psb_normi -- Infinity-Norm of Vector +

              +psb_gedots -- Generalized Dot Product

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

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

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

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

              + ALT="$x$"> is +used. If $x$ and $y$ are of rank one, then $res$ is a scalar, else it +is a rank one array.

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


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

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


              - next - + up - previous - contents
              - Next: psb_geamaxs Generalized - Up: Computational routines - Previous: psb_gedots Generalized -   Next: psb_normi Infinity-Norm + Up: Computational routines + Previous: psb_gedot Dot +   Contents diff --git a/docs/html/node52.html b/docs/html/node52.html index ebb7c551..29657f78 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_geamaxs -- Generalized Infinity Norm - +psb_normi -- Infinity-Norm of Vector + @@ -20,102 +20,128 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - next - + up - previous - contents
              - Next: psb_norm1 1-Norm - Up: Computational routines - Previous: psb_normi Infinity-Norm -   Next: psb_geamaxs Generalized + Up: Computational routines + Previous: psb_gedots Generalized +   Contents

              -

              -psb_geamaxs -- Generalized Infinity Norm +

              +psb_normi -- Infinity-Norm of Vector

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

              +
              + + +\begin{displaymath}amax \leftarrow \max_i \vert x_i\vert\end{displaymath} +
              +
              +

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

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

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


              -
              +
              -
              Table 5: +Table 4: Data types
              + WIDTH="44" HEIGHT="13" ALIGN="BOTTOM" BORDER="0" + SRC="img31.png" + ALT="$amax$"> - + - + - + - + - +
              $res$ $x$SubroutineFunction
              Short Precision Real Short Precision Realpsb_geamaxspsb_geamax
              Long Precision Real Long Precision Realpsb_geamaxspsb_geamax
              Short Precision Real Short Precision Complexpsb_geamaxspsb_geamax
              Long Precision Real Long Precision Complexpsb_geamaxspsb_geamax
              @@ -135,9 +161,10 @@ Data types
              x
              the local portion of global dense matrix $x$. +
              Scope: local
              @@ -145,9 +172,9 @@ Type: required
              Intent: in.
              -Specified as: a rank one or two array or an object of type vdatapsb_T_vect_type +Specified as: a rank one or two array or an object of type vdatapsb_T_vect_type containing numbers of type specified in -Table 5. +Table 4.
              desc_a
              contains data structures for communications. @@ -159,21 +186,21 @@ Type: required Intent: in.
              Specified as: an object of type descdatapsb_desc_type. + +

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


              - next - + up - previous - contents
              - Next: psb_norm1 1-Norm - Up: Computational routines - Previous: psb_normi Infinity-Norm -   Next: psb_geamaxs Generalized + Up: Computational routines + Previous: psb_gedots Generalized +   Contents diff --git a/docs/html/node53.html b/docs/html/node53.html index 59ef20ea..5220d1b6 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_norm1 -- 1-Norm of Vector - +psb_geamaxs -- Generalized Infinity Norm + @@ -20,127 +20,102 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - next - + up - previous - contents
              - Next: psb_geasums Generalized - Up: Computational routines - Previous: psb_geamaxs Generalized -   Next: psb_norm1 1-Norm + Up: Computational routines + Previous: psb_normi Infinity-Norm +   Contents

              -

              -psb_norm1 -- 1-Norm of Vector +

              +psb_geamaxs -- Generalized Infinity Norm

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

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

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

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

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


              -
              +
              -
              Table 6: +Table 5: Data types
              + WIDTH="26" HEIGHT="13" ALIGN="BOTTOM" BORDER="0" + SRC="img28.png" + ALT="$res$"> - + - + - + - + - +
              $asum$ $x$FunctionSubroutine
              Short Precision Real Short Precision Realpsb_geasumpsb_geamaxs
              Long Precision Real Long Precision Realpsb_geasumpsb_geamaxs
              Short Precision Real Short Precision Complexpsb_geasumpsb_geamaxs
              Long Precision Real Long Precision Complexpsb_geasumpsb_geamaxs
              @@ -160,10 +135,9 @@ Data types
              x
              the local portion of global dense matrix $x$. -
              Scope: local
              @@ -173,7 +147,7 @@ Intent: in.
              Specified as: a rank one or two array or an object of type vdatapsb_T_vect_type containing numbers of type specified in -Table 6. +Table 5.
              desc_a
              contains data structures for communications. @@ -185,21 +159,21 @@ Type: required Intent: in.
              Specified as: an object of type descdatapsb_desc_type. - -

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


              - next - + up - previous - contents
              - Next: psb_geasums Generalized - Up: Computational routines - Previous: psb_geamaxs Generalized -   Next: psb_norm1 1-Norm + Up: Computational routines + Previous: psb_normi Infinity-Norm +   Contents diff --git a/docs/html/node54.html b/docs/html/node54.html index 9027526f..5ee30115 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_geasums -- Generalized 1-Norm of Vector - +psb_norm1 -- 1-Norm of Vector + @@ -20,146 +20,127 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - next - + up - previous - contents
              - Next: psb_norm2 2-Norm - Up: Computational routines - Previous: psb_norm1 1-Norm -   Next: psb_geasums Generalized + Up: Computational routines + Previous: psb_geamaxs Generalized +   Contents

              -

              -psb_geasums -- Generalized 1-Norm of Vector +

              +psb_norm1 -- 1-Norm of Vector

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

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

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

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

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

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

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


              -
              +
              -
              Table 7: +Table 6: Data types
              + WIDTH="43" HEIGHT="13" ALIGN="BOTTOM" BORDER="0" + SRC="img35.png" + ALT="$asum$"> - + - + - + - + - +
              $res$ $x$SubroutineFunction
              Short Precision Real Short Precision Realpsb_geasumspsb_geasum
              Long Precision Real Long Precision Realpsb_geasumspsb_geasum
              Short Precision Real Short Precision Complexpsb_geasumspsb_geasum
              Long Precision Real Long Precision Complexpsb_geasumspsb_geasum
              @@ -179,7 +160,7 @@ Data types
              x
              the local portion of global dense matrix $x$. @@ -192,7 +173,7 @@ Intent: in.
              Specified as: a rank one or two array or an object of type vdatapsb_T_vect_type containing numbers of type specified in -Table 7. +Table 6.
              desc_a
              contains data structures for communications. @@ -210,17 +191,14 @@ Specified as: an object of type descdatapsb_desc_type.
              On Return
              -
              res
              -
              contains the 1-norm of (the columns of) Function value +
              is the 1-norm of vector $x$.
              Scope: global
              -Intent: out. -
              -Short as: a long precision real number. Specified as: a long precision real number.
              info
              @@ -239,26 +217,26 @@ An integer value; 0 means no error has been detected.


              - next - + up - previous - contents
              - Next: psb_norm2 2-Norm - Up: Computational routines - Previous: psb_norm1 1-Norm -   Next: psb_geasums Generalized + Up: Computational routines + Previous: psb_geamaxs Generalized +   Contents diff --git a/docs/html/node55.html b/docs/html/node55.html index f004a4a0..1a9a3d63 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_norm2 -- 2-Norm of Vector - +psb_geasums -- Generalized 1-Norm of Vector + @@ -20,121 +20,146 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - next - + up - previous - contents
              - Next: psb_genrm2s Generalized - Up: Computational routines - Previous: psb_geasums Generalized -   Next: psb_norm2 2-Norm + Up: Computational routines + Previous: psb_norm1 1-Norm +   Contents

              -

              -psb_norm2 -- 2-Norm of Vector +

              +psb_geasums -- Generalized 1-Norm of Vector

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

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

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

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

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

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

              +

              +

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


              -
              +
              -
              Table 8: +Table 7: Data types
              + WIDTH="26" HEIGHT="13" ALIGN="BOTTOM" BORDER="0" + SRC="img28.png" + ALT="$res$"> - + - + - + - + - +
              $nrm2$ $x$FunctionSubroutine
              Short Precision Real Short Precision Realpsb_genrm2psb_geasums
              Long Precision Real Long Precision Realpsb_genrm2psb_geasums
              Short Precision Real Short Precision Complexpsb_genrm2psb_geasums
              Long Precision Real Long Precision Complexpsb_genrm2psb_geasums
              @@ -143,12 +168,6 @@ Data types


              -

              -

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

              Type:
              @@ -160,9 +179,10 @@ psb_norm2(x, desc_a, info)
              x
              the local portion of global dense matrix $x$. + ALT="$x$">. +
              Scope: local
              @@ -170,9 +190,9 @@ Type: required
              Intent: in.
              -Specified as: a rank one or two array or an object of type vdatapsb_T_vect_type +Specified as: a rank one or two array or an object of type vdatapsb_T_vect_type containing numbers of type specified in -Table 8. +Table 7.
              desc_a
              contains data structures for communications. @@ -190,17 +210,18 @@ Specified as: an object of type descdatapsb_desc_type.
              On Return
              -
              Function Value
              -
              is the 2-norm of subvector res +
              contains the 1-norm of (the columns of) $x$.
              Scope: global
              -Type: required +Intent: out.
              -Specified as: a long precision real number. +Short as: a long precision real number. +Specified as: a long precision real number.
              info
              Error code. @@ -218,26 +239,26 @@ An integer value; 0 means no error has been detected.


              - next - + up - previous - contents
              - Next: psb_genrm2s Generalized - Up: Computational routines - Previous: psb_geasums Generalized -   Next: psb_norm2 2-Norm + Up: Computational routines + Previous: psb_norm1 1-Norm +   Contents diff --git a/docs/html/node56.html b/docs/html/node56.html index a3ee63fa..8412eb0e 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_genrm2s -- Generalized 2-Norm of Vector - +psb_norm2 -- 2-Norm of Vector + @@ -20,102 +20,121 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - next - + up - previous - contents
              - Next: psb_norm1 1-Norm - Up: Computational routines - Previous: psb_norm2 2-Norm -   Next: psb_genrm2s Generalized + Up: Computational routines + Previous: psb_geasums Generalized +   Contents

              -

              -psb_genrm2s -- Generalized 2-Norm of Vector +

              +psb_norm2 -- 2-Norm of Vector

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

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

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

              +
              + -

              -

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


              -
              +
              -
              Table 9: +Table 8: Data types
              + WIDTH="43" HEIGHT="13" ALIGN="BOTTOM" BORDER="0" + SRC="img40.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
              @@ -124,6 +143,12 @@ Data types


              +

              +

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

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


              - next - + up - previous - contents
              - Next: psb_norm1 1-Norm - Up: Computational routines - Previous: psb_norm2 2-Norm -   Next: psb_genrm2s Generalized + Up: Computational routines + Previous: psb_geasums Generalized +   Contents diff --git a/docs/html/node57.html b/docs/html/node57.html index 4b0c58bf..a1622c28 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_norm1 -- 1-Norm of Sparse Matrix - +psb_genrm2s -- Generalized 2-Norm of Vector + @@ -20,102 +20,102 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - next - + up - previous - contents
              - Next: psb_normi Infinity - Up: Computational routines - Previous: psb_genrm2s Generalized -   Next: psb_norm1 1-Norm + Up: Computational routines + Previous: psb_norm2 2-Norm +   Contents

              -

              -psb_norm1 -- 1-Norm of Sparse Matrix +

              +psb_genrm2s -- Generalized 2-Norm of Vector

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

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

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

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

              +

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


              -
              +
              -
              Table 10: +Table 9: Data types
              - + WIDTH="26" HEIGHT="13" ALIGN="BOTTOM" BORDER="0" + SRC="img28.png" + ALT="$res$"> + + - + + - + + - - + + + - - + + +
              $A$Function$x$Subroutine
              Short Precision Realpsb_spnrm1Short Precision Realpsb_genrm2s
              Long Precision Realpsb_spnrm1Long Precision Realpsb_genrm2s
              Short Precision Complexpsb_spnrm1
              Short Precision RealShort Precision Complexpsb_genrm2s
              Long Precision Complexpsb_spnrm1
              Long Precision RealLong Precision Complexpsb_genrm2s
              @@ -124,12 +124,6 @@ Data types


              -

              -

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

              Type:
              @@ -138,20 +132,23 @@ psb_norm1(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="img20.png" + ALT="$x$">. +
              Scope: local
              -Type: required +Type: required
              Intent: in.
              -Specified as: an object of type spdatapsb_Tspmat_type. +Specified as: a rank one or two array or an object of type vdatapsb_T_vect_type +containing numbers of type specified in +Table 9.
              desc_a
              contains data structures for communications. @@ -163,19 +160,23 @@ Type: required Intent: in.
              Specified as: an object of type descdatapsb_desc_type. + +

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


              - next - + up - previous - contents
              - Next: psb_normi Infinity - Up: Computational routines - Previous: psb_genrm2s Generalized -   Next: psb_norm1 1-Norm + Up: Computational routines + Previous: psb_norm2 2-Norm +   Contents diff --git a/docs/html/node58.html b/docs/html/node58.html index ed2575e7..e323fc9e 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_normi -- Infinity Norm of Sparse Matrix - +psb_norm1 -- 1-Norm of Sparse Matrix + @@ -20,43 +20,43 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - next - + up - previous - contents
              - Next: psb_spmm Sparse - Up: Computational routines - Previous: psb_norm1 1-Norm -   Next: psb_normi Infinity + Up: Computational routines + Previous: psb_genrm2s Generalized +   Contents

              -

              -psb_normi -- Infinity Norm of Sparse Matrix +

              +psb_norm1 -- 1-Norm of Sparse Matrix

              -This function computes the infinity-norm of a matrix $A$: @@ -66,14 +66,14 @@ This function computes the infinity-norm of a matrix \begin{displaymath}nrmi \leftarrow \Vert A\Vert _\infty \end{displaymath} + WIDTH="97" HEIGHT="28" BORDER="0" + SRC="img42.png" + ALT="\begin{displaymath}nrm1 \leftarrow \Vert A\Vert _1 \end{displaymath}">

              @@ -92,9 +92,9 @@ where:


              -
              +
              - - + - + - + - +
              Table 11: +Table 10: Data types
              @@ -106,16 +106,16 @@ Data types
              Function
              Short Precision Realpsb_spnrmipsb_spnrm1
              Long Precision Realpsb_spnrmipsb_spnrm1
              Short Precision Complexpsb_spnrmipsb_spnrm1
              Long Precision Complexpsb_spnrmipsb_spnrm1
              @@ -126,8 +126,8 @@ Data types

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

              @@ -168,7 +168,7 @@ Specified as: an object of type descdatapsb_desc_type.

              Function value
              -
              is the infinity-norm of sparse submatrix is the 1-norm of sparse submatrix $A$. @@ -193,26 +193,26 @@ An integer value; 0 means no error has been detected.


              - next - + up - previous - contents
              - Next: psb_spmm Sparse - Up: Computational routines - Previous: psb_norm1 1-Norm -   Next: psb_normi Infinity + Up: Computational routines + Previous: psb_genrm2s Generalized +   Contents diff --git a/docs/html/node59.html b/docs/html/node59.html index d24593f1..579e6be5 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_spmm -- Sparse Matrix by Dense Matrix Product - +psb_normi -- Infinity Norm of Sparse Matrix + @@ -20,130 +20,70 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - next - + up - previous - contents
              - Next: psb_spsm Triangular - Up: Computational routines - Previous: psb_normi Infinity -   Next: psb_spmm Sparse + Up: Computational routines + Previous: psb_norm1 1-Norm +   Contents

              -

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

              +psb_normi -- Infinity Norm of Sparse Matrix

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

              -
              -

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

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

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

              +

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

              -

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

              +
              +

              where:
              -
              $x$
              -
              is the global dense matrix $x_{:, :}$ -
              -
              $y$
              -
              is the global dense matrix $y_{:, :}$ -
              $A$
              -
              is the global sparse matrix represents the global matrix $A$ @@ -152,9 +92,9 @@ where:


              -
              +
              - - + ALT="$A$"> + - + - + - + - +
              Table 12: +Table 11: Data types
              @@ -162,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
              @@ -198,10 +126,9 @@ Data types

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

              @@ -211,23 +138,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 12. -
              a
              -
              the local portion of the sparse matrix +
              the local portion of the global sparse matrix in.
              Specified as: an object of type spdatapsb_Tspmat_type.
              -
              x
              -
              the local portion of global dense matrix -$x$. - -
              -Scope: local -
              -Type: required -
              -Intent: in. -
              -Specified as: a rank one or two array or an object of type vdatapsb_T_vect_type -containing numbers of type specified in -Table 12. The rank of $x$ must be the same of $y$. -
              -
              beta
              -
              the scalar $\beta$. -
              -Scope: global -
              -Type: required -
              -Intent: in. -
              -Specified as: a number of the data type indicated in Table 12. -
              -
              y
              -
              the local portion of global dense matrix -$y$. - -
              -Scope: local -
              -Type: required -
              -Intent: inout. -
              -Specified as: a rank one or two array or an object of type vdatapsb_T_vect_type -containing numbers of type specified in -Table 12. The rank of $y$ must be the same of $x$. -
              desc_a
              contains data structures for communications.
              @@ -314,74 +164,18 @@ Intent: in.
              Specified as: an object of type descdatapsb_desc_type.
              -
              trans
              -
              indicates what kind of operation to perform. -
              -
              trans = N
              -
              the operation is specified by equation 1 -
              -
              trans = T
              -
              the operation is specified by equation -2 -
              -
              trans = C
              -
              the operation is specified by equation -3 -
              -
              -Scope: global -
              -Type: optional -
              -Intent: in. -
              -Default: $trans = N$ -
              -Specified as: a character variable. - -

              -

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

              -

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


              - next - + up - previous - contents
              - Next: psb_spsm Triangular - Up: Computational routines - Previous: psb_normi Infinity -   Next: psb_spmm Sparse + Up: Computational routines + Previous: psb_norm1 1-Norm +   Contents diff --git a/docs/html/node6.html b/docs/html/node6.html index 71aad89b..7bfa16b7 100644 --- a/docs/html/node6.html +++ b/docs/html/node6.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
              - Next: Next: User-defined index mappings - Up: Up: General overview - Previous: Previous: Library contents -   Contents

              @@ -249,32 +249,32 @@ from optimal. Subsections
              - next - up - previous - contents
              - Next: Next: User-defined index mappings - Up: Up: General overview - Previous: Previous: Library contents -   Contents diff --git a/docs/html/node60.html b/docs/html/node60.html index 8bed66f7..dc3b180f 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_spsm -- Triangular System Solve - +psb_spmm -- Sparse Matrix by Dense Matrix Product + @@ -18,77 +18,111 @@ original version by: Nikos Drakos, CBLU, University of Leeds + - + - next - + up - previous - contents
              - Next: Communication routines - Up: Computational routines - Previous: psb_spmm Sparse -   Next: psb_spsm Triangular + Up: Computational routines + Previous: psb_normi Infinity +   Contents

              -

              -psb_spsm -- Triangular System Solve +

              +psb_spmm -- Sparse Matrix by Dense Matrix + Product

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

              -

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

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

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

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

              where:

              $x$
              is the global dense matrix
              $T$
              -
              is the global sparse block triangular submatrix $A$ +
              is the global sparse matrix $T$ -
              -
              $D$
              -
              is the scaling diagonal matrix. + SRC="img1.png" + ALT="$A$">
              -

              -

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


              -
              +
              -
              Table 13: +Table 12: Data types
              - + - + - + - +
              $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
              @@ -178,6 +196,13 @@ Data types


              +

              +

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

              Type:
              @@ -199,14 +224,14 @@ Type: required Intent: in.
              Specified as: a number of the data type indicated in -Table 13. +Table 12. -
              t
              -
              the global portion of the sparse matrix +
              a
              +
              the local portion of the sparse matrix $T$. + SRC="img1.png" + ALT="$A$">.
              Scope: local
              @@ -214,13 +239,12 @@ Type: required
              Intent: in.
              -Specified as: an object type specified in -§ 3. +Specified as: an object of type spdatapsb_Tspmat_type.
              x
              the local portion of global dense matrix $x$. @@ -233,8 +257,8 @@ Intent: in.
              Specified as: a rank one or two array or an object of type vdatapsb_T_vect_type containing numbers of type specified in -Table 13. The rank of 12. The rank of $x$ must be the same of required
              Intent: in.
              -Specified as: a number of the data type indicated in Table 13. +Specified as: a number of the data type indicated in Table 12.
              y
              the local portion of global dense matrix @@ -271,11 +295,11 @@ Intent: inout.
              Specified as: a rank one or two array or an object of type vdatapsb_T_vect_type containing numbers of type specified in -Table 13. The rank of 12. The rank of $y$ must be the same of $x$.
              @@ -291,16 +315,18 @@ Intent: in. Specified as: an object of type descdatapsb_desc_type.
              trans
              -
              specify with unitd the operation to perform. +
              indicates what kind of operation to perform.
              -
              trans = 'N'
              -
              the operation is with no transposed matrix +
              trans = N
              +
              the operation is specified by equation 1
              -
              trans = 'T'
              -
              the operation is with transposed matrix. +
              trans = T
              +
              the operation is specified by equation +2
              -
              trans = 'C'
              -
              the operation is with conjugate transposed matrix. +
              trans = C
              +
              the operation is specified by equation +3
              Scope: global @@ -315,82 +341,11 @@ Default: $trans = N$
              Specified as: a character variable. -
              -
              unitd
              -
              specify with trans the operation to perform. -
              -
              unitd = 'U'
              -
              the operation is with no scaling -
              -
              unitd = 'L'
              -
              the operation is with left scaling -
              -
              unitd = 'R'
              -
              the operation is with right scaling. -
              -
              -Scope: global -
              -Type: optional -
              -Intent: in. -
              -Default: $unitd = U$ -
              -Specified as: a character variable. -
              -
              choice
              -
              specifies the update of overlap elements to be performed - on exit: -
              -
              -
              psb_none_ -
              -
              -
              psb_sum_ -
              -
              -
              psb_avg_ -
              -
              -
              psb_square_root_ -
              -
              -Scope: global -
              -Type: optional -
              -Intent: in. -
              -Default: psb_avg_ -
              -Specified as: an integer variable. -
              -
              diag
              -
              the diagonal scaling matrix. -
              -Scope: local -
              -Type: optional -
              -Intent: in. -
              -Default: -$diag(1) = 1 (no scaling)$ -
              -Specified as: a rank one array containing numbers of the type -indicated in Table 13. + +

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

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


              - next - + up - previous - contents
              - Next: Communication routines - Up: Computational routines - Previous: psb_spmm Sparse -   Next: psb_spsm Triangular + Up: Computational routines + Previous: psb_normi Infinity +   Contents diff --git a/docs/html/node61.html b/docs/html/node61.html index 1423970d..3bc502cf 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 --> -Communication routines - +psb_spsm -- Triangular System Solve + @@ -18,63 +18,453 @@ 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 +

              -


              - -Subsections - - - -

              +This subroutine computes the Triangular System Solve: + +

              +

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

              + +

              +where: +

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

              +

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

              +

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

              +
              + +

              +

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

              +

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

              +


              + + +next + +up + +previous + +contents +
              + Next: Communication routines + Up: Computational routines + Previous: psb_spmm Sparse +   Contents + diff --git a/docs/html/node62.html b/docs/html/node62.html index 0ec842bf..40628059 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_halo -- Halo Data Communication - +Communication routines + @@ -18,640 +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 -

              +

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

              -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 14: -Data types
              -
              - - - - - - - - - - - - - - - - - - - -
              $\alpha$, $x$Subroutine
              Integerpsb_halo
              Short Precision Realpsb_halo
              Long Precision Realpsb_halo
              Short Precision Complexpsb_halo
              Long Precision Complexpsb_halo
              -
              -
              -

              -
              - -

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

              -

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

              -

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

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

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

              -


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

              + +Subsections + + + +

              diff --git a/docs/html/node63.html b/docs/html/node63.html index 1cf8dca0..18f80190 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_ovrl -- Overlap Update - +psb_halo -- Halo Data Communication + @@ -20,112 +20,103 @@ 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:


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

              where:
              $x$
              -
              is the global dense submatrix $x$ -
              -
              $Q$
              -
              is the overlap operator; it is the composition of two -operators $ P_a$ and $ P^{T}$. +
              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/node64.html b/docs/html/node64.html index 5ae55b3e..a2fc6b2e 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_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="img59.png" + ALT="\begin{displaymath}x \leftarrow Q x \end{displaymath}">

              where:
              $glob\_x$
              -
              is the global submatrix -$glob\_x_{1:m,1:n}$ -
              -
              $loc\_x_i$
              -
              is the local portion of global dense matrix on -process $i$. + WIDTH="13" HEIGHT="13" ALIGN="BOTTOM" BORDER="0" + SRC="img20.png" + ALT="$x$"> +
              is the global dense submatrix $x$
              $collect$
              -
              is the collect function. + WIDTH="16" HEIGHT="30" ALIGN="MIDDLE" BORDER="0" + SRC="img60.png" + ALT="$Q$"> +
              is the overlap operator; it is the composition of two +operators $ P_a$ and $ P^{T}$.


              -
              +
              Table 15: +Table 14: 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
              @@ -137,13 +128,13 @@ Data types


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

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

              @@ -236,7 +203,7 @@ Specified as: a one dimensional array of the same type of
              x
              global dense result matrix $x$.
              @@ -246,12 +213,15 @@ Type: required
              Intent: inout.
              -Specified as: an array of rank one or two +Returned as: a rank one or two array containing numbers of type specified in -Table 15. +Table 14.
              info
              -
              Error code. +
              the local portion of result submatrix $y$.
              Scope: local
              @@ -259,80 +229,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 8: +Figure 7: Sample discretization mesh.
              \includegraphics[scale=0.65]{figures/try8x8_ov.eps} + WIDTH="357" HEIGHT="313" ALIGN="BOTTOM" BORDER="0" + SRC="img58.png" + ALT="\includegraphics[scale=0.45]{figures/try8x8.eps}"> \rotatebox{-90}{\includegraphics[scale=0.65]{figures/try8x8_ov}} + WIDTH="1" HEIGHT="2" ALIGN="BOTTOM" BORDER="0" + SRC="img57.png" + ALT="\rotatebox{-90}{\includegraphics[scale=0.45]{figures/try8x8}}">
              -Example of use -Consider the discretization mesh depicted in fig. 8, -partitioned among two processes as shown by the dashed lines, with an -overlap of 1 extra layer with respect to the partition of -fig. 7; the data -distribution is such that each process will own 40 entries in the -index space, with an overlap of 16 entries placed at local indices 25 -through 40; the halo will run from local index 41 through local index 48.. If process 0 assigns an initial value of 1 to its entries +

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

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

              @@ -355,7 +291,7 @@ Process 1 - + @@ -363,7 +299,7 @@ Process 1 - + @@ -371,7 +307,7 @@ Process 1 - + @@ -379,7 +315,7 @@ Process 1 - + @@ -387,7 +323,7 @@ Process 1 - + @@ -395,7 +331,7 @@ Process 1 - + @@ -403,7 +339,7 @@ Process 1 - + @@ -411,7 +347,7 @@ Process 1 - + @@ -510,7 +446,7 @@ Process 1 +21 @@ -518,7 +454,7 @@ Process 1 +22 @@ -526,7 +462,7 @@ Process 1 +23 @@ -534,7 +470,7 @@ Process 1 +24 @@ -542,195 +478,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
              @@ -739,26 +611,26 @@ Process 1
              -
              Table 16: +Table 15: Data types
              + WIDTH="13" HEIGHT="13" ALIGN="BOTTOM" BORDER="0" + SRC="img20.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
              @@ -148,13 +137,13 @@ Data types


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

              @@ -164,21 +153,21 @@ call psb_gather(glob_x, loc_x, desc_a, info, root)
              On Entry
              -
              loc_x
              -
              the local portion of global dense matrix -$glob\_x$. +
              x
              +
              global dense matrix $x$.
              Scope: local
              -Type: required +Type: required
              -Intent: in. +Intent: inout.
              Specified as: a rank one or two array or an object of type vdatapsb_T_vect_type -indicated in Table 16. +containing numbers of type specified in +Table 15.
              desc_a
              contains data structures for communications. @@ -191,43 +180,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="img66.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 with the ALLOCATABLE attribute. +Specified as: an array of rank one or two +containing numbers of type specified in +Table 15.
              info
              Error code. @@ -242,29 +263,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 8: +Sample discretization mesh.
              +
              +\includegraphics[scale=0.65]{figures/try8x8_ov.eps} + + +\rotatebox{-90}{\includegraphics[scale=0.65]{figures/try8x8_ov}} + +
              +
              + +Example of use +Consider the discretization mesh depicted in fig. 8, +partitioned among two processes as shown by the dashed lines, with an +overlap of 1 extra layer with respect to the partition of +fig. 7; the data +distribution is such that each process will own 40 entries in the +index space, with an overlap of 16 entries placed at local indices 25 +through 40; the halo will run from local index 41 through local index 48.. If process 0 assigns an initial value of 1 to its entries +in the $x$ vector, and process 1 assigns a value of 2, then after a +call to psb_ovrl with psb_avg_ and a call to +psb_halo_ the contents of the local vectors will be the +following (showing a transition among the two subdomains) + +

              +
              +

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


              - 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/node65.html b/docs/html/node65.html index 5ec6075a..72ed324b 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_scatter -- Scatter Global Dense Matrix - +psb_gather -- Gather Global Dense Matrix + @@ -18,79 +18,81 @@ 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="img69.png" + ALT="\begin{displaymath}glob\_x \leftarrow collect(loc\_x_i) \end{displaymath}">

              where:
              $glob\_x$
              -
              is the global matrix $glob\_x_{1:m,1:n}$
              $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="img73.png" + ALT="$collect$"> +
              is the collect function.


              -
              +
              -
              Table 17: +Table 16: 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
              @@ -146,11 +148,11 @@ Data types


              \begin{lstlisting}
-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)
 \end{lstlisting}
              @@ -162,16 +164,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 or an object of type vdatapsb_T_vect_type +indicated in Table 16.
              desc_a
              contains data structures for communications. @@ -186,10 +193,10 @@ 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
              @@ -201,31 +208,26 @@ 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 17. +Specified as: a rank one or two array with the ALLOCATABLE attribute.
              info
              Error code. @@ -243,26 +245,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/node66.html b/docs/html/node66.html index be70405e..85e5977b 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 --> -Data management routines - +psb_scatter -- Scatter Global Dense Matrix + @@ -18,119 +18,253 @@ 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 17: +Data types
              +
              + + + + + + + + + + + + + + + + + + + +
              $x_i, y$Subroutine
              Integerpsb_scatter
              Short Precision Realpsb_scatter
              Long Precision Realpsb_scatter
              Short Precision Complexpsb_scatter
              Long Precision Complexpsb_scatter
              +
              +
              +


              -Data management routines -

              -


              - -Subsections +
              +\begin{lstlisting}
+call psb_scatter(glob_x, loc_x, desc_a, info, root)
+call psb_scatter(glob_x, loc_x, desc_a, info, root)
+\end{lstlisting} +
              - - -

              +

              +

              +
              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 17. +
              +
              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/node67.html b/docs/html/node67.html index 71208b78..d0a9cb2f 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_cdall -- Allocates a communication descriptor - +Data management routines + @@ -18,435 +18,119 @@ 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.,lidx=lidx])
              -call psb_cdall(icontxt, desc_a, info,nl=nl)
              -call psb_cdall(icontxt, desc_a, info,mg=mg,repl=.true.)
              -
              - -

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

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

              -

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

              -

              -
              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. -
                -
                lidx
                -
                The optional argument lidx is available for - those cases in which the user has already established a - global-to-local mapping; if it is specified, each index in - vl(i) will be mapped to the corresponding local index - lidx(i). When specifying the argument lidx the user - would also likely employ lidx in calls to psb_cdins - and local in calls to psb_spins and psb_geins; - see also sec. 2.3.1. -
                -
                nl
                -
                If this argument is specified alone (i.e. without vl) - the result is a generalized row-block distribution in which each - process $I$ gets assigned a consecutive chunk of $N_I=nl$ global - indices. -
                -
                repl
                -
                This arguments specifies to replicate all indices on - all processes. This is a special purpose data allocation that is - useful in the construction of some multilevel preconditioners. -
                -
                -
              2. -
              3. On exit from this routine the descriptor is in the build - state. -
              4. -
              5. Calling the routine with vg or parts implies that - every process will scan the entire index space to figure out the - local indices. -
              6. -
              7. Overlapped indices are possible with both parts and - vl invocations. -
              8. -
              9. When the subroutine is invoked with vl in - conjunction with globalcheck=.true., it will perform a scan - of the index space to search for overlap or orphan indices. -
              10. -
              11. When the subroutine is invoked with vl in - conjunction with globalcheck=.false., no index space scan - will take place. Thus it is the responsibility of the user to make - sure that the indices specified in vl have neither orphans nor - overlaps; if this assumption fails, results will be - unpredictable. -
              12. -
              13. Orphan and overlap indices are - impossible by construction when the subroutine is invoked with - nl (alone), or vg. -
              14. -
              - -

              -


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

              diff --git a/docs/html/node68.html b/docs/html/node68.html index 2aa146c1..b6e2e06f 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_cdins -- Communication descriptor insert routine - +psb_cdall -- Allocates a communication descriptor + @@ -20,141 +20,207 @@ 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 [,ila,jla])
              -call psb_cdins(nz,ja,desc,info[,jla,mask,lidx])
              +call psb_cdall(icontxt, desc_a, info,mg=mg,parts=parts)
              +call psb_cdall(icontxt, desc_a, info,vg=vg,[mg=mg,flag=flag])
              +call psb_cdall(icontxt, desc_a, info,vl=vl,[nl=nl,globalcheck=.true.,lidx=lidx])
              +call psb_cdall(icontxt, desc_a, info,nl=nl)
              +call psb_cdall(icontxt, desc_a, info,mg=mg,repl=.true.)
               

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

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

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

              +

              +
              mg
              +
              the (global) number of rows of the problem.
              -Scope: local. +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: required. +Type:optional.
              Intent: in.
              -Specified as: an integer array of length $nz$. +Specified as: an integer value. May be specified together with +vl.
              -
              ja
              -
              the indices of the end vertex of the edges being inserted. +
              repl
              +
              Data allocation: build a replicated index space + (i.e. all processes own all indices).
              -Scope: local. +Scope:global.
              -Type: required. +Type:optional.
              Intent: in.
              -Specified as: an integer array of length $nz$. +Specified as: the logical value .true.
              -
              mask
              -
              Mask entries in ja, they are inserted only when the - corresponding mask entries are .true. +
              globalcheck
              +
              Data allocation: do global checks on the local + index lists vl
              -Scope: local. +Scope:global.
              -Type: optional. +Type:optional.
              Intent: in.
              -Specified as: a logical array of length $nz$, default .true.. +Specified as: a logical value, default: .true.
              lidx
              -
              User defined local indices for ja. +
              Data allocation: the set of local indices + $lidx(1:nl)$ to be assigned to the global indices $vl$.
              -Scope: local. +Scope:local.
              -Type: optional. +Type:optional.
              Intent: in.
              -Specified as: an integer array of length $nz$. +Specified as: an integer array.
              @@ -164,13 +230,13 @@ Specified as: an integer array of length
              desc_a
              -
              the updated communication descriptor. +
              the communication descriptor.
              Scope:local.
              Type:required.
              -Intent: inout. +Intent: out.
              Specified as: a structured data of type descdatapsb_desc_type.
              @@ -185,75 +251,200 @@ Intent: out.
              An integer value; 0 means no error has been detected. -
              ila
              -
              the local indices of the starting vertex of the edges being inserted. -
              -Scope: local. -
              -Type: optional. -
              -Intent: out. -
              -Specified as: an integer array of length $nz$. -
              -
              jla
              -
              the local indices of the end vertex of the edges being inserted. -
              -Scope: local. -
              -Type: optional. -
              -Intent: out. -
              -Specified as: an integer array of length $nz$. +

              -

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


              - 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/node69.html b/docs/html/node69.html index 9e3e95c3..c89696dc 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 --> -psb_cdasb -- Communication descriptor assembly routine - +psb_cdins -- Communication descriptor insert routine + @@ -20,65 +20,141 @@ 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 +

              +psb_cdins -- Communication descriptor insert routine

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

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

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

              +

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

              -


              +
              + + +next + +up + +previous + +contents +
              + Next: psb_cdasb Communication + Up: Data management routines + Previous: psb_cdall Allocates +   Contents + diff --git a/docs/html/node7.html b/docs/html/node7.html index 3f4c89ff..efd760c7 100644 --- a/docs/html/node7.html +++ b/docs/html/node7.html @@ -25,26 +25,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
              - Next: Next: Programming model - Up: Up: Application structure - Previous: Previous: Application structure -   Contents

              diff --git a/docs/html/node70.html b/docs/html/node70.html index b4bd6200..bd9437d9 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 --> -psb_cdcpy -- Copies a communication descriptor - +psb_cdasb -- Communication descriptor assembly routine + @@ -20,66 +20,65 @@ 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 +87,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 +110,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/node71.html b/docs/html/node71.html index 49becd57..44aa518a 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_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/node72.html b/docs/html/node72.html index 90cdef60..eb76cda2 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_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_Tspmat_type. -
              -
              nl
              -
              the number of additional layers desired. -
              -Scope:global. -
              -Type:required. -
              -Intent: in. -
              -Specified as: an integer value $nl\ge 0$. -
              -
              extype
              -
              the kind of estension required. -
              -Scope:global. -
              -Type:optional . -
              -Intent: in. +Intent: inout.
              -Specified as: an integer value -psb_ovt_xhal_, psb_ovt_asov_, default: psb_ovt_xhal_ - -

              +Specified as: a structured data of type descdatapsb_desc_type.

              @@ -128,17 +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/node73.html b/docs/html/node73.html index f676f4e0..9ab411cb 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_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_Tspmat_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_Tspmat_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/node74.html b/docs/html/node74.html index 9e495f8a..2811d33c 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_spins -- Insert a cloud of elements into a sparse matrix - +psb_spall -- Allocates a sparse matrix + @@ -20,82 +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 [,local])
              +call psb_spall(a, desc_a, info, nnz)
               

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

              +Specified as: an integer value.

              @@ -157,27 +99,16 @@ Specified as: a logical value; default: .false..
              a
              -
              the matrix into which elements will be inserted. +
              the matrix to be allocated.
              Scope:local
              Type:required
              -Intent: inout. +Intent: out.
              Specified as: a structured data of type spdatapsb_Tspmat_type.
              -
              desc_a
              -
              The communication descriptor. -
              -Scope: local. -
              -Type: required. -
              -Intent: inout. -
              -Specified as: a variable of type descdatapsb_desc_type. -
              info
              Error code.
              @@ -190,84 +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. -
              7. The coefficients to be inserted are represented by the ordered - triples -$ia(i),ja(i),val(i)$, for $i=1,\dots,nz$; these triples - should belong to the current process, i.e. $ia(i)$ should be one of - the local indices, but are otherwise arbitrary; -
              8. -
              9. There is no - requirement that a given row must be passed in its entirety to a - single call to this routine: the buildup of a row may be split into - as many calls as desired; -
              10. -
              11. Coefficients from different rows may also be mixed up freely - in a single call, according to the application needs; -
              12. -
              13. Any coefficients from matrix rows not owned by the calling - process are silently ignored; +
              14. On exit from this routine the sparse matrix is in the build + state.
              15. -
              16. If the descriptor is in the assembled state, then any entries in - the sparse matrix that would generate additional communication - requirements are ignored; +
              17. The descriptor may be in either the build or assembled state.
              18. -
              19. If the matrix is in the update state, any entries in positions - that were not present in the original matrix are ignored. +
              20. Providing a good estimate for the number of nonzeroes $nnz$ in + the assembled matrix may substantially improve performance in the + matrix build phase, as it will reduce or eliminate the need for + (potentially multiple) data reallocations.


              - next - + up - previous - contents
              - Next: psb_spasb Sparse - Up: Data management routines - Previous: psb_spall Allocates -   Next: psb_spins Insert + Up: Data management routines + Previous: psb_cdbldext Build +   Contents diff --git a/docs/html/node75.html b/docs/html/node75.html index b5aa7461..bfa9fd5e 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_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, mold)
              +call psb_spins(nz, ia, ja, val, a, desc_a, info [,local])
               

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

              @@ -132,7 +157,7 @@ Specified as: an object of a class derived from spbasedatapsb_T_base_sparse_
              a
              -
              the matrix to be assembled. +
              the matrix into which elements will be inserted.
              Scope:local
              @@ -142,6 +167,17 @@ Intent: inout.
              Specified as: a structured data of type spdatapsb_Tspmat_type.
              +
              desc_a
              +
              The communication descriptor. +
              +Scope: local. +
              +Type: required. +
              +Intent: inout. +
              +Specified as: a variable of type descdatapsb_desc_type. +
              info
              Error code.
              @@ -159,51 +195,79 @@ 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. On entry to this routine the sparse matrix may be in either the + build or update state. +
              5. +
              6. If the descriptor is in the build state, then the sparse matrix + must also be in the build state; the action of the routine is to + (implicitly) call psb_cdins to add entries to the sparsity + pattern; each sparse matrix entry implicitly defines a graph edge, + that is passed to the descriptor routine for the appropriate + processing; +
              7. +
              8. The coefficients to be inserted are represented by the ordered + triples +$ia(i),ja(i),val(i)$, for $i=1,\dots,nz$; these triples + should belong to the current process, i.e. $ia(i)$ should be one of + the local indices, but are otherwise arbitrary;
              9. -
              10. The sparse matrix may be in either the build or update state; +
              11. There is no + requirement that a given row must be passed in its entirety to a + single call to this routine: the buildup of a row may be split into + as many calls as desired;
              12. -
              13. 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; +
              14. Coefficients from different rows may also be mixed up freely + in a single call, according to the application needs;
              15. -
              16. 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; +
              17. Any coefficients from matrix rows not owned by the calling + process are silently ignored;
              18. -
              19. The output storage format need not be the same on all - processes; +
              20. If the descriptor is in the assembled state, then any entries in + the sparse matrix that would generate additional communication + requirements are ignored;
              21. -
              22. On exit from this routine the matrix is in the assembled state, - and thus is suitable for the computational routines. +
              23. If the matrix is in the update state, any entries in positions + that were not present in the original matrix are 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/node76.html b/docs/html/node76.html index 9552fd2f..98599659 100644 --- a/docs/html/node76.html +++ b/docs/html/node76.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, mold)
               

              @@ -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_Tspmat_type. -
              desc_a
              the communication descriptor.
              @@ -90,6 +79,51 @@ Intent: in.
              Specified as: a structured data of type descdatapsb_desc_type.
              +
              afmt
              +
              the storage format for the sparse matrix. +
              +Scope: local. +
              +Type: optional. +
              +Intent: in. +
              +Specified as: an array of characters. Defalt: 'CSR'. +
              +
              upd
              +
              Provide for updates to the matrix coefficients. +
              +Scope: global. +
              +Type: optional. +
              +Intent: in. +
              +Specified as: integer, possible values: psb_upd_srch_, psb_upd_perm_ +
              +
              dupl
              +
              How to handle duplicate coefficients. +
              +Scope: global. +
              +Type: optional. +
              +Intent: in. +
              +Specified as: integer, possible values: psb_dupl_ovwrt_, +psb_dupl_add_, psb_dupl_err_. +
              +
              mold
              +
              The desired dynamic type for the internal matrix storage. +
              +Scope: local. +
              +Type: optional. +
              +Intent: in. +
              +Specified as: an object of a class derived from spbasedatapsb_T_base_sparse_mat. +

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

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

              -


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

              +


              + + +next + +up + +previous + +contents +
              + Next: psb_spfree Frees + Up: Data management routines + Previous: psb_spins Insert +   Contents + diff --git a/docs/html/node77.html b/docs/html/node77.html index 69324c35..90b442cc 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_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/node78.html b/docs/html/node78.html index dd4aa559..b6ba441a 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_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_Tspmat_type. +
              +
              desc_a
              +
              the communication descriptor.
              -Scope: local +Scope:local.
              -Type: optional +Type:required.
              Intent: in.
              -Specified as: Integer scalar, default $1$. It is not a valid argument if $x$ is a -rank-1 array. +Specified as: a structured data of type descdatapsb_desc_type.
              -
              lb
              -
              The lower bound for the column index range of the dense matrix to be allocated. +
              clear
              +
              Choose whether to zero out matrix coefficients
              -Scope: local +Scope:local.
              -Type: optional +Type:optional.
              Intent: in.
              -Specified as: Integer scalar, default $1$. It is not a valid argument if $x$ is a -rank-1 array. +Default: true.
              @@ -122,18 +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 -or an object of type vdatapsb_T_vect_type, of type real, complex or integer. -
              info
              Error code.
              @@ -146,32 +121,16 @@ Intent: out. An integer value; 0 means no error has been detected.
              +Notes + +
                +
              1. On exit from this routine the sparse matrix is in the update + state. +
              2. +

              -


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

              diff --git a/docs/html/node79.html b/docs/html/node79.html index 7277abce..2ed1fab0 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_geins -- Dense matrix insertion routine - +psb_geall -- Allocates a dense matrix + @@ -20,135 +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,local])
              +call psb_geall(x, desc_a, info, n, lb)
               

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

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

              @@ -158,16 +123,16 @@ Specified as: a logical value; default: .false..
              x
              -
              the output dense matrix. +
              The dense matrix to be allocated.
              Scope: local
              Type: required
              -Intent: inout. +Intent: out.
              -Specified as: a rank one or two array or an object of type vdatapsb_T_vect_type, of -type real, complex or integer. +Specified as: a rank one or two array with the ALLOCATABLE attribute +or an object of type vdatapsb_T_vect_type, of type real, complex or integer.
              info
              Error code. @@ -182,40 +147,29 @@ 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 -   Next: psb_geins Dense + Up: Data management routines + Previous: psb_sprn Reinit +   Contents diff --git a/docs/html/node8.html b/docs/html/node8.html index 9213f14f..46f593a7 100644 --- a/docs/html/node8.html +++ b/docs/html/node8.html @@ -25,26 +25,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
              - Next: Next: Data Structures and Classes - Up: Up: General overview - Previous: Previous: User-defined index mappings -   Contents

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


              - next - up - previous - contents
              - Next: Next: Data Structures and Classes - Up: Up: General overview - Previous: Previous: User-defined index mappings -   Contents diff --git a/docs/html/node80.html b/docs/html/node80.html index a61bef3f..6e893046 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_geasb -- Assembly a dense matrix - +psb_geins -- Dense matrix insertion routine + @@ -20,79 +20,135 @@ 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, mold)
              +call psb_geins(m, irw, val, x, desc_a, info [,dupl,local])
               

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

              @@ -102,7 +158,7 @@ only allowed when
              x
              -
              The dense matrix to be assembled. +
              the output dense matrix.
              Scope: local
              @@ -110,8 +166,8 @@ Type: required
              Intent: inout.
              -Specified as: a rank one or two array with the ALLOCATABLE or an -object of type vdatapsb_T_vect_type, of type real, complex or integer. +Specified as: a rank one or two array or an object of type vdatapsb_T_vect_type, of +type real, complex or integer.
              info
              Error code. @@ -125,7 +181,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/node81.html b/docs/html/node81.html index a3d98fbe..689f0e09 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_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, mold)
               

              @@ -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 or an -object of type vdatapsb_T_vect_type, of type real, complex or integer. -
              -

              -

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

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

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



              diff --git a/docs/html/node82.html b/docs/html/node82.html index 03a388f4..f6eece0d 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_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 or an +object of type vdatapsb_T_vect_type, of type real, complex or integer.
              -Specified as: an integer one-dimensional array. -
              -
              x
              -
              The dense matrix to be permuted. +

              +

              +
              desc_a
              +
              The communication descriptor.
              Scope: local
              Type: required
              -Intent: inout. +Intent: in.
              -Specified as: a one or two dimensional array. +Specified as: a variable of type descdatapsb_desc_type.
              diff --git a/docs/html/node83.html b/docs/html/node83.html index 2596db8d..4d89a965 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_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/node84.html b/docs/html/node84.html index 999835ec..ccc4dbc6 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_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. +

              @@ -116,7 +128,7 @@ Specified as: a character variable Ignore, Warning or SRC="img21.png" ALT="$y$"> is not present, then $x$ is overwritten with the translated integer indices. Scope: global @@ -131,12 +143,12 @@ Specified as: a rank one integer array.

              If $y$ is not present, + ALT="$y$"> is present, then $y$ is overwritten with the translated integer indices, and $x$ is left unchanged. @@ -161,29 +173,41 @@ 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_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/node85.html b/docs/html/node85.html index b2cd1bf5..57561a74 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_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/node86.html b/docs/html/node86.html index eb1c9de1..908692e3 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_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/node87.html b/docs/html/node87.html index 4bb97132..f25a81d2 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 --> -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/node88.html b/docs/html/node88.html index c92f4aa7..43d6b740 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_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/node89.html b/docs/html/node89.html index c4487922..3117df46 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_get_boundary -- Extract list of boundary elements - +psb_local_index -- + @@ -20,45 +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)
               

              @@ -69,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. @@ -80,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. +

              @@ -87,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.
              @@ -117,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/node9.html b/docs/html/node9.html index 7501adb8..9a1d2d12 100644 --- a/docs/html/node9.html +++ b/docs/html/node9.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: Descriptor data structure - Up: Up: userhtml - Previous: Previous: Programming model -   Contents

              @@ -111,121 +111,123 @@ developer's documentation. Subsections
              - next - up - previous - contents
              - Next: Next: Descriptor data structure - Up: Up: userhtml - Previous: Previous: Programming model -   Contents diff --git a/docs/html/node90.html b/docs/html/node90.html index 2c59de71..fd5ba0dc 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_get_overlap -- Extract list of overlap elements - +psb_get_boundary -- Extract list of boundary elements + @@ -20,45 +20,45 @@ 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 +

              +psb_get_boundary -- Extract list of boundary elements

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

              @@ -87,8 +87,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 @@ -117,11 +117,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/node91.html b/docs/html/node91.html index 033de0af..55496a24 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_sp_getrow -- Extract row(s) from a sparse matrix - +psb_get_overlap -- Extract list of overlap elements + @@ -20,46 +20,45 @@ 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)
               

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

              On Entry
              -
              row
              -
              The (first) row to be extracted. +
              desc
              +
              the communication descriptor.
              -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_Tspmat_type. -
              -
              append
              -
              Whether to append or overwrite existing output. -
              -Scope:local -
              -Type:optional -
              -Intent: in. -
              -Specified as: a logical value default: false (overwrite). -
              -
              nzin
              -
              Input size to be appended to. -
              -Scope:local -
              -Type:optional -
              -Intent: in. -
              -Specified as: an integer $>0$. When append is true, specifies how many -entries in the output vectors are already filled. -
              -
              lrw
              -
              The last row to be extracted. -
              -Scope:local +Scope:local.
              -Type:optional +Type:required.
              Intent: in.
              -Specified as: an integer $>0$, default: $row$. - -

              +Specified as: a structured data of type descdatapsb_desc_type.

              @@ -147,50 +87,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.
              @@ -208,51 +117,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/node92.html b/docs/html/node92.html index df47ed57..7aedb1ee 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 --> -psb_sizeof -- Memory occupation - +psb_sp_getrow -- Extract row(s) from a sparse matrix + @@ -20,49 +20,46 @@ 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 +70,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_Tspmat_type.
              -
              desc_a
              -
              Communication descriptor. +
              append
              +
              Whether to append or overwrite existing output.
              -Scope: local +Scope:local +
              +Type:optional +
              +Intent: in. +
              +Specified as: a logical value default: false (overwrite). +
              +
              nzin
              +
              Input size to be appended to.
              -Type: required +Scope:local +
              +Type:optional
              Intent: in.
              -Specified as: a structured data of type descdatapsb_desc_type. +Specified as: an integer $>0$. When append is true, specifies how many +entries in the output vectors are already filled.
              -
              prec
              -
              Scope: local +
              lrw
              +
              The last row to be extracted. +
              +Scope:local
              -Type: required +Type:optional
              Intent: in.
              -Specified as: a preconditioner data structure precdatapsb_prec_type. +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/node93.html b/docs/html/node93.html index 325f7d59..434691eb 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 --> -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 - -

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

              -psb_hsort -- Sorting by the Heapsort algorithm

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

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

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

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

              -
              - -

              -

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

              - -

              -Notes - -

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

              - -

              -


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

              diff --git a/docs/html/node94.html b/docs/html/node94.html index 6282aca9..70075db7 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 --> -Parallel environment routines - +Sorting utilities -- + @@ -18,90 +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. +
              +Type:required.
              -Parallel environment routines - +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$. +
              +
              + +

              -


              - -Subsections - - - -

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

              + +

              +


              + + +next + +up + +previous + +contents +
              + Next: Parallel environment routines + Up: Data management routines + Previous: psb_sizeof Memory +   Contents + diff --git a/docs/html/node95.html b/docs/html/node95.html index 8fa1b920..aa4f5420 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 --> -psb_init -- Initializes PSBLAS parallel environment - +Parallel environment routines + @@ -18,162 +18,90 @@ 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)$. -
              -
              - -

              -

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

              -
              +Parallel environment routines +

              -Notes +


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

              -


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

              diff --git a/docs/html/node96.html b/docs/html/node96.html index 4f598fbb..3810920d 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 --> -psb_info -- Return information about PSBLAS parallel environment - +psb_init -- Initializes PSBLAS parallel environment + @@ -20,68 +20,96 @@ 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 +

              +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 +118,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 +130,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/node97.html b/docs/html/node97.html index b1890f75..f50df4b7 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 --> -psb_exit -- Exit from PSBLAS parallel environment - +psb_info -- Return information about PSBLAS parallel environment + @@ -20,53 +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 +

              +psb_info -- Return information about PSBLAS parallel environment

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

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

              Type:
              -
              Synchronous. +
              Asynchronous.
              On Entry
              @@ -83,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. -
              3. A call to this routine with close=.true. implies a call - to MPI_Finalize, after which no parallel routine may be called. +
              4. For processes in the virtual parallel machine the identifier + will satisfy +$0 \le iam \le np-1$;
              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/node98.html b/docs/html/node98.html index 19d0be0f..8695820e 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 --> -psb_get_mpicomm -- Get the MPI communicator - +psb_exit -- Exit from PSBLAS parallel environment + @@ -20,51 +20,53 @@ 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 +83,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: in.
              -Intent: out. -
              +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/node99.html b/docs/html/node99.html index d52f9e7f..b24389b1 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_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. @@ -106,293 +106,295 @@ March 31st, 2014.

            • get_global_cols -- Get number of global cols
            • get_context -- Get communication context + HREF="node16.html">get_global_indices -- Get vector of global indices
            • Clone -- clone current object + HREF="node17.html">get_context -- Get communication context
            • psb_cd_get_large_threshold -- Get threshold for - index mapping switch + HREF="node18.html">Clone -- clone current object
            • psb_cd_set_large_threshold -- Set threshold for + HREF="node19.html">psb_cd_get_large_threshold -- Get threshold for index mapping switch
            • Named Constants - + HREF="node20.html">psb_cd_set_large_threshold -- Set threshold for + index mapping switch
            • Sparse Matrix class -
                + HREF="node21.html">Named Constants +
            • Sparse Matrix Methods + HREF="node22.html">Sparse Matrix class + + HREF="node39.html">clone -- Clone current object
            • Dense Vector Data Structure -
                + HREF="node40.html">Named Constants +
            • Vector Methods + HREF="node41.html">Dense Vector Data Structure + + HREF="node45.html">get_vect -- Get a copy of the vector contents
            • Preconditioner data structure + HREF="node46.html">clone -- Clone current object -
            • Computational routines -
                + HREF="node47.html">Preconditioner data structure +
              +
            • psb_geaxpby -- General Dense Matrix Sum + HREF="node48.html">Computational routines +
              -
            • Communication routines -
              • psb_halo -- Halo Data Communication + HREF="node62.html">Communication routines +
                -
              • Data management routines -
                • psb_cdall -- Allocates a communication descriptor + HREF="node67.html">Data management routines +
                  -
                • Parallel environment routines -
                  • psb_init -- Initializes PSBLAS parallel - environment + HREF="node95.html">Parallel environment routines +
                    -
                  • Error handling
                  • Utilities -
                      + HREF="node112.html">Error handling
                    • hb_read -- Read a sparse matrix from a file in the - Harwell-Boeing format + HREF="node113.html">Utilities +
                      -
                    • Preconditioner routines -
                      • psb_precinit -- Initialize a preconditioner + HREF="node120.html">Preconditioner routines +
                        -
                      • Iterative Methods -

                        diff --git a/docs/psblas-3.4.pdf b/docs/psblas-3.4.pdf index dea484bc..d147d87e 100644 --- a/docs/psblas-3.4.pdf +++ b/docs/psblas-3.4.pdf @@ -94,696 +94,702 @@ endobj << /S /GoTo /D (section*.6) >> endobj 68 0 obj -(get\137context) +(get\137global\137rows) endobj 69 0 obj << /S /GoTo /D (section*.7) >> endobj 72 0 obj -(Clone) +(get\137context) endobj 73 0 obj << /S /GoTo /D (section*.8) >> endobj 76 0 obj -(psb\137cd\137get\137large\137threshold) +(Clone) endobj 77 0 obj << /S /GoTo /D (section*.9) >> endobj 80 0 obj -(psb\137cd\137set\137large\137threshold) +(psb\137cd\137get\137large\137threshold) endobj 81 0 obj -<< /S /GoTo /D (subsubsection.3.1.2) >> +<< /S /GoTo /D (section*.10) >> endobj 84 0 obj -(3.1.2 Named Constants) +(psb\137cd\137set\137large\137threshold) endobj 85 0 obj -<< /S /GoTo /D (subsection.3.2) >> +<< /S /GoTo /D (subsubsection.3.1.2) >> endobj 88 0 obj -(3.2 Sparse Matrix class) +(3.1.2 Named Constants) endobj 89 0 obj -<< /S /GoTo /D (subsubsection.3.2.1) >> +<< /S /GoTo /D (subsection.3.2) >> endobj 92 0 obj -(3.2.1 Sparse Matrix Methods) +(3.2 Sparse Matrix class) endobj 93 0 obj -<< /S /GoTo /D (section*.10) >> +<< /S /GoTo /D (subsubsection.3.2.1) >> endobj 96 0 obj -(get\137nrows) +(3.2.1 Sparse Matrix Methods) endobj 97 0 obj << /S /GoTo /D (section*.11) >> endobj 100 0 obj -(get\137ncols) +(get\137nrows) endobj 101 0 obj << /S /GoTo /D (section*.12) >> endobj 104 0 obj -(get\137nnzeros) +(get\137ncols) endobj 105 0 obj << /S /GoTo /D (section*.13) >> endobj 108 0 obj -(get\137size ) +(get\137nnzeros) endobj 109 0 obj << /S /GoTo /D (section*.14) >> endobj 112 0 obj -(sizeof ) +(get\137size ) endobj 113 0 obj << /S /GoTo /D (section*.15) >> endobj 116 0 obj -(get\137fmt ) +(sizeof ) endobj 117 0 obj << /S /GoTo /D (section*.16) >> endobj 120 0 obj -(is\137bld, is\137upd, is\137asb ) +(get\137fmt ) endobj 121 0 obj << /S /GoTo /D (section*.17) >> endobj 124 0 obj -(is\137lower, is\137upper, is\137triangle, is\137unit) +(is\137bld, is\137upd, is\137asb ) endobj 125 0 obj << /S /GoTo /D (section*.18) >> endobj 128 0 obj -(cscnv) +(is\137lower, is\137upper, is\137triangle, is\137unit) endobj 129 0 obj << /S /GoTo /D (section*.19) >> endobj 132 0 obj -(csclip) +(cscnv) endobj 133 0 obj << /S /GoTo /D (section*.20) >> endobj 136 0 obj -(get\137diag) +(csclip) endobj 137 0 obj << /S /GoTo /D (section*.21) >> endobj 140 0 obj -(clip\137diag) +(get\137diag) endobj 141 0 obj << /S /GoTo /D (section*.22) >> endobj 144 0 obj -(tril) +(clip\137diag) endobj 145 0 obj << /S /GoTo /D (section*.23) >> endobj 148 0 obj -(triu) +(tril) endobj 149 0 obj << /S /GoTo /D (section*.24) >> endobj 152 0 obj -(psb\137set\137mat\137default) +(triu) endobj 153 0 obj << /S /GoTo /D (section*.25) >> endobj 156 0 obj -(clone) +(psb\137set\137mat\137default) endobj 157 0 obj -<< /S /GoTo /D (subsubsection.3.2.2) >> +<< /S /GoTo /D (section*.26) >> endobj 160 0 obj -(3.2.2 Named Constants) +(clone) endobj 161 0 obj -<< /S /GoTo /D (subsection.3.3) >> +<< /S /GoTo /D (subsubsection.3.2.2) >> endobj 164 0 obj -(3.3 Dense Vector Data Structure) +(3.2.2 Named Constants) endobj 165 0 obj -<< /S /GoTo /D (subsubsection.3.3.1) >> +<< /S /GoTo /D (subsection.3.3) >> endobj 168 0 obj -(3.3.1 Vector Methods) +(3.3 Dense Vector Data Structure) endobj 169 0 obj -<< /S /GoTo /D (section*.26) >> +<< /S /GoTo /D (subsubsection.3.3.1) >> endobj 172 0 obj -(get\137nrows) +(3.3.1 Vector Methods) endobj 173 0 obj << /S /GoTo /D (section*.27) >> endobj 176 0 obj -(sizeof ) +(get\137nrows) endobj 177 0 obj << /S /GoTo /D (section*.28) >> endobj 180 0 obj -(get\137vect ) +(sizeof ) endobj 181 0 obj << /S /GoTo /D (section*.29) >> endobj 184 0 obj -(clone) +(get\137vect ) endobj 185 0 obj -<< /S /GoTo /D (subsection.3.4) >> +<< /S /GoTo /D (section*.30) >> endobj 188 0 obj -(3.4 Preconditioner data structure) +(clone) endobj 189 0 obj -<< /S /GoTo /D (section.4) >> +<< /S /GoTo /D (subsection.3.4) >> endobj 192 0 obj -(4 Computational routines) +(3.4 Preconditioner data structure) endobj 193 0 obj -<< /S /GoTo /D (section*.30) >> +<< /S /GoTo /D (section.4) >> endobj 196 0 obj -(psb\137geaxpby) +(4 Computational routines) endobj 197 0 obj << /S /GoTo /D (section*.31) >> endobj 200 0 obj -(psb\137gedot) +(psb\137geaxpby) endobj 201 0 obj << /S /GoTo /D (section*.32) >> endobj 204 0 obj -(psb\137gedots) +(psb\137gedot) endobj 205 0 obj << /S /GoTo /D (section*.33) >> endobj 208 0 obj -(psb\137normi) +(psb\137gedots) endobj 209 0 obj << /S /GoTo /D (section*.34) >> endobj 212 0 obj -(psb\137geamaxs) +(psb\137normi) endobj 213 0 obj << /S /GoTo /D (section*.35) >> endobj 216 0 obj -(psb\137norm1) +(psb\137geamaxs) endobj 217 0 obj << /S /GoTo /D (section*.36) >> endobj 220 0 obj -(psb\137geasums) +(psb\137norm1) endobj 221 0 obj << /S /GoTo /D (section*.37) >> endobj 224 0 obj -(psb\137norm2) +(psb\137geasums) endobj 225 0 obj << /S /GoTo /D (section*.38) >> endobj 228 0 obj -(psb\137genrm2s) +(psb\137norm2) endobj 229 0 obj << /S /GoTo /D (section*.39) >> endobj 232 0 obj -(psb\137norm1) +(psb\137genrm2s) endobj 233 0 obj << /S /GoTo /D (section*.40) >> endobj 236 0 obj -(psb\137normi) +(psb\137norm1) endobj 237 0 obj << /S /GoTo /D (section*.41) >> endobj 240 0 obj -(psb\137spmm) +(psb\137normi) endobj 241 0 obj << /S /GoTo /D (section*.42) >> endobj 244 0 obj -(psb\137spsm) +(psb\137spmm) endobj 245 0 obj -<< /S /GoTo /D (section.5) >> +<< /S /GoTo /D (section*.43) >> endobj 248 0 obj -(5 Communication routines) +(psb\137spsm) endobj 249 0 obj -<< /S /GoTo /D (section*.43) >> +<< /S /GoTo /D (section.5) >> endobj 252 0 obj -(psb\137halo) +(5 Communication routines) endobj 253 0 obj << /S /GoTo /D (section*.44) >> endobj 256 0 obj -(psb\137ovrl) +(psb\137halo) endobj 257 0 obj << /S /GoTo /D (section*.45) >> endobj 260 0 obj -(psb\137gather) +(psb\137ovrl) endobj 261 0 obj << /S /GoTo /D (section*.46) >> endobj 264 0 obj -(psb\137scatter) +(psb\137gather) endobj 265 0 obj -<< /S /GoTo /D (section.6) >> +<< /S /GoTo /D (section*.47) >> endobj 268 0 obj -(6 Data management routines) +(psb\137scatter) endobj 269 0 obj -<< /S /GoTo /D (section*.47) >> +<< /S /GoTo /D (section.6) >> endobj 272 0 obj -(psb\137cdall) +(6 Data management routines) endobj 273 0 obj << /S /GoTo /D (section*.48) >> endobj 276 0 obj -(psb\137cdins) +(psb\137cdall) endobj 277 0 obj << /S /GoTo /D (section*.49) >> endobj 280 0 obj -(psb\137cdasb) +(psb\137cdins) endobj 281 0 obj << /S /GoTo /D (section*.50) >> endobj 284 0 obj -(psb\137cdcpy) +(psb\137cdasb) endobj 285 0 obj << /S /GoTo /D (section*.51) >> endobj 288 0 obj -(psb\137cdfree) +(psb\137cdcpy) endobj 289 0 obj << /S /GoTo /D (section*.52) >> endobj 292 0 obj -(psb\137cdbldext) +(psb\137cdfree) endobj 293 0 obj << /S /GoTo /D (section*.53) >> endobj 296 0 obj -(psb\137spall) +(psb\137cdbldext) endobj 297 0 obj << /S /GoTo /D (section*.54) >> endobj 300 0 obj -(psb\137spins) +(psb\137spall) endobj 301 0 obj << /S /GoTo /D (section*.55) >> endobj 304 0 obj -(psb\137spasb) +(psb\137spins) endobj 305 0 obj << /S /GoTo /D (section*.56) >> endobj 308 0 obj -(psb\137spfree) +(psb\137spasb) endobj 309 0 obj << /S /GoTo /D (section*.57) >> endobj 312 0 obj -(psb\137sprn) +(psb\137spfree) endobj 313 0 obj << /S /GoTo /D (section*.58) >> endobj 316 0 obj -(psb\137geall) +(psb\137sprn) endobj 317 0 obj << /S /GoTo /D (section*.59) >> endobj 320 0 obj -(psb\137geins) +(psb\137geall) endobj 321 0 obj << /S /GoTo /D (section*.60) >> endobj 324 0 obj -(psb\137geasb) +(psb\137geins) endobj 325 0 obj << /S /GoTo /D (section*.61) >> endobj 328 0 obj -(psb\137gefree) +(psb\137geasb) endobj 329 0 obj << /S /GoTo /D (section*.62) >> endobj 332 0 obj -(psb\137gelp) +(psb\137gefree) endobj 333 0 obj << /S /GoTo /D (section*.63) >> endobj 336 0 obj -(psb\137glob\137to\137loc) +(psb\137gelp) endobj 337 0 obj << /S /GoTo /D (section*.64) >> endobj 340 0 obj -(psb\137loc\137to\137glob) +(psb\137glob\137to\137loc) endobj 341 0 obj << /S /GoTo /D (section*.65) >> endobj 344 0 obj -(psb\137is\137owned ) +(psb\137loc\137to\137glob) endobj 345 0 obj << /S /GoTo /D (section*.66) >> endobj 348 0 obj -(psb\137owned\137index ) +(psb\137is\137owned ) endobj 349 0 obj << /S /GoTo /D (section*.67) >> endobj 352 0 obj -(psb\137is\137local ) +(psb\137owned\137index ) endobj 353 0 obj << /S /GoTo /D (section*.68) >> endobj 356 0 obj -(psb\137local\137index ) +(psb\137is\137local ) endobj 357 0 obj << /S /GoTo /D (section*.69) >> endobj 360 0 obj -(psb\137get\137boundary) +(psb\137local\137index ) endobj 361 0 obj << /S /GoTo /D (section*.70) >> endobj 364 0 obj -(psb\137get\137overlap) +(psb\137get\137boundary) endobj 365 0 obj << /S /GoTo /D (section*.71) >> endobj 368 0 obj -(psb\137sp\137getrow) +(psb\137get\137overlap) endobj 369 0 obj << /S /GoTo /D (section*.72) >> endobj 372 0 obj -(psb\137sizeof) +(psb\137sp\137getrow) endobj 373 0 obj << /S /GoTo /D (section*.73) >> endobj 376 0 obj -(Sorting utilities) +(psb\137sizeof) endobj 377 0 obj -<< /S /GoTo /D (section.7) >> +<< /S /GoTo /D (section*.74) >> endobj 380 0 obj -(7 Parallel environment routines) +(Sorting utilities) endobj 381 0 obj -<< /S /GoTo /D (section*.74) >> +<< /S /GoTo /D (section.7) >> endobj 384 0 obj -(psb\137init) +(7 Parallel environment routines) endobj 385 0 obj << /S /GoTo /D (section*.75) >> endobj 388 0 obj -(psb\137info) +(psb\137init) endobj 389 0 obj << /S /GoTo /D (section*.76) >> endobj 392 0 obj -(psb\137exit) +(psb\137info) endobj 393 0 obj << /S /GoTo /D (section*.77) >> endobj 396 0 obj -(psb\137get\137mpicomm) +(psb\137exit) endobj 397 0 obj << /S /GoTo /D (section*.78) >> endobj 400 0 obj -(psb\137get\137rank) +(psb\137get\137mpicomm) endobj 401 0 obj << /S /GoTo /D (section*.79) >> endobj 404 0 obj -(psb\137wtime) +(psb\137get\137rank) endobj 405 0 obj << /S /GoTo /D (section*.80) >> endobj 408 0 obj -(psb\137barrier) +(psb\137wtime) endobj 409 0 obj << /S /GoTo /D (section*.81) >> endobj 412 0 obj -(psb\137abort) +(psb\137barrier) endobj 413 0 obj << /S /GoTo /D (section*.82) >> endobj 416 0 obj -(psb\137bcast) +(psb\137abort) endobj 417 0 obj << /S /GoTo /D (section*.83) >> endobj 420 0 obj -(psb\137sum) +(psb\137bcast) endobj 421 0 obj << /S /GoTo /D (section*.84) >> endobj 424 0 obj -(psb\137max) +(psb\137sum) endobj 425 0 obj << /S /GoTo /D (section*.85) >> endobj 428 0 obj -(psb\137min) +(psb\137max) endobj 429 0 obj << /S /GoTo /D (section*.86) >> endobj 432 0 obj -(psb\137amx) +(psb\137min) endobj 433 0 obj << /S /GoTo /D (section*.87) >> endobj 436 0 obj -(psb\137amn) +(psb\137amx) endobj 437 0 obj << /S /GoTo /D (section*.88) >> endobj 440 0 obj -(psb\137snd) +(psb\137amn) endobj 441 0 obj << /S /GoTo /D (section*.89) >> endobj 444 0 obj -(psb\137rcv) +(psb\137snd) endobj 445 0 obj -<< /S /GoTo /D (section.8) >> +<< /S /GoTo /D (section*.90) >> endobj 448 0 obj -(8 Error handling) +(psb\137rcv) endobj 449 0 obj -<< /S /GoTo /D (section*.90) >> +<< /S /GoTo /D (section.8) >> endobj 452 0 obj -(psb\137errpush) +(8 Error handling) endobj 453 0 obj << /S /GoTo /D (section*.91) >> endobj 456 0 obj -(psb\137error) +(psb\137errpush) endobj 457 0 obj << /S /GoTo /D (section*.92) >> endobj 460 0 obj -(psb\137set\137errverbosity) +(psb\137error) endobj 461 0 obj << /S /GoTo /D (section*.93) >> endobj 464 0 obj -(psb\137set\137erraction) +(psb\137set\137errverbosity) endobj 465 0 obj -<< /S /GoTo /D (section.9) >> +<< /S /GoTo /D (section*.94) >> endobj 468 0 obj -(9 Utilities) +(psb\137set\137erraction) endobj 469 0 obj -<< /S /GoTo /D (section*.94) >> +<< /S /GoTo /D (section.9) >> endobj 472 0 obj -(hb\137read) +(9 Utilities) endobj 473 0 obj << /S /GoTo /D (section*.95) >> endobj 476 0 obj -(hb\137write) +(hb\137read) endobj 477 0 obj << /S /GoTo /D (section*.96) >> endobj 480 0 obj -(mm\137mat\137read) +(hb\137write) endobj 481 0 obj << /S /GoTo /D (section*.97) >> endobj 484 0 obj -(mm\137array\137read) +(mm\137mat\137read) endobj 485 0 obj << /S /GoTo /D (section*.98) >> endobj 488 0 obj -(mm\137mat\137write) +(mm\137array\137read) endobj 489 0 obj << /S /GoTo /D (section*.99) >> endobj 492 0 obj -(mm\137array\137write) +(mm\137mat\137write) endobj 493 0 obj -<< /S /GoTo /D (section.10) >> +<< /S /GoTo /D (section*.100) >> endobj 496 0 obj -(10 Preconditioner routines) +(mm\137array\137write) endobj 497 0 obj -<< /S /GoTo /D (section*.100) >> +<< /S /GoTo /D (section.10) >> endobj 500 0 obj -(psb\137precinit) +(10 Preconditioner routines) endobj 501 0 obj << /S /GoTo /D (section*.101) >> endobj 504 0 obj -(psb\137precbld) +(psb\137precinit) endobj 505 0 obj << /S /GoTo /D (section*.102) >> endobj 508 0 obj -(psb\137precaply) +(psb\137precbld) endobj 509 0 obj << /S /GoTo /D (section*.103) >> endobj 512 0 obj -(psb\137precdescr) +(psb\137precaply) endobj 513 0 obj << /S /GoTo /D (section*.104) >> endobj 516 0 obj -(clone) +(psb\137precdescr) endobj 517 0 obj -<< /S /GoTo /D (section.11) >> +<< /S /GoTo /D (section*.105) >> endobj 520 0 obj -(11 Iterative Methods) +(clone) endobj 521 0 obj -<< /S /GoTo /D (section*.105) >> +<< /S /GoTo /D (section.11) >> endobj 524 0 obj -(psb\137krylov) +(11 Iterative Methods) endobj 525 0 obj -<< /S /GoTo /D [526 0 R /Fit ] >> +<< /S /GoTo /D (section*.106) >> +endobj +528 0 obj +(psb\137krylov) endobj -528 0 obj << +529 0 obj +<< /S /GoTo /D [530 0 R /Fit ] >> +endobj +532 0 obj << /Length 682 >> stream @@ -809,27 +815,27 @@ BT ET endstream endobj -526 0 obj << +530 0 obj << /Type /Page -/Contents 528 0 R -/Resources 527 0 R +/Contents 532 0 R +/Resources 531 0 R /MediaBox [0 0 595.276 841.89] -/Parent 535 0 R +/Parent 539 0 R >> endobj -529 0 obj << -/D [526 0 R /XYZ 99.895 740.998 null] +533 0 obj << +/D [530 0 R /XYZ 99.895 740.998 null] >> endobj -530 0 obj << -/D [526 0 R /XYZ 99.895 716.092 null] +534 0 obj << +/D [530 0 R /XYZ 99.895 716.092 null] >> endobj 6 0 obj << -/D [526 0 R /XYZ 99.895 716.092 null] +/D [530 0 R /XYZ 99.895 716.092 null] >> endobj -527 0 obj << -/Font << /F16 531 0 R /F18 532 0 R /F27 533 0 R /F8 534 0 R >> +531 0 obj << +/Font << /F16 535 0 R /F18 536 0 R /F27 537 0 R /F8 538 0 R >> /ProcSet [ /PDF /Text ] >> endobj -538 0 obj << +542 0 obj << /Length 77 >> stream @@ -842,22 +848,22 @@ BT ET endstream endobj -537 0 obj << +541 0 obj << /Type /Page -/Contents 538 0 R -/Resources 536 0 R +/Contents 542 0 R +/Resources 540 0 R /MediaBox [0 0 595.276 841.89] -/Parent 535 0 R +/Parent 539 0 R >> endobj -539 0 obj << -/D [537 0 R /XYZ 150.705 740.998 null] +543 0 obj << +/D [541 0 R /XYZ 150.705 740.998 null] >> endobj -536 0 obj << -/Font << /F8 534 0 R >> +540 0 obj << +/Font << /F8 538 0 R >> /ProcSet [ /PDF /Text ] >> endobj -588 0 obj << -/Length 16522 +593 0 obj << +/Length 16988 >> stream 0 g 0 G @@ -865,558 +871,579 @@ stream BT /F16 14.3462 Tf 99.895 706.129 Td [(Con)31(ten)31(ts)]TJ 0 0 1 rg 0 0 1 RG -/F27 9.9626 Tf 0 -22.554 Td [(1)-925(In)32(tro)-32(duction)]TJ +/F27 9.9626 Tf 0 -22.125 Td [(1)-925(In)32(tro)-32(duction)]TJ 0 g 0 G [-26085(1)]TJ 0 0 1 rg 0 0 1 RG - 0 -22.554 Td [(2)-925(General)-383(o)32(v)31(erview)]TJ + 0 -22.126 Td [(2)-925(General)-383(o)32(v)31(erview)]TJ 0 g 0 G [-23689(2)]TJ 0 0 1 rg 0 0 1 RG -/F8 9.9626 Tf 14.944 -12.336 Td [(2.1)-1022(Basic)-334(Nomenclature)]TJ +/F8 9.9626 Tf 14.944 -12.08 Td [(2.1)-1022(Basic)-334(Nomenclature)]TJ 0 g 0 G [-927(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G [-1583(3)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - 0 -12.337 Td [(2.2)-1022(Library)-333(con)27(ten)28(ts)]TJ + 0 -12.079 Td [(2.2)-1022(Library)-333(con)27(ten)28(ts)]TJ 0 g 0 G [-897(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G [-1584(4)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - 0 -12.337 Td [(2.3)-1022(Application)-333(structure)]TJ + 0 -12.08 Td [(2.3)-1022(Application)-333(structure)]TJ 0 g 0 G [-300(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)]TJ 0 g 0 G [-1584(6)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - 22.914 -12.336 Td [(2.3.1)-1144(Us)-1(er-de\014n)1(e)-1(d)-333(index)-333(mappings)]TJ + 22.914 -12.08 Td [(2.3.1)-1144(Us)-1(er-de\014n)1(e)-1(d)-333(index)-333(mappings)]TJ 0 g 0 G [-847(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)]TJ 0 g 0 G [-1584(8)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -22.914 -12.337 Td [(2.4)-1022(Programming)-334(mo)-27(del)]TJ + -22.914 -12.079 Td [(2.4)-1022(Programming)-334(mo)-27(del)]TJ 0 g 0 G [-736(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)]TJ 0 g 0 G [-1584(8)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG -/F27 9.9626 Tf -14.944 -22.554 Td [(3)-925(Data)-383(Struct)-1(ure)1(s)-384(and)-383(Classes)]TJ +/F27 9.9626 Tf -14.944 -22.126 Td [(3)-925(Data)-383(Struct)-1(ure)1(s)-384(and)-383(Classes)]TJ 0 g 0 G [-18144(9)]TJ 0 0 1 rg 0 0 1 RG -/F8 9.9626 Tf 14.944 -12.337 Td [(3.1)-1022(Descriptor)-334(data)-333(structure)]TJ +/F8 9.9626 Tf 14.944 -12.079 Td [(3.1)-1022(Descriptor)-334(data)-333(structure)]TJ 0 g 0 G [-886(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G [-1584(9)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - 22.914 -12.336 Td [(3.1.1)-1144(Des)-1(crip)1(tor)-334(Metho)-28(ds)]TJ + 22.914 -12.08 Td [(3.1.1)-1144(Des)-1(crip)1(tor)-334(Metho)-28(ds)]TJ 0 g 0 G [-913(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G [-1083(12)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - 31.881 -12.337 Td [(get)]TJ + 31.881 -12.08 Td [(get)]TJ ET q -1 0 0 1 183.515 539.973 cm +1 0 0 1 183.515 543.314 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 186.504 539.774 Td [(lo)-28(cal)]TJ +/F8 9.9626 Tf 186.504 543.115 Td [(lo)-28(cal)]TJ ET q -1 0 0 1 207.304 539.973 cm +1 0 0 1 207.304 543.314 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 210.293 539.774 Td [(ro)28(ws)]TJ +/F8 9.9626 Tf 210.293 543.115 Td [(ro)28(ws)]TJ 0 g 0 G [-411(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G [-1084(12)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -40.659 -12.337 Td [(get)]TJ + -40.659 -12.08 Td [(get)]TJ ET q -1 0 0 1 183.515 527.636 cm +1 0 0 1 183.515 531.235 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 186.504 527.437 Td [(lo)-28(cal)]TJ +/F8 9.9626 Tf 186.504 531.035 Td [(lo)-28(cal)]TJ ET q -1 0 0 1 207.304 527.636 cm +1 0 0 1 207.304 531.235 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 210.293 527.437 Td [(cols)]TJ +/F8 9.9626 Tf 210.293 531.035 Td [(cols)]TJ 0 g 0 G [-774(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G [-1083(12)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -40.659 -12.337 Td [(get)]TJ + -40.659 -12.079 Td [(get)]TJ ET q -1 0 0 1 183.515 515.3 cm +1 0 0 1 183.515 519.155 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 186.504 515.101 Td [(global)]TJ +/F8 9.9626 Tf 186.504 518.956 Td [(global)]TJ ET q -1 0 0 1 213.115 515.3 cm +1 0 0 1 213.115 519.155 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 216.104 515.101 Td [(ro)28(ws)]TJ +/F8 9.9626 Tf 216.104 518.956 Td [(ro)28(ws)]TJ 0 g 0 G [-605(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G [-1084(12)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -46.47 -12.337 Td [(get)]TJ + -46.47 -12.08 Td [(get)]TJ ET q -1 0 0 1 183.515 502.963 cm +1 0 0 1 183.515 507.075 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 186.504 502.764 Td [(global)]TJ +/F8 9.9626 Tf 186.504 506.876 Td [(global)]TJ ET q -1 0 0 1 213.115 502.963 cm +1 0 0 1 213.115 507.075 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 216.104 502.764 Td [(cols)]TJ +/F8 9.9626 Tf 216.104 506.876 Td [(cols)]TJ 0 g 0 G [-969(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G [-1084(13)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -46.47 -12.337 Td [(get)]TJ + -46.47 -12.08 Td [(get)]TJ +ET +q +1 0 0 1 183.515 494.996 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 186.504 494.796 Td [(global)]TJ +ET +q +1 0 0 1 213.115 494.996 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 216.104 494.796 Td [(ro)28(ws)]TJ +0 g 0 G + [-605(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)]TJ +0 g 0 G + [-1084(13)]TJ +0 g 0 G +0 0 1 rg 0 0 1 RG + -46.47 -12.079 Td [(get)]TJ ET q -1 0 0 1 183.515 490.626 cm +1 0 0 1 183.515 482.916 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 186.504 490.427 Td [(con)28(text)]TJ +/F8 9.9626 Tf 186.504 482.717 Td [(con)28(text)]TJ 0 g 0 G [-779(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G [-1084(13)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -16.87 -12.337 Td [(Clone)]TJ + -16.87 -12.08 Td [(Clone)]TJ 0 g 0 G [-861(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(13)]TJ + [-1084(14)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - 0 -12.336 Td [(psb)]TJ + 0 -12.08 Td [(psb)]TJ ET q -1 0 0 1 185.231 465.953 cm +1 0 0 1 185.231 458.757 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 188.22 465.754 Td [(cd)]TJ +/F8 9.9626 Tf 188.22 458.557 Td [(cd)]TJ ET q -1 0 0 1 198.78 465.953 cm +1 0 0 1 198.78 458.757 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 201.769 465.754 Td [(get)]TJ +/F8 9.9626 Tf 201.769 458.557 Td [(get)]TJ ET q -1 0 0 1 215.65 465.953 cm +1 0 0 1 215.65 458.757 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 218.639 465.754 Td [(large)]TJ +/F8 9.9626 Tf 218.639 458.557 Td [(large)]TJ ET q -1 0 0 1 240.297 465.953 cm +1 0 0 1 240.297 458.757 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 243.286 465.754 Td [(threshold)]TJ +/F8 9.9626 Tf 243.286 458.557 Td [(threshold)]TJ 0 g 0 G [-460(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(13)]TJ + [-1084(14)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -73.652 -12.337 Td [(psb)]TJ + -73.652 -12.079 Td [(psb)]TJ ET q -1 0 0 1 185.231 453.616 cm +1 0 0 1 185.231 446.677 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 188.22 453.417 Td [(cd)]TJ +/F8 9.9626 Tf 188.22 446.478 Td [(cd)]TJ ET q -1 0 0 1 198.78 453.616 cm +1 0 0 1 198.78 446.677 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 201.769 453.417 Td [(set)]TJ +/F8 9.9626 Tf 201.769 446.478 Td [(set)]TJ ET q -1 0 0 1 214.599 453.616 cm +1 0 0 1 214.599 446.677 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 217.588 453.417 Td [(large)]TJ +/F8 9.9626 Tf 217.588 446.478 Td [(large)]TJ ET q -1 0 0 1 239.245 453.616 cm +1 0 0 1 239.245 446.677 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 242.234 453.417 Td [(threshold)]TJ +/F8 9.9626 Tf 242.234 446.478 Td [(threshold)]TJ 0 g 0 G [-565(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G [-1083(14)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -104.481 -12.337 Td [(3.1.2)-1144(Nam)-1(ed)-333(Constan)28(ts)]TJ + -104.481 -12.08 Td [(3.1.2)-1144(Nam)-1(ed)-333(Constan)28(ts)]TJ 0 g 0 G [-1017(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G [-1084(14)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -22.914 -12.336 Td [(3.2)-1022(Sparse)-334(Matri)1(x)-334(class)]TJ + -22.914 -12.08 Td [(3.2)-1022(Sparse)-334(Matri)1(x)-334(class)]TJ 0 g 0 G [-372(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(14)]TJ + [-1084(15)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - 22.914 -12.337 Td [(3.2.1)-1144(Sparse)-334(Matrix)-333(Metho)-28(ds)]TJ + 22.914 -12.08 Td [(3.2.1)-1144(Sparse)-334(Matrix)-333(Metho)-28(ds)]TJ 0 g 0 G [-844(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(15)]TJ + [-1084(16)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - 31.881 -12.337 Td [(get)]TJ + 31.881 -12.079 Td [(get)]TJ ET q -1 0 0 1 183.515 404.269 cm +1 0 0 1 183.515 398.358 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 186.504 404.07 Td [(nro)28(ws)]TJ +/F8 9.9626 Tf 186.504 398.159 Td [(nro)28(ws)]TJ 0 g 0 G [-687(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)]TJ 0 g 0 G - [-1084(15)]TJ + [-1084(16)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -16.87 -12.337 Td [(get)]TJ + -16.87 -12.08 Td [(get)]TJ ET q -1 0 0 1 183.515 391.933 cm +1 0 0 1 183.515 386.278 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 186.504 391.733 Td [(ncols)]TJ +/F8 9.9626 Tf 186.504 386.079 Td [(ncols)]TJ 0 g 0 G [-273(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G [-1084(16)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -16.87 -12.336 Td [(get)]TJ + -16.87 -12.08 Td [(get)]TJ ET q -1 0 0 1 183.515 379.596 cm +1 0 0 1 183.515 374.199 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 186.504 379.397 Td [(nnzeros)]TJ +/F8 9.9626 Tf 186.504 373.999 Td [(nnzeros)]TJ 0 g 0 G [-715(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G [-1084(16)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -16.87 -12.337 Td [(get)]TJ + -16.87 -12.079 Td [(get)]TJ ET q -1 0 0 1 183.515 367.259 cm +1 0 0 1 183.515 362.119 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 186.504 367.06 Td [(size)]TJ +/F8 9.9626 Tf 186.504 361.92 Td [(size)]TJ 0 g 0 G [-884(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1083(16)]TJ + [-1083(17)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -16.87 -12.337 Td [(sizeof)]TJ + -16.87 -12.08 Td [(sizeof)]TJ 0 g 0 G [-994(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)]TJ 0 g 0 G [-1084(17)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - 0 -12.336 Td [(get)]TJ + 0 -12.08 Td [(get)]TJ ET q -1 0 0 1 183.515 342.586 cm +1 0 0 1 183.515 337.96 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 186.504 342.387 Td [(fm)28(t)]TJ +/F8 9.9626 Tf 186.504 337.76 Td [(fm)28(t)]TJ 0 g 0 G [-946(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G [-1084(17)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -16.87 -12.337 Td [(is)]TJ + -16.87 -12.079 Td [(is)]TJ ET q -1 0 0 1 176.929 330.249 cm +1 0 0 1 176.929 325.88 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 179.918 330.05 Td [(bld,)-333(is)]TJ +/F8 9.9626 Tf 179.918 325.681 Td [(bld,)-333(is)]TJ ET q -1 0 0 1 207.138 330.249 cm +1 0 0 1 207.138 325.88 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 210.127 330.05 Td [(up)-28(d,)-333(is)]TJ +/F8 9.9626 Tf 210.127 325.681 Td [(up)-28(d,)-333(is)]TJ ET q -1 0 0 1 240.391 330.249 cm +1 0 0 1 240.391 325.88 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 243.38 330.05 Td [(asb)]TJ +/F8 9.9626 Tf 243.38 325.681 Td [(asb)]TJ 0 g 0 G [-731(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(17)]TJ + [-1084(18)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -73.746 -12.337 Td [(is)]TJ + -73.746 -12.08 Td [(is)]TJ ET q -1 0 0 1 176.929 317.912 cm +1 0 0 1 176.929 313.8 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 179.918 317.713 Td [(lo)28(w)28(er,)-334(is)]TJ +/F8 9.9626 Tf 179.918 313.601 Td [(lo)28(w)28(er,)-334(is)]TJ ET q -1 0 0 1 216.021 317.912 cm +1 0 0 1 216.021 313.8 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 219.01 317.713 Td [(upp)-28(er,)-333(is)]TJ +/F8 9.9626 Tf 219.01 313.601 Td [(upp)-28(er,)-333(is)]TJ ET q -1 0 0 1 257.604 317.912 cm +1 0 0 1 257.604 313.8 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 260.593 317.713 Td [(triangle,)-333(is)]TJ +/F8 9.9626 Tf 260.593 313.601 Td [(triangle,)-333(is)]TJ ET q -1 0 0 1 307.213 317.912 cm +1 0 0 1 307.213 313.8 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 310.202 317.713 Td [(unit)]TJ +/F8 9.9626 Tf 310.202 313.601 Td [(unit)]TJ 0 g 0 G [-696(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G [-1084(18)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -140.568 -12.337 Td [(cscn)28(v)]TJ + -140.568 -12.08 Td [(cscn)28(v)]TJ 0 g 0 G [-1022(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)]TJ 0 g 0 G [-1084(18)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - 0 -12.336 Td [(csclip)]TJ + 0 -12.08 Td [(csclip)]TJ 0 g 0 G [-967(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G [-1083(19)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - 0 -12.337 Td [(get)]TJ + 0 -12.079 Td [(get)]TJ ET q -1 0 0 1 183.515 280.902 cm +1 0 0 1 183.515 277.561 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 186.504 280.703 Td [(diag)]TJ +/F8 9.9626 Tf 186.504 277.362 Td [(diag)]TJ 0 g 0 G [-612(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G [-1084(19)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -16.87 -12.337 Td [(clip)]TJ + -16.87 -12.08 Td [(clip)]TJ ET q -1 0 0 1 185.729 268.565 cm +1 0 0 1 185.729 265.481 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 188.718 268.366 Td [(diag)]TJ +/F8 9.9626 Tf 188.718 265.282 Td [(diag)]TJ 0 g 0 G [-390(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G [-1084(20)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -19.084 -12.337 Td [(tril)]TJ + -19.084 -12.08 Td [(tril)]TJ 0 g 0 G [-469(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G [-1084(20)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - 0 -12.336 Td [(triu)]TJ + 0 -12.079 Td [(triu)]TJ 0 g 0 G [-969(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G [-1084(21)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - 0 -12.337 Td [(psb)]TJ + 0 -12.08 Td [(psb)]TJ ET q -1 0 0 1 185.231 231.555 cm +1 0 0 1 185.231 229.242 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 188.22 231.356 Td [(set)]TJ +/F8 9.9626 Tf 188.22 229.043 Td [(set)]TJ ET q -1 0 0 1 201.05 231.555 cm +1 0 0 1 201.05 229.242 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 204.038 231.356 Td [(mat)]TJ +/F8 9.9626 Tf 204.038 229.043 Td [(mat)]TJ ET q -1 0 0 1 221.794 231.555 cm +1 0 0 1 221.794 229.242 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 224.783 231.356 Td [(default)]TJ +/F8 9.9626 Tf 224.783 229.043 Td [(default)]TJ 0 g 0 G [-1020(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G [-1084(21)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -55.149 -12.337 Td [(clone)]TJ + -55.149 -12.08 Td [(clone)]TJ 0 g 0 G [-361(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G [-1084(21)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -31.88 -12.336 Td [(3.2.2)-1144(Named)-334(Constan)28(ts)]TJ + -31.88 -12.079 Td [(3.2.2)-1144(Named)-334(Constan)28(ts)]TJ 0 g 0 G [-1016(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G [-1084(22)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -22.915 -12.337 Td [(3.3)-1022(Dense)-334(V)84(ector)-334(Data)-333(Structure)]TJ + -22.915 -12.08 Td [(3.3)-1022(Dense)-334(V)84(ector)-334(Data)-333(Structure)]TJ 0 g 0 G [-852(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G [-1084(22)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - 22.915 -12.337 Td [(3.3.1)-1144(V)83(ector)-333(Metho)-28(ds)]TJ + 22.915 -12.08 Td [(3.3.1)-1144(V)83(ector)-333(Metho)-28(ds)]TJ 0 g 0 G [-297(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)]TJ 0 g 0 G [-1084(23)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - 31.88 -12.337 Td [(get)]TJ + 31.88 -12.08 Td [(get)]TJ ET q -1 0 0 1 183.515 169.872 cm +1 0 0 1 183.515 168.844 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 186.504 169.672 Td [(nro)28(ws)]TJ +/F8 9.9626 Tf 186.504 168.644 Td [(nro)28(ws)]TJ 0 g 0 G [-687(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)]TJ 0 g 0 G [-1084(23)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -16.87 -12.336 Td [(sizeof)]TJ + -16.87 -12.079 Td [(sizeof)]TJ 0 g 0 G [-994(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)]TJ 0 g 0 G [-1084(23)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - 0 -12.337 Td [(get)]TJ + 0 -12.08 Td [(get)]TJ ET q -1 0 0 1 183.515 145.198 cm +1 0 0 1 183.515 144.684 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 186.504 144.999 Td [(v)28(ect)]TJ +/F8 9.9626 Tf 186.504 144.485 Td [(v)28(ect)]TJ 0 g 0 G [-668(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G [-1084(23)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -16.87 -12.337 Td [(clone)]TJ + -16.87 -12.08 Td [(clone)]TJ 0 g 0 G [-361(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G [-1084(24)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -54.795 -12.336 Td [(3.4)-1022(Preconditioner)-333(data)-334(structure)]TJ + -54.795 -12.079 Td [(3.4)-1022(Preconditioner)-333(data)-334(structure)]TJ 0 g 0 G [-586(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G @@ -1428,340 +1455,347 @@ BT ET endstream endobj -587 0 obj << +592 0 obj << /Type /Page -/Contents 588 0 R -/Resources 586 0 R +/Contents 593 0 R +/Resources 591 0 R /MediaBox [0 0 595.276 841.89] -/Parent 535 0 R -/Annots [ 540 0 R 541 0 R 542 0 R 543 0 R 544 0 R 545 0 R 546 0 R 547 0 R 548 0 R 549 0 R 550 0 R 551 0 R 552 0 R 553 0 R 554 0 R 555 0 R 556 0 R 557 0 R 558 0 R 559 0 R 560 0 R 561 0 R 562 0 R 563 0 R 564 0 R 565 0 R 566 0 R 567 0 R 568 0 R 569 0 R 570 0 R 571 0 R 572 0 R 573 0 R 574 0 R 575 0 R 576 0 R 577 0 R 578 0 R 579 0 R 580 0 R 581 0 R 582 0 R 583 0 R 584 0 R ] +/Parent 539 0 R +/Annots [ 544 0 R 545 0 R 546 0 R 547 0 R 548 0 R 549 0 R 550 0 R 551 0 R 552 0 R 553 0 R 554 0 R 555 0 R 556 0 R 557 0 R 558 0 R 559 0 R 560 0 R 561 0 R 562 0 R 563 0 R 564 0 R 565 0 R 566 0 R 567 0 R 568 0 R 569 0 R 570 0 R 571 0 R 572 0 R 573 0 R 574 0 R 575 0 R 576 0 R 577 0 R 578 0 R 579 0 R 580 0 R 581 0 R 582 0 R 583 0 R 584 0 R 585 0 R 586 0 R 587 0 R 588 0 R 589 0 R ] >> endobj -540 0 obj << +544 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [98.899 682.579 179.001 691.49] +/Rect [98.899 683.007 179.001 691.918] /Subtype /Link /A << /S /GoTo /D (section.1) >> >> endobj -541 0 obj << +545 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [98.899 660.025 202.863 668.936] +/Rect [98.899 660.882 202.863 669.793] /Subtype /Link /A << /S /GoTo /D (section.2) >> >> endobj -542 0 obj << +546 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 647.688 225.868 656.599] +/Rect [113.843 648.802 225.868 657.713] /Subtype /Link /A << /S /GoTo /D (subsection.2.1) >> >> endobj -543 0 obj << +547 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 633.415 210.675 644.263] +/Rect [113.843 634.785 210.675 645.633] /Subtype /Link /A << /S /GoTo /D (subsection.2.2) >> >> endobj -544 0 obj << +548 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 621.078 232.122 631.926] +/Rect [113.843 622.706 232.122 633.554] /Subtype /Link /A << /S /GoTo /D (subsection.2.3) >> >> endobj -545 0 obj << +549 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [136.757 608.741 296.409 619.589] +/Rect [136.757 610.626 296.409 621.474] /Subtype /Link /A << /S /GoTo /D (subsubsection.2.3.1) >> >> endobj -546 0 obj << +550 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 596.404 227.777 607.253] +/Rect [113.843 598.546 227.777 609.394] /Subtype /Link /A << /S /GoTo /D (subsection.2.4) >> >> endobj -547 0 obj << +551 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [98.899 575.788 258.112 584.699] +/Rect [98.899 578.358 258.112 587.269] /Subtype /Link /A << /S /GoTo /D (section.3) >> >> endobj -548 0 obj << +552 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 561.514 249.529 572.362] +/Rect [113.843 564.341 249.529 575.189] /Subtype /Link /A << /S /GoTo /D (subsection.3.1) >> >> endobj -549 0 obj << +553 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [136.757 549.177 257.001 560.025] +/Rect [136.757 552.261 257.001 563.11] /Subtype /Link /A << /S /GoTo /D (subsubsection.3.1.1) >> >> endobj -550 0 obj << +554 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [168.638 536.841 231.021 547.689] +/Rect [168.638 540.182 231.021 551.03] /Subtype /Link /A << /S /GoTo /D (section*.2) >> >> endobj -551 0 obj << +555 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [168.638 524.504 227.395 535.352] +/Rect [168.638 528.102 227.395 538.95] /Subtype /Link /A << /S /GoTo /D (section*.3) >> >> endobj -552 0 obj << +556 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [168.638 512.167 236.832 523.015] +/Rect [168.638 516.022 236.832 526.871] /Subtype /Link /A << /S /GoTo /D (section*.4) >> >> endobj -553 0 obj << +557 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [168.638 499.83 233.207 510.679] +/Rect [168.638 503.943 233.207 514.791] /Subtype /Link /A << /S /GoTo /D (section*.5) >> >> endobj -554 0 obj << +558 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [168.638 487.494 219.602 497.844] +/Rect [168.638 491.863 236.832 502.711] /Subtype /Link /A << /S /GoTo /D (section*.6) >> >> endobj -555 0 obj << +559 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [168.638 477.094 195.537 486.005] +/Rect [168.638 479.783 219.602 490.133] /Subtype /Link /A << /S /GoTo /D (section*.7) >> >> endobj -556 0 obj << +560 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [168.638 462.82 284.769 473.668] +/Rect [168.638 469.641 195.537 478.552] /Subtype /Link /A << /S /GoTo /D (section*.8) >> >> endobj -557 0 obj << +561 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [168.638 450.483 283.717 461.332] +/Rect [168.638 455.624 284.769 466.472] /Subtype /Link /A << /S /GoTo /D (section*.9) >> >> endobj -558 0 obj << +562 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [136.757 440.084 248.228 448.995] +/Rect [168.638 443.544 283.717 454.392] /Subtype /Link -/A << /S /GoTo /D (subsubsection.3.1.2) >> +/A << /S /GoTo /D (section*.10) >> >> endobj -559 0 obj << +563 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 425.81 223.654 436.658] +/Rect [136.757 433.402 248.228 442.313] /Subtype /Link -/A << /S /GoTo /D (subsection.3.2) >> +/A << /S /GoTo /D (subsubsection.3.1.2) >> >> endobj -560 0 obj << +564 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [136.757 413.473 273.19 424.322] +/Rect [113.843 419.385 223.654 430.233] /Subtype /Link -/A << /S /GoTo /D (subsubsection.3.2.1) >> +/A << /S /GoTo /D (subsection.3.2) >> >> endobj -561 0 obj << +565 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [168.638 401.137 212.767 411.487] +/Rect [136.757 407.305 273.19 418.153] /Subtype /Link -/A << /S /GoTo /D (section*.10) >> +/A << /S /GoTo /D (subsubsection.3.2.1) >> >> endobj -562 0 obj << +566 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [168.638 388.8 209.141 399.648] +/Rect [168.638 395.225 212.767 405.575] /Subtype /Link /A << /S /GoTo /D (section*.11) >> >> endobj -563 0 obj << +567 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [168.638 376.463 220.239 386.813] +/Rect [168.638 383.146 209.141 393.994] /Subtype /Link /A << /S /GoTo /D (section*.12) >> >> endobj -564 0 obj << +568 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [168.638 364.126 206.374 374.71] +/Rect [168.638 371.066 220.239 381.416] /Subtype /Link /A << /S /GoTo /D (section*.13) >> >> endobj -565 0 obj << +569 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [168.638 353.727 197.529 362.638] +/Rect [168.638 358.986 206.374 369.57] /Subtype /Link /A << /S /GoTo /D (section*.14) >> >> endobj -566 0 obj << +570 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [168.638 339.453 205.765 350.301] +/Rect [168.638 348.844 197.529 357.755] /Subtype /Link /A << /S /GoTo /D (section*.15) >> >> endobj -567 0 obj << +571 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [168.638 327.116 262.143 337.965] +/Rect [168.638 334.827 205.765 345.675] /Subtype /Link /A << /S /GoTo /D (section*.16) >> >> endobj -568 0 obj << +572 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [168.638 314.78 328.909 325.628] +/Rect [168.638 322.747 262.143 333.595] /Subtype /Link /A << /S /GoTo /D (section*.17) >> >> endobj -569 0 obj << +573 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [168.638 304.38 193.932 312.793] +/Rect [168.638 310.667 328.909 321.516] /Subtype /Link /A << /S /GoTo /D (section*.18) >> >> endobj -570 0 obj << +574 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [168.638 290.106 194.485 300.954] +/Rect [168.638 300.525 193.932 308.938] /Subtype /Link /A << /S /GoTo /D (section*.19) >> >> endobj -571 0 obj << +575 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [168.638 277.769 205.765 288.618] +/Rect [168.638 286.508 194.485 297.356] /Subtype /Link /A << /S /GoTo /D (section*.20) >> >> endobj -572 0 obj << +576 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [168.638 265.433 207.979 276.281] +/Rect [168.638 274.428 205.765 285.276] /Subtype /Link /A << /S /GoTo /D (section*.21) >> >> endobj -573 0 obj << +577 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [168.638 255.033 183.941 263.944] +/Rect [168.638 262.349 207.979 273.197] /Subtype /Link /A << /S /GoTo /D (section*.22) >> >> endobj -574 0 obj << +578 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [168.638 242.697 186.709 251.343] +/Rect [168.638 252.206 183.941 261.117] /Subtype /Link /A << /S /GoTo /D (section*.23) >> >> endobj -575 0 obj << +579 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [168.638 228.423 255.944 239.271] +/Rect [168.638 240.126 186.709 248.773] /Subtype /Link /A << /S /GoTo /D (section*.24) >> >> endobj -576 0 obj << +580 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [168.638 218.023 192.769 226.934] +/Rect [168.638 226.109 255.944 236.958] /Subtype /Link /A << /S /GoTo /D (section*.25) >> >> endobj -577 0 obj << +581 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [136.757 205.686 248.228 214.597] +/Rect [168.638 215.967 192.769 224.878] /Subtype /Link -/A << /S /GoTo /D (subsubsection.3.2.2) >> +/A << /S /GoTo /D (section*.26) >> >> endobj -578 0 obj << +582 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 193.35 265.358 202.15] +/Rect [136.757 203.887 248.228 212.798] /Subtype /Link -/A << /S /GoTo /D (subsection.3.3) >> +/A << /S /GoTo /D (subsubsection.3.2.2) >> >> endobj -579 0 obj << +583 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [136.757 181.013 239.898 189.924] +/Rect [113.843 191.808 265.358 200.608] /Subtype /Link -/A << /S /GoTo /D (subsubsection.3.3.1) >> +/A << /S /GoTo /D (subsection.3.3) >> >> endobj -580 0 obj << +584 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [168.638 166.739 212.767 177.089] +/Rect [136.757 179.728 239.898 188.639] /Subtype /Link -/A << /S /GoTo /D (section*.26) >> +/A << /S /GoTo /D (subsubsection.3.3.1) >> >> endobj -581 0 obj << +585 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [168.638 156.34 197.529 165.251] +/Rect [168.638 165.711 212.767 176.061] /Subtype /Link /A << /S /GoTo /D (section*.27) >> >> endobj -582 0 obj << +586 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [168.638 142.066 208.533 152.416] +/Rect [168.638 155.568 197.529 164.48] /Subtype /Link /A << /S /GoTo /D (section*.28) >> >> endobj -583 0 obj << +587 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [168.638 131.666 192.769 140.577] +/Rect [168.638 141.552 208.533 151.902] /Subtype /Link /A << /S /GoTo /D (section*.29) >> >> endobj -584 0 obj << +588 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [168.638 131.409 192.769 140.32] +/Subtype /Link +/A << /S /GoTo /D (section*.30) >> +>> endobj +589 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [113.843 119.329 268.015 128.24] /Subtype /Link /A << /S /GoTo /D (subsection.3.4) >> >> endobj -589 0 obj << -/D [587 0 R /XYZ 99.895 740.998 null] +594 0 obj << +/D [592 0 R /XYZ 99.895 740.998 null] >> endobj -590 0 obj << -/D [587 0 R /XYZ 99.895 695.989 null] +595 0 obj << +/D [592 0 R /XYZ 99.895 696.174 null] >> endobj -586 0 obj << -/Font << /F16 531 0 R /F27 533 0 R /F8 534 0 R >> +591 0 obj << +/Font << /F16 535 0 R /F27 537 0 R /F8 538 0 R >> /ProcSet [ /PDF /Text ] >> endobj -640 0 obj << +645 0 obj << /Length 21279 >> stream @@ -2472,351 +2506,351 @@ BT ET endstream endobj -639 0 obj << +644 0 obj << /Type /Page -/Contents 640 0 R -/Resources 638 0 R +/Contents 645 0 R +/Resources 643 0 R /MediaBox [0 0 595.276 841.89] -/Parent 535 0 R -/Annots [ 585 0 R 591 0 R 592 0 R 593 0 R 594 0 R 595 0 R 596 0 R 597 0 R 598 0 R 599 0 R 600 0 R 601 0 R 602 0 R 603 0 R 604 0 R 605 0 R 606 0 R 607 0 R 608 0 R 609 0 R 610 0 R 611 0 R 612 0 R 613 0 R 614 0 R 615 0 R 616 0 R 617 0 R 618 0 R 619 0 R 620 0 R 621 0 R 622 0 R 623 0 R 624 0 R 625 0 R 626 0 R 627 0 R 628 0 R 629 0 R 630 0 R 631 0 R 632 0 R 633 0 R 634 0 R 635 0 R 636 0 R ] +/Parent 539 0 R +/Annots [ 590 0 R 596 0 R 597 0 R 598 0 R 599 0 R 600 0 R 601 0 R 602 0 R 603 0 R 604 0 R 605 0 R 606 0 R 607 0 R 608 0 R 609 0 R 610 0 R 611 0 R 612 0 R 613 0 R 614 0 R 615 0 R 616 0 R 617 0 R 618 0 R 619 0 R 620 0 R 621 0 R 622 0 R 623 0 R 624 0 R 625 0 R 626 0 R 627 0 R 628 0 R 629 0 R 630 0 R 631 0 R 632 0 R 633 0 R 634 0 R 635 0 R 636 0 R 637 0 R 638 0 R 639 0 R 640 0 R 641 0 R ] >> endobj -585 0 obj << +590 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [149.709 703.195 285.838 714.044] /Subtype /Link /A << /S /GoTo /D (section.4) >> >> endobj -591 0 obj << +596 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [164.653 690.903 220.931 701.752] /Subtype /Link -/A << /S /GoTo /D (section*.30) >> +/A << /S /GoTo /D (section*.31) >> >> endobj -592 0 obj << +597 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [164.653 678.612 209.031 689.46] /Subtype /Link -/A << /S /GoTo /D (section*.31) >> +/A << /S /GoTo /D (section*.32) >> >> endobj -593 0 obj << +598 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [164.653 666.32 212.96 677.168] /Subtype /Link -/A << /S /GoTo /D (section*.32) >> +/A << /S /GoTo /D (section*.33) >> >> endobj -594 0 obj << +599 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [164.653 654.028 210.719 664.876] /Subtype /Link -/A << /S /GoTo /D (section*.33) >> +/A << /S /GoTo /D (section*.34) >> >> endobj -595 0 obj << +600 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [164.653 641.736 222.093 652.584] /Subtype /Link -/A << /S /GoTo /D (section*.34) >> +/A << /S /GoTo /D (section*.35) >> >> endobj -596 0 obj << +601 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [164.653 629.444 212.933 640.292] /Subtype /Link -/A << /S /GoTo /D (section*.35) >> +/A << /S /GoTo /D (section*.36) >> >> endobj -597 0 obj << +602 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [164.653 617.152 221.318 628] /Subtype /Link -/A << /S /GoTo /D (section*.36) >> +/A << /S /GoTo /D (section*.37) >> >> endobj -598 0 obj << +603 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [164.653 604.86 212.933 615.708] /Subtype /Link -/A << /S /GoTo /D (section*.37) >> +/A << /S /GoTo /D (section*.38) >> >> endobj -599 0 obj << +604 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [164.653 592.568 221.29 603.416] /Subtype /Link -/A << /S /GoTo /D (section*.38) >> +/A << /S /GoTo /D (section*.39) >> >> endobj -600 0 obj << +605 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [164.653 580.276 212.933 591.124] /Subtype /Link -/A << /S /GoTo /D (section*.39) >> +/A << /S /GoTo /D (section*.40) >> >> endobj -601 0 obj << +606 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [164.653 567.984 210.719 578.832] /Subtype /Link -/A << /S /GoTo /D (section*.40) >> +/A << /S /GoTo /D (section*.41) >> >> endobj -602 0 obj << +607 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [164.653 555.692 211.3 566.54] /Subtype /Link -/A << /S /GoTo /D (section*.41) >> +/A << /S /GoTo /D (section*.42) >> >> endobj -603 0 obj << +608 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [164.653 543.4 206.927 554.249] /Subtype /Link -/A << /S /GoTo /D (section*.42) >> +/A << /S /GoTo /D (section*.43) >> >> endobj -604 0 obj << +609 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [149.709 522.858 290.134 531.769] /Subtype /Link /A << /S /GoTo /D (section.5) >> >> endobj -605 0 obj << +610 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [164.653 508.629 203.496 519.477] /Subtype /Link -/A << /S /GoTo /D (section*.43) >> +/A << /S /GoTo /D (section*.44) >> >> endobj -606 0 obj << +611 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [164.653 496.337 201.863 507.186] /Subtype /Link -/A << /S /GoTo /D (section*.44) >> +/A << /S /GoTo /D (section*.45) >> >> endobj -607 0 obj << +612 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [164.653 484.045 212.933 494.894] /Subtype /Link -/A << /S /GoTo /D (section*.45) >> +/A << /S /GoTo /D (section*.46) >> >> endobj -608 0 obj << +613 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [164.653 471.753 214.648 482.602] /Subtype /Link -/A << /S /GoTo /D (section*.46) >> +/A << /S /GoTo /D (section*.47) >> >> endobj -609 0 obj << +614 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [149.709 449.274 302.58 460.123] /Subtype /Link /A << /S /GoTo /D (section.6) >> >> endobj -610 0 obj << +615 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [164.653 436.982 205.71 447.831] /Subtype /Link -/A << /S /GoTo /D (section*.47) >> +/A << /S /GoTo /D (section*.48) >> >> endobj -611 0 obj << +616 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [164.653 424.691 207.426 435.539] /Subtype /Link -/A << /S /GoTo /D (section*.48) >> +/A << /S /GoTo /D (section*.49) >> >> endobj -612 0 obj << +617 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [164.653 412.399 209.639 423.247] /Subtype /Link -/A << /S /GoTo /D (section*.49) >> +/A << /S /GoTo /D (section*.50) >> >> endobj -613 0 obj << +618 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [164.653 400.107 210.138 410.955] /Subtype /Link -/A << /S /GoTo /D (section*.50) >> +/A << /S /GoTo /D (section*.51) >> >> endobj -614 0 obj << +619 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [164.653 387.815 210.996 398.663] /Subtype /Link -/A << /S /GoTo /D (section*.51) >> +/A << /S /GoTo /D (section*.52) >> >> endobj -615 0 obj << +620 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [164.653 375.523 222.591 386.371] /Subtype /Link -/A << /S /GoTo /D (section*.52) >> +/A << /S /GoTo /D (section*.53) >> >> endobj -616 0 obj << +621 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [164.653 363.231 205.212 374.079] /Subtype /Link -/A << /S /GoTo /D (section*.53) >> +/A << /S /GoTo /D (section*.54) >> >> endobj -617 0 obj << +622 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [164.653 350.939 206.927 361.787] /Subtype /Link -/A << /S /GoTo /D (section*.54) >> +/A << /S /GoTo /D (section*.55) >> >> endobj -618 0 obj << +623 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [164.653 338.647 209.141 349.495] /Subtype /Link -/A << /S /GoTo /D (section*.55) >> +/A << /S /GoTo /D (section*.56) >> >> endobj -619 0 obj << +624 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [164.653 326.355 210.497 337.203] /Subtype /Link -/A << /S /GoTo /D (section*.56) >> +/A << /S /GoTo /D (section*.57) >> >> endobj -620 0 obj << +625 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [164.653 314.063 204.132 324.911] /Subtype /Link -/A << /S /GoTo /D (section*.57) >> +/A << /S /GoTo /D (section*.58) >> >> endobj -621 0 obj << +626 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [164.653 301.771 205.156 312.619] /Subtype /Link -/A << /S /GoTo /D (section*.58) >> +/A << /S /GoTo /D (section*.59) >> >> endobj -622 0 obj << +627 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [164.653 289.479 206.872 300.327] /Subtype /Link -/A << /S /GoTo /D (section*.59) >> +/A << /S /GoTo /D (section*.60) >> >> endobj -623 0 obj << +628 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [164.653 277.187 209.086 288.036] /Subtype /Link -/A << /S /GoTo /D (section*.60) >> +/A << /S /GoTo /D (section*.61) >> >> endobj -624 0 obj << +629 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [164.653 264.895 210.442 275.744] /Subtype /Link -/A << /S /GoTo /D (section*.61) >> +/A << /S /GoTo /D (section*.62) >> >> endobj -625 0 obj << +630 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [164.653 252.603 202.942 263.452] /Subtype /Link -/A << /S /GoTo /D (section*.62) >> +/A << /S /GoTo /D (section*.63) >> >> endobj -626 0 obj << +631 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [164.653 240.312 231.978 251.16] /Subtype /Link -/A << /S /GoTo /D (section*.63) >> +/A << /S /GoTo /D (section*.64) >> >> endobj -627 0 obj << +632 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [164.653 228.02 231.978 238.868] /Subtype /Link -/A << /S /GoTo /D (section*.64) >> +/A << /S /GoTo /D (section*.65) >> >> endobj -628 0 obj << +633 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [164.653 215.728 226.233 226.576] /Subtype /Link -/A << /S /GoTo /D (section*.65) >> +/A << /S /GoTo /D (section*.66) >> >> endobj -629 0 obj << +634 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [164.653 203.436 243.059 214.284] /Subtype /Link -/A << /S /GoTo /D (section*.66) >> +/A << /S /GoTo /D (section*.67) >> >> endobj -630 0 obj << +635 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [164.653 191.144 219.038 201.992] /Subtype /Link -/A << /S /GoTo /D (section*.67) >> +/A << /S /GoTo /D (section*.68) >> >> endobj -631 0 obj << +636 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [164.653 178.852 235.863 189.7] /Subtype /Link -/A << /S /GoTo /D (section*.68) >> +/A << /S /GoTo /D (section*.69) >> >> endobj -632 0 obj << +637 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [164.653 166.56 243.64 177.408] /Subtype /Link -/A << /S /GoTo /D (section*.69) >> +/A << /S /GoTo /D (section*.70) >> >> endobj -633 0 obj << +638 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [164.653 154.268 233.4 165.116] /Subtype /Link -/A << /S /GoTo /D (section*.70) >> +/A << /S /GoTo /D (section*.71) >> >> endobj -634 0 obj << +639 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [164.653 141.976 227.367 152.824] /Subtype /Link -/A << /S /GoTo /D (section*.71) >> +/A << /S /GoTo /D (section*.72) >> >> endobj -635 0 obj << +640 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [164.653 129.684 208.809 140.532] /Subtype /Link -/A << /S /GoTo /D (section*.72) >> +/A << /S /GoTo /D (section*.73) >> >> endobj -636 0 obj << +641 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [164.653 117.392 234.253 128.24] /Subtype /Link -/A << /S /GoTo /D (section*.73) >> +/A << /S /GoTo /D (section*.74) >> >> endobj -641 0 obj << -/D [639 0 R /XYZ 150.705 740.998 null] +646 0 obj << +/D [644 0 R /XYZ 150.705 740.998 null] >> endobj -638 0 obj << -/Font << /F27 533 0 R /F8 534 0 R >> +643 0 obj << +/Font << /F27 537 0 R /F8 538 0 R >> /ProcSet [ /PDF /Text ] >> endobj -680 0 obj << +685 0 obj << /Length 15799 >> stream @@ -3346,281 +3380,281 @@ BT ET endstream endobj -679 0 obj << +684 0 obj << /Type /Page -/Contents 680 0 R -/Resources 678 0 R +/Contents 685 0 R +/Resources 683 0 R /MediaBox [0 0 595.276 841.89] -/Parent 535 0 R -/Annots [ 637 0 R 642 0 R 643 0 R 644 0 R 645 0 R 646 0 R 647 0 R 648 0 R 649 0 R 650 0 R 651 0 R 652 0 R 653 0 R 654 0 R 655 0 R 656 0 R 657 0 R 658 0 R 659 0 R 660 0 R 661 0 R 662 0 R 663 0 R 664 0 R 665 0 R 666 0 R 667 0 R 668 0 R 669 0 R 670 0 R 671 0 R 672 0 R 673 0 R 674 0 R 675 0 R 676 0 R 677 0 R ] +/Parent 539 0 R +/Annots [ 642 0 R 647 0 R 648 0 R 649 0 R 650 0 R 651 0 R 652 0 R 653 0 R 654 0 R 655 0 R 656 0 R 657 0 R 658 0 R 659 0 R 660 0 R 661 0 R 662 0 R 663 0 R 664 0 R 665 0 R 666 0 R 667 0 R 668 0 R 669 0 R 670 0 R 671 0 R 672 0 R 673 0 R 674 0 R 675 0 R 676 0 R 677 0 R 678 0 R 679 0 R 680 0 R 681 0 R 682 0 R ] >> endobj -637 0 obj << +642 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [98.899 705.133 264.868 714.044] /Subtype /Link /A << /S /GoTo /D (section.7) >> >> endobj -642 0 obj << +647 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [113.843 691.24 149.366 702.088] /Subtype /Link -/A << /S /GoTo /D (section*.74) >> +/A << /S /GoTo /D (section*.75) >> >> endobj -643 0 obj << +648 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [113.843 679.285 150.749 690.133] /Subtype /Link -/A << /S /GoTo /D (section*.75) >> +/A << /S /GoTo /D (section*.76) >> >> endobj -644 0 obj << +649 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [113.843 667.33 150.749 678.178] /Subtype /Link -/A << /S /GoTo /D (section*.76) >> +/A << /S /GoTo /D (section*.77) >> >> endobj -645 0 obj << +650 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [113.843 655.375 193.91 666.223] /Subtype /Link -/A << /S /GoTo /D (section*.77) >> +/A << /S /GoTo /D (section*.78) >> >> endobj -646 0 obj << +651 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [113.843 643.42 170.968 654.268] /Subtype /Link -/A << /S /GoTo /D (section*.78) >> +/A << /S /GoTo /D (section*.79) >> >> endobj -647 0 obj << +652 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [113.843 631.464 160.989 642.313] /Subtype /Link -/A << /S /GoTo /D (section*.79) >> +/A << /S /GoTo /D (section*.80) >> >> endobj -648 0 obj << +653 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [113.843 619.509 163.839 630.357] /Subtype /Link -/A << /S /GoTo /D (section*.80) >> +/A << /S /GoTo /D (section*.81) >> >> endobj -649 0 obj << +654 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [113.843 607.554 157.972 618.402] /Subtype /Link -/A << /S /GoTo /D (section*.81) >> +/A << /S /GoTo /D (section*.82) >> >> endobj -650 0 obj << +655 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [113.843 595.599 157.446 606.447] /Subtype /Link -/A << /S /GoTo /D (section*.82) >> +/A << /S /GoTo /D (section*.83) >> >> endobj -651 0 obj << +656 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [113.843 583.644 152.188 594.492] /Subtype /Link -/A << /S /GoTo /D (section*.83) >> +/A << /S /GoTo /D (section*.84) >> >> endobj -652 0 obj << +657 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [113.843 571.689 152.963 582.537] /Subtype /Link -/A << /S /GoTo /D (section*.84) >> +/A << /S /GoTo /D (section*.85) >> >> endobj -653 0 obj << +658 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [113.843 559.733 151.026 570.582] /Subtype /Link -/A << /S /GoTo /D (section*.85) >> +/A << /S /GoTo /D (section*.86) >> >> endobj -654 0 obj << +659 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [113.843 547.778 152.963 558.626] /Subtype /Link -/A << /S /GoTo /D (section*.86) >> +/A << /S /GoTo /D (section*.87) >> >> endobj -655 0 obj << +660 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [113.843 535.823 153.24 546.671] /Subtype /Link -/A << /S /GoTo /D (section*.87) >> +/A << /S /GoTo /D (section*.88) >> >> endobj -656 0 obj << +661 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [113.843 523.868 149.421 534.716] /Subtype /Link -/A << /S /GoTo /D (section*.88) >> +/A << /S /GoTo /D (section*.89) >> >> endobj -657 0 obj << +662 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [113.843 511.913 148.009 522.761] /Subtype /Link -/A << /S /GoTo /D (section*.89) >> +/A << /S /GoTo /D (section*.90) >> >> endobj -658 0 obj << +663 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [98.899 489.995 190.188 500.843] /Subtype /Link /A << /S /GoTo /D (section.8) >> >> endobj -659 0 obj << +664 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [113.843 478.04 167.188 488.888] /Subtype /Link -/A << /S /GoTo /D (section*.90) >> +/A << /S /GoTo /D (section*.91) >> >> endobj -660 0 obj << +665 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [113.843 466.085 155.537 476.933] /Subtype /Link -/A << /S /GoTo /D (section*.91) >> +/A << /S /GoTo /D (section*.92) >> >> endobj -661 0 obj << +666 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [113.843 454.129 202.129 464.978] /Subtype /Link -/A << /S /GoTo /D (section*.92) >> +/A << /S /GoTo /D (section*.93) >> >> endobj -662 0 obj << +667 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [113.843 442.174 189.039 453.022] /Subtype /Link -/A << /S /GoTo /D (section*.93) >> +/A << /S /GoTo /D (section*.94) >> >> endobj -663 0 obj << +668 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [98.899 422.194 156.061 431.105] /Subtype /Link /A << /S /GoTo /D (section.9) >> >> endobj -664 0 obj << +669 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [113.843 410.238 149.061 419.149] /Subtype /Link -/A << /S /GoTo /D (section*.94) >> +/A << /S /GoTo /D (section*.95) >> >> endobj -665 0 obj << +670 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [113.843 398.283 152.382 407.194] /Subtype /Link -/A << /S /GoTo /D (section*.95) >> +/A << /S /GoTo /D (section*.96) >> >> endobj -666 0 obj << +671 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [113.843 386.328 175.617 395.239] /Subtype /Link -/A << /S /GoTo /D (section*.96) >> +/A << /S /GoTo /D (section*.97) >> >> endobj -667 0 obj << +672 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [113.843 372.436 181.207 383.284] /Subtype /Link -/A << /S /GoTo /D (section*.97) >> +/A << /S /GoTo /D (section*.98) >> >> endobj -668 0 obj << +673 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [113.843 362.418 178.938 371.064] /Subtype /Link -/A << /S /GoTo /D (section*.98) >> +/A << /S /GoTo /D (section*.99) >> >> endobj -669 0 obj << +674 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [113.843 348.525 184.528 359.109] /Subtype /Link -/A << /S /GoTo /D (section*.99) >> +/A << /S /GoTo /D (section*.100) >> >> endobj -670 0 obj << +675 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [98.899 328.545 234.475 337.456] /Subtype /Link /A << /S /GoTo /D (section.10) >> >> endobj -671 0 obj << +676 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [113.843 314.652 167.658 325.501] /Subtype /Link -/A << /S /GoTo /D (section*.100) >> +/A << /S /GoTo /D (section*.101) >> >> endobj -672 0 obj << +677 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [113.843 302.697 166.551 313.545] /Subtype /Link -/A << /S /GoTo /D (section*.101) >> +/A << /S /GoTo /D (section*.102) >> >> endobj -673 0 obj << +678 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [113.843 290.742 171.256 301.59] /Subtype /Link -/A << /S /GoTo /D (section*.102) >> +/A << /S /GoTo /D (section*.103) >> >> endobj -674 0 obj << +679 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [113.843 278.787 174.936 289.635] /Subtype /Link -/A << /S /GoTo /D (section*.103) >> +/A << /S /GoTo /D (section*.104) >> >> endobj -675 0 obj << +680 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [113.843 268.769 137.975 277.68] /Subtype /Link -/A << /S /GoTo /D (section*.104) >> +/A << /S /GoTo /D (section*.105) >> >> endobj -676 0 obj << +681 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [98.899 246.851 206.49 255.762] /Subtype /Link /A << /S /GoTo /D (section.11) >> >> endobj -677 0 obj << +682 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [113.843 232.959 161.57 243.807] /Subtype /Link -/A << /S /GoTo /D (section*.105) >> +/A << /S /GoTo /D (section*.106) >> >> endobj -681 0 obj << -/D [679 0 R /XYZ 99.895 740.998 null] +686 0 obj << +/D [684 0 R /XYZ 99.895 740.998 null] >> endobj -678 0 obj << -/Font << /F27 533 0 R /F8 534 0 R >> +683 0 obj << +/Font << /F27 537 0 R /F8 538 0 R >> /ProcSet [ /PDF /Text ] >> endobj -684 0 obj << +689 0 obj << /Length 79 >> stream @@ -3633,21 +3667,21 @@ BT ET endstream endobj -683 0 obj << +688 0 obj << /Type /Page -/Contents 684 0 R -/Resources 682 0 R +/Contents 689 0 R +/Resources 687 0 R /MediaBox [0 0 595.276 841.89] -/Parent 535 0 R +/Parent 539 0 R >> endobj -685 0 obj << -/D [683 0 R /XYZ 150.705 740.998 null] +690 0 obj << +/D [688 0 R /XYZ 150.705 740.998 null] >> endobj -682 0 obj << -/Font << /F8 534 0 R >> +687 0 obj << +/Font << /F8 538 0 R >> /ProcSet [ /PDF /Text ] >> endobj -698 0 obj << +703 0 obj << /Length 8518 >> stream @@ -3701,78 +3735,78 @@ BT ET endstream endobj -697 0 obj << +702 0 obj << /Type /Page -/Contents 698 0 R -/Resources 696 0 R +/Contents 703 0 R +/Resources 701 0 R /MediaBox [0 0 595.276 841.89] -/Parent 700 0 R -/Annots [ 686 0 R 687 0 R 688 0 R 689 0 R 690 0 R 691 0 R 692 0 R 693 0 R 694 0 R 695 0 R ] +/Parent 705 0 R +/Annots [ 691 0 R 692 0 R 693 0 R 694 0 R 695 0 R 696 0 R 697 0 R 698 0 R 699 0 R 700 0 R ] >> endobj -686 0 obj << +691 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 0] /Rect [408.982 586.91 420.937 595.323] /Subtype /Link /A << /S /GoTo /D (cite.metcalf) >> >> endobj -687 0 obj << +692 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 0] /Rect [277.684 514.913 289.639 523.326] /Subtype /Link /A << /S /GoTo /D (cite.Sparse03) >> >> endobj -688 0 obj << +693 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 0] /Rect [265.763 502.958 272.737 511.371] /Subtype /Link /A << /S /GoTo /D (cite.DesPat:11) >> >> endobj -689 0 obj << +694 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 0] /Rect [276.283 502.958 288.238 511.371] /Subtype /Link /A << /S /GoTo /D (cite.RouXiaXu:11) >> >> endobj -690 0 obj << +695 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 0] /Rect [210.166 442.916 222.121 451.329] /Subtype /Link /A << /S /GoTo /D (cite.machiels) >> >> endobj -691 0 obj << +696 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 0] /Rect [241.566 370.919 248.54 379.332] /Subtype /Link /A << /S /GoTo /D (cite.sblas97) >> >> endobj -692 0 obj << +697 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 0] /Rect [252.056 370.919 259.03 379.332] /Subtype /Link /A << /S /GoTo /D (cite.sblas02) >> >> endobj -693 0 obj << +698 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 0] /Rect [227.473 358.964 239.428 367.377] /Subtype /Link /A << /S /GoTo /D (cite.BLAS1) >> >> endobj -694 0 obj << +699 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 0] /Rect [243.524 358.964 250.498 367.377] /Subtype /Link /A << /S /GoTo /D (cite.BLAS2) >> >> endobj -695 0 obj << +700 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 0] /Rect [254.593 358.964 261.567 367.377] @@ -3780,13 +3814,13 @@ endobj /A << /S /GoTo /D (cite.BLAS3) >> >> endobj 10 0 obj << -/D [697 0 R /XYZ 99.895 716.092 null] +/D [702 0 R /XYZ 99.895 716.092 null] >> endobj -696 0 obj << -/Font << /F16 531 0 R /F8 534 0 R /F17 699 0 R >> +701 0 obj << +/Font << /F16 535 0 R /F8 538 0 R /F17 704 0 R >> /ProcSet [ /PDF /Text ] >> endobj -718 0 obj << +723 0 obj << /Length 5581 >> stream @@ -3831,29 +3865,29 @@ BT ET endstream endobj -717 0 obj << +722 0 obj << /Type /Page -/Contents 718 0 R -/Resources 716 0 R +/Contents 723 0 R +/Resources 721 0 R /MediaBox [0 0 595.276 841.89] -/Parent 700 0 R -/Annots [ 711 0 R 712 0 R 713 0 R ] +/Parent 705 0 R +/Annots [ 716 0 R 717 0 R 718 0 R ] >> endobj -714 0 obj << +719 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./figures/psblas.pdf) /PTEX.PageNumber 1 -/PTEX.InfoDict 721 0 R +/PTEX.InfoDict 726 0 R /BBox [0 0 197 215] /Resources << /ProcSet [ /PDF /Text ] /ExtGState << -/R7 722 0 R ->>/Font << /R8 723 0 R>> +/R7 727 0 R +>>/Font << /R8 728 0 R>> >> -/Length 724 0 R +/Length 729 0 R /Filter /FlateDecode >> stream @@ -3872,7 +3906,7 @@ x «Ͻ'ƒÇ›ÇÇùaÚ>=|9Êh±Büuæ¹£$îËLËàq·–ÑÃÊŸ5×k^Þ½;>íN÷Ûi™ZŠ\V+9D£­8îNËLÓG™÷×»~0+¾’”àŠ'¢ˆ±íúmw>o÷;{·=ŸŽûEý—»a¥ÃѲîîÝâ8SË4Â%ÕÇ¥_¾œžNÛ#OαéƒùüÐ endstream endobj -721 0 obj +726 0 obj << /Producer (GPL Ghostscript 9.04) /CreationDate (D:20111215145523+01'00') @@ -3882,16 +3916,16 @@ endobj /Author (sfilippo@donald \(Salvatore Filippone\)) >> endobj -722 0 obj +727 0 obj << /Type /ExtGState /OPM 1 >> endobj -723 0 obj +728 0 obj << /BaseFont /JEJNJE#2BTimes-Roman -/FontDescriptor 725 0 R +/FontDescriptor 730 0 R /Type /Font /FirstChar 32 /LastChar 116 @@ -3900,10 +3934,10 @@ endobj /Subtype /Type1 >> endobj -724 0 obj +729 0 obj 898 endobj -725 0 obj +730 0 obj << /Type /FontDescriptor /FontName /JEJNJE#2BTimes-Roman @@ -3917,10 +3951,10 @@ endobj /MissingWidth 500 /XHeight 460 /CharSet (/A/B/F/I/L/M/P/S/a/c/e/f/g/i/l/n/o/p/r/s/space/t/three/two/zero) -/FontFile3 726 0 R +/FontFile3 731 0 R >> endobj -726 0 obj +731 0 obj << /Filter /FlateDecode /Subtype /Type1C @@ -3940,21 +3974,21 @@ p IZ¹t4¤w!}^€gì½—ú€h9@±^è Ò…s2•=3B2H>ÉçynÞÌû7ŠC‰#ˆþhñÚï-whèÇGtBŒV²Õºø`uÞ1èFæ3ÑvðøçÓ÷à´ÛoÝ34\z"ž“,P&+š´®¿Ú»oB03¼å㣶xsÉÝä!FáŽ/†m'~¼êŒn?àßvaÝDëÑ÷ì+°¥¸5ïšôt0Ü ¶æ+ÉÔ·ÆsRz…t¥J–xFzëþƒöÁQîè`û¼/dŠº2›åž™j@7GÛú.º?Üwyc$O‘œÀI‘(S¥ME®ƒßŒô| Áõ^`‚2!-›’"VîIN™"Ì‚B-ÌÎe³/uV9:Î6:.Ç°ÿMɪH endstream endobj -711 0 obj << +716 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [310.543 541.042 317.517 551.89] /Subtype /Link /A << /S /GoTo /D (figure.1) >> >> endobj -712 0 obj << +717 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 0] /Rect [446.018 471.248 452.992 479.661] /Subtype /Link /A << /S /GoTo /D (cite.BLACS) >> >> endobj -713 0 obj << +718 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [210.398 433.445 217.372 444.294] @@ -3962,17 +3996,17 @@ endobj /A << /S /GoTo /D (section.7) >> >> endobj 14 0 obj << -/D [717 0 R /XYZ 150.705 677.433 null] +/D [722 0 R /XYZ 150.705 677.433 null] >> endobj -720 0 obj << -/D [717 0 R /XYZ 258.703 263.3 null] +725 0 obj << +/D [722 0 R /XYZ 258.703 263.3 null] >> endobj -716 0 obj << -/Font << /F8 534 0 R /F16 531 0 R /F11 719 0 R >> -/XObject << /Im1 714 0 R >> +721 0 obj << +/Font << /F8 538 0 R /F16 535 0 R /F11 724 0 R >> +/XObject << /Im1 719 0 R >> /ProcSet [ /PDF /Text ] >> endobj -732 0 obj << +737 0 obj << /Length 8854 >> stream @@ -4019,52 +4053,52 @@ BT ET endstream endobj -731 0 obj << +736 0 obj << /Type /Page -/Contents 732 0 R -/Resources 730 0 R +/Contents 737 0 R +/Resources 735 0 R /MediaBox [0 0 595.276 841.89] -/Parent 700 0 R -/Annots [ 715 0 R 728 0 R 729 0 R ] +/Parent 705 0 R +/Annots [ 720 0 R 733 0 R 734 0 R ] >> endobj -715 0 obj << +720 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 0] /Rect [219.5 609.491 231.455 617.904] /Subtype /Link /A << /S /GoTo /D (cite.METIS) >> >> endobj -728 0 obj << +733 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [210.854 546.467 217.316 558.506] /Subtype /Link /A << /S /GoTo /D (Hfootnote.1) >> >> endobj -729 0 obj << +734 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [155.908 188.124 162.37 200.163] /Subtype /Link /A << /S /GoTo /D (Hfootnote.2) >> >> endobj -733 0 obj << -/D [731 0 R /XYZ 99.895 740.998 null] +738 0 obj << +/D [736 0 R /XYZ 99.895 740.998 null] >> endobj 18 0 obj << -/D [731 0 R /XYZ 99.895 515.919 null] +/D [736 0 R /XYZ 99.895 515.919 null] >> endobj -739 0 obj << -/D [731 0 R /XYZ 115.138 167.688 null] +744 0 obj << +/D [736 0 R /XYZ 115.138 167.688 null] >> endobj -741 0 obj << -/D [731 0 R /XYZ 115.138 158.184 null] +746 0 obj << +/D [736 0 R /XYZ 115.138 158.184 null] >> endobj -730 0 obj << -/Font << /F8 534 0 R /F17 699 0 R /F30 734 0 R /F7 735 0 R /F16 531 0 R /F11 719 0 R /F10 736 0 R /F14 737 0 R /F27 533 0 R /F32 738 0 R /F31 740 0 R >> +735 0 obj << +/Font << /F8 538 0 R /F17 704 0 R /F30 739 0 R /F7 740 0 R /F16 535 0 R /F11 724 0 R /F10 741 0 R /F14 742 0 R /F27 537 0 R /F32 743 0 R /F31 745 0 R >> /ProcSet [ /PDF /Text ] >> endobj -748 0 obj << +753 0 obj << /Length 5348 >> stream @@ -4139,29 +4173,29 @@ BT ET endstream endobj -747 0 obj << +752 0 obj << /Type /Page -/Contents 748 0 R -/Resources 746 0 R +/Contents 753 0 R +/Resources 751 0 R /MediaBox [0 0 595.276 841.89] -/Parent 700 0 R -/Annots [ 743 0 R 744 0 R ] +/Parent 705 0 R +/Annots [ 748 0 R 749 0 R ] >> endobj -745 0 obj << +750 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./figures/points.pdf) /PTEX.PageNumber 1 -/PTEX.InfoDict 751 0 R +/PTEX.InfoDict 756 0 R /BBox [0 0 274 308] /Resources << /ProcSet [ /PDF /Text ] /ExtGState << -/R7 752 0 R ->>/Font << /R8 753 0 R>> +/R7 757 0 R +>>/Font << /R8 758 0 R>> >> -/Length 754 0 R +/Length 759 0 R /Filter /FlateDecode >> stream @@ -4169,58 +4203,58 @@ x – 󣄠¹3ÊBü=®§«æ±bA‡HŒ}Ï©c·í²»?­é”ׄÿäïÍeùö]_?ü¾¤Ó©d êwßGüðaù´d"®òçæ²¾¾ä}ÍíëÕûe4­ß ,äýÔ×sÿ»º,_ýx÷Ç/w×·¯®~[¾»ZÞ.ø›Œ1¸ð™âuóâ¯ïÿ¼ûùúáoO*žþx/þÃõí½Î22Tø<ᜇd†&Âoî/×ïV˜âÿõèCê1V^õd¨æõãR ¬Û9ŸÎç¶^–ºµÓ¾ÍšÚýÝz¦zõ¯7‹!€S®ûj짔êJÚR¿–ðWZSöN•m˜´ ide«3çûfyÿõROÛú×|J_F¿~]~z2ò–}×òVÐÕämë¦Î€sQ<I<³¦uiüd¸r͵9.Ö¤¢ÆR’ÉÑãY~ОÐCÑÝ¥Ÿ}öçÙ^â<3LA ‰c‹YÒ¶®ôçY¯qž&mCÙØâÌû懣ç—Ñ#|H–_rƧšÇÒ³,wš0s>}yüÇ5ÒNóË p%U¤ –ðW@E’§$§•|¡pxõE`&ÆøåU ™¤ó«›%AÝIUÍ0Gš]ý‘&ûÖM’ î Jšx÷¬…T.ù)~¼C²8˜}~‚­ÛÍWÛ¢íÁvKÑö¶K,8ÛÍ—&†`[C*—ü¨ONÔÇs­ƒ ½m‚ê ò9؆Áu¶!×`{P9¦m‚êKI7oÛB*—ü¨O샹~ñ̳·Ç'­¡Á^ÝIaÏvRy!œzw'ó¤`Íx"0.Ѥb'…iÄù|ùÌs¼žP:-%X/[´^º“#Àa°há…dÞPÓY/)Z‡Ýqˆ&-VŠÖ½ON¬Çtnƒ®G±À¹ÍY–& é›Ë’וB¿Ìœ¤¡¹M…ÁnngäŽ%¤Ò#ØœÃÉÙÇ‚"d;’Àô)ùÃ(˜\X‹³Ž¥²£0}Z¡pø#`Ó†Sò‹%Hvt§Ð̧f£`ú`-Î+”ÐŽQ4ó9ƒ…Ç,x›O/,îf,z»âißn«ªÝìv«$½úæ-ÜŒå`?›“禩™|,ˆ7cïó™;Ìñº@!osõé]Š¦?ݲta0€yýÒ¥¤Zdy›«OïRÜ<%9­äƒ€[}拇ú6m8uõIPžþhǃf>m))…YÞæê“ Ò<%9­äƒ€[}ækçÿÜæ“WO’rõ= A} £ Ñ0'Ë 9‘S,irêÕ÷+\_ã­uâÝ¿›ÑÆE?æóé{¦ƒÙÇá'È‹ÎB#4_²$&†`[–’qq‘‘&/> Mõ5^_'†`[Bý˜OõºÖÁ–%©¡ ª/]07o[šqq ’&/M Íõ5^_'nÞ¶†4.ú1Ÿ6ØsýÜ¥%]Š!ƒCÞgVe@Ù–‹’…$)š5-ƒÃØ5}‡ä²?ÖLg+‡ |>{é>hO‘jøX5~,ê>–0àxÕ},1’š¬ác ”ø±ŠûX€5‹ûXb$3òø³ Ú…t¡í¡=Å>tpº8Õ‡’Ô$iÎ>´-ö¡Ç%ÀšTÔXJR#ÞgL¼í“-J/0®jãȶw.Þâªick£Z,”Ô¤š^”Ñk·ì«éUÝ ‹¯WjÇ‚µÛçƒ.ÁºUE³zÉgýãPˆ,é"›Ñe±ûÌ‹:t˜!*%~ Ö *«QÊÒ@emPMÓ1:¾Þ’àX¼÷(˜®4æ ¤Nƒ¾]þÎJ¦' endstream endobj -751 0 obj +756 0 obj << /Producer (ESP Ghostscript 815.03) /CreationDate (D:20070123225315) /ModDate (D:20070123225315) >> endobj -752 0 obj +757 0 obj << /Type /ExtGState /OPM 1 >> endobj -753 0 obj +758 0 obj << /BaseFont /Times-Roman /Type /Font /Subtype /Type1 >> endobj -754 0 obj +759 0 obj 1397 endobj -743 0 obj << +748 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 0] /Rect [294.665 637.885 301.639 646.297] /Subtype /Link /A << /S /GoTo /D (cite.2007c) >> >> endobj -744 0 obj << +749 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 0] /Rect [305.735 637.885 312.709 646.297] /Subtype /Link /A << /S /GoTo /D (cite.2007d) >> >> endobj -749 0 obj << -/D [747 0 R /XYZ 150.705 740.998 null] +754 0 obj << +/D [752 0 R /XYZ 150.705 740.998 null] >> endobj -750 0 obj << -/D [747 0 R /XYZ 303.562 347.015 null] +755 0 obj << +/D [752 0 R /XYZ 303.562 347.015 null] >> endobj 22 0 obj << -/D [747 0 R /XYZ 150.705 272.271 null] +/D [752 0 R /XYZ 150.705 272.271 null] >> endobj -746 0 obj << -/Font << /F27 533 0 R /F8 534 0 R /F14 737 0 R /F11 719 0 R /F10 736 0 R /F16 531 0 R >> -/XObject << /Im2 745 0 R >> +751 0 obj << +/Font << /F27 537 0 R /F8 538 0 R /F14 742 0 R /F11 724 0 R /F10 741 0 R /F16 535 0 R >> +/XObject << /Im2 750 0 R >> /ProcSet [ /PDF /Text ] >> endobj -761 0 obj << +766 0 obj << /Length 5462 >> stream @@ -4308,36 +4342,36 @@ BT ET endstream endobj -760 0 obj << +765 0 obj << /Type /Page -/Contents 761 0 R -/Resources 759 0 R +/Contents 766 0 R +/Resources 764 0 R /MediaBox [0 0 595.276 841.89] -/Parent 700 0 R -/Annots [ 757 0 R 758 0 R ] +/Parent 705 0 R +/Annots [ 762 0 R 763 0 R ] >> endobj -757 0 obj << +762 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [406.358 354.515 413.331 366.47] /Subtype /Link /A << /S /GoTo /D (section.3) >> >> endobj -758 0 obj << +763 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [173.863 318.352 180.837 330.307] /Subtype /Link /A << /S /GoTo /D (section.6) >> >> endobj -762 0 obj << -/D [760 0 R /XYZ 99.895 740.998 null] +767 0 obj << +/D [765 0 R /XYZ 99.895 740.998 null] >> endobj -759 0 obj << -/Font << /F27 533 0 R /F8 534 0 R /F14 737 0 R /F30 734 0 R >> +764 0 obj << +/Font << /F27 537 0 R /F8 538 0 R /F14 742 0 R /F30 739 0 R >> /ProcSet [ /PDF /Text ] >> endobj -765 0 obj << +770 0 obj << /Length 8657 >> stream @@ -4383,48 +4417,48 @@ BT ET endstream endobj -764 0 obj << +769 0 obj << /Type /Page -/Contents 765 0 R -/Resources 763 0 R +/Contents 770 0 R +/Resources 768 0 R /MediaBox [0 0 595.276 841.89] -/Parent 700 0 R +/Parent 705 0 R >> endobj -766 0 obj << -/D [764 0 R /XYZ 150.705 740.998 null] +771 0 obj << +/D [769 0 R /XYZ 150.705 740.998 null] >> endobj 26 0 obj << -/D [764 0 R /XYZ 150.705 716.092 null] +/D [769 0 R /XYZ 150.705 716.092 null] >> endobj -768 0 obj << -/D [764 0 R /XYZ 150.705 285.279 null] +773 0 obj << +/D [769 0 R /XYZ 150.705 285.279 null] >> endobj -769 0 obj << -/D [764 0 R /XYZ 150.705 264.776 null] +774 0 obj << +/D [769 0 R /XYZ 150.705 264.776 null] >> endobj -770 0 obj << -/D [764 0 R /XYZ 150.705 243.997 null] +775 0 obj << +/D [769 0 R /XYZ 150.705 243.997 null] >> endobj -771 0 obj << -/D [764 0 R /XYZ 150.705 223.218 null] +776 0 obj << +/D [769 0 R /XYZ 150.705 223.218 null] >> endobj -772 0 obj << -/D [764 0 R /XYZ 150.705 190.483 null] +777 0 obj << +/D [769 0 R /XYZ 150.705 190.483 null] >> endobj -773 0 obj << -/D [764 0 R /XYZ 150.705 169.712 null] +778 0 obj << +/D [769 0 R /XYZ 150.705 169.712 null] >> endobj -774 0 obj << -/D [764 0 R /XYZ 150.705 150.854 null] +779 0 obj << +/D [769 0 R /XYZ 150.705 150.854 null] >> endobj -775 0 obj << -/D [764 0 R /XYZ 150.705 134.487 null] +780 0 obj << +/D [769 0 R /XYZ 150.705 134.487 null] >> endobj -763 0 obj << -/Font << /F16 531 0 R /F8 534 0 R /F11 719 0 R /F30 734 0 R /F9 767 0 R /F17 699 0 R >> +768 0 obj << +/Font << /F16 535 0 R /F8 538 0 R /F11 724 0 R /F30 739 0 R /F9 772 0 R /F17 704 0 R >> /ProcSet [ /PDF /Text ] >> endobj -779 0 obj << +784 0 obj << /Length 6893 >> stream @@ -4489,60 +4523,60 @@ BT ET endstream endobj -778 0 obj << +783 0 obj << /Type /Page -/Contents 779 0 R -/Resources 777 0 R +/Contents 784 0 R +/Resources 782 0 R /MediaBox [0 0 595.276 841.89] -/Parent 794 0 R ->> endobj -780 0 obj << -/D [778 0 R /XYZ 99.895 740.998 null] ->> endobj -781 0 obj << -/D [778 0 R /XYZ 99.895 716.092 null] ->> endobj -782 0 obj << -/D [778 0 R /XYZ 99.895 685.535 null] ->> endobj -783 0 obj << -/D [778 0 R /XYZ 99.895 613.511 null] ->> endobj -784 0 obj << -/D [778 0 R /XYZ 99.895 588.43 null] +/Parent 799 0 R >> endobj 785 0 obj << -/D [778 0 R /XYZ 99.895 563.625 null] +/D [783 0 R /XYZ 99.895 740.998 null] >> endobj 786 0 obj << -/D [778 0 R /XYZ 99.895 526.865 null] +/D [783 0 R /XYZ 99.895 716.092 null] >> endobj 787 0 obj << -/D [778 0 R /XYZ 99.895 502.06 null] +/D [783 0 R /XYZ 99.895 685.535 null] >> endobj 788 0 obj << -/D [778 0 R /XYZ 99.895 477.255 null] +/D [783 0 R /XYZ 99.895 613.511 null] >> endobj 789 0 obj << -/D [778 0 R /XYZ 99.895 449.514 null] +/D [783 0 R /XYZ 99.895 588.43 null] >> endobj 790 0 obj << -/D [778 0 R /XYZ 99.895 419.179 null] +/D [783 0 R /XYZ 99.895 563.625 null] >> endobj 791 0 obj << -/D [778 0 R /XYZ 99.895 388.567 null] +/D [783 0 R /XYZ 99.895 526.865 null] >> endobj 792 0 obj << -/D [778 0 R /XYZ 99.895 369.91 null] +/D [783 0 R /XYZ 99.895 502.06 null] >> endobj 793 0 obj << -/D [778 0 R /XYZ 99.895 351.53 null] +/D [783 0 R /XYZ 99.895 477.255 null] >> endobj -777 0 obj << -/Font << /F8 534 0 R /F30 734 0 R >> -/ProcSet [ /PDF /Text ] +794 0 obj << +/D [783 0 R /XYZ 99.895 449.514 null] +>> endobj +795 0 obj << +/D [783 0 R /XYZ 99.895 419.179 null] +>> endobj +796 0 obj << +/D [783 0 R /XYZ 99.895 388.567 null] +>> endobj +797 0 obj << +/D [783 0 R /XYZ 99.895 369.91 null] >> endobj 798 0 obj << +/D [783 0 R /XYZ 99.895 351.53 null] +>> endobj +782 0 obj << +/Font << /F8 538 0 R /F30 739 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +803 0 obj << /Length 7473 >> stream @@ -4596,60 +4630,60 @@ BT ET endstream endobj -797 0 obj << +802 0 obj << /Type /Page -/Contents 798 0 R -/Resources 796 0 R +/Contents 803 0 R +/Resources 801 0 R /MediaBox [0 0 595.276 841.89] -/Parent 794 0 R -/Annots [ 776 0 R 795 0 R ] +/Parent 799 0 R +/Annots [ 781 0 R 800 0 R ] >> endobj -776 0 obj << +781 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [269.731 674.788 284.454 683.699] /Subtype /Link /A << /S /GoTo /D (subsection.2.3) >> >> endobj -795 0 obj << +800 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [169.998 271.903 176.972 282.751] /Subtype /Link /A << /S /GoTo /D (section.3) >> >> endobj -799 0 obj << -/D [797 0 R /XYZ 150.705 740.998 null] +804 0 obj << +/D [802 0 R /XYZ 150.705 740.998 null] >> endobj 30 0 obj << -/D [797 0 R /XYZ 150.705 716.092 null] +/D [802 0 R /XYZ 150.705 716.092 null] >> endobj -800 0 obj << -/D [797 0 R /XYZ 150.705 671.799 null] +805 0 obj << +/D [802 0 R /XYZ 150.705 671.799 null] >> endobj -801 0 obj << -/D [797 0 R /XYZ 150.705 649.383 null] +806 0 obj << +/D [802 0 R /XYZ 150.705 649.383 null] >> endobj -802 0 obj << -/D [797 0 R /XYZ 150.705 576.158 null] +807 0 obj << +/D [802 0 R /XYZ 150.705 576.158 null] >> endobj -803 0 obj << -/D [797 0 R /XYZ 150.705 530.385 null] +808 0 obj << +/D [802 0 R /XYZ 150.705 530.385 null] >> endobj -804 0 obj << -/D [797 0 R /XYZ 150.705 497.951 null] +809 0 obj << +/D [802 0 R /XYZ 150.705 497.951 null] >> endobj -805 0 obj << -/D [797 0 R /XYZ 150.705 478.303 null] +810 0 obj << +/D [802 0 R /XYZ 150.705 478.303 null] >> endobj 34 0 obj << -/D [797 0 R /XYZ 150.705 424.511 null] +/D [802 0 R /XYZ 150.705 424.511 null] >> endobj -796 0 obj << -/Font << /F27 533 0 R /F8 534 0 R /F11 719 0 R /F9 767 0 R /F30 734 0 R /F16 531 0 R /F17 699 0 R >> +801 0 obj << +/Font << /F27 537 0 R /F8 538 0 R /F11 724 0 R /F9 772 0 R /F30 739 0 R /F16 535 0 R /F17 704 0 R >> /ProcSet [ /PDF /Text ] >> endobj -809 0 obj << +814 0 obj << /Length 8440 >> stream @@ -4792,38 +4826,38 @@ BT ET endstream endobj -808 0 obj << +813 0 obj << /Type /Page -/Contents 809 0 R -/Resources 807 0 R +/Contents 814 0 R +/Resources 812 0 R /MediaBox [0 0 595.276 841.89] -/Parent 794 0 R -/Annots [ 806 0 R ] +/Parent 799 0 R +/Annots [ 811 0 R ] >> endobj -806 0 obj << +811 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [269.318 225.936 276.292 236.784] /Subtype /Link /A << /S /GoTo /D (section.6) >> >> endobj -810 0 obj << -/D [808 0 R /XYZ 99.895 740.998 null] +815 0 obj << +/D [813 0 R /XYZ 99.895 740.998 null] >> endobj 38 0 obj << -/D [808 0 R /XYZ 99.895 716.092 null] +/D [813 0 R /XYZ 99.895 716.092 null] >> endobj 42 0 obj << -/D [808 0 R /XYZ 99.895 331.305 null] +/D [813 0 R /XYZ 99.895 331.305 null] >> endobj -811 0 obj << -/D [808 0 R /XYZ 342.427 288.724 null] +816 0 obj << +/D [813 0 R /XYZ 342.427 288.724 null] >> endobj -807 0 obj << -/Font << /F16 531 0 R /F8 534 0 R /F30 734 0 R /F27 533 0 R /F14 737 0 R >> +812 0 obj << +/Font << /F16 535 0 R /F8 538 0 R /F30 739 0 R /F27 537 0 R /F14 742 0 R >> /ProcSet [ /PDF /Text ] >> endobj -815 0 obj << +820 0 obj << /Length 6708 >> stream @@ -4944,53 +4978,53 @@ BT ET endstream endobj -814 0 obj << +819 0 obj << /Type /Page -/Contents 815 0 R -/Resources 813 0 R +/Contents 820 0 R +/Resources 818 0 R /MediaBox [0 0 595.276 841.89] -/Parent 794 0 R -/Annots [ 812 0 R ] +/Parent 799 0 R +/Annots [ 817 0 R ] >> endobj -812 0 obj << +817 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [452.103 457.229 459.077 469.184] /Subtype /Link /A << /S /GoTo /D (section.6) >> >> endobj -816 0 obj << -/D [814 0 R /XYZ 150.705 740.998 null] +821 0 obj << +/D [819 0 R /XYZ 150.705 740.998 null] >> endobj -817 0 obj << -/D [814 0 R /XYZ 150.705 353.756 null] +822 0 obj << +/D [819 0 R /XYZ 150.705 353.756 null] >> endobj -818 0 obj << -/D [814 0 R /XYZ 150.705 337.982 null] +823 0 obj << +/D [819 0 R /XYZ 150.705 337.982 null] >> endobj -819 0 obj << -/D [814 0 R /XYZ 150.705 322.207 null] +824 0 obj << +/D [819 0 R /XYZ 150.705 322.207 null] >> endobj -820 0 obj << -/D [814 0 R /XYZ 150.705 306.433 null] +825 0 obj << +/D [819 0 R /XYZ 150.705 306.433 null] >> endobj -821 0 obj << -/D [814 0 R /XYZ 150.705 290.659 null] +826 0 obj << +/D [819 0 R /XYZ 150.705 290.659 null] >> endobj -822 0 obj << -/D [814 0 R /XYZ 150.705 163.801 null] +827 0 obj << +/D [819 0 R /XYZ 150.705 163.801 null] >> endobj -823 0 obj << -/D [814 0 R /XYZ 150.705 148.027 null] +828 0 obj << +/D [819 0 R /XYZ 150.705 148.027 null] >> endobj -824 0 obj << -/D [814 0 R /XYZ 150.705 132.253 null] +829 0 obj << +/D [819 0 R /XYZ 150.705 132.253 null] >> endobj -813 0 obj << -/Font << /F27 533 0 R /F8 534 0 R /F14 737 0 R >> +818 0 obj << +/Font << /F27 537 0 R /F8 538 0 R /F14 742 0 R >> /ProcSet [ /PDF /Text ] >> endobj -827 0 obj << +832 0 obj << /Length 5012 >> stream @@ -5079,39 +5113,39 @@ BT ET endstream endobj -826 0 obj << +831 0 obj << /Type /Page -/Contents 827 0 R -/Resources 825 0 R +/Contents 832 0 R +/Resources 830 0 R /MediaBox [0 0 595.276 841.89] -/Parent 794 0 R +/Parent 799 0 R >> endobj -828 0 obj << -/D [826 0 R /XYZ 99.895 740.998 null] +833 0 obj << +/D [831 0 R /XYZ 99.895 740.998 null] >> endobj -829 0 obj << -/D [826 0 R /XYZ 99.895 716.092 null] +834 0 obj << +/D [831 0 R /XYZ 99.895 716.092 null] >> endobj -830 0 obj << -/D [826 0 R /XYZ 99.895 700.92 null] +835 0 obj << +/D [831 0 R /XYZ 99.895 700.92 null] >> endobj -831 0 obj << -/D [826 0 R /XYZ 99.895 552.932 null] +836 0 obj << +/D [831 0 R /XYZ 99.895 552.932 null] >> endobj -832 0 obj << -/D [826 0 R /XYZ 99.895 534.433 null] +837 0 obj << +/D [831 0 R /XYZ 99.895 534.433 null] >> endobj -833 0 obj << -/D [826 0 R /XYZ 99.895 515.935 null] +838 0 obj << +/D [831 0 R /XYZ 99.895 515.935 null] >> endobj -834 0 obj << -/D [826 0 R /XYZ 147.412 280.287 null] +839 0 obj << +/D [831 0 R /XYZ 147.412 280.287 null] >> endobj -825 0 obj << -/Font << /F8 534 0 R /F27 533 0 R /F30 734 0 R >> +830 0 obj << +/Font << /F8 538 0 R /F27 537 0 R /F30 739 0 R >> /ProcSet [ /PDF /Text ] >> endobj -839 0 obj << +844 0 obj << /Length 5196 >> stream @@ -5238,49 +5272,49 @@ BT ET endstream endobj -838 0 obj << +843 0 obj << /Type /Page -/Contents 839 0 R -/Resources 837 0 R +/Contents 844 0 R +/Resources 842 0 R /MediaBox [0 0 595.276 841.89] -/Parent 794 0 R -/Annots [ 835 0 R 836 0 R ] +/Parent 799 0 R +/Annots [ 840 0 R 841 0 R ] >> endobj -835 0 obj << +840 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [351.231 525.114 358.204 537.069] /Subtype /Link /A << /S /GoTo /D (section.1) >> >> endobj -836 0 obj << +841 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [186.34 315.967 193.314 327.923] /Subtype /Link /A << /S /GoTo /D (section.1) >> >> endobj -840 0 obj << -/D [838 0 R /XYZ 150.705 740.998 null] +845 0 obj << +/D [843 0 R /XYZ 150.705 740.998 null] >> endobj 46 0 obj << -/D [838 0 R /XYZ 150.705 716.092 null] +/D [843 0 R /XYZ 150.705 716.092 null] >> endobj 50 0 obj << -/D [838 0 R /XYZ 150.705 679.209 null] +/D [843 0 R /XYZ 150.705 679.209 null] >> endobj 54 0 obj << -/D [838 0 R /XYZ 150.705 482.017 null] +/D [843 0 R /XYZ 150.705 482.017 null] >> endobj 58 0 obj << -/D [838 0 R /XYZ 150.705 272.871 null] +/D [843 0 R /XYZ 150.705 272.871 null] >> endobj -837 0 obj << -/Font << /F27 533 0 R /F30 734 0 R /F8 534 0 R /F14 737 0 R /F10 736 0 R >> +842 0 obj << +/Font << /F27 537 0 R /F30 739 0 R /F8 538 0 R /F14 742 0 R /F10 741 0 R >> /ProcSet [ /PDF /Text ] >> endobj -843 0 obj << -/Length 4255 +848 0 obj << +/Length 4312 >> stream 0 g 0 G @@ -5303,951 +5337,948 @@ BT /F27 9.9626 Tf 153.336 706.129 Td [(cols)-383(|)-384(Get)-383(n)32(um)32(b)-32(er)-383(of)-384(global)-383(cols)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -53.441 -18.389 Td [(nr)-525(=)-525(desc%get_global_cols\050\051)]TJ +/F30 9.9626 Tf -53.441 -18.505 Td [(nr)-525(=)-525(desc%get_global_cols\050\051)]TJ 0 g 0 G -/F27 9.9626 Tf 0 -18.536 Td [(T)32(yp)-32(e:)]TJ +/F27 9.9626 Tf 0 -22.105 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G /F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ 0 g 0 G -/F27 9.9626 Tf -33.797 -18.573 Td [(On)-383(En)32(try)]TJ +/F27 9.9626 Tf -33.797 -20.175 Td [(On)-383(En)32(try)]TJ 0 g 0 G 0 g 0 G - 0 -18.572 Td [(desc)]TJ + 0 -20.174 Td [(desc)]TJ 0 g 0 G /F8 9.9626 Tf 26.209 0 Td [(the)-333(comm)27(unication)-333(descriptor.)]TJ -1.302 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -80.359 -30.491 Td [(On)-383(Return)]TJ +/F27 9.9626 Tf -80.359 -34.06 Td [(On)-383(Return)]TJ +0 g 0 G +0 g 0 G + 0 -20.174 Td [(F)96(unction)-384(v)64(alue)]TJ +0 g 0 G +/F8 9.9626 Tf 78.387 0 Td [(The)-273(n)28(um)28(b)-28(er)-273(of)-272(global)-273(cols;)-293(usually)-273(this)-273(is)-272(e)-1(q)1(ual)-273(to)-273(the)-273(n)28(um)28(b)-28(er)]TJ -53.48 -11.956 Td [(of)-333(global)-334(ro)28(ws.)]TJ/F27 9.9626 Tf -24.907 -26.226 Td [(get)]TJ +ET +q +1 0 0 1 116.018 520.998 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +Q +BT +/F27 9.9626 Tf 119.455 520.799 Td [(global)]TJ +ET +q +1 0 0 1 149.899 520.998 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +Q +BT +/F27 9.9626 Tf 153.336 520.799 Td [(indices)-383(|)-384(Get)-383(v)32(ector)-383(of)-384(global)-383(indices)]TJ +0 g 0 G +0 g 0 G +/F30 9.9626 Tf -53.441 -18.505 Td [(myidx)-525(=)-525(desc%get_global_indices\050[owned]\051)]TJ +0 g 0 G +/F27 9.9626 Tf 0 -22.105 Td [(T)32(yp)-32(e:)]TJ +0 g 0 G +/F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ +0 g 0 G +/F27 9.9626 Tf -33.797 -20.174 Td [(On)-383(En)32(try)]TJ +0 g 0 G +0 g 0 G + 0 -20.175 Td [(desc)]TJ +0 g 0 G +/F8 9.9626 Tf 26.209 0 Td [(the)-333(comm)27(unication)-333(descriptor.)]TJ -1.302 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -55.452 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -96.416 -32.13 Td [(o)32(wned)]TJ 0 g 0 G +/F8 9.9626 Tf 36.647 0 Td [(Cho)-28(ose)-439(if)-439(y)28(ou)-439(only)-439(w)27(an)28(t)-439(o)28(wned)-439(indices)-439(\050)]TJ/F30 9.9626 Tf 183.494 0 Td [(owned=.true.)]TJ/F8 9.9626 Tf 62.764 0 Td [(\051)-439(or)-439(also)-439(halo)]TJ -257.998 -11.955 Td [(indices)-333(\050)]TJ/F30 9.9626 Tf 36.585 0 Td [(owned=.false.)]TJ/F8 9.9626 Tf 67.994 0 Td [(\051.)-444(Scop)-28(e:)]TJ/F27 9.9626 Tf 43.449 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -171.101 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(;)-333(default:)]TJ/F30 9.9626 Tf 43.448 0 Td [(.true.)]TJ/F8 9.9626 Tf 31.382 0 Td [(.)]TJ 0 g 0 G - 0 -18.573 Td [(F)96(unction)-384(v)64(alue)]TJ +/F27 9.9626 Tf -169.925 -34.06 Td [(On)-383(Return)]TJ 0 g 0 G -/F8 9.9626 Tf 78.387 0 Td [(The)-273(n)28(um)28(b)-28(er)-273(of)-272(global)-273(cols;)-293(usually)-273(this)-273(is)-272(e)-1(q)1(ual)-273(to)-273(the)-273(n)28(um)28(b)-28(er)]TJ -53.48 -11.955 Td [(of)-333(global)-334(ro)28(ws.)]TJ/F27 9.9626 Tf -24.907 -25.313 Td [(get)]TJ +0 g 0 G + 0 -20.174 Td [(F)96(unction)-384(v)64(alue)]TJ +0 g 0 G +/F8 9.9626 Tf 78.387 0 Td [(The)-292(global)-292(ind)1(ice)-1(s,)-300(returned)-291(as)-292(an)-292(allo)-28(catable)-292(in)28(teger)-292(arra)28(y)-292(of)]TJ -53.48 -11.956 Td [(rank)-333(1.)]TJ/F27 9.9626 Tf -24.907 -26.226 Td [(get)]TJ ET q -1 0 0 1 116.018 533.971 cm +1 0 0 1 116.018 267.673 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 119.455 533.772 Td [(con)32(text)-383(|)-384(Get)-383(comm)32(unication)-384(con)32(text)]TJ +/F27 9.9626 Tf 119.455 267.474 Td [(con)32(text)-383(|)-384(Get)-383(comm)32(unication)-384(con)32(text)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -19.56 -18.39 Td [(ictxt)-525(=)-525(desc%get_context\050\051)]TJ +/F30 9.9626 Tf -19.56 -18.505 Td [(ictxt)-525(=)-525(desc%get_context\050\051)]TJ 0 g 0 G -/F27 9.9626 Tf 0 -18.535 Td [(T)32(yp)-32(e:)]TJ +/F27 9.9626 Tf 0 -22.105 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G /F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ 0 g 0 G -/F27 9.9626 Tf -33.797 -18.573 Td [(On)-383(En)32(try)]TJ +/F27 9.9626 Tf -33.797 -20.174 Td [(On)-383(En)32(try)]TJ 0 g 0 G 0 g 0 G - 0 -18.572 Td [(desc)]TJ + 0 -20.175 Td [(desc)]TJ 0 g 0 G /F8 9.9626 Tf 26.209 0 Td [(the)-333(comm)27(unication)-333(descriptor.)]TJ -1.302 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -80.359 -30.491 Td [(On)-383(Return)]TJ +/F27 9.9626 Tf -80.359 -34.06 Td [(On)-383(Return)]TJ +0 g 0 G +0 g 0 G + 0 -20.174 Td [(F)96(unction)-384(v)64(alue)]TJ 0 g 0 G +/F8 9.9626 Tf 78.387 0 Td [(The)-333(comm)27(unication)-333(con)28(text.)]TJ +0 g 0 G + 88.488 -29.888 Td [(13)]TJ +0 g 0 G +ET +endstream +endobj +847 0 obj << +/Type /Page +/Contents 848 0 R +/Resources 846 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 850 0 R +>> endobj +849 0 obj << +/D [847 0 R /XYZ 99.895 740.998 null] +>> endobj +62 0 obj << +/D [847 0 R /XYZ 99.895 697.704 null] +>> endobj +66 0 obj << +/D [847 0 R /XYZ 99.895 512.374 null] +>> endobj +70 0 obj << +/D [847 0 R /XYZ 99.895 259.049 null] +>> endobj +846 0 obj << +/Font << /F27 537 0 R /F30 739 0 R /F8 538 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +853 0 obj << +/Length 5721 +>> +stream 0 g 0 G - 0 -18.573 Td [(F)96(unction)-384(v)64(alue)]TJ 0 g 0 G -/F8 9.9626 Tf 78.387 0 Td [(The)-333(comm)27(unication)-333(con)28(text.)]TJ/F27 9.9626 Tf -78.387 -25.313 Td [(Clone)-383(|)-384(clone)-383(curren)32(t)-383(ob)-64(ject)]TJ +BT +/F27 9.9626 Tf 150.705 706.129 Td [(Clone)-383(|)-384(clone)-383(curren)32(t)-383(ob)-64(ject)]TJ 0 g 0 G 0 g 0 G /F30 9.9626 Tf 0 -18.389 Td [(call)-1050(desc%clone\050descout,info\051)]TJ 0 g 0 G -/F27 9.9626 Tf 0 -18.536 Td [(T)32(yp)-32(e:)]TJ +/F27 9.9626 Tf 0 -21.736 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G /F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ 0 g 0 G -/F27 9.9626 Tf -33.797 -18.573 Td [(On)-383(En)32(try)]TJ +/F27 9.9626 Tf -33.797 -19.853 Td [(On)-383(En)32(try)]TJ 0 g 0 G 0 g 0 G - 0 -18.572 Td [(desc)]TJ + 0 -19.852 Td [(desc)]TJ 0 g 0 G -/F8 9.9626 Tf 26.209 0 Td [(the)-333(comm)27(unication)-333(descriptor.)]TJ -1.302 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ +/F8 9.9626 Tf 26.208 0 Td [(the)-333(comm)27(unication)-333(descriptor.)]TJ -1.302 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -80.359 -30.491 Td [(On)-383(Return)]TJ +/F27 9.9626 Tf -80.358 -33.691 Td [(On)-383(Return)]TJ 0 g 0 G 0 g 0 G - 0 -18.573 Td [(descout)]TJ + 0 -19.853 Td [(descout)]TJ 0 g 0 G -/F8 9.9626 Tf 42.758 0 Td [(A)-333(cop)27(y)-333(of)-333(the)-333(input)-334(ob)-55(ject.)]TJ +/F8 9.9626 Tf 42.757 0 Td [(A)-333(cop)27(y)-333(of)-333(the)-334(in)1(put)-334(ob)-55(ject.)]TJ 0 g 0 G -/F27 9.9626 Tf -42.758 -18.572 Td [(info)]TJ +/F27 9.9626 Tf -42.757 -19.852 Td [(info)]TJ 0 g 0 G -/F8 9.9626 Tf 23.758 0 Td [(Return)-333(co)-28(de.)]TJ/F27 9.9626 Tf -23.758 -25.313 Td [(psb)]TJ +/F8 9.9626 Tf 23.758 0 Td [(Return)-333(co)-28(de.)]TJ/F27 9.9626 Tf -23.758 -25.865 Td [(psb)]TJ ET q -1 0 0 1 117.832 194.595 cm +1 0 0 1 168.641 515.283 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 121.269 194.396 Td [(cd)]TJ +/F27 9.9626 Tf 172.078 515.083 Td [(cd)]TJ ET q -1 0 0 1 133.413 194.595 cm +1 0 0 1 184.223 515.283 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 136.85 194.396 Td [(get)]TJ +/F27 9.9626 Tf 187.66 515.083 Td [(get)]TJ ET q -1 0 0 1 152.973 194.595 cm +1 0 0 1 203.782 515.283 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 156.41 194.396 Td [(large)]TJ +/F27 9.9626 Tf 207.22 515.083 Td [(large)]TJ ET q -1 0 0 1 181.547 194.595 cm +1 0 0 1 232.357 515.283 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 184.984 194.396 Td [(threshold)-268(|)-268(Get)-268(threshold)-269(for)-268(index)-268(mapping)-268(switc)32(h)]TJ +/F27 9.9626 Tf 235.794 515.083 Td [(threshold)-268(|)-268(Get)-268(threshold)-269(for)-268(index)-268(mapping)-268(switc)32(h)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -85.089 -18.39 Td [(ith)-525(=)-525(psb_cd_get_large_threshold\050\051)]TJ +/F30 9.9626 Tf -85.089 -18.389 Td [(ith)-525(=)-525(psb_cd_get_large_threshold\050\051)]TJ 0 g 0 G -/F27 9.9626 Tf 0 -18.535 Td [(T)32(yp)-32(e:)]TJ +/F27 9.9626 Tf 0 -21.736 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G /F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ 0 g 0 G -/F27 9.9626 Tf -33.797 -18.573 Td [(On)-383(Return)]TJ -0 g 0 G +/F27 9.9626 Tf -33.797 -19.852 Td [(On)-383(Return)]TJ 0 g 0 G - 0 -18.572 Td [(F)96(unction)-384(v)64(alue)]TJ 0 g 0 G -/F8 9.9626 Tf 78.387 0 Td [(The)-333(curren)28(t)-334(v)56(alue)-334(for)-333(the)-333(size)-334(threshold.)]TJ + 0 -19.853 Td [(F)96(unction)-384(v)64(alue)]TJ 0 g 0 G - 88.488 -29.888 Td [(13)]TJ -0 g 0 G -ET -endstream -endobj -842 0 obj << -/Type /Page -/Contents 843 0 R -/Resources 841 0 R -/MediaBox [0 0 595.276 841.89] -/Parent 845 0 R ->> endobj -844 0 obj << -/D [842 0 R /XYZ 99.895 740.998 null] ->> endobj -62 0 obj << -/D [842 0 R /XYZ 99.895 697.758 null] ->> endobj -66 0 obj << -/D [842 0 R /XYZ 99.895 525.4 null] ->> endobj -70 0 obj << -/D [842 0 R /XYZ 99.895 364.999 null] ->> endobj -74 0 obj << -/D [842 0 R /XYZ 99.895 186.024 null] ->> endobj -841 0 obj << -/Font << /F27 533 0 R /F30 734 0 R /F8 534 0 R >> -/ProcSet [ /PDF /Text ] ->> endobj -851 0 obj << -/Length 7953 ->> -stream -0 g 0 G -0 g 0 G -BT -/F27 9.9626 Tf 150.705 706.129 Td [(psb)]TJ +/F8 9.9626 Tf 78.386 0 Td [(The)-333(curren)27(t)-333(v)56(alue)-334(for)-333(the)-333(size)-334(threshold.)]TJ/F27 9.9626 Tf -78.386 -25.864 Td [(psb)]TJ ET q -1 0 0 1 168.641 706.328 cm +1 0 0 1 168.641 409.588 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 172.078 706.129 Td [(cd)]TJ +/F27 9.9626 Tf 172.078 409.389 Td [(cd)]TJ ET q -1 0 0 1 184.223 706.328 cm +1 0 0 1 184.223 409.588 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 187.66 706.129 Td [(set)]TJ +/F27 9.9626 Tf 187.66 409.389 Td [(set)]TJ ET q -1 0 0 1 202.573 706.328 cm +1 0 0 1 202.573 409.588 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 206.01 706.129 Td [(large)]TJ +/F27 9.9626 Tf 206.01 409.389 Td [(large)]TJ ET q -1 0 0 1 231.147 706.328 cm +1 0 0 1 231.147 409.588 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 234.585 706.129 Td [(threshold)-323(|)-324(Set)-323(threshold)-323(for)-324(index)-323(mapping)-324(switc)32(h)]TJ +/F27 9.9626 Tf 234.585 409.389 Td [(threshold)-323(|)-324(Set)-323(threshold)-323(for)-324(index)-323(mapping)-324(switc)32(h)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -83.88 -19.211 Td [(call)-525(psb_cd_set_large_threshold\050ith\051)]TJ +/F30 9.9626 Tf -83.88 -18.39 Td [(call)-525(psb_cd_set_large_threshold\050ith\051)]TJ 0 g 0 G -/F27 9.9626 Tf 0 -23.242 Td [(T)32(yp)-32(e:)]TJ +/F27 9.9626 Tf 0 -21.735 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G /F8 9.9626 Tf 33.797 0 Td [(Sync)28(hronous.)]TJ 0 g 0 G -/F27 9.9626 Tf -33.797 -21.69 Td [(On)-383(En)32(try)]TJ +/F27 9.9626 Tf -33.797 -19.853 Td [(On)-383(En)32(try)]TJ 0 g 0 G 0 g 0 G - 0 -21.691 Td [(ith)]TJ + 0 -19.852 Td [(ith)]TJ 0 g 0 G -/F8 9.9626 Tf 18.984 0 Td [(the)-333(new)-334(threshold)-333(for)-333(comm)27(un)1(ic)-1(ati)1(on)-334(descriptors.)]TJ 5.923 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(global)]TJ/F8 9.9626 Tf 29.756 0 Td [(.)]TJ -62.135 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -71.51 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.034 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(v)55(alue)-333(greater)-334(th)1(an)-334(zero.)]TJ -24.906 -23.683 Td [(Note:)-756(the)-490(thr)1(e)-1(shold)-489(v)56(alue)-489(is)-490(only)-489(queried)-489(b)28(y)-489(the)-490(library)-489(at)-489(the)-489(time)-490(a)-489(call)]TJ 0 -11.955 Td [(to)]TJ/F30 9.9626 Tf 13.431 0 Td [(psb_cdall)]TJ/F8 9.9626 Tf 51.648 0 Td [(is)-459(executed,)-491(therefore)-459(c)27(hanging)-459(the)-459(threshold)-459(has)-459(no)-460(e\013ect)-459(on)]TJ -65.079 -11.955 Td [(comm)28(unication)-464(descriptors)-465(that)-464(ha)28(v)28(e)-464(already)-464(b)-28(een)-464(initialized.)-837(Moreo)28(v)27(er)-464(the)]TJ 0 -11.955 Td [(threshold)-333(m)28(ust)-334(ha)28(v)28(e)-334(the)-333(same)-333(v)55(alue)-333(on)-333(all)-334(pro)-27(ce)-1(sses.)]TJ/F27 9.9626 Tf 0 -28.238 Td [(3.1.2)-1150(Named)-383(Constan)32(ts)]TJ +/F8 9.9626 Tf 18.984 0 Td [(the)-333(new)-334(threshold)-333(for)-333(comm)27(un)1(ic)-1(ati)1(on)-334(descriptors.)]TJ 5.923 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(global)]TJ/F8 9.9626 Tf 29.756 0 Td [(.)]TJ -62.135 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -71.51 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.034 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(v)55(alue)-333(greater)-334(th)1(an)-334(zero.)]TJ -24.906 -21.736 Td [(Note:)-756(the)-490(thr)1(e)-1(shold)-489(v)56(alue)-489(is)-490(only)-489(queried)-489(b)28(y)-489(the)-490(library)-489(at)-489(the)-489(time)-490(a)-489(call)]TJ 0 -11.955 Td [(to)]TJ/F30 9.9626 Tf 13.431 0 Td [(psb_cdall)]TJ/F8 9.9626 Tf 51.648 0 Td [(is)-459(executed,)-491(therefore)-459(c)27(hanging)-459(the)-459(threshold)-459(has)-459(no)-460(e\013ect)-459(on)]TJ -65.079 -11.955 Td [(comm)28(unication)-464(descriptors)-465(that)-464(ha)28(v)28(e)-464(already)-464(b)-28(een)-464(initialized.)-837(Moreo)28(v)27(er)-464(the)]TJ 0 -11.955 Td [(threshold)-333(m)28(ust)-334(ha)28(v)28(e)-334(the)-333(same)-333(v)55(alue)-333(on)-333(all)-334(pro)-27(ce)-1(sses.)]TJ/F27 9.9626 Tf 0 -25.865 Td [(3.1.2)-1150(Named)-383(Constan)32(ts)]TJ 0 g 0 G - 0 -19.21 Td [(psb)]TJ + 0 -18.389 Td [(psb)]TJ ET q -1 0 0 1 168.641 465.677 cm +1 0 0 1 168.641 180.082 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 172.078 465.478 Td [(none)]TJ +/F27 9.9626 Tf 172.078 179.883 Td [(none)]TJ ET q -1 0 0 1 196.475 465.677 cm +1 0 0 1 196.475 180.082 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q 0 g 0 G BT -/F8 9.9626 Tf 204.894 465.478 Td [(Generic)-333(no-op;)]TJ +/F8 9.9626 Tf 204.894 179.883 Td [(Generic)-333(no-op;)]TJ 0 g 0 G -/F27 9.9626 Tf -54.189 -21.691 Td [(psb)]TJ +/F27 9.9626 Tf -54.189 -19.852 Td [(psb)]TJ ET q -1 0 0 1 168.641 443.986 cm +1 0 0 1 168.641 160.23 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 172.078 443.787 Td [(nohalo)]TJ +/F27 9.9626 Tf 172.078 160.031 Td [(nohalo)]TJ ET q -1 0 0 1 205.705 443.986 cm +1 0 0 1 205.705 160.23 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q 0 g 0 G BT -/F8 9.9626 Tf 214.123 443.787 Td [(Do)-333(not)-334(fetc)28(h)-333(halo)-333(e)-1(l)1(e)-1(men)28(ts;)]TJ +/F8 9.9626 Tf 214.123 160.031 Td [(Do)-333(not)-334(fetc)28(h)-333(halo)-333(e)-1(l)1(e)-1(men)28(ts;)]TJ 0 g 0 G -/F27 9.9626 Tf -63.418 -21.69 Td [(psb)]TJ +/F27 9.9626 Tf -63.418 -19.853 Td [(psb)]TJ ET q -1 0 0 1 168.641 422.296 cm +1 0 0 1 168.641 140.377 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 172.078 422.097 Td [(halo)]TJ +/F27 9.9626 Tf 172.078 140.178 Td [(halo)]TJ ET q -1 0 0 1 193.611 422.296 cm +1 0 0 1 193.611 140.377 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q 0 g 0 G BT -/F8 9.9626 Tf 202.03 422.097 Td [(F)83(etc)28(h)-333(halo)-333(e)-1(lemen)28(ts)-333(from)-333(neigh)27(b)-27(ouring)-334(pro)-27(cesse)-1(s;)]TJ +/F8 9.9626 Tf 202.03 140.178 Td [(F)83(etc)28(h)-333(halo)-333(e)-1(lemen)28(ts)-333(from)-333(neigh)27(b)-27(ouring)-334(pro)-27(cesse)-1(s;)]TJ 0 g 0 G -/F27 9.9626 Tf -51.325 -21.691 Td [(psb)]TJ +/F27 9.9626 Tf -51.325 -19.852 Td [(psb)]TJ ET q -1 0 0 1 168.641 400.605 cm +1 0 0 1 168.641 120.525 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 172.078 400.406 Td [(sum)]TJ +/F27 9.9626 Tf 172.078 120.326 Td [(sum)]TJ ET q -1 0 0 1 193.197 400.605 cm +1 0 0 1 193.197 120.525 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q 0 g 0 G BT -/F8 9.9626 Tf 201.616 400.406 Td [(Sum)-333(o)27(v)28(erlapp)-27(ed)-334(elemen)28(ts)]TJ +/F8 9.9626 Tf 201.616 120.326 Td [(Sum)-333(o)27(v)28(erlapp)-27(ed)-334(elemen)28(ts)]TJ +0 g 0 G + 115.963 -29.888 Td [(14)]TJ +0 g 0 G +ET +endstream +endobj +852 0 obj << +/Type /Page +/Contents 853 0 R +/Resources 851 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 850 0 R +>> endobj +854 0 obj << +/D [852 0 R /XYZ 150.705 740.998 null] +>> endobj +74 0 obj << +/D [852 0 R /XYZ 150.705 697.758 null] +>> endobj +78 0 obj << +/D [852 0 R /XYZ 150.705 506.712 null] +>> endobj +82 0 obj << +/D [852 0 R /XYZ 150.705 401.017 null] +>> endobj +86 0 obj << +/D [852 0 R /XYZ 150.705 208.29 null] +>> endobj +851 0 obj << +/Font << /F27 537 0 R /F30 739 0 R /F8 538 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +860 0 obj << +/Length 9745 +>> +stream +0 g 0 G 0 g 0 G -/F27 9.9626 Tf -50.911 -21.691 Td [(psb)]TJ +0 g 0 G +BT +/F27 9.9626 Tf 99.895 706.129 Td [(psb)]TJ ET q -1 0 0 1 168.641 378.915 cm +1 0 0 1 117.832 706.328 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 172.078 378.715 Td [(a)32(vg)]TJ +/F27 9.9626 Tf 121.269 706.129 Td [(a)32(vg)]TJ ET q -1 0 0 1 189.792 378.915 cm +1 0 0 1 138.983 706.328 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q 0 g 0 G BT -/F8 9.9626 Tf 198.211 378.715 Td [(Av)28(erage)-334(o)28(v)28(erlapp)-28(ed)-333(elemen)28(ts)]TJ +/F8 9.9626 Tf 147.401 706.129 Td [(Av)28(erage)-334(o)28(v)28(erlapp)-28(ed)-333(elemen)28(ts)]TJ 0 g 0 G -/F27 9.9626 Tf -47.506 -21.69 Td [(psb)]TJ +/F27 9.9626 Tf -47.506 -19.046 Td [(psb)]TJ ET q -1 0 0 1 168.641 357.224 cm +1 0 0 1 117.832 687.282 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 172.078 357.025 Td [(comm)]TJ +/F27 9.9626 Tf 121.269 687.083 Td [(comm)]TJ ET q -1 0 0 1 202.681 357.224 cm +1 0 0 1 151.872 687.282 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 206.118 357.025 Td [(halo)]TJ +/F27 9.9626 Tf 155.309 687.083 Td [(halo)]TJ ET q -1 0 0 1 227.651 357.224 cm +1 0 0 1 176.842 687.282 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q 0 g 0 G BT -/F8 9.9626 Tf 236.07 357.025 Td [(Exc)28(hange)-333(data)-334(based)-333(on)-333(the)]TJ/F30 9.9626 Tf 126.387 0 Td [(halo_index)]TJ/F8 9.9626 Tf 55.624 0 Td [(list;)]TJ +/F8 9.9626 Tf 185.26 687.083 Td [(Exc)28(hange)-334(d)1(ata)-334(based)-333(on)-333(the)]TJ/F30 9.9626 Tf 126.387 0 Td [(halo_index)]TJ/F8 9.9626 Tf 55.625 0 Td [(list;)]TJ 0 g 0 G -/F27 9.9626 Tf -267.376 -21.691 Td [(psb)]TJ +/F27 9.9626 Tf -267.377 -19.047 Td [(psb)]TJ ET q -1 0 0 1 168.641 335.533 cm +1 0 0 1 117.832 668.236 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 172.078 335.334 Td [(comm)]TJ +/F27 9.9626 Tf 121.269 668.036 Td [(comm)]TJ ET q -1 0 0 1 202.681 335.533 cm +1 0 0 1 151.872 668.236 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 206.118 335.334 Td [(ext)]TJ +/F27 9.9626 Tf 155.309 668.036 Td [(ext)]TJ ET q -1 0 0 1 222.559 335.533 cm +1 0 0 1 171.75 668.236 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q 0 g 0 G BT -/F8 9.9626 Tf 230.978 335.334 Td [(Exc)28(hange)-333(data)-334(based)-333(on)-333(the)]TJ/F30 9.9626 Tf 126.387 0 Td [(ext_index)]TJ/F8 9.9626 Tf 50.394 0 Td [(list;)]TJ +/F8 9.9626 Tf 180.168 668.036 Td [(Exc)28(hange)-334(d)1(ata)-334(based)-333(on)-333(the)]TJ/F30 9.9626 Tf 126.387 0 Td [(ext_index)]TJ/F8 9.9626 Tf 50.394 0 Td [(list;)]TJ 0 g 0 G -/F27 9.9626 Tf -257.054 -21.691 Td [(psb)]TJ +/F27 9.9626 Tf -257.054 -19.046 Td [(psb)]TJ ET q -1 0 0 1 168.641 313.843 cm +1 0 0 1 117.832 649.189 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 172.078 313.643 Td [(comm)]TJ +/F27 9.9626 Tf 121.269 648.99 Td [(comm)]TJ ET q -1 0 0 1 202.681 313.843 cm +1 0 0 1 151.872 649.189 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 206.118 313.643 Td [(o)32(vr)]TJ +/F27 9.9626 Tf 155.309 648.99 Td [(o)32(vr)]TJ ET q -1 0 0 1 222.981 313.843 cm +1 0 0 1 172.172 649.189 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q 0 g 0 G BT -/F8 9.9626 Tf 231.4 313.643 Td [(Exc)28(hange)-333(data)-334(based)-333(on)-333(the)]TJ/F30 9.9626 Tf 126.387 0 Td [(ovrlap_index)]TJ/F8 9.9626 Tf 66.085 0 Td [(list;)]TJ +/F8 9.9626 Tf 180.59 648.99 Td [(Exc)28(hange)-334(d)1(ata)-334(based)-333(on)-333(the)]TJ/F30 9.9626 Tf 126.387 0 Td [(ovrlap_index)]TJ/F8 9.9626 Tf 66.085 0 Td [(list;)]TJ 0 g 0 G -/F27 9.9626 Tf -273.167 -21.69 Td [(psb)]TJ +/F27 9.9626 Tf -273.167 -19.046 Td [(psb)]TJ ET q -1 0 0 1 168.641 292.152 cm +1 0 0 1 117.832 630.143 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 172.078 291.953 Td [(comm)]TJ +/F27 9.9626 Tf 121.269 629.944 Td [(comm)]TJ ET q -1 0 0 1 202.681 292.152 cm +1 0 0 1 151.872 630.143 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 206.118 291.953 Td [(mo)32(v)]TJ +/F27 9.9626 Tf 155.309 629.944 Td [(mo)32(v)]TJ ET q -1 0 0 1 227.81 292.152 cm +1 0 0 1 177.001 630.143 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q 0 g 0 G BT -/F8 9.9626 Tf 236.229 291.953 Td [(Exc)28(hange)-333(data)-334(based)-333(on)-333(the)]TJ/F30 9.9626 Tf 126.387 0 Td [(ovr_mst_idx)]TJ/F8 9.9626 Tf 60.855 0 Td [(list;)]TJ/F16 11.9552 Tf -272.766 -30.23 Td [(3.2)-1125(Sparse)-375(Matrix)-375(class)]TJ/F8 9.9626 Tf 0 -19.211 Td [(The)]TJ/F30 9.9626 Tf 20.653 0 Td [(psb)]TJ +/F8 9.9626 Tf 185.419 629.944 Td [(Exc)28(hange)-334(d)1(ata)-334(based)-333(on)-333(the)]TJ/F30 9.9626 Tf 126.388 0 Td [(ovr_mst_idx)]TJ/F8 9.9626 Tf 60.854 0 Td [(list;)]TJ/F16 11.9552 Tf -272.766 -27.51 Td [(3.2)-1125(Sparse)-375(Matrix)-375(class)]TJ/F8 9.9626 Tf 0 -18.389 Td [(The)]TJ/F30 9.9626 Tf 20.653 0 Td [(psb)]TJ ET q -1 0 0 1 187.676 242.711 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 190.814 242.512 Td [(Tspmat)]TJ -ET -q -1 0 0 1 222.824 242.711 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 225.962 242.512 Td [(type)]TJ/F8 9.9626 Tf 24.416 0 Td [(class)-351(con)28(tains)-351(all)-351(information)-350(ab)-28(out)-351(the)-351(lo)-27(cal)-351(p)-28(ortion)-351(of)]TJ -99.673 -11.955 Td [(the)-249(sparse)-249(matrix)-248(and)-249(its)-249(storage)-249(mo)-27(de.)-417(Its)-248(design)-249(is)-249(based)-249(on)-248(the)-249(ST)83(A)84(TE)-249(design)]TJ 0 -11.955 Td [(pattern)-347([)]TJ -1 0 0 rg 1 0 0 RG - [(13)]TJ -0 g 0 G - [(])-346(as)-347(detailed)-347(in)-347([)]TJ -1 0 0 rg 1 0 0 RG - [(11)]TJ -0 g 0 G - [(])1(;)-354(the)-347(t)28(yp)-28(e)-346(declaration)-347(is)-347(sho)28(wn)-347(in)-346(\014gure)]TJ -0 0 1 rg 0 0 1 RG - [-347(4)]TJ -0 g 0 G - [-347(where)]TJ/F30 9.9626 Tf 0 -11.955 Td [(T)]TJ/F8 9.9626 Tf 8.551 0 Td [(is)-333(a)-334(placeholder)-333(for)-333(the)-334(data)-333(t)28(yp)-28(e)-333(and)-333(precision)-334(v)56(arian)28(ts)]TJ -0 g 0 G -/F27 9.9626 Tf -8.551 -21.25 Td [(S)]TJ -0 g 0 G -/F8 9.9626 Tf 11.346 0 Td [(Single)-333(precision)-334(real;)]TJ -0 g 0 G -/F27 9.9626 Tf -11.346 -21.69 Td [(D)]TJ -0 g 0 G -/F8 9.9626 Tf 13.768 0 Td [(Double)-333(precision)-334(real;)]TJ -0 g 0 G -/F27 9.9626 Tf -13.768 -21.691 Td [(C)]TJ -0 g 0 G -/F8 9.9626 Tf 13.256 0 Td [(Single)-333(precision)-334(complex;)]TJ -0 g 0 G -/F27 9.9626 Tf -13.256 -21.69 Td [(Z)]TJ -0 g 0 G -/F8 9.9626 Tf 11.983 0 Td [(Double)-333(precision)-334(complex.)]TJ -0 g 0 G - 154.891 -29.888 Td [(14)]TJ -0 g 0 G -ET -endstream -endobj -850 0 obj << -/Type /Page -/Contents 851 0 R -/Resources 849 0 R -/MediaBox [0 0 595.276 841.89] -/Parent 845 0 R -/Annots [ 846 0 R 847 0 R 848 0 R ] ->> endobj -846 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[0 1 0] -/Rect [188.06 217.606 200.015 226.019] -/Subtype /Link -/A << /S /GoTo /D (cite.DesignPatterns) >> ->> endobj -847 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[0 1 0] -/Rect [268.904 217.606 280.86 226.019] -/Subtype /Link -/A << /S /GoTo /D (cite.Sparse03) >> ->> endobj -848 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [459.496 215.115 466.47 227.07] -/Subtype /Link -/A << /S /GoTo /D (figure.4) >> ->> endobj -852 0 obj << -/D [850 0 R /XYZ 150.705 740.998 null] ->> endobj -78 0 obj << -/D [850 0 R /XYZ 150.705 697.377 null] ->> endobj -82 0 obj << -/D [850 0 R /XYZ 150.705 495.148 null] ->> endobj -86 0 obj << -/D [850 0 R /XYZ 150.705 274.175 null] ->> endobj -853 0 obj << -/D [850 0 R /XYZ 171.358 242.512 null] ->> endobj -849 0 obj << -/Font << /F27 533 0 R /F30 734 0 R /F8 534 0 R /F16 531 0 R >> -/ProcSet [ /PDF /Text ] ->> endobj -858 0 obj << -/Length 6878 ->> -stream +1 0 0 1 136.867 584.244 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 140.005 584.045 Td [(Tspmat)]TJ +ET +q +1 0 0 1 172.015 584.244 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 175.153 584.045 Td [(type)]TJ/F8 9.9626 Tf 24.416 0 Td [(class)-351(con)28(tains)-351(all)-351(information)-350(ab)-28(out)-351(the)-351(lo)-27(cal)-351(p)-28(ortion)-351(of)]TJ -99.674 -11.956 Td [(the)-249(sparse)-249(matrix)-248(and)-249(its)-249(storage)-249(mo)-27(de.)-417(Its)-248(design)-249(is)-249(based)-249(on)-248(the)-249(ST)83(A)83(TE)-248(design)]TJ 0 -11.955 Td [(pattern)-347([)]TJ +1 0 0 rg 1 0 0 RG + [(13)]TJ 0 g 0 G + [(])-346(as)-347(detailed)-347(in)-347([)]TJ +1 0 0 rg 1 0 0 RG + [(11)]TJ 0 g 0 G + [(];)-353(the)-347(t)28(yp)-28(e)-346(declaration)-347(is)-347(sho)28(wn)-347(in)-347(\014)1(gure)]TJ +0 0 1 rg 0 0 1 RG + [-347(4)]TJ 0 g 0 G + [-347(where)]TJ/F30 9.9626 Tf 0 -11.955 Td [(T)]TJ/F8 9.9626 Tf 8.552 0 Td [(is)-333(a)-334(placeholder)-333(for)-333(the)-334(d)1(ata)-334(t)28(yp)-28(e)-333(and)-333(precision)-334(v)56(arian)28(ts)]TJ 0 g 0 G +/F27 9.9626 Tf -8.552 -18.167 Td [(S)]TJ 0 g 0 G +/F8 9.9626 Tf 11.347 0 Td [(Single)-333(precision)-334(real;)]TJ 0 g 0 G +/F27 9.9626 Tf -11.347 -19.046 Td [(D)]TJ 0 g 0 G -BT -/F30 9.9626 Tf 136.133 710.003 Td [(type)-525(::)-525(psb_Tspmat_type)]TJ 10.461 -11.955 Td [(class\050psb_T_base_sparse_mat\051,)-525(allocatable)-1050(::)-525(a)]TJ -10.461 -11.955 Td [(end)-525(type)-1050(psb_Tspmat_type)]TJ +/F8 9.9626 Tf 13.768 0 Td [(Double)-333(precision)-334(real;)]TJ 0 g 0 G -/F8 9.9626 Tf -24.186 -30.054 Td [(Figure)-333(4:)-778(The)-333(PSBLAS)-334(de\014ned)-333(data)-333(t)28(yp)-28(e)-334(th)1(at)-334(con)28(tains)-333(a)-334(sparse)-333(matrix.)]TJ +/F27 9.9626 Tf -13.768 -19.047 Td [(C)]TJ +0 g 0 G +/F8 9.9626 Tf 13.256 0 Td [(Single)-333(precision)-334(complex;)]TJ 0 g 0 G +/F27 9.9626 Tf -13.256 -19.046 Td [(Z)]TJ 0 g 0 G - -12.052 -32.556 Td [(The)-222(actual)-222(data)-223(is)-222(con)28(tained)-222(in)-222(the)-223(p)-27(olymorphic)-223(comp)-27(onen)27(t)]TJ/F30 9.9626 Tf 255.515 0 Td [(a%a)]TJ/F8 9.9626 Tf 17.905 0 Td [(of)-222(t)28(yp)-28(e)]TJ/F30 9.9626 Tf 31.548 0 Td [(psb)]TJ +/F8 9.9626 Tf 11.983 0 Td [(Double)-333(precision)-334(complex.)]TJ -11.983 -18.167 Td [(The)-222(actual)-222(data)-223(is)-222(con)28(tained)-222(in)-222(the)-223(p)-27(olymorphic)-223(comp)-27(onen)27(t)]TJ/F30 9.9626 Tf 255.515 0 Td [(a%a)]TJ/F8 9.9626 Tf 17.905 0 Td [(of)-222(t)28(yp)-28(e)]TJ/F30 9.9626 Tf 31.548 0 Td [(psb)]TJ ET q -1 0 0 1 421.182 623.682 cm +1 0 0 1 421.182 454.905 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 424.32 623.483 Td [(T)]TJ +/F30 9.9626 Tf 424.32 454.706 Td [(T)]TJ ET q -1 0 0 1 430.178 623.682 cm +1 0 0 1 430.178 454.905 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 433.316 623.483 Td [(base)]TJ +/F30 9.9626 Tf 433.316 454.706 Td [(base)]TJ ET q -1 0 0 1 454.865 623.682 cm +1 0 0 1 454.865 454.905 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 458.003 623.483 Td [(sparse)]TJ +/F30 9.9626 Tf 458.003 454.706 Td [(sparse)]TJ ET q -1 0 0 1 490.013 623.682 cm +1 0 0 1 490.013 454.905 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 493.151 623.483 Td [(mat)]TJ/F8 9.9626 Tf 15.691 0 Td [(;)]TJ -408.947 -11.955 Td [(its)-300(sp)-28(eci\014c)-301(la)28(y)28(out)-300(can)-301(b)-28(e)-300(c)28(hosen)-301(dyn)1(am)-1(ically)-300(among)-300(the)-301(prede\014ned)-300(t)28(yp)-28(es,)-307(or)-300(an)]TJ 0 -11.956 Td [(en)28(tirely)-419(new)-419(storage)-419(la)28(y)27(out)-419(can)-419(b)-27(e)-419(implemen)27(ted)-419(and)-418(pass)-1(ed)-418(to)-419(the)-419(library)-419(at)]TJ 0 -11.955 Td [(run)28(time)-420(via)-419(the)]TJ/F30 9.9626 Tf 73.447 0 Td [(psb_spasb)]TJ/F8 9.9626 Tf 51.252 0 Td [(routine.)-703(The)-419(follo)28(wing)-420(v)28(ery)-419(common)-420(formats)-419(are)]TJ -124.699 -11.955 Td [(precompiled)-333(in)-334(PSBLAS)-333(and)-333(th)28(us)-334(are)-333(alw)28(a)28(ys)-334(a)28(v)56(ailable:)]TJ +/F30 9.9626 Tf 493.151 454.706 Td [(mat)]TJ/F8 9.9626 Tf 15.691 0 Td [(;)]TJ -408.947 -11.955 Td [(its)-300(sp)-28(eci\014c)-301(la)28(y)28(out)-300(can)-301(b)-28(e)-300(c)28(hosen)-301(dyn)1(am)-1(ically)-300(among)-300(the)-301(prede\014ned)-300(t)28(yp)-28(es,)-307(or)-300(an)]TJ 0 -11.955 Td [(en)28(tirely)-419(new)-419(storage)-419(la)28(y)27(out)-419(can)-419(b)-27(e)-419(implemen)27(ted)-419(and)-418(pass)-1(ed)-418(to)-419(the)-419(library)-419(at)]TJ 0 -11.956 Td [(run)28(time)-420(via)-419(the)]TJ/F30 9.9626 Tf 73.447 0 Td [(psb_spasb)]TJ/F8 9.9626 Tf 51.252 0 Td [(routine.)-703(The)-419(follo)28(wing)-420(v)28(ery)-419(common)-420(formats)-419(are)]TJ +0 g 0 G +0 g 0 G +0 g 0 G +0 g 0 G 0 g 0 G -/F27 9.9626 Tf 0 -21.022 Td [(psb)]TJ +/F30 9.9626 Tf -88.461 -19.378 Td [(type)-525(::)-525(psb_Tspmat_type)]TJ 10.461 -11.955 Td [(class\050psb_T_base_sparse_mat\051,)-525(allocatable)-1050(::)-525(a)]TJ -10.461 -11.955 Td [(end)-525(type)-1050(psb_Tspmat_type)]TJ +0 g 0 G +/F8 9.9626 Tf -24.186 -30.054 Td [(Figure)-333(4:)-778(The)-333(PSBLAS)-334(de\014ned)-333(data)-333(t)28(yp)-28(e)-334(th)1(at)-334(con)28(tains)-333(a)-334(sparse)-333(matrix.)]TJ +0 g 0 G +0 g 0 G + -12.052 -22.755 Td [(precompiled)-333(in)-334(PSBLAS)-333(and)-333(th)28(us)-334(are)-333(alw)28(a)28(ys)-334(a)28(v)56(ailable:)]TJ +0 g 0 G +/F27 9.9626 Tf 0 -18.167 Td [(psb)]TJ ET q -1 0 0 1 117.832 554.839 cm +1 0 0 1 117.832 304.775 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 121.269 554.64 Td [(T)]TJ +/F27 9.9626 Tf 121.269 304.576 Td [(T)]TJ ET q -1 0 0 1 129.926 554.839 cm +1 0 0 1 129.926 304.775 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 133.364 554.64 Td [(co)-32(o)]TJ +/F27 9.9626 Tf 133.364 304.576 Td [(co)-32(o)]TJ ET q -1 0 0 1 150.918 554.839 cm +1 0 0 1 150.918 304.775 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 154.355 554.64 Td [(sparse)]TJ +/F27 9.9626 Tf 154.355 304.576 Td [(sparse)]TJ ET q -1 0 0 1 185.985 554.839 cm +1 0 0 1 185.985 304.775 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 189.422 554.64 Td [(mat)]TJ +/F27 9.9626 Tf 189.422 304.576 Td [(mat)]TJ 0 g 0 G /F8 9.9626 Tf 24.554 0 Td [(Co)-28(ordinate)-333(storage;)]TJ 0 g 0 G -/F27 9.9626 Tf -114.081 -21.387 Td [(psb)]TJ +/F27 9.9626 Tf -114.081 -19.046 Td [(psb)]TJ ET q -1 0 0 1 117.832 533.452 cm +1 0 0 1 117.832 285.729 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 121.269 533.253 Td [(T)]TJ +/F27 9.9626 Tf 121.269 285.53 Td [(T)]TJ ET q -1 0 0 1 129.926 533.452 cm +1 0 0 1 129.926 285.729 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 133.364 533.253 Td [(csr)]TJ +/F27 9.9626 Tf 133.364 285.53 Td [(csr)]TJ ET q -1 0 0 1 148.38 533.452 cm +1 0 0 1 148.38 285.729 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 151.818 533.253 Td [(sparse)]TJ +/F27 9.9626 Tf 151.818 285.53 Td [(sparse)]TJ ET q -1 0 0 1 183.447 533.452 cm +1 0 0 1 183.447 285.729 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 186.884 533.253 Td [(mat)]TJ +/F27 9.9626 Tf 186.884 285.53 Td [(mat)]TJ 0 g 0 G /F8 9.9626 Tf 24.554 0 Td [(Compressed)-333(storage)-334(b)28(y)-333(ro)27(ws;)]TJ 0 g 0 G -/F27 9.9626 Tf -111.543 -21.388 Td [(psb)]TJ +/F27 9.9626 Tf -111.543 -19.046 Td [(psb)]TJ ET q -1 0 0 1 117.832 512.065 cm +1 0 0 1 117.832 266.683 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 121.269 511.865 Td [(T)]TJ +/F27 9.9626 Tf 121.269 266.484 Td [(T)]TJ ET q -1 0 0 1 129.926 512.065 cm +1 0 0 1 129.926 266.683 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 133.364 511.865 Td [(csc)]TJ +/F27 9.9626 Tf 133.364 266.484 Td [(csc)]TJ ET q -1 0 0 1 148.754 512.065 cm +1 0 0 1 148.754 266.683 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 152.191 511.865 Td [(sparse)]TJ +/F27 9.9626 Tf 152.191 266.484 Td [(sparse)]TJ ET q -1 0 0 1 183.821 512.065 cm +1 0 0 1 183.821 266.683 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 187.258 511.865 Td [(mat)]TJ +/F27 9.9626 Tf 187.258 266.484 Td [(mat)]TJ 0 g 0 G -/F8 9.9626 Tf 24.553 0 Td [(Compressed)-334(storage)-333(b)28(y)-333(columns;)]TJ -111.916 -21.022 Td [(The)-373(inner)-373(sparse)-373(matrix)-373(has)-373(an)-373(asso)-28(ciated)-373(state,)-383(whic)28(h)-373(can)-373(tak)28(e)-373(the)-373(follo)27(wing)]TJ 0 -11.955 Td [(v)56(alues:)]TJ +/F8 9.9626 Tf 24.553 0 Td [(Compressed)-334(storage)-333(b)28(y)-333(columns;)]TJ -111.916 -18.168 Td [(The)-373(inner)-373(sparse)-373(matrix)-373(has)-373(an)-373(asso)-28(ciated)-373(state,)-383(whic)28(h)-373(can)-373(tak)28(e)-373(the)-373(follo)27(wing)]TJ 0 -11.955 Td [(v)56(alues:)]TJ 0 g 0 G -/F27 9.9626 Tf 0 -21.022 Td [(Build:)]TJ +/F27 9.9626 Tf 0 -18.167 Td [(Build:)]TJ 0 g 0 G /F8 9.9626 Tf 35.409 0 Td [(State)-306(en)28(tered)-306(after)-307(the)-306(\014rst)-306(allo)-28(cation,)-311(and)-306(b)-28(efore)-306(the)-306(\014rst)-306(assem)27(bly;)-315(in)]TJ -10.502 -11.955 Td [(this)-333(state)-334(it)-333(is)-333(p)-28(ossible)-334(to)-333(add)-333(nonzero)-333(en)27(tries.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -21.387 Td [(Assem)32(bled:)]TJ -0 g 0 G -/F8 9.9626 Tf 61.508 0 Td [(State)-373(en)27(tered)-373(after)-373(the)-374(assem)28(bly;)-393(computations)-373(us)-1(i)1(ng)-374(the)-373(sparse)]TJ -36.601 -11.955 Td [(matrix,)-333(suc)27(h)-333(as)-333(matrix-v)28(ec)-1(tor)-333(pro)-28(d)1(ucts)-1(,)-333(are)-333(only)-333(p)-28(ossible)-334(in)-333(this)-333(state;)]TJ -0 g 0 G -/F27 9.9626 Tf -24.907 -21.388 Td [(Up)-32(date:)]TJ -0 g 0 G -/F8 9.9626 Tf 45.302 0 Td [(State)-233(en)27(tered)-233(after)-233(a)-234(reinit)1(aliz)-1(at)1(ion;)-267(this)-233(is)-234(used)-233(to)-233(handle)-234(applications)]TJ -20.395 -11.955 Td [(in)-395(whic)28(h)-396(th)1(e)-396(same)-395(sparsit)28(y)-395(pattern)-396(is)-395(used)-395(m)28(ultiple)-395(times)-396(with)-395(di\013eren)28(t)]TJ 0 -11.955 Td [(co)-28(e\016cien)28(ts.)-427(In)-280(this)-280(state)-280(it)-280(is)-281(only)-280(p)-27(oss)-1(ib)1(le)-281(to)-280(en)28(ter)-280(co)-28(e\016cien)28(ts)-280(for)-281(already)]TJ 0 -11.955 Td [(existing)-333(nonzero)-334(en)28(tries.)]TJ -24.907 -21.022 Td [(The)-358(only)-357(storage)-358(v)56(arian)27(t)-357(supp)-28(orting)-357(the)-358(build)-357(s)-1(tate)-357(is)-358(COO;)-357(all)-358(other)-358(v)56(arian)28(ts)]TJ 0 -11.955 Td [(are)-333(obtained)-334(b)28(y)-333(con)28(v)27(ersion)-333(to/from)-333(it.)]TJ/F27 9.9626 Tf 0 -27.836 Td [(3.2.1)-1150(Sparse)-383(Matri)-1(x)-383(Metho)-32(ds)]TJ 0 -19.069 Td [(get)]TJ -ET -q -1 0 0 1 116.018 275.633 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q -BT -/F27 9.9626 Tf 119.455 275.434 Td [(nro)32(ws)-383(|)-384(Get)-383(n)32(um)32(b)-32(er)-383(of)-384(ro)32(ws)-383(in)-383(a)-384(sparse)-383(matrix)]TJ -0 g 0 G -0 g 0 G -/F30 9.9626 Tf -19.56 -19.07 Td [(nr)-525(=)-525(a%get_nrows\050\051)]TJ -0 g 0 G -/F27 9.9626 Tf 0 -23.014 Td [(T)32(yp)-32(e:)]TJ -0 g 0 G -/F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ -0 g 0 G -/F27 9.9626 Tf -33.797 -21.388 Td [(On)-383(En)32(try)]TJ -0 g 0 G -0 g 0 G - 0 -21.387 Td [(a)]TJ -0 g 0 G -/F8 9.9626 Tf 10.551 0 Td [(the)-333(sparse)-334(matrix)]TJ 14.356 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ -0 g 0 G - -57.286 -34.97 Td [(On)-383(Return)]TJ +/F27 9.9626 Tf -24.907 -19.046 Td [(Assem)32(bled:)]TJ 0 g 0 G +/F8 9.9626 Tf 61.508 0 Td [(State)-373(en)27(tered)-373(after)-373(the)-374(assem)28(bly;)-393(computations)-373(us)-1(i)1(ng)-374(the)-373(sparse)]TJ -36.601 -11.956 Td [(matrix,)-333(suc)27(h)-333(as)-333(matrix-v)28(ec)-1(tor)-333(pro)-28(d)1(ucts)-1(,)-333(are)-333(only)-333(p)-28(ossible)-334(in)-333(this)-333(state;)]TJ 0 g 0 G - 0 -21.387 Td [(F)96(unction)-384(v)64(alue)]TJ +/F27 9.9626 Tf -24.907 -19.046 Td [(Up)-32(date:)]TJ 0 g 0 G -/F8 9.9626 Tf 78.387 0 Td [(The)-333(n)27(u)1(m)27(b)-27(e)-1(r)-333(of)-333(ro)28(ws)-334(of)-333(sparse)-333(matrix)]TJ/F30 9.9626 Tf 164.937 0 Td [(a)]TJ/F8 9.9626 Tf 5.23 0 Td [(.)]TJ +/F8 9.9626 Tf 45.302 0 Td [(State)-233(en)27(tered)-233(after)-233(a)-234(reinit)1(aliz)-1(at)1(ion;)-267(this)-233(is)-234(used)-233(to)-233(handle)-234(applications)]TJ -20.395 -11.955 Td [(in)-395(whic)28(h)-396(th)1(e)-396(same)-395(sparsit)28(y)-395(pattern)-396(is)-395(used)-395(m)28(ultiple)-395(times)-396(with)-395(di\013eren)28(t)]TJ 0 -11.955 Td [(co)-28(e\016cien)28(ts.)-427(In)-280(this)-280(state)-280(it)-280(is)-281(only)-280(p)-27(oss)-1(ib)1(le)-281(to)-280(en)28(ter)-280(co)-28(e\016cien)28(ts)-280(for)-281(already)]TJ 0 -11.955 Td [(existing)-333(nonzero)-334(en)28(tries.)]TJ 0 g 0 G - -81.679 -31.825 Td [(15)]TJ + 141.968 -29.888 Td [(15)]TJ 0 g 0 G ET endstream endobj -857 0 obj << +859 0 obj << /Type /Page -/Contents 858 0 R -/Resources 856 0 R +/Contents 860 0 R +/Resources 858 0 R /MediaBox [0 0 595.276 841.89] -/Parent 845 0 R ->> endobj -859 0 obj << -/D [857 0 R /XYZ 99.895 740.998 null] +/Parent 850 0 R +/Annots [ 855 0 R 856 0 R 857 0 R ] >> endobj 855 0 obj << -/D [857 0 R /XYZ 155.561 667.994 null] +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 0] +/Rect [137.251 559.138 149.206 567.551] +/Subtype /Link +/A << /S /GoTo /D (cite.DesignPatterns) >> >> endobj -860 0 obj << -/D [857 0 R /XYZ 404.863 623.483 null] +856 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 0] +/Rect [218.095 559.138 230.05 567.551] +/Subtype /Link +/A << /S /GoTo /D (cite.Sparse03) >> +>> endobj +857 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [408.687 556.647 415.661 568.602] +/Subtype /Link +/A << /S /GoTo /D (figure.4) >> +>> endobj +861 0 obj << +/D [859 0 R /XYZ 99.895 740.998 null] >> endobj 90 0 obj << -/D [857 0 R /XYZ 99.895 304.334 null] +/D [859 0 R /XYZ 99.895 614.444 null] >> endobj -94 0 obj << -/D [857 0 R /XYZ 99.895 266.748 null] +862 0 obj << +/D [859 0 R /XYZ 120.548 584.045 null] >> endobj -856 0 obj << -/Font << /F30 734 0 R /F8 534 0 R /F27 533 0 R >> +863 0 obj << +/D [859 0 R /XYZ 404.863 454.706 null] +>> endobj +864 0 obj << +/D [859 0 R /XYZ 155.561 357.453 null] +>> endobj +858 0 obj << +/Font << /F27 537 0 R /F8 538 0 R /F30 739 0 R /F16 535 0 R >> /ProcSet [ /PDF /Text ] >> endobj -863 0 obj << -/Length 4021 +868 0 obj << +/Length 4166 >> stream 0 g 0 G 0 g 0 G BT -/F27 9.9626 Tf 150.705 706.129 Td [(get)]TJ +/F8 9.9626 Tf 150.705 706.129 Td [(The)-358(only)-357(storage)-358(v)56(arian)28(t)-358(supp)-28(orting)-357(the)-358(build)-357(state)-358(is)-358(COO;)-357(all)-358(other)-358(v)56(arian)28(ts)]TJ 0 -11.955 Td [(are)-333(obtained)-334(b)28(y)-333(con)28(v)27(ersion)-333(to/from)-333(it.)]TJ/F27 9.9626 Tf 0 -25.497 Td [(3.2.1)-1150(Sparse)-383(Matrix)-384(Metho)-32(ds)]TJ 0 -18.389 Td [(get)]TJ ET q -1 0 0 1 166.827 706.328 cm +1 0 0 1 166.827 650.487 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 170.264 706.129 Td [(ncols)-383(|)-384(Get)-383(n)32(um)32(b)-32(er)-383(of)-384(columns)-383(in)-384(a)-383(sparse)-383(matrix)]TJ +/F27 9.9626 Tf 170.264 650.288 Td [(nro)32(ws)-383(|)-384(Get)-383(n)32(um)32(b)-32(er)-383(of)-384(ro)32(ws)-383(in)-383(a)-384(sparse)-383(matrix)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -19.559 -18.502 Td [(nc)-525(=)-525(a%get_ncols\050\051)]TJ +/F30 9.9626 Tf -19.559 -18.389 Td [(nr)-525(=)-525(a%get_nrows\050\051)]TJ 0 g 0 G -/F27 9.9626 Tf 0 -22.1 Td [(T)32(yp)-32(e:)]TJ +/F27 9.9626 Tf 0 -19.598 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G /F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ 0 g 0 G -/F27 9.9626 Tf -33.797 -20.167 Td [(On)-383(En)32(try)]TJ +/F27 9.9626 Tf -33.797 -18.997 Td [(On)-383(En)32(try)]TJ 0 g 0 G 0 g 0 G - 0 -20.168 Td [(a)]TJ + 0 -18.997 Td [(a)]TJ 0 g 0 G /F8 9.9626 Tf 10.551 0 Td [(the)-333(sparse)-334(matrix)]TJ 14.355 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ 0 g 0 G - -57.285 -34.055 Td [(On)-383(Return)]TJ + -57.285 -31.552 Td [(On)-383(Return)]TJ 0 g 0 G 0 g 0 G - 0 -20.168 Td [(F)96(unction)-384(v)64(alue)]TJ + 0 -18.997 Td [(F)96(unction)-384(v)64(alue)]TJ 0 g 0 G -/F8 9.9626 Tf 78.386 0 Td [(The)-333(n)27(um)28(b)-28(er)-333(of)-333(columns)-334(of)-333(sparse)-333(matrix)]TJ/F30 9.9626 Tf 180.684 0 Td [(a)]TJ/F8 9.9626 Tf 5.23 0 Td [(.)]TJ/F27 9.9626 Tf -264.3 -26.217 Td [(get)]TJ +/F8 9.9626 Tf 78.386 0 Td [(The)-333(n)27(um)28(b)-28(er)-333(of)-333(ro)28(ws)-334(of)-333(sparse)-333(matrix)]TJ/F30 9.9626 Tf 164.937 0 Td [(a)]TJ/F8 9.9626 Tf 5.231 0 Td [(.)]TJ/F27 9.9626 Tf -248.554 -25.497 Td [(get)]TJ ET q -1 0 0 1 166.827 532.996 cm +1 0 0 1 166.827 486.506 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 170.264 532.797 Td [(nnzeros)-383(|)-384(Get)-383(n)32(um)32(b)-32(er)-383(of)-384(nonzero)-383(elemen)32(ts)-383(in)-384(a)-383(sparse)-383(m)-1(atrix)]TJ +/F27 9.9626 Tf 170.264 486.306 Td [(ncols)-383(|)-384(Get)-383(n)32(um)32(b)-32(er)-383(of)-384(columns)-383(in)-384(a)-383(sparse)-383(matrix)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -19.559 -18.502 Td [(nz)-525(=)-525(a%get_nnzeros\050\051)]TJ +/F30 9.9626 Tf -19.559 -18.389 Td [(nc)-525(=)-525(a%get_ncols\050\051)]TJ 0 g 0 G -/F27 9.9626 Tf 0 -22.1 Td [(T)32(yp)-32(e:)]TJ +/F27 9.9626 Tf 0 -19.597 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G /F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ 0 g 0 G -/F27 9.9626 Tf -33.797 -20.167 Td [(On)-383(En)32(try)]TJ +/F27 9.9626 Tf -33.797 -18.997 Td [(On)-383(En)32(try)]TJ 0 g 0 G 0 g 0 G - 0 -20.168 Td [(a)]TJ -0 g 0 G -/F8 9.9626 Tf 10.551 0 Td [(the)-333(sparse)-334(matrix)]TJ 14.355 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ -0 g 0 G - -57.285 -34.055 Td [(On)-383(Return)]TJ + 0 -18.997 Td [(a)]TJ 0 g 0 G +/F8 9.9626 Tf 10.551 0 Td [(the)-333(sparse)-334(matrix)]TJ 14.355 -11.956 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ 0 g 0 G - 0 -20.167 Td [(F)96(unction)-384(v)64(alue)]TJ + -57.285 -31.552 Td [(On)-383(Return)]TJ 0 g 0 G -/F8 9.9626 Tf 78.386 0 Td [(The)-333(n)27(um)28(b)-28(er)-333(of)-333(nonzero)-333(e)-1(l)1(e)-1(men)28(ts)-333(stored)-334(in)-333(sparse)-333(matrix)]TJ/F30 9.9626 Tf 249.98 0 Td [(a)]TJ/F8 9.9626 Tf 5.23 0 Td [(.)]TJ/F27 9.9626 Tf -333.596 -22.161 Td [(Notes)]TJ 0 g 0 G -/F8 9.9626 Tf 12.176 -20.107 Td [(1.)]TJ + 0 -18.997 Td [(F)96(unction)-384(v)64(alue)]TJ 0 g 0 G - [-500(The)-462(function)-462(v)55(alue)-462(is)-462(sp)-28(eci\014c)-462(to)-463(th)1(e)-463(storage)-462(format)-462(of)-462(matrix)]TJ/F30 9.9626 Tf 296.649 0 Td [(a)]TJ/F8 9.9626 Tf 5.23 0 Td [(;)-527(some)]TJ -289.149 -11.955 Td [(storage)-465(formats)-466(emplo)28(y)-465(padding,)-498(th)27(us)-465(the)-465(returned)-465(v)55(alue)-465(for)-465(the)-466(same)]TJ 0 -11.955 Td [(matrix)-333(ma)27(y)-333(b)-28(e)-333(di\013eren)28(t)-334(for)-333(di\013eren)28(t)-333(storage)-334(c)28(hoices.)]TJ/F27 9.9626 Tf -24.906 -26.217 Td [(get)]TJ +/F8 9.9626 Tf 78.386 0 Td [(The)-333(n)27(um)28(b)-28(er)-333(of)-333(columns)-334(of)-333(sparse)-333(matrix)]TJ/F30 9.9626 Tf 180.684 0 Td [(a)]TJ/F8 9.9626 Tf 5.23 0 Td [(.)]TJ/F27 9.9626 Tf -264.3 -25.496 Td [(get)]TJ ET q -1 0 0 1 166.827 293.487 cm +1 0 0 1 166.827 322.524 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 170.264 293.288 Td [(size)-503(|)-503(Get)-503(maxim)32(um)-503(n)32(um)32(b)-32(er)-503(of)-503(nonzero)-503(elemen)32(ts)-503(in)-503(a)-504(sp)1(a)-1(rse)]TJ -19.559 -11.956 Td [(matrix)]TJ +/F27 9.9626 Tf 170.264 322.325 Td [(nnzeros)-383(|)-384(Get)-383(n)32(um)32(b)-32(er)-383(of)-384(nonzero)-383(elemen)32(ts)-383(in)-384(a)-383(sparse)-383(m)-1(atrix)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf 0 -18.502 Td [(maxnz)-525(=)-525(a%get_size\050\051)]TJ +/F30 9.9626 Tf -19.559 -18.39 Td [(nz)-525(=)-525(a%get_nnzeros\050\051)]TJ 0 g 0 G -/F27 9.9626 Tf 0 -22.099 Td [(T)32(yp)-32(e:)]TJ +/F27 9.9626 Tf 0 -19.597 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G /F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ 0 g 0 G -/F27 9.9626 Tf -33.797 -20.168 Td [(On)-383(En)32(try)]TJ +/F27 9.9626 Tf -33.797 -18.997 Td [(On)-383(En)32(try)]TJ 0 g 0 G 0 g 0 G - 0 -20.167 Td [(a)]TJ + 0 -18.997 Td [(a)]TJ +0 g 0 G +/F8 9.9626 Tf 10.551 0 Td [(the)-333(sparse)-334(matrix)]TJ 14.355 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ +0 g 0 G + -57.285 -31.553 Td [(On)-383(Return)]TJ 0 g 0 G -/F8 9.9626 Tf 10.551 0 Td [(the)-333(sparse)-334(matrix)]TJ 14.355 -11.956 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ 0 g 0 G - -57.285 -34.054 Td [(On)-383(Return)]TJ + 0 -18.997 Td [(F)96(unction)-384(v)64(alue)]TJ 0 g 0 G +/F8 9.9626 Tf 78.386 0 Td [(The)-333(n)27(um)28(b)-28(er)-333(of)-333(nonzero)-333(e)-1(l)1(e)-1(men)28(ts)-333(stored)-334(in)-333(sparse)-333(matrix)]TJ/F30 9.9626 Tf 249.98 0 Td [(a)]TJ/F8 9.9626 Tf 5.23 0 Td [(.)]TJ/F27 9.9626 Tf -333.596 -19.597 Td [(Notes)]TJ 0 g 0 G - 0 -20.168 Td [(F)96(unction)-384(v)64(alue)]TJ +/F8 9.9626 Tf 12.176 -18.069 Td [(1.)]TJ 0 g 0 G -/F8 9.9626 Tf 78.386 0 Td [(The)-253(maxim)27(u)1(m)-254(n)28(um)28(b)-28(er)-253(of)-253(nonzero)-254(elemen)28(ts)-253(that)-253(can)-254(b)-27(e)-254(stored)]TJ -53.48 -11.955 Td [(in)-333(sparse)-334(matrix)]TJ/F30 9.9626 Tf 74.056 0 Td [(a)]TJ/F8 9.9626 Tf 8.551 0 Td [(using)-333(its)-334(curren)28(t)-333(memory)-334(allo)-27(cation.)]TJ + [-500(The)-462(function)-462(v)55(alue)-462(is)-462(sp)-28(eci\014c)-462(to)-463(th)1(e)-463(storage)-462(format)-462(of)-462(matrix)]TJ/F30 9.9626 Tf 296.649 0 Td [(a)]TJ/F8 9.9626 Tf 5.23 0 Td [(;)-527(some)]TJ -289.149 -11.955 Td [(storage)-465(formats)-466(emplo)28(y)-465(padding,)-498(th)27(us)-465(the)-465(returned)-465(v)55(alue)-465(for)-465(the)-466(same)]TJ 0 -11.955 Td [(matrix)-333(ma)27(y)-333(b)-28(e)-333(di\013eren)28(t)-334(for)-333(di\013eren)28(t)-333(storage)-334(c)28(hoices.)]TJ 0 g 0 G - 59.361 -31.825 Td [(16)]TJ + 141.968 -31.825 Td [(16)]TJ 0 g 0 G ET endstream endobj -862 0 obj << +867 0 obj << /Type /Page -/Contents 863 0 R -/Resources 861 0 R +/Contents 868 0 R +/Resources 866 0 R /MediaBox [0 0 595.276 841.89] -/Parent 845 0 R +/Parent 850 0 R >> endobj -864 0 obj << -/D [862 0 R /XYZ 150.705 740.998 null] +869 0 obj << +/D [867 0 R /XYZ 150.705 740.998 null] +>> endobj +94 0 obj << +/D [867 0 R /XYZ 150.705 678.142 null] >> endobj 98 0 obj << -/D [862 0 R /XYZ 150.705 697.705 null] +/D [867 0 R /XYZ 150.705 641.917 null] >> endobj 102 0 obj << -/D [862 0 R /XYZ 150.705 524.373 null] ->> endobj -865 0 obj << -/D [862 0 R /XYZ 150.705 359.477 null] +/D [867 0 R /XYZ 150.705 477.935 null] >> endobj 106 0 obj << -/D [862 0 R /XYZ 150.705 274.846 null] +/D [867 0 R /XYZ 150.705 313.953 null] >> endobj -861 0 obj << -/Font << /F27 533 0 R /F30 734 0 R /F8 534 0 R >> +870 0 obj << +/D [867 0 R /XYZ 150.705 161.649 null] +>> endobj +866 0 obj << +/Font << /F8 538 0 R /F27 537 0 R /F30 739 0 R >> /ProcSet [ /PDF /Text ] >> endobj -868 0 obj << -/Length 3701 +873 0 obj << +/Length 3448 >> stream 0 g 0 G 0 g 0 G BT -/F27 9.9626 Tf 99.895 706.129 Td [(sizeof)-383(|)-384(Get)-383(memory)-383(o)-32(ccupation)-384(in)-383(b)32(ytes)-384(of)-383(a)-383(sparse)-384(matrix)]TJ +/F27 9.9626 Tf 99.895 706.129 Td [(get)]TJ +ET +q +1 0 0 1 116.018 706.328 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +Q +BT +/F27 9.9626 Tf 119.455 706.129 Td [(size)-503(|)-503(Get)-503(maxim)32(um)-503(n)32(um)32(b)-32(er)-503(of)-503(nonzero)-503(elemen)32(ts)-503(in)-503(a)-503(sparse)]TJ -19.56 -11.955 Td [(matrix)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf 0 -19.623 Td [(memory_size)-525(=)-525(a%sizeof\050\051)]TJ +/F30 9.9626 Tf 0 -19.94 Td [(maxnz)-525(=)-525(a%get_size\050\051)]TJ 0 g 0 G -/F27 9.9626 Tf 0 -23.906 Td [(T)32(yp)-32(e:)]TJ +/F27 9.9626 Tf 0 -24.417 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G /F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ 0 g 0 G -/F27 9.9626 Tf -33.797 -22.576 Td [(On)-383(En)32(try)]TJ +/F27 9.9626 Tf -33.797 -23.257 Td [(On)-383(En)32(try)]TJ 0 g 0 G 0 g 0 G - 0 -22.576 Td [(a)]TJ + 0 -23.258 Td [(a)]TJ 0 g 0 G /F8 9.9626 Tf 10.551 0 Td [(the)-333(sparse)-334(matrix)]TJ 14.356 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ 0 g 0 G - -57.286 -35.862 Td [(On)-383(Return)]TJ + -57.286 -36.372 Td [(On)-383(Return)]TJ 0 g 0 G 0 g 0 G - 0 -22.576 Td [(F)96(unction)-384(v)64(alue)]TJ + 0 -23.258 Td [(F)96(unction)-384(v)64(alue)]TJ 0 g 0 G -/F8 9.9626 Tf 78.387 0 Td [(The)-333(memory)-334(o)-28(ccupati)1(on)-334(in)-333(b)28(ytes.)]TJ/F27 9.9626 Tf -78.387 -29.412 Td [(get)]TJ -ET -q -1 0 0 1 116.018 517.842 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q -BT -/F27 9.9626 Tf 119.455 517.643 Td [(fm)32(t)-383(|)-384(Short)-383(description)-384(of)-383(the)-383(dynamic)-384(t)32(yp)-32(e)]TJ +/F8 9.9626 Tf 78.387 0 Td [(The)-253(maxim)28(um)-254(n)28(um)28(b)-28(er)-253(of)-253(nonzero)-254(elemen)28(ts)-253(that)-253(can)-254(b)-27(e)-254(stored)]TJ -53.48 -11.955 Td [(in)-333(sparse)-334(matrix)]TJ/F30 9.9626 Tf 74.056 0 Td [(a)]TJ/F8 9.9626 Tf 8.551 0 Td [(using)-333(its)-334(curren)28(t)-333(memory)-334(allo)-27(cation.)]TJ/F27 9.9626 Tf -107.514 -30.316 Td [(sizeof)-383(|)-384(Get)-383(memory)-383(o)-32(ccupation)-384(in)-383(b)32(ytes)-384(of)-383(a)-383(sparse)-384(matrix)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -19.56 -19.623 Td [(write\050*,*\051)-525(a%get_fmt\050\051)]TJ +/F30 9.9626 Tf 0 -19.939 Td [(memory_size)-525(=)-525(a%sizeof\050\051)]TJ 0 g 0 G -/F27 9.9626 Tf 0 -23.906 Td [(T)32(yp)-32(e:)]TJ +/F27 9.9626 Tf 0 -24.417 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G /F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ 0 g 0 G -/F27 9.9626 Tf -33.797 -22.576 Td [(On)-383(En)32(try)]TJ +/F27 9.9626 Tf -33.797 -23.258 Td [(On)-383(En)32(try)]TJ 0 g 0 G 0 g 0 G - 0 -22.576 Td [(a)]TJ + 0 -23.257 Td [(a)]TJ 0 g 0 G /F8 9.9626 Tf 10.551 0 Td [(the)-333(sparse)-334(matrix)]TJ 14.356 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ 0 g 0 G - -57.286 -35.861 Td [(On)-383(Return)]TJ + -57.286 -36.372 Td [(On)-383(Return)]TJ 0 g 0 G 0 g 0 G - 0 -22.577 Td [(F)96(unction)-384(v)64(alue)]TJ + 0 -23.258 Td [(F)96(unction)-384(v)64(alue)]TJ 0 g 0 G -/F8 9.9626 Tf 78.387 0 Td [(A)-484(short)-483(string)-484(describing)-484(the)-484(dynamic)-484(t)28(yp)-27(e)-484(of)-484(the)-484(matrix.)]TJ -53.48 -11.955 Td [(Prede\014ned)-333(v)55(alues)-333(include)]TJ/F30 9.9626 Tf 113.408 0 Td [(NULL)]TJ/F8 9.9626 Tf 20.922 0 Td [(,)]TJ/F30 9.9626 Tf 6.088 0 Td [(COO)]TJ/F8 9.9626 Tf 15.691 0 Td [(,)]TJ/F30 9.9626 Tf 6.088 0 Td [(CSR)]TJ/F8 9.9626 Tf 19.012 0 Td [(and)]TJ/F30 9.9626 Tf 19.372 0 Td [(CSC)]TJ/F8 9.9626 Tf 15.691 0 Td [(.)]TJ/F27 9.9626 Tf -241.179 -29.412 Td [(is)]TJ -ET -q -1 0 0 1 108.284 317.401 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q -BT -/F27 9.9626 Tf 111.722 317.202 Td [(bld,)-383(is)]TJ -ET -q -1 0 0 1 143.024 317.401 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q -BT -/F27 9.9626 Tf 146.462 317.202 Td [(up)-32(d,)-383(is)]TJ +/F8 9.9626 Tf 78.387 0 Td [(The)-333(memory)-334(o)-28(ccupati)1(on)-334(in)-333(b)28(ytes.)]TJ/F27 9.9626 Tf -78.387 -30.316 Td [(get)]TJ ET q -1 0 0 1 181.265 317.401 cm +1 0 0 1 116.018 296.874 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 184.702 317.202 Td [(asb)-383(|)-384(Status)-383(c)32(hec)32(k)]TJ +/F27 9.9626 Tf 119.455 296.674 Td [(fm)32(t)-383(|)-384(Short)-383(description)-384(of)-383(the)-383(dynamic)-384(t)32(yp)-32(e)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -84.807 -19.623 Td [(if)-525(\050a%is_bld\050\051\051)-525(then)]TJ 0 -11.955 Td [(if)-525(\050a%is_upd\050\051\051)-525(then)]TJ 0 -11.955 Td [(if)-525(\050a%is_asb\050\051\051)-525(then)]TJ +/F30 9.9626 Tf -19.56 -19.939 Td [(write\050*,*\051)-525(a%get_fmt\050\051)]TJ 0 g 0 G -/F27 9.9626 Tf 0 -23.906 Td [(T)32(yp)-32(e:)]TJ +/F27 9.9626 Tf 0 -24.417 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G /F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ 0 g 0 G -/F27 9.9626 Tf -33.797 -22.576 Td [(On)-383(En)32(try)]TJ +/F27 9.9626 Tf -33.797 -23.258 Td [(On)-383(En)32(try)]TJ 0 g 0 G 0 g 0 G - 0 -22.576 Td [(a)]TJ + 0 -23.257 Td [(a)]TJ 0 g 0 G -/F8 9.9626 Tf 10.551 0 Td [(the)-333(sparse)-334(matrix)]TJ 14.356 -11.956 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ +/F8 9.9626 Tf 10.551 0 Td [(the)-333(sparse)-334(matrix)]TJ 14.356 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ 0 g 0 G - -57.286 -35.861 Td [(On)-383(Return)]TJ + -57.286 -36.373 Td [(On)-383(Return)]TJ 0 g 0 G 0 g 0 G - 0 -22.576 Td [(F)96(unction)-384(v)64(alue)]TJ + 0 -23.257 Td [(F)96(unction)-384(v)64(alue)]TJ 0 g 0 G -/F8 9.9626 Tf 78.387 0 Td [(A)]TJ/F30 9.9626 Tf 9.727 0 Td [(logical)]TJ/F8 9.9626 Tf 38.87 0 Td [(v)56(alue)-227(indicating)-226(whether)-227(the)-226(matrix)-227(is)-226(in)-227(the)-227(Bui)1(ld,)]TJ -102.077 -11.955 Td [(Up)-28(date)-333(or)-333(Asse)-1(m)28(bled)-333(state,)-333(res)-1(p)-27(ectiv)27(ely)84(.)]TJ +/F8 9.9626 Tf 78.387 0 Td [(A)-484(short)-483(string)-484(describing)-484(the)-484(dynamic)-484(t)28(yp)-27(e)-484(of)-484(the)-484(matrix.)]TJ -53.48 -11.955 Td [(Prede\014ned)-333(v)55(alues)-333(include)]TJ/F30 9.9626 Tf 113.408 0 Td [(NULL)]TJ/F8 9.9626 Tf 20.922 0 Td [(,)]TJ/F30 9.9626 Tf 6.088 0 Td [(COO)]TJ/F8 9.9626 Tf 15.691 0 Td [(,)]TJ/F30 9.9626 Tf 6.088 0 Td [(CSR)]TJ/F8 9.9626 Tf 19.012 0 Td [(and)]TJ/F30 9.9626 Tf 19.372 0 Td [(CSC)]TJ/F8 9.9626 Tf 15.691 0 Td [(.)]TJ 0 g 0 G - 141.968 -31.825 Td [(17)]TJ + -74.304 -31.825 Td [(17)]TJ 0 g 0 G ET endstream endobj -867 0 obj << +872 0 obj << /Type /Page -/Contents 868 0 R -/Resources 866 0 R +/Contents 873 0 R +/Resources 871 0 R /MediaBox [0 0 595.276 841.89] -/Parent 845 0 R +/Parent 850 0 R >> endobj -869 0 obj << -/D [867 0 R /XYZ 99.895 740.998 null] +874 0 obj << +/D [872 0 R /XYZ 99.895 740.998 null] >> endobj 110 0 obj << -/D [867 0 R /XYZ 99.895 697.187 null] +/D [872 0 R /XYZ 99.895 687.022 null] >> endobj 114 0 obj << -/D [867 0 R /XYZ 99.895 508.701 null] +/D [872 0 R /XYZ 99.895 480.358 null] >> endobj 118 0 obj << -/D [867 0 R /XYZ 99.895 308.26 null] +/D [872 0 R /XYZ 99.895 287.586 null] >> endobj -866 0 obj << -/Font << /F27 533 0 R /F30 734 0 R /F8 534 0 R >> +871 0 obj << +/Font << /F27 537 0 R /F30 739 0 R /F8 538 0 R >> /ProcSet [ /PDF /Text ] >> endobj -872 0 obj << -/Length 4306 +877 0 obj << +/Length 4633 >> stream 0 g 0 G @@ -6260,315 +6291,358 @@ q []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 162.531 706.129 Td [(lo)32(w)32(er,)-383(i)-1(s)]TJ -ET -q -1 0 0 1 204.44 706.328 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q -BT -/F27 9.9626 Tf 207.877 706.129 Td [(upp)-32(er,)-383(is)]TJ +/F27 9.9626 Tf 162.531 706.129 Td [(bld,)-383(is)]TJ ET q -1 0 0 1 252.65 706.328 cm +1 0 0 1 193.834 706.328 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 256.087 706.129 Td [(triangle,)-384(is)]TJ +/F27 9.9626 Tf 197.271 706.129 Td [(up)-32(d,)-383(is)]TJ ET q -1 0 0 1 309.931 706.328 cm +1 0 0 1 232.075 706.328 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 313.368 706.129 Td [(unit)-383(|)-384(F)96(ormat)-383(c)32(hec)32(k)]TJ +/F27 9.9626 Tf 235.512 706.129 Td [(asb)-383(|)-384(Status)-383(c)32(hec)32(k)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -162.663 -20.124 Td [(if)-525(\050a%is_triangle\050\051\051)-525(then)]TJ 0 -11.955 Td [(if)-525(\050a%is_upper\050\051\051)-525(then)]TJ 0 -11.955 Td [(if)-525(\050a%is_lower\050\051\051)-525(then)]TJ 0 -11.955 Td [(if)-525(\050a%is_unit\050\051\051)-525(then)]TJ +/F30 9.9626 Tf -84.807 -18.389 Td [(if)-525(\050a%is_bld\050\051\051)-525(then)]TJ 0 -11.956 Td [(if)-525(\050a%is_upd\050\051\051)-525(then)]TJ 0 -11.955 Td [(if)-525(\050a%is_asb\050\051\051)-525(then)]TJ 0 g 0 G -/F27 9.9626 Tf 0 -24.714 Td [(T)32(yp)-32(e:)]TJ +/F27 9.9626 Tf 0 -20.429 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G /F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ 0 g 0 G -/F27 9.9626 Tf -33.797 -23.653 Td [(On)-383(En)32(try)]TJ +/F27 9.9626 Tf -33.797 -19.33 Td [(On)-383(En)32(try)]TJ 0 g 0 G 0 g 0 G - 0 -23.654 Td [(a)]TJ + 0 -19.33 Td [(a)]TJ 0 g 0 G -/F8 9.9626 Tf 10.551 0 Td [(the)-333(sparse)-334(matrix)]TJ 14.356 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(lo)-32(cal)]TJ +/F8 9.9626 Tf 10.551 0 Td [(the)-333(sparse)-334(matrix)]TJ 14.356 -11.956 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(lo)-32(cal)]TJ 0 g 0 G - -57.285 -36.669 Td [(On)-383(Return)]TJ + -57.285 -32.384 Td [(On)-383(Return)]TJ 0 g 0 G 0 g 0 G - 0 -23.653 Td [(F)96(unction)-384(v)64(alue)]TJ + 0 -19.33 Td [(F)96(unction)-384(v)64(alue)]TJ 0 g 0 G -/F8 9.9626 Tf 78.386 0 Td [(A)]TJ/F30 9.9626 Tf 10.615 0 Td [(logical)]TJ/F8 9.9626 Tf 39.755 0 Td [(v)56(alue)-316(indicating)-315(whether)-316(the)-315(matrix)-316(i)1(s)-316(triangular;)]TJ -103.849 -11.955 Td [(if)]TJ/F30 9.9626 Tf 8.895 0 Td [(is_triangle\050\051)]TJ/F8 9.9626 Tf 71.079 0 Td [(returns)]TJ/F30 9.9626 Tf 34.189 0 Td [(.true.)]TJ/F8 9.9626 Tf 34.466 0 Td [(c)28(hec)27(k)-309(also)-310(if)-309(it)-310(is)-309(lo)27(w)28(er,)-314(upp)-28(er)-309(and)-310(with)]TJ -148.629 -11.955 Td [(a)-333(unit)-334(\050i)1(.e)-1(.)-444(assumed\051)-333(diagonal.)]TJ/F27 9.9626 Tf -24.907 -30.841 Td [(cscn)32(v)-383(|)-384(Con)32(v)32(ert)-383(to)-384(a)-383(di\013eren)32(t)-383(storage)-384(format)]TJ +/F8 9.9626 Tf 78.386 0 Td [(A)]TJ/F30 9.9626 Tf 9.728 0 Td [(logical)]TJ/F8 9.9626 Tf 38.869 0 Td [(v)56(alue)-227(indicating)-226(whether)-227(the)-226(m)-1(atr)1(ix)-227(is)-227(in)-226(the)-227(Build)1(,)]TJ -102.076 -11.956 Td [(Up)-28(date)-333(or)-333(Assem)27(bled)-333(state,)-333(resp)-28(ectiv)28(e)-1(l)1(y)83(.)]TJ/F27 9.9626 Tf -24.907 -25.639 Td [(is)]TJ +ET +q +1 0 0 1 159.094 503.674 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +Q +BT +/F27 9.9626 Tf 162.531 503.475 Td [(lo)32(w)32(er,)-383(i)-1(s)]TJ +ET +q +1 0 0 1 204.44 503.674 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +Q +BT +/F27 9.9626 Tf 207.877 503.475 Td [(upp)-32(er,)-383(is)]TJ +ET +q +1 0 0 1 252.65 503.674 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +Q +BT +/F27 9.9626 Tf 256.087 503.475 Td [(triangle,)-384(is)]TJ +ET +q +1 0 0 1 309.931 503.674 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +Q +BT +/F27 9.9626 Tf 313.368 503.475 Td [(unit)-383(|)-384(F)96(ormat)-383(c)32(hec)32(k)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf 0 -20.124 Td [(call)-1050(a%cscnv\050b,info)-525([,)-525(type,)-525(mold,)-525(dupl]\051)]TJ 0 -11.955 Td [(call)-1050(a%cscnv\050info)-525([,)-525(type,)-525(mold,)-525(dupl]\051)]TJ +/F30 9.9626 Tf -162.663 -18.39 Td [(if)-525(\050a%is_triangle\050\051\051)-525(then)]TJ 0 -11.955 Td [(if)-525(\050a%is_upper\050\051\051)-525(then)]TJ 0 -11.955 Td [(if)-525(\050a%is_lower\050\051\051)-525(then)]TJ 0 -11.955 Td [(if)-525(\050a%is_unit\050\051\051)-525(then)]TJ 0 g 0 G -/F27 9.9626 Tf 0 -24.714 Td [(T)32(yp)-32(e:)]TJ +/F27 9.9626 Tf 0 -20.43 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G /F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ 0 g 0 G -/F27 9.9626 Tf -33.797 -23.653 Td [(On)-383(En)32(try)]TJ +/F27 9.9626 Tf -33.797 -19.33 Td [(On)-383(En)32(try)]TJ 0 g 0 G 0 g 0 G - 0 -23.653 Td [(a)]TJ + 0 -19.33 Td [(a)]TJ 0 g 0 G -/F8 9.9626 Tf 10.551 0 Td [(the)-333(sparse)-334(matrix.)]TJ 14.356 -11.955 Td [(A)-333(v)55(ariable)-333(of)-333(t)27(y)1(p)-28(e)]TJ/F30 9.9626 Tf 81.942 0 Td [(psb_Tspmat_type)]TJ/F8 9.9626 Tf 78.456 0 Td [(.)]TJ -160.398 -11.956 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ +/F8 9.9626 Tf 10.551 0 Td [(the)-333(sparse)-334(matrix)]TJ 14.356 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(lo)-32(cal)]TJ 0 g 0 G -/F27 9.9626 Tf -80.358 -35.608 Td [(t)32(yp)-32(e)]TJ + -57.285 -32.385 Td [(On)-383(Return)]TJ 0 g 0 G -/F8 9.9626 Tf 27.1 0 Td [(a)-333(string)-334(requesting)-333(a)-333(new)-334(format.)]TJ -2.193 -11.955 Td [(T)28(yp)-28(e:)-444(optional.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -23.653 Td [(mold)]TJ + 0 -19.33 Td [(F)96(unction)-384(v)64(alue)]TJ 0 g 0 G -/F8 9.9626 Tf 29.805 0 Td [(a)-312(v)56(ariable)-312(of)]TJ/F30 9.9626 Tf 56.396 0 Td [(class\050psb_T_base_sparse_mat\051)]TJ/F8 9.9626 Tf 149.557 0 Td [(requesting)-312(a)-312(new)-312(format.)]TJ -210.851 -11.956 Td [(T)28(yp)-28(e:)-444(optional.)]TJ +/F8 9.9626 Tf 78.386 0 Td [(A)]TJ/F30 9.9626 Tf 10.615 0 Td [(logical)]TJ/F8 9.9626 Tf 39.755 0 Td [(v)56(alue)-316(indicating)-315(whether)-316(the)-315(matrix)-316(i)1(s)-316(triangular;)]TJ -103.849 -11.955 Td [(if)]TJ/F30 9.9626 Tf 8.895 0 Td [(is_triangle\050\051)]TJ/F8 9.9626 Tf 71.079 0 Td [(returns)]TJ/F30 9.9626 Tf 34.189 0 Td [(.true.)]TJ/F8 9.9626 Tf 34.466 0 Td [(c)28(hec)27(k)-309(also)-310(if)-309(it)-310(is)-309(lo)27(w)28(er,)-314(upp)-28(er)-309(and)-310(with)]TJ -148.629 -11.955 Td [(a)-333(unit)-334(\050i)1(.e)-1(.)-444(assumed\051)-333(diagonal.)]TJ/F27 9.9626 Tf -24.907 -25.64 Td [(cscn)32(v)-383(|)-384(Con)32(v)32(ert)-383(to)-384(a)-383(di\013eren)32(t)-383(storage)-384(format)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -23.653 Td [(dupl)]TJ 0 g 0 G -/F8 9.9626 Tf 27.259 0 Td [(an)-268(in)28(teger)-268(v)56(alue)-268(sp)-28(eci\014ng)-267(ho)27(w)-267(to)-268(handle)-268(duplicates)-268(\050see)-268(Named)-267(Constan)27(ts)]TJ -2.352 -11.955 Td [(b)-28(elo)28(w\051)]TJ +/F30 9.9626 Tf 0 -18.389 Td [(call)-1050(a%cscnv\050b,info)-525([,)-525(type,)-525(mold,)-525(dupl]\051)]TJ 0 -11.955 Td [(call)-1050(a%cscnv\050info)-525([,)-525(type,)-525(mold,)-525(dupl]\051)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -24.714 Td [(On)-383(Return)]TJ +/F27 9.9626 Tf 0 -20.43 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G +/F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ 0 g 0 G - 0 -23.653 Td [(b,a)]TJ +/F27 9.9626 Tf -33.797 -19.33 Td [(On)-383(En)32(try)]TJ 0 g 0 G -/F8 9.9626 Tf 20.098 0 Td [(A)-333(cop)27(y)-333(of)]TJ/F30 9.9626 Tf 45.386 0 Td [(a)]TJ/F8 9.9626 Tf 8.551 0 Td [(with)-333(a)-334(new)-333(storage)-333(format.)]TJ -49.128 -11.955 Td [(A)-333(v)55(ariable)-333(of)-333(t)27(y)1(p)-28(e)]TJ/F30 9.9626 Tf 81.943 0 Td [(psb_Tspmat_type)]TJ/F8 9.9626 Tf 78.455 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -185.305 -23.653 Td [(info)]TJ + 0 -19.33 Td [(a)]TJ 0 g 0 G -/F8 9.9626 Tf 23.758 0 Td [(Return)-333(co)-28(de.)]TJ +/F8 9.9626 Tf 10.551 0 Td [(the)-333(sparse)-334(matrix.)]TJ 14.356 -11.955 Td [(A)-333(v)55(ariable)-333(of)-333(t)27(y)1(p)-28(e)]TJ/F30 9.9626 Tf 81.942 0 Td [(psb_Tspmat_type)]TJ/F8 9.9626 Tf 78.456 0 Td [(.)]TJ -160.398 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ 0 g 0 G - 143.116 -29.888 Td [(18)]TJ +/F27 9.9626 Tf -80.358 -31.285 Td [(t)32(yp)-32(e)]TJ +0 g 0 G +/F8 9.9626 Tf 27.1 0 Td [(a)-333(string)-334(requesting)-333(a)-333(new)-334(format.)]TJ -2.193 -11.955 Td [(T)28(yp)-28(e:)-444(optional.)]TJ +0 g 0 G + 141.967 -29.888 Td [(18)]TJ 0 g 0 G ET endstream endobj -871 0 obj << +876 0 obj << /Type /Page -/Contents 872 0 R -/Resources 870 0 R +/Contents 877 0 R +/Resources 875 0 R /MediaBox [0 0 595.276 841.89] -/Parent 845 0 R +/Parent 850 0 R >> endobj -873 0 obj << -/D [871 0 R /XYZ 150.705 740.998 null] +878 0 obj << +/D [876 0 R /XYZ 150.705 740.998 null] >> endobj 122 0 obj << -/D [871 0 R /XYZ 150.705 696.955 null] +/D [876 0 R /XYZ 150.705 697.758 null] >> endobj 126 0 obj << -/D [871 0 R /XYZ 150.705 441.917 null] +/D [876 0 R /XYZ 150.705 495.103 null] >> endobj -870 0 obj << -/Font << /F27 533 0 R /F30 734 0 R /F8 534 0 R >> +130 0 obj << +/D [876 0 R /XYZ 150.705 268.539 null] +>> endobj +875 0 obj << +/Font << /F27 537 0 R /F30 739 0 R /F8 538 0 R >> /ProcSet [ /PDF /Text ] >> endobj -876 0 obj << -/Length 3665 +881 0 obj << +/Length 4377 >> stream 0 g 0 G 0 g 0 G +0 g 0 G BT -/F27 9.9626 Tf 99.895 706.129 Td [(csclip)-383(|)-384(Reduce)-383(to)-383(a)-384(submatrix)]TJ +/F27 9.9626 Tf 99.895 706.129 Td [(mold)]TJ +0 g 0 G +/F8 9.9626 Tf 29.805 0 Td [(a)-312(v)56(ariable)-312(of)]TJ/F30 9.9626 Tf 56.396 0 Td [(class\050psb_T_base_sparse_mat\051)]TJ/F8 9.9626 Tf 149.557 0 Td [(requesting)-312(a)-312(new)-312(format.)]TJ -210.851 -11.955 Td [(T)28(yp)-28(e:)-444(optional.)]TJ +0 g 0 G +/F27 9.9626 Tf -24.907 -19.737 Td [(dupl)]TJ +0 g 0 G +/F8 9.9626 Tf 27.259 0 Td [(an)-268(in)28(teger)-268(v)56(alue)-268(sp)-28(eci\014ng)-267(ho)27(w)-267(to)-268(handle)-268(duplicates)-268(\050see)-268(Named)-267(Constan)27(ts)]TJ -2.352 -11.955 Td [(b)-28(elo)28(w\051)]TJ +0 g 0 G +/F27 9.9626 Tf -24.907 -21.446 Td [(On)-383(Return)]TJ +0 g 0 G +0 g 0 G + 0 -19.736 Td [(b,a)]TJ +0 g 0 G +/F8 9.9626 Tf 20.098 0 Td [(A)-333(cop)27(y)-333(of)]TJ/F30 9.9626 Tf 45.386 0 Td [(a)]TJ/F8 9.9626 Tf 8.551 0 Td [(with)-333(a)-334(new)-333(storage)-333(format.)]TJ -49.128 -11.955 Td [(A)-333(v)55(ariable)-333(of)-333(t)27(yp)-27(e)]TJ/F30 9.9626 Tf 81.943 0 Td [(psb_Tspmat_type)]TJ/F8 9.9626 Tf 78.455 0 Td [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -185.305 -19.737 Td [(info)]TJ +0 g 0 G +/F8 9.9626 Tf 23.758 0 Td [(Return)-333(co)-28(de.)]TJ/F27 9.9626 Tf -23.758 -25.814 Td [(csclip)-383(|)-384(Reduce)-383(to)-383(a)-384(submatrix)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf 20.922 -20.089 Td [(call)-525(a%csclip\050b,info[,&)]TJ 15.691 -11.955 Td [(&)-525(imin,imax,jmin,jmax,rscale,cscale]\051)]TJ/F8 9.9626 Tf -21.669 -25.57 Td [(Returns)-222(the)-222(s)-1(u)1(bmatrix)]TJ/F30 9.9626 Tf 99.101 0 Td [(A\050imin:imax,jmin:jmax\051)]TJ/F8 9.9626 Tf 115.068 0 Td [(,)-244(optionally)-222(res)-1(calin)1(g)-223(ro)28(w/-)]TJ -229.113 -11.955 Td [(col)-333(indices)-334(to)-333(the)-333(range)]TJ/F30 9.9626 Tf 104.691 0 Td [(1:imax-imin+1,1:jmax-jmin+1)]TJ/F8 9.9626 Tf 141.219 0 Td [(.)]TJ +/F30 9.9626 Tf 20.922 -18.389 Td [(call)-525(a%csclip\050b,info[,&)]TJ 15.691 -11.956 Td [(&)-525(imin,imax,jmin,jmax,rscale,cscale]\051)]TJ/F8 9.9626 Tf -21.669 -21.445 Td [(Returns)-222(the)-222(s)-1(u)1(bmatrix)]TJ/F30 9.9626 Tf 99.101 0 Td [(A\050imin:imax,jmin:jmax\051)]TJ/F8 9.9626 Tf 115.068 0 Td [(,)-244(optionally)-222(res)-1(calin)1(g)-223(ro)28(w/-)]TJ -229.113 -11.955 Td [(col)-333(indices)-334(to)-333(the)-333(range)]TJ/F30 9.9626 Tf 104.691 0 Td [(1:imax-imin+1,1:jmax-jmin+1)]TJ/F8 9.9626 Tf 141.219 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -245.91 -22.664 Td [(T)32(yp)-32(e:)]TJ +/F27 9.9626 Tf -245.91 -19.548 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G /F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ 0 g 0 G -/F27 9.9626 Tf -33.797 -23.577 Td [(On)-383(En)32(try)]TJ +/F27 9.9626 Tf -33.797 -19.736 Td [(On)-383(En)32(try)]TJ 0 g 0 G 0 g 0 G - 0 -23.577 Td [(a)]TJ + 0 -19.737 Td [(a)]TJ 0 g 0 G -/F8 9.9626 Tf 10.551 0 Td [(the)-333(sparse)-334(matrix.)]TJ 14.356 -11.956 Td [(A)-333(v)55(ariable)-333(of)-333(t)27(yp)-27(e)]TJ/F30 9.9626 Tf 81.943 0 Td [(psb_Tspmat_type)]TJ/F8 9.9626 Tf 78.455 0 Td [(.)]TJ -160.398 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ +/F8 9.9626 Tf 10.551 0 Td [(the)-333(sparse)-334(matrix.)]TJ 14.356 -11.955 Td [(A)-333(v)55(ariable)-333(of)-333(t)27(yp)-27(e)]TJ/F30 9.9626 Tf 81.943 0 Td [(psb_Tspmat_type)]TJ/F8 9.9626 Tf 78.455 0 Td [(.)]TJ -160.398 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -80.359 -35.532 Td [(imin,imax,jmin,jma)-1(x)]TJ +/F27 9.9626 Tf -80.359 -31.692 Td [(imin,imax,jmin,jma)-1(x)]TJ 0 g 0 G /F8 9.9626 Tf 108.413 0 Td [(Minim)28(um)-333(and)-334(maxim)28(um)-333(ro)27(w)-333(and)-333(column)-333(indices.)]TJ -83.506 -11.955 Td [(T)28(yp)-28(e:)-444(optional.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -23.578 Td [(rscale,cscale)]TJ +/F27 9.9626 Tf -24.907 -19.736 Td [(rscale,cscale)]TJ 0 g 0 G /F8 9.9626 Tf 65.203 0 Td [(Whether)-333(to)-334(rescale)-333(ro)28(w/column)-334(ind)1(ic)-1(es.)-444(T)28(yp)-28(e:)-444(optional.)]TJ 0 g 0 G -/F27 9.9626 Tf -65.203 -25.569 Td [(On)-383(Return)]TJ +/F27 9.9626 Tf -65.203 -21.446 Td [(On)-383(Return)]TJ 0 g 0 G 0 g 0 G - 0 -23.578 Td [(b)]TJ + 0 -19.736 Td [(b)]TJ 0 g 0 G -/F8 9.9626 Tf 11.347 0 Td [(A)-333(cop)27(y)-333(of)-333(a)-333(s)-1(u)1(bmatrix)-334(of)]TJ/F30 9.9626 Tf 112.439 0 Td [(a)]TJ/F8 9.9626 Tf 5.231 0 Td [(.)]TJ -104.11 -11.955 Td [(A)-333(v)55(ariable)-333(of)-333(t)27(yp)-27(e)]TJ/F30 9.9626 Tf 81.943 0 Td [(psb_Tspmat_type)]TJ/F8 9.9626 Tf 78.455 0 Td [(.)]TJ +/F8 9.9626 Tf 11.347 0 Td [(A)-333(cop)27(y)-333(of)-333(a)-333(s)-1(u)1(bmatrix)-334(of)]TJ/F30 9.9626 Tf 112.439 0 Td [(a)]TJ/F8 9.9626 Tf 5.231 0 Td [(.)]TJ -104.11 -11.956 Td [(A)-333(v)55(ariable)-333(of)-333(t)27(yp)-27(e)]TJ/F30 9.9626 Tf 81.943 0 Td [(psb_Tspmat_type)]TJ/F8 9.9626 Tf 78.455 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -185.305 -23.577 Td [(info)]TJ +/F27 9.9626 Tf -185.305 -19.736 Td [(info)]TJ 0 g 0 G -/F8 9.9626 Tf 23.758 0 Td [(Return)-333(co)-28(de.)]TJ/F27 9.9626 Tf -23.758 -30.74 Td [(get)]TJ +/F8 9.9626 Tf 23.758 0 Td [(Return)-333(co)-28(de.)]TJ/F27 9.9626 Tf -23.758 -25.815 Td [(get)]TJ ET q -1 0 0 1 116.018 356.547 cm +1 0 0 1 116.018 255.246 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 119.455 356.347 Td [(diag)-383(|)-384(Get)-383(main)-383(diagonal)]TJ +/F27 9.9626 Tf 119.455 255.047 Td [(diag)-383(|)-384(Get)-383(main)-383(diagonal)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf 1.362 -20.088 Td [(call)-525(a%get_diag\050d,info\051)]TJ/F8 9.9626 Tf -5.978 -25.57 Td [(Returns)-333(a)-334(cop)28(y)-333(of)-334(th)1(e)-334(main)-333(diagonal.)]TJ +/F30 9.9626 Tf 1.362 -18.39 Td [(call)-525(a%get_diag\050d,info\051)]TJ/F8 9.9626 Tf -5.978 -21.445 Td [(Returns)-333(a)-334(cop)28(y)-333(of)-334(th)1(e)-334(main)-333(diagonal.)]TJ 0 g 0 G -/F27 9.9626 Tf -14.944 -22.664 Td [(T)32(yp)-32(e:)]TJ +/F27 9.9626 Tf -14.944 -19.548 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G /F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ 0 g 0 G -/F27 9.9626 Tf -33.797 -23.577 Td [(On)-383(En)32(try)]TJ +/F27 9.9626 Tf -33.797 -19.736 Td [(On)-383(En)32(try)]TJ 0 g 0 G 0 g 0 G - 0 -23.578 Td [(a)]TJ + 0 -19.737 Td [(a)]TJ 0 g 0 G /F8 9.9626 Tf 10.551 0 Td [(the)-333(sparse)-334(matrix.)]TJ 14.356 -11.955 Td [(A)-333(v)55(ariable)-333(of)-333(t)27(yp)-27(e)]TJ/F30 9.9626 Tf 81.943 0 Td [(psb_Tspmat_type)]TJ/F8 9.9626 Tf 78.455 0 Td [(.)]TJ -160.398 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -80.359 -37.525 Td [(On)-383(Return)]TJ -0 g 0 G -0 g 0 G - 0 -23.577 Td [(d)]TJ -0 g 0 G -/F8 9.9626 Tf 11.347 0 Td [(A)-333(cop)27(y)-333(of)-333(the)-333(m)-1(ai)1(n)-334(diagonal.)]TJ 13.56 -11.955 Td [(A)-333(one-dimensional)-334(arra)28(y)-333(of)-333(the)-334(appropriate)-333(t)28(yp)-28(e.)]TJ -0 g 0 G -/F27 9.9626 Tf -24.907 -23.577 Td [(info)]TJ -0 g 0 G -/F8 9.9626 Tf 23.758 0 Td [(Return)-333(co)-28(de.)]TJ -0 g 0 G - 143.117 -29.888 Td [(19)]TJ + 86.516 -41.843 Td [(19)]TJ 0 g 0 G ET endstream endobj -875 0 obj << +880 0 obj << /Type /Page -/Contents 876 0 R -/Resources 874 0 R +/Contents 881 0 R +/Resources 879 0 R /MediaBox [0 0 595.276 841.89] -/Parent 878 0 R +/Parent 883 0 R >> endobj -877 0 obj << -/D [875 0 R /XYZ 99.895 740.998 null] ->> endobj -130 0 obj << -/D [875 0 R /XYZ 99.895 696.971 null] +882 0 obj << +/D [880 0 R /XYZ 99.895 740.998 null] >> endobj 134 0 obj << -/D [875 0 R /XYZ 99.895 347.19 null] +/D [880 0 R /XYZ 99.895 555.423 null] >> endobj -874 0 obj << -/Font << /F27 533 0 R /F30 734 0 R /F8 534 0 R >> +138 0 obj << +/D [880 0 R /XYZ 99.895 246.675 null] +>> endobj +879 0 obj << +/Font << /F27 537 0 R /F8 538 0 R /F30 739 0 R >> /ProcSet [ /PDF /Text ] >> endobj -881 0 obj << -/Length 4340 +886 0 obj << +/Length 4761 >> stream 0 g 0 G 0 g 0 G +0 g 0 G BT -/F27 9.9626 Tf 150.705 706.129 Td [(clip)]TJ +/F27 9.9626 Tf 150.705 706.129 Td [(On)-383(Return)]TJ +0 g 0 G +0 g 0 G + 0 -18.32 Td [(d)]TJ +0 g 0 G +/F8 9.9626 Tf 11.346 0 Td [(A)-333(cop)27(y)-333(of)-333(the)-334(main)-333(diagonal.)]TJ 13.56 -11.955 Td [(A)-333(one-dimensional)-334(arra)28(y)-333(of)-333(the)-334(appropriate)-333(t)28(yp)-28(e.)]TJ +0 g 0 G +/F27 9.9626 Tf -24.906 -18.32 Td [(info)]TJ +0 g 0 G +/F8 9.9626 Tf 23.758 0 Td [(Return)-333(co)-28(de.)]TJ/F27 9.9626 Tf -23.758 -25.204 Td [(clip)]TJ ET q -1 0 0 1 169.214 706.328 cm +1 0 0 1 169.214 632.529 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 172.651 706.129 Td [(diag)-383(|)-384(Cut)-383(out)-383(main)-384(diagonal)]TJ +/F27 9.9626 Tf 172.651 632.33 Td [(diag)-383(|)-384(Cut)-383(out)-383(main)-384(diagonal)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -1.025 -19.207 Td [(call)-525(a%clip_diag\050b,info\051)]TJ/F8 9.9626 Tf -5.977 -23.676 Td [(Returns)-333(a)-334(cop)28(y)-333(of)]TJ/F30 9.9626 Tf 80.753 0 Td [(a)]TJ/F8 9.9626 Tf 8.551 0 Td [(without)-333(the)-334(main)-333(diagonal.)]TJ +/F30 9.9626 Tf -1.025 -18.39 Td [(call)-525(a%clip_diag\050b,info\051)]TJ/F8 9.9626 Tf -5.977 -17.903 Td [(Returns)-333(a)-334(cop)28(y)-333(of)]TJ/F30 9.9626 Tf 80.753 0 Td [(a)]TJ/F8 9.9626 Tf 8.551 0 Td [(without)-333(the)-334(main)-333(diagonal.)]TJ 0 g 0 G -/F27 9.9626 Tf -104.248 -21.243 Td [(T)32(yp)-32(e:)]TJ +/F27 9.9626 Tf -104.248 -16.714 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G /F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ 0 g 0 G -/F27 9.9626 Tf -33.797 -21.683 Td [(On)-383(En)32(try)]TJ +/F27 9.9626 Tf -33.797 -18.32 Td [(On)-383(En)32(try)]TJ 0 g 0 G 0 g 0 G - 0 -21.683 Td [(a)]TJ + 0 -18.32 Td [(a)]TJ 0 g 0 G /F8 9.9626 Tf 10.551 0 Td [(the)-333(sparse)-334(matrix.)]TJ 14.356 -11.955 Td [(A)-333(v)55(ariable)-333(of)-333(t)28(yp)-28(e)]TJ/F30 9.9626 Tf 81.942 0 Td [(psb_Tspmat_type)]TJ/F8 9.9626 Tf 78.456 0 Td [(.)]TJ -160.398 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -80.358 -35.631 Td [(On)-383(Return)]TJ +/F27 9.9626 Tf -80.358 -29.859 Td [(On)-383(Return)]TJ 0 g 0 G 0 g 0 G - 0 -21.683 Td [(b)]TJ + 0 -18.319 Td [(b)]TJ 0 g 0 G -/F8 9.9626 Tf 11.346 0 Td [(A)-333(cop)27(y)-333(of)]TJ/F30 9.9626 Tf 45.386 0 Td [(a)]TJ/F8 9.9626 Tf 8.551 0 Td [(without)-333(the)-334(main)-333(diagonal.)]TJ -40.376 -11.955 Td [(A)-333(v)55(ariable)-333(of)-333(t)27(y)1(p)-28(e)]TJ/F30 9.9626 Tf 81.942 0 Td [(psb_Tspmat_type)]TJ/F8 9.9626 Tf 78.456 0 Td [(.)]TJ +/F8 9.9626 Tf 11.346 0 Td [(A)-333(cop)27(y)-333(of)]TJ/F30 9.9626 Tf 45.386 0 Td [(a)]TJ/F8 9.9626 Tf 8.551 0 Td [(without)-333(the)-334(main)-333(diagonal.)]TJ -40.376 -11.956 Td [(A)-333(v)55(ariable)-333(of)-333(t)27(y)1(p)-28(e)]TJ/F30 9.9626 Tf 81.942 0 Td [(psb_Tspmat_type)]TJ/F8 9.9626 Tf 78.456 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -185.305 -21.683 Td [(info)]TJ +/F27 9.9626 Tf -185.305 -18.319 Td [(info)]TJ 0 g 0 G -/F8 9.9626 Tf 23.758 0 Td [(Return)-333(co)-28(de.)]TJ/F27 9.9626 Tf -23.758 -28.227 Td [(tril)-383(|)-384(Return)-383(the)-383(lo)31(w)32(er)-383(triangle)]TJ +/F8 9.9626 Tf 23.758 0 Td [(Return)-333(co)-28(de.)]TJ/F27 9.9626 Tf -23.758 -25.205 Td [(tril)-383(|)-384(Return)-383(the)-383(lo)31(w)32(er)-383(triangle)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf 20.921 -19.207 Td [(call)-525(a%tril\050b,info[,&)]TJ 15.691 -11.955 Td [(&)-525(diag,imin,imax,jmin,jmax,rscale,cscale]\051)]TJ/F8 9.9626 Tf -21.668 -23.675 Td [(Returns)-376(the)-376(lo)28(w)28(er)-376(triangular)-375(part)-376(of)-376(submatrix)]TJ/F30 9.9626 Tf 210.932 0 Td [(A\050imin:imax,jmin:jmax\051)]TJ/F8 9.9626 Tf 115.068 0 Td [(,)]TJ -340.944 -11.956 Td [(optionally)-222(rescaling)-222(ro)27(w/col)-222(indices)-222(to)-222(the)-222(range)]TJ/F30 9.9626 Tf 205.535 0 Td [(1:imax-imin+1,1:jmax-jmin+1)]TJ/F8 9.9626 Tf 141.219 0 Td [(.)]TJ +/F30 9.9626 Tf 20.921 -18.389 Td [(call)-525(a%tril\050b,info[,&)]TJ 15.691 -11.955 Td [(&)-525(diag,imin,imax,jmin,jmax,rscale,cscale]\051)]TJ/F8 9.9626 Tf -21.668 -17.904 Td [(Returns)-376(the)-376(lo)28(w)28(er)-376(triangular)-375(part)-376(of)-376(submatrix)]TJ/F30 9.9626 Tf 210.932 0 Td [(A\050imin:imax,jmin:jmax\051)]TJ/F8 9.9626 Tf 115.068 0 Td [(,)]TJ -340.944 -11.955 Td [(optionally)-222(rescaling)-222(ro)27(w/col)-222(indices)-222(to)-222(the)-222(range)]TJ/F30 9.9626 Tf 205.535 0 Td [(1:imax-imin+1,1:jmax-jmin+1)]TJ/F8 9.9626 Tf 141.219 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -346.754 -21.243 Td [(T)32(yp)-32(e:)]TJ +/F27 9.9626 Tf -346.754 -16.714 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G /F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ 0 g 0 G -/F27 9.9626 Tf -33.797 -21.683 Td [(On)-383(En)32(try)]TJ +/F27 9.9626 Tf -33.797 -18.32 Td [(On)-383(En)32(try)]TJ 0 g 0 G 0 g 0 G - 0 -21.683 Td [(a)]TJ + 0 -18.319 Td [(a)]TJ 0 g 0 G -/F8 9.9626 Tf 10.551 0 Td [(the)-333(sparse)-334(matrix.)]TJ 14.356 -11.955 Td [(A)-333(v)55(ariable)-333(of)-333(t)27(y)1(p)-28(e)]TJ/F30 9.9626 Tf 81.943 0 Td [(psb_Tspmat_type)]TJ/F8 9.9626 Tf 78.455 0 Td [(.)]TJ -160.398 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ +/F8 9.9626 Tf 10.551 0 Td [(the)-333(sparse)-334(matrix.)]TJ 14.356 -11.956 Td [(A)-333(v)55(ariable)-333(of)-333(t)27(y)1(p)-28(e)]TJ/F30 9.9626 Tf 81.943 0 Td [(psb_Tspmat_type)]TJ/F8 9.9626 Tf 78.455 0 Td [(.)]TJ -160.398 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -80.358 -33.638 Td [(diag)]TJ +/F27 9.9626 Tf -80.358 -30.275 Td [(diag)]TJ 0 g 0 G /F8 9.9626 Tf 25.827 0 Td [(Include)-392(diagonals)-391(up)-392(to)-392(this)-391(one;)]TJ/F30 9.9626 Tf 149.734 0 Td [(diag=1)]TJ/F8 9.9626 Tf 35.285 0 Td [(means)-392(the)-392(\014r)1(s)-1(t)-391(sup)-28(erdiagonal,)]TJ/F30 9.9626 Tf -185.939 -11.955 Td [(diag=-1)]TJ/F8 9.9626 Tf 39.933 0 Td [(means)-333(the)-334(\014rst)-333(sub)-28(diagonal.)-444(Default)-333(0.)]TJ 0 g 0 G -/F27 9.9626 Tf -64.84 -21.683 Td [(imin,imax,jmin,jmax)]TJ +/F27 9.9626 Tf -64.84 -18.319 Td [(imin,imax,jmin,jmax)]TJ 0 g 0 G -/F8 9.9626 Tf 108.412 0 Td [(Minim)28(um)-334(an)1(d)-334(maxim)28(um)-333(ro)27(w)-333(and)-333(column)-333(indices)-1(.)]TJ -83.505 -11.955 Td [(T)28(yp)-28(e:)-444(optional.)]TJ +/F8 9.9626 Tf 108.412 0 Td [(Minim)28(um)-334(an)1(d)-334(maxim)28(um)-333(ro)27(w)-333(and)-333(column)-333(indices)-1(.)]TJ -83.505 -11.956 Td [(T)28(yp)-28(e:)-444(optional.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -21.683 Td [(rscale,cscale)]TJ +/F27 9.9626 Tf -24.907 -18.319 Td [(rscale,cscale)]TJ 0 g 0 G /F8 9.9626 Tf 65.202 0 Td [(Whether)-333(to)-334(rescale)-333(ro)28(w/column)-334(indices.)-444(T)28(yp)-28(e:)-445(op)1(tional.)]TJ 0 g 0 G -/F27 9.9626 Tf -65.202 -23.676 Td [(On)-383(Return)]TJ +/F27 9.9626 Tf -65.202 -17.904 Td [(On)-383(Return)]TJ 0 g 0 G 0 g 0 G - 0 -21.682 Td [(b)]TJ + 0 -18.32 Td [(b)]TJ 0 g 0 G -/F8 9.9626 Tf 11.346 0 Td [(A)-333(cop)27(y)-333(of)-333(a)-334(subtr)1(iangle)-334(of)]TJ/F30 9.9626 Tf 116.591 0 Td [(a)]TJ/F8 9.9626 Tf 5.23 0 Td [(.)]TJ -108.26 -11.956 Td [(A)-333(v)55(ariable)-333(of)-333(t)27(y)1(p)-28(e)]TJ/F30 9.9626 Tf 81.943 0 Td [(psb_Tspmat_type)]TJ/F8 9.9626 Tf 78.455 0 Td [(.)]TJ +/F8 9.9626 Tf 11.346 0 Td [(A)-333(cop)27(y)-333(of)-333(a)-334(subtr)1(iangle)-334(of)]TJ/F30 9.9626 Tf 116.591 0 Td [(a)]TJ/F8 9.9626 Tf 5.23 0 Td [(.)]TJ -108.26 -11.955 Td [(A)-333(v)55(ariable)-333(of)-333(t)27(y)1(p)-28(e)]TJ/F30 9.9626 Tf 81.943 0 Td [(psb_Tspmat_type)]TJ/F8 9.9626 Tf 78.455 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -185.305 -21.683 Td [(info)]TJ +/F27 9.9626 Tf -185.305 -18.319 Td [(info)]TJ 0 g 0 G /F8 9.9626 Tf 23.758 0 Td [(Return)-333(co)-28(de.)]TJ 0 g 0 G - 143.116 -29.887 Td [(20)]TJ + 143.116 -29.888 Td [(20)]TJ 0 g 0 G ET endstream endobj -880 0 obj << +885 0 obj << /Type /Page -/Contents 881 0 R -/Resources 879 0 R +/Contents 886 0 R +/Resources 884 0 R /MediaBox [0 0 595.276 841.89] -/Parent 878 0 R ->> endobj -882 0 obj << -/D [880 0 R /XYZ 150.705 740.998 null] +/Parent 883 0 R >> endobj -138 0 obj << -/D [880 0 R /XYZ 150.705 697.379 null] +887 0 obj << +/D [885 0 R /XYZ 150.705 740.998 null] >> endobj 142 0 obj << -/D [880 0 R /XYZ 150.705 446.799 null] +/D [885 0 R /XYZ 150.705 623.958 null] >> endobj -879 0 obj << -/Font << /F27 533 0 R /F30 734 0 R /F8 534 0 R >> +146 0 obj << +/D [885 0 R /XYZ 150.705 406.744 null] +>> endobj +884 0 obj << +/Font << /F27 537 0 R /F8 538 0 R /F30 739 0 R >> /ProcSet [ /PDF /Text ] >> endobj -885 0 obj << +890 0 obj << /Length 4718 >> stream @@ -6679,30 +6753,30 @@ BT ET endstream endobj -884 0 obj << +889 0 obj << /Type /Page -/Contents 885 0 R -/Resources 883 0 R +/Contents 890 0 R +/Resources 888 0 R /MediaBox [0 0 595.276 841.89] -/Parent 878 0 R ->> endobj -886 0 obj << -/D [884 0 R /XYZ 99.895 740.998 null] +/Parent 883 0 R >> endobj -146 0 obj << -/D [884 0 R /XYZ 99.895 697.758 null] +891 0 obj << +/D [889 0 R /XYZ 99.895 740.998 null] >> endobj 150 0 obj << -/D [884 0 R /XYZ 99.895 381.642 null] +/D [889 0 R /XYZ 99.895 697.758 null] >> endobj 154 0 obj << -/D [884 0 R /XYZ 99.895 260.921 null] +/D [889 0 R /XYZ 99.895 381.642 null] >> endobj -883 0 obj << -/Font << /F27 533 0 R /F30 734 0 R /F8 534 0 R >> +158 0 obj << +/D [889 0 R /XYZ 99.895 260.921 null] +>> endobj +888 0 obj << +/Font << /F27 537 0 R /F30 739 0 R /F8 538 0 R >> /ProcSet [ /PDF /Text ] >> endobj -891 0 obj << +896 0 obj << /Length 7793 >> stream @@ -6947,51 +7021,51 @@ BT ET endstream endobj -890 0 obj << +895 0 obj << /Type /Page -/Contents 891 0 R -/Resources 889 0 R +/Contents 896 0 R +/Resources 894 0 R /MediaBox [0 0 595.276 841.89] -/Parent 878 0 R -/Annots [ 887 0 R 888 0 R ] +/Parent 883 0 R +/Annots [ 892 0 R 893 0 R ] >> endobj -887 0 obj << +892 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [250.191 478.535 257.165 489.383] /Subtype /Link /A << /S /GoTo /D (section.6) >> >> endobj -888 0 obj << +893 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [343.178 442.649 350.152 453.497] /Subtype /Link /A << /S /GoTo /D (figure.5) >> >> endobj -892 0 obj << -/D [890 0 R /XYZ 150.705 740.998 null] ->> endobj -158 0 obj << -/D [890 0 R /XYZ 150.705 716.092 null] +897 0 obj << +/D [895 0 R /XYZ 150.705 740.998 null] >> endobj 162 0 obj << -/D [890 0 R /XYZ 150.705 547.238 null] +/D [895 0 R /XYZ 150.705 716.092 null] >> endobj -893 0 obj << -/D [890 0 R /XYZ 171.961 517.334 null] +166 0 obj << +/D [895 0 R /XYZ 150.705 547.238 null] >> endobj -894 0 obj << -/D [890 0 R /XYZ 392.9 505.378 null] +898 0 obj << +/D [895 0 R /XYZ 171.961 517.334 null] >> endobj -895 0 obj << -/D [890 0 R /XYZ 209.041 146.214 null] +899 0 obj << +/D [895 0 R /XYZ 392.9 505.378 null] >> endobj -889 0 obj << -/Font << /F27 533 0 R /F8 534 0 R /F16 531 0 R /F30 734 0 R >> +900 0 obj << +/D [895 0 R /XYZ 209.041 146.214 null] +>> endobj +894 0 obj << +/Font << /F27 537 0 R /F8 538 0 R /F16 535 0 R /F30 739 0 R >> /ProcSet [ /PDF /Text ] >> endobj -898 0 obj << +903 0 obj << /Length 3036 >> stream @@ -7082,33 +7156,33 @@ BT ET endstream endobj -897 0 obj << +902 0 obj << /Type /Page -/Contents 898 0 R -/Resources 896 0 R +/Contents 903 0 R +/Resources 901 0 R /MediaBox [0 0 595.276 841.89] -/Parent 878 0 R ->> endobj -899 0 obj << -/D [897 0 R /XYZ 99.895 740.998 null] +/Parent 883 0 R >> endobj -166 0 obj << -/D [897 0 R /XYZ 99.895 716.092 null] +904 0 obj << +/D [902 0 R /XYZ 99.895 740.998 null] >> endobj 170 0 obj << -/D [897 0 R /XYZ 99.895 676.877 null] +/D [902 0 R /XYZ 99.895 716.092 null] >> endobj 174 0 obj << -/D [897 0 R /XYZ 99.895 482.042 null] +/D [902 0 R /XYZ 99.895 676.877 null] >> endobj 178 0 obj << -/D [897 0 R /XYZ 99.895 287.206 null] +/D [902 0 R /XYZ 99.895 482.042 null] >> endobj -896 0 obj << -/Font << /F27 533 0 R /F30 734 0 R /F8 534 0 R >> +182 0 obj << +/D [902 0 R /XYZ 99.895 287.206 null] +>> endobj +901 0 obj << +/Font << /F27 537 0 R /F30 739 0 R /F8 538 0 R >> /ProcSet [ /PDF /Text ] >> endobj -903 0 obj << +908 0 obj << /Length 2941 >> stream @@ -7175,41 +7249,41 @@ BT ET endstream endobj -902 0 obj << +907 0 obj << /Type /Page -/Contents 903 0 R -/Resources 901 0 R +/Contents 908 0 R +/Resources 906 0 R /MediaBox [0 0 595.276 841.89] -/Parent 878 0 R -/Annots [ 900 0 R ] +/Parent 883 0 R +/Annots [ 905 0 R ] >> endobj -900 0 obj << +905 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.685 454.939 184.659 466.064] /Subtype /Link /A << /S /GoTo /D (figure.6) >> >> endobj -904 0 obj << -/D [902 0 R /XYZ 150.705 740.998 null] ->> endobj -182 0 obj << -/D [902 0 R /XYZ 150.705 697.758 null] +909 0 obj << +/D [907 0 R /XYZ 150.705 740.998 null] >> endobj 186 0 obj << -/D [902 0 R /XYZ 150.705 526.352 null] +/D [907 0 R /XYZ 150.705 697.758 null] >> endobj -905 0 obj << -/D [902 0 R /XYZ 308.372 470.104 null] +190 0 obj << +/D [907 0 R /XYZ 150.705 526.352 null] >> endobj -907 0 obj << -/D [902 0 R /XYZ 206.288 348.671 null] +910 0 obj << +/D [907 0 R /XYZ 308.372 470.104 null] >> endobj -901 0 obj << -/Font << /F27 533 0 R /F30 734 0 R /F8 534 0 R /F16 531 0 R /F46 906 0 R >> +912 0 obj << +/D [907 0 R /XYZ 206.288 348.671 null] +>> endobj +906 0 obj << +/Font << /F27 537 0 R /F30 739 0 R /F8 538 0 R /F16 535 0 R /F46 911 0 R >> /ProcSet [ /PDF /Text ] >> endobj -910 0 obj << +915 0 obj << /Length 157 >> stream @@ -7223,24 +7297,24 @@ BT ET endstream endobj -909 0 obj << +914 0 obj << /Type /Page -/Contents 910 0 R -/Resources 908 0 R +/Contents 915 0 R +/Resources 913 0 R /MediaBox [0 0 595.276 841.89] -/Parent 912 0 R +/Parent 917 0 R >> endobj -911 0 obj << -/D [909 0 R /XYZ 99.895 740.998 null] +916 0 obj << +/D [914 0 R /XYZ 99.895 740.998 null] >> endobj -190 0 obj << -/D [909 0 R /XYZ 99.895 716.092 null] +194 0 obj << +/D [914 0 R /XYZ 99.895 716.092 null] >> endobj -908 0 obj << -/Font << /F16 531 0 R /F8 534 0 R >> +913 0 obj << +/Font << /F16 535 0 R /F8 538 0 R >> /ProcSet [ /PDF /Text ] >> endobj -922 0 obj << +927 0 obj << /Length 7321 >> stream @@ -7419,70 +7493,70 @@ BT ET endstream endobj -921 0 obj << +926 0 obj << /Type /Page -/Contents 922 0 R -/Resources 920 0 R +/Contents 927 0 R +/Resources 925 0 R /MediaBox [0 0 595.276 841.89] -/Parent 912 0 R -/Annots [ 913 0 R 914 0 R 915 0 R 916 0 R 917 0 R 918 0 R ] +/Parent 917 0 R +/Annots [ 918 0 R 919 0 R 920 0 R 921 0 R 922 0 R 923 0 R ] >> endobj -913 0 obj << +918 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [432.897 401.949 439.871 412.798] /Subtype /Link /A << /S /GoTo /D (table.1) >> >> endobj -914 0 obj << +919 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [419.358 333.522 495.412 344.647] /Subtype /Link /A << /S /GoTo /D (vdata) >> >> endobj -915 0 obj << +920 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [379.142 321.844 386.116 332.692] /Subtype /Link /A << /S /GoTo /D (table.1) >> >> endobj -916 0 obj << +921 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [432.897 241.738 439.871 252.586] /Subtype /Link /A << /S /GoTo /D (table.1) >> >> endobj -917 0 obj << +922 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [419.358 173.311 495.412 184.436] /Subtype /Link /A << /S /GoTo /D (vdata) >> >> endobj -918 0 obj << +923 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [396.435 161.632 403.409 172.481] /Subtype /Link /A << /S /GoTo /D (table.1) >> >> endobj -923 0 obj << -/D [921 0 R /XYZ 150.705 740.998 null] +928 0 obj << +/D [926 0 R /XYZ 150.705 740.998 null] >> endobj -194 0 obj << -/D [921 0 R /XYZ 150.705 697.283 null] +198 0 obj << +/D [926 0 R /XYZ 150.705 697.283 null] >> endobj -924 0 obj << -/D [921 0 R /XYZ 318.451 539.42 null] +929 0 obj << +/D [926 0 R /XYZ 318.451 539.42 null] >> endobj -920 0 obj << -/Font << /F16 531 0 R /F8 534 0 R /F11 719 0 R /F14 737 0 R /F30 734 0 R /F27 533 0 R >> +925 0 obj << +/Font << /F16 535 0 R /F8 538 0 R /F11 724 0 R /F14 742 0 R /F30 739 0 R /F27 537 0 R >> /ProcSet [ /PDF /Text ] >> endobj -929 0 obj << +934 0 obj << /Length 2659 >> stream @@ -7554,43 +7628,43 @@ BT ET endstream endobj -928 0 obj << +933 0 obj << /Type /Page -/Contents 929 0 R -/Resources 927 0 R +/Contents 934 0 R +/Resources 932 0 R /MediaBox [0 0 595.276 841.89] -/Parent 912 0 R -/Annots [ 919 0 R 925 0 R 926 0 R ] +/Parent 917 0 R +/Annots [ 924 0 R 930 0 R 931 0 R ] >> endobj -919 0 obj << +924 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [259.464 679.008 326.522 690.133] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -925 0 obj << +930 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [368.549 589.345 444.603 600.47] /Subtype /Link /A << /S /GoTo /D (vdata) >> >> endobj -926 0 obj << +931 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [345.558 577.666 352.532 588.514] /Subtype /Link /A << /S /GoTo /D (table.1) >> >> endobj -930 0 obj << -/D [928 0 R /XYZ 99.895 740.998 null] +935 0 obj << +/D [933 0 R /XYZ 99.895 740.998 null] >> endobj -927 0 obj << -/Font << /F8 534 0 R /F27 533 0 R /F30 734 0 R /F11 719 0 R >> +932 0 obj << +/Font << /F8 538 0 R /F27 537 0 R /F30 739 0 R /F11 724 0 R >> /ProcSet [ /PDF /Text ] >> endobj -939 0 obj << +944 0 obj << /Length 7891 >> stream @@ -7782,70 +7856,70 @@ BT ET endstream endobj -938 0 obj << +943 0 obj << /Type /Page -/Contents 939 0 R -/Resources 937 0 R +/Contents 944 0 R +/Resources 942 0 R /MediaBox [0 0 595.276 841.89] -/Parent 912 0 R -/Annots [ 931 0 R 932 0 R 933 0 R 934 0 R 935 0 R 936 0 R ] +/Parent 917 0 R +/Annots [ 936 0 R 937 0 R 938 0 R 939 0 R 940 0 R 941 0 R ] >> endobj -931 0 obj << +936 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [419.358 361.842 495.412 372.967] /Subtype /Link /A << /S /GoTo /D (vdata) >> >> endobj -932 0 obj << +937 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [379.142 350.163 386.116 361.011] /Subtype /Link /A << /S /GoTo /D (table.2) >> >> endobj -933 0 obj << +938 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [419.358 270.772 495.412 281.897] /Subtype /Link /A << /S /GoTo /D (vdata) >> >> endobj -934 0 obj << +939 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [379.353 259.094 386.327 269.942] /Subtype /Link /A << /S /GoTo /D (table.2) >> >> endobj -935 0 obj << +940 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [310.273 179.703 377.331 190.828] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -936 0 obj << +941 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [432.897 117.392 439.871 128.24] /Subtype /Link /A << /S /GoTo /D (table.2) >> >> endobj -940 0 obj << -/D [938 0 R /XYZ 150.705 740.998 null] +945 0 obj << +/D [943 0 R /XYZ 150.705 740.998 null] >> endobj -198 0 obj << -/D [938 0 R /XYZ 150.705 697.37 null] +202 0 obj << +/D [943 0 R /XYZ 150.705 697.37 null] >> endobj -941 0 obj << -/D [938 0 R /XYZ 318.451 495.047 null] +946 0 obj << +/D [943 0 R /XYZ 318.451 495.047 null] >> endobj -937 0 obj << -/Font << /F16 531 0 R /F8 534 0 R /F11 719 0 R /F14 737 0 R /F10 736 0 R /F30 734 0 R /F27 533 0 R >> +942 0 obj << +/Font << /F16 535 0 R /F8 538 0 R /F11 724 0 R /F14 742 0 R /F10 741 0 R /F30 739 0 R /F27 537 0 R >> /ProcSet [ /PDF /Text ] >> endobj -944 0 obj << +949 0 obj << /Length 624 >> stream @@ -7862,21 +7936,21 @@ BT ET endstream endobj -943 0 obj << +948 0 obj << /Type /Page -/Contents 944 0 R -/Resources 942 0 R +/Contents 949 0 R +/Resources 947 0 R /MediaBox [0 0 595.276 841.89] -/Parent 912 0 R +/Parent 917 0 R >> endobj -945 0 obj << -/D [943 0 R /XYZ 99.895 740.998 null] +950 0 obj << +/D [948 0 R /XYZ 99.895 740.998 null] >> endobj -942 0 obj << -/Font << /F27 533 0 R /F8 534 0 R >> +947 0 obj << +/Font << /F27 537 0 R /F8 538 0 R >> /ProcSet [ /PDF /Text ] >> endobj -954 0 obj << +959 0 obj << /Length 8416 >> stream @@ -8068,70 +8142,70 @@ BT ET endstream endobj -953 0 obj << +958 0 obj << /Type /Page -/Contents 954 0 R -/Resources 952 0 R +/Contents 959 0 R +/Resources 957 0 R /MediaBox [0 0 595.276 841.89] -/Parent 912 0 R -/Annots [ 946 0 R 947 0 R 948 0 R 949 0 R 950 0 R 951 0 R ] +/Parent 917 0 R +/Annots [ 951 0 R 952 0 R 953 0 R 954 0 R 955 0 R 956 0 R ] >> endobj -946 0 obj << +951 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [419.358 382.111 495.412 393.236] /Subtype /Link /A << /S /GoTo /D (vdata) >> >> endobj -947 0 obj << +952 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [379.142 370.432 386.116 381.28] /Subtype /Link /A << /S /GoTo /D (table.3) >> >> endobj -948 0 obj << +953 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [419.358 291.951 495.412 303.076] /Subtype /Link /A << /S /GoTo /D (vdata) >> >> endobj -949 0 obj << +954 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [379.353 280.273 386.327 291.121] /Subtype /Link /A << /S /GoTo /D (table.3) >> >> endobj -950 0 obj << +955 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [310.273 201.792 377.331 212.917] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -951 0 obj << +956 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [202.013 119.329 208.986 128.24] /Subtype /Link /A << /S /GoTo /D (table.2) >> >> endobj -955 0 obj << -/D [953 0 R /XYZ 150.705 740.998 null] +960 0 obj << +/D [958 0 R /XYZ 150.705 740.998 null] >> endobj -202 0 obj << -/D [953 0 R /XYZ 150.705 697.37 null] +206 0 obj << +/D [958 0 R /XYZ 150.705 697.37 null] >> endobj -956 0 obj << -/D [953 0 R /XYZ 318.451 510.309 null] +961 0 obj << +/D [958 0 R /XYZ 318.451 510.309 null] >> endobj -952 0 obj << -/Font << /F16 531 0 R /F8 534 0 R /F11 719 0 R /F14 737 0 R /F10 736 0 R /F30 734 0 R /F27 533 0 R >> +957 0 obj << +/Font << /F16 535 0 R /F8 538 0 R /F11 724 0 R /F14 742 0 R /F10 741 0 R /F30 739 0 R /F27 537 0 R >> /ProcSet [ /PDF /Text ] >> endobj -959 0 obj << +964 0 obj << /Length 624 >> stream @@ -8148,21 +8222,21 @@ BT ET endstream endobj -958 0 obj << +963 0 obj << /Type /Page -/Contents 959 0 R -/Resources 957 0 R +/Contents 964 0 R +/Resources 962 0 R /MediaBox [0 0 595.276 841.89] -/Parent 961 0 R +/Parent 966 0 R >> endobj -960 0 obj << -/D [958 0 R /XYZ 99.895 740.998 null] +965 0 obj << +/D [963 0 R /XYZ 99.895 740.998 null] >> endobj -957 0 obj << -/Font << /F27 533 0 R /F8 534 0 R >> +962 0 obj << +/Font << /F27 537 0 R /F8 538 0 R >> /ProcSet [ /PDF /Text ] >> endobj -967 0 obj << +972 0 obj << /Length 7095 >> stream @@ -8321,49 +8395,49 @@ BT ET endstream endobj -966 0 obj << +971 0 obj << /Type /Page -/Contents 967 0 R -/Resources 965 0 R +/Contents 972 0 R +/Resources 970 0 R /MediaBox [0 0 595.276 841.89] -/Parent 961 0 R -/Annots [ 962 0 R 963 0 R 964 0 R ] +/Parent 966 0 R +/Annots [ 967 0 R 968 0 R 969 0 R ] >> endobj -962 0 obj << +967 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [419.358 338.197 495.412 349.322] /Subtype /Link /A << /S /GoTo /D (vdata) >> >> endobj -963 0 obj << +968 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [376.221 326.519 383.195 337.367] /Subtype /Link /A << /S /GoTo /D (table.4) >> >> endobj -964 0 obj << +969 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [310.273 258.808 377.331 269.933] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -968 0 obj << -/D [966 0 R /XYZ 150.705 740.998 null] +973 0 obj << +/D [971 0 R /XYZ 150.705 740.998 null] >> endobj -206 0 obj << -/D [966 0 R /XYZ 150.705 697.37 null] +210 0 obj << +/D [971 0 R /XYZ 150.705 697.37 null] >> endobj -969 0 obj << -/D [966 0 R /XYZ 318.451 472.916 null] +974 0 obj << +/D [971 0 R /XYZ 318.451 472.916 null] >> endobj -965 0 obj << -/Font << /F16 531 0 R /F8 534 0 R /F11 719 0 R /F14 737 0 R /F10 736 0 R /F30 734 0 R /F27 533 0 R >> +970 0 obj << +/Font << /F16 535 0 R /F8 538 0 R /F11 724 0 R /F14 742 0 R /F10 741 0 R /F30 739 0 R /F27 537 0 R >> /ProcSet [ /PDF /Text ] >> endobj -975 0 obj << +980 0 obj << /Length 6326 >> stream @@ -8522,49 +8596,49 @@ BT ET endstream endobj -974 0 obj << +979 0 obj << /Type /Page -/Contents 975 0 R -/Resources 973 0 R +/Contents 980 0 R +/Resources 978 0 R /MediaBox [0 0 595.276 841.89] -/Parent 961 0 R -/Annots [ 970 0 R 971 0 R 972 0 R ] +/Parent 966 0 R +/Annots [ 975 0 R 976 0 R 977 0 R ] >> endobj -970 0 obj << +975 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [368.549 401.031 444.603 412.156] /Subtype /Link /A << /S /GoTo /D (vdata) >> >> endobj -971 0 obj << +976 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [325.411 389.353 332.385 400.201] /Subtype /Link /A << /S /GoTo /D (table.5) >> >> endobj -972 0 obj << +977 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [259.464 321.33 326.522 332.455] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -976 0 obj << -/D [974 0 R /XYZ 99.895 740.998 null] +981 0 obj << +/D [979 0 R /XYZ 99.895 740.998 null] >> endobj -210 0 obj << -/D [974 0 R /XYZ 99.895 697.37 null] +214 0 obj << +/D [979 0 R /XYZ 99.895 697.37 null] >> endobj -977 0 obj << -/D [974 0 R /XYZ 267.641 537.464 null] +982 0 obj << +/D [979 0 R /XYZ 267.641 537.464 null] >> endobj -973 0 obj << -/Font << /F16 531 0 R /F8 534 0 R /F11 719 0 R /F14 737 0 R /F10 736 0 R /F30 734 0 R /F27 533 0 R >> +978 0 obj << +/Font << /F16 535 0 R /F8 538 0 R /F11 724 0 R /F14 742 0 R /F10 741 0 R /F30 739 0 R /F27 537 0 R >> /ProcSet [ /PDF /Text ] >> endobj -983 0 obj << +988 0 obj << /Length 6729 >> stream @@ -8723,49 +8797,49 @@ BT ET endstream endobj -982 0 obj << +987 0 obj << /Type /Page -/Contents 983 0 R -/Resources 981 0 R +/Contents 988 0 R +/Resources 986 0 R /MediaBox [0 0 595.276 841.89] -/Parent 961 0 R -/Annots [ 978 0 R 979 0 R 980 0 R ] +/Parent 966 0 R +/Annots [ 983 0 R 984 0 R 985 0 R ] >> endobj -978 0 obj << +983 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [419.358 339.844 495.412 350.969] /Subtype /Link /A << /S /GoTo /D (vdata) >> >> endobj -979 0 obj << +984 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [376.221 328.166 383.195 339.014] /Subtype /Link /A << /S /GoTo /D (table.6) >> >> endobj -980 0 obj << +985 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [310.273 260.202 377.331 271.327] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -984 0 obj << -/D [982 0 R /XYZ 150.705 740.998 null] +989 0 obj << +/D [987 0 R /XYZ 150.705 740.998 null] >> endobj -214 0 obj << -/D [982 0 R /XYZ 150.705 697.37 null] +218 0 obj << +/D [987 0 R /XYZ 150.705 697.37 null] >> endobj -985 0 obj << -/D [982 0 R /XYZ 318.451 475.957 null] +990 0 obj << +/D [987 0 R /XYZ 318.451 475.957 null] >> endobj -981 0 obj << -/Font << /F16 531 0 R /F8 534 0 R /F11 719 0 R /F14 737 0 R /F10 736 0 R /F7 735 0 R /F30 734 0 R /F27 533 0 R >> +986 0 obj << +/Font << /F16 535 0 R /F8 538 0 R /F11 724 0 R /F14 742 0 R /F10 741 0 R /F7 740 0 R /F30 739 0 R /F27 537 0 R >> /ProcSet [ /PDF /Text ] >> endobj -991 0 obj << +996 0 obj << /Length 7318 >> stream @@ -8920,49 +8994,49 @@ BT ET endstream endobj -990 0 obj << +995 0 obj << /Type /Page -/Contents 991 0 R -/Resources 989 0 R +/Contents 996 0 R +/Resources 994 0 R /MediaBox [0 0 595.276 841.89] -/Parent 961 0 R -/Annots [ 986 0 R 987 0 R 988 0 R ] +/Parent 966 0 R +/Annots [ 991 0 R 992 0 R 993 0 R ] >> endobj -986 0 obj << +991 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [368.549 289.84 444.603 300.965] /Subtype /Link /A << /S /GoTo /D (vdata) >> >> endobj -987 0 obj << +992 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [325.411 278.162 332.385 289.01] /Subtype /Link /A << /S /GoTo /D (table.7) >> >> endobj -988 0 obj << +993 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [259.464 208.355 326.522 219.48] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -992 0 obj << -/D [990 0 R /XYZ 99.895 740.998 null] +997 0 obj << +/D [995 0 R /XYZ 99.895 740.998 null] >> endobj -218 0 obj << -/D [990 0 R /XYZ 99.895 696.986 null] +222 0 obj << +/D [995 0 R /XYZ 99.895 696.986 null] >> endobj -993 0 obj << -/D [990 0 R /XYZ 267.641 432.072 null] +998 0 obj << +/D [995 0 R /XYZ 267.641 432.072 null] >> endobj -989 0 obj << -/Font << /F16 531 0 R /F8 534 0 R /F11 719 0 R /F14 737 0 R /F10 736 0 R /F7 735 0 R /F30 734 0 R /F27 533 0 R >> +994 0 obj << +/Font << /F16 535 0 R /F8 538 0 R /F11 724 0 R /F14 742 0 R /F10 741 0 R /F7 740 0 R /F30 739 0 R /F27 537 0 R >> /ProcSet [ /PDF /Text ] >> endobj -996 0 obj << +1001 0 obj << /Length 625 >> stream @@ -8979,21 +9053,21 @@ BT ET endstream endobj -995 0 obj << +1000 0 obj << /Type /Page -/Contents 996 0 R -/Resources 994 0 R +/Contents 1001 0 R +/Resources 999 0 R /MediaBox [0 0 595.276 841.89] -/Parent 961 0 R +/Parent 966 0 R >> endobj -997 0 obj << -/D [995 0 R /XYZ 150.705 740.998 null] +1002 0 obj << +/D [1000 0 R /XYZ 150.705 740.998 null] >> endobj -994 0 obj << -/Font << /F27 533 0 R /F8 534 0 R >> +999 0 obj << +/Font << /F27 537 0 R /F8 538 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1003 0 obj << +1008 0 obj << /Length 6774 >> stream @@ -9166,49 +9240,49 @@ BT ET endstream endobj -1002 0 obj << +1007 0 obj << /Type /Page -/Contents 1003 0 R -/Resources 1001 0 R +/Contents 1008 0 R +/Resources 1006 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1006 0 R -/Annots [ 998 0 R 999 0 R 1000 0 R ] +/Parent 1011 0 R +/Annots [ 1003 0 R 1004 0 R 1005 0 R ] >> endobj -998 0 obj << +1003 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [368.549 348.184 444.603 359.309] /Subtype /Link /A << /S /GoTo /D (vdata) >> >> endobj -999 0 obj << +1004 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [325.411 336.506 332.385 347.354] /Subtype /Link /A << /S /GoTo /D (table.8) >> >> endobj -1000 0 obj << +1005 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [259.464 269.097 326.522 280.222] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -1004 0 obj << -/D [1002 0 R /XYZ 99.895 740.998 null] +1009 0 obj << +/D [1007 0 R /XYZ 99.895 740.998 null] >> endobj -222 0 obj << -/D [1002 0 R /XYZ 99.895 697.37 null] +226 0 obj << +/D [1007 0 R /XYZ 99.895 697.37 null] >> endobj -1005 0 obj << -/D [1002 0 R /XYZ 267.641 515.563 null] +1010 0 obj << +/D [1007 0 R /XYZ 267.641 515.563 null] >> endobj -1001 0 obj << -/Font << /F16 531 0 R /F8 534 0 R /F11 719 0 R /F14 737 0 R /F10 736 0 R /F27 533 0 R /F30 734 0 R >> +1006 0 obj << +/Font << /F16 535 0 R /F8 538 0 R /F11 724 0 R /F14 742 0 R /F10 741 0 R /F27 537 0 R /F30 739 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1012 0 obj << +1017 0 obj << /Length 6162 >> stream @@ -9367,49 +9441,49 @@ BT ET endstream endobj -1011 0 obj << +1016 0 obj << /Type /Page -/Contents 1012 0 R -/Resources 1010 0 R +/Contents 1017 0 R +/Resources 1015 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1006 0 R -/Annots [ 1007 0 R 1008 0 R 1009 0 R ] +/Parent 1011 0 R +/Annots [ 1012 0 R 1013 0 R 1014 0 R ] >> endobj -1007 0 obj << +1012 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [419.358 404.491 495.412 415.616] /Subtype /Link /A << /S /GoTo /D (vdata) >> >> endobj -1008 0 obj << +1013 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [376.221 392.812 383.195 403.66] /Subtype /Link /A << /S /GoTo /D (table.9) >> >> endobj -1009 0 obj << +1014 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [310.273 324.789 377.331 335.914] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -1013 0 obj << -/D [1011 0 R /XYZ 150.705 740.998 null] +1018 0 obj << +/D [1016 0 R /XYZ 150.705 740.998 null] >> endobj -226 0 obj << -/D [1011 0 R /XYZ 150.705 697.37 null] +230 0 obj << +/D [1016 0 R /XYZ 150.705 697.37 null] >> endobj -1014 0 obj << -/D [1011 0 R /XYZ 318.451 540.923 null] +1019 0 obj << +/D [1016 0 R /XYZ 318.451 540.923 null] >> endobj -1010 0 obj << -/Font << /F16 531 0 R /F8 534 0 R /F11 719 0 R /F14 737 0 R /F7 735 0 R /F30 734 0 R /F27 533 0 R >> +1015 0 obj << +/Font << /F16 535 0 R /F8 538 0 R /F11 724 0 R /F14 742 0 R /F7 740 0 R /F30 739 0 R /F27 537 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1019 0 obj << +1024 0 obj << /Length 5516 >> stream @@ -9561,42 +9635,42 @@ BT ET endstream endobj -1018 0 obj << +1023 0 obj << /Type /Page -/Contents 1019 0 R -/Resources 1017 0 R +/Contents 1024 0 R +/Resources 1022 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1006 0 R -/Annots [ 1015 0 R 1016 0 R ] +/Parent 1011 0 R +/Annots [ 1020 0 R 1021 0 R ] >> endobj -1015 0 obj << +1020 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [259.464 342.722 336.983 353.847] /Subtype /Link /A << /S /GoTo /D (spdata) >> >> endobj -1016 0 obj << +1021 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [259.464 274.976 326.522 286.101] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -1020 0 obj << -/D [1018 0 R /XYZ 99.895 740.998 null] +1025 0 obj << +/D [1023 0 R /XYZ 99.895 740.998 null] >> endobj -230 0 obj << -/D [1018 0 R /XYZ 99.895 697.37 null] +234 0 obj << +/D [1023 0 R /XYZ 99.895 697.37 null] >> endobj -1021 0 obj << -/D [1018 0 R /XYZ 270.132 513.305 null] +1026 0 obj << +/D [1023 0 R /XYZ 270.132 513.305 null] >> endobj -1017 0 obj << -/Font << /F16 531 0 R /F8 534 0 R /F11 719 0 R /F14 737 0 R /F7 735 0 R /F27 533 0 R /F30 734 0 R >> +1022 0 obj << +/Font << /F16 535 0 R /F8 538 0 R /F11 724 0 R /F14 742 0 R /F7 740 0 R /F27 537 0 R /F30 739 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1026 0 obj << +1031 0 obj << /Length 5523 >> stream @@ -9748,42 +9822,42 @@ BT ET endstream endobj -1025 0 obj << +1030 0 obj << /Type /Page -/Contents 1026 0 R -/Resources 1024 0 R +/Contents 1031 0 R +/Resources 1029 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1006 0 R -/Annots [ 1022 0 R 1023 0 R ] +/Parent 1011 0 R +/Annots [ 1027 0 R 1028 0 R ] >> endobj -1022 0 obj << +1027 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [310.273 342.722 387.792 353.847] /Subtype /Link /A << /S /GoTo /D (spdata) >> >> endobj -1023 0 obj << +1028 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [310.273 274.976 377.331 286.101] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -1027 0 obj << -/D [1025 0 R /XYZ 150.705 740.998 null] +1032 0 obj << +/D [1030 0 R /XYZ 150.705 740.998 null] >> endobj -234 0 obj << -/D [1025 0 R /XYZ 150.705 697.37 null] +238 0 obj << +/D [1030 0 R /XYZ 150.705 697.37 null] >> endobj -1029 0 obj << -/D [1025 0 R /XYZ 320.941 513.305 null] +1034 0 obj << +/D [1030 0 R /XYZ 320.941 513.305 null] >> endobj -1024 0 obj << -/Font << /F16 531 0 R /F8 534 0 R /F11 719 0 R /F14 737 0 R /F13 1028 0 R /F27 533 0 R /F30 734 0 R >> +1029 0 obj << +/Font << /F16 535 0 R /F8 538 0 R /F11 724 0 R /F14 742 0 R /F13 1033 0 R /F27 537 0 R /F30 739 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1037 0 obj << +1042 0 obj << /Length 7328 >> stream @@ -9956,65 +10030,65 @@ BT ET endstream endobj -1036 0 obj << +1041 0 obj << /Type /Page -/Contents 1037 0 R -/Resources 1035 0 R +/Contents 1042 0 R +/Resources 1040 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1006 0 R -/Annots [ 1030 0 R 1031 0 R 1032 0 R 1033 0 R ] +/Parent 1011 0 R +/Annots [ 1035 0 R 1036 0 R 1037 0 R 1038 0 R ] >> endobj -1030 0 obj << +1035 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [382.088 276.095 394.043 286.943] /Subtype /Link /A << /S /GoTo /D (table.12) >> >> endobj -1031 0 obj << +1036 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [259.464 208.422 336.983 219.547] /Subtype /Link /A << /S /GoTo /D (spdata) >> >> endobj -1032 0 obj << +1037 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [368.549 141.026 444.603 152.151] /Subtype /Link /A << /S /GoTo /D (vdata) >> >> endobj -1033 0 obj << +1038 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [326.008 129.347 337.963 140.196] /Subtype /Link /A << /S /GoTo /D (table.12) >> >> endobj -1038 0 obj << -/D [1036 0 R /XYZ 99.895 740.998 null] +1043 0 obj << +/D [1041 0 R /XYZ 99.895 740.998 null] >> endobj -238 0 obj << -/D [1036 0 R /XYZ 99.895 697.37 null] +242 0 obj << +/D [1041 0 R /XYZ 99.895 697.37 null] >> endobj -1039 0 obj << -/D [1036 0 R /XYZ 239.804 675.784 null] +1044 0 obj << +/D [1041 0 R /XYZ 239.804 675.784 null] >> endobj -1040 0 obj << -/D [1036 0 R /XYZ 236.666 658.376 null] +1045 0 obj << +/D [1041 0 R /XYZ 236.666 658.376 null] >> endobj -1041 0 obj << -/D [1036 0 R /XYZ 236.025 640.968 null] +1046 0 obj << +/D [1041 0 R /XYZ 236.025 640.968 null] >> endobj -1042 0 obj << -/D [1036 0 R /XYZ 270.132 455.558 null] +1047 0 obj << +/D [1041 0 R /XYZ 270.132 455.558 null] >> endobj -1035 0 obj << -/Font << /F16 531 0 R /F8 534 0 R /F11 719 0 R /F14 737 0 R /F10 736 0 R /F7 735 0 R /F27 533 0 R /F30 734 0 R >> +1040 0 obj << +/Font << /F16 535 0 R /F8 538 0 R /F11 724 0 R /F14 742 0 R /F10 741 0 R /F7 740 0 R /F27 537 0 R /F30 739 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1052 0 obj << +1057 0 obj << /Length 6975 >> stream @@ -10142,78 +10216,78 @@ BT ET endstream endobj -1051 0 obj << +1056 0 obj << /Type /Page -/Contents 1052 0 R -/Resources 1050 0 R +/Contents 1057 0 R +/Resources 1055 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1006 0 R -/Annots [ 1034 0 R 1043 0 R 1044 0 R 1045 0 R 1046 0 R 1047 0 R 1048 0 R 1049 0 R ] +/Parent 1011 0 R +/Annots [ 1039 0 R 1048 0 R 1049 0 R 1050 0 R 1051 0 R 1052 0 R 1053 0 R 1054 0 R ] >> endobj -1034 0 obj << +1039 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [432.897 655.375 444.852 666.223] /Subtype /Link /A << /S /GoTo /D (table.12) >> >> endobj -1043 0 obj << +1048 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [419.358 588.824 495.412 599.949] /Subtype /Link /A << /S /GoTo /D (vdata) >> >> endobj -1044 0 obj << +1049 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [377.029 577.145 388.984 587.994] /Subtype /Link /A << /S /GoTo /D (table.12) >> >> endobj -1045 0 obj << +1050 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [310.273 498.639 377.331 509.764] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -1046 0 obj << +1051 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [397.199 462.009 404.172 472.858] /Subtype /Link /A << /S /GoTo /D (equation.1) >> >> endobj -1047 0 obj << +1052 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [396.202 447.541 403.176 458.389] /Subtype /Link /A << /S /GoTo /D (equation.2) >> >> endobj -1048 0 obj << +1053 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [396.507 433.073 403.481 443.921] /Subtype /Link /A << /S /GoTo /D (equation.3) >> >> endobj -1049 0 obj << +1054 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [253.818 191.887 265.774 202.735] /Subtype /Link /A << /S /GoTo /D (table.12) >> >> endobj -1053 0 obj << -/D [1051 0 R /XYZ 150.705 740.998 null] +1058 0 obj << +/D [1056 0 R /XYZ 150.705 740.998 null] >> endobj -1050 0 obj << -/Font << /F27 533 0 R /F8 534 0 R /F11 719 0 R /F30 734 0 R >> +1055 0 obj << +/Font << /F27 537 0 R /F8 538 0 R /F11 724 0 R /F30 739 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1058 0 obj << +1063 0 obj << /Length 6787 >> stream @@ -10323,35 +10397,35 @@ BT ET endstream endobj -1057 0 obj << +1062 0 obj << /Type /Page -/Contents 1058 0 R -/Resources 1056 0 R +/Contents 1063 0 R +/Resources 1061 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1061 0 R -/Annots [ 1054 0 R ] +/Parent 1066 0 R +/Annots [ 1059 0 R ] >> endobj -1054 0 obj << +1059 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [382.088 117.392 394.043 128.24] /Subtype /Link /A << /S /GoTo /D (table.13) >> >> endobj -1059 0 obj << -/D [1057 0 R /XYZ 99.895 740.998 null] +1064 0 obj << +/D [1062 0 R /XYZ 99.895 740.998 null] >> endobj -242 0 obj << -/D [1057 0 R /XYZ 99.895 697.044 null] +246 0 obj << +/D [1062 0 R /XYZ 99.895 697.044 null] >> endobj -1060 0 obj << -/D [1057 0 R /XYZ 270.132 258.477 null] +1065 0 obj << +/D [1062 0 R /XYZ 270.132 258.477 null] >> endobj -1056 0 obj << -/Font << /F16 531 0 R /F8 534 0 R /F11 719 0 R /F14 737 0 R /F13 1028 0 R /F7 735 0 R /F10 736 0 R /F30 734 0 R /F27 533 0 R >> +1061 0 obj << +/Font << /F16 535 0 R /F8 538 0 R /F11 724 0 R /F14 742 0 R /F13 1033 0 R /F7 740 0 R /F10 741 0 R /F30 739 0 R /F27 537 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1070 0 obj << +1075 0 obj << /Length 7789 >> stream @@ -10507,71 +10581,71 @@ BT ET endstream endobj -1069 0 obj << +1074 0 obj << /Type /Page -/Contents 1070 0 R -/Resources 1068 0 R +/Contents 1075 0 R +/Resources 1073 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1061 0 R -/Annots [ 1055 0 R 1062 0 R 1063 0 R 1064 0 R 1065 0 R 1066 0 R 1067 0 R ] +/Parent 1066 0 R +/Annots [ 1060 0 R 1067 0 R 1068 0 R 1069 0 R 1070 0 R 1071 0 R 1072 0 R ] >> endobj -1055 0 obj << +1060 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [358.482 655.375 365.455 666.223] /Subtype /Link /A << /S /GoTo /D (section.3) >> >> endobj -1062 0 obj << +1067 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [419.358 586.627 495.412 597.752] /Subtype /Link /A << /S /GoTo /D (vdata) >> >> endobj -1063 0 obj << +1068 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [376.818 574.949 388.773 585.797] /Subtype /Link /A << /S /GoTo /D (table.13) >> >> endobj -1064 0 obj << +1069 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [432.897 494.523 444.852 505.372] /Subtype /Link /A << /S /GoTo /D (table.13) >> >> endobj -1065 0 obj << +1070 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [419.358 425.776 495.412 436.901] /Subtype /Link /A << /S /GoTo /D (vdata) >> >> endobj -1066 0 obj << +1071 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [377.029 414.098 388.984 424.946] /Subtype /Link /A << /S /GoTo /D (table.13) >> >> endobj -1067 0 obj << +1072 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [310.273 333.395 377.331 344.52] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -1071 0 obj << -/D [1069 0 R /XYZ 150.705 740.998 null] +1076 0 obj << +/D [1074 0 R /XYZ 150.705 740.998 null] >> endobj -1068 0 obj << -/Font << /F27 533 0 R /F8 534 0 R /F11 719 0 R /F14 737 0 R /F30 734 0 R /F17 699 0 R >> +1073 0 obj << +/Font << /F27 537 0 R /F8 538 0 R /F11 724 0 R /F14 742 0 R /F30 739 0 R /F17 704 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1076 0 obj << +1081 0 obj << /Length 4663 >> stream @@ -10628,36 +10702,36 @@ BT ET endstream endobj -1075 0 obj << +1080 0 obj << /Type /Page -/Contents 1076 0 R -/Resources 1074 0 R +/Contents 1081 0 R +/Resources 1079 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1061 0 R -/Annots [ 1072 0 R 1073 0 R ] +/Parent 1066 0 R +/Annots [ 1077 0 R 1078 0 R ] >> endobj -1072 0 obj << +1077 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [162.826 410.238 174.781 419.149] /Subtype /Link /A << /S /GoTo /D (table.13) >> >> endobj -1073 0 obj << +1078 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [203.009 228.974 214.964 239.822] /Subtype /Link /A << /S /GoTo /D (table.13) >> >> endobj -1077 0 obj << -/D [1075 0 R /XYZ 99.895 740.998 null] +1082 0 obj << +/D [1080 0 R /XYZ 99.895 740.998 null] >> endobj -1074 0 obj << -/Font << /F8 534 0 R /F27 533 0 R /F11 719 0 R /F30 734 0 R >> +1079 0 obj << +/Font << /F8 538 0 R /F27 537 0 R /F11 724 0 R /F30 739 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1081 0 obj << +1086 0 obj << /Length 651 >> stream @@ -10675,32 +10749,32 @@ BT ET endstream endobj -1080 0 obj << +1085 0 obj << /Type /Page -/Contents 1081 0 R -/Resources 1079 0 R +/Contents 1086 0 R +/Resources 1084 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1061 0 R -/Annots [ 1078 0 R ] +/Parent 1066 0 R +/Annots [ 1083 0 R ] >> endobj -1078 0 obj << +1083 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [350.345 657.464 357.319 668.312] /Subtype /Link /A << /S /GoTo /D (section.6) >> >> endobj -1082 0 obj << -/D [1080 0 R /XYZ 150.705 740.998 null] +1087 0 obj << +/D [1085 0 R /XYZ 150.705 740.998 null] >> endobj -246 0 obj << -/D [1080 0 R /XYZ 150.705 716.092 null] +250 0 obj << +/D [1085 0 R /XYZ 150.705 716.092 null] >> endobj -1079 0 obj << -/Font << /F16 531 0 R /F8 534 0 R >> +1084 0 obj << +/Font << /F16 535 0 R /F8 538 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1089 0 obj << +1094 0 obj << /Length 7259 >> stream @@ -10895,58 +10969,58 @@ BT ET endstream endobj -1088 0 obj << +1093 0 obj << /Type /Page -/Contents 1089 0 R -/Resources 1087 0 R +/Contents 1094 0 R +/Resources 1092 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1061 0 R -/Annots [ 1083 0 R 1084 0 R 1085 0 R ] +/Parent 1066 0 R +/Annots [ 1088 0 R 1089 0 R 1090 0 R ] >> endobj -1083 0 obj << +1088 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [368.549 343.463 444.603 354.588] /Subtype /Link /A << /S /GoTo /D (vdata) >> >> endobj -1084 0 obj << +1089 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [325.411 331.785 337.366 342.633] /Subtype /Link /A << /S /GoTo /D (table.14) >> >> endobj -1085 0 obj << +1090 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [294.721 264.029 361.779 275.154] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -1090 0 obj << -/D [1088 0 R /XYZ 99.895 740.998 null] +1095 0 obj << +/D [1093 0 R /XYZ 99.895 740.998 null] >> endobj -250 0 obj << -/D [1088 0 R /XYZ 99.895 697.37 null] +254 0 obj << +/D [1093 0 R /XYZ 99.895 697.37 null] >> endobj -1091 0 obj << -/D [1088 0 R /XYZ 270.132 514.036 null] +1096 0 obj << +/D [1093 0 R /XYZ 270.132 514.036 null] >> endobj -1092 0 obj << -/D [1088 0 R /XYZ 99.895 482.745 null] +1097 0 obj << +/D [1093 0 R /XYZ 99.895 482.745 null] >> endobj -1093 0 obj << -/D [1088 0 R /XYZ 99.895 484.682 null] +1098 0 obj << +/D [1093 0 R /XYZ 99.895 484.682 null] >> endobj -1094 0 obj << -/D [1088 0 R /XYZ 99.895 472.727 null] +1099 0 obj << +/D [1093 0 R /XYZ 99.895 472.727 null] >> endobj -1087 0 obj << -/Font << /F16 531 0 R /F8 534 0 R /F11 719 0 R /F14 737 0 R /F27 533 0 R /F30 734 0 R >> +1092 0 obj << +/Font << /F16 535 0 R /F8 538 0 R /F11 724 0 R /F14 742 0 R /F27 537 0 R /F30 739 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1099 0 obj << +1104 0 obj << /Length 3219 >> stream @@ -11000,29 +11074,29 @@ BT ET endstream endobj -1098 0 obj << +1103 0 obj << /Type /Page -/Contents 1099 0 R -/Resources 1097 0 R +/Contents 1104 0 R +/Resources 1102 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1061 0 R -/Annots [ 1086 0 R 1096 0 R ] +/Parent 1066 0 R +/Annots [ 1091 0 R 1101 0 R ] >> endobj -1095 0 obj << +1100 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./figures/try8x8.pdf) /PTEX.PageNumber 1 -/PTEX.InfoDict 1102 0 R +/PTEX.InfoDict 1107 0 R /BBox [0 0 436 496] /Resources << /ProcSet [ /PDF /Text ] /ExtGState << -/R7 1103 0 R ->>/Font << /R8 1104 0 R/R9 1105 0 R>> +/R7 1108 0 R +>>/Font << /R8 1109 0 R/R9 1110 0 R>> >> -/Length 1106 0 R +/Length 1111 0 R /Filter /FlateDecode >> stream @@ -11038,62 +11112,62 @@ QI* d)eI%}QÉ'?+ä°~I*écÂ\‚?XO#~Ã[!©äX‚?fJÇüÁaî‹J8ù9â÷%©¤ s‰ù`=ø Ÿ× ,ªƒ1Œ|?ª$6ŠázžAª@}¡J¢¿R©’#‡z|]ñd•9ÔãýL G„z8¯—÷¬’Ï€äcD¾P%ùàgÌcå‘#<¾®x²J2³jˆÏÕpD„ó¢¼g•mø»ãoÇßþžŸúö§Ç6Úë¸w¶W~ûùñéØ?ûçãK߯åÌÞ>Øíƒ]?Øeµûü`ŸìqÛ{éÏ/m;±ù"×~¢WëÖëj¾Z…3lï²ÛÂ?|Ïz¼Ú½m[{힦„iÿb¬m»¦øóe•Ï¿{üáÛã¯×¿ÿ-3‡à endstream endobj -1102 0 obj +1107 0 obj << /Producer (ESP Ghostscript 815.03) /CreationDate (D:20070118112257) /ModDate (D:20070118112257) >> endobj -1103 0 obj +1108 0 obj << /Type /ExtGState /OPM 1 >> endobj -1104 0 obj +1109 0 obj << /BaseFont /Times-Roman /Type /Font /Subtype /Type1 >> endobj -1105 0 obj +1110 0 obj << /BaseFont /Times-Bold /Type /Font /Subtype /Type1 >> endobj -1106 0 obj +1111 0 obj 3571 endobj -1086 0 obj << +1091 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [213.636 625.431 225.591 634.343] /Subtype /Link /A << /S /GoTo /D (table.14) >> >> endobj -1096 0 obj << +1101 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [457.906 283.557 464.88 296.177] /Subtype /Link /A << /S /GoTo /D (figure.7) >> >> endobj -1100 0 obj << -/D [1098 0 R /XYZ 150.705 740.998 null] +1105 0 obj << +/D [1103 0 R /XYZ 150.705 740.998 null] >> endobj -1101 0 obj << -/D [1098 0 R /XYZ 283.692 322.744 null] +1106 0 obj << +/D [1103 0 R /XYZ 283.692 322.744 null] >> endobj -1097 0 obj << -/Font << /F27 533 0 R /F8 534 0 R /F11 719 0 R /F16 531 0 R /F30 734 0 R >> -/XObject << /Im3 1095 0 R >> +1102 0 obj << +/Font << /F27 537 0 R /F8 538 0 R /F11 724 0 R /F16 535 0 R /F30 739 0 R >> +/XObject << /Im3 1100 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1109 0 obj << +1114 0 obj << /Length 3050 >> stream @@ -11111,21 +11185,21 @@ BT ET endstream endobj -1108 0 obj << +1113 0 obj << /Type /Page -/Contents 1109 0 R -/Resources 1107 0 R +/Contents 1114 0 R +/Resources 1112 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1112 0 R +/Parent 1117 0 R >> endobj -1110 0 obj << -/D [1108 0 R /XYZ 99.895 740.998 null] +1115 0 obj << +/D [1113 0 R /XYZ 99.895 740.998 null] >> endobj -1107 0 obj << -/Font << /F45 1111 0 R /F8 534 0 R >> +1112 0 obj << +/Font << /F45 1116 0 R /F8 538 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1118 0 obj << +1123 0 obj << /Length 8482 >> stream @@ -11392,58 +11466,58 @@ BT ET endstream endobj -1117 0 obj << +1122 0 obj << /Type /Page -/Contents 1118 0 R -/Resources 1116 0 R +/Contents 1123 0 R +/Resources 1121 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1112 0 R -/Annots [ 1113 0 R 1114 0 R 1115 0 R ] +/Parent 1117 0 R +/Annots [ 1118 0 R 1119 0 R 1120 0 R ] >> endobj -1113 0 obj << +1118 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [419.358 343.981 495.412 355.106] /Subtype /Link /A << /S /GoTo /D (vdata) >> >> endobj -1114 0 obj << +1119 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [376.221 332.303 388.176 343.151] /Subtype /Link /A << /S /GoTo /D (table.15) >> >> endobj -1115 0 obj << +1120 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [345.53 264.991 412.588 276.116] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -1119 0 obj << -/D [1117 0 R /XYZ 150.705 740.998 null] +1124 0 obj << +/D [1122 0 R /XYZ 150.705 740.998 null] >> endobj -254 0 obj << -/D [1117 0 R /XYZ 150.705 697.37 null] +258 0 obj << +/D [1122 0 R /XYZ 150.705 697.37 null] >> endobj -1120 0 obj << -/D [1117 0 R /XYZ 320.941 511.222 null] +1125 0 obj << +/D [1122 0 R /XYZ 320.941 511.222 null] >> endobj -1121 0 obj << -/D [1117 0 R /XYZ 150.705 480.819 null] +1126 0 obj << +/D [1122 0 R /XYZ 150.705 480.819 null] >> endobj -1122 0 obj << -/D [1117 0 R /XYZ 150.705 482.756 null] +1127 0 obj << +/D [1122 0 R /XYZ 150.705 482.756 null] >> endobj -1123 0 obj << -/D [1117 0 R /XYZ 150.705 470.801 null] +1128 0 obj << +/D [1122 0 R /XYZ 150.705 470.801 null] >> endobj -1116 0 obj << -/Font << /F16 531 0 R /F8 534 0 R /F11 719 0 R /F14 737 0 R /F10 736 0 R /F27 533 0 R /F30 734 0 R >> +1121 0 obj << +/Font << /F16 535 0 R /F8 538 0 R /F11 724 0 R /F14 742 0 R /F10 741 0 R /F27 537 0 R /F30 739 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1130 0 obj << +1135 0 obj << /Length 5866 >> stream @@ -11495,52 +11569,52 @@ BT ET endstream endobj -1129 0 obj << +1134 0 obj << /Type /Page -/Contents 1130 0 R -/Resources 1128 0 R +/Contents 1135 0 R +/Resources 1133 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1112 0 R -/Annots [ 1124 0 R 1126 0 R 1127 0 R ] +/Parent 1117 0 R +/Annots [ 1129 0 R 1131 0 R 1132 0 R ] >> endobj -1124 0 obj << +1129 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [203.009 555.748 214.964 566.597] /Subtype /Link /A << /S /GoTo /D (table.15) >> >> endobj -1126 0 obj << +1131 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [407.019 326.22 413.993 338.84] /Subtype /Link /A << /S /GoTo /D (figure.8) >> >> endobj -1127 0 obj << +1132 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [306.759 302.697 313.733 313.546] /Subtype /Link /A << /S /GoTo /D (figure.7) >> >> endobj -1131 0 obj << -/D [1129 0 R /XYZ 99.895 740.998 null] +1136 0 obj << +/D [1134 0 R /XYZ 99.895 740.998 null] >> endobj -1132 0 obj << -/D [1129 0 R /XYZ 99.895 465.033 null] +1137 0 obj << +/D [1134 0 R /XYZ 99.895 465.033 null] >> endobj -1133 0 obj << -/D [1129 0 R /XYZ 99.895 431.215 null] +1138 0 obj << +/D [1134 0 R /XYZ 99.895 431.215 null] >> endobj -1134 0 obj << -/D [1129 0 R /XYZ 99.895 387.38 null] +1139 0 obj << +/D [1134 0 R /XYZ 99.895 387.38 null] >> endobj -1128 0 obj << -/Font << /F27 533 0 R /F8 534 0 R /F11 719 0 R /F16 531 0 R /F10 736 0 R /F30 734 0 R >> +1133 0 obj << +/Font << /F27 537 0 R /F8 538 0 R /F11 724 0 R /F16 535 0 R /F10 741 0 R /F30 739 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1138 0 obj << +1143 0 obj << /Length 3619 >> stream @@ -11558,21 +11632,21 @@ BT ET endstream endobj -1137 0 obj << +1142 0 obj << /Type /Page -/Contents 1138 0 R -/Resources 1136 0 R +/Contents 1143 0 R +/Resources 1141 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1112 0 R +/Parent 1117 0 R >> endobj -1139 0 obj << -/D [1137 0 R /XYZ 150.705 740.998 null] +1144 0 obj << +/D [1142 0 R /XYZ 150.705 740.998 null] >> endobj -1136 0 obj << -/Font << /F31 740 0 R /F8 534 0 R >> +1141 0 obj << +/Font << /F31 745 0 R /F8 538 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1142 0 obj << +1147 0 obj << /Length 347 >> stream @@ -11604,28 +11678,28 @@ BT ET endstream endobj -1141 0 obj << +1146 0 obj << /Type /Page -/Contents 1142 0 R -/Resources 1140 0 R +/Contents 1147 0 R +/Resources 1145 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1112 0 R +/Parent 1117 0 R >> endobj -1125 0 obj << +1130 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./figures/try8x8_ov.pdf) /PTEX.PageNumber 1 -/PTEX.InfoDict 1144 0 R +/PTEX.InfoDict 1149 0 R /BBox [0 0 436 514] /Resources << /ProcSet [ /PDF /Text ] /ExtGState << -/R7 1145 0 R ->>/Font << /R8 1146 0 R/R9 1147 0 R>> +/R7 1150 0 R +>>/Font << /R8 1151 0 R/R9 1152 0 R>> >> -/Length 1148 0 R +/Length 1153 0 R /Filter /FlateDecode >> stream @@ -11639,48 +11713,48 @@ V óá!Zäÿ/L)ÇÇ8ú:ß=þ êë¼® endstream endobj -1144 0 obj +1149 0 obj << /Producer (ESP Ghostscript 815.03) /CreationDate (D:20070118114343) /ModDate (D:20070118114343) >> endobj -1145 0 obj +1150 0 obj << /Type /ExtGState /OPM 1 >> endobj -1146 0 obj +1151 0 obj << /BaseFont /Times-Roman /Type /Font /Subtype /Type1 >> endobj -1147 0 obj +1152 0 obj << /BaseFont /Times-Bold /Type /Font /Subtype /Type1 >> endobj -1148 0 obj +1153 0 obj 3652 endobj -1143 0 obj << -/D [1141 0 R /XYZ 99.895 740.998 null] ->> endobj -1135 0 obj << -/D [1141 0 R /XYZ 232.883 275.514 null] +1148 0 obj << +/D [1146 0 R /XYZ 99.895 740.998 null] >> endobj 1140 0 obj << -/Font << /F8 534 0 R >> -/XObject << /Im4 1125 0 R >> +/D [1146 0 R /XYZ 232.883 275.514 null] +>> endobj +1145 0 obj << +/Font << /F8 538 0 R >> +/XObject << /Im4 1130 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1154 0 obj << +1159 0 obj << /Length 9366 >> stream @@ -11959,58 +12033,58 @@ BT ET endstream endobj -1153 0 obj << +1158 0 obj << /Type /Page -/Contents 1154 0 R -/Resources 1152 0 R +/Contents 1159 0 R +/Resources 1157 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1112 0 R -/Annots [ 1149 0 R 1150 0 R 1151 0 R ] +/Parent 1117 0 R +/Annots [ 1154 0 R 1155 0 R 1156 0 R ] >> endobj -1149 0 obj << +1154 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [419.358 295.182 495.412 306.307] /Subtype /Link /A << /S /GoTo /D (vdata) >> >> endobj -1150 0 obj << +1155 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [256.807 285.441 268.762 294.352] /Subtype /Link /A << /S /GoTo /D (table.16) >> >> endobj -1151 0 obj << +1156 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [345.53 215.901 412.588 227.026] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -1155 0 obj << -/D [1153 0 R /XYZ 150.705 740.998 null] +1160 0 obj << +/D [1158 0 R /XYZ 150.705 740.998 null] >> endobj -258 0 obj << -/D [1153 0 R /XYZ 150.705 697.37 null] +262 0 obj << +/D [1158 0 R /XYZ 150.705 697.37 null] >> endobj -1156 0 obj << -/D [1153 0 R /XYZ 320.941 466.542 null] +1161 0 obj << +/D [1158 0 R /XYZ 320.941 466.542 null] >> endobj -1157 0 obj << -/D [1153 0 R /XYZ 150.705 435.558 null] +1162 0 obj << +/D [1158 0 R /XYZ 150.705 435.558 null] >> endobj -1158 0 obj << -/D [1153 0 R /XYZ 150.705 435.558 null] +1163 0 obj << +/D [1158 0 R /XYZ 150.705 435.558 null] >> endobj -1159 0 obj << -/D [1153 0 R /XYZ 150.705 423.603 null] +1164 0 obj << +/D [1158 0 R /XYZ 150.705 423.603 null] >> endobj -1152 0 obj << -/Font << /F16 531 0 R /F8 534 0 R /F11 719 0 R /F14 737 0 R /F10 736 0 R /F7 735 0 R /F27 533 0 R /F30 734 0 R >> +1157 0 obj << +/Font << /F16 535 0 R /F8 538 0 R /F11 724 0 R /F14 742 0 R /F10 741 0 R /F7 740 0 R /F27 537 0 R /F30 739 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1162 0 obj << +1167 0 obj << /Length 1455 >> stream @@ -12038,21 +12112,21 @@ BT ET endstream endobj -1161 0 obj << +1166 0 obj << /Type /Page -/Contents 1162 0 R -/Resources 1160 0 R +/Contents 1167 0 R +/Resources 1165 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1164 0 R +/Parent 1169 0 R >> endobj -1163 0 obj << -/D [1161 0 R /XYZ 99.895 740.998 null] +1168 0 obj << +/D [1166 0 R /XYZ 99.895 740.998 null] >> endobj -1160 0 obj << -/Font << /F27 533 0 R /F8 534 0 R /F30 734 0 R >> +1165 0 obj << +/Font << /F27 537 0 R /F8 538 0 R /F30 739 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1169 0 obj << +1174 0 obj << /Length 8563 >> stream @@ -12295,44 +12369,44 @@ BT ET endstream endobj -1168 0 obj << +1173 0 obj << /Type /Page -/Contents 1169 0 R -/Resources 1167 0 R +/Contents 1174 0 R +/Resources 1172 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1164 0 R -/Annots [ 1165 0 R ] +/Parent 1169 0 R +/Annots [ 1170 0 R ] >> endobj -1165 0 obj << +1170 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [345.53 217.135 412.588 228.26] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -1170 0 obj << -/D [1168 0 R /XYZ 150.705 740.998 null] +1175 0 obj << +/D [1173 0 R /XYZ 150.705 740.998 null] >> endobj -262 0 obj << -/D [1168 0 R /XYZ 150.705 697.328 null] +266 0 obj << +/D [1173 0 R /XYZ 150.705 697.328 null] >> endobj -1171 0 obj << -/D [1168 0 R /XYZ 320.941 460.425 null] +1176 0 obj << +/D [1173 0 R /XYZ 320.941 460.425 null] >> endobj -1172 0 obj << -/D [1168 0 R /XYZ 150.705 428.452 null] +1177 0 obj << +/D [1173 0 R /XYZ 150.705 428.452 null] >> endobj -1173 0 obj << -/D [1168 0 R /XYZ 150.705 428.452 null] +1178 0 obj << +/D [1173 0 R /XYZ 150.705 428.452 null] >> endobj -1174 0 obj << -/D [1168 0 R /XYZ 150.705 416.497 null] +1179 0 obj << +/D [1173 0 R /XYZ 150.705 416.497 null] >> endobj -1167 0 obj << -/Font << /F16 531 0 R /F8 534 0 R /F11 719 0 R /F10 736 0 R /F14 737 0 R /F7 735 0 R /F27 533 0 R /F30 734 0 R >> +1172 0 obj << +/Font << /F16 535 0 R /F8 538 0 R /F11 724 0 R /F10 741 0 R /F14 742 0 R /F7 740 0 R /F27 537 0 R /F30 739 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1177 0 obj << +1182 0 obj << /Length 1718 >> stream @@ -12371,29 +12445,29 @@ BT ET endstream endobj -1176 0 obj << +1181 0 obj << /Type /Page -/Contents 1177 0 R -/Resources 1175 0 R +/Contents 1182 0 R +/Resources 1180 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1164 0 R -/Annots [ 1166 0 R ] +/Parent 1169 0 R +/Annots [ 1171 0 R ] >> endobj -1166 0 obj << +1171 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [205.998 645.357 217.953 654.268] /Subtype /Link /A << /S /GoTo /D (table.17) >> >> endobj -1178 0 obj << -/D [1176 0 R /XYZ 99.895 740.998 null] +1183 0 obj << +/D [1181 0 R /XYZ 99.895 740.998 null] >> endobj -1175 0 obj << -/Font << /F27 533 0 R /F8 534 0 R /F11 719 0 R >> +1180 0 obj << +/Font << /F27 537 0 R /F8 538 0 R /F11 724 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1181 0 obj << +1186 0 obj << /Length 6539 >> stream @@ -12448,27 +12522,27 @@ BT ET endstream endobj -1180 0 obj << +1185 0 obj << /Type /Page -/Contents 1181 0 R -/Resources 1179 0 R +/Contents 1186 0 R +/Resources 1184 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1164 0 R +/Parent 1169 0 R >> endobj -1182 0 obj << -/D [1180 0 R /XYZ 150.705 740.998 null] ->> endobj -266 0 obj << -/D [1180 0 R /XYZ 150.705 716.092 null] +1187 0 obj << +/D [1185 0 R /XYZ 150.705 740.998 null] >> endobj 270 0 obj << -/D [1180 0 R /XYZ 150.705 673.557 null] +/D [1185 0 R /XYZ 150.705 716.092 null] >> endobj -1179 0 obj << -/Font << /F16 531 0 R /F30 734 0 R /F8 534 0 R /F27 533 0 R /F11 719 0 R /F14 737 0 R >> +274 0 obj << +/D [1185 0 R /XYZ 150.705 673.557 null] +>> endobj +1184 0 obj << +/Font << /F16 535 0 R /F30 739 0 R /F8 538 0 R /F27 537 0 R /F11 724 0 R /F14 742 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1186 0 obj << +1191 0 obj << /Length 6637 >> stream @@ -12544,32 +12618,32 @@ BT ET endstream endobj -1185 0 obj << +1190 0 obj << /Type /Page -/Contents 1186 0 R -/Resources 1184 0 R +/Contents 1191 0 R +/Resources 1189 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1164 0 R -/Annots [ 1183 0 R ] +/Parent 1169 0 R +/Annots [ 1188 0 R ] >> endobj -1183 0 obj << +1188 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [294.721 325.282 361.779 336.407] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -1187 0 obj << -/D [1185 0 R /XYZ 99.895 740.998 null] +1192 0 obj << +/D [1190 0 R /XYZ 99.895 740.998 null] >> endobj -1188 0 obj << -/D [1185 0 R /XYZ 99.895 234.372 null] +1193 0 obj << +/D [1190 0 R /XYZ 99.895 234.372 null] >> endobj -1184 0 obj << -/Font << /F27 533 0 R /F8 534 0 R /F30 734 0 R /F11 719 0 R /F16 531 0 R >> +1189 0 obj << +/Font << /F27 537 0 R /F8 538 0 R /F30 739 0 R /F11 724 0 R /F16 535 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1192 0 obj << +1197 0 obj << /Length 10049 >> stream @@ -12638,32 +12712,32 @@ BT ET endstream endobj -1191 0 obj << +1196 0 obj << /Type /Page -/Contents 1192 0 R -/Resources 1190 0 R +/Contents 1197 0 R +/Resources 1195 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1164 0 R -/Annots [ 1189 0 R ] +/Parent 1169 0 R +/Annots [ 1194 0 R ] >> endobj -1189 0 obj << +1194 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [408.792 215.702 431.263 226.827] /Subtype /Link /A << /S /GoTo /D (subsubsection.2.3.1) >> >> endobj -1193 0 obj << -/D [1191 0 R /XYZ 150.705 740.998 null] +1198 0 obj << +/D [1196 0 R /XYZ 150.705 740.998 null] >> endobj -1194 0 obj << -/D [1191 0 R /XYZ 150.705 134.155 null] +1199 0 obj << +/D [1196 0 R /XYZ 150.705 134.155 null] >> endobj -1190 0 obj << -/Font << /F30 734 0 R /F8 534 0 R /F27 533 0 R /F14 737 0 R /F11 719 0 R /F10 736 0 R >> +1195 0 obj << +/Font << /F30 739 0 R /F8 538 0 R /F27 537 0 R /F14 742 0 R /F11 724 0 R /F10 741 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1197 0 obj << +1202 0 obj << /Length 2660 >> stream @@ -12696,36 +12770,36 @@ BT ET endstream endobj -1196 0 obj << +1201 0 obj << /Type /Page -/Contents 1197 0 R -/Resources 1195 0 R +/Contents 1202 0 R +/Resources 1200 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1204 0 R +/Parent 1209 0 R >> endobj -1198 0 obj << -/D [1196 0 R /XYZ 99.895 740.998 null] +1203 0 obj << +/D [1201 0 R /XYZ 99.895 740.998 null] >> endobj -1199 0 obj << -/D [1196 0 R /XYZ 99.895 716.092 null] +1204 0 obj << +/D [1201 0 R /XYZ 99.895 716.092 null] >> endobj -1200 0 obj << -/D [1196 0 R /XYZ 99.895 688.251 null] +1205 0 obj << +/D [1201 0 R /XYZ 99.895 688.251 null] >> endobj -1201 0 obj << -/D [1196 0 R /XYZ 99.895 668.049 null] +1206 0 obj << +/D [1201 0 R /XYZ 99.895 668.049 null] >> endobj -1202 0 obj << -/D [1196 0 R /XYZ 99.895 626.428 null] +1207 0 obj << +/D [1201 0 R /XYZ 99.895 626.428 null] >> endobj -1203 0 obj << -/D [1196 0 R /XYZ 99.895 568.7 null] +1208 0 obj << +/D [1201 0 R /XYZ 99.895 568.7 null] >> endobj -1195 0 obj << -/Font << /F8 534 0 R /F30 734 0 R >> +1200 0 obj << +/Font << /F8 538 0 R /F30 739 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1208 0 obj << +1213 0 obj << /Length 7171 >> stream @@ -12808,32 +12882,32 @@ BT ET endstream endobj -1207 0 obj << +1212 0 obj << /Type /Page -/Contents 1208 0 R -/Resources 1206 0 R +/Contents 1213 0 R +/Resources 1211 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1204 0 R -/Annots [ 1205 0 R ] +/Parent 1209 0 R +/Annots [ 1210 0 R ] >> endobj -1205 0 obj << +1210 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [345.53 117.115 412.588 128.24] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -1209 0 obj << -/D [1207 0 R /XYZ 150.705 740.998 null] +1214 0 obj << +/D [1212 0 R /XYZ 150.705 740.998 null] >> endobj -274 0 obj << -/D [1207 0 R /XYZ 150.705 697.37 null] +278 0 obj << +/D [1212 0 R /XYZ 150.705 697.37 null] >> endobj -1206 0 obj << -/Font << /F16 531 0 R /F30 734 0 R /F8 534 0 R /F11 719 0 R /F27 533 0 R >> +1211 0 obj << +/Font << /F16 535 0 R /F30 739 0 R /F8 538 0 R /F11 724 0 R /F27 537 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1213 0 obj << +1218 0 obj << /Length 3156 >> stream @@ -12874,38 +12948,38 @@ BT ET endstream endobj -1212 0 obj << +1217 0 obj << /Type /Page -/Contents 1213 0 R -/Resources 1211 0 R +/Contents 1218 0 R +/Resources 1216 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1204 0 R -/Annots [ 1210 0 R ] +/Parent 1209 0 R +/Annots [ 1215 0 R ] >> endobj -1210 0 obj << +1215 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [274.574 402.324 297.045 413.172] /Subtype /Link /A << /S /GoTo /D (subsubsection.2.3.1) >> >> endobj -1214 0 obj << -/D [1212 0 R /XYZ 99.895 740.998 null] +1219 0 obj << +/D [1217 0 R /XYZ 99.895 740.998 null] >> endobj -1215 0 obj << -/D [1212 0 R /XYZ 99.895 496.913 null] +1220 0 obj << +/D [1217 0 R /XYZ 99.895 496.913 null] >> endobj -1216 0 obj << -/D [1212 0 R /XYZ 99.895 475.051 null] +1221 0 obj << +/D [1217 0 R /XYZ 99.895 475.051 null] >> endobj -1217 0 obj << -/D [1212 0 R /XYZ 99.895 431.215 null] +1222 0 obj << +/D [1217 0 R /XYZ 99.895 431.215 null] >> endobj -1211 0 obj << -/Font << /F27 533 0 R /F8 534 0 R /F11 719 0 R /F16 531 0 R >> +1216 0 obj << +/Font << /F27 537 0 R /F8 538 0 R /F11 724 0 R /F16 535 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1222 0 obj << +1227 0 obj << /Length 3493 >> stream @@ -13005,42 +13079,42 @@ BT ET endstream endobj -1221 0 obj << +1226 0 obj << /Type /Page -/Contents 1222 0 R -/Resources 1220 0 R +/Contents 1227 0 R +/Resources 1225 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1204 0 R -/Annots [ 1218 0 R 1219 0 R ] +/Parent 1209 0 R +/Annots [ 1223 0 R 1224 0 R ] >> endobj -1218 0 obj << +1223 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [345.53 574.94 412.588 586.065] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -1219 0 obj << +1224 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [345.53 485.277 412.588 496.401] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -1223 0 obj << -/D [1221 0 R /XYZ 150.705 740.998 null] +1228 0 obj << +/D [1226 0 R /XYZ 150.705 740.998 null] >> endobj -278 0 obj << -/D [1221 0 R /XYZ 150.705 697.37 null] +282 0 obj << +/D [1226 0 R /XYZ 150.705 697.37 null] >> endobj -1224 0 obj << -/D [1221 0 R /XYZ 150.705 394.838 null] +1229 0 obj << +/D [1226 0 R /XYZ 150.705 394.838 null] >> endobj -1220 0 obj << -/Font << /F16 531 0 R /F30 734 0 R /F27 533 0 R /F8 534 0 R >> +1225 0 obj << +/Font << /F16 535 0 R /F30 739 0 R /F27 537 0 R /F8 538 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1229 0 obj << +1234 0 obj << /Length 3277 >> stream @@ -13136,39 +13210,39 @@ BT ET endstream endobj -1228 0 obj << +1233 0 obj << /Type /Page -/Contents 1229 0 R -/Resources 1227 0 R +/Contents 1234 0 R +/Resources 1232 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1204 0 R -/Annots [ 1225 0 R 1226 0 R ] +/Parent 1209 0 R +/Annots [ 1230 0 R 1231 0 R ] >> endobj -1225 0 obj << +1230 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [294.721 574.94 361.779 586.065] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -1226 0 obj << +1231 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [294.721 485.277 361.779 496.401] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -1230 0 obj << -/D [1228 0 R /XYZ 99.895 740.998 null] +1235 0 obj << +/D [1233 0 R /XYZ 99.895 740.998 null] >> endobj -282 0 obj << -/D [1228 0 R /XYZ 99.895 697.37 null] +286 0 obj << +/D [1233 0 R /XYZ 99.895 697.37 null] >> endobj -1227 0 obj << -/Font << /F16 531 0 R /F30 734 0 R /F27 533 0 R /F8 534 0 R >> +1232 0 obj << +/Font << /F16 535 0 R /F30 739 0 R /F27 537 0 R /F8 538 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1234 0 obj << +1239 0 obj << /Length 2243 >> stream @@ -13235,32 +13309,32 @@ BT ET endstream endobj -1233 0 obj << +1238 0 obj << /Type /Page -/Contents 1234 0 R -/Resources 1232 0 R +/Contents 1239 0 R +/Resources 1237 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1204 0 R -/Annots [ 1231 0 R ] +/Parent 1209 0 R +/Annots [ 1236 0 R ] >> endobj -1231 0 obj << +1236 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [345.53 574.94 412.588 586.065] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -1235 0 obj << -/D [1233 0 R /XYZ 150.705 740.998 null] +1240 0 obj << +/D [1238 0 R /XYZ 150.705 740.998 null] >> endobj -286 0 obj << -/D [1233 0 R /XYZ 150.705 697.37 null] +290 0 obj << +/D [1238 0 R /XYZ 150.705 697.37 null] >> endobj -1232 0 obj << -/Font << /F16 531 0 R /F30 734 0 R /F27 533 0 R /F8 534 0 R >> +1237 0 obj << +/Font << /F16 535 0 R /F30 739 0 R /F27 537 0 R /F8 538 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1240 0 obj << +1245 0 obj << /Length 5927 >> stream @@ -13368,39 +13442,39 @@ BT ET endstream endobj -1239 0 obj << +1244 0 obj << /Type /Page -/Contents 1240 0 R -/Resources 1238 0 R +/Contents 1245 0 R +/Resources 1243 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1242 0 R -/Annots [ 1236 0 R 1237 0 R ] +/Parent 1247 0 R +/Annots [ 1241 0 R 1242 0 R ] >> endobj -1236 0 obj << +1241 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [294.721 453.24 372.239 464.364] /Subtype /Link /A << /S /GoTo /D (spdata) >> >> endobj -1237 0 obj << +1242 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [294.721 209.896 361.779 221.021] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -1241 0 obj << -/D [1239 0 R /XYZ 99.895 740.998 null] +1246 0 obj << +/D [1244 0 R /XYZ 99.895 740.998 null] >> endobj -290 0 obj << -/D [1239 0 R /XYZ 99.895 685.412 null] +294 0 obj << +/D [1244 0 R /XYZ 99.895 685.412 null] >> endobj -1238 0 obj << -/Font << /F16 531 0 R /F30 734 0 R /F8 534 0 R /F27 533 0 R /F11 719 0 R /F14 737 0 R >> +1243 0 obj << +/Font << /F16 535 0 R /F30 739 0 R /F8 538 0 R /F27 537 0 R /F11 724 0 R /F14 742 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1245 0 obj << +1250 0 obj << /Length 1587 >> stream @@ -13421,27 +13495,27 @@ BT ET endstream endobj -1244 0 obj << +1249 0 obj << /Type /Page -/Contents 1245 0 R -/Resources 1243 0 R +/Contents 1250 0 R +/Resources 1248 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1242 0 R +/Parent 1247 0 R >> endobj -1246 0 obj << -/D [1244 0 R /XYZ 150.705 740.998 null] +1251 0 obj << +/D [1249 0 R /XYZ 150.705 740.998 null] >> endobj -1247 0 obj << -/D [1244 0 R /XYZ 150.705 716.092 null] +1252 0 obj << +/D [1249 0 R /XYZ 150.705 716.092 null] >> endobj -1248 0 obj << -/D [1244 0 R /XYZ 150.705 664.341 null] +1253 0 obj << +/D [1249 0 R /XYZ 150.705 664.341 null] >> endobj -1243 0 obj << -/Font << /F8 534 0 R /F30 734 0 R >> +1248 0 obj << +/Font << /F8 538 0 R /F30 739 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1253 0 obj << +1258 0 obj << /Length 4887 >> stream @@ -13546,48 +13620,48 @@ BT ET endstream endobj -1252 0 obj << +1257 0 obj << /Type /Page -/Contents 1253 0 R -/Resources 1251 0 R +/Contents 1258 0 R +/Resources 1256 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1242 0 R -/Annots [ 1249 0 R 1250 0 R ] +/Parent 1247 0 R +/Annots [ 1254 0 R 1255 0 R ] >> endobj -1249 0 obj << +1254 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [294.721 574.94 361.779 586.065] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -1250 0 obj << +1255 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [294.721 405.575 372.239 416.7] /Subtype /Link /A << /S /GoTo /D (spdata) >> >> endobj -1254 0 obj << -/D [1252 0 R /XYZ 99.895 740.998 null] +1259 0 obj << +/D [1257 0 R /XYZ 99.895 740.998 null] >> endobj -294 0 obj << -/D [1252 0 R /XYZ 99.895 697.37 null] +298 0 obj << +/D [1257 0 R /XYZ 99.895 697.37 null] >> endobj -1255 0 obj << -/D [1252 0 R /XYZ 99.895 315.137 null] +1260 0 obj << +/D [1257 0 R /XYZ 99.895 315.137 null] >> endobj -1256 0 obj << -/D [1252 0 R /XYZ 99.895 293.274 null] +1261 0 obj << +/D [1257 0 R /XYZ 99.895 293.274 null] >> endobj -1257 0 obj << -/D [1252 0 R /XYZ 99.895 273.349 null] +1262 0 obj << +/D [1257 0 R /XYZ 99.895 273.349 null] >> endobj -1251 0 obj << -/Font << /F16 531 0 R /F30 734 0 R /F27 533 0 R /F8 534 0 R /F11 719 0 R >> +1256 0 obj << +/Font << /F16 535 0 R /F30 739 0 R /F27 537 0 R /F8 538 0 R /F11 724 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1263 0 obj << +1268 0 obj << /Length 6453 >> stream @@ -13692,39 +13766,39 @@ BT ET endstream endobj -1262 0 obj << +1267 0 obj << /Type /Page -/Contents 1263 0 R -/Resources 1261 0 R +/Contents 1268 0 R +/Resources 1266 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1242 0 R -/Annots [ 1258 0 R 1259 0 R ] +/Parent 1247 0 R +/Annots [ 1263 0 R 1264 0 R ] >> endobj -1258 0 obj << +1263 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [311.962 288.004 379.019 299.129] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -1259 0 obj << +1264 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [345.53 117.115 423.049 128.24] /Subtype /Link /A << /S /GoTo /D (spdata) >> >> endobj -1264 0 obj << -/D [1262 0 R /XYZ 150.705 740.998 null] +1269 0 obj << +/D [1267 0 R /XYZ 150.705 740.998 null] >> endobj -298 0 obj << -/D [1262 0 R /XYZ 150.705 697.251 null] +302 0 obj << +/D [1267 0 R /XYZ 150.705 697.251 null] >> endobj -1261 0 obj << -/Font << /F16 531 0 R /F30 734 0 R /F27 533 0 R /F8 534 0 R /F11 719 0 R >> +1266 0 obj << +/Font << /F16 535 0 R /F30 739 0 R /F27 537 0 R /F8 538 0 R /F11 724 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1267 0 obj << +1272 0 obj << /Length 6087 >> stream @@ -13806,56 +13880,56 @@ BT ET endstream endobj -1266 0 obj << +1271 0 obj << /Type /Page -/Contents 1267 0 R -/Resources 1265 0 R +/Contents 1272 0 R +/Resources 1270 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1242 0 R -/Annots [ 1260 0 R ] +/Parent 1247 0 R +/Annots [ 1265 0 R ] >> endobj -1260 0 obj << +1265 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [261.152 655.098 328.21 666.223] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -1268 0 obj << -/D [1266 0 R /XYZ 99.895 740.998 null] ->> endobj -1269 0 obj << -/D [1266 0 R /XYZ 99.895 552.704 null] ->> endobj -1270 0 obj << -/D [1266 0 R /XYZ 99.895 520.824 null] ->> endobj -1271 0 obj << -/D [1266 0 R /XYZ 99.895 487.006 null] ->> endobj -1272 0 obj << -/D [1266 0 R /XYZ 99.895 419.26 null] ->> endobj 1273 0 obj << -/D [1266 0 R /XYZ 99.895 363.469 null] +/D [1271 0 R /XYZ 99.895 740.998 null] >> endobj 1274 0 obj << -/D [1266 0 R /XYZ 99.895 319.634 null] +/D [1271 0 R /XYZ 99.895 552.704 null] >> endobj 1275 0 obj << -/D [1266 0 R /XYZ 99.895 287.753 null] +/D [1271 0 R /XYZ 99.895 520.824 null] >> endobj 1276 0 obj << -/D [1266 0 R /XYZ 99.895 255.873 null] +/D [1271 0 R /XYZ 99.895 487.006 null] >> endobj 1277 0 obj << -/D [1266 0 R /XYZ 99.895 212.037 null] +/D [1271 0 R /XYZ 99.895 419.26 null] >> endobj -1265 0 obj << -/Font << /F27 533 0 R /F8 534 0 R /F30 734 0 R /F16 531 0 R /F11 719 0 R >> -/ProcSet [ /PDF /Text ] +1278 0 obj << +/D [1271 0 R /XYZ 99.895 363.469 null] +>> endobj +1279 0 obj << +/D [1271 0 R /XYZ 99.895 319.634 null] +>> endobj +1280 0 obj << +/D [1271 0 R /XYZ 99.895 287.753 null] +>> endobj +1281 0 obj << +/D [1271 0 R /XYZ 99.895 255.873 null] >> endobj 1282 0 obj << +/D [1271 0 R /XYZ 99.895 212.037 null] +>> endobj +1270 0 obj << +/Font << /F27 537 0 R /F8 538 0 R /F30 739 0 R /F16 535 0 R /F11 724 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1287 0 obj << /Length 6648 >> stream @@ -13988,39 +14062,39 @@ BT ET endstream endobj -1281 0 obj << +1286 0 obj << /Type /Page -/Contents 1282 0 R -/Resources 1280 0 R +/Contents 1287 0 R +/Resources 1285 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1242 0 R -/Annots [ 1278 0 R 1279 0 R ] +/Parent 1247 0 R +/Annots [ 1283 0 R 1284 0 R ] >> endobj -1278 0 obj << +1283 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [345.53 576.23 412.588 587.355] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -1279 0 obj << +1284 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [345.53 205.776 423.049 216.901] /Subtype /Link /A << /S /GoTo /D (spdata) >> >> endobj -1283 0 obj << -/D [1281 0 R /XYZ 150.705 740.998 null] +1288 0 obj << +/D [1286 0 R /XYZ 150.705 740.998 null] >> endobj -302 0 obj << -/D [1281 0 R /XYZ 150.705 697.37 null] +306 0 obj << +/D [1286 0 R /XYZ 150.705 697.37 null] >> endobj -1280 0 obj << -/Font << /F16 531 0 R /F30 734 0 R /F27 533 0 R /F8 534 0 R >> +1285 0 obj << +/Font << /F16 535 0 R /F30 739 0 R /F27 537 0 R /F8 538 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1286 0 obj << +1291 0 obj << /Length 2248 >> stream @@ -14057,39 +14131,39 @@ BT ET endstream endobj -1285 0 obj << +1290 0 obj << /Type /Page -/Contents 1286 0 R -/Resources 1284 0 R +/Contents 1291 0 R +/Resources 1289 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1294 0 R +/Parent 1299 0 R >> endobj -1287 0 obj << -/D [1285 0 R /XYZ 99.895 740.998 null] +1292 0 obj << +/D [1290 0 R /XYZ 99.895 740.998 null] >> endobj -1288 0 obj << -/D [1285 0 R /XYZ 99.895 716.092 null] +1293 0 obj << +/D [1290 0 R /XYZ 99.895 716.092 null] >> endobj -1289 0 obj << -/D [1285 0 R /XYZ 99.895 687.975 null] +1294 0 obj << +/D [1290 0 R /XYZ 99.895 687.975 null] >> endobj -1290 0 obj << -/D [1285 0 R /XYZ 99.895 668.326 null] +1295 0 obj << +/D [1290 0 R /XYZ 99.895 668.326 null] >> endobj -1291 0 obj << -/D [1285 0 R /XYZ 99.895 624.491 null] +1296 0 obj << +/D [1290 0 R /XYZ 99.895 624.491 null] >> endobj -1292 0 obj << -/D [1285 0 R /XYZ 99.895 580.655 null] +1297 0 obj << +/D [1290 0 R /XYZ 99.895 580.655 null] >> endobj -1293 0 obj << -/D [1285 0 R /XYZ 99.895 560.73 null] +1298 0 obj << +/D [1290 0 R /XYZ 99.895 560.73 null] >> endobj -1284 0 obj << -/Font << /F8 534 0 R /F30 734 0 R >> +1289 0 obj << +/Font << /F8 538 0 R /F30 739 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1299 0 obj << +1304 0 obj << /Length 3084 >> stream @@ -14178,39 +14252,39 @@ BT ET endstream endobj -1298 0 obj << +1303 0 obj << /Type /Page -/Contents 1299 0 R -/Resources 1297 0 R +/Contents 1304 0 R +/Resources 1302 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1294 0 R -/Annots [ 1295 0 R 1296 0 R ] +/Parent 1299 0 R +/Annots [ 1300 0 R 1301 0 R ] >> endobj -1295 0 obj << +1300 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [345.53 574.94 423.049 586.065] /Subtype /Link /A << /S /GoTo /D (spdata) >> >> endobj -1296 0 obj << +1301 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [345.53 507.194 412.588 518.319] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -1300 0 obj << -/D [1298 0 R /XYZ 150.705 740.998 null] +1305 0 obj << +/D [1303 0 R /XYZ 150.705 740.998 null] >> endobj -306 0 obj << -/D [1298 0 R /XYZ 150.705 697.37 null] +310 0 obj << +/D [1303 0 R /XYZ 150.705 697.37 null] >> endobj -1297 0 obj << -/Font << /F16 531 0 R /F30 734 0 R /F27 533 0 R /F8 534 0 R >> +1302 0 obj << +/Font << /F16 535 0 R /F30 739 0 R /F27 537 0 R /F8 538 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1305 0 obj << +1310 0 obj << /Length 3991 >> stream @@ -14307,42 +14381,42 @@ BT ET endstream endobj -1304 0 obj << +1309 0 obj << /Type /Page -/Contents 1305 0 R -/Resources 1303 0 R +/Contents 1310 0 R +/Resources 1308 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1294 0 R -/Annots [ 1301 0 R 1302 0 R ] +/Parent 1299 0 R +/Annots [ 1306 0 R 1307 0 R ] >> endobj -1301 0 obj << +1306 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [294.721 560.993 372.239 572.118] /Subtype /Link /A << /S /GoTo /D (spdata) >> >> endobj -1302 0 obj << +1307 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [294.721 493.247 361.779 504.372] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -1306 0 obj << -/D [1304 0 R /XYZ 99.895 740.998 null] +1311 0 obj << +/D [1309 0 R /XYZ 99.895 740.998 null] >> endobj -310 0 obj << -/D [1304 0 R /XYZ 99.895 685.747 null] +314 0 obj << +/D [1309 0 R /XYZ 99.895 685.747 null] >> endobj -1307 0 obj << -/D [1304 0 R /XYZ 99.895 313.144 null] +1312 0 obj << +/D [1309 0 R /XYZ 99.895 313.144 null] >> endobj -1303 0 obj << -/Font << /F16 531 0 R /F30 734 0 R /F27 533 0 R /F8 534 0 R >> +1308 0 obj << +/Font << /F16 535 0 R /F30 739 0 R /F27 537 0 R /F8 538 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1312 0 obj << +1317 0 obj << /Length 5111 >> stream @@ -14446,39 +14520,39 @@ BT ET endstream endobj -1311 0 obj << +1316 0 obj << /Type /Page -/Contents 1312 0 R -/Resources 1310 0 R +/Contents 1317 0 R +/Resources 1315 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1294 0 R -/Annots [ 1308 0 R 1309 0 R ] +/Parent 1299 0 R +/Annots [ 1313 0 R 1314 0 R ] >> endobj -1308 0 obj << +1313 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [311.962 574.94 379.019 586.065] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -1309 0 obj << +1314 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [264.584 290.009 340.638 301.134] /Subtype /Link /A << /S /GoTo /D (vdata) >> >> endobj -1313 0 obj << -/D [1311 0 R /XYZ 150.705 740.998 null] +1318 0 obj << +/D [1316 0 R /XYZ 150.705 740.998 null] >> endobj -314 0 obj << -/D [1311 0 R /XYZ 150.705 697.37 null] +318 0 obj << +/D [1316 0 R /XYZ 150.705 697.37 null] >> endobj -1310 0 obj << -/Font << /F16 531 0 R /F30 734 0 R /F27 533 0 R /F8 534 0 R /F11 719 0 R >> +1315 0 obj << +/Font << /F16 535 0 R /F30 739 0 R /F27 537 0 R /F8 538 0 R /F11 724 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1318 0 obj << +1323 0 obj << /Length 6817 >> stream @@ -14590,39 +14664,39 @@ BT ET endstream endobj -1317 0 obj << +1322 0 obj << /Type /Page -/Contents 1318 0 R -/Resources 1316 0 R +/Contents 1323 0 R +/Resources 1321 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1294 0 R -/Annots [ 1314 0 R 1315 0 R ] +/Parent 1299 0 R +/Annots [ 1319 0 R 1320 0 R ] >> endobj -1314 0 obj << +1319 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [294.721 363.459 361.779 374.584] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -1315 0 obj << +1320 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [365.781 141.026 441.835 152.151] /Subtype /Link /A << /S /GoTo /D (vdata) >> >> endobj -1319 0 obj << -/D [1317 0 R /XYZ 99.895 740.998 null] +1324 0 obj << +/D [1322 0 R /XYZ 99.895 740.998 null] >> endobj -318 0 obj << -/D [1317 0 R /XYZ 99.895 697.37 null] +322 0 obj << +/D [1322 0 R /XYZ 99.895 697.37 null] >> endobj -1316 0 obj << -/Font << /F16 531 0 R /F30 734 0 R /F27 533 0 R /F8 534 0 R /F11 719 0 R >> +1321 0 obj << +/Font << /F16 535 0 R /F30 739 0 R /F27 537 0 R /F8 538 0 R /F11 724 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1322 0 obj << +1327 0 obj << /Length 1115 >> stream @@ -14647,27 +14721,27 @@ BT ET endstream endobj -1321 0 obj << +1326 0 obj << /Type /Page -/Contents 1322 0 R -/Resources 1320 0 R +/Contents 1327 0 R +/Resources 1325 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1294 0 R +/Parent 1299 0 R >> endobj -1323 0 obj << -/D [1321 0 R /XYZ 150.705 740.998 null] +1328 0 obj << +/D [1326 0 R /XYZ 150.705 740.998 null] >> endobj -1324 0 obj << -/D [1321 0 R /XYZ 150.705 632.405 null] +1329 0 obj << +/D [1326 0 R /XYZ 150.705 632.405 null] >> endobj -1325 0 obj << -/D [1321 0 R /XYZ 150.705 609.989 null] +1330 0 obj << +/D [1326 0 R /XYZ 150.705 609.989 null] >> endobj -1320 0 obj << -/Font << /F27 533 0 R /F8 534 0 R /F16 531 0 R >> +1325 0 obj << +/Font << /F27 537 0 R /F8 538 0 R /F16 535 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1331 0 obj << +1336 0 obj << /Length 5215 >> stream @@ -14820,46 +14894,46 @@ BT ET endstream endobj -1330 0 obj << +1335 0 obj << /Type /Page -/Contents 1331 0 R -/Resources 1329 0 R +/Contents 1336 0 R +/Resources 1334 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1333 0 R -/Annots [ 1326 0 R 1327 0 R 1328 0 R ] +/Parent 1338 0 R +/Annots [ 1331 0 R 1332 0 R 1333 0 R ] >> endobj -1326 0 obj << +1331 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [261.152 574.94 328.21 586.065] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -1327 0 obj << +1332 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [269.918 483.284 345.972 494.409] /Subtype /Link /A << /S /GoTo /D (vdata) >> >> endobj -1328 0 obj << +1333 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [187.733 381.665 263.787 392.79] /Subtype /Link /A << /S /GoTo /D (vdata) >> >> endobj -1332 0 obj << -/D [1330 0 R /XYZ 99.895 740.998 null] +1337 0 obj << +/D [1335 0 R /XYZ 99.895 740.998 null] >> endobj -322 0 obj << -/D [1330 0 R /XYZ 99.895 697.37 null] +326 0 obj << +/D [1335 0 R /XYZ 99.895 697.37 null] >> endobj -1329 0 obj << -/Font << /F16 531 0 R /F30 734 0 R /F27 533 0 R /F8 534 0 R /F11 719 0 R >> +1334 0 obj << +/Font << /F16 535 0 R /F30 739 0 R /F27 537 0 R /F8 538 0 R /F11 724 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1338 0 obj << +1343 0 obj << /Length 3379 >> stream @@ -14955,39 +15029,39 @@ BT ET endstream endobj -1337 0 obj << +1342 0 obj << /Type /Page -/Contents 1338 0 R -/Resources 1336 0 R +/Contents 1343 0 R +/Resources 1341 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1333 0 R -/Annots [ 1334 0 R 1335 0 R ] +/Parent 1338 0 R +/Annots [ 1339 0 R 1340 0 R ] >> endobj -1334 0 obj << +1339 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [238.542 562.985 314.596 574.11] /Subtype /Link /A << /S /GoTo /D (vdata) >> >> endobj -1335 0 obj << +1340 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [311.962 483.284 379.019 494.409] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -1339 0 obj << -/D [1337 0 R /XYZ 150.705 740.998 null] +1344 0 obj << +/D [1342 0 R /XYZ 150.705 740.998 null] >> endobj -326 0 obj << -/D [1337 0 R /XYZ 150.705 697.37 null] +330 0 obj << +/D [1342 0 R /XYZ 150.705 697.37 null] >> endobj -1336 0 obj << -/Font << /F16 531 0 R /F30 734 0 R /F27 533 0 R /F8 534 0 R >> +1341 0 obj << +/Font << /F16 535 0 R /F30 739 0 R /F27 537 0 R /F8 538 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1342 0 obj << +1347 0 obj << /Length 3437 >> stream @@ -15037,24 +15111,24 @@ BT ET endstream endobj -1341 0 obj << +1346 0 obj << /Type /Page -/Contents 1342 0 R -/Resources 1340 0 R +/Contents 1347 0 R +/Resources 1345 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1333 0 R +/Parent 1338 0 R >> endobj -1343 0 obj << -/D [1341 0 R /XYZ 99.895 740.998 null] +1348 0 obj << +/D [1346 0 R /XYZ 99.895 740.998 null] >> endobj -330 0 obj << -/D [1341 0 R /XYZ 99.895 697.37 null] +334 0 obj << +/D [1346 0 R /XYZ 99.895 697.37 null] >> endobj -1340 0 obj << -/Font << /F16 531 0 R /F30 734 0 R /F27 533 0 R /F8 534 0 R /F11 719 0 R /F10 736 0 R >> +1345 0 obj << +/Font << /F16 535 0 R /F30 739 0 R /F27 537 0 R /F8 538 0 R /F11 724 0 R /F10 741 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1347 0 obj << +1352 0 obj << /Length 6547 >> stream @@ -15155,32 +15229,32 @@ BT ET endstream endobj -1346 0 obj << +1351 0 obj << /Type /Page -/Contents 1347 0 R -/Resources 1345 0 R +/Contents 1352 0 R +/Resources 1350 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1333 0 R -/Annots [ 1344 0 R ] +/Parent 1338 0 R +/Annots [ 1349 0 R ] >> endobj -1344 0 obj << +1349 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [345.53 484.86 412.588 495.985] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -1348 0 obj << -/D [1346 0 R /XYZ 150.705 740.998 null] +1353 0 obj << +/D [1351 0 R /XYZ 150.705 740.998 null] >> endobj -334 0 obj << -/D [1346 0 R /XYZ 150.705 697.37 null] +338 0 obj << +/D [1351 0 R /XYZ 150.705 697.37 null] >> endobj -1345 0 obj << -/Font << /F16 531 0 R /F30 734 0 R /F27 533 0 R /F8 534 0 R /F11 719 0 R >> +1350 0 obj << +/Font << /F16 535 0 R /F30 739 0 R /F27 537 0 R /F8 538 0 R /F11 724 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1351 0 obj << +1356 0 obj << /Length 692 >> stream @@ -15201,27 +15275,27 @@ BT ET endstream endobj -1350 0 obj << +1355 0 obj << /Type /Page -/Contents 1351 0 R -/Resources 1349 0 R +/Contents 1356 0 R +/Resources 1354 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1333 0 R +/Parent 1338 0 R >> endobj -1352 0 obj << -/D [1350 0 R /XYZ 99.895 740.998 null] +1357 0 obj << +/D [1355 0 R /XYZ 99.895 740.998 null] >> endobj -1353 0 obj << -/D [1350 0 R /XYZ 99.895 716.092 null] +1358 0 obj << +/D [1355 0 R /XYZ 99.895 716.092 null] >> endobj -1354 0 obj << -/D [1350 0 R /XYZ 99.895 688.251 null] +1359 0 obj << +/D [1355 0 R /XYZ 99.895 688.251 null] >> endobj -1349 0 obj << -/Font << /F8 534 0 R /F30 734 0 R >> +1354 0 obj << +/Font << /F8 538 0 R /F30 739 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1358 0 obj << +1363 0 obj << /Length 5736 >> stream @@ -15318,32 +15392,32 @@ BT ET endstream endobj -1357 0 obj << +1362 0 obj << /Type /Page -/Contents 1358 0 R -/Resources 1356 0 R +/Contents 1363 0 R +/Resources 1361 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1333 0 R -/Annots [ 1355 0 R ] +/Parent 1338 0 R +/Annots [ 1360 0 R ] >> endobj -1355 0 obj << +1360 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [345.53 483.284 412.588 494.409] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -1359 0 obj << -/D [1357 0 R /XYZ 150.705 740.998 null] +1364 0 obj << +/D [1362 0 R /XYZ 150.705 740.998 null] >> endobj -338 0 obj << -/D [1357 0 R /XYZ 150.705 697.37 null] +342 0 obj << +/D [1362 0 R /XYZ 150.705 697.37 null] >> endobj -1356 0 obj << -/Font << /F16 531 0 R /F30 734 0 R /F27 533 0 R /F8 534 0 R /F11 719 0 R >> +1361 0 obj << +/Font << /F16 535 0 R /F30 739 0 R /F27 537 0 R /F8 538 0 R /F11 724 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1363 0 obj << +1368 0 obj << /Length 3271 >> stream @@ -15425,35 +15499,35 @@ BT ET endstream endobj -1362 0 obj << +1367 0 obj << /Type /Page -/Contents 1363 0 R -/Resources 1361 0 R +/Contents 1368 0 R +/Resources 1366 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1366 0 R -/Annots [ 1360 0 R ] +/Parent 1371 0 R +/Annots [ 1365 0 R ] >> endobj -1360 0 obj << +1365 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [294.721 495.239 361.779 506.364] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -1364 0 obj << -/D [1362 0 R /XYZ 99.895 740.998 null] +1369 0 obj << +/D [1367 0 R /XYZ 99.895 740.998 null] >> endobj -342 0 obj << -/D [1362 0 R /XYZ 99.895 697.37 null] +346 0 obj << +/D [1367 0 R /XYZ 99.895 697.37 null] >> endobj -1365 0 obj << -/D [1362 0 R /XYZ 99.895 382.883 null] +1370 0 obj << +/D [1367 0 R /XYZ 99.895 382.883 null] >> endobj -1361 0 obj << -/Font << /F16 531 0 R /F30 734 0 R /F27 533 0 R /F8 534 0 R /F11 719 0 R >> +1366 0 obj << +/Font << /F16 535 0 R /F30 739 0 R /F27 537 0 R /F8 538 0 R /F11 724 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1370 0 obj << +1375 0 obj << /Length 4983 >> stream @@ -15543,35 +15617,35 @@ BT ET endstream endobj -1369 0 obj << +1374 0 obj << /Type /Page -/Contents 1370 0 R -/Resources 1368 0 R +/Contents 1375 0 R +/Resources 1373 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1366 0 R -/Annots [ 1367 0 R ] +/Parent 1371 0 R +/Annots [ 1372 0 R ] >> endobj -1367 0 obj << +1372 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [345.53 495.239 412.588 506.364] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -1371 0 obj << -/D [1369 0 R /XYZ 150.705 740.998 null] +1376 0 obj << +/D [1374 0 R /XYZ 150.705 740.998 null] >> endobj -346 0 obj << -/D [1369 0 R /XYZ 150.705 697.37 null] +350 0 obj << +/D [1374 0 R /XYZ 150.705 697.37 null] >> endobj -1372 0 obj << -/D [1369 0 R /XYZ 150.705 259.346 null] +1377 0 obj << +/D [1374 0 R /XYZ 150.705 259.346 null] >> endobj -1368 0 obj << -/Font << /F16 531 0 R /F30 734 0 R /F27 533 0 R /F8 534 0 R /F11 719 0 R >> +1373 0 obj << +/Font << /F16 535 0 R /F30 739 0 R /F27 537 0 R /F8 538 0 R /F11 724 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1376 0 obj << +1381 0 obj << /Length 3240 >> stream @@ -15653,35 +15727,35 @@ BT ET endstream endobj -1375 0 obj << +1380 0 obj << /Type /Page -/Contents 1376 0 R -/Resources 1374 0 R +/Contents 1381 0 R +/Resources 1379 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1366 0 R -/Annots [ 1373 0 R ] +/Parent 1371 0 R +/Annots [ 1378 0 R ] >> endobj -1373 0 obj << +1378 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [294.721 495.239 361.779 506.364] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -1377 0 obj << -/D [1375 0 R /XYZ 99.895 740.998 null] +1382 0 obj << +/D [1380 0 R /XYZ 99.895 740.998 null] >> endobj -350 0 obj << -/D [1375 0 R /XYZ 99.895 697.37 null] +354 0 obj << +/D [1380 0 R /XYZ 99.895 697.37 null] >> endobj -1378 0 obj << -/D [1375 0 R /XYZ 99.895 382.883 null] +1383 0 obj << +/D [1380 0 R /XYZ 99.895 382.883 null] >> endobj -1374 0 obj << -/Font << /F16 531 0 R /F30 734 0 R /F27 533 0 R /F8 534 0 R /F11 719 0 R >> +1379 0 obj << +/Font << /F16 535 0 R /F30 739 0 R /F27 537 0 R /F8 538 0 R /F11 724 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1382 0 obj << +1387 0 obj << /Length 4992 >> stream @@ -15771,35 +15845,35 @@ BT ET endstream endobj -1381 0 obj << +1386 0 obj << /Type /Page -/Contents 1382 0 R -/Resources 1380 0 R +/Contents 1387 0 R +/Resources 1385 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1366 0 R -/Annots [ 1379 0 R ] +/Parent 1371 0 R +/Annots [ 1384 0 R ] >> endobj -1379 0 obj << +1384 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [345.53 495.239 412.588 506.364] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -1383 0 obj << -/D [1381 0 R /XYZ 150.705 740.998 null] +1388 0 obj << +/D [1386 0 R /XYZ 150.705 740.998 null] >> endobj -354 0 obj << -/D [1381 0 R /XYZ 150.705 697.37 null] +358 0 obj << +/D [1386 0 R /XYZ 150.705 697.37 null] >> endobj -1384 0 obj << -/D [1381 0 R /XYZ 150.705 259.346 null] +1389 0 obj << +/D [1386 0 R /XYZ 150.705 259.346 null] >> endobj -1380 0 obj << -/Font << /F16 531 0 R /F30 734 0 R /F27 533 0 R /F8 534 0 R /F11 719 0 R >> +1385 0 obj << +/Font << /F16 535 0 R /F30 739 0 R /F27 537 0 R /F8 538 0 R /F11 724 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1388 0 obj << +1393 0 obj << /Length 3821 >> stream @@ -15878,38 +15952,38 @@ BT ET endstream endobj -1387 0 obj << +1392 0 obj << /Type /Page -/Contents 1388 0 R -/Resources 1386 0 R +/Contents 1393 0 R +/Resources 1391 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1366 0 R -/Annots [ 1385 0 R ] +/Parent 1371 0 R +/Annots [ 1390 0 R ] >> endobj -1385 0 obj << +1390 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [294.721 574.94 361.779 586.065] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -1389 0 obj << -/D [1387 0 R /XYZ 99.895 740.998 null] +1394 0 obj << +/D [1392 0 R /XYZ 99.895 740.998 null] >> endobj -358 0 obj << -/D [1387 0 R /XYZ 99.895 697.37 null] +362 0 obj << +/D [1392 0 R /XYZ 99.895 697.37 null] >> endobj -1390 0 obj << -/D [1387 0 R /XYZ 99.895 370.928 null] +1395 0 obj << +/D [1392 0 R /XYZ 99.895 370.928 null] >> endobj -1391 0 obj << -/D [1387 0 R /XYZ 99.895 327.092 null] +1396 0 obj << +/D [1392 0 R /XYZ 99.895 327.092 null] >> endobj -1386 0 obj << -/Font << /F16 531 0 R /F30 734 0 R /F27 533 0 R /F8 534 0 R >> +1391 0 obj << +/Font << /F16 535 0 R /F30 739 0 R /F27 537 0 R /F8 538 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1395 0 obj << +1400 0 obj << /Length 3654 >> stream @@ -15988,38 +16062,38 @@ BT ET endstream endobj -1394 0 obj << +1399 0 obj << /Type /Page -/Contents 1395 0 R -/Resources 1393 0 R +/Contents 1400 0 R +/Resources 1398 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1366 0 R -/Annots [ 1392 0 R ] +/Parent 1371 0 R +/Annots [ 1397 0 R ] >> endobj -1392 0 obj << +1397 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [345.53 574.94 412.588 586.065] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -1396 0 obj << -/D [1394 0 R /XYZ 150.705 740.998 null] +1401 0 obj << +/D [1399 0 R /XYZ 150.705 740.998 null] >> endobj -362 0 obj << -/D [1394 0 R /XYZ 150.705 697.37 null] +366 0 obj << +/D [1399 0 R /XYZ 150.705 697.37 null] >> endobj -1397 0 obj << -/D [1394 0 R /XYZ 150.705 370.928 null] +1402 0 obj << +/D [1399 0 R /XYZ 150.705 370.928 null] >> endobj -1398 0 obj << -/D [1394 0 R /XYZ 150.705 339.047 null] +1403 0 obj << +/D [1399 0 R /XYZ 150.705 339.047 null] >> endobj -1393 0 obj << -/Font << /F16 531 0 R /F30 734 0 R /F27 533 0 R /F8 534 0 R >> +1398 0 obj << +/Font << /F16 535 0 R /F30 739 0 R /F27 537 0 R /F8 538 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1402 0 obj << +1407 0 obj << /Length 5783 >> stream @@ -16106,32 +16180,32 @@ BT ET endstream endobj -1401 0 obj << +1406 0 obj << /Type /Page -/Contents 1402 0 R -/Resources 1400 0 R +/Contents 1407 0 R +/Resources 1405 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1404 0 R -/Annots [ 1399 0 R ] +/Parent 1409 0 R +/Annots [ 1404 0 R ] >> endobj -1399 0 obj << +1404 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [294.721 492.904 372.239 504.029] /Subtype /Link /A << /S /GoTo /D (spdata) >> >> endobj -1403 0 obj << -/D [1401 0 R /XYZ 99.895 740.998 null] +1408 0 obj << +/D [1406 0 R /XYZ 99.895 740.998 null] >> endobj -366 0 obj << -/D [1401 0 R /XYZ 99.895 696.587 null] +370 0 obj << +/D [1406 0 R /XYZ 99.895 696.587 null] >> endobj -1400 0 obj << -/Font << /F16 531 0 R /F30 734 0 R /F27 533 0 R /F8 534 0 R /F11 719 0 R >> +1405 0 obj << +/Font << /F16 535 0 R /F30 739 0 R /F27 537 0 R /F8 538 0 R /F11 724 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1407 0 obj << +1412 0 obj << /Length 3711 >> stream @@ -16168,30 +16242,30 @@ BT ET endstream endobj -1406 0 obj << +1411 0 obj << /Type /Page -/Contents 1407 0 R -/Resources 1405 0 R +/Contents 1412 0 R +/Resources 1410 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1404 0 R +/Parent 1409 0 R >> endobj -1408 0 obj << -/D [1406 0 R /XYZ 150.705 740.998 null] +1413 0 obj << +/D [1411 0 R /XYZ 150.705 740.998 null] >> endobj -1409 0 obj << -/D [1406 0 R /XYZ 150.705 496.913 null] +1414 0 obj << +/D [1411 0 R /XYZ 150.705 496.913 null] >> endobj -1410 0 obj << -/D [1406 0 R /XYZ 150.705 439.185 null] +1415 0 obj << +/D [1411 0 R /XYZ 150.705 439.185 null] >> endobj -1411 0 obj << -/D [1406 0 R /XYZ 150.705 418.983 null] +1416 0 obj << +/D [1411 0 R /XYZ 150.705 418.983 null] >> endobj -1405 0 obj << -/Font << /F27 533 0 R /F8 534 0 R /F30 734 0 R /F16 531 0 R /F11 719 0 R >> +1410 0 obj << +/Font << /F27 537 0 R /F8 538 0 R /F30 739 0 R /F16 535 0 R /F11 724 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1417 0 obj << +1422 0 obj << /Length 4123 >> stream @@ -16302,46 +16376,46 @@ BT ET endstream endobj -1416 0 obj << +1421 0 obj << /Type /Page -/Contents 1417 0 R -/Resources 1415 0 R +/Contents 1422 0 R +/Resources 1420 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1404 0 R -/Annots [ 1412 0 R 1413 0 R 1414 0 R ] +/Parent 1409 0 R +/Annots [ 1417 0 R 1418 0 R 1419 0 R ] >> endobj -1412 0 obj << +1417 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [294.721 529.112 372.239 540.237] /Subtype /Link /A << /S /GoTo /D (spdata) >> >> endobj -1413 0 obj << +1418 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [294.721 461.366 361.779 472.491] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -1414 0 obj << +1419 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [321.343 405.575 388.401 416.7] /Subtype /Link /A << /S /GoTo /D (precdata) >> >> endobj -1418 0 obj << -/D [1416 0 R /XYZ 99.895 740.998 null] +1423 0 obj << +/D [1421 0 R /XYZ 99.895 740.998 null] >> endobj -370 0 obj << -/D [1416 0 R /XYZ 99.895 697.37 null] +374 0 obj << +/D [1421 0 R /XYZ 99.895 697.37 null] >> endobj -1415 0 obj << -/Font << /F16 531 0 R /F8 534 0 R /F30 734 0 R /F27 533 0 R /F11 719 0 R >> +1420 0 obj << +/Font << /F16 535 0 R /F8 538 0 R /F30 739 0 R /F27 537 0 R /F11 724 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1421 0 obj << +1426 0 obj << /Length 5773 >> stream @@ -16421,24 +16495,24 @@ BT ET endstream endobj -1420 0 obj << +1425 0 obj << /Type /Page -/Contents 1421 0 R -/Resources 1419 0 R +/Contents 1426 0 R +/Resources 1424 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1404 0 R +/Parent 1409 0 R >> endobj -1422 0 obj << -/D [1420 0 R /XYZ 150.705 740.998 null] +1427 0 obj << +/D [1425 0 R /XYZ 150.705 740.998 null] >> endobj -374 0 obj << -/D [1420 0 R /XYZ 150.705 696.813 null] +378 0 obj << +/D [1425 0 R /XYZ 150.705 696.813 null] >> endobj -1419 0 obj << -/Font << /F16 531 0 R /F30 734 0 R /F8 534 0 R /F11 719 0 R /F27 533 0 R >> +1424 0 obj << +/Font << /F16 535 0 R /F30 739 0 R /F8 538 0 R /F11 724 0 R /F27 537 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1425 0 obj << +1430 0 obj << /Length 6993 >> stream @@ -16544,48 +16618,48 @@ BT ET endstream endobj -1424 0 obj << +1429 0 obj << /Type /Page -/Contents 1425 0 R -/Resources 1423 0 R +/Contents 1430 0 R +/Resources 1428 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1404 0 R ->> endobj -1426 0 obj << -/D [1424 0 R /XYZ 99.895 740.998 null] ->> endobj -1427 0 obj << -/D [1424 0 R /XYZ 99.895 702.144 null] ->> endobj -1428 0 obj << -/D [1424 0 R /XYZ 99.895 668.326 null] ->> endobj -1429 0 obj << -/D [1424 0 R /XYZ 99.895 624.491 null] ->> endobj -1430 0 obj << -/D [1424 0 R /XYZ 99.895 556.745 null] +/Parent 1409 0 R >> endobj 1431 0 obj << -/D [1424 0 R /XYZ 99.895 500.954 null] +/D [1429 0 R /XYZ 99.895 740.998 null] >> endobj 1432 0 obj << -/D [1424 0 R /XYZ 99.895 468.52 null] +/D [1429 0 R /XYZ 99.895 702.144 null] >> endobj 1433 0 obj << -/D [1424 0 R /XYZ 99.895 425.182 null] +/D [1429 0 R /XYZ 99.895 668.326 null] >> endobj 1434 0 obj << -/D [1424 0 R /XYZ 99.895 383.395 null] +/D [1429 0 R /XYZ 99.895 624.491 null] >> endobj 1435 0 obj << -/D [1424 0 R /XYZ 99.895 355.499 null] +/D [1429 0 R /XYZ 99.895 556.745 null] >> endobj -1423 0 obj << -/Font << /F16 531 0 R /F8 534 0 R /F11 719 0 R /F14 737 0 R /F7 735 0 R >> -/ProcSet [ /PDF /Text ] +1436 0 obj << +/D [1429 0 R /XYZ 99.895 500.954 null] +>> endobj +1437 0 obj << +/D [1429 0 R /XYZ 99.895 468.52 null] >> endobj 1438 0 obj << +/D [1429 0 R /XYZ 99.895 425.182 null] +>> endobj +1439 0 obj << +/D [1429 0 R /XYZ 99.895 383.395 null] +>> endobj +1440 0 obj << +/D [1429 0 R /XYZ 99.895 355.499 null] +>> endobj +1428 0 obj << +/Font << /F16 535 0 R /F8 538 0 R /F11 724 0 R /F14 742 0 R /F7 740 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1443 0 obj << /Length 186 >> stream @@ -16599,24 +16673,24 @@ BT ET endstream endobj -1437 0 obj << +1442 0 obj << /Type /Page -/Contents 1438 0 R -/Resources 1436 0 R +/Contents 1443 0 R +/Resources 1441 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1404 0 R +/Parent 1409 0 R >> endobj -1439 0 obj << -/D [1437 0 R /XYZ 150.705 740.998 null] +1444 0 obj << +/D [1442 0 R /XYZ 150.705 740.998 null] >> endobj -378 0 obj << -/D [1437 0 R /XYZ 150.705 716.092 null] +382 0 obj << +/D [1442 0 R /XYZ 150.705 716.092 null] >> endobj -1436 0 obj << -/Font << /F16 531 0 R /F8 534 0 R >> +1441 0 obj << +/Font << /F16 535 0 R /F8 538 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1442 0 obj << +1447 0 obj << /Length 5566 >> stream @@ -16688,30 +16762,30 @@ BT ET endstream endobj -1441 0 obj << +1446 0 obj << /Type /Page -/Contents 1442 0 R -/Resources 1440 0 R +/Contents 1447 0 R +/Resources 1445 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1446 0 R +/Parent 1451 0 R >> endobj -1443 0 obj << -/D [1441 0 R /XYZ 99.895 740.998 null] +1448 0 obj << +/D [1446 0 R /XYZ 99.895 740.998 null] >> endobj -382 0 obj << -/D [1441 0 R /XYZ 99.895 697.37 null] +386 0 obj << +/D [1446 0 R /XYZ 99.895 697.37 null] >> endobj -1444 0 obj << -/D [1441 0 R /XYZ 99.895 235.436 null] +1449 0 obj << +/D [1446 0 R /XYZ 99.895 235.436 null] >> endobj -1445 0 obj << -/D [1441 0 R /XYZ 99.895 213.573 null] +1450 0 obj << +/D [1446 0 R /XYZ 99.895 213.573 null] >> endobj -1440 0 obj << -/Font << /F16 531 0 R /F30 734 0 R /F8 534 0 R /F27 533 0 R /F11 719 0 R /F14 737 0 R >> +1445 0 obj << +/Font << /F16 535 0 R /F30 739 0 R /F8 538 0 R /F27 537 0 R /F11 724 0 R /F14 742 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1449 0 obj << +1454 0 obj << /Length 4638 >> stream @@ -16765,30 +16839,30 @@ BT ET endstream endobj -1448 0 obj << +1453 0 obj << /Type /Page -/Contents 1449 0 R -/Resources 1447 0 R +/Contents 1454 0 R +/Resources 1452 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1446 0 R +/Parent 1451 0 R >> endobj -1450 0 obj << -/D [1448 0 R /XYZ 150.705 740.998 null] +1455 0 obj << +/D [1453 0 R /XYZ 150.705 740.998 null] >> endobj -386 0 obj << -/D [1448 0 R /XYZ 150.705 685.747 null] +390 0 obj << +/D [1453 0 R /XYZ 150.705 685.747 null] >> endobj -1451 0 obj << -/D [1448 0 R /XYZ 150.705 349.01 null] +1456 0 obj << +/D [1453 0 R /XYZ 150.705 349.01 null] >> endobj -1452 0 obj << -/D [1448 0 R /XYZ 150.705 315.192 null] +1457 0 obj << +/D [1453 0 R /XYZ 150.705 315.192 null] >> endobj -1447 0 obj << -/Font << /F16 531 0 R /F30 734 0 R /F8 534 0 R /F27 533 0 R /F14 737 0 R /F11 719 0 R >> +1452 0 obj << +/Font << /F16 535 0 R /F30 739 0 R /F8 538 0 R /F27 537 0 R /F14 742 0 R /F11 724 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1455 0 obj << +1460 0 obj << /Length 4355 >> stream @@ -16839,33 +16913,33 @@ BT ET endstream endobj -1454 0 obj << +1459 0 obj << /Type /Page -/Contents 1455 0 R -/Resources 1453 0 R +/Contents 1460 0 R +/Resources 1458 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1446 0 R +/Parent 1451 0 R >> endobj -1456 0 obj << -/D [1454 0 R /XYZ 99.895 740.998 null] +1461 0 obj << +/D [1459 0 R /XYZ 99.895 740.998 null] >> endobj -390 0 obj << -/D [1454 0 R /XYZ 99.895 697.37 null] +394 0 obj << +/D [1459 0 R /XYZ 99.895 697.37 null] >> endobj -1457 0 obj << -/D [1454 0 R /XYZ 99.895 442.659 null] +1462 0 obj << +/D [1459 0 R /XYZ 99.895 442.659 null] >> endobj -1458 0 obj << -/D [1454 0 R /XYZ 99.895 396.886 null] +1463 0 obj << +/D [1459 0 R /XYZ 99.895 396.886 null] >> endobj -1459 0 obj << -/D [1454 0 R /XYZ 99.895 365.005 null] +1464 0 obj << +/D [1459 0 R /XYZ 99.895 365.005 null] >> endobj -1453 0 obj << -/Font << /F16 531 0 R /F30 734 0 R /F8 534 0 R /F27 533 0 R /F11 719 0 R /F14 737 0 R >> +1458 0 obj << +/Font << /F16 535 0 R /F30 739 0 R /F8 538 0 R /F27 537 0 R /F11 724 0 R /F14 742 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1462 0 obj << +1467 0 obj << /Length 2160 >> stream @@ -16914,24 +16988,24 @@ BT ET endstream endobj -1461 0 obj << +1466 0 obj << /Type /Page -/Contents 1462 0 R -/Resources 1460 0 R +/Contents 1467 0 R +/Resources 1465 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1446 0 R +/Parent 1451 0 R >> endobj -1463 0 obj << -/D [1461 0 R /XYZ 150.705 740.998 null] +1468 0 obj << +/D [1466 0 R /XYZ 150.705 740.998 null] >> endobj -394 0 obj << -/D [1461 0 R /XYZ 150.705 697.37 null] +398 0 obj << +/D [1466 0 R /XYZ 150.705 697.37 null] >> endobj -1460 0 obj << -/Font << /F16 531 0 R /F30 734 0 R /F8 534 0 R /F27 533 0 R >> +1465 0 obj << +/Font << /F16 535 0 R /F30 739 0 R /F8 538 0 R /F27 537 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1466 0 obj << +1471 0 obj << /Length 3020 >> stream @@ -16984,24 +17058,24 @@ BT ET endstream endobj -1465 0 obj << +1470 0 obj << /Type /Page -/Contents 1466 0 R -/Resources 1464 0 R +/Contents 1471 0 R +/Resources 1469 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1446 0 R +/Parent 1451 0 R >> endobj -1467 0 obj << -/D [1465 0 R /XYZ 99.895 740.998 null] +1472 0 obj << +/D [1470 0 R /XYZ 99.895 740.998 null] >> endobj -398 0 obj << -/D [1465 0 R /XYZ 99.895 697.37 null] +402 0 obj << +/D [1470 0 R /XYZ 99.895 697.37 null] >> endobj -1464 0 obj << -/Font << /F16 531 0 R /F30 734 0 R /F8 534 0 R /F11 719 0 R /F27 533 0 R /F14 737 0 R >> +1469 0 obj << +/Font << /F16 535 0 R /F30 739 0 R /F8 538 0 R /F11 724 0 R /F27 537 0 R /F14 742 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1470 0 obj << +1475 0 obj << /Length 1202 >> stream @@ -17036,24 +17110,24 @@ BT ET endstream endobj -1469 0 obj << +1474 0 obj << /Type /Page -/Contents 1470 0 R -/Resources 1468 0 R +/Contents 1475 0 R +/Resources 1473 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1446 0 R +/Parent 1451 0 R >> endobj -1471 0 obj << -/D [1469 0 R /XYZ 150.705 740.998 null] +1476 0 obj << +/D [1474 0 R /XYZ 150.705 740.998 null] >> endobj -402 0 obj << -/D [1469 0 R /XYZ 150.705 697.37 null] +406 0 obj << +/D [1474 0 R /XYZ 150.705 697.37 null] >> endobj -1468 0 obj << -/Font << /F16 531 0 R /F30 734 0 R /F8 534 0 R /F27 533 0 R >> +1473 0 obj << +/Font << /F16 535 0 R /F30 739 0 R /F8 538 0 R /F27 537 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1474 0 obj << +1479 0 obj << /Length 1484 >> stream @@ -17088,24 +17162,24 @@ BT ET endstream endobj -1473 0 obj << +1478 0 obj << /Type /Page -/Contents 1474 0 R -/Resources 1472 0 R +/Contents 1479 0 R +/Resources 1477 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1476 0 R +/Parent 1481 0 R >> endobj -1475 0 obj << -/D [1473 0 R /XYZ 99.895 740.998 null] +1480 0 obj << +/D [1478 0 R /XYZ 99.895 740.998 null] >> endobj -406 0 obj << -/D [1473 0 R /XYZ 99.895 697.37 null] +410 0 obj << +/D [1478 0 R /XYZ 99.895 697.37 null] >> endobj -1472 0 obj << -/Font << /F16 531 0 R /F30 734 0 R /F8 534 0 R /F27 533 0 R >> +1477 0 obj << +/Font << /F16 535 0 R /F30 739 0 R /F8 538 0 R /F27 537 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1479 0 obj << +1484 0 obj << /Length 1357 >> stream @@ -17140,24 +17214,24 @@ BT ET endstream endobj -1478 0 obj << +1483 0 obj << /Type /Page -/Contents 1479 0 R -/Resources 1477 0 R +/Contents 1484 0 R +/Resources 1482 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1476 0 R +/Parent 1481 0 R >> endobj -1480 0 obj << -/D [1478 0 R /XYZ 150.705 740.998 null] +1485 0 obj << +/D [1483 0 R /XYZ 150.705 740.998 null] >> endobj -410 0 obj << -/D [1478 0 R /XYZ 150.705 697.37 null] +414 0 obj << +/D [1483 0 R /XYZ 150.705 697.37 null] >> endobj -1477 0 obj << -/Font << /F16 531 0 R /F30 734 0 R /F8 534 0 R /F27 533 0 R >> +1482 0 obj << +/Font << /F16 535 0 R /F30 739 0 R /F8 538 0 R /F27 537 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1483 0 obj << +1488 0 obj << /Length 4552 >> stream @@ -17207,24 +17281,24 @@ BT ET endstream endobj -1482 0 obj << +1487 0 obj << /Type /Page -/Contents 1483 0 R -/Resources 1481 0 R +/Contents 1488 0 R +/Resources 1486 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1476 0 R +/Parent 1481 0 R >> endobj -1484 0 obj << -/D [1482 0 R /XYZ 99.895 740.998 null] +1489 0 obj << +/D [1487 0 R /XYZ 99.895 740.998 null] >> endobj -414 0 obj << -/D [1482 0 R /XYZ 99.895 697.37 null] +418 0 obj << +/D [1487 0 R /XYZ 99.895 697.37 null] >> endobj -1481 0 obj << -/Font << /F16 531 0 R /F30 734 0 R /F8 534 0 R /F27 533 0 R /F11 719 0 R /F14 737 0 R >> +1486 0 obj << +/Font << /F16 535 0 R /F30 739 0 R /F8 538 0 R /F27 537 0 R /F11 724 0 R /F14 742 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1487 0 obj << +1492 0 obj << /Length 5199 >> stream @@ -17282,30 +17356,30 @@ BT ET endstream endobj -1486 0 obj << +1491 0 obj << /Type /Page -/Contents 1487 0 R -/Resources 1485 0 R +/Contents 1492 0 R +/Resources 1490 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1476 0 R +/Parent 1481 0 R >> endobj -1488 0 obj << -/D [1486 0 R /XYZ 150.705 740.998 null] +1493 0 obj << +/D [1491 0 R /XYZ 150.705 740.998 null] >> endobj -418 0 obj << -/D [1486 0 R /XYZ 150.705 697.37 null] +422 0 obj << +/D [1491 0 R /XYZ 150.705 697.37 null] >> endobj -1489 0 obj << -/D [1486 0 R /XYZ 150.705 247.391 null] +1494 0 obj << +/D [1491 0 R /XYZ 150.705 247.391 null] >> endobj -1490 0 obj << -/D [1486 0 R /XYZ 150.705 213.573 null] +1495 0 obj << +/D [1491 0 R /XYZ 150.705 213.573 null] >> endobj -1485 0 obj << -/Font << /F16 531 0 R /F30 734 0 R /F8 534 0 R /F27 533 0 R /F14 737 0 R /F11 719 0 R >> +1490 0 obj << +/Font << /F16 535 0 R /F30 739 0 R /F8 538 0 R /F27 537 0 R /F14 742 0 R /F11 724 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1493 0 obj << +1498 0 obj << /Length 5151 >> stream @@ -17363,30 +17437,30 @@ BT ET endstream endobj -1492 0 obj << +1497 0 obj << /Type /Page -/Contents 1493 0 R -/Resources 1491 0 R +/Contents 1498 0 R +/Resources 1496 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1476 0 R +/Parent 1481 0 R >> endobj -1494 0 obj << -/D [1492 0 R /XYZ 99.895 740.998 null] +1499 0 obj << +/D [1497 0 R /XYZ 99.895 740.998 null] >> endobj -422 0 obj << -/D [1492 0 R /XYZ 99.895 697.37 null] +426 0 obj << +/D [1497 0 R /XYZ 99.895 697.37 null] >> endobj -1495 0 obj << -/D [1492 0 R /XYZ 99.895 247.391 null] +1500 0 obj << +/D [1497 0 R /XYZ 99.895 247.391 null] >> endobj -1496 0 obj << -/D [1492 0 R /XYZ 99.895 213.573 null] +1501 0 obj << +/D [1497 0 R /XYZ 99.895 213.573 null] >> endobj -1491 0 obj << -/Font << /F16 531 0 R /F30 734 0 R /F8 534 0 R /F27 533 0 R /F14 737 0 R /F11 719 0 R >> +1496 0 obj << +/Font << /F16 535 0 R /F30 739 0 R /F8 538 0 R /F27 537 0 R /F14 742 0 R /F11 724 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1499 0 obj << +1504 0 obj << /Length 5183 >> stream @@ -17444,30 +17518,30 @@ BT ET endstream endobj -1498 0 obj << +1503 0 obj << /Type /Page -/Contents 1499 0 R -/Resources 1497 0 R +/Contents 1504 0 R +/Resources 1502 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1476 0 R +/Parent 1481 0 R >> endobj -1500 0 obj << -/D [1498 0 R /XYZ 150.705 740.998 null] +1505 0 obj << +/D [1503 0 R /XYZ 150.705 740.998 null] >> endobj -426 0 obj << -/D [1498 0 R /XYZ 150.705 697.37 null] +430 0 obj << +/D [1503 0 R /XYZ 150.705 697.37 null] >> endobj -1501 0 obj << -/D [1498 0 R /XYZ 150.705 247.391 null] +1506 0 obj << +/D [1503 0 R /XYZ 150.705 247.391 null] >> endobj -1502 0 obj << -/D [1498 0 R /XYZ 150.705 213.573 null] +1507 0 obj << +/D [1503 0 R /XYZ 150.705 213.573 null] >> endobj -1497 0 obj << -/Font << /F16 531 0 R /F30 734 0 R /F8 534 0 R /F27 533 0 R /F14 737 0 R /F11 719 0 R >> +1502 0 obj << +/Font << /F16 535 0 R /F30 739 0 R /F8 538 0 R /F27 537 0 R /F14 742 0 R /F11 724 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1505 0 obj << +1510 0 obj << /Length 5239 >> stream @@ -17525,30 +17599,30 @@ BT ET endstream endobj -1504 0 obj << +1509 0 obj << /Type /Page -/Contents 1505 0 R -/Resources 1503 0 R +/Contents 1510 0 R +/Resources 1508 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1509 0 R +/Parent 1514 0 R >> endobj -1506 0 obj << -/D [1504 0 R /XYZ 99.895 740.998 null] +1511 0 obj << +/D [1509 0 R /XYZ 99.895 740.998 null] >> endobj -430 0 obj << -/D [1504 0 R /XYZ 99.895 697.37 null] +434 0 obj << +/D [1509 0 R /XYZ 99.895 697.37 null] >> endobj -1507 0 obj << -/D [1504 0 R /XYZ 99.895 235.436 null] +1512 0 obj << +/D [1509 0 R /XYZ 99.895 235.436 null] >> endobj -1508 0 obj << -/D [1504 0 R /XYZ 99.895 201.618 null] +1513 0 obj << +/D [1509 0 R /XYZ 99.895 201.618 null] >> endobj -1503 0 obj << -/Font << /F16 531 0 R /F30 734 0 R /F8 534 0 R /F27 533 0 R /F14 737 0 R /F11 719 0 R >> +1508 0 obj << +/Font << /F16 535 0 R /F30 739 0 R /F8 538 0 R /F27 537 0 R /F14 742 0 R /F11 724 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1512 0 obj << +1517 0 obj << /Length 5273 >> stream @@ -17606,30 +17680,30 @@ BT ET endstream endobj -1511 0 obj << +1516 0 obj << /Type /Page -/Contents 1512 0 R -/Resources 1510 0 R +/Contents 1517 0 R +/Resources 1515 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1509 0 R +/Parent 1514 0 R >> endobj -1513 0 obj << -/D [1511 0 R /XYZ 150.705 740.998 null] +1518 0 obj << +/D [1516 0 R /XYZ 150.705 740.998 null] >> endobj -434 0 obj << -/D [1511 0 R /XYZ 150.705 697.37 null] +438 0 obj << +/D [1516 0 R /XYZ 150.705 697.37 null] >> endobj -1514 0 obj << -/D [1511 0 R /XYZ 150.705 235.436 null] +1519 0 obj << +/D [1516 0 R /XYZ 150.705 235.436 null] >> endobj -1515 0 obj << -/D [1511 0 R /XYZ 150.705 201.618 null] +1520 0 obj << +/D [1516 0 R /XYZ 150.705 201.618 null] >> endobj -1510 0 obj << -/Font << /F16 531 0 R /F30 734 0 R /F8 534 0 R /F27 533 0 R /F14 737 0 R /F11 719 0 R >> +1515 0 obj << +/Font << /F16 535 0 R /F30 739 0 R /F8 538 0 R /F27 537 0 R /F14 742 0 R /F11 724 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1518 0 obj << +1523 0 obj << /Length 5346 >> stream @@ -17684,27 +17758,27 @@ BT ET endstream endobj -1517 0 obj << +1522 0 obj << /Type /Page -/Contents 1518 0 R -/Resources 1516 0 R +/Contents 1523 0 R +/Resources 1521 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1509 0 R +/Parent 1514 0 R >> endobj -1519 0 obj << -/D [1517 0 R /XYZ 99.895 740.998 null] +1524 0 obj << +/D [1522 0 R /XYZ 99.895 740.998 null] >> endobj -438 0 obj << -/D [1517 0 R /XYZ 99.895 697.37 null] +442 0 obj << +/D [1522 0 R /XYZ 99.895 697.37 null] >> endobj -1520 0 obj << -/D [1517 0 R /XYZ 99.895 223.48 null] +1525 0 obj << +/D [1522 0 R /XYZ 99.895 223.48 null] >> endobj -1516 0 obj << -/Font << /F16 531 0 R /F30 734 0 R /F8 534 0 R /F27 533 0 R /F11 719 0 R /F14 737 0 R >> +1521 0 obj << +/Font << /F16 535 0 R /F30 739 0 R /F8 538 0 R /F27 537 0 R /F11 724 0 R /F14 742 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1523 0 obj << +1528 0 obj << /Length 5364 >> stream @@ -17758,27 +17832,27 @@ BT ET endstream endobj -1522 0 obj << +1527 0 obj << /Type /Page -/Contents 1523 0 R -/Resources 1521 0 R +/Contents 1528 0 R +/Resources 1526 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1509 0 R +/Parent 1514 0 R >> endobj -1524 0 obj << -/D [1522 0 R /XYZ 150.705 740.998 null] +1529 0 obj << +/D [1527 0 R /XYZ 150.705 740.998 null] >> endobj -442 0 obj << -/D [1522 0 R /XYZ 150.705 697.37 null] +446 0 obj << +/D [1527 0 R /XYZ 150.705 697.37 null] >> endobj -1525 0 obj << -/D [1522 0 R /XYZ 150.705 223.48 null] +1530 0 obj << +/D [1527 0 R /XYZ 150.705 223.48 null] >> endobj -1521 0 obj << -/Font << /F16 531 0 R /F30 734 0 R /F8 534 0 R /F27 533 0 R /F11 719 0 R /F14 737 0 R >> +1526 0 obj << +/Font << /F16 535 0 R /F30 739 0 R /F8 538 0 R /F27 537 0 R /F11 724 0 R /F14 742 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1530 0 obj << +1535 0 obj << /Length 6381 >> stream @@ -17800,39 +17874,39 @@ BT ET endstream endobj -1529 0 obj << +1534 0 obj << /Type /Page -/Contents 1530 0 R -/Resources 1528 0 R +/Contents 1535 0 R +/Resources 1533 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1509 0 R -/Annots [ 1526 0 R 1527 0 R ] +/Parent 1514 0 R +/Annots [ 1531 0 R 1532 0 R ] >> endobj -1526 0 obj << +1531 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [145.477 501.77 152.451 512.895] /Subtype /Link /A << /S /GoTo /D (figure.9) >> >> endobj -1527 0 obj << +1532 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [146.734 346.63 158.689 357.478] /Subtype /Link /A << /S /GoTo /D (figure.10) >> >> endobj -1531 0 obj << -/D [1529 0 R /XYZ 99.895 740.998 null] +1536 0 obj << +/D [1534 0 R /XYZ 99.895 740.998 null] >> endobj -446 0 obj << -/D [1529 0 R /XYZ 99.895 716.092 null] +450 0 obj << +/D [1534 0 R /XYZ 99.895 716.092 null] >> endobj -1528 0 obj << -/Font << /F16 531 0 R /F8 534 0 R /F30 734 0 R >> +1533 0 obj << +/Font << /F16 535 0 R /F8 538 0 R /F30 739 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1536 0 obj << +1541 0 obj << /Length 7110 >> stream @@ -17983,102 +18057,102 @@ BT ET endstream endobj -1535 0 obj << +1540 0 obj << /Type /Page -/Contents 1536 0 R -/Resources 1534 0 R +/Contents 1541 0 R +/Resources 1539 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1509 0 R ->> endobj -1537 0 obj << -/D [1535 0 R /XYZ 150.705 740.998 null] ->> endobj -1538 0 obj << -/D [1535 0 R /XYZ 159.073 687.737 null] ->> endobj -1539 0 obj << -/D [1535 0 R /XYZ 159.073 691.025 null] ->> endobj -1541 0 obj << -/D [1535 0 R /XYZ 159.073 680.066 null] +/Parent 1514 0 R >> endobj 1542 0 obj << -/D [1535 0 R /XYZ 159.073 669.107 null] +/D [1540 0 R /XYZ 150.705 740.998 null] >> endobj 1543 0 obj << -/D [1535 0 R /XYZ 159.073 658.148 null] +/D [1540 0 R /XYZ 159.073 687.737 null] >> endobj 1544 0 obj << -/D [1535 0 R /XYZ 159.073 647.189 null] ->> endobj -1545 0 obj << -/D [1535 0 R /XYZ 159.073 636.23 null] +/D [1540 0 R /XYZ 159.073 691.025 null] >> endobj 1546 0 obj << -/D [1535 0 R /XYZ 159.073 625.271 null] +/D [1540 0 R /XYZ 159.073 680.066 null] >> endobj 1547 0 obj << -/D [1535 0 R /XYZ 159.073 614.312 null] +/D [1540 0 R /XYZ 159.073 669.107 null] >> endobj 1548 0 obj << -/D [1535 0 R /XYZ 159.073 603.353 null] +/D [1540 0 R /XYZ 159.073 658.148 null] >> endobj 1549 0 obj << -/D [1535 0 R /XYZ 159.073 592.394 null] +/D [1540 0 R /XYZ 159.073 647.189 null] >> endobj 1550 0 obj << -/D [1535 0 R /XYZ 159.073 581.436 null] +/D [1540 0 R /XYZ 159.073 636.23 null] >> endobj 1551 0 obj << -/D [1535 0 R /XYZ 159.073 570.477 null] +/D [1540 0 R /XYZ 159.073 625.271 null] >> endobj 1552 0 obj << -/D [1535 0 R /XYZ 159.073 559.518 null] +/D [1540 0 R /XYZ 159.073 614.312 null] >> endobj 1553 0 obj << -/D [1535 0 R /XYZ 159.073 548.559 null] +/D [1540 0 R /XYZ 159.073 603.353 null] >> endobj 1554 0 obj << -/D [1535 0 R /XYZ 159.073 537.6 null] +/D [1540 0 R /XYZ 159.073 592.394 null] >> endobj 1555 0 obj << -/D [1535 0 R /XYZ 159.073 526.641 null] +/D [1540 0 R /XYZ 159.073 581.436 null] >> endobj 1556 0 obj << -/D [1535 0 R /XYZ 159.073 515.682 null] +/D [1540 0 R /XYZ 159.073 570.477 null] >> endobj 1557 0 obj << -/D [1535 0 R /XYZ 159.073 504.723 null] +/D [1540 0 R /XYZ 159.073 559.518 null] >> endobj 1558 0 obj << -/D [1535 0 R /XYZ 159.073 493.764 null] +/D [1540 0 R /XYZ 159.073 548.559 null] >> endobj 1559 0 obj << -/D [1535 0 R /XYZ 159.073 482.805 null] +/D [1540 0 R /XYZ 159.073 537.6 null] >> endobj 1560 0 obj << -/D [1535 0 R /XYZ 159.073 471.847 null] +/D [1540 0 R /XYZ 159.073 526.641 null] >> endobj 1561 0 obj << -/D [1535 0 R /XYZ 159.073 460.888 null] +/D [1540 0 R /XYZ 159.073 515.682 null] >> endobj 1562 0 obj << -/D [1535 0 R /XYZ 159.073 449.929 null] +/D [1540 0 R /XYZ 159.073 504.723 null] >> endobj 1563 0 obj << -/D [1535 0 R /XYZ 159.073 438.97 null] +/D [1540 0 R /XYZ 159.073 493.764 null] >> endobj -1532 0 obj << -/D [1535 0 R /XYZ 194.261 394.492 null] +1564 0 obj << +/D [1540 0 R /XYZ 159.073 482.805 null] >> endobj -1533 0 obj << -/D [1535 0 R /XYZ 200.884 149.223 null] +1565 0 obj << +/D [1540 0 R /XYZ 159.073 471.847 null] >> endobj -1534 0 obj << -/Font << /F52 1540 0 R /F45 1111 0 R /F8 534 0 R /F30 734 0 R >> +1566 0 obj << +/D [1540 0 R /XYZ 159.073 460.888 null] +>> endobj +1567 0 obj << +/D [1540 0 R /XYZ 159.073 449.929 null] +>> endobj +1568 0 obj << +/D [1540 0 R /XYZ 159.073 438.97 null] +>> endobj +1537 0 obj << +/D [1540 0 R /XYZ 194.261 394.492 null] +>> endobj +1538 0 obj << +/D [1540 0 R /XYZ 200.884 149.223 null] +>> endobj +1539 0 obj << +/Font << /F52 1545 0 R /F45 1116 0 R /F8 538 0 R /F30 739 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1566 0 obj << +1571 0 obj << /Length 3725 >> stream @@ -18189,30 +18263,30 @@ BT ET endstream endobj -1565 0 obj << +1570 0 obj << /Type /Page -/Contents 1566 0 R -/Resources 1564 0 R +/Contents 1571 0 R +/Resources 1569 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1570 0 R +/Parent 1575 0 R >> endobj -1567 0 obj << -/D [1565 0 R /XYZ 99.895 740.998 null] +1572 0 obj << +/D [1570 0 R /XYZ 99.895 740.998 null] >> endobj -450 0 obj << -/D [1565 0 R /XYZ 99.895 644.457 null] +454 0 obj << +/D [1570 0 R /XYZ 99.895 644.457 null] >> endobj -1568 0 obj << -/D [1565 0 R /XYZ 99.895 638.48 null] +1573 0 obj << +/D [1570 0 R /XYZ 99.895 638.48 null] >> endobj -1569 0 obj << -/D [1565 0 R /XYZ 99.895 638.48 null] +1574 0 obj << +/D [1570 0 R /XYZ 99.895 638.48 null] >> endobj -1564 0 obj << -/Font << /F16 531 0 R /F27 533 0 R /F8 534 0 R >> +1569 0 obj << +/Font << /F16 535 0 R /F27 537 0 R /F8 538 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1573 0 obj << +1578 0 obj << /Length 1400 >> stream @@ -18255,30 +18329,30 @@ BT ET endstream endobj -1572 0 obj << +1577 0 obj << /Type /Page -/Contents 1573 0 R -/Resources 1571 0 R +/Contents 1578 0 R +/Resources 1576 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1570 0 R +/Parent 1575 0 R >> endobj -1574 0 obj << -/D [1572 0 R /XYZ 150.705 740.998 null] +1579 0 obj << +/D [1577 0 R /XYZ 150.705 740.998 null] >> endobj -454 0 obj << -/D [1572 0 R /XYZ 150.705 644.457 null] +458 0 obj << +/D [1577 0 R /XYZ 150.705 644.457 null] >> endobj -1575 0 obj << -/D [1572 0 R /XYZ 150.705 638.48 null] +1580 0 obj << +/D [1577 0 R /XYZ 150.705 638.48 null] >> endobj -1576 0 obj << -/D [1572 0 R /XYZ 150.705 638.48 null] +1581 0 obj << +/D [1577 0 R /XYZ 150.705 638.48 null] >> endobj -1571 0 obj << -/Font << /F16 531 0 R /F27 533 0 R /F8 534 0 R >> +1576 0 obj << +/Font << /F16 535 0 R /F27 537 0 R /F8 538 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1579 0 obj << +1584 0 obj << /Length 1631 >> stream @@ -18335,30 +18409,30 @@ BT ET endstream endobj -1578 0 obj << +1583 0 obj << /Type /Page -/Contents 1579 0 R -/Resources 1577 0 R +/Contents 1584 0 R +/Resources 1582 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1570 0 R +/Parent 1575 0 R >> endobj -1580 0 obj << -/D [1578 0 R /XYZ 99.895 740.998 null] +1585 0 obj << +/D [1583 0 R /XYZ 99.895 740.998 null] >> endobj -458 0 obj << -/D [1578 0 R /XYZ 99.895 641.668 null] +462 0 obj << +/D [1583 0 R /XYZ 99.895 641.668 null] >> endobj -1581 0 obj << -/D [1578 0 R /XYZ 99.895 635.69 null] +1586 0 obj << +/D [1583 0 R /XYZ 99.895 635.69 null] >> endobj -1582 0 obj << -/D [1578 0 R /XYZ 99.895 638.48 null] +1587 0 obj << +/D [1583 0 R /XYZ 99.895 638.48 null] >> endobj -1577 0 obj << -/Font << /F16 531 0 R /F27 533 0 R /F8 534 0 R >> +1582 0 obj << +/Font << /F16 535 0 R /F27 537 0 R /F8 538 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1585 0 obj << +1590 0 obj << /Length 2106 >> stream @@ -18429,30 +18503,30 @@ BT ET endstream endobj -1584 0 obj << +1589 0 obj << /Type /Page -/Contents 1585 0 R -/Resources 1583 0 R +/Contents 1590 0 R +/Resources 1588 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1570 0 R +/Parent 1575 0 R >> endobj -1586 0 obj << -/D [1584 0 R /XYZ 150.705 740.998 null] +1591 0 obj << +/D [1589 0 R /XYZ 150.705 740.998 null] >> endobj -462 0 obj << -/D [1584 0 R /XYZ 150.705 641.668 null] +466 0 obj << +/D [1589 0 R /XYZ 150.705 641.668 null] >> endobj -1587 0 obj << -/D [1584 0 R /XYZ 150.705 635.69 null] +1592 0 obj << +/D [1589 0 R /XYZ 150.705 635.69 null] >> endobj -1588 0 obj << -/D [1584 0 R /XYZ 150.705 638.48 null] +1593 0 obj << +/D [1589 0 R /XYZ 150.705 638.48 null] >> endobj -1583 0 obj << -/Font << /F16 531 0 R /F27 533 0 R /F8 534 0 R /F30 734 0 R >> +1588 0 obj << +/Font << /F16 535 0 R /F27 537 0 R /F8 538 0 R /F30 739 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1591 0 obj << +1596 0 obj << /Length 525 >> stream @@ -18466,24 +18540,24 @@ BT ET endstream endobj -1590 0 obj << +1595 0 obj << /Type /Page -/Contents 1591 0 R -/Resources 1589 0 R +/Contents 1596 0 R +/Resources 1594 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1570 0 R +/Parent 1575 0 R >> endobj -1592 0 obj << -/D [1590 0 R /XYZ 99.895 740.998 null] +1597 0 obj << +/D [1595 0 R /XYZ 99.895 740.998 null] >> endobj -466 0 obj << -/D [1590 0 R /XYZ 99.895 716.092 null] +470 0 obj << +/D [1595 0 R /XYZ 99.895 716.092 null] >> endobj -1589 0 obj << -/Font << /F16 531 0 R /F8 534 0 R /F30 734 0 R >> +1594 0 obj << +/Font << /F16 535 0 R /F8 538 0 R /F30 739 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1596 0 obj << +1601 0 obj << /Length 4778 >> stream @@ -18565,38 +18639,38 @@ BT ET endstream endobj -1595 0 obj << +1600 0 obj << /Type /Page -/Contents 1596 0 R -/Resources 1594 0 R +/Contents 1601 0 R +/Resources 1599 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1570 0 R -/Annots [ 1593 0 R ] +/Parent 1575 0 R +/Annots [ 1598 0 R ] >> endobj -1593 0 obj << +1598 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [345.53 449.411 423.049 460.536] /Subtype /Link /A << /S /GoTo /D (spdata) >> >> endobj -1597 0 obj << -/D [1595 0 R /XYZ 150.705 740.998 null] +1602 0 obj << +/D [1600 0 R /XYZ 150.705 740.998 null] >> endobj -470 0 obj << -/D [1595 0 R /XYZ 150.705 683.422 null] +474 0 obj << +/D [1600 0 R /XYZ 150.705 683.422 null] >> endobj -1598 0 obj << -/D [1595 0 R /XYZ 150.705 677.445 null] +1603 0 obj << +/D [1600 0 R /XYZ 150.705 677.445 null] >> endobj -1599 0 obj << -/D [1595 0 R /XYZ 150.705 679.769 null] +1604 0 obj << +/D [1600 0 R /XYZ 150.705 679.769 null] >> endobj -1594 0 obj << -/Font << /F16 531 0 R /F27 533 0 R /F8 534 0 R /F30 734 0 R >> +1599 0 obj << +/Font << /F16 535 0 R /F27 537 0 R /F8 538 0 R /F30 739 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1603 0 obj << +1608 0 obj << /Length 5258 >> stream @@ -18682,38 +18756,38 @@ BT ET endstream endobj -1602 0 obj << +1607 0 obj << /Type /Page -/Contents 1603 0 R -/Resources 1601 0 R +/Contents 1608 0 R +/Resources 1606 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1607 0 R -/Annots [ 1600 0 R ] +/Parent 1612 0 R +/Annots [ 1605 0 R ] >> endobj -1600 0 obj << +1605 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [294.721 582.91 372.239 594.035] /Subtype /Link /A << /S /GoTo /D (spdata) >> >> endobj -1604 0 obj << -/D [1602 0 R /XYZ 99.895 740.998 null] +1609 0 obj << +/D [1607 0 R /XYZ 99.895 740.998 null] +>> endobj +478 0 obj << +/D [1607 0 R /XYZ 99.895 683.422 null] >> endobj -474 0 obj << -/D [1602 0 R /XYZ 99.895 683.422 null] +1610 0 obj << +/D [1607 0 R /XYZ 99.895 677.445 null] >> endobj -1605 0 obj << -/D [1602 0 R /XYZ 99.895 677.445 null] +1611 0 obj << +/D [1607 0 R /XYZ 99.895 679.769 null] >> endobj 1606 0 obj << -/D [1602 0 R /XYZ 99.895 679.769 null] ->> endobj -1601 0 obj << -/Font << /F16 531 0 R /F27 533 0 R /F8 534 0 R /F30 734 0 R >> +/Font << /F16 535 0 R /F27 537 0 R /F8 538 0 R /F30 739 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1611 0 obj << +1616 0 obj << /Length 3654 >> stream @@ -18801,38 +18875,38 @@ BT ET endstream endobj -1610 0 obj << +1615 0 obj << /Type /Page -/Contents 1611 0 R -/Resources 1609 0 R +/Contents 1616 0 R +/Resources 1614 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1607 0 R -/Annots [ 1608 0 R ] +/Parent 1612 0 R +/Annots [ 1613 0 R ] >> endobj -1608 0 obj << +1613 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [345.53 449.411 423.049 460.536] /Subtype /Link /A << /S /GoTo /D (spdata) >> >> endobj -1612 0 obj << -/D [1610 0 R /XYZ 150.705 740.998 null] +1617 0 obj << +/D [1615 0 R /XYZ 150.705 740.998 null] >> endobj -478 0 obj << -/D [1610 0 R /XYZ 150.705 685.747 null] +482 0 obj << +/D [1615 0 R /XYZ 150.705 685.747 null] >> endobj -1613 0 obj << -/D [1610 0 R /XYZ 150.705 679.769 null] +1618 0 obj << +/D [1615 0 R /XYZ 150.705 679.769 null] >> endobj -1614 0 obj << -/D [1610 0 R /XYZ 150.705 679.769 null] +1619 0 obj << +/D [1615 0 R /XYZ 150.705 679.769 null] >> endobj -1609 0 obj << -/Font << /F16 531 0 R /F27 533 0 R /F8 534 0 R /F30 734 0 R >> +1614 0 obj << +/Font << /F16 535 0 R /F27 537 0 R /F8 538 0 R /F30 739 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1617 0 obj << +1622 0 obj << /Length 3705 >> stream @@ -18902,30 +18976,30 @@ BT ET endstream endobj -1616 0 obj << +1621 0 obj << /Type /Page -/Contents 1617 0 R -/Resources 1615 0 R +/Contents 1622 0 R +/Resources 1620 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1607 0 R +/Parent 1612 0 R >> endobj -1618 0 obj << -/D [1616 0 R /XYZ 99.895 740.998 null] +1623 0 obj << +/D [1621 0 R /XYZ 99.895 740.998 null] >> endobj -482 0 obj << -/D [1616 0 R /XYZ 99.895 685.747 null] +486 0 obj << +/D [1621 0 R /XYZ 99.895 685.747 null] >> endobj -1619 0 obj << -/D [1616 0 R /XYZ 99.895 679.769 null] +1624 0 obj << +/D [1621 0 R /XYZ 99.895 679.769 null] >> endobj -1620 0 obj << -/D [1616 0 R /XYZ 99.895 679.769 null] +1625 0 obj << +/D [1621 0 R /XYZ 99.895 679.769 null] >> endobj -1615 0 obj << -/Font << /F16 531 0 R /F27 533 0 R /F8 534 0 R /F30 734 0 R >> +1620 0 obj << +/Font << /F16 535 0 R /F27 537 0 R /F8 538 0 R /F30 739 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1624 0 obj << +1629 0 obj << /Length 4185 >> stream @@ -19017,38 +19091,38 @@ BT ET endstream endobj -1623 0 obj << +1628 0 obj << /Type /Page -/Contents 1624 0 R -/Resources 1622 0 R +/Contents 1629 0 R +/Resources 1627 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1607 0 R -/Annots [ 1621 0 R ] +/Parent 1612 0 R +/Annots [ 1626 0 R ] >> endobj -1621 0 obj << +1626 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [345.53 582.91 423.049 594.035] /Subtype /Link /A << /S /GoTo /D (spdata) >> >> endobj -1625 0 obj << -/D [1623 0 R /XYZ 150.705 740.998 null] +1630 0 obj << +/D [1628 0 R /XYZ 150.705 740.998 null] >> endobj -486 0 obj << -/D [1623 0 R /XYZ 150.705 685.747 null] +490 0 obj << +/D [1628 0 R /XYZ 150.705 685.747 null] >> endobj -1626 0 obj << -/D [1623 0 R /XYZ 150.705 679.769 null] +1631 0 obj << +/D [1628 0 R /XYZ 150.705 679.769 null] >> endobj -1627 0 obj << -/D [1623 0 R /XYZ 150.705 679.769 null] +1632 0 obj << +/D [1628 0 R /XYZ 150.705 679.769 null] >> endobj -1622 0 obj << -/Font << /F16 531 0 R /F27 533 0 R /F8 534 0 R /F30 734 0 R >> +1627 0 obj << +/Font << /F16 535 0 R /F27 537 0 R /F8 538 0 R /F30 739 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1630 0 obj << +1635 0 obj << /Length 3381 >> stream @@ -19118,30 +19192,30 @@ BT ET endstream endobj -1629 0 obj << +1634 0 obj << /Type /Page -/Contents 1630 0 R -/Resources 1628 0 R +/Contents 1635 0 R +/Resources 1633 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1607 0 R +/Parent 1612 0 R >> endobj -1631 0 obj << -/D [1629 0 R /XYZ 99.895 740.998 null] +1636 0 obj << +/D [1634 0 R /XYZ 99.895 740.998 null] >> endobj -490 0 obj << -/D [1629 0 R /XYZ 99.895 685.747 null] +494 0 obj << +/D [1634 0 R /XYZ 99.895 685.747 null] >> endobj -1632 0 obj << -/D [1629 0 R /XYZ 99.895 679.769 null] +1637 0 obj << +/D [1634 0 R /XYZ 99.895 679.769 null] >> endobj -1633 0 obj << -/D [1629 0 R /XYZ 99.895 679.769 null] +1638 0 obj << +/D [1634 0 R /XYZ 99.895 679.769 null] >> endobj -1628 0 obj << -/Font << /F16 531 0 R /F27 533 0 R /F8 534 0 R /F30 734 0 R >> +1633 0 obj << +/Font << /F16 535 0 R /F27 537 0 R /F8 538 0 R /F30 739 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1636 0 obj << +1641 0 obj << /Length 912 >> stream @@ -19163,24 +19237,24 @@ BT ET endstream endobj -1635 0 obj << +1640 0 obj << /Type /Page -/Contents 1636 0 R -/Resources 1634 0 R +/Contents 1641 0 R +/Resources 1639 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1607 0 R +/Parent 1612 0 R >> endobj -1637 0 obj << -/D [1635 0 R /XYZ 150.705 740.998 null] +1642 0 obj << +/D [1640 0 R /XYZ 150.705 740.998 null] >> endobj -494 0 obj << -/D [1635 0 R /XYZ 150.705 716.092 null] +498 0 obj << +/D [1640 0 R /XYZ 150.705 716.092 null] >> endobj -1634 0 obj << -/Font << /F16 531 0 R /F8 534 0 R /F14 737 0 R /F30 734 0 R >> +1639 0 obj << +/Font << /F16 535 0 R /F8 538 0 R /F14 742 0 R /F30 739 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1642 0 obj << +1647 0 obj << /Length 4642 >> stream @@ -19269,42 +19343,42 @@ BT ET endstream endobj -1641 0 obj << +1646 0 obj << /Type /Page -/Contents 1642 0 R -/Resources 1640 0 R +/Contents 1647 0 R +/Resources 1645 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1645 0 R -/Annots [ 1638 0 R 1639 0 R ] +/Parent 1650 0 R +/Annots [ 1643 0 R 1644 0 R ] >> endobj -1638 0 obj << +1643 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [321.343 511.179 388.401 522.304] /Subtype /Link /A << /S /GoTo /D (precdata) >> >> endobj -1639 0 obj << +1644 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [168.831 421.792 175.293 433.832] /Subtype /Link /A << /S /GoTo /D (Hfootnote.3) >> >> endobj -1643 0 obj << -/D [1641 0 R /XYZ 99.895 740.998 null] +1648 0 obj << +/D [1646 0 R /XYZ 99.895 740.998 null] >> endobj -498 0 obj << -/D [1641 0 R /XYZ 99.895 697.37 null] +502 0 obj << +/D [1646 0 R /XYZ 99.895 697.37 null] >> endobj -1644 0 obj << -/D [1641 0 R /XYZ 115.138 129.79 null] +1649 0 obj << +/D [1646 0 R /XYZ 115.138 129.79 null] >> endobj -1640 0 obj << -/Font << /F16 531 0 R /F30 734 0 R /F27 533 0 R /F8 534 0 R /F11 719 0 R /F7 735 0 R /F32 738 0 R /F31 740 0 R >> +1645 0 obj << +/Font << /F16 535 0 R /F30 739 0 R /F27 537 0 R /F8 538 0 R /F11 724 0 R /F7 740 0 R /F32 743 0 R /F31 745 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1652 0 obj << +1657 0 obj << /Length 7157 >> stream @@ -19499,53 +19573,53 @@ BT ET endstream endobj -1651 0 obj << +1656 0 obj << /Type /Page -/Contents 1652 0 R -/Resources 1650 0 R +/Contents 1657 0 R +/Resources 1655 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1645 0 R -/Annots [ 1646 0 R 1647 0 R 1648 0 R 1649 0 R ] +/Parent 1650 0 R +/Annots [ 1651 0 R 1652 0 R 1653 0 R 1654 0 R ] >> endobj -1646 0 obj << +1651 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [368.666 586.895 446.184 598.02] /Subtype /Link /A << /S /GoTo /D (spdata) >> >> endobj -1647 0 obj << +1652 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [447.73 519.15 514.788 530.274] /Subtype /Link /A << /S /GoTo /D (precdata) >> >> endobj -1648 0 obj << +1653 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [422.298 451.404 489.356 462.529] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -1649 0 obj << +1654 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [369.385 226.248 436.443 237.373] /Subtype /Link /A << /S /GoTo /D (precdata) >> >> endobj -1653 0 obj << -/D [1651 0 R /XYZ 150.705 740.998 null] +1658 0 obj << +/D [1656 0 R /XYZ 150.705 740.998 null] >> endobj -502 0 obj << -/D [1651 0 R /XYZ 150.705 697.37 null] +506 0 obj << +/D [1656 0 R /XYZ 150.705 697.37 null] >> endobj -1650 0 obj << -/Font << /F16 531 0 R /F30 734 0 R /F27 533 0 R /F8 534 0 R >> +1655 0 obj << +/Font << /F16 535 0 R /F30 739 0 R /F27 537 0 R /F8 538 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1660 0 obj << +1665 0 obj << /Length 5988 >> stream @@ -19700,53 +19774,53 @@ BT ET endstream endobj -1659 0 obj << +1664 0 obj << /Type /Page -/Contents 1660 0 R -/Resources 1658 0 R +/Contents 1665 0 R +/Resources 1663 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1645 0 R -/Annots [ 1654 0 R 1655 0 R 1656 0 R 1657 0 R ] +/Parent 1650 0 R +/Annots [ 1659 0 R 1660 0 R 1661 0 R 1662 0 R ] >> endobj -1654 0 obj << +1659 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [321.343 574.94 388.401 586.065] /Subtype /Link /A << /S /GoTo /D (precdata) >> >> endobj -1655 0 obj << +1660 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [347.301 519.15 423.355 530.274] /Subtype /Link /A << /S /GoTo /D (vdata) >> >> endobj -1656 0 obj << +1661 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [324.885 463.359 391.943 474.484] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -1657 0 obj << +1662 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [347.301 274.069 423.355 285.194] /Subtype /Link /A << /S /GoTo /D (vdata) >> >> endobj -1661 0 obj << -/D [1659 0 R /XYZ 99.895 740.998 null] +1666 0 obj << +/D [1664 0 R /XYZ 99.895 740.998 null] >> endobj -506 0 obj << -/D [1659 0 R /XYZ 99.895 697.37 null] +510 0 obj << +/D [1664 0 R /XYZ 99.895 697.37 null] >> endobj -1658 0 obj << -/Font << /F16 531 0 R /F30 734 0 R /F27 533 0 R /F8 534 0 R >> +1663 0 obj << +/Font << /F16 535 0 R /F30 739 0 R /F27 537 0 R /F8 538 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1665 0 obj << +1670 0 obj << /Length 1996 >> stream @@ -19803,32 +19877,32 @@ BT ET endstream endobj -1664 0 obj << +1669 0 obj << /Type /Page -/Contents 1665 0 R -/Resources 1663 0 R +/Contents 1670 0 R +/Resources 1668 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1645 0 R -/Annots [ 1662 0 R ] +/Parent 1650 0 R +/Annots [ 1667 0 R ] >> endobj -1662 0 obj << +1667 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [372.153 560.993 439.211 572.118] /Subtype /Link /A << /S /GoTo /D (precdata) >> >> endobj -1666 0 obj << -/D [1664 0 R /XYZ 150.705 740.998 null] +1671 0 obj << +/D [1669 0 R /XYZ 150.705 740.998 null] >> endobj -510 0 obj << -/D [1664 0 R /XYZ 150.705 685.747 null] +514 0 obj << +/D [1669 0 R /XYZ 150.705 685.747 null] >> endobj -1663 0 obj << -/Font << /F16 531 0 R /F30 734 0 R /F27 533 0 R /F8 534 0 R >> +1668 0 obj << +/Font << /F16 535 0 R /F30 739 0 R /F27 537 0 R /F8 538 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1669 0 obj << +1674 0 obj << /Length 989 >> stream @@ -19867,24 +19941,24 @@ BT ET endstream endobj -1668 0 obj << +1673 0 obj << /Type /Page -/Contents 1669 0 R -/Resources 1667 0 R +/Contents 1674 0 R +/Resources 1672 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1645 0 R +/Parent 1650 0 R >> endobj -1670 0 obj << -/D [1668 0 R /XYZ 99.895 740.998 null] +1675 0 obj << +/D [1673 0 R /XYZ 99.895 740.998 null] >> endobj -514 0 obj << -/D [1668 0 R /XYZ 99.895 697.37 null] +518 0 obj << +/D [1673 0 R /XYZ 99.895 697.37 null] >> endobj -1667 0 obj << -/Font << /F16 531 0 R /F30 734 0 R /F27 533 0 R /F8 534 0 R >> +1672 0 obj << +/Font << /F16 535 0 R /F30 739 0 R /F27 537 0 R /F8 538 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1673 0 obj << +1678 0 obj << /Length 608 >> stream @@ -19898,24 +19972,24 @@ BT ET endstream endobj -1672 0 obj << +1677 0 obj << /Type /Page -/Contents 1673 0 R -/Resources 1671 0 R +/Contents 1678 0 R +/Resources 1676 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1645 0 R +/Parent 1650 0 R >> endobj -1674 0 obj << -/D [1672 0 R /XYZ 150.705 740.998 null] +1679 0 obj << +/D [1677 0 R /XYZ 150.705 740.998 null] >> endobj -518 0 obj << -/D [1672 0 R /XYZ 150.705 716.092 null] +522 0 obj << +/D [1677 0 R /XYZ 150.705 716.092 null] >> endobj -1671 0 obj << -/Font << /F16 531 0 R /F8 534 0 R /F30 734 0 R >> +1676 0 obj << +/Font << /F16 535 0 R /F8 538 0 R /F30 739 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1681 0 obj << +1686 0 obj << /Length 8495 >> stream @@ -20074,55 +20148,55 @@ BT ET endstream endobj -1680 0 obj << +1685 0 obj << /Type /Page -/Contents 1681 0 R -/Resources 1679 0 R +/Contents 1686 0 R +/Resources 1684 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1686 0 R -/Annots [ 1675 0 R 1676 0 R 1677 0 R ] +/Parent 1691 0 R +/Annots [ 1680 0 R 1681 0 R 1682 0 R ] >> endobj -1675 0 obj << +1680 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [294.721 250.725 372.239 261.849] /Subtype /Link /A << /S /GoTo /D (spdata) >> >> endobj -1676 0 obj << +1681 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [294.721 183.92 361.779 195.045] /Subtype /Link /A << /S /GoTo /D (precdata) >> >> endobj -1677 0 obj << +1682 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [347.301 117.115 423.355 128.24] /Subtype /Link /A << /S /GoTo /D (vdata) >> >> endobj -1682 0 obj << -/D [1680 0 R /XYZ 99.895 740.998 null] +1687 0 obj << +/D [1685 0 R /XYZ 99.895 740.998 null] >> endobj -522 0 obj << -/D [1680 0 R /XYZ 99.895 697.37 null] +526 0 obj << +/D [1685 0 R /XYZ 99.895 697.37 null] >> endobj -1683 0 obj << -/D [1680 0 R /XYZ 99.895 525.106 null] +1688 0 obj << +/D [1685 0 R /XYZ 99.895 525.106 null] >> endobj -1684 0 obj << -/D [1680 0 R /XYZ 99.895 525.106 null] +1689 0 obj << +/D [1685 0 R /XYZ 99.895 525.106 null] >> endobj -1685 0 obj << -/D [1680 0 R /XYZ 99.895 513.151 null] +1690 0 obj << +/D [1685 0 R /XYZ 99.895 513.151 null] >> endobj -1679 0 obj << -/Font << /F16 531 0 R /F8 534 0 R /F11 719 0 R /F14 737 0 R /F10 736 0 R /F7 735 0 R /F27 533 0 R /F30 734 0 R >> +1684 0 obj << +/Font << /F16 535 0 R /F8 538 0 R /F11 724 0 R /F14 742 0 R /F10 741 0 R /F7 740 0 R /F27 537 0 R /F30 739 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1691 0 obj << +1696 0 obj << /Length 6690 >> stream @@ -20245,43 +20319,43 @@ BT ET endstream endobj -1690 0 obj << +1695 0 obj << /Type /Page -/Contents 1691 0 R -/Resources 1689 0 R +/Contents 1696 0 R +/Resources 1694 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1686 0 R -/Annots [ 1678 0 R 1687 0 R 1688 0 R ] +/Parent 1691 0 R +/Annots [ 1683 0 R 1692 0 R 1693 0 R ] >> endobj -1678 0 obj << +1683 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [398.111 655.098 474.165 666.223] /Subtype /Link /A << /S /GoTo /D (vdata) >> >> endobj -1687 0 obj << +1692 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [345.53 520.602 412.588 531.727] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -1688 0 obj << +1693 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [398.111 117.115 474.165 128.24] /Subtype /Link /A << /S /GoTo /D (vdata) >> >> endobj -1692 0 obj << -/D [1690 0 R /XYZ 150.705 740.998 null] +1697 0 obj << +/D [1695 0 R /XYZ 150.705 740.998 null] >> endobj -1689 0 obj << -/Font << /F27 533 0 R /F8 534 0 R /F30 734 0 R /F11 719 0 R /F14 737 0 R >> +1694 0 obj << +/Font << /F27 537 0 R /F8 538 0 R /F30 739 0 R /F11 724 0 R /F14 742 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1695 0 obj << +1700 0 obj << /Length 2478 >> stream @@ -20310,21 +20384,21 @@ BT ET endstream endobj -1694 0 obj << +1699 0 obj << /Type /Page -/Contents 1695 0 R -/Resources 1693 0 R +/Contents 1700 0 R +/Resources 1698 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1686 0 R +/Parent 1691 0 R >> endobj -1696 0 obj << -/D [1694 0 R /XYZ 99.895 740.998 null] +1701 0 obj << +/D [1699 0 R /XYZ 99.895 740.998 null] >> endobj -1693 0 obj << -/Font << /F27 533 0 R /F8 534 0 R /F11 719 0 R >> +1698 0 obj << +/Font << /F27 537 0 R /F8 538 0 R /F11 724 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1699 0 obj << +1704 0 obj << /Length 80 >> stream @@ -20337,21 +20411,21 @@ BT ET endstream endobj -1698 0 obj << +1703 0 obj << /Type /Page -/Contents 1699 0 R -/Resources 1697 0 R +/Contents 1704 0 R +/Resources 1702 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1686 0 R +/Parent 1691 0 R >> endobj -1700 0 obj << -/D [1698 0 R /XYZ 150.705 740.998 null] +1705 0 obj << +/D [1703 0 R /XYZ 150.705 740.998 null] >> endobj -1697 0 obj << -/Font << /F8 534 0 R >> +1702 0 obj << +/Font << /F8 538 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1703 0 obj << +1708 0 obj << /Length 7014 >> stream @@ -20413,60 +20487,60 @@ BT ET endstream endobj -1702 0 obj << +1707 0 obj << /Type /Page -/Contents 1703 0 R -/Resources 1701 0 R +/Contents 1708 0 R +/Resources 1706 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1686 0 R +/Parent 1691 0 R >> endobj -1704 0 obj << -/D [1702 0 R /XYZ 99.895 740.998 null] +1709 0 obj << +/D [1707 0 R /XYZ 99.895 740.998 null] >> endobj -1705 0 obj << -/D [1702 0 R /XYZ 99.895 696.263 null] +1710 0 obj << +/D [1707 0 R /XYZ 99.895 696.263 null] >> endobj -703 0 obj << -/D [1702 0 R /XYZ 99.895 699.619 null] +708 0 obj << +/D [1707 0 R /XYZ 99.895 699.619 null] >> endobj -1706 0 obj << -/D [1702 0 R /XYZ 99.895 643.15 null] +1711 0 obj << +/D [1707 0 R /XYZ 99.895 643.15 null] >> endobj -756 0 obj << -/D [1702 0 R /XYZ 99.895 588.618 null] +761 0 obj << +/D [1707 0 R /XYZ 99.895 588.618 null] >> endobj -755 0 obj << -/D [1702 0 R /XYZ 99.895 534.087 null] +760 0 obj << +/D [1707 0 R /XYZ 99.895 534.087 null] >> endobj -709 0 obj << -/D [1702 0 R /XYZ 99.895 479.555 null] +714 0 obj << +/D [1707 0 R /XYZ 99.895 479.555 null] >> endobj -710 0 obj << -/D [1702 0 R /XYZ 99.895 436.978 null] +715 0 obj << +/D [1707 0 R /XYZ 99.895 436.978 null] >> endobj -727 0 obj << -/D [1702 0 R /XYZ 99.895 394.402 null] +732 0 obj << +/D [1707 0 R /XYZ 99.895 394.402 null] >> endobj -706 0 obj << -/D [1702 0 R /XYZ 99.895 351.272 null] +711 0 obj << +/D [1707 0 R /XYZ 99.895 351.272 null] >> endobj -707 0 obj << -/D [1702 0 R /XYZ 99.895 308.696 null] +712 0 obj << +/D [1707 0 R /XYZ 99.895 308.696 null] >> endobj -1707 0 obj << -/D [1702 0 R /XYZ 99.895 266.119 null] +1712 0 obj << +/D [1707 0 R /XYZ 99.895 266.119 null] >> endobj -702 0 obj << -/D [1702 0 R /XYZ 99.895 223.543 null] +707 0 obj << +/D [1707 0 R /XYZ 99.895 223.543 null] >> endobj -1708 0 obj << -/D [1702 0 R /XYZ 99.895 180.966 null] +1713 0 obj << +/D [1707 0 R /XYZ 99.895 180.966 null] >> endobj -1701 0 obj << -/Font << /F16 531 0 R /F8 534 0 R /F17 699 0 R >> +1706 0 obj << +/Font << /F16 535 0 R /F8 538 0 R /F17 704 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1711 0 obj << +1716 0 obj << /Length 3124 >> stream @@ -20507,93 +20581,93 @@ BT ET endstream endobj -1710 0 obj << +1715 0 obj << /Type /Page -/Contents 1711 0 R -/Resources 1709 0 R +/Contents 1716 0 R +/Resources 1714 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1686 0 R +/Parent 1691 0 R >> endobj -1712 0 obj << -/D [1710 0 R /XYZ 150.705 740.998 null] +1717 0 obj << +/D [1715 0 R /XYZ 150.705 740.998 null] >> endobj -854 0 obj << -/D [1710 0 R /XYZ 150.705 716.092 null] +865 0 obj << +/D [1715 0 R /XYZ 150.705 716.092 null] >> endobj -742 0 obj << -/D [1710 0 R /XYZ 150.705 688.251 null] +747 0 obj << +/D [1715 0 R /XYZ 150.705 688.251 null] >> endobj -708 0 obj << -/D [1710 0 R /XYZ 150.705 632.184 null] +713 0 obj << +/D [1715 0 R /XYZ 150.705 632.184 null] >> endobj -705 0 obj << -/D [1710 0 R /XYZ 150.705 590.562 null] +710 0 obj << +/D [1715 0 R /XYZ 150.705 590.562 null] >> endobj -701 0 obj << -/D [1710 0 R /XYZ 150.705 544.789 null] +706 0 obj << +/D [1715 0 R /XYZ 150.705 544.789 null] >> endobj -704 0 obj << -/D [1710 0 R /XYZ 150.705 512.909 null] +709 0 obj << +/D [1715 0 R /XYZ 150.705 512.909 null] >> endobj -1713 0 obj << -/D [1710 0 R /XYZ 150.705 480.475 null] +1718 0 obj << +/D [1715 0 R /XYZ 150.705 480.475 null] >> endobj -1709 0 obj << -/Font << /F8 534 0 R /F17 699 0 R /F30 734 0 R >> +1714 0 obj << +/Font << /F8 538 0 R /F17 704 0 R /F30 739 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1714 0 obj +1719 0 obj [575.2 657.4 525.9 657.4 543 361.6 591.7 657.4 328.7 361.6 624.5 328.7 986.1 657.4 591.7 657.4 624.5 488.1 466.8 460.2 657.4] endobj -1715 0 obj +1720 0 obj [285.5 399.7 399.7 513.9 799.4 285.5 342.6 285.5 513.9 513.9 513.9 513.9 513.9 513.9 513.9 513.9 513.9 513.9 513.9 285.5 285.5 285.5 799.4 485.3 485.3 799.4 770.7 727.9 742.3 785 699.4 670.8 806.5 770.7 371 528.1 799.2 642.3 942 770.7 799.4 699.4 799.4 756.5 571 742.3 770.7 770.7 1056.2 770.7 770.7 628.1 285.5 513.9 285.5 513.9 285.5 285.5 513.9 571 456.8 571 457.2 314 513.9 571 285.5 314 542.4 285.5 856.5 571 513.9 571 542.4 402 405.4 399.7 571 542.4 742.3 542.4 542.4 456.8] endobj -1716 0 obj +1721 0 obj [892.9 339.3 892.9 585.3 892.9 585.3 892.9 892.9 892.9 892.9 892.9 892.9 892.9 1138.9 585.3 585.3 892.9 892.9 892.9 892.9 892.9 892.9 892.9 892.9 892.9 892.9 892.9 892.9 1138.9 1138.9 892.9 892.9 1138.9 1138.9 585.3 585.3 1138.9 1138.9 1138.9 892.9 1138.9 1138.9 708.3 708.3 1138.9 1138.9 1138.9 892.9 329.4 1138.9] endobj -1717 0 obj +1722 0 obj [525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525] endobj -1718 0 obj +1723 0 obj [533.6] endobj -1719 0 obj +1724 0 obj [413.2 413.2 531.3 826.4 295.1 354.2 295.1 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 295.1 295.1 295.1 826.4 501.7 501.7 826.4 795.8 752.1 767.4 811.1 722.6 693.1 833.5 795.8 382.6 545.5 825.4 663.6 972.9 795.8 826.4 722.6 826.4 781.6 590.3 767.4 795.8 795.8 1091 795.8 795.8 649.3 295.1 531.3 295.1 531.3 295.1 295.1 531.3 590.3 472.2 590.3 472.2 324.7 531.3 590.3 295.1 324.7 560.8 295.1 885.4 590.3 531.3 590.3 560.8 414.1 419.1 413.2 590.3 560.8 767.4 560.8 560.8] endobj -1720 0 obj +1725 0 obj [611.1 611.1 611.1] endobj -1721 0 obj +1726 0 obj [777.8 277.8 777.8 500 777.8 500 777.8 777.8 777.8 777.8 777.8 777.8 777.8 1000 500 500 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 1000 1000 777.8 777.8 1000 1000 500 500 1000 1000 1000 777.8 1000 1000 611.1 611.1 1000 1000 1000 777.8 275 1000 666.7 666.7 888.9 888.9 0 0 555.6 555.6 666.7 500 722.2 722.2 777.8 777.8 611.1 798.5 656.8 526.5 771.4 527.8 718.7 594.9 844.5 544.5 677.8 762 689.7 1200.9 820.5 796.1 695.6 816.7 847.5 605.6 544.6 625.8 612.8 987.8 713.3 668.3 724.7 666.7 666.7 666.7 666.7 666.7 611.1 611.1 444.4 444.4 444.4 444.4 500 500 388.9 388.9 277.8 500 500 611.1 500 277.8 833.3 750 833.3 416.7 666.7 666.7 777.8 777.8 444.4] endobj -1722 0 obj +1727 0 obj [339.3 892.9 585.3 892.9 585.3 610.1 859.1 863.2 819.4 934.1 838.7 724.5 889.4 935.6 506.3 632 959.9 783.7 1089.4 904.9 868.9 727.3 899.7 860.6 701.5 674.8 778.2 674.6 1074.4 936.9 671.5 778.4 462.3 462.3 462.3 1138.9 1138.9 478.2 619.7 502.4 510.5 594.7 542 557.1 557.3 668.8 404.2 472.7 607.3 361.3 1013.7 706.2] endobj -1723 0 obj +1728 0 obj [569.5 569.5 569.5 569.5 569.5 569.5 569.5 569.5 569.5 323.4] endobj -1724 0 obj +1729 0 obj [525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525] endobj -1725 0 obj +1730 0 obj [639.7 565.6 517.7 444.4 405.9 437.5 496.5 469.4 353.9 576.2 583.3 602.6 494 437.5 570 517 571.4 437.2 540.3 595.8 625.7 651.4 622.5 466.3 591.4 828.1 517 362.8 654.2 1000 1000 1000 1000 277.8 277.8 500 500 500 500 500 500 500 500 500 500 500 500 277.8 277.8 777.8 500 777.8 500 530.9 750 758.5 714.7 827.9 738.2 643.1 786.3 831.3 439.6 554.5 849.3 680.6 970.1 803.5 762.8 642 790.6 759.3 613.2 584.4 682.8 583.3 944.4 828.5 580.6 682.6 388.9 388.9 388.9 1000 1000 416.7 528.6 429.2 432.8 520.5 465.6 489.6 477 576.2 344.5 411.8 520.6 298.4 878 600.2 484.7 503.1 446.4 451.2 468.8 361.1 572.5 484.7 715.9 571.5 490.3 465.1] endobj -1726 0 obj +1731 0 obj [613.3 562.2 587.8 881.7 894.4 306.7 332.2 511.1 511.1 511.1 511.1 511.1 831.3 460 536.7 715.6 715.6 511.1 882.8 985 766.7 255.6 306.7 514.4 817.8 769.1 817.8 766.7 306.7 408.9 408.9 511.1 766.7 306.7 357.8 306.7 511.1 511.1 511.1 511.1 511.1 511.1 511.1 511.1 511.1 511.1 511.1 306.7 306.7 306.7 766.7 511.1 511.1 766.7 743.3 703.9 715.6 755 678.3 652.8 773.6 743.3 385.6 525 768.9 627.2 896.7 743.3 766.7 678.3 766.7 729.4 562.2 715.6 743.3 743.3 998.9 743.3 743.3 613.3 306.7 514.4 306.7 511.1 306.7 306.7 511.1 460 460 511.1 460 306.7 460 511.1 306.7 306.7 460 255.6 817.8 562.2 511.1 511.1 460 421.7 408.9 332.2 536.7 460 664.4 463.9 485.6] endobj -1727 0 obj +1732 0 obj [583.3 555.6 555.6 833.3 833.3 277.8 305.6 500 500 500 500 500 750 444.4 500 722.2 777.8 500 902.8 1013.9 777.8 277.8 277.8 500 833.3 500 833.3 777.8 277.8 388.9 388.9 500 777.8 277.8 333.3 277.8 500 500 500 500 500 500 500 500 500 500 500 277.8 277.8 277.8 777.8 472.2 472.2 777.8 750 708.3 722.2 763.9 680.6 652.8 784.7 750 361.1 513.9 777.8 625 916.7 750 777.8 680.6 777.8 736.1 555.6 722.2 750 750 1027.8 750 750 611.1 277.8 500 277.8 500 277.8 277.8 500 555.6 444.4 555.6 444.4 305.6 500 555.6 277.8 305.6 527.8 277.8 833.3 555.6 500 555.6 527.8 391.7 394.4 388.9 555.6 527.8 722.2 527.8 527.8 444.4 500] endobj -1728 0 obj +1733 0 obj [670.8 638.9 638.9 958.3 958.3 319.4 351.4 575 575 575 575 575 869.4 511.1 597.2 830.6 894.4 575 1041.7 1169.4 894.4 319.4 350 602.8 958.3 575 958.3 894.4 319.4 447.2 447.2 575 894.4 319.4 383.3 319.4 575 575 575 575 575 575 575 575 575 575 575 319.4 319.4 350 894.4 543.1 543.1 894.4 869.4 818.1 830.6 881.9 755.6 723.6 904.2 900 436.1 594.4 901.4 691.7 1091.7 900 863.9 786.1 863.9 862.5 638.9 800 884.7 869.4 1188.9 869.4 869.4 702.8 319.4 602.8 319.4 575 319.4 319.4 559 638.9 511.1 638.9 527.1 351.4 575 638.9 319.4 351.4 606.9 319.4 958.3 638.9 575 638.9 606.9 473.6 453.6 447.2 638.9 606.9 830.6 606.9 606.9 511.1 575 1150] endobj -1729 0 obj +1734 0 obj [726.9 688.4 700 738.4 663.4 638.4 756.7 726.9 376.9 513.4 751.9 613.4 876.9 726.9 750 663.4 750 713.4 550 700 726.9 726.9 976.9 726.9 726.9 600 300 500 300 500 300 300 500 450 450 500 450 300 450 500 300 300 450 250 800 550 500 500 450 412.5 400 325 525 450 650 450 475] endobj -1730 0 obj +1735 0 obj [625 625 937.5 937.5 312.5 343.7 562.5 562.5 562.5 562.5 562.5 849.5 500 574.1 812.5 875 562.5 1018.5 1143.5 875 312.5 342.6 581 937.5 562.5 937.5 875 312.5 437.5 437.5 562.5 875 312.5 375 312.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 312.5 312.5 342.6 875 531.2 531.2 875 849.5 799.8 812.5 862.3 738.4 707.2 884.3 879.6 419 581 880.8 675.9 1067.1 879.6 844.9 768.5 844.9 839.1 625 782.4 864.6 849.5 1162 849.5 849.5 687.5 312.5 581 312.5 562.5 312.5 312.5 546.9 625 500 625 513.3 343.7 562.5 625 312.5 343.7 593.7 312.5 937.5 625 562.5 625 593.7 459.5 443.8 437.5 625 593.7 812.5 593.7 593.7 500 562.5 1125] endobj -1731 0 obj << +1736 0 obj << /Length1 1779 /Length2 12324 /Length3 0 @@ -20749,7 +20823,7 @@ xLE3 AŒô7}ùŠN³7Ž–.Æ~é’Ó¼Úä?qÝêxûUÏÆãjR|¿®´]¿ü?o`«x x VÌTÅ yü¦ g4½øT›e‡ˆlì±L/ÇI´_¿Ð endstream endobj -1732 0 obj << +1737 0 obj << /Type /FontDescriptor /FontName /GKACTJ+CMBX10 /Flags 4 @@ -20761,9 +20835,9 @@ endobj /StemV 114 /XHeight 444 /CharSet (/A/B/C/D/E/F/G/H/I/J/L/M/N/O/P/R/S/T/U/V/Z/a/b/c/colon/comma/d/e/eight/emdash/endash/equal/f/ff/fi/five/fl/four/g/h/hyphen/i/j/k/l/m/n/nine/o/one/p/period/q/quoteright/r/s/seven/six/t/three/two/u/v/w/x/y/z/zero) -/FontFile 1731 0 R +/FontFile 1736 0 R >> endobj -1733 0 obj << +1738 0 obj << /Length1 1734 /Length2 10564 /Length3 0 @@ -20893,7 +20967,7 @@ BO ­Œ$*Jü1õ‘J{Y^>y†ˆKÃ=ÿb>'¿M¾9Ì|6ðÊN¤ã®ýµì%ÍíWœýÀSù5´öL6Œ_<ûTgÊM3€ìuÆÍ,€\\Co #Ž§Ñ£Gû&òä!=D×*…0DWÙÇÙÏ)@4[ÃZIz1°‹Ö˜y©‹ÄþeRaµi=˜£( Ÿ~7aÙ„¬Üæ<¢ÞÓfë@ÇJ†,˜ì^3Ç«\`D•¦€Úþ²-@ÎÒ‡)e]R³•YÖË&–½ÐÞIÆŒ½OW,aëh俯Ԯb:âôºá÷b€ðHU65uC(½"ÂmÙKxz·˜²›èMtì¯xpÙ§èlª‘¹\€7”S9žcŠ¬juðÀXlØ\‰|f6ƒxD6WYèKr±c]ûŒþ‘)êò Ž÷@Ojñß?цnšiªûJÑ:ˆ{{ž5{b° endstream endobj -1734 0 obj << +1739 0 obj << /Type /FontDescriptor /FontName /GBHFLB+CMBX12 /Flags 4 @@ -20905,9 +20979,9 @@ endobj /StemV 109 /XHeight 444 /CharSet (/A/B/C/D/E/F/G/H/I/K/L/M/N/O/P/Q/R/S/T/U/V/W/a/b/c/d/e/eight/emdash/endash/f/fi/five/four/g/h/hyphen/i/k/l/m/n/nine/o/one/p/parenleft/parenright/period/q/quoteright/r/s/seven/six/t/three/two/u/v/w/x/y/z/zero) -/FontFile 1733 0 R +/FontFile 1738 0 R >> endobj -1735 0 obj << +1740 0 obj << /Length1 957 /Length2 3230 /Length3 0 @@ -20965,7 +21039,7 @@ TM $Àsîý5ž¥NfÓ ›‚>¬-^­ŠWÝwîek¯œ©ó$-VËH¨™ëËâÖz:4ø^0A΢,·Z/¦†ª€YCAÇd÷âË»F+aæ+IÅö6ÚG©€ ¥~/Š²Ô¸öVᦴoâUm3b,Ä/¡ŸÛh»)Ô¹öÑe>ÐÍ!ª¼áqkº½W¹ÂéW÷âJRÛ—Å1æ„V€j$¯½X¹YÄfÿÖà ¾3íÖAO`öŸ¥†¸L",ˆ©#ö­SoÔ9Š–ËÐÕ…ãfL%îF$BWF[õ%‘(G™»¢š’1‰+ 0]JäßJíFÎeÜú—P¢tsZy-OšBò ]Q£*Ú–«Ñ•‘1ÙÃúÃvï㥙ˆÜž(Vèח}Ú3y]Ûk]¬¹éeþ|›¿"¼E¯õÄŸæ1ÚL<6I’7"BýÞSw£J½ToÎuFÔYe¹O›xز¦õ¿ 3=âAÀIjÍìgÌôý/Œ>pB”ÓSÂD>ΠÁzV>ì÷üÓTËá~mÄZÂ*1¯D©Xé|eÖˆ61bm”¤‚…@€#JÊ:Ò’ÏFÑ$Û{ß1R6ûÿ³³—D˜ŽâP|šãœ¬óŽ -PæVÍÑëCœ§Ÿ¿¹ D&>IÖÒ°oòé?:|7±¨+ÅIÃå×>´sýíºÎ#{⎗0¥ÈïÈÊôþa¾Ý» ü–ÿä¤*æåü£©÷õΣÔ@#ú^™„Ê…¯0ò^eDô7[ÈËjdogæ%ü‹™Ì3K/Üä=_±Ïƃ€ì,ÑQ'7U„s8ôf¼Ò£9@z$kW@ÈKõâ¨nHae]äI$Md+aÀ¸ t-Êà(U endstream endobj -1736 0 obj << +1741 0 obj << /Type /FontDescriptor /FontName /GNEKJP+CMBX9 /Flags 4 @@ -20977,9 +21051,9 @@ endobj /StemV 117 /XHeight 444 /CharSet (/a/b/c/d/e/f/g/h/i/l/n/o/r/s/t/u) -/FontFile 1735 0 R +/FontFile 1740 0 R >> endobj -1737 0 obj << +1742 0 obj << /Length1 1382 /Length2 9380 /Length3 0 @@ -21096,7 +21170,7 @@ L cilþœêúÒž ÎåI‡³c­6¸]Yá†۴¶Ï]ÿÎÝ¿”È‘¥m<ú"e<ƒû³¶ÚFŠx$ïz*¤´>&÷rFâXTŸCÏdȆ§4QÕÄ·”\ÉìÝOSÐ!˜6Î=eÏÓ´ôÕ½´q좃¤-~¨<òì¹Ç®\ÅÿͪþûÕ ž&†{¡/^q_ÖðN[,tžÏü+É̯7ÁÒd9"‰:¾[æ>¼¯;­ zÏvµÉÔ4ç¦×e„>À’aO][ˆúòÉy"´Äܯ·€a`ùìM„0îÎÿý(Æ›þ9zÚlö1šxÿ¯%õ‰ç‡)ä5ÂlìÇ«–uúm;åI,+K6þ endstream endobj -1738 0 obj << +1743 0 obj << /Type /FontDescriptor /FontName /PUWBWT+CMMI10 /Flags 4 @@ -21108,9 +21182,9 @@ endobj /StemV 72 /XHeight 431 /CharSet (/A/C/D/G/I/L/N/O/P/Q/T/U/X/a/alpha/b/beta/c/comma/d/e/f/g/greater/i/j/k/l/less/m/n/o/p/period/r/s/t/u/v/w/x/y/z) -/FontFile 1737 0 R +/FontFile 1742 0 R >> endobj -1739 0 obj << +1744 0 obj << /Length1 745 /Length2 1242 /Length3 0 @@ -21148,7 +21222,7 @@ currentfile eexec ñPŠ?–_ %œD3´)‚/Å‘ˆdL£sw(wÞ&Mʺ™E¿Ât æ7â8k¬aò;BFåŸD¦(ÐéJø endstream endobj -1740 0 obj << +1745 0 obj << /Type /FontDescriptor /FontName /RVPZIX+CMMI5 /Flags 4 @@ -21160,9 +21234,9 @@ endobj /StemV 90 /XHeight 431 /CharSet (/i) -/FontFile 1739 0 R +/FontFile 1744 0 R >> endobj -1741 0 obj << +1746 0 obj << /Length1 878 /Length2 3214 /Length3 0 @@ -21210,7 +21284,7 @@ H ­š¤þ.6aÄ÷ÊwØÐ\p'N/ ‹ÀoXüzFk%IÛo‡³êÚi‚Kƒ²\ìÞ23ÌéS[§“ðxGÇ;·°53˜Ê6„Nhb3u…NƒeçwÕ&ÂIÃ*ê¸Ñk±¼¨gFîš#åLkÿ4.ÕÒ…[_bY ¾øa Ú ÿ“Iö{ÊÀªD×Ö,=Á;‘o+x ‹*°SßÏ‘(OǶzÝÉú¬bLçàè_¨§•¸Ž9ú‡ü÷ÖNŸ'FÀ]$7éØñòjQèk­£"œP Ì endstream endobj -1742 0 obj << +1747 0 obj << /Type /FontDescriptor /FontName /ZUYGVH+CMMI7 /Flags 4 @@ -21222,9 +21296,9 @@ endobj /StemV 81 /XHeight 431 /CharSet (/H/I/T/a/comma/i/j/k/m/n) -/FontFile 1741 0 R +/FontFile 1746 0 R >> endobj -1743 0 obj << +1748 0 obj << /Length1 2026 /Length2 14861 /Length3 0 @@ -21404,7 +21478,7 @@ z ›àã™üÿÀPŒáà•Ï€$y_É°¾a9›3“P_*Uþý“‹Ë3ï\(Ó‰Å)_0)ÄbÂãP*Qv¾×%–ޑ祫Ûù>ÍTAO˸UL`¯£'jìò¤Þ=ˆØ eðS)•Æ®¿îu*ïÎ-ô£ì•]2—æk0[] endstream endobj -1744 0 obj << +1749 0 obj << /Type /FontDescriptor /FontName /KYXPCE+CMR10 /Flags 4 @@ -21416,9 +21490,9 @@ endobj /StemV 69 /XHeight 431 /CharSet (/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/R/S/T/U/V/W/X/a/ampersand/b/bracketleft/bracketright/c/colon/comma/d/e/eight/endash/equal/f/ff/ffi/fi/five/fl/four/g/h/hyphen/i/j/k/l/m/n/nine/o/one/p/parenleft/parenright/period/plus/q/quotedblleft/quotedblright/quoteright/r/s/semicolon/seven/six/slash/t/three/two/u/v/w/x/y/z/zero) -/FontFile 1743 0 R +/FontFile 1748 0 R >> endobj -1745 0 obj << +1750 0 obj << /Length1 769 /Length2 1408 /Length3 0 @@ -21460,7 +21534,7 @@ currentfile eexec µ)&ï¹ó)/@^Ð⵸PY.¾ê—(û½#´±SáRdíúmBq-‡_'ÈI-tñø‚¡ „/÷OþL»™Kô÷6§C€w\³v#ܶ>ì"L‹“+†ò¿ÜÓüà•Â½”þa+‹YEoÎ endstream endobj -1746 0 obj << +1751 0 obj << /Type /FontDescriptor /FontName /YPSQTS+CMR6 /Flags 4 @@ -21472,9 +21546,9 @@ endobj /StemV 83 /XHeight 431 /CharSet (/one/three/two) -/FontFile 1745 0 R +/FontFile 1750 0 R >> endobj -1747 0 obj << +1752 0 obj << /Length1 787 /Length2 1497 /Length3 0 @@ -21518,7 +21592,7 @@ _2 ¡b›x}‰èË÷…¹Òºz’™­ºs7'þõ¸­)Æãõ8-X“ûTåG`û‡9?óPíe•úã“:– “^­‘3¶›‚~§ÍhécîxbkÜå1!o^ëå™KÙWk«ìi7ݱ‚=3OÿÕá£ßø äô¼|ó endstream endobj -1748 0 obj << +1753 0 obj << /Type /FontDescriptor /FontName /EWABFK+CMR7 /Flags 4 @@ -21530,9 +21604,9 @@ endobj /StemV 79 /XHeight 431 /CharSet (/colon/one/three/two) -/FontFile 1747 0 R +/FontFile 1752 0 R >> endobj -1749 0 obj << +1754 0 obj << /Length1 1462 /Length2 8120 /Length3 0 @@ -21641,7 +21715,7 @@ j ë4×éùïwš4“n½]{­ŽÂô§–sú,r/Lˤ/ÝS.$Vܤ˜¶i¼+±WJv契Ž´*ö9Ã6\éu>£ÀtGÁ”Ûý¿Ò'3 (ªh[æ‚ð˜ÅWÿžu º×:=»´bA¦‡àB涌ÂMÄða§Ýw’rº“ºÏÛ–¥,Ë¿OÝS2 ?3w·;§Â/nÊJ0Rã}CpÒSé^™:Ò¶Õzâê3Ì|8¦Võg¾Ã¡µ`Æ~ä17Æ[|~9dy_*z€UIJ@ö®{t”¤åØVKƒÒ;S¯ˆÿ±’m¤£¥‰Hçî³¼ –$úX`ÝWçªÂúôÔ>Œ—:þ8ùæ÷¿³ÁE4•¾Ÿ¼3 w¼>0—Mñoƒ›vºÒL–xy÷rbQ¡ƒUˆ0_tœ¹ºu™'Iá^mÇÉ]*äÉÊ—:¬Ý\ ÛÝxK»gD÷«Ù³Õ=I8­ŠºÒ-œvx`%QÓ¢8ê™ÍEºïê+@eXnž"V¶¼ðæÅ"Ƀe‚¿Sñ:®wS%d›9Ñž#Ä`ž˜íÔ’Õ²ˆð¬ËmûMBeäPnpbÜ“^mäïbÅÃK0¾m1÷R\&òÄe{b"ŒŒW{u“ˆ)W2x cšµ9è¡|課#ᎹºJš¾ì—H1ÒTÚ³v®n-F `¢Çî5*…¨¸G™1–¯}YûŠª¹ª•ÛÚωà?ñõ‚dUfÒ o.nÔIƒ”fDg¬ðŒ/'@Tîø|Ú>1ÐØø£éU.Byþ.‘Ʀ¸25mª¹<Ês Ò—OËÇP œ®Ì÷·bM×v¬mšö¿ý²e…ö;ã{'½ì>Œ;×sáyâlµ’ØÀf9k Ƕz<È#Ž ý¤ËSðž>"zµQµ’N<)W”°ni}À;žá½!“@æe¬Þâ± šÃW&è‚=ù»ä÷óFÝÎXËÙå²Í1.8.†ˆvi˜äƒ. &×SÓ¬Ú74ÀÕRP¹ú´QC‹îNjÁ8Òq½ïàákYDå¢X4Ö±Htç7€ Azd5ZŒ†ã¿¾¹çÓ)05—ØN$HÑé=R§K+‚²h`Pèù†T¿3Œ®'/(#ž+UŠ5¤A³Î-¢ŒT endstream endobj -1750 0 obj << +1755 0 obj << /Type /FontDescriptor /FontName /TDRORS+CMR8 /Flags 4 @@ -21653,9 +21727,9 @@ endobj /StemV 76 /XHeight 431 /CharSet (/B/G/I/L/O/P/T/X/a/b/c/comma/d/e/eight/f/five/four/g/h/hyphen/i/l/m/n/nine/o/one/p/parenleft/parenright/period/q/r/s/seven/six/slash/t/three/two/u/v/w/x/y/zero) -/FontFile 1749 0 R +/FontFile 1754 0 R >> endobj -1751 0 obj << +1756 0 obj << /Length1 1407 /Length2 7564 /Length3 0 @@ -21761,7 +21835,7 @@ e 0? ¢ÀÍT7¦—$ünÕ?È6<ÛªôúL48‹N­úÑ žàTXòª,¯ëIµ¸¢©|¹cÚ`½=úË.Õ¾hémPÁ¤êkþcD÷ÄCx3ø;W6:Ûéf&àz#ôµ­šI˜z¾1¿¤°õÜ$šÕÇ{J»T¢LE/“C endstream endobj -1752 0 obj << +1757 0 obj << /Type /FontDescriptor /FontName /UIKOQU+CMR9 /Flags 4 @@ -21773,9 +21847,9 @@ endobj /StemV 74 /XHeight 431 /CharSet (/B/G/I/L/O/P/X/a/b/c/comma/d/e/eight/equal/f/five/four/g/h/i/m/n/nine/o/one/p/parenleft/parenright/period/q/quoteright/r/s/seven/six/t/three/two/u/x/z/zero) -/FontFile 1751 0 R +/FontFile 1756 0 R >> endobj -1753 0 obj << +1758 0 obj << /Length1 1050 /Length2 2900 /Length3 0 @@ -21842,7 +21916,7 @@ R c’$”݈9`l¶|‰2*2Nú´u4œýÕâôv=¤rl³MÌp+§’…¶5ô†ÔÀµ‡™iu1Y@ãœ1[;îLE›êGÓa]:œ”Ó³öã_‰Uš¨–‘Îo#¿ÞÅÌ!|NWüÚè endstream endobj -1754 0 obj << +1759 0 obj << /Type /FontDescriptor /FontName /IMOIOS+CMSY10 /Flags 4 @@ -21854,9 +21928,9 @@ endobj /StemV 85 /XHeight 431 /CharSet (/B/H/I/arrowleft/bar/bardbl/braceleft/braceright/bullet/element/greaterequal/lessequal/minus/negationslash/radical/section) -/FontFile 1753 0 R +/FontFile 1758 0 R >> endobj -1755 0 obj << +1760 0 obj << /Length1 766 /Length2 759 /Length3 0 @@ -21894,7 +21968,7 @@ h aaT'/D…/¦v2_ÅIô÷*’XÆé¼VMäGoÆéjeÃï÷‚x"¡‘<Õ©O=}µL¾8QWÃYΞ^L„רFHyü˜ÈB9Ê2Îo¯G¥¾bv0„òÆ… 4…Fv1wz MrÀs1§‡zå; r‘*)!´î Ý·Š´ÿÝÔÕVåÕG•8 z±» Ó(O»û+¸iruþdtîOª=eb®|˜Œ‘Ô¤c<…=>òƒ?†!ÒêuóÿG\ïD3/dÈZ2)#Yboµ£˜B§cn“d¿lXë0 ]Ò%ÉMEÚmu`ò©bNßʾ”ËL›ìsë7§F„“qò¿'Z¿TÇ©c9$À ÑPâü<”»ÏÚ endstream endobj -1756 0 obj << +1761 0 obj << /Type /FontDescriptor /FontName /XNLILI+CMSY7 /Flags 4 @@ -21906,9 +21980,9 @@ endobj /StemV 93 /XHeight 431 /CharSet (/infinity/minus) -/FontFile 1755 0 R +/FontFile 1760 0 R >> endobj -1757 0 obj << +1762 0 obj << /Length1 1572 /Length2 12132 /Length3 0 @@ -22055,7 +22129,7 @@ fi ƒ­Öc@^ÕÝË´rF_¯ŒX"1ÁÖbvßÁŠÀšûòÅ5þŽÎ˜Ž×þpŒÚš5ã0²'ºÞ” ÛJ§­¦ i÷ïI•€LU·+K¹ïø,xæ㤱„‰2Dwé†îÆ®7d-ÿ΀Ðê¡­Î/»€È­ÎÍËIÄÌÃ5|Ÿr¥JÍã3ú‰Ï& endstream endobj -1758 0 obj << +1763 0 obj << /Type /FontDescriptor /FontName /HBJLDT+CMTI10 /Flags 4 @@ -22067,9 +22141,9 @@ endobj /StemV 68 /XHeight 431 /CharSet (/A/B/C/D/E/F/G/I/L/M/N/O/P/R/S/T/U/V/a/b/c/colon/d/e/f/ff/fi/five/g/h/hyphen/i/j/l/m/n/nine/o/one/p/period/q/quoteright/r/s/slash/t/three/two/u/v/w/x/y/zero) -/FontFile 1757 0 R +/FontFile 1762 0 R >> endobj -1759 0 obj << +1764 0 obj << /Length1 1067 /Length2 5106 /Length3 0 @@ -22144,7 +22218,7 @@ Hn4*/ éÆ 'dŠÿDZ@Oëÿ{Ll§æR%M…]> endobj -1761 0 obj << +1766 0 obj << /Length1 1849 /Length2 11542 /Length3 0 @@ -22311,7 +22385,7 @@ Lr~j S“JУt0jºB–¢7å7Ð[=©)ŒZPRŠ¬ ‰•šâ ìùôée\ás° "̺Ùô~\oªÂÈ1É] ,Ø(WÁèT¢ë$¢æ=+Z|GËÒÉÿ ‹¸ÕÙž=٣Ȕ)Šûs‹9@™ÄÁ¿ ç£SÈ.ÃoUSl›Ÿt—<œì¼'棓`ÈÈð.Õ}ÑYCϦ <%ÔK\3/œ;“鹟“*ÍHÕ¦­ƒ{{´$$_gm$Jv‘xasHäÑ`…SºHo‹ß²BLó‰ÊVÑÅ´Œ ü}㣟ÀºO/Xÿ“RPEÃïúðï­|1XïH'˜Y”€b²áIŽh1†Ž*iòš®Ÿµ× CÙ„¼×S…<ŒnCM+dL‰*¼·Û¶)ôhï.³í©*zuv¼ü!ŠQÈ®zxTÿ‡þá+"€=,®>ŽÑW\=ê£+÷*ã.WFogö(Ì姎+Ž‰Ë´ÍÀðªvvp΀›3Åós˜*!vBfýïdV,è¸/œSålJ¾î9‹tO%­ØJ×%`š:µ/R)²Wä^y$AϬLFÛX ŠD¸+þésj»qÒ¥”4h<ÕÇ%‡ü?ÙŠtX׌_ßn}{}”ÙÅEšF%–„U'3ê¿=µP„‚ý½¤¥8É:J u)âÖ‹4Û[n2–¨ŸL®tÏྴÖFTÌG[×Ñ#˜ïïÄV„«ìŒƒ†8M\ÊlôZ[ó.Pº¦û;ªbþ_Ù›Ä4Tzüv¨|4ò‘ÌèýNß+Bb¿XK¨v‘–[ÅâÁÿOñõk³xö¬eå«ÀU\bžã¸>}êšÎÈJ5S˜ÃÃIAÂõuâ¼þ'sieFµ·?iÐ3whöl´¼œÔ˜îÉñ:—²˜IÎQ|Ï2? @•–ÏËS¹Cu›â>ÎaŒóßÀÅ=cžÈák3BÑ;Ôb endstream endobj -1762 0 obj << +1767 0 obj << /Type /FontDescriptor /FontName /BGSLBR+CMTT10 /Flags 4 @@ -22323,9 +22397,9 @@ endobj /StemV 69 /XHeight 431 /CharSet (/A/B/C/D/E/F/I/K/L/M/N/O/P/R/S/T/U/W/Y/a/ampersand/asciitilde/asterisk/b/backslash/bracketleft/bracketright/c/colon/comma/d/e/equal/f/four/g/h/hyphen/i/j/k/l/m/n/nine/o/one/p/parenleft/parenright/percent/period/plus/q/r/s/six/slash/t/three/two/u/underscore/v/w/x/y/z/zero) -/FontFile 1761 0 R +/FontFile 1766 0 R >> endobj -1763 0 obj << +1768 0 obj << /Length1 1029 /Length2 3340 /Length3 0 @@ -22394,7 +22468,7 @@ o võåŸØì¶DgmÜ×BSœx¦d¢¿b.…Õû~á:ت¸ó× 0î•«¡œ{)ì@¿›ù׸ð€¸wŒ¶ªèº¹Î(ß"›’/5>PkxÍBô­Ù¿ ø$?€õþ W(]ï6¶Ä endstream endobj -1764 0 obj << +1769 0 obj << /Type /FontDescriptor /FontName /KMUHVJ+CMTT9 /Flags 4 @@ -22406,1131 +22480,1138 @@ endobj /StemV 74 /XHeight 431 /CharSet (/T/a/b/c/colon/comma/d/e/l/n/o/p/parenleft/parenright/r/s/t/underscore/y) -/FontFile 1763 0 R +/FontFile 1768 0 R >> endobj -533 0 obj << +537 0 obj << /Type /Font /Subtype /Type1 /BaseFont /GKACTJ+CMBX10 -/FontDescriptor 1732 0 R +/FontDescriptor 1737 0 R /FirstChar 11 /LastChar 124 -/Widths 1728 0 R +/Widths 1733 0 R >> endobj -531 0 obj << +535 0 obj << /Type /Font /Subtype /Type1 /BaseFont /GBHFLB+CMBX12 -/FontDescriptor 1734 0 R +/FontDescriptor 1739 0 R /FirstChar 12 /LastChar 124 -/Widths 1730 0 R +/Widths 1735 0 R >> endobj -1540 0 obj << +1545 0 obj << /Type /Font /Subtype /Type1 /BaseFont /GNEKJP+CMBX9 -/FontDescriptor 1736 0 R +/FontDescriptor 1741 0 R /FirstChar 97 /LastChar 117 -/Widths 1714 0 R +/Widths 1719 0 R >> endobj -719 0 obj << +724 0 obj << /Type /Font /Subtype /Type1 /BaseFont /PUWBWT+CMMI10 -/FontDescriptor 1738 0 R +/FontDescriptor 1743 0 R /FirstChar 11 /LastChar 122 -/Widths 1725 0 R +/Widths 1730 0 R >> endobj -767 0 obj << +772 0 obj << /Type /Font /Subtype /Type1 /BaseFont /RVPZIX+CMMI5 -/FontDescriptor 1740 0 R +/FontDescriptor 1745 0 R /FirstChar 105 /LastChar 105 -/Widths 1718 0 R +/Widths 1723 0 R >> endobj -736 0 obj << +741 0 obj << /Type /Font /Subtype /Type1 /BaseFont /ZUYGVH+CMMI7 -/FontDescriptor 1742 0 R +/FontDescriptor 1747 0 R /FirstChar 59 /LastChar 110 -/Widths 1722 0 R +/Widths 1727 0 R >> endobj -534 0 obj << +538 0 obj << /Type /Font /Subtype /Type1 /BaseFont /KYXPCE+CMR10 -/FontDescriptor 1744 0 R +/FontDescriptor 1749 0 R /FirstChar 11 /LastChar 123 -/Widths 1727 0 R +/Widths 1732 0 R >> endobj -738 0 obj << +743 0 obj << /Type /Font /Subtype /Type1 /BaseFont /YPSQTS+CMR6 -/FontDescriptor 1746 0 R +/FontDescriptor 1751 0 R /FirstChar 49 /LastChar 51 -/Widths 1720 0 R +/Widths 1725 0 R >> endobj -735 0 obj << +740 0 obj << /Type /Font /Subtype /Type1 /BaseFont /EWABFK+CMR7 -/FontDescriptor 1748 0 R +/FontDescriptor 1753 0 R /FirstChar 49 /LastChar 58 -/Widths 1723 0 R +/Widths 1728 0 R >> endobj -740 0 obj << +745 0 obj << /Type /Font /Subtype /Type1 /BaseFont /TDRORS+CMR8 -/FontDescriptor 1750 0 R +/FontDescriptor 1755 0 R /FirstChar 40 /LastChar 121 -/Widths 1719 0 R +/Widths 1724 0 R >> endobj -1111 0 obj << +1116 0 obj << /Type /Font /Subtype /Type1 /BaseFont /UIKOQU+CMR9 -/FontDescriptor 1752 0 R +/FontDescriptor 1757 0 R /FirstChar 39 /LastChar 122 -/Widths 1715 0 R +/Widths 1720 0 R >> endobj -737 0 obj << +742 0 obj << /Type /Font /Subtype /Type1 /BaseFont /IMOIOS+CMSY10 -/FontDescriptor 1754 0 R +/FontDescriptor 1759 0 R /FirstChar 0 /LastChar 120 -/Widths 1721 0 R +/Widths 1726 0 R >> endobj -1028 0 obj << +1033 0 obj << /Type /Font /Subtype /Type1 /BaseFont /XNLILI+CMSY7 -/FontDescriptor 1756 0 R +/FontDescriptor 1761 0 R /FirstChar 0 /LastChar 49 -/Widths 1716 0 R +/Widths 1721 0 R >> endobj -699 0 obj << +704 0 obj << /Type /Font /Subtype /Type1 /BaseFont /HBJLDT+CMTI10 -/FontDescriptor 1758 0 R +/FontDescriptor 1763 0 R /FirstChar 11 /LastChar 121 -/Widths 1726 0 R +/Widths 1731 0 R >> endobj -532 0 obj << +536 0 obj << /Type /Font /Subtype /Type1 /BaseFont /OZJPZO+CMTI12 -/FontDescriptor 1760 0 R +/FontDescriptor 1765 0 R /FirstChar 65 /LastChar 121 -/Widths 1729 0 R +/Widths 1734 0 R >> endobj -734 0 obj << +739 0 obj << /Type /Font /Subtype /Type1 /BaseFont /BGSLBR+CMTT10 -/FontDescriptor 1762 0 R +/FontDescriptor 1767 0 R /FirstChar 37 /LastChar 126 -/Widths 1724 0 R +/Widths 1729 0 R >> endobj -906 0 obj << +911 0 obj << /Type /Font /Subtype /Type1 /BaseFont /KMUHVJ+CMTT9 -/FontDescriptor 1764 0 R +/FontDescriptor 1769 0 R /FirstChar 40 /LastChar 121 -/Widths 1717 0 R +/Widths 1722 0 R >> endobj -535 0 obj << +539 0 obj << /Type /Pages /Count 6 -/Parent 1765 0 R -/Kids [526 0 R 537 0 R 587 0 R 639 0 R 679 0 R 683 0 R] +/Parent 1770 0 R +/Kids [530 0 R 541 0 R 592 0 R 644 0 R 684 0 R 688 0 R] >> endobj -700 0 obj << +705 0 obj << /Type /Pages /Count 6 -/Parent 1765 0 R -/Kids [697 0 R 717 0 R 731 0 R 747 0 R 760 0 R 764 0 R] +/Parent 1770 0 R +/Kids [702 0 R 722 0 R 736 0 R 752 0 R 765 0 R 769 0 R] >> endobj -794 0 obj << +799 0 obj << /Type /Pages /Count 6 -/Parent 1765 0 R -/Kids [778 0 R 797 0 R 808 0 R 814 0 R 826 0 R 838 0 R] +/Parent 1770 0 R +/Kids [783 0 R 802 0 R 813 0 R 819 0 R 831 0 R 843 0 R] >> endobj -845 0 obj << +850 0 obj << /Type /Pages /Count 6 -/Parent 1765 0 R -/Kids [842 0 R 850 0 R 857 0 R 862 0 R 867 0 R 871 0 R] +/Parent 1770 0 R +/Kids [847 0 R 852 0 R 859 0 R 867 0 R 872 0 R 876 0 R] >> endobj -878 0 obj << +883 0 obj << /Type /Pages /Count 6 -/Parent 1765 0 R -/Kids [875 0 R 880 0 R 884 0 R 890 0 R 897 0 R 902 0 R] +/Parent 1770 0 R +/Kids [880 0 R 885 0 R 889 0 R 895 0 R 902 0 R 907 0 R] >> endobj -912 0 obj << +917 0 obj << /Type /Pages /Count 6 -/Parent 1765 0 R -/Kids [909 0 R 921 0 R 928 0 R 938 0 R 943 0 R 953 0 R] +/Parent 1770 0 R +/Kids [914 0 R 926 0 R 933 0 R 943 0 R 948 0 R 958 0 R] >> endobj -961 0 obj << +966 0 obj << /Type /Pages /Count 6 -/Parent 1766 0 R -/Kids [958 0 R 966 0 R 974 0 R 982 0 R 990 0 R 995 0 R] +/Parent 1771 0 R +/Kids [963 0 R 971 0 R 979 0 R 987 0 R 995 0 R 1000 0 R] >> endobj -1006 0 obj << +1011 0 obj << /Type /Pages /Count 6 -/Parent 1766 0 R -/Kids [1002 0 R 1011 0 R 1018 0 R 1025 0 R 1036 0 R 1051 0 R] +/Parent 1771 0 R +/Kids [1007 0 R 1016 0 R 1023 0 R 1030 0 R 1041 0 R 1056 0 R] >> endobj -1061 0 obj << +1066 0 obj << /Type /Pages /Count 6 -/Parent 1766 0 R -/Kids [1057 0 R 1069 0 R 1075 0 R 1080 0 R 1088 0 R 1098 0 R] +/Parent 1771 0 R +/Kids [1062 0 R 1074 0 R 1080 0 R 1085 0 R 1093 0 R 1103 0 R] >> endobj -1112 0 obj << +1117 0 obj << /Type /Pages /Count 6 -/Parent 1766 0 R -/Kids [1108 0 R 1117 0 R 1129 0 R 1137 0 R 1141 0 R 1153 0 R] +/Parent 1771 0 R +/Kids [1113 0 R 1122 0 R 1134 0 R 1142 0 R 1146 0 R 1158 0 R] >> endobj -1164 0 obj << +1169 0 obj << /Type /Pages /Count 6 -/Parent 1766 0 R -/Kids [1161 0 R 1168 0 R 1176 0 R 1180 0 R 1185 0 R 1191 0 R] +/Parent 1771 0 R +/Kids [1166 0 R 1173 0 R 1181 0 R 1185 0 R 1190 0 R 1196 0 R] >> endobj -1204 0 obj << +1209 0 obj << /Type /Pages /Count 6 -/Parent 1766 0 R -/Kids [1196 0 R 1207 0 R 1212 0 R 1221 0 R 1228 0 R 1233 0 R] +/Parent 1771 0 R +/Kids [1201 0 R 1212 0 R 1217 0 R 1226 0 R 1233 0 R 1238 0 R] >> endobj -1242 0 obj << +1247 0 obj << /Type /Pages /Count 6 -/Parent 1767 0 R -/Kids [1239 0 R 1244 0 R 1252 0 R 1262 0 R 1266 0 R 1281 0 R] +/Parent 1772 0 R +/Kids [1244 0 R 1249 0 R 1257 0 R 1267 0 R 1271 0 R 1286 0 R] >> endobj -1294 0 obj << +1299 0 obj << /Type /Pages /Count 6 -/Parent 1767 0 R -/Kids [1285 0 R 1298 0 R 1304 0 R 1311 0 R 1317 0 R 1321 0 R] +/Parent 1772 0 R +/Kids [1290 0 R 1303 0 R 1309 0 R 1316 0 R 1322 0 R 1326 0 R] >> endobj -1333 0 obj << +1338 0 obj << /Type /Pages /Count 6 -/Parent 1767 0 R -/Kids [1330 0 R 1337 0 R 1341 0 R 1346 0 R 1350 0 R 1357 0 R] +/Parent 1772 0 R +/Kids [1335 0 R 1342 0 R 1346 0 R 1351 0 R 1355 0 R 1362 0 R] >> endobj -1366 0 obj << +1371 0 obj << /Type /Pages /Count 6 -/Parent 1767 0 R -/Kids [1362 0 R 1369 0 R 1375 0 R 1381 0 R 1387 0 R 1394 0 R] +/Parent 1772 0 R +/Kids [1367 0 R 1374 0 R 1380 0 R 1386 0 R 1392 0 R 1399 0 R] >> endobj -1404 0 obj << +1409 0 obj << /Type /Pages /Count 6 -/Parent 1767 0 R -/Kids [1401 0 R 1406 0 R 1416 0 R 1420 0 R 1424 0 R 1437 0 R] +/Parent 1772 0 R +/Kids [1406 0 R 1411 0 R 1421 0 R 1425 0 R 1429 0 R 1442 0 R] >> endobj -1446 0 obj << +1451 0 obj << /Type /Pages /Count 6 -/Parent 1767 0 R -/Kids [1441 0 R 1448 0 R 1454 0 R 1461 0 R 1465 0 R 1469 0 R] +/Parent 1772 0 R +/Kids [1446 0 R 1453 0 R 1459 0 R 1466 0 R 1470 0 R 1474 0 R] >> endobj -1476 0 obj << +1481 0 obj << /Type /Pages /Count 6 -/Parent 1768 0 R -/Kids [1473 0 R 1478 0 R 1482 0 R 1486 0 R 1492 0 R 1498 0 R] +/Parent 1773 0 R +/Kids [1478 0 R 1483 0 R 1487 0 R 1491 0 R 1497 0 R 1503 0 R] >> endobj -1509 0 obj << +1514 0 obj << /Type /Pages /Count 6 -/Parent 1768 0 R -/Kids [1504 0 R 1511 0 R 1517 0 R 1522 0 R 1529 0 R 1535 0 R] +/Parent 1773 0 R +/Kids [1509 0 R 1516 0 R 1522 0 R 1527 0 R 1534 0 R 1540 0 R] >> endobj -1570 0 obj << +1575 0 obj << /Type /Pages /Count 6 -/Parent 1768 0 R -/Kids [1565 0 R 1572 0 R 1578 0 R 1584 0 R 1590 0 R 1595 0 R] +/Parent 1773 0 R +/Kids [1570 0 R 1577 0 R 1583 0 R 1589 0 R 1595 0 R 1600 0 R] >> endobj -1607 0 obj << +1612 0 obj << /Type /Pages /Count 6 -/Parent 1768 0 R -/Kids [1602 0 R 1610 0 R 1616 0 R 1623 0 R 1629 0 R 1635 0 R] +/Parent 1773 0 R +/Kids [1607 0 R 1615 0 R 1621 0 R 1628 0 R 1634 0 R 1640 0 R] >> endobj -1645 0 obj << +1650 0 obj << /Type /Pages /Count 6 -/Parent 1768 0 R -/Kids [1641 0 R 1651 0 R 1659 0 R 1664 0 R 1668 0 R 1672 0 R] +/Parent 1773 0 R +/Kids [1646 0 R 1656 0 R 1664 0 R 1669 0 R 1673 0 R 1677 0 R] >> endobj -1686 0 obj << +1691 0 obj << /Type /Pages /Count 6 -/Parent 1768 0 R -/Kids [1680 0 R 1690 0 R 1694 0 R 1698 0 R 1702 0 R 1710 0 R] +/Parent 1773 0 R +/Kids [1685 0 R 1695 0 R 1699 0 R 1703 0 R 1707 0 R 1715 0 R] >> endobj -1765 0 obj << +1770 0 obj << /Type /Pages /Count 36 -/Parent 1769 0 R -/Kids [535 0 R 700 0 R 794 0 R 845 0 R 878 0 R 912 0 R] +/Parent 1774 0 R +/Kids [539 0 R 705 0 R 799 0 R 850 0 R 883 0 R 917 0 R] >> endobj -1766 0 obj << +1771 0 obj << /Type /Pages /Count 36 -/Parent 1769 0 R -/Kids [961 0 R 1006 0 R 1061 0 R 1112 0 R 1164 0 R 1204 0 R] +/Parent 1774 0 R +/Kids [966 0 R 1011 0 R 1066 0 R 1117 0 R 1169 0 R 1209 0 R] >> endobj -1767 0 obj << +1772 0 obj << /Type /Pages /Count 36 -/Parent 1769 0 R -/Kids [1242 0 R 1294 0 R 1333 0 R 1366 0 R 1404 0 R 1446 0 R] +/Parent 1774 0 R +/Kids [1247 0 R 1299 0 R 1338 0 R 1371 0 R 1409 0 R 1451 0 R] >> endobj -1768 0 obj << +1773 0 obj << /Type /Pages /Count 36 -/Parent 1769 0 R -/Kids [1476 0 R 1509 0 R 1570 0 R 1607 0 R 1645 0 R 1686 0 R] +/Parent 1774 0 R +/Kids [1481 0 R 1514 0 R 1575 0 R 1612 0 R 1650 0 R 1691 0 R] >> endobj -1769 0 obj << +1774 0 obj << /Type /Pages /Count 144 -/Kids [1765 0 R 1766 0 R 1767 0 R 1768 0 R] +/Kids [1770 0 R 1771 0 R 1772 0 R 1773 0 R] >> endobj -1770 0 obj << +1775 0 obj << /Type /Outlines /First 7 0 R /Last 7 0 R /Count 1 >> endobj +527 0 obj << +/Title 528 0 R +/A 525 0 R +/Parent 523 0 R +>> endobj 523 0 obj << /Title 524 0 R /A 521 0 R -/Parent 519 0 R +/Parent 7 0 R +/Prev 499 0 R +/First 527 0 R +/Last 527 0 R +/Count -1 >> endobj 519 0 obj << /Title 520 0 R /A 517 0 R -/Parent 7 0 R -/Prev 495 0 R -/First 523 0 R -/Last 523 0 R -/Count -1 +/Parent 499 0 R +/Prev 515 0 R >> endobj 515 0 obj << /Title 516 0 R /A 513 0 R -/Parent 495 0 R +/Parent 499 0 R /Prev 511 0 R +/Next 519 0 R >> endobj 511 0 obj << /Title 512 0 R /A 509 0 R -/Parent 495 0 R +/Parent 499 0 R /Prev 507 0 R /Next 515 0 R >> endobj 507 0 obj << /Title 508 0 R /A 505 0 R -/Parent 495 0 R +/Parent 499 0 R /Prev 503 0 R /Next 511 0 R >> endobj 503 0 obj << /Title 504 0 R /A 501 0 R -/Parent 495 0 R -/Prev 499 0 R +/Parent 499 0 R /Next 507 0 R >> endobj 499 0 obj << /Title 500 0 R /A 497 0 R -/Parent 495 0 R -/Next 503 0 R +/Parent 7 0 R +/Prev 471 0 R +/Next 523 0 R +/First 503 0 R +/Last 519 0 R +/Count -5 >> endobj 495 0 obj << /Title 496 0 R /A 493 0 R -/Parent 7 0 R -/Prev 467 0 R -/Next 519 0 R -/First 499 0 R -/Last 515 0 R -/Count -5 +/Parent 471 0 R +/Prev 491 0 R >> endobj 491 0 obj << /Title 492 0 R /A 489 0 R -/Parent 467 0 R +/Parent 471 0 R /Prev 487 0 R +/Next 495 0 R >> endobj 487 0 obj << /Title 488 0 R /A 485 0 R -/Parent 467 0 R +/Parent 471 0 R /Prev 483 0 R /Next 491 0 R >> endobj 483 0 obj << /Title 484 0 R /A 481 0 R -/Parent 467 0 R +/Parent 471 0 R /Prev 479 0 R /Next 487 0 R >> endobj 479 0 obj << /Title 480 0 R /A 477 0 R -/Parent 467 0 R +/Parent 471 0 R /Prev 475 0 R /Next 483 0 R >> endobj 475 0 obj << /Title 476 0 R /A 473 0 R -/Parent 467 0 R -/Prev 471 0 R +/Parent 471 0 R /Next 479 0 R >> endobj 471 0 obj << /Title 472 0 R /A 469 0 R -/Parent 467 0 R -/Next 475 0 R +/Parent 7 0 R +/Prev 451 0 R +/Next 499 0 R +/First 475 0 R +/Last 495 0 R +/Count -6 >> endobj 467 0 obj << /Title 468 0 R /A 465 0 R -/Parent 7 0 R -/Prev 447 0 R -/Next 495 0 R -/First 471 0 R -/Last 491 0 R -/Count -6 +/Parent 451 0 R +/Prev 463 0 R >> endobj 463 0 obj << /Title 464 0 R /A 461 0 R -/Parent 447 0 R +/Parent 451 0 R /Prev 459 0 R +/Next 467 0 R >> endobj 459 0 obj << /Title 460 0 R /A 457 0 R -/Parent 447 0 R +/Parent 451 0 R /Prev 455 0 R /Next 463 0 R >> endobj 455 0 obj << /Title 456 0 R /A 453 0 R -/Parent 447 0 R -/Prev 451 0 R +/Parent 451 0 R /Next 459 0 R >> endobj 451 0 obj << /Title 452 0 R /A 449 0 R -/Parent 447 0 R -/Next 455 0 R +/Parent 7 0 R +/Prev 383 0 R +/Next 471 0 R +/First 455 0 R +/Last 467 0 R +/Count -4 >> endobj 447 0 obj << /Title 448 0 R /A 445 0 R -/Parent 7 0 R -/Prev 379 0 R -/Next 467 0 R -/First 451 0 R -/Last 463 0 R -/Count -4 +/Parent 383 0 R +/Prev 443 0 R >> endobj 443 0 obj << /Title 444 0 R /A 441 0 R -/Parent 379 0 R +/Parent 383 0 R /Prev 439 0 R +/Next 447 0 R >> endobj 439 0 obj << /Title 440 0 R /A 437 0 R -/Parent 379 0 R +/Parent 383 0 R /Prev 435 0 R /Next 443 0 R >> endobj 435 0 obj << /Title 436 0 R /A 433 0 R -/Parent 379 0 R +/Parent 383 0 R /Prev 431 0 R /Next 439 0 R >> endobj 431 0 obj << /Title 432 0 R /A 429 0 R -/Parent 379 0 R +/Parent 383 0 R /Prev 427 0 R /Next 435 0 R >> endobj 427 0 obj << /Title 428 0 R /A 425 0 R -/Parent 379 0 R +/Parent 383 0 R /Prev 423 0 R /Next 431 0 R >> endobj 423 0 obj << /Title 424 0 R /A 421 0 R -/Parent 379 0 R +/Parent 383 0 R /Prev 419 0 R /Next 427 0 R >> endobj 419 0 obj << /Title 420 0 R /A 417 0 R -/Parent 379 0 R +/Parent 383 0 R /Prev 415 0 R /Next 423 0 R >> endobj 415 0 obj << /Title 416 0 R /A 413 0 R -/Parent 379 0 R +/Parent 383 0 R /Prev 411 0 R /Next 419 0 R >> endobj 411 0 obj << /Title 412 0 R /A 409 0 R -/Parent 379 0 R +/Parent 383 0 R /Prev 407 0 R /Next 415 0 R >> endobj 407 0 obj << /Title 408 0 R /A 405 0 R -/Parent 379 0 R +/Parent 383 0 R /Prev 403 0 R /Next 411 0 R >> endobj 403 0 obj << /Title 404 0 R /A 401 0 R -/Parent 379 0 R +/Parent 383 0 R /Prev 399 0 R /Next 407 0 R >> endobj 399 0 obj << /Title 400 0 R /A 397 0 R -/Parent 379 0 R +/Parent 383 0 R /Prev 395 0 R /Next 403 0 R >> endobj 395 0 obj << /Title 396 0 R /A 393 0 R -/Parent 379 0 R +/Parent 383 0 R /Prev 391 0 R /Next 399 0 R >> endobj 391 0 obj << /Title 392 0 R /A 389 0 R -/Parent 379 0 R +/Parent 383 0 R /Prev 387 0 R /Next 395 0 R >> endobj 387 0 obj << /Title 388 0 R /A 385 0 R -/Parent 379 0 R -/Prev 383 0 R +/Parent 383 0 R /Next 391 0 R >> endobj 383 0 obj << /Title 384 0 R /A 381 0 R -/Parent 379 0 R -/Next 387 0 R +/Parent 7 0 R +/Prev 271 0 R +/Next 451 0 R +/First 387 0 R +/Last 447 0 R +/Count -16 >> endobj 379 0 obj << /Title 380 0 R /A 377 0 R -/Parent 7 0 R -/Prev 267 0 R -/Next 447 0 R -/First 383 0 R -/Last 443 0 R -/Count -16 +/Parent 271 0 R +/Prev 375 0 R >> endobj 375 0 obj << /Title 376 0 R /A 373 0 R -/Parent 267 0 R +/Parent 271 0 R /Prev 371 0 R +/Next 379 0 R >> endobj 371 0 obj << /Title 372 0 R /A 369 0 R -/Parent 267 0 R +/Parent 271 0 R /Prev 367 0 R /Next 375 0 R >> endobj 367 0 obj << /Title 368 0 R /A 365 0 R -/Parent 267 0 R +/Parent 271 0 R /Prev 363 0 R /Next 371 0 R >> endobj 363 0 obj << /Title 364 0 R /A 361 0 R -/Parent 267 0 R +/Parent 271 0 R /Prev 359 0 R /Next 367 0 R >> endobj 359 0 obj << /Title 360 0 R /A 357 0 R -/Parent 267 0 R +/Parent 271 0 R /Prev 355 0 R /Next 363 0 R >> endobj 355 0 obj << /Title 356 0 R /A 353 0 R -/Parent 267 0 R +/Parent 271 0 R /Prev 351 0 R /Next 359 0 R >> endobj 351 0 obj << /Title 352 0 R /A 349 0 R -/Parent 267 0 R +/Parent 271 0 R /Prev 347 0 R /Next 355 0 R >> endobj 347 0 obj << /Title 348 0 R /A 345 0 R -/Parent 267 0 R +/Parent 271 0 R /Prev 343 0 R /Next 351 0 R >> endobj 343 0 obj << /Title 344 0 R /A 341 0 R -/Parent 267 0 R +/Parent 271 0 R /Prev 339 0 R /Next 347 0 R >> endobj 339 0 obj << /Title 340 0 R /A 337 0 R -/Parent 267 0 R +/Parent 271 0 R /Prev 335 0 R /Next 343 0 R >> endobj 335 0 obj << /Title 336 0 R /A 333 0 R -/Parent 267 0 R +/Parent 271 0 R /Prev 331 0 R /Next 339 0 R >> endobj 331 0 obj << /Title 332 0 R /A 329 0 R -/Parent 267 0 R +/Parent 271 0 R /Prev 327 0 R /Next 335 0 R >> endobj 327 0 obj << /Title 328 0 R /A 325 0 R -/Parent 267 0 R +/Parent 271 0 R /Prev 323 0 R /Next 331 0 R >> endobj 323 0 obj << /Title 324 0 R /A 321 0 R -/Parent 267 0 R +/Parent 271 0 R /Prev 319 0 R /Next 327 0 R >> endobj 319 0 obj << /Title 320 0 R /A 317 0 R -/Parent 267 0 R +/Parent 271 0 R /Prev 315 0 R /Next 323 0 R >> endobj 315 0 obj << /Title 316 0 R /A 313 0 R -/Parent 267 0 R +/Parent 271 0 R /Prev 311 0 R /Next 319 0 R >> endobj 311 0 obj << /Title 312 0 R /A 309 0 R -/Parent 267 0 R +/Parent 271 0 R /Prev 307 0 R /Next 315 0 R >> endobj 307 0 obj << /Title 308 0 R /A 305 0 R -/Parent 267 0 R +/Parent 271 0 R /Prev 303 0 R /Next 311 0 R >> endobj 303 0 obj << /Title 304 0 R /A 301 0 R -/Parent 267 0 R +/Parent 271 0 R /Prev 299 0 R /Next 307 0 R >> endobj 299 0 obj << /Title 300 0 R /A 297 0 R -/Parent 267 0 R +/Parent 271 0 R /Prev 295 0 R /Next 303 0 R >> endobj 295 0 obj << /Title 296 0 R /A 293 0 R -/Parent 267 0 R +/Parent 271 0 R /Prev 291 0 R /Next 299 0 R >> endobj 291 0 obj << /Title 292 0 R /A 289 0 R -/Parent 267 0 R +/Parent 271 0 R /Prev 287 0 R /Next 295 0 R >> endobj 287 0 obj << /Title 288 0 R /A 285 0 R -/Parent 267 0 R +/Parent 271 0 R /Prev 283 0 R /Next 291 0 R >> endobj 283 0 obj << /Title 284 0 R /A 281 0 R -/Parent 267 0 R +/Parent 271 0 R /Prev 279 0 R /Next 287 0 R >> endobj 279 0 obj << /Title 280 0 R /A 277 0 R -/Parent 267 0 R +/Parent 271 0 R /Prev 275 0 R /Next 283 0 R >> endobj 275 0 obj << /Title 276 0 R /A 273 0 R -/Parent 267 0 R -/Prev 271 0 R +/Parent 271 0 R /Next 279 0 R >> endobj 271 0 obj << /Title 272 0 R /A 269 0 R -/Parent 267 0 R -/Next 275 0 R +/Parent 7 0 R +/Prev 251 0 R +/Next 383 0 R +/First 275 0 R +/Last 379 0 R +/Count -27 >> endobj 267 0 obj << /Title 268 0 R /A 265 0 R -/Parent 7 0 R -/Prev 247 0 R -/Next 379 0 R -/First 271 0 R -/Last 375 0 R -/Count -27 +/Parent 251 0 R +/Prev 263 0 R >> endobj 263 0 obj << /Title 264 0 R /A 261 0 R -/Parent 247 0 R +/Parent 251 0 R /Prev 259 0 R +/Next 267 0 R >> endobj 259 0 obj << /Title 260 0 R /A 257 0 R -/Parent 247 0 R +/Parent 251 0 R /Prev 255 0 R /Next 263 0 R >> endobj 255 0 obj << /Title 256 0 R /A 253 0 R -/Parent 247 0 R -/Prev 251 0 R +/Parent 251 0 R /Next 259 0 R >> endobj 251 0 obj << /Title 252 0 R /A 249 0 R -/Parent 247 0 R -/Next 255 0 R +/Parent 7 0 R +/Prev 195 0 R +/Next 271 0 R +/First 255 0 R +/Last 267 0 R +/Count -4 >> endobj 247 0 obj << /Title 248 0 R /A 245 0 R -/Parent 7 0 R -/Prev 191 0 R -/Next 267 0 R -/First 251 0 R -/Last 263 0 R -/Count -4 +/Parent 195 0 R +/Prev 243 0 R >> endobj 243 0 obj << /Title 244 0 R /A 241 0 R -/Parent 191 0 R +/Parent 195 0 R /Prev 239 0 R +/Next 247 0 R >> endobj 239 0 obj << /Title 240 0 R /A 237 0 R -/Parent 191 0 R +/Parent 195 0 R /Prev 235 0 R /Next 243 0 R >> endobj 235 0 obj << /Title 236 0 R /A 233 0 R -/Parent 191 0 R +/Parent 195 0 R /Prev 231 0 R /Next 239 0 R >> endobj 231 0 obj << /Title 232 0 R /A 229 0 R -/Parent 191 0 R +/Parent 195 0 R /Prev 227 0 R /Next 235 0 R >> endobj 227 0 obj << /Title 228 0 R /A 225 0 R -/Parent 191 0 R +/Parent 195 0 R /Prev 223 0 R /Next 231 0 R >> endobj 223 0 obj << /Title 224 0 R /A 221 0 R -/Parent 191 0 R +/Parent 195 0 R /Prev 219 0 R /Next 227 0 R >> endobj 219 0 obj << /Title 220 0 R /A 217 0 R -/Parent 191 0 R +/Parent 195 0 R /Prev 215 0 R /Next 223 0 R >> endobj 215 0 obj << /Title 216 0 R /A 213 0 R -/Parent 191 0 R +/Parent 195 0 R /Prev 211 0 R /Next 219 0 R >> endobj 211 0 obj << /Title 212 0 R /A 209 0 R -/Parent 191 0 R +/Parent 195 0 R /Prev 207 0 R /Next 215 0 R >> endobj 207 0 obj << /Title 208 0 R /A 205 0 R -/Parent 191 0 R +/Parent 195 0 R /Prev 203 0 R /Next 211 0 R >> endobj 203 0 obj << /Title 204 0 R /A 201 0 R -/Parent 191 0 R +/Parent 195 0 R /Prev 199 0 R /Next 207 0 R >> endobj 199 0 obj << /Title 200 0 R /A 197 0 R -/Parent 191 0 R -/Prev 195 0 R +/Parent 195 0 R /Next 203 0 R >> endobj 195 0 obj << /Title 196 0 R /A 193 0 R -/Parent 191 0 R -/Next 199 0 R +/Parent 7 0 R +/Prev 39 0 R +/Next 251 0 R +/First 199 0 R +/Last 247 0 R +/Count -13 >> endobj 191 0 obj << /Title 192 0 R /A 189 0 R -/Parent 7 0 R -/Prev 39 0 R -/Next 247 0 R -/First 195 0 R -/Last 243 0 R -/Count -13 +/Parent 39 0 R +/Prev 167 0 R >> endobj 187 0 obj << /Title 188 0 R /A 185 0 R -/Parent 39 0 R -/Prev 163 0 R +/Parent 171 0 R +/Prev 183 0 R >> endobj 183 0 obj << /Title 184 0 R /A 181 0 R -/Parent 167 0 R +/Parent 171 0 R /Prev 179 0 R +/Next 187 0 R >> endobj 179 0 obj << /Title 180 0 R /A 177 0 R -/Parent 167 0 R +/Parent 171 0 R /Prev 175 0 R /Next 183 0 R >> endobj 175 0 obj << /Title 176 0 R /A 173 0 R -/Parent 167 0 R -/Prev 171 0 R +/Parent 171 0 R /Next 179 0 R >> endobj 171 0 obj << /Title 172 0 R /A 169 0 R /Parent 167 0 R -/Next 175 0 R +/First 175 0 R +/Last 187 0 R +/Count -4 >> endobj 167 0 obj << /Title 168 0 R /A 165 0 R -/Parent 163 0 R +/Parent 39 0 R +/Prev 91 0 R +/Next 191 0 R /First 171 0 R -/Last 183 0 R -/Count -4 +/Last 171 0 R +/Count -1 >> endobj 163 0 obj << /Title 164 0 R /A 161 0 R -/Parent 39 0 R -/Prev 87 0 R -/Next 187 0 R -/First 167 0 R -/Last 167 0 R -/Count -1 +/Parent 91 0 R +/Prev 95 0 R >> endobj 159 0 obj << /Title 160 0 R /A 157 0 R -/Parent 87 0 R -/Prev 91 0 R +/Parent 95 0 R +/Prev 155 0 R >> endobj 155 0 obj << /Title 156 0 R /A 153 0 R -/Parent 91 0 R +/Parent 95 0 R /Prev 151 0 R +/Next 159 0 R >> endobj 151 0 obj << /Title 152 0 R /A 149 0 R -/Parent 91 0 R +/Parent 95 0 R /Prev 147 0 R /Next 155 0 R >> endobj 147 0 obj << /Title 148 0 R /A 145 0 R -/Parent 91 0 R +/Parent 95 0 R /Prev 143 0 R /Next 151 0 R >> endobj 143 0 obj << /Title 144 0 R /A 141 0 R -/Parent 91 0 R +/Parent 95 0 R /Prev 139 0 R /Next 147 0 R >> endobj 139 0 obj << /Title 140 0 R /A 137 0 R -/Parent 91 0 R +/Parent 95 0 R /Prev 135 0 R /Next 143 0 R >> endobj 135 0 obj << /Title 136 0 R /A 133 0 R -/Parent 91 0 R +/Parent 95 0 R /Prev 131 0 R /Next 139 0 R >> endobj 131 0 obj << /Title 132 0 R /A 129 0 R -/Parent 91 0 R +/Parent 95 0 R /Prev 127 0 R /Next 135 0 R >> endobj 127 0 obj << /Title 128 0 R /A 125 0 R -/Parent 91 0 R +/Parent 95 0 R /Prev 123 0 R /Next 131 0 R >> endobj 123 0 obj << /Title 124 0 R /A 121 0 R -/Parent 91 0 R +/Parent 95 0 R /Prev 119 0 R /Next 127 0 R >> endobj 119 0 obj << /Title 120 0 R /A 117 0 R -/Parent 91 0 R +/Parent 95 0 R /Prev 115 0 R /Next 123 0 R >> endobj 115 0 obj << /Title 116 0 R /A 113 0 R -/Parent 91 0 R +/Parent 95 0 R /Prev 111 0 R /Next 119 0 R >> endobj 111 0 obj << /Title 112 0 R /A 109 0 R -/Parent 91 0 R +/Parent 95 0 R /Prev 107 0 R /Next 115 0 R >> endobj 107 0 obj << /Title 108 0 R /A 105 0 R -/Parent 91 0 R +/Parent 95 0 R /Prev 103 0 R /Next 111 0 R >> endobj 103 0 obj << /Title 104 0 R /A 101 0 R -/Parent 91 0 R +/Parent 95 0 R /Prev 99 0 R /Next 107 0 R >> endobj 99 0 obj << /Title 100 0 R /A 97 0 R -/Parent 91 0 R -/Prev 95 0 R +/Parent 95 0 R /Next 103 0 R >> endobj 95 0 obj << /Title 96 0 R /A 93 0 R /Parent 91 0 R -/Next 99 0 R +/Next 163 0 R +/First 99 0 R +/Last 159 0 R +/Count -16 >> endobj 91 0 obj << /Title 92 0 R /A 89 0 R -/Parent 87 0 R -/Next 159 0 R +/Parent 39 0 R +/Prev 43 0 R +/Next 167 0 R /First 95 0 R -/Last 155 0 R -/Count -16 +/Last 163 0 R +/Count -2 >> endobj 87 0 obj << /Title 88 0 R /A 85 0 R -/Parent 39 0 R -/Prev 43 0 R -/Next 163 0 R -/First 91 0 R -/Last 159 0 R -/Count -2 +/Parent 43 0 R +/Prev 47 0 R >> endobj 83 0 obj << /Title 84 0 R /A 81 0 R -/Parent 43 0 R -/Prev 47 0 R +/Parent 47 0 R +/Prev 79 0 R >> endobj 79 0 obj << /Title 80 0 R /A 77 0 R /Parent 47 0 R /Prev 75 0 R +/Next 83 0 R >> endobj 75 0 obj << /Title 76 0 R @@ -23584,18 +23665,18 @@ endobj /Title 48 0 R /A 45 0 R /Parent 43 0 R -/Next 83 0 R +/Next 87 0 R /First 51 0 R -/Last 79 0 R -/Count -8 +/Last 83 0 R +/Count -9 >> endobj 43 0 obj << /Title 44 0 R /A 41 0 R /Parent 39 0 R -/Next 87 0 R +/Next 91 0 R /First 47 0 R -/Last 83 0 R +/Last 87 0 R /Count -2 >> endobj 39 0 obj << @@ -23603,9 +23684,9 @@ endobj /A 37 0 R /Parent 7 0 R /Prev 15 0 R -/Next 191 0 R +/Next 195 0 R /First 43 0 R -/Last 187 0 R +/Last 191 0 R /Count -4 >> endobj 35 0 obj << @@ -23661,2335 +23742,2340 @@ endobj 7 0 obj << /Title 8 0 R /A 5 0 R -/Parent 1770 0 R +/Parent 1775 0 R /First 11 0 R -/Last 519 0 R +/Last 523 0 R /Count -11 >> endobj -1771 0 obj << -/Names [(Doc-Start) 530 0 R (Hfootnote.1) 739 0 R (Hfootnote.2) 741 0 R (Hfootnote.3) 1644 0 R (Item.1) 768 0 R (Item.10) 782 0 R] -/Limits [(Doc-Start) (Item.10)] ->> endobj -1772 0 obj << -/Names [(Item.100) 1435 0 R (Item.101) 1444 0 R (Item.102) 1445 0 R (Item.103) 1451 0 R (Item.104) 1452 0 R (Item.105) 1457 0 R] -/Limits [(Item.100) (Item.105)] ->> endobj -1773 0 obj << -/Names [(Item.106) 1458 0 R (Item.107) 1459 0 R (Item.108) 1489 0 R (Item.109) 1490 0 R (Item.11) 783 0 R (Item.110) 1495 0 R] -/Limits [(Item.106) (Item.110)] ->> endobj -1774 0 obj << -/Names [(Item.111) 1496 0 R (Item.112) 1501 0 R (Item.113) 1502 0 R (Item.114) 1507 0 R (Item.115) 1508 0 R (Item.116) 1514 0 R] -/Limits [(Item.111) (Item.116)] ->> endobj -1775 0 obj << -/Names [(Item.117) 1515 0 R (Item.118) 1520 0 R (Item.119) 1525 0 R (Item.12) 784 0 R (Item.13) 785 0 R (Item.14) 786 0 R] -/Limits [(Item.117) (Item.14)] ->> endobj 1776 0 obj << -/Names [(Item.15) 787 0 R (Item.16) 788 0 R (Item.17) 789 0 R (Item.18) 790 0 R (Item.19) 791 0 R (Item.2) 769 0 R] -/Limits [(Item.15) (Item.2)] +/Names [(Doc-Start) 534 0 R (Hfootnote.1) 744 0 R (Hfootnote.2) 746 0 R (Hfootnote.3) 1649 0 R (Item.1) 773 0 R (Item.10) 787 0 R] +/Limits [(Doc-Start) (Item.10)] >> endobj 1777 0 obj << -/Names [(Item.20) 792 0 R (Item.21) 793 0 R (Item.22) 800 0 R (Item.23) 801 0 R (Item.24) 802 0 R (Item.25) 803 0 R] -/Limits [(Item.20) (Item.25)] +/Names [(Item.100) 1440 0 R (Item.101) 1449 0 R (Item.102) 1450 0 R (Item.103) 1456 0 R (Item.104) 1457 0 R (Item.105) 1462 0 R] +/Limits [(Item.100) (Item.105)] >> endobj 1778 0 obj << -/Names [(Item.26) 804 0 R (Item.27) 805 0 R (Item.28) 817 0 R (Item.29) 818 0 R (Item.3) 770 0 R (Item.30) 819 0 R] -/Limits [(Item.26) (Item.30)] +/Names [(Item.106) 1463 0 R (Item.107) 1464 0 R (Item.108) 1494 0 R (Item.109) 1495 0 R (Item.11) 788 0 R (Item.110) 1500 0 R] +/Limits [(Item.106) (Item.110)] >> endobj 1779 0 obj << -/Names [(Item.31) 820 0 R (Item.32) 821 0 R (Item.33) 822 0 R (Item.34) 823 0 R (Item.35) 824 0 R (Item.36) 829 0 R] -/Limits [(Item.31) (Item.36)] +/Names [(Item.111) 1501 0 R (Item.112) 1506 0 R (Item.113) 1507 0 R (Item.114) 1512 0 R (Item.115) 1513 0 R (Item.116) 1519 0 R] +/Limits [(Item.111) (Item.116)] >> endobj 1780 0 obj << -/Names [(Item.37) 830 0 R (Item.38) 831 0 R (Item.39) 832 0 R (Item.4) 771 0 R (Item.40) 833 0 R (Item.41) 865 0 R] -/Limits [(Item.37) (Item.41)] +/Names [(Item.117) 1520 0 R (Item.118) 1525 0 R (Item.119) 1530 0 R (Item.12) 789 0 R (Item.13) 790 0 R (Item.14) 791 0 R] +/Limits [(Item.117) (Item.14)] >> endobj 1781 0 obj << -/Names [(Item.42) 1132 0 R (Item.43) 1133 0 R (Item.44) 1134 0 R (Item.45) 1188 0 R (Item.46) 1194 0 R (Item.47) 1199 0 R] -/Limits [(Item.42) (Item.47)] +/Names [(Item.15) 792 0 R (Item.16) 793 0 R (Item.17) 794 0 R (Item.18) 795 0 R (Item.19) 796 0 R (Item.2) 774 0 R] +/Limits [(Item.15) (Item.2)] >> endobj 1782 0 obj << -/Names [(Item.48) 1200 0 R (Item.49) 1201 0 R (Item.5) 772 0 R (Item.50) 1202 0 R (Item.51) 1203 0 R (Item.52) 1215 0 R] -/Limits [(Item.48) (Item.52)] +/Names [(Item.20) 797 0 R (Item.21) 798 0 R (Item.22) 805 0 R (Item.23) 806 0 R (Item.24) 807 0 R (Item.25) 808 0 R] +/Limits [(Item.20) (Item.25)] >> endobj 1783 0 obj << -/Names [(Item.53) 1216 0 R (Item.54) 1217 0 R (Item.55) 1224 0 R (Item.56) 1247 0 R (Item.57) 1248 0 R (Item.58) 1255 0 R] -/Limits [(Item.53) (Item.58)] +/Names [(Item.26) 809 0 R (Item.27) 810 0 R (Item.28) 822 0 R (Item.29) 823 0 R (Item.3) 775 0 R (Item.30) 824 0 R] +/Limits [(Item.26) (Item.30)] >> endobj 1784 0 obj << -/Names [(Item.59) 1256 0 R (Item.6) 773 0 R (Item.60) 1257 0 R (Item.61) 1269 0 R (Item.62) 1270 0 R (Item.63) 1271 0 R] -/Limits [(Item.59) (Item.63)] +/Names [(Item.31) 825 0 R (Item.32) 826 0 R (Item.33) 827 0 R (Item.34) 828 0 R (Item.35) 829 0 R (Item.36) 834 0 R] +/Limits [(Item.31) (Item.36)] >> endobj 1785 0 obj << -/Names [(Item.64) 1272 0 R (Item.65) 1273 0 R (Item.66) 1274 0 R (Item.67) 1275 0 R (Item.68) 1276 0 R (Item.69) 1277 0 R] -/Limits [(Item.64) (Item.69)] +/Names [(Item.37) 835 0 R (Item.38) 836 0 R (Item.39) 837 0 R (Item.4) 776 0 R (Item.40) 838 0 R (Item.41) 870 0 R] +/Limits [(Item.37) (Item.41)] >> endobj 1786 0 obj << -/Names [(Item.7) 774 0 R (Item.70) 1288 0 R (Item.71) 1289 0 R (Item.72) 1290 0 R (Item.73) 1291 0 R (Item.74) 1292 0 R] -/Limits [(Item.7) (Item.74)] +/Names [(Item.42) 1137 0 R (Item.43) 1138 0 R (Item.44) 1139 0 R (Item.45) 1193 0 R (Item.46) 1199 0 R (Item.47) 1204 0 R] +/Limits [(Item.42) (Item.47)] >> endobj 1787 0 obj << -/Names [(Item.75) 1293 0 R (Item.76) 1307 0 R (Item.77) 1324 0 R (Item.78) 1325 0 R (Item.79) 1353 0 R (Item.8) 775 0 R] -/Limits [(Item.75) (Item.8)] +/Names [(Item.48) 1205 0 R (Item.49) 1206 0 R (Item.5) 777 0 R (Item.50) 1207 0 R (Item.51) 1208 0 R (Item.52) 1220 0 R] +/Limits [(Item.48) (Item.52)] >> endobj 1788 0 obj << -/Names [(Item.80) 1354 0 R (Item.81) 1365 0 R (Item.82) 1372 0 R (Item.83) 1378 0 R (Item.84) 1384 0 R (Item.85) 1390 0 R] -/Limits [(Item.80) (Item.85)] +/Names [(Item.53) 1221 0 R (Item.54) 1222 0 R (Item.55) 1229 0 R (Item.56) 1252 0 R (Item.57) 1253 0 R (Item.58) 1260 0 R] +/Limits [(Item.53) (Item.58)] >> endobj 1789 0 obj << -/Names [(Item.86) 1391 0 R (Item.87) 1397 0 R (Item.88) 1398 0 R (Item.89) 1409 0 R (Item.9) 781 0 R (Item.90) 1410 0 R] -/Limits [(Item.86) (Item.90)] +/Names [(Item.59) 1261 0 R (Item.6) 778 0 R (Item.60) 1262 0 R (Item.61) 1274 0 R (Item.62) 1275 0 R (Item.63) 1276 0 R] +/Limits [(Item.59) (Item.63)] >> endobj 1790 0 obj << -/Names [(Item.91) 1411 0 R (Item.92) 1427 0 R (Item.93) 1428 0 R (Item.94) 1429 0 R (Item.95) 1430 0 R (Item.96) 1431 0 R] -/Limits [(Item.91) (Item.96)] +/Names [(Item.64) 1277 0 R (Item.65) 1278 0 R (Item.66) 1279 0 R (Item.67) 1280 0 R (Item.68) 1281 0 R (Item.69) 1282 0 R] +/Limits [(Item.64) (Item.69)] >> endobj 1791 0 obj << -/Names [(Item.97) 1432 0 R (Item.98) 1433 0 R (Item.99) 1434 0 R (cite.2007c) 755 0 R (cite.2007d) 756 0 R (cite.BLACS) 727 0 R] -/Limits [(Item.97) (cite.BLACS)] +/Names [(Item.7) 779 0 R (Item.70) 1293 0 R (Item.71) 1294 0 R (Item.72) 1295 0 R (Item.73) 1296 0 R (Item.74) 1297 0 R] +/Limits [(Item.7) (Item.74)] >> endobj 1792 0 obj << -/Names [(cite.BLAS1) 708 0 R (cite.BLAS2) 709 0 R (cite.BLAS3) 710 0 R (cite.DesPat:11) 703 0 R (cite.DesignPatterns) 854 0 R (cite.KIVA3PSBLAS) 1708 0 R] -/Limits [(cite.BLAS1) (cite.KIVA3PSBLAS)] +/Names [(Item.75) 1298 0 R (Item.76) 1312 0 R (Item.77) 1329 0 R (Item.78) 1330 0 R (Item.79) 1358 0 R (Item.8) 780 0 R] +/Limits [(Item.75) (Item.8)] >> endobj 1793 0 obj << -/Names [(cite.METIS) 742 0 R (cite.MPI1) 1713 0 R (cite.PARA04FOREST) 1706 0 R (cite.PSBLAS) 1707 0 R (cite.RouXiaXu:11) 704 0 R (cite.Sparse03) 702 0 R] -/Limits [(cite.METIS) (cite.Sparse03)] +/Names [(Item.80) 1359 0 R (Item.81) 1370 0 R (Item.82) 1377 0 R (Item.83) 1383 0 R (Item.84) 1389 0 R (Item.85) 1395 0 R] +/Limits [(Item.80) (Item.85)] >> endobj 1794 0 obj << -/Names [(cite.machiels) 705 0 R (cite.metcalf) 701 0 R (cite.sblas02) 707 0 R (cite.sblas97) 706 0 R (descdata) 811 0 R (equation.1) 1039 0 R] -/Limits [(cite.machiels) (equation.1)] +/Names [(Item.86) 1396 0 R (Item.87) 1402 0 R (Item.88) 1403 0 R (Item.89) 1414 0 R (Item.9) 786 0 R (Item.90) 1415 0 R] +/Limits [(Item.86) (Item.90)] >> endobj 1795 0 obj << -/Names [(equation.2) 1040 0 R (equation.3) 1041 0 R (figure.1) 720 0 R (figure.10) 1533 0 R (figure.2) 750 0 R (figure.3) 834 0 R] -/Limits [(equation.2) (figure.3)] +/Names [(Item.91) 1416 0 R (Item.92) 1432 0 R (Item.93) 1433 0 R (Item.94) 1434 0 R (Item.95) 1435 0 R (Item.96) 1436 0 R] +/Limits [(Item.91) (Item.96)] >> endobj 1796 0 obj << -/Names [(figure.4) 855 0 R (figure.5) 895 0 R (figure.6) 907 0 R (figure.7) 1101 0 R (figure.8) 1135 0 R (figure.9) 1532 0 R] -/Limits [(figure.4) (figure.9)] +/Names [(Item.97) 1437 0 R (Item.98) 1438 0 R (Item.99) 1439 0 R (cite.2007c) 760 0 R (cite.2007d) 761 0 R (cite.BLACS) 732 0 R] +/Limits [(Item.97) (cite.BLACS)] >> endobj 1797 0 obj << -/Names [(lstlisting.-1) 1092 0 R (lstlisting.-10) 1598 0 R (lstlisting.-11) 1605 0 R (lstlisting.-12) 1613 0 R (lstlisting.-13) 1619 0 R (lstlisting.-14) 1626 0 R] -/Limits [(lstlisting.-1) (lstlisting.-14)] +/Names [(cite.BLAS1) 713 0 R (cite.BLAS2) 714 0 R (cite.BLAS3) 715 0 R (cite.DesPat:11) 708 0 R (cite.DesignPatterns) 865 0 R (cite.KIVA3PSBLAS) 1713 0 R] +/Limits [(cite.BLAS1) (cite.KIVA3PSBLAS)] >> endobj 1798 0 obj << -/Names [(lstlisting.-15) 1632 0 R (lstlisting.-16) 1683 0 R (lstlisting.-2) 1121 0 R (lstlisting.-3) 1157 0 R (lstlisting.-4) 1172 0 R (lstlisting.-5) 1538 0 R] -/Limits [(lstlisting.-15) (lstlisting.-5)] +/Names [(cite.METIS) 747 0 R (cite.MPI1) 1718 0 R (cite.PARA04FOREST) 1711 0 R (cite.PSBLAS) 1712 0 R (cite.RouXiaXu:11) 709 0 R (cite.Sparse03) 707 0 R] +/Limits [(cite.METIS) (cite.Sparse03)] >> endobj 1799 0 obj << -/Names [(lstlisting.-6) 1568 0 R (lstlisting.-7) 1575 0 R (lstlisting.-8) 1581 0 R (lstlisting.-9) 1587 0 R (lstnumber.-1.1) 1093 0 R (lstnumber.-1.2) 1094 0 R] -/Limits [(lstlisting.-6) (lstnumber.-1.2)] +/Names [(cite.machiels) 710 0 R (cite.metcalf) 706 0 R (cite.sblas02) 712 0 R (cite.sblas97) 711 0 R (descdata) 816 0 R (equation.1) 1044 0 R] +/Limits [(cite.machiels) (equation.1)] >> endobj 1800 0 obj << -/Names [(lstnumber.-10.1) 1599 0 R (lstnumber.-11.1) 1606 0 R (lstnumber.-12.1) 1614 0 R (lstnumber.-13.1) 1620 0 R (lstnumber.-14.1) 1627 0 R (lstnumber.-15.1) 1633 0 R] -/Limits [(lstnumber.-10.1) (lstnumber.-15.1)] +/Names [(equation.2) 1045 0 R (equation.3) 1046 0 R (figure.1) 725 0 R (figure.10) 1538 0 R (figure.2) 755 0 R (figure.3) 839 0 R] +/Limits [(equation.2) (figure.3)] >> endobj 1801 0 obj << -/Names [(lstnumber.-16.1) 1684 0 R (lstnumber.-16.2) 1685 0 R (lstnumber.-2.1) 1122 0 R (lstnumber.-2.2) 1123 0 R (lstnumber.-3.1) 1158 0 R (lstnumber.-3.2) 1159 0 R] -/Limits [(lstnumber.-16.1) (lstnumber.-3.2)] +/Names [(figure.4) 864 0 R (figure.5) 900 0 R (figure.6) 912 0 R (figure.7) 1106 0 R (figure.8) 1140 0 R (figure.9) 1537 0 R] +/Limits [(figure.4) (figure.9)] >> endobj 1802 0 obj << -/Names [(lstnumber.-4.1) 1173 0 R (lstnumber.-4.2) 1174 0 R (lstnumber.-5.1) 1539 0 R (lstnumber.-5.10) 1549 0 R (lstnumber.-5.11) 1550 0 R (lstnumber.-5.12) 1551 0 R] -/Limits [(lstnumber.-4.1) (lstnumber.-5.12)] +/Names [(lstlisting.-1) 1097 0 R (lstlisting.-10) 1603 0 R (lstlisting.-11) 1610 0 R (lstlisting.-12) 1618 0 R (lstlisting.-13) 1624 0 R (lstlisting.-14) 1631 0 R] +/Limits [(lstlisting.-1) (lstlisting.-14)] >> endobj 1803 0 obj << -/Names [(lstnumber.-5.13) 1552 0 R (lstnumber.-5.14) 1553 0 R (lstnumber.-5.15) 1554 0 R (lstnumber.-5.16) 1555 0 R (lstnumber.-5.17) 1556 0 R (lstnumber.-5.18) 1557 0 R] -/Limits [(lstnumber.-5.13) (lstnumber.-5.18)] +/Names [(lstlisting.-15) 1637 0 R (lstlisting.-16) 1688 0 R (lstlisting.-2) 1126 0 R (lstlisting.-3) 1162 0 R (lstlisting.-4) 1177 0 R (lstlisting.-5) 1543 0 R] +/Limits [(lstlisting.-15) (lstlisting.-5)] >> endobj 1804 0 obj << -/Names [(lstnumber.-5.19) 1558 0 R (lstnumber.-5.2) 1541 0 R (lstnumber.-5.20) 1559 0 R (lstnumber.-5.21) 1560 0 R (lstnumber.-5.22) 1561 0 R (lstnumber.-5.23) 1562 0 R] -/Limits [(lstnumber.-5.19) (lstnumber.-5.23)] +/Names [(lstlisting.-6) 1573 0 R (lstlisting.-7) 1580 0 R (lstlisting.-8) 1586 0 R (lstlisting.-9) 1592 0 R (lstnumber.-1.1) 1098 0 R (lstnumber.-1.2) 1099 0 R] +/Limits [(lstlisting.-6) (lstnumber.-1.2)] >> endobj 1805 0 obj << -/Names [(lstnumber.-5.24) 1563 0 R (lstnumber.-5.3) 1542 0 R (lstnumber.-5.4) 1543 0 R (lstnumber.-5.5) 1544 0 R (lstnumber.-5.6) 1545 0 R (lstnumber.-5.7) 1546 0 R] -/Limits [(lstnumber.-5.24) (lstnumber.-5.7)] +/Names [(lstnumber.-10.1) 1604 0 R (lstnumber.-11.1) 1611 0 R (lstnumber.-12.1) 1619 0 R (lstnumber.-13.1) 1625 0 R (lstnumber.-14.1) 1632 0 R (lstnumber.-15.1) 1638 0 R] +/Limits [(lstnumber.-10.1) (lstnumber.-15.1)] >> endobj 1806 0 obj << -/Names [(lstnumber.-5.8) 1547 0 R (lstnumber.-5.9) 1548 0 R (lstnumber.-6.1) 1569 0 R (lstnumber.-7.1) 1576 0 R (lstnumber.-8.1) 1582 0 R (lstnumber.-9.1) 1588 0 R] -/Limits [(lstnumber.-5.8) (lstnumber.-9.1)] +/Names [(lstnumber.-16.1) 1689 0 R (lstnumber.-16.2) 1690 0 R (lstnumber.-2.1) 1127 0 R (lstnumber.-2.2) 1128 0 R (lstnumber.-3.1) 1163 0 R (lstnumber.-3.2) 1164 0 R] +/Limits [(lstnumber.-16.1) (lstnumber.-3.2)] >> endobj 1807 0 obj << -/Names [(page.1) 529 0 R (page.10) 816 0 R (page.100) 1463 0 R (page.101) 1467 0 R (page.102) 1471 0 R (page.103) 1475 0 R] -/Limits [(page.1) (page.103)] +/Names [(lstnumber.-4.1) 1178 0 R (lstnumber.-4.2) 1179 0 R (lstnumber.-5.1) 1544 0 R (lstnumber.-5.10) 1554 0 R (lstnumber.-5.11) 1555 0 R (lstnumber.-5.12) 1556 0 R] +/Limits [(lstnumber.-4.1) (lstnumber.-5.12)] >> endobj 1808 0 obj << -/Names [(page.104) 1480 0 R (page.105) 1484 0 R (page.106) 1488 0 R (page.107) 1494 0 R (page.108) 1500 0 R (page.109) 1506 0 R] -/Limits [(page.104) (page.109)] +/Names [(lstnumber.-5.13) 1557 0 R (lstnumber.-5.14) 1558 0 R (lstnumber.-5.15) 1559 0 R (lstnumber.-5.16) 1560 0 R (lstnumber.-5.17) 1561 0 R (lstnumber.-5.18) 1562 0 R] +/Limits [(lstnumber.-5.13) (lstnumber.-5.18)] >> endobj 1809 0 obj << -/Names [(page.11) 828 0 R (page.110) 1513 0 R (page.111) 1519 0 R (page.112) 1524 0 R (page.113) 1531 0 R (page.114) 1537 0 R] -/Limits [(page.11) (page.114)] +/Names [(lstnumber.-5.19) 1563 0 R (lstnumber.-5.2) 1546 0 R (lstnumber.-5.20) 1564 0 R (lstnumber.-5.21) 1565 0 R (lstnumber.-5.22) 1566 0 R (lstnumber.-5.23) 1567 0 R] +/Limits [(lstnumber.-5.19) (lstnumber.-5.23)] >> endobj 1810 0 obj << -/Names [(page.115) 1567 0 R (page.116) 1574 0 R (page.117) 1580 0 R (page.118) 1586 0 R (page.119) 1592 0 R (page.12) 840 0 R] -/Limits [(page.115) (page.12)] +/Names [(lstnumber.-5.24) 1568 0 R (lstnumber.-5.3) 1547 0 R (lstnumber.-5.4) 1548 0 R (lstnumber.-5.5) 1549 0 R (lstnumber.-5.6) 1550 0 R (lstnumber.-5.7) 1551 0 R] +/Limits [(lstnumber.-5.24) (lstnumber.-5.7)] >> endobj 1811 0 obj << -/Names [(page.120) 1597 0 R (page.121) 1604 0 R (page.122) 1612 0 R (page.123) 1618 0 R (page.124) 1625 0 R (page.125) 1631 0 R] -/Limits [(page.120) (page.125)] +/Names [(lstnumber.-5.8) 1552 0 R (lstnumber.-5.9) 1553 0 R (lstnumber.-6.1) 1574 0 R (lstnumber.-7.1) 1581 0 R (lstnumber.-8.1) 1587 0 R (lstnumber.-9.1) 1593 0 R] +/Limits [(lstnumber.-5.8) (lstnumber.-9.1)] >> endobj 1812 0 obj << -/Names [(page.126) 1637 0 R (page.127) 1643 0 R (page.128) 1653 0 R (page.129) 1661 0 R (page.13) 844 0 R (page.130) 1666 0 R] -/Limits [(page.126) (page.130)] +/Names [(page.1) 533 0 R (page.10) 821 0 R (page.100) 1468 0 R (page.101) 1472 0 R (page.102) 1476 0 R (page.103) 1480 0 R] +/Limits [(page.1) (page.103)] >> endobj 1813 0 obj << -/Names [(page.131) 1670 0 R (page.132) 1674 0 R (page.133) 1682 0 R (page.134) 1692 0 R (page.135) 1696 0 R (page.136) 1700 0 R] -/Limits [(page.131) (page.136)] +/Names [(page.104) 1485 0 R (page.105) 1489 0 R (page.106) 1493 0 R (page.107) 1499 0 R (page.108) 1505 0 R (page.109) 1511 0 R] +/Limits [(page.104) (page.109)] >> endobj 1814 0 obj << -/Names [(page.137) 1704 0 R (page.138) 1712 0 R (page.14) 852 0 R (page.15) 859 0 R (page.16) 864 0 R (page.17) 869 0 R] -/Limits [(page.137) (page.17)] +/Names [(page.11) 833 0 R (page.110) 1518 0 R (page.111) 1524 0 R (page.112) 1529 0 R (page.113) 1536 0 R (page.114) 1542 0 R] +/Limits [(page.11) (page.114)] >> endobj 1815 0 obj << -/Names [(page.18) 873 0 R (page.19) 877 0 R (page.2) 539 0 R (page.20) 882 0 R (page.21) 886 0 R (page.22) 892 0 R] -/Limits [(page.18) (page.22)] +/Names [(page.115) 1572 0 R (page.116) 1579 0 R (page.117) 1585 0 R (page.118) 1591 0 R (page.119) 1597 0 R (page.12) 845 0 R] +/Limits [(page.115) (page.12)] >> endobj 1816 0 obj << -/Names [(page.23) 899 0 R (page.24) 904 0 R (page.25) 911 0 R (page.26) 923 0 R (page.27) 930 0 R (page.28) 940 0 R] -/Limits [(page.23) (page.28)] +/Names [(page.120) 1602 0 R (page.121) 1609 0 R (page.122) 1617 0 R (page.123) 1623 0 R (page.124) 1630 0 R (page.125) 1636 0 R] +/Limits [(page.120) (page.125)] >> endobj 1817 0 obj << -/Names [(page.29) 945 0 R (page.3) 733 0 R (page.30) 955 0 R (page.31) 960 0 R (page.32) 968 0 R (page.33) 976 0 R] -/Limits [(page.29) (page.33)] +/Names [(page.126) 1642 0 R (page.127) 1648 0 R (page.128) 1658 0 R (page.129) 1666 0 R (page.13) 849 0 R (page.130) 1671 0 R] +/Limits [(page.126) (page.130)] >> endobj 1818 0 obj << -/Names [(page.34) 984 0 R (page.35) 992 0 R (page.36) 997 0 R (page.37) 1004 0 R (page.38) 1013 0 R (page.39) 1020 0 R] -/Limits [(page.34) (page.39)] +/Names [(page.131) 1675 0 R (page.132) 1679 0 R (page.133) 1687 0 R (page.134) 1697 0 R (page.135) 1701 0 R (page.136) 1705 0 R] +/Limits [(page.131) (page.136)] >> endobj 1819 0 obj << -/Names [(page.4) 749 0 R (page.40) 1027 0 R (page.41) 1038 0 R (page.42) 1053 0 R (page.43) 1059 0 R (page.44) 1071 0 R] -/Limits [(page.4) (page.44)] +/Names [(page.137) 1709 0 R (page.138) 1717 0 R (page.14) 854 0 R (page.15) 861 0 R (page.16) 869 0 R (page.17) 874 0 R] +/Limits [(page.137) (page.17)] >> endobj 1820 0 obj << -/Names [(page.45) 1077 0 R (page.46) 1082 0 R (page.47) 1090 0 R (page.48) 1100 0 R (page.49) 1110 0 R (page.5) 762 0 R] -/Limits [(page.45) (page.5)] +/Names [(page.18) 878 0 R (page.19) 882 0 R (page.2) 543 0 R (page.20) 887 0 R (page.21) 891 0 R (page.22) 897 0 R] +/Limits [(page.18) (page.22)] >> endobj 1821 0 obj << -/Names [(page.50) 1119 0 R (page.51) 1131 0 R (page.52) 1139 0 R (page.53) 1143 0 R (page.54) 1155 0 R (page.55) 1163 0 R] -/Limits [(page.50) (page.55)] +/Names [(page.23) 904 0 R (page.24) 909 0 R (page.25) 916 0 R (page.26) 928 0 R (page.27) 935 0 R (page.28) 945 0 R] +/Limits [(page.23) (page.28)] >> endobj 1822 0 obj << -/Names [(page.56) 1170 0 R (page.57) 1178 0 R (page.58) 1182 0 R (page.59) 1187 0 R (page.6) 766 0 R (page.60) 1193 0 R] -/Limits [(page.56) (page.60)] +/Names [(page.29) 950 0 R (page.3) 738 0 R (page.30) 960 0 R (page.31) 965 0 R (page.32) 973 0 R (page.33) 981 0 R] +/Limits [(page.29) (page.33)] >> endobj 1823 0 obj << -/Names [(page.61) 1198 0 R (page.62) 1209 0 R (page.63) 1214 0 R (page.64) 1223 0 R (page.65) 1230 0 R (page.66) 1235 0 R] -/Limits [(page.61) (page.66)] +/Names [(page.34) 989 0 R (page.35) 997 0 R (page.36) 1002 0 R (page.37) 1009 0 R (page.38) 1018 0 R (page.39) 1025 0 R] +/Limits [(page.34) (page.39)] >> endobj 1824 0 obj << -/Names [(page.67) 1241 0 R (page.68) 1246 0 R (page.69) 1254 0 R (page.7) 780 0 R (page.70) 1264 0 R (page.71) 1268 0 R] -/Limits [(page.67) (page.71)] +/Names [(page.4) 754 0 R (page.40) 1032 0 R (page.41) 1043 0 R (page.42) 1058 0 R (page.43) 1064 0 R (page.44) 1076 0 R] +/Limits [(page.4) (page.44)] >> endobj 1825 0 obj << -/Names [(page.72) 1283 0 R (page.73) 1287 0 R (page.74) 1300 0 R (page.75) 1306 0 R (page.76) 1313 0 R (page.77) 1319 0 R] -/Limits [(page.72) (page.77)] +/Names [(page.45) 1082 0 R (page.46) 1087 0 R (page.47) 1095 0 R (page.48) 1105 0 R (page.49) 1115 0 R (page.5) 767 0 R] +/Limits [(page.45) (page.5)] >> endobj 1826 0 obj << -/Names [(page.78) 1323 0 R (page.79) 1332 0 R (page.8) 799 0 R (page.80) 1339 0 R (page.81) 1343 0 R (page.82) 1348 0 R] -/Limits [(page.78) (page.82)] +/Names [(page.50) 1124 0 R (page.51) 1136 0 R (page.52) 1144 0 R (page.53) 1148 0 R (page.54) 1160 0 R (page.55) 1168 0 R] +/Limits [(page.50) (page.55)] >> endobj 1827 0 obj << -/Names [(page.83) 1352 0 R (page.84) 1359 0 R (page.85) 1364 0 R (page.86) 1371 0 R (page.87) 1377 0 R (page.88) 1383 0 R] -/Limits [(page.83) (page.88)] +/Names [(page.56) 1175 0 R (page.57) 1183 0 R (page.58) 1187 0 R (page.59) 1192 0 R (page.6) 771 0 R (page.60) 1198 0 R] +/Limits [(page.56) (page.60)] >> endobj 1828 0 obj << -/Names [(page.89) 1389 0 R (page.9) 810 0 R (page.90) 1396 0 R (page.91) 1403 0 R (page.92) 1408 0 R (page.93) 1418 0 R] -/Limits [(page.89) (page.93)] +/Names [(page.61) 1203 0 R (page.62) 1214 0 R (page.63) 1219 0 R (page.64) 1228 0 R (page.65) 1235 0 R (page.66) 1240 0 R] +/Limits [(page.61) (page.66)] >> endobj 1829 0 obj << -/Names [(page.94) 1422 0 R (page.95) 1426 0 R (page.96) 1439 0 R (page.97) 1443 0 R (page.98) 1450 0 R (page.99) 1456 0 R] -/Limits [(page.94) (page.99)] +/Names [(page.67) 1246 0 R (page.68) 1251 0 R (page.69) 1259 0 R (page.7) 785 0 R (page.70) 1269 0 R (page.71) 1273 0 R] +/Limits [(page.67) (page.71)] >> endobj 1830 0 obj << -/Names [(page.i) 589 0 R (page.ii) 641 0 R (page.iii) 681 0 R (page.iv) 685 0 R (precdata) 905 0 R (section*.1) 590 0 R] -/Limits [(page.i) (section*.1)] +/Names [(page.72) 1288 0 R (page.73) 1292 0 R (page.74) 1305 0 R (page.75) 1311 0 R (page.76) 1318 0 R (page.77) 1324 0 R] +/Limits [(page.72) (page.77)] >> endobj 1831 0 obj << -/Names [(section*.10) 94 0 R (section*.100) 498 0 R (section*.101) 502 0 R (section*.102) 506 0 R (section*.103) 510 0 R (section*.104) 514 0 R] -/Limits [(section*.10) (section*.104)] +/Names [(page.78) 1328 0 R (page.79) 1337 0 R (page.8) 804 0 R (page.80) 1344 0 R (page.81) 1348 0 R (page.82) 1353 0 R] +/Limits [(page.78) (page.82)] >> endobj 1832 0 obj << -/Names [(section*.105) 522 0 R (section*.106) 1705 0 R (section*.11) 98 0 R (section*.12) 102 0 R (section*.13) 106 0 R (section*.14) 110 0 R] -/Limits [(section*.105) (section*.14)] +/Names [(page.83) 1357 0 R (page.84) 1364 0 R (page.85) 1369 0 R (page.86) 1376 0 R (page.87) 1382 0 R (page.88) 1388 0 R] +/Limits [(page.83) (page.88)] >> endobj 1833 0 obj << -/Names [(section*.15) 114 0 R (section*.16) 118 0 R (section*.17) 122 0 R (section*.18) 126 0 R (section*.19) 130 0 R (section*.2) 50 0 R] -/Limits [(section*.15) (section*.2)] +/Names [(page.89) 1394 0 R (page.9) 815 0 R (page.90) 1401 0 R (page.91) 1408 0 R (page.92) 1413 0 R (page.93) 1423 0 R] +/Limits [(page.89) (page.93)] >> endobj 1834 0 obj << -/Names [(section*.20) 134 0 R (section*.21) 138 0 R (section*.22) 142 0 R (section*.23) 146 0 R (section*.24) 150 0 R (section*.25) 154 0 R] -/Limits [(section*.20) (section*.25)] +/Names [(page.94) 1427 0 R (page.95) 1431 0 R (page.96) 1444 0 R (page.97) 1448 0 R (page.98) 1455 0 R (page.99) 1461 0 R] +/Limits [(page.94) (page.99)] >> endobj 1835 0 obj << -/Names [(section*.26) 170 0 R (section*.27) 174 0 R (section*.28) 178 0 R (section*.29) 182 0 R (section*.3) 54 0 R (section*.30) 194 0 R] -/Limits [(section*.26) (section*.30)] +/Names [(page.i) 594 0 R (page.ii) 646 0 R (page.iii) 686 0 R (page.iv) 690 0 R (precdata) 910 0 R (section*.1) 595 0 R] +/Limits [(page.i) (section*.1)] >> endobj 1836 0 obj << -/Names [(section*.31) 198 0 R (section*.32) 202 0 R (section*.33) 206 0 R (section*.34) 210 0 R (section*.35) 214 0 R (section*.36) 218 0 R] -/Limits [(section*.31) (section*.36)] +/Names [(section*.10) 82 0 R (section*.100) 494 0 R (section*.101) 502 0 R (section*.102) 506 0 R (section*.103) 510 0 R (section*.104) 514 0 R] +/Limits [(section*.10) (section*.104)] >> endobj 1837 0 obj << -/Names [(section*.37) 222 0 R (section*.38) 226 0 R (section*.39) 230 0 R (section*.4) 58 0 R (section*.40) 234 0 R (section*.41) 238 0 R] -/Limits [(section*.37) (section*.41)] +/Names [(section*.105) 518 0 R (section*.106) 526 0 R (section*.107) 1710 0 R (section*.11) 98 0 R (section*.12) 102 0 R (section*.13) 106 0 R] +/Limits [(section*.105) (section*.13)] >> endobj 1838 0 obj << -/Names [(section*.42) 242 0 R (section*.43) 250 0 R (section*.44) 254 0 R (section*.45) 258 0 R (section*.46) 262 0 R (section*.47) 270 0 R] -/Limits [(section*.42) (section*.47)] +/Names [(section*.14) 110 0 R (section*.15) 114 0 R (section*.16) 118 0 R (section*.17) 122 0 R (section*.18) 126 0 R (section*.19) 130 0 R] +/Limits [(section*.14) (section*.19)] >> endobj 1839 0 obj << -/Names [(section*.48) 274 0 R (section*.49) 278 0 R (section*.5) 62 0 R (section*.50) 282 0 R (section*.51) 286 0 R (section*.52) 290 0 R] -/Limits [(section*.48) (section*.52)] +/Names [(section*.2) 50 0 R (section*.20) 134 0 R (section*.21) 138 0 R (section*.22) 142 0 R (section*.23) 146 0 R (section*.24) 150 0 R] +/Limits [(section*.2) (section*.24)] >> endobj 1840 0 obj << -/Names [(section*.53) 294 0 R (section*.54) 298 0 R (section*.55) 302 0 R (section*.56) 306 0 R (section*.57) 310 0 R (section*.58) 314 0 R] -/Limits [(section*.53) (section*.58)] +/Names [(section*.25) 154 0 R (section*.26) 158 0 R (section*.27) 174 0 R (section*.28) 178 0 R (section*.29) 182 0 R (section*.3) 54 0 R] +/Limits [(section*.25) (section*.3)] >> endobj 1841 0 obj << -/Names [(section*.59) 318 0 R (section*.6) 66 0 R (section*.60) 322 0 R (section*.61) 326 0 R (section*.62) 330 0 R (section*.63) 334 0 R] -/Limits [(section*.59) (section*.63)] +/Names [(section*.30) 186 0 R (section*.31) 198 0 R (section*.32) 202 0 R (section*.33) 206 0 R (section*.34) 210 0 R (section*.35) 214 0 R] +/Limits [(section*.30) (section*.35)] >> endobj 1842 0 obj << -/Names [(section*.64) 338 0 R (section*.65) 342 0 R (section*.66) 346 0 R (section*.67) 350 0 R (section*.68) 354 0 R (section*.69) 358 0 R] -/Limits [(section*.64) (section*.69)] +/Names [(section*.36) 218 0 R (section*.37) 222 0 R (section*.38) 226 0 R (section*.39) 230 0 R (section*.4) 58 0 R (section*.40) 234 0 R] +/Limits [(section*.36) (section*.40)] >> endobj 1843 0 obj << -/Names [(section*.7) 70 0 R (section*.70) 362 0 R (section*.71) 366 0 R (section*.72) 370 0 R (section*.73) 374 0 R (section*.74) 382 0 R] -/Limits [(section*.7) (section*.74)] +/Names [(section*.41) 238 0 R (section*.42) 242 0 R (section*.43) 246 0 R (section*.44) 254 0 R (section*.45) 258 0 R (section*.46) 262 0 R] +/Limits [(section*.41) (section*.46)] >> endobj 1844 0 obj << -/Names [(section*.75) 386 0 R (section*.76) 390 0 R (section*.77) 394 0 R (section*.78) 398 0 R (section*.79) 402 0 R (section*.8) 74 0 R] -/Limits [(section*.75) (section*.8)] +/Names [(section*.47) 266 0 R (section*.48) 274 0 R (section*.49) 278 0 R (section*.5) 62 0 R (section*.50) 282 0 R (section*.51) 286 0 R] +/Limits [(section*.47) (section*.51)] >> endobj 1845 0 obj << -/Names [(section*.80) 406 0 R (section*.81) 410 0 R (section*.82) 414 0 R (section*.83) 418 0 R (section*.84) 422 0 R (section*.85) 426 0 R] -/Limits [(section*.80) (section*.85)] +/Names [(section*.52) 290 0 R (section*.53) 294 0 R (section*.54) 298 0 R (section*.55) 302 0 R (section*.56) 306 0 R (section*.57) 310 0 R] +/Limits [(section*.52) (section*.57)] >> endobj 1846 0 obj << -/Names [(section*.86) 430 0 R (section*.87) 434 0 R (section*.88) 438 0 R (section*.89) 442 0 R (section*.9) 78 0 R (section*.90) 450 0 R] -/Limits [(section*.86) (section*.90)] +/Names [(section*.58) 314 0 R (section*.59) 318 0 R (section*.6) 66 0 R (section*.60) 322 0 R (section*.61) 326 0 R (section*.62) 330 0 R] +/Limits [(section*.58) (section*.62)] >> endobj 1847 0 obj << -/Names [(section*.91) 454 0 R (section*.92) 458 0 R (section*.93) 462 0 R (section*.94) 470 0 R (section*.95) 474 0 R (section*.96) 478 0 R] -/Limits [(section*.91) (section*.96)] +/Names [(section*.63) 334 0 R (section*.64) 338 0 R (section*.65) 342 0 R (section*.66) 346 0 R (section*.67) 350 0 R (section*.68) 354 0 R] +/Limits [(section*.63) (section*.68)] >> endobj 1848 0 obj << -/Names [(section*.97) 482 0 R (section*.98) 486 0 R (section*.99) 490 0 R (section.1) 10 0 R (section.10) 494 0 R (section.11) 518 0 R] -/Limits [(section*.97) (section.11)] +/Names [(section*.69) 358 0 R (section*.7) 70 0 R (section*.70) 362 0 R (section*.71) 366 0 R (section*.72) 370 0 R (section*.73) 374 0 R] +/Limits [(section*.69) (section*.73)] >> endobj 1849 0 obj << -/Names [(section.2) 14 0 R (section.3) 38 0 R (section.4) 190 0 R (section.5) 246 0 R (section.6) 266 0 R (section.7) 378 0 R] -/Limits [(section.2) (section.7)] +/Names [(section*.74) 378 0 R (section*.75) 386 0 R (section*.76) 390 0 R (section*.77) 394 0 R (section*.78) 398 0 R (section*.79) 402 0 R] +/Limits [(section*.74) (section*.79)] >> endobj 1850 0 obj << -/Names [(section.8) 446 0 R (section.9) 466 0 R (spbasedata) 860 0 R (spdata) 853 0 R (subsection.2.1) 18 0 R (subsection.2.2) 22 0 R] -/Limits [(section.8) (subsection.2.2)] +/Names [(section*.8) 74 0 R (section*.80) 406 0 R (section*.81) 410 0 R (section*.82) 414 0 R (section*.83) 418 0 R (section*.84) 422 0 R] +/Limits [(section*.8) (section*.84)] >> endobj 1851 0 obj << -/Names [(subsection.2.3) 26 0 R (subsection.2.4) 34 0 R (subsection.3.1) 42 0 R (subsection.3.2) 86 0 R (subsection.3.3) 162 0 R (subsection.3.4) 186 0 R] -/Limits [(subsection.2.3) (subsection.3.4)] +/Names [(section*.85) 426 0 R (section*.86) 430 0 R (section*.87) 434 0 R (section*.88) 438 0 R (section*.89) 442 0 R (section*.9) 78 0 R] +/Limits [(section*.85) (section*.9)] >> endobj 1852 0 obj << -/Names [(subsubsection.2.3.1) 30 0 R (subsubsection.3.1.1) 46 0 R (subsubsection.3.1.2) 82 0 R (subsubsection.3.2.1) 90 0 R (subsubsection.3.2.2) 158 0 R (subsubsection.3.3.1) 166 0 R] -/Limits [(subsubsection.2.3.1) (subsubsection.3.3.1)] +/Names [(section*.90) 446 0 R (section*.91) 454 0 R (section*.92) 458 0 R (section*.93) 462 0 R (section*.94) 466 0 R (section*.95) 474 0 R] +/Limits [(section*.90) (section*.95)] >> endobj 1853 0 obj << -/Names [(table.1) 924 0 R (table.10) 1021 0 R (table.11) 1029 0 R (table.12) 1042 0 R (table.13) 1060 0 R (table.14) 1091 0 R] -/Limits [(table.1) (table.14)] +/Names [(section*.96) 478 0 R (section*.97) 482 0 R (section*.98) 486 0 R (section*.99) 490 0 R (section.1) 10 0 R (section.10) 498 0 R] +/Limits [(section*.96) (section.10)] >> endobj 1854 0 obj << -/Names [(table.15) 1120 0 R (table.16) 1156 0 R (table.17) 1171 0 R (table.2) 941 0 R (table.3) 956 0 R (table.4) 969 0 R] -/Limits [(table.15) (table.4)] +/Names [(section.11) 522 0 R (section.2) 14 0 R (section.3) 38 0 R (section.4) 194 0 R (section.5) 250 0 R (section.6) 270 0 R] +/Limits [(section.11) (section.6)] >> endobj 1855 0 obj << -/Names [(table.5) 977 0 R (table.6) 985 0 R (table.7) 993 0 R (table.8) 1005 0 R (table.9) 1014 0 R (title.0) 6 0 R] -/Limits [(table.5) (title.0)] +/Names [(section.7) 382 0 R (section.8) 450 0 R (section.9) 470 0 R (spbasedata) 863 0 R (spdata) 862 0 R (subsection.2.1) 18 0 R] +/Limits [(section.7) (subsection.2.1)] >> endobj 1856 0 obj << -/Names [(vbasedata) 894 0 R (vdata) 893 0 R] -/Limits [(vbasedata) (vdata)] +/Names [(subsection.2.2) 22 0 R (subsection.2.3) 26 0 R (subsection.2.4) 34 0 R (subsection.3.1) 42 0 R (subsection.3.2) 90 0 R (subsection.3.3) 166 0 R] +/Limits [(subsection.2.2) (subsection.3.3)] >> endobj 1857 0 obj << -/Kids [1771 0 R 1772 0 R 1773 0 R 1774 0 R 1775 0 R 1776 0 R] -/Limits [(Doc-Start) (Item.2)] +/Names [(subsection.3.4) 190 0 R (subsubsection.2.3.1) 30 0 R (subsubsection.3.1.1) 46 0 R (subsubsection.3.1.2) 86 0 R (subsubsection.3.2.1) 94 0 R (subsubsection.3.2.2) 162 0 R] +/Limits [(subsection.3.4) (subsubsection.3.2.2)] >> endobj 1858 0 obj << -/Kids [1777 0 R 1778 0 R 1779 0 R 1780 0 R 1781 0 R 1782 0 R] -/Limits [(Item.20) (Item.52)] +/Names [(subsubsection.3.3.1) 170 0 R (table.1) 929 0 R (table.10) 1026 0 R (table.11) 1034 0 R (table.12) 1047 0 R (table.13) 1065 0 R] +/Limits [(subsubsection.3.3.1) (table.13)] >> endobj 1859 0 obj << -/Kids [1783 0 R 1784 0 R 1785 0 R 1786 0 R 1787 0 R 1788 0 R] -/Limits [(Item.53) (Item.85)] +/Names [(table.14) 1096 0 R (table.15) 1125 0 R (table.16) 1161 0 R (table.17) 1176 0 R (table.2) 946 0 R (table.3) 961 0 R] +/Limits [(table.14) (table.3)] >> endobj 1860 0 obj << -/Kids [1789 0 R 1790 0 R 1791 0 R 1792 0 R 1793 0 R 1794 0 R] -/Limits [(Item.86) (equation.1)] +/Names [(table.4) 974 0 R (table.5) 982 0 R (table.6) 990 0 R (table.7) 998 0 R (table.8) 1010 0 R (table.9) 1019 0 R] +/Limits [(table.4) (table.9)] >> endobj 1861 0 obj << -/Kids [1795 0 R 1796 0 R 1797 0 R 1798 0 R 1799 0 R 1800 0 R] -/Limits [(equation.2) (lstnumber.-15.1)] +/Names [(title.0) 6 0 R (vbasedata) 899 0 R (vdata) 898 0 R] +/Limits [(title.0) (vdata)] >> endobj 1862 0 obj << -/Kids [1801 0 R 1802 0 R 1803 0 R 1804 0 R 1805 0 R 1806 0 R] -/Limits [(lstnumber.-16.1) (lstnumber.-9.1)] +/Kids [1776 0 R 1777 0 R 1778 0 R 1779 0 R 1780 0 R 1781 0 R] +/Limits [(Doc-Start) (Item.2)] >> endobj 1863 0 obj << -/Kids [1807 0 R 1808 0 R 1809 0 R 1810 0 R 1811 0 R 1812 0 R] -/Limits [(page.1) (page.130)] +/Kids [1782 0 R 1783 0 R 1784 0 R 1785 0 R 1786 0 R 1787 0 R] +/Limits [(Item.20) (Item.52)] >> endobj 1864 0 obj << -/Kids [1813 0 R 1814 0 R 1815 0 R 1816 0 R 1817 0 R 1818 0 R] -/Limits [(page.131) (page.39)] +/Kids [1788 0 R 1789 0 R 1790 0 R 1791 0 R 1792 0 R 1793 0 R] +/Limits [(Item.53) (Item.85)] >> endobj 1865 0 obj << -/Kids [1819 0 R 1820 0 R 1821 0 R 1822 0 R 1823 0 R 1824 0 R] -/Limits [(page.4) (page.71)] +/Kids [1794 0 R 1795 0 R 1796 0 R 1797 0 R 1798 0 R 1799 0 R] +/Limits [(Item.86) (equation.1)] >> endobj 1866 0 obj << -/Kids [1825 0 R 1826 0 R 1827 0 R 1828 0 R 1829 0 R 1830 0 R] -/Limits [(page.72) (section*.1)] +/Kids [1800 0 R 1801 0 R 1802 0 R 1803 0 R 1804 0 R 1805 0 R] +/Limits [(equation.2) (lstnumber.-15.1)] >> endobj 1867 0 obj << -/Kids [1831 0 R 1832 0 R 1833 0 R 1834 0 R 1835 0 R 1836 0 R] -/Limits [(section*.10) (section*.36)] +/Kids [1806 0 R 1807 0 R 1808 0 R 1809 0 R 1810 0 R 1811 0 R] +/Limits [(lstnumber.-16.1) (lstnumber.-9.1)] >> endobj 1868 0 obj << -/Kids [1837 0 R 1838 0 R 1839 0 R 1840 0 R 1841 0 R 1842 0 R] -/Limits [(section*.37) (section*.69)] +/Kids [1812 0 R 1813 0 R 1814 0 R 1815 0 R 1816 0 R 1817 0 R] +/Limits [(page.1) (page.130)] >> endobj 1869 0 obj << -/Kids [1843 0 R 1844 0 R 1845 0 R 1846 0 R 1847 0 R 1848 0 R] -/Limits [(section*.7) (section.11)] +/Kids [1818 0 R 1819 0 R 1820 0 R 1821 0 R 1822 0 R 1823 0 R] +/Limits [(page.131) (page.39)] >> endobj 1870 0 obj << -/Kids [1849 0 R 1850 0 R 1851 0 R 1852 0 R 1853 0 R 1854 0 R] -/Limits [(section.2) (table.4)] +/Kids [1824 0 R 1825 0 R 1826 0 R 1827 0 R 1828 0 R 1829 0 R] +/Limits [(page.4) (page.71)] >> endobj 1871 0 obj << -/Kids [1855 0 R 1856 0 R] -/Limits [(table.5) (vdata)] +/Kids [1830 0 R 1831 0 R 1832 0 R 1833 0 R 1834 0 R 1835 0 R] +/Limits [(page.72) (section*.1)] >> endobj 1872 0 obj << -/Kids [1857 0 R 1858 0 R 1859 0 R 1860 0 R 1861 0 R 1862 0 R] -/Limits [(Doc-Start) (lstnumber.-9.1)] +/Kids [1836 0 R 1837 0 R 1838 0 R 1839 0 R 1840 0 R 1841 0 R] +/Limits [(section*.10) (section*.35)] >> endobj 1873 0 obj << -/Kids [1863 0 R 1864 0 R 1865 0 R 1866 0 R 1867 0 R 1868 0 R] -/Limits [(page.1) (section*.69)] +/Kids [1842 0 R 1843 0 R 1844 0 R 1845 0 R 1846 0 R 1847 0 R] +/Limits [(section*.36) (section*.68)] >> endobj 1874 0 obj << -/Kids [1869 0 R 1870 0 R 1871 0 R] -/Limits [(section*.7) (vdata)] +/Kids [1848 0 R 1849 0 R 1850 0 R 1851 0 R 1852 0 R 1853 0 R] +/Limits [(section*.69) (section.10)] >> endobj 1875 0 obj << -/Kids [1872 0 R 1873 0 R 1874 0 R] -/Limits [(Doc-Start) (vdata)] +/Kids [1854 0 R 1855 0 R 1856 0 R 1857 0 R 1858 0 R 1859 0 R] +/Limits [(section.11) (table.3)] >> endobj 1876 0 obj << -/Dests 1875 0 R +/Kids [1860 0 R 1861 0 R] +/Limits [(table.4) (vdata)] >> endobj 1877 0 obj << +/Kids [1862 0 R 1863 0 R 1864 0 R 1865 0 R 1866 0 R 1867 0 R] +/Limits [(Doc-Start) (lstnumber.-9.1)] +>> endobj +1878 0 obj << +/Kids [1868 0 R 1869 0 R 1870 0 R 1871 0 R 1872 0 R 1873 0 R] +/Limits [(page.1) (section*.68)] +>> endobj +1879 0 obj << +/Kids [1874 0 R 1875 0 R 1876 0 R] +/Limits [(section*.69) (vdata)] +>> endobj +1880 0 obj << +/Kids [1877 0 R 1878 0 R 1879 0 R] +/Limits [(Doc-Start) (vdata)] +>> endobj +1881 0 obj << +/Dests 1880 0 R +>> endobj +1882 0 obj << /Type /Catalog -/Pages 1769 0 R -/Outlines 1770 0 R -/Names 1876 0 R +/Pages 1774 0 R +/Outlines 1775 0 R +/Names 1881 0 R /URI (http://ce.uniroma2.it/psblas) /PageMode/UseOutlines/PageLabels << /Nums [0 << /S /D >> 2 << /S /r >> 6 << /S /D >> ] >> -/OpenAction 525 0 R +/OpenAction 529 0 R >> endobj -1878 0 obj << - /Title (Parallel Sparse BLAS V. 3.4) /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 7725 2014-03-21 08:58:20Z sfilippo $) /Author()/Title()/Subject()/Creator(LaTeX with hyperref package)/Producer(pdfTeX-1.40.3)/Keywords() -/CreationDate (D:20150428183155+02'00') -/ModDate (D:20150428183155+02'00') +1883 0 obj << + /Title (Parallel Sparse BLAS V. 3.4) /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 9115 2015-04-28 17:26:14Z sfilippo $) /Author()/Title()/Subject()/Creator(LaTeX with hyperref package)/Producer(pdfTeX-1.40.3)/Keywords() +/CreationDate (D:20150716110612+02'00') +/ModDate (D:20150716110612+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 xref -0 1879 +0 1884 0000000001 65535 f 0000000002 00000 f 0000000003 00000 f 0000000004 00000 f 0000000000 00000 f 0000000015 00000 n -0000012138 00000 n -0001014275 00000 n +0000012229 00000 n +0001017217 00000 n 0000000058 00000 n 0000000100 00000 n -0000098993 00000 n -0001014203 00000 n +0000099719 00000 n +0001017145 00000 n 0000000145 00000 n 0000000178 00000 n -0000110603 00000 n -0001014080 00000 n +0000111329 00000 n +0001017022 00000 n 0000000224 00000 n 0000000261 00000 n -0000120436 00000 n -0001014006 00000 n +0000121162 00000 n +0001016948 00000 n 0000000312 00000 n 0000000353 00000 n -0000128775 00000 n -0001013919 00000 n +0000129501 00000 n +0001016861 00000 n 0000000404 00000 n 0000000443 00000 n -0000144039 00000 n -0001013795 00000 n +0000144765 00000 n +0001016737 00000 n 0000000494 00000 n 0000000538 00000 n -0000160786 00000 n -0001013734 00000 n +0000161512 00000 n +0001016676 00000 n 0000000594 00000 n 0000000646 00000 n -0000161219 00000 n -0001013660 00000 n +0000161945 00000 n +0001016602 00000 n 0000000697 00000 n 0000000737 00000 n -0000170279 00000 n -0001013535 00000 n +0000171005 00000 n +0001016477 00000 n 0000000783 00000 n 0000000831 00000 n -0000170339 00000 n -0001013424 00000 n +0000171065 00000 n +0001016366 00000 n 0000000882 00000 n 0000000930 00000 n -0000189778 00000 n -0001013313 00000 n +0000190504 00000 n +0001016255 00000 n 0000000986 00000 n 0000001029 00000 n -0000189839 00000 n -0001013239 00000 n +0000190565 00000 n +0001016181 00000 n 0000001076 00000 n 0000001115 00000 n -0000189900 00000 n -0001013152 00000 n +0000190626 00000 n +0001016094 00000 n 0000001162 00000 n 0000001201 00000 n -0000189961 00000 n -0001013065 00000 n +0000190687 00000 n +0001016007 00000 n 0000001248 00000 n 0000001288 00000 n -0000194639 00000 n -0001012978 00000 n +0000195422 00000 n +0001015920 00000 n 0000001335 00000 n 0000001375 00000 n -0000194699 00000 n -0001012891 00000 n +0000195482 00000 n +0001015833 00000 n 0000001422 00000 n -0000001455 00000 n -0000194757 00000 n -0001012804 00000 n -0000001502 00000 n -0000001526 00000 n -0000194817 00000 n -0001012717 00000 n -0000001573 00000 n -0000001630 00000 n -0000203668 00000 n -0001012643 00000 n -0000001677 00000 n -0000001734 00000 n -0000203729 00000 n -0001012569 00000 n -0000001790 00000 n -0000001830 00000 n -0000203790 00000 n -0001012443 00000 n -0000001881 00000 n -0000001923 00000 n -0000211264 00000 n -0001012329 00000 n -0000001979 00000 n -0000002025 00000 n -0000211324 00000 n -0001012255 00000 n -0000002073 00000 n -0000002104 00000 n -0000215742 00000 n -0001012166 00000 n -0000002152 00000 n -0000002184 00000 n -0000215803 00000 n -0001012075 00000 n -0000002233 00000 n -0000002267 00000 n -0000215927 00000 n -0001011983 00000 n -0000002316 00000 n -0000002348 00000 n -0000220026 00000 n -0001011891 00000 n -0000002397 00000 n -0000002424 00000 n -0000220087 00000 n -0001011799 00000 n -0000002473 00000 n -0000002504 00000 n -0000220148 00000 n -0001011707 00000 n -0000002553 00000 n -0000002605 00000 n -0000224851 00000 n -0001011615 00000 n -0000002654 00000 n -0000002726 00000 n -0000224913 00000 n -0001011523 00000 n -0000002775 00000 n -0000002800 00000 n -0000228976 00000 n -0001011431 00000 n -0000002849 00000 n -0000002875 00000 n -0000229037 00000 n -0001011339 00000 n -0000002924 00000 n -0000002955 00000 n -0000233774 00000 n -0001011247 00000 n -0000003004 00000 n -0000003036 00000 n -0000233836 00000 n -0001011155 00000 n -0000003085 00000 n -0000003109 00000 n -0000238952 00000 n -0001011063 00000 n -0000003158 00000 n -0000003182 00000 n -0000239013 00000 n -0001010971 00000 n -0000003231 00000 n -0000003279 00000 n -0000239074 00000 n -0001010893 00000 n -0000003328 00000 n -0000003353 00000 n -0000247596 00000 n -0001010816 00000 n -0000003410 00000 n -0000003451 00000 n -0000247658 00000 n -0001010686 00000 n -0000003503 00000 n -0000003554 00000 n -0000251289 00000 n -0001010582 00000 n -0000003611 00000 n -0000003651 00000 n -0000251350 00000 n -0001010503 00000 n -0000003700 00000 n -0000003732 00000 n -0000251411 00000 n -0001010410 00000 n -0000003781 00000 n -0000003808 00000 n -0000251472 00000 n -0001010317 00000 n -0000003857 00000 n -0000003889 00000 n -0000254982 00000 n -0001010238 00000 n -0000003938 00000 n -0000003963 00000 n -0000255044 00000 n -0001010160 00000 n -0000004015 00000 n -0000004068 00000 n -0000255749 00000 n -0001010030 00000 n -0000004115 00000 n -0000004159 00000 n -0000264411 00000 n -0001009951 00000 n -0000004208 00000 n -0000004242 00000 n -0000277249 00000 n -0001009858 00000 n -0000004291 00000 n -0000004323 00000 n -0000288079 00000 n -0001009765 00000 n -0000004372 00000 n -0000004405 00000 n -0000297118 00000 n -0001009672 00000 n -0000004454 00000 n -0000004486 00000 n -0000304439 00000 n -0001009579 00000 n -0000004535 00000 n -0000004569 00000 n -0000312164 00000 n -0001009486 00000 n -0000004618 00000 n -0000004650 00000 n -0000320487 00000 n -0001009393 00000 n -0000004699 00000 n -0000004733 00000 n -0000329227 00000 n -0001009300 00000 n -0000004782 00000 n -0000004814 00000 n -0000336401 00000 n -0001009207 00000 n -0000004863 00000 n -0000004897 00000 n -0000342770 00000 n -0001009114 00000 n -0000004946 00000 n -0000004978 00000 n -0000349146 00000 n -0001009021 00000 n -0000005027 00000 n -0000005059 00000 n -0000357648 00000 n -0001008928 00000 n -0000005108 00000 n -0000005139 00000 n -0000373968 00000 n -0001008849 00000 n -0000005188 00000 n -0000005219 00000 n -0000390002 00000 n -0001008719 00000 n -0000005266 00000 n -0000005310 00000 n -0000398147 00000 n -0001008640 00000 n -0000005359 00000 n -0000005390 00000 n -0000419456 00000 n -0001008547 00000 n -0000005439 00000 n -0000005470 00000 n -0000445991 00000 n -0001008454 00000 n -0000005519 00000 n -0000005552 00000 n -0000457251 00000 n -0001008375 00000 n -0000005601 00000 n -0000005635 00000 n -0000466753 00000 n -0001008244 00000 n -0000005682 00000 n -0000005728 00000 n -0000466816 00000 n -0001008165 00000 n -0000005777 00000 n -0000005809 00000 n -0000495833 00000 n -0001008072 00000 n -0000005858 00000 n -0000005890 00000 n -0000503976 00000 n -0001007979 00000 n -0000005939 00000 n -0000005971 00000 n -0000508069 00000 n -0001007886 00000 n -0000006020 00000 n -0000006052 00000 n -0000510902 00000 n -0001007793 00000 n -0000006101 00000 n -0000006134 00000 n -0000517579 00000 n -0001007700 00000 n -0000006183 00000 n -0000006218 00000 n -0000525287 00000 n -0001007607 00000 n -0000006267 00000 n -0000006299 00000 n -0000532691 00000 n -0001007514 00000 n -0000006348 00000 n -0000006380 00000 n -0000547297 00000 n -0001007421 00000 n -0000006429 00000 n -0000006461 00000 n -0000554086 00000 n -0001007328 00000 n -0000006510 00000 n -0000006543 00000 n -0000558828 00000 n -0001007235 00000 n -0000006592 00000 n -0000006623 00000 n -0000564752 00000 n -0001007142 00000 n -0000006672 00000 n -0000006704 00000 n -0000572332 00000 n -0001007049 00000 n -0000006753 00000 n -0000006785 00000 n -0000580052 00000 n -0001006956 00000 n -0000006834 00000 n -0000006866 00000 n -0000584193 00000 n -0001006863 00000 n -0000006915 00000 n -0000006948 00000 n -0000588049 00000 n -0001006770 00000 n -0000006997 00000 n -0000007028 00000 n -0000595212 00000 n -0001006677 00000 n -0000007077 00000 n -0000007121 00000 n -0000602702 00000 n -0001006584 00000 n -0000007170 00000 n -0000007214 00000 n -0000606578 00000 n -0001006491 00000 n -0000007263 00000 n -0000007302 00000 n -0000612228 00000 n -0001006398 00000 n -0000007351 00000 n -0000007393 00000 n -0000616137 00000 n -0001006305 00000 n -0000007442 00000 n -0000007481 00000 n -0000621796 00000 n -0001006212 00000 n -0000007530 00000 n -0000007572 00000 n -0000626285 00000 n -0001006119 00000 n -0000007621 00000 n -0000007663 00000 n -0000630655 00000 n -0001006026 00000 n -0000007712 00000 n +0000001462 00000 n +0000195542 00000 n +0001015746 00000 n +0000001509 00000 n +0000001542 00000 n +0000201660 00000 n +0001015659 00000 n +0000001589 00000 n +0000001613 00000 n +0000201721 00000 n +0001015572 00000 n +0000001660 00000 n +0000001717 00000 n +0000201782 00000 n +0001015498 00000 n +0000001765 00000 n +0000001822 00000 n +0000201843 00000 n +0001015424 00000 n +0000001878 00000 n +0000001918 00000 n +0000212488 00000 n +0001015298 00000 n +0000001969 00000 n +0000002011 00000 n +0000217250 00000 n +0001015184 00000 n +0000002067 00000 n +0000002113 00000 n +0000217311 00000 n +0001015108 00000 n +0000002161 00000 n +0000002193 00000 n +0000217372 00000 n +0001015017 00000 n +0000002242 00000 n +0000002274 00000 n +0000217434 00000 n +0001014925 00000 n +0000002323 00000 n +0000002357 00000 n +0000221342 00000 n +0001014833 00000 n +0000002406 00000 n +0000002438 00000 n +0000221403 00000 n +0001014741 00000 n +0000002487 00000 n +0000002514 00000 n +0000221464 00000 n +0001014649 00000 n +0000002563 00000 n +0000002594 00000 n +0000226495 00000 n +0001014557 00000 n +0000002643 00000 n +0000002695 00000 n +0000226557 00000 n +0001014465 00000 n +0000002744 00000 n +0000002816 00000 n +0000226619 00000 n +0001014373 00000 n +0000002865 00000 n +0000002890 00000 n +0000231394 00000 n +0001014281 00000 n +0000002939 00000 n +0000002965 00000 n +0000231455 00000 n +0001014189 00000 n +0000003014 00000 n +0000003045 00000 n +0000236614 00000 n +0001014097 00000 n +0000003094 00000 n +0000003126 00000 n +0000236676 00000 n +0001014005 00000 n +0000003175 00000 n +0000003199 00000 n +0000241792 00000 n +0001013913 00000 n +0000003248 00000 n +0000003272 00000 n +0000241853 00000 n +0001013821 00000 n +0000003321 00000 n +0000003369 00000 n +0000241914 00000 n +0001013743 00000 n +0000003418 00000 n +0000003443 00000 n +0000250436 00000 n +0001013666 00000 n +0000003500 00000 n +0000003541 00000 n +0000250498 00000 n +0001013536 00000 n +0000003593 00000 n +0000003644 00000 n +0000254129 00000 n +0001013432 00000 n +0000003701 00000 n +0000003741 00000 n +0000254190 00000 n +0001013353 00000 n +0000003790 00000 n +0000003822 00000 n +0000254251 00000 n +0001013260 00000 n +0000003871 00000 n +0000003898 00000 n +0000254312 00000 n +0001013167 00000 n +0000003947 00000 n +0000003979 00000 n +0000257822 00000 n +0001013088 00000 n +0000004028 00000 n +0000004053 00000 n +0000257884 00000 n +0001013010 00000 n +0000004105 00000 n +0000004158 00000 n +0000258589 00000 n +0001012880 00000 n +0000004205 00000 n +0000004249 00000 n +0000267251 00000 n +0001012801 00000 n +0000004298 00000 n +0000004332 00000 n +0000280089 00000 n +0001012708 00000 n +0000004381 00000 n +0000004413 00000 n +0000290919 00000 n +0001012615 00000 n +0000004462 00000 n +0000004495 00000 n +0000299958 00000 n +0001012522 00000 n +0000004544 00000 n +0000004576 00000 n +0000307279 00000 n +0001012429 00000 n +0000004625 00000 n +0000004659 00000 n +0000315004 00000 n +0001012336 00000 n +0000004708 00000 n +0000004740 00000 n +0000323327 00000 n +0001012243 00000 n +0000004789 00000 n +0000004823 00000 n +0000332076 00000 n +0001012150 00000 n +0000004872 00000 n +0000004904 00000 n +0000339250 00000 n +0001012057 00000 n +0000004953 00000 n +0000004987 00000 n +0000345619 00000 n +0001011964 00000 n +0000005036 00000 n +0000005068 00000 n +0000351995 00000 n +0001011871 00000 n +0000005117 00000 n +0000005149 00000 n +0000360497 00000 n +0001011778 00000 n +0000005198 00000 n +0000005229 00000 n +0000376817 00000 n +0001011699 00000 n +0000005278 00000 n +0000005309 00000 n +0000392851 00000 n +0001011569 00000 n +0000005356 00000 n +0000005400 00000 n +0000400996 00000 n +0001011490 00000 n +0000005449 00000 n +0000005480 00000 n +0000422305 00000 n +0001011397 00000 n +0000005529 00000 n +0000005560 00000 n +0000448840 00000 n +0001011304 00000 n +0000005609 00000 n +0000005642 00000 n +0000460100 00000 n +0001011225 00000 n +0000005691 00000 n +0000005725 00000 n +0000469602 00000 n +0001011094 00000 n +0000005772 00000 n +0000005818 00000 n +0000469665 00000 n +0001011015 00000 n +0000005867 00000 n +0000005899 00000 n +0000498682 00000 n +0001010922 00000 n +0000005948 00000 n +0000005980 00000 n +0000506825 00000 n +0001010829 00000 n +0000006029 00000 n +0000006061 00000 n +0000510918 00000 n +0001010736 00000 n +0000006110 00000 n +0000006142 00000 n +0000513751 00000 n +0001010643 00000 n +0000006191 00000 n +0000006224 00000 n +0000520428 00000 n +0001010550 00000 n +0000006273 00000 n +0000006308 00000 n +0000528136 00000 n +0001010457 00000 n +0000006357 00000 n +0000006389 00000 n +0000535540 00000 n +0001010364 00000 n +0000006438 00000 n +0000006470 00000 n +0000550146 00000 n +0001010271 00000 n +0000006519 00000 n +0000006551 00000 n +0000556935 00000 n +0001010178 00000 n +0000006600 00000 n +0000006633 00000 n +0000561677 00000 n +0001010085 00000 n +0000006682 00000 n +0000006713 00000 n +0000567601 00000 n +0001009992 00000 n +0000006762 00000 n +0000006794 00000 n +0000575181 00000 n +0001009899 00000 n +0000006843 00000 n +0000006875 00000 n +0000582901 00000 n +0001009806 00000 n +0000006924 00000 n +0000006956 00000 n +0000587042 00000 n +0001009713 00000 n +0000007005 00000 n +0000007038 00000 n +0000590898 00000 n +0001009620 00000 n +0000007087 00000 n +0000007118 00000 n +0000598061 00000 n +0001009527 00000 n +0000007167 00000 n +0000007211 00000 n +0000605551 00000 n +0001009434 00000 n +0000007260 00000 n +0000007304 00000 n +0000609427 00000 n +0001009341 00000 n +0000007353 00000 n +0000007392 00000 n +0000615077 00000 n +0001009248 00000 n +0000007441 00000 n +0000007483 00000 n +0000618986 00000 n +0001009155 00000 n +0000007532 00000 n +0000007571 00000 n +0000624645 00000 n +0001009062 00000 n +0000007620 00000 n +0000007662 00000 n +0000629134 00000 n +0001008969 00000 n +0000007711 00000 n 0000007753 00000 n -0000637156 00000 n -0001005933 00000 n +0000633504 00000 n +0001008876 00000 n 0000007802 00000 n -0000007841 00000 n -0000646476 00000 n -0001005840 00000 n -0000007890 00000 n -0000007923 00000 n -0000652681 00000 n -0001005761 00000 n -0000007972 00000 n -0000008009 00000 n -0000661229 00000 n -0001005630 00000 n -0000008056 00000 n -0000008107 00000 n -0000667189 00000 n -0001005551 00000 n -0000008156 00000 n -0000008187 00000 n -0000672398 00000 n -0001005458 00000 n -0000008236 00000 n -0000008267 00000 n -0000677326 00000 n -0001005365 00000 n -0000008316 00000 n -0000008347 00000 n -0000680120 00000 n -0001005272 00000 n -0000008396 00000 n +0000007843 00000 n +0000640005 00000 n +0001008783 00000 n +0000007892 00000 n +0000007931 00000 n +0000649325 00000 n +0001008690 00000 n +0000007980 00000 n +0000008013 00000 n +0000655530 00000 n +0001008611 00000 n +0000008062 00000 n +0000008099 00000 n +0000664078 00000 n +0001008480 00000 n +0000008146 00000 n +0000008197 00000 n +0000670038 00000 n +0001008401 00000 n +0000008246 00000 n +0000008277 00000 n +0000675247 00000 n +0001008308 00000 n +0000008326 00000 n +0000008357 00000 n +0000680175 00000 n +0001008215 00000 n +0000008406 00000 n 0000008437 00000 n -0000683559 00000 n -0001005179 00000 n +0000682969 00000 n +0001008122 00000 n 0000008486 00000 n -0000008524 00000 n -0000685206 00000 n -0001005086 00000 n -0000008573 00000 n -0000008605 00000 n -0000687109 00000 n -0001004993 00000 n -0000008654 00000 n -0000008688 00000 n -0000688885 00000 n -0001004900 00000 n -0000008737 00000 n -0000008769 00000 n -0000693856 00000 n -0001004807 00000 n -0000008818 00000 n -0000008850 00000 n -0000699500 00000 n -0001004714 00000 n -0000008899 00000 n -0000008929 00000 n -0000705224 00000 n -0001004621 00000 n -0000008978 00000 n -0000009008 00000 n -0000710978 00000 n -0001004528 00000 n -0000009057 00000 n -0000009087 00000 n -0000716790 00000 n -0001004435 00000 n -0000009136 00000 n -0000009166 00000 n -0000722634 00000 n -0001004342 00000 n -0000009215 00000 n -0000009245 00000 n -0000728553 00000 n -0001004249 00000 n -0000009294 00000 n -0000009324 00000 n -0000734424 00000 n -0001004170 00000 n -0000009373 00000 n -0000009403 00000 n -0000741646 00000 n -0001004040 00000 n -0000009450 00000 n -0000009486 00000 n -0000754971 00000 n -0001003961 00000 n -0000009535 00000 n -0000009569 00000 n -0000756902 00000 n -0001003868 00000 n -0000009618 00000 n -0000009650 00000 n -0000759066 00000 n -0001003775 00000 n -0000009699 00000 n -0000009745 00000 n -0000761703 00000 n -0001003696 00000 n -0000009794 00000 n -0000009837 00000 n -0000762774 00000 n -0001003566 00000 n +0000008527 00000 n +0000686408 00000 n +0001008029 00000 n +0000008576 00000 n +0000008614 00000 n +0000688055 00000 n +0001007936 00000 n +0000008663 00000 n +0000008695 00000 n +0000689958 00000 n +0001007843 00000 n +0000008744 00000 n +0000008778 00000 n +0000691734 00000 n +0001007750 00000 n +0000008827 00000 n +0000008859 00000 n +0000696705 00000 n +0001007657 00000 n +0000008908 00000 n +0000008940 00000 n +0000702349 00000 n +0001007564 00000 n +0000008989 00000 n +0000009019 00000 n +0000708073 00000 n +0001007471 00000 n +0000009068 00000 n +0000009098 00000 n +0000713827 00000 n +0001007378 00000 n +0000009147 00000 n +0000009177 00000 n +0000719639 00000 n +0001007285 00000 n +0000009226 00000 n +0000009256 00000 n +0000725483 00000 n +0001007192 00000 n +0000009305 00000 n +0000009335 00000 n +0000731402 00000 n +0001007099 00000 n +0000009384 00000 n +0000009414 00000 n +0000737273 00000 n +0001007020 00000 n +0000009463 00000 n +0000009493 00000 n +0000744495 00000 n +0001006890 00000 n +0000009540 00000 n +0000009576 00000 n +0000757820 00000 n +0001006811 00000 n +0000009625 00000 n +0000009659 00000 n +0000759751 00000 n +0001006718 00000 n +0000009708 00000 n +0000009740 00000 n +0000761915 00000 n +0001006625 00000 n +0000009789 00000 n +0000009835 00000 n +0000764552 00000 n +0001006546 00000 n 0000009884 00000 n -0000009915 00000 n -0000768129 00000 n -0001003487 00000 n -0000009964 00000 n -0000009994 00000 n -0000774105 00000 n -0001003394 00000 n -0000010043 00000 n -0000010074 00000 n -0000778475 00000 n -0001003301 00000 n -0000010123 00000 n -0000010160 00000 n -0000782728 00000 n -0001003208 00000 n -0000010209 00000 n -0000010248 00000 n -0000787628 00000 n -0001003115 00000 n -0000010297 00000 n -0000010335 00000 n -0000791557 00000 n -0001003036 00000 n -0000010384 00000 n -0000010424 00000 n -0000793015 00000 n -0001002906 00000 n -0000010472 00000 n -0000010518 00000 n -0000798414 00000 n -0001002827 00000 n -0000010568 00000 n -0000010603 00000 n -0000806755 00000 n -0001002734 00000 n -0000010653 00000 n -0000010687 00000 n -0000813810 00000 n -0001002641 00000 n -0000010737 00000 n -0000010772 00000 n -0000816398 00000 n -0001002548 00000 n -0000010822 00000 n -0000010858 00000 n -0000817807 00000 n -0001002469 00000 n -0000010908 00000 n -0000010933 00000 n -0000818834 00000 n -0001002353 00000 n -0000010981 00000 n -0000011021 00000 n -0000828224 00000 n -0001002288 00000 n -0000011071 00000 n -0000011104 00000 n -0000011897 00000 n -0000012197 00000 n -0000011156 00000 n -0000012016 00000 n -0000012077 00000 n -0000996353 00000 n -0000998237 00000 n -0000996207 00000 n -0000997082 00000 n -0000998674 00000 n -0000012624 00000 n -0000012443 00000 n -0000012307 00000 n -0000012562 00000 n -0000029767 00000 n -0000029917 00000 n -0000030068 00000 n -0000030225 00000 n -0000030382 00000 n -0000030539 00000 n -0000030701 00000 n -0000030858 00000 n -0000031009 00000 n -0000031166 00000 n -0000031328 00000 n -0000031481 00000 n -0000031634 00000 n -0000031787 00000 n -0000031939 00000 n -0000032092 00000 n -0000032245 00000 n -0000032397 00000 n -0000032550 00000 n -0000032712 00000 n -0000032868 00000 n -0000033029 00000 n -0000033183 00000 n -0000033335 00000 n -0000033489 00000 n -0000033642 00000 n -0000033796 00000 n -0000033950 00000 n -0000034104 00000 n -0000034257 00000 n -0000034410 00000 n -0000034564 00000 n -0000034718 00000 n -0000034872 00000 n -0000035026 00000 n -0000035180 00000 n -0000035334 00000 n -0000035488 00000 n -0000035650 00000 n -0000035805 00000 n -0000035967 00000 n -0000036121 00000 n -0000036274 00000 n -0000036428 00000 n -0000036582 00000 n -0000058802 00000 n -0000036860 00000 n -0000029276 00000 n -0000012695 00000 n -0000036738 00000 n -0000036799 00000 n -0000058954 00000 n -0000059108 00000 n -0000059261 00000 n -0000059413 00000 n -0000059567 00000 n -0000059721 00000 n -0000059875 00000 n -0000060025 00000 n -0000060178 00000 n -0000060331 00000 n -0000060485 00000 n -0000060639 00000 n -0000060790 00000 n -0000060942 00000 n -0000061094 00000 n -0000061248 00000 n -0000061402 00000 n -0000061556 00000 n -0000061710 00000 n -0000061861 00000 n -0000062014 00000 n -0000062168 00000 n -0000062322 00000 n -0000062476 00000 n -0000062630 00000 n -0000062784 00000 n -0000062938 00000 n -0000063092 00000 n -0000063246 00000 n -0000063400 00000 n -0000063554 00000 n -0000063708 00000 n -0000063862 00000 n -0000064016 00000 n -0000064170 00000 n -0000064324 00000 n -0000064477 00000 n -0000064630 00000 n -0000064784 00000 n -0000064938 00000 n -0000065092 00000 n -0000065244 00000 n -0000065396 00000 n -0000065548 00000 n -0000065702 00000 n -0000065856 00000 n -0000082440 00000 n -0000066071 00000 n -0000058295 00000 n -0000036957 00000 n -0000066009 00000 n -0000082591 00000 n -0000082744 00000 n -0000082898 00000 n -0000083051 00000 n -0000083204 00000 n -0000083357 00000 n -0000083511 00000 n -0000083665 00000 n -0000083819 00000 n -0000083973 00000 n -0000084127 00000 n -0000084281 00000 n -0000084435 00000 n -0000084589 00000 n -0000084742 00000 n -0000084896 00000 n -0000085050 00000 n -0000085201 00000 n -0000085354 00000 n -0000085508 00000 n -0000085662 00000 n -0000085816 00000 n -0000085967 00000 n -0000086121 00000 n -0000086275 00000 n -0000086429 00000 n -0000086583 00000 n -0000086737 00000 n -0000086891 00000 n -0000087043 00000 n -0000087198 00000 n -0000087353 00000 n -0000087507 00000 n -0000087662 00000 n -0000087816 00000 n -0000087967 00000 n -0000088182 00000 n -0000082013 00000 n -0000066155 00000 n -0000088121 00000 n -0000088585 00000 n -0000088404 00000 n -0000088266 00000 n -0000088523 00000 n -0000097444 00000 n -0000097598 00000 n -0000097754 00000 n -0000097911 00000 n -0000098070 00000 n -0000098226 00000 n -0000098380 00000 n -0000098534 00000 n -0000098687 00000 n -0000098840 00000 n -0000099053 00000 n -0000097233 00000 n -0000088656 00000 n -0000998091 00000 n -0000998792 00000 n -0000851195 00000 n -0000847349 00000 n -0000846728 00000 n -0000851258 00000 n -0000851132 00000 n -0000847162 00000 n -0000847224 00000 n -0000851069 00000 n -0000846976 00000 n -0000847038 00000 n -0000110148 00000 n -0000110298 00000 n -0000110451 00000 n -0000104945 00000 n -0000119917 00000 n -0000110724 00000 n -0000104790 00000 n -0000099150 00000 n -0000996645 00000 n -0000110664 00000 n -0000106155 00000 n -0000106401 00000 n -0000106448 00000 n -0000106841 00000 n -0000106862 00000 n -0000107169 00000 n -0000847100 00000 n -0000120068 00000 n -0000120222 00000 n -0000120620 00000 n -0000119762 00000 n -0000110849 00000 n -0000120375 00000 n -0000998383 00000 n -0000997370 00000 n -0000996937 00000 n -0000997802 00000 n -0000997227 00000 n -0000120496 00000 n -0000997513 00000 n -0000120558 00000 n -0000851006 00000 n -0000128345 00000 n -0000128498 00000 n -0000126374 00000 n -0000128836 00000 n -0000126227 00000 n -0000120820 00000 n -0000128651 00000 n -0000128713 00000 n -0000128083 00000 n -0000128202 00000 n -0000128249 00000 n -0000128323 00000 n -0000846914 00000 n -0000846852 00000 n -0000134668 00000 n -0000134819 00000 n -0000135032 00000 n -0000134521 00000 n -0000129000 00000 n -0000134971 00000 n -0000144596 00000 n -0000143858 00000 n -0000135142 00000 n -0000143977 00000 n -0000996791 00000 n -0000144100 00000 n -0000144162 00000 n -0000144224 00000 n -0000144286 00000 n -0000144348 00000 n -0000144410 00000 n -0000144472 00000 n -0000144534 00000 n -0000160415 00000 n -0000152652 00000 n -0000151683 00000 n -0000144731 00000 n -0000151802 00000 n -0000151863 00000 n -0000151924 00000 n -0000151985 00000 n -0000152046 00000 n -0000152106 00000 n -0000152167 00000 n -0000152228 00000 n -0000152288 00000 n -0000152349 00000 n -0000152410 00000 n -0000152471 00000 n -0000152532 00000 n -0000152592 00000 n -0000998910 00000 n -0000160572 00000 n -0000161280 00000 n -0000160268 00000 n -0000152736 00000 n -0000160724 00000 n -0000160847 00000 n -0000160909 00000 n -0000160971 00000 n -0000161033 00000 n -0000161095 00000 n -0000161157 00000 n -0000170066 00000 n -0000170461 00000 n -0000169927 00000 n -0000161428 00000 n -0000170218 00000 n -0000170399 00000 n -0000177490 00000 n -0000178200 00000 n -0000177351 00000 n -0000170584 00000 n -0000177642 00000 n -0000177704 00000 n -0000177766 00000 n -0000177828 00000 n -0000177890 00000 n -0000177952 00000 n -0000178014 00000 n -0000178076 00000 n -0000178138 00000 n -0000183914 00000 n -0000183368 00000 n -0000178297 00000 n -0000183487 00000 n -0000183548 00000 n -0000183609 00000 n -0000183669 00000 n -0000183730 00000 n -0000183791 00000 n -0000183852 00000 n -0000189413 00000 n -0000189565 00000 n -0000190022 00000 n -0000189266 00000 n -0000184011 00000 n -0000189716 00000 n -0000194877 00000 n -0000194459 00000 n -0000190145 00000 n -0000194578 00000 n -0000999028 00000 n -0000203141 00000 n -0000203302 00000 n -0000203457 00000 n -0000203913 00000 n -0000202986 00000 n -0000194974 00000 n -0000203606 00000 n -0000203851 00000 n -0000850943 00000 n -0000211140 00000 n -0000211384 00000 n -0000210960 00000 n -0000204023 00000 n -0000211079 00000 n -0000211202 00000 n -0000215989 00000 n -0000215561 00000 n -0000211481 00000 n -0000215680 00000 n -0000215865 00000 n -0000220208 00000 n -0000219846 00000 n -0000216086 00000 n -0000219965 00000 n -0000224975 00000 n -0000224670 00000 n -0000220305 00000 n -0000224789 00000 n -0000229097 00000 n -0000228796 00000 n -0000225072 00000 n -0000228915 00000 n -0000999146 00000 n -0000233898 00000 n -0000233593 00000 n -0000229194 00000 n -0000233712 00000 n -0000239135 00000 n -0000238772 00000 n -0000233995 00000 n -0000238891 00000 n -0000247231 00000 n -0000247383 00000 n -0000247904 00000 n -0000247084 00000 n -0000239232 00000 n -0000247534 00000 n -0000247720 00000 n -0000247782 00000 n -0000247842 00000 n -0000251533 00000 n -0000251109 00000 n -0000248014 00000 n -0000251228 00000 n -0000254769 00000 n -0000255230 00000 n -0000254630 00000 n -0000251630 00000 n -0000254920 00000 n -0000255106 00000 n -0000998529 00000 n -0000255168 00000 n -0000255810 00000 n -0000255569 00000 n -0000255353 00000 n -0000255688 00000 n -0000999264 00000 n -0000263453 00000 n -0000263603 00000 n -0000263751 00000 n -0000263901 00000 n -0000264051 00000 n -0000264199 00000 n -0000267543 00000 n -0000264534 00000 n -0000263274 00000 n -0000255894 00000 n -0000264349 00000 n -0000264473 00000 n -0000267694 00000 n -0000267841 00000 n -0000268052 00000 n -0000267388 00000 n -0000264670 00000 n -0000267991 00000 n -0000276291 00000 n -0000276439 00000 n -0000276589 00000 n -0000276737 00000 n -0000276887 00000 n -0000277038 00000 n -0000277372 00000 n -0000276112 00000 n -0000268162 00000 n -0000277187 00000 n -0000277310 00000 n -0000278384 00000 n -0000278204 00000 n -0000277521 00000 n -0000278323 00000 n -0000287122 00000 n -0000287270 00000 n -0000287419 00000 n -0000287567 00000 n -0000287717 00000 n -0000287868 00000 n -0000288202 00000 n -0000286943 00000 n -0000278468 00000 n -0000288017 00000 n -0000288140 00000 n -0000289214 00000 n -0000289034 00000 n -0000288351 00000 n -0000289153 00000 n -0000999382 00000 n -0000296607 00000 n -0000296755 00000 n -0000296905 00000 n -0000297241 00000 n -0000296452 00000 n -0000289298 00000 n -0000297056 00000 n -0000297179 00000 n -0000303930 00000 n -0000304078 00000 n -0000304228 00000 n -0000304561 00000 n -0000303775 00000 n -0000297390 00000 n -0000304378 00000 n -0000304499 00000 n -0000311653 00000 n -0000311801 00000 n -0000311951 00000 n -0000312287 00000 n -0000311498 00000 n -0000304710 00000 n -0000312102 00000 n -0000312225 00000 n -0000319980 00000 n -0000320127 00000 n -0000320276 00000 n -0000320610 00000 n -0000319825 00000 n -0000312448 00000 n -0000320426 00000 n -0000320548 00000 n -0000321636 00000 n -0000321455 00000 n -0000320771 00000 n -0000321574 00000 n -0000328714 00000 n -0000328862 00000 n -0000329012 00000 n -0000329352 00000 n -0000328554 00000 n -0000321720 00000 n -0000329164 00000 n -0000329288 00000 n -0000999500 00000 n -0000335886 00000 n -0000336035 00000 n -0000336185 00000 n -0000336527 00000 n -0000335724 00000 n -0000329502 00000 n -0000336337 00000 n -0000336463 00000 n -0000342405 00000 n -0000342555 00000 n -0000342895 00000 n -0000342252 00000 n -0000336676 00000 n -0000342707 00000 n -0000342831 00000 n -0000348780 00000 n -0000348930 00000 n -0000349272 00000 n -0000348627 00000 n -0000343044 00000 n -0000349082 00000 n -0000997947 00000 n -0000349208 00000 n -0000356982 00000 n -0000357134 00000 n -0000357284 00000 n -0000357433 00000 n -0000365369 00000 n -0000357965 00000 n -0000356811 00000 n -0000349423 00000 n -0000357585 00000 n -0000357709 00000 n -0000357773 00000 n -0000357837 00000 n -0000357901 00000 n -0000365521 00000 n -0000365670 00000 n -0000365822 00000 n -0000365974 00000 n -0000366128 00000 n -0000366282 00000 n -0000366436 00000 n -0000366652 00000 n -0000365162 00000 n -0000358127 00000 n -0000366588 00000 n -0000373754 00000 n -0000382317 00000 n -0000374094 00000 n -0000373610 00000 n -0000366763 00000 n -0000373905 00000 n -0000374030 00000 n -0000999625 00000 n -0000382470 00000 n -0000382619 00000 n -0000382771 00000 n -0000382923 00000 n -0000383072 00000 n -0000383224 00000 n -0000383439 00000 n -0000382119 00000 n -0000374270 00000 n -0000383375 00000 n -0000388452 00000 n -0000388604 00000 n -0000388819 00000 n -0000388299 00000 n -0000383576 00000 n -0000388756 00000 n -0000389785 00000 n -0000390065 00000 n -0000389641 00000 n -0000388930 00000 n -0000389938 00000 n -0000397631 00000 n -0000397780 00000 n -0000397932 00000 n -0000406270 00000 n -0000398461 00000 n -0000397469 00000 n -0000390150 00000 n -0000398084 00000 n -0000398208 00000 n -0000398272 00000 n -0000398335 00000 n -0000398398 00000 n -0000402030 00000 n -0000406422 00000 n -0000406701 00000 n -0000401877 00000 n -0000398598 00000 n -0000406573 00000 n -0000406637 00000 n -0000405930 00000 n -0000406050 00000 n -0000406098 00000 n -0000406173 00000 n -0000406247 00000 n -0000410150 00000 n -0000409964 00000 n -0000406854 00000 n -0000410087 00000 n -0000997657 00000 n -0000999750 00000 n -0000418940 00000 n -0000419089 00000 n -0000419241 00000 n -0000419774 00000 n -0000418778 00000 n -0000410236 00000 n -0000419392 00000 n -0000419518 00000 n -0000419582 00000 n -0000419646 00000 n -0000419710 00000 n -0000426012 00000 n -0000431335 00000 n -0000426164 00000 n -0000426314 00000 n -0000426717 00000 n -0000425850 00000 n -0000419924 00000 n -0000426466 00000 n -0000426529 00000 n -0000426592 00000 n -0000426655 00000 n -0000435722 00000 n -0000430720 00000 n -0000430533 00000 n -0000426854 00000 n -0000430656 00000 n -0000435786 00000 n -0000431212 00000 n -0000430805 00000 n -0000435659 00000 n -0000435319 00000 n -0000435439 00000 n -0000435487 00000 n -0000435562 00000 n -0000435636 00000 n -0000445475 00000 n -0000445624 00000 n -0000445776 00000 n -0000446309 00000 n -0000445313 00000 n -0000435887 00000 n -0000445927 00000 n -0000446053 00000 n -0000446117 00000 n -0000446181 00000 n -0000446245 00000 n -0000448172 00000 n -0000447986 00000 n -0000446471 00000 n -0000448109 00000 n -0000999875 00000 n -0000457037 00000 n -0000459654 00000 n -0000457570 00000 n -0000456893 00000 n -0000448270 00000 n -0000457187 00000 n -0000457314 00000 n -0000457378 00000 n -0000457442 00000 n -0000457506 00000 n -0000459869 00000 n -0000459510 00000 n -0000457732 00000 n -0000459806 00000 n -0000466879 00000 n -0000466566 00000 n -0000459967 00000 n -0000466689 00000 n -0000473857 00000 n -0000474135 00000 n -0000473713 00000 n -0000467016 00000 n -0000474009 00000 n -0000474072 00000 n -0000484512 00000 n -0000484803 00000 n -0000484368 00000 n -0000474259 00000 n -0000484675 00000 n -0000484739 00000 n -0000488159 00000 n -0000487660 00000 n -0000484940 00000 n -0000487783 00000 n -0000487846 00000 n -0000487909 00000 n -0000487972 00000 n -0000488035 00000 n -0000488098 00000 n -0001000000 00000 n -0000495619 00000 n -0000495895 00000 n -0000495475 00000 n -0000488244 00000 n -0000495769 00000 n -0000499379 00000 n -0000499794 00000 n -0000499235 00000 n -0000496019 00000 n -0000499542 00000 n -0000499605 00000 n -0000499668 00000 n -0000499731 00000 n -0000503611 00000 n -0000503761 00000 n -0000504102 00000 n -0000503458 00000 n -0000499905 00000 n -0000503912 00000 n -0000504038 00000 n -0000507703 00000 n -0000507854 00000 n -0000508130 00000 n -0000507550 00000 n -0000504213 00000 n -0000508006 00000 n -0000510688 00000 n -0000510964 00000 n -0000510544 00000 n -0000508241 00000 n -0000510838 00000 n -0000517215 00000 n -0000517364 00000 n -0000517641 00000 n -0000517062 00000 n -0000511075 00000 n -0000517516 00000 n -0001000125 00000 n -0000519740 00000 n -0000519425 00000 n -0000517778 00000 n -0000519548 00000 n -0000519612 00000 n -0000519676 00000 n -0000524925 00000 n -0000525076 00000 n -0000525537 00000 n -0000524772 00000 n -0000519825 00000 n -0000525224 00000 n -0000525348 00000 n -0000525411 00000 n -0000525474 00000 n -0000532327 00000 n -0000532479 00000 n -0000539169 00000 n -0000532754 00000 n -0000532174 00000 n -0000525661 00000 n -0000532627 00000 n -0000539949 00000 n -0000539025 00000 n -0000532878 00000 n -0000539320 00000 n -0000539383 00000 n -0000539446 00000 n -0000539509 00000 n -0000539572 00000 n -0000539634 00000 n -0000539697 00000 n -0000539760 00000 n -0000539823 00000 n -0000539886 00000 n -0000546934 00000 n -0000547084 00000 n -0000547359 00000 n -0000546781 00000 n -0000540073 00000 n -0000547233 00000 n -0000550341 00000 n -0000549778 00000 n -0000547470 00000 n -0000549901 00000 n -0000549964 00000 n -0000550027 00000 n -0000550090 00000 n -0000550153 00000 n -0000550216 00000 n -0000550279 00000 n -0001000250 00000 n -0000553723 00000 n -0000553871 00000 n -0000554148 00000 n -0000553570 00000 n -0000550426 00000 n -0000554022 00000 n -0000558463 00000 n -0000558613 00000 n -0000558953 00000 n -0000558310 00000 n -0000554259 00000 n -0000558765 00000 n -0000558890 00000 n -0000564388 00000 n -0000564539 00000 n -0000564814 00000 n -0000564235 00000 n -0000559064 00000 n -0000564688 00000 n -0000571968 00000 n -0000572120 00000 n -0000572393 00000 n -0000571815 00000 n -0000564938 00000 n -0000572269 00000 n -0000574007 00000 n -0000573692 00000 n -0000572517 00000 n -0000573815 00000 n -0000573879 00000 n -0000573943 00000 n -0000579542 00000 n -0000579692 00000 n -0000579841 00000 n -0000580113 00000 n -0000579380 00000 n -0000574105 00000 n -0000579989 00000 n -0001000375 00000 n -0000583829 00000 n -0000583977 00000 n -0000584255 00000 n -0000583676 00000 n -0000580237 00000 n -0000584129 00000 n -0000588110 00000 n -0000587863 00000 n -0000584366 00000 n -0000587986 00000 n -0000594998 00000 n -0000595274 00000 n -0000594854 00000 n -0000588247 00000 n -0000595148 00000 n -0000596462 00000 n -0000596150 00000 n -0000595398 00000 n -0000596273 00000 n -0000596336 00000 n -0000596399 00000 n -0000602487 00000 n -0000602764 00000 n -0000602343 00000 n -0000596547 00000 n -0000602638 00000 n -0000606363 00000 n -0000606702 00000 n -0000606219 00000 n -0000602888 00000 n -0000606515 00000 n -0000606639 00000 n -0001000500 00000 n -0000612013 00000 n -0000612354 00000 n -0000611869 00000 n -0000606826 00000 n -0000612164 00000 n -0000612290 00000 n -0000615922 00000 n -0000616261 00000 n -0000615778 00000 n -0000612478 00000 n -0000616074 00000 n -0000616198 00000 n -0000621581 00000 n -0000621922 00000 n -0000621437 00000 n -0000616385 00000 n -0000621732 00000 n -0000621858 00000 n -0000626071 00000 n -0000626472 00000 n -0000625927 00000 n -0000622046 00000 n -0000626222 00000 n -0000626346 00000 n -0000626409 00000 n -0000630441 00000 n -0000630845 00000 n -0000630297 00000 n -0000626583 00000 n -0000630591 00000 n -0000630717 00000 n -0000630781 00000 n -0000636943 00000 n -0000637218 00000 n -0000636799 00000 n -0000630956 00000 n -0000637093 00000 n -0001000625 00000 n -0000641492 00000 n -0000641113 00000 n -0000637342 00000 n -0000641236 00000 n -0000641300 00000 n -0000641364 00000 n -0000641428 00000 n -0000645961 00000 n -0000646111 00000 n -0000646263 00000 n -0000646537 00000 n -0000645799 00000 n -0000641616 00000 n -0000646413 00000 n -0000652744 00000 n -0000652494 00000 n -0000646661 00000 n -0000652617 00000 n -0000660673 00000 n -0000659921 00000 n -0000652868 00000 n -0000660044 00000 n -0000660107 00000 n -0000660170 00000 n -0000660233 00000 n -0000660296 00000 n -0000660359 00000 n -0000660422 00000 n -0000660484 00000 n -0000660547 00000 n -0000660610 00000 n -0000661292 00000 n -0000661042 00000 n -0000660796 00000 n -0000661165 00000 n -0000667376 00000 n -0000667003 00000 n -0000661377 00000 n -0000667126 00000 n -0000667250 00000 n -0000667313 00000 n -0001000750 00000 n -0000672588 00000 n -0000672211 00000 n -0000667513 00000 n -0000672334 00000 n -0000672461 00000 n -0000672524 00000 n -0000677576 00000 n -0000677140 00000 n -0000672725 00000 n -0000677263 00000 n -0000677387 00000 n -0000677450 00000 n -0000677513 00000 n -0000680182 00000 n -0000679933 00000 n -0000677713 00000 n -0000680056 00000 n -0000683620 00000 n -0000683373 00000 n -0000680293 00000 n -0000683496 00000 n -0000685268 00000 n -0000685019 00000 n -0000683757 00000 n -0000685142 00000 n -0000687170 00000 n -0000686923 00000 n -0000685379 00000 n -0000687046 00000 n -0001000875 00000 n -0000688947 00000 n -0000688698 00000 n -0000687281 00000 n -0000688821 00000 n -0000693917 00000 n -0000693670 00000 n -0000689058 00000 n -0000693793 00000 n -0000699690 00000 n -0000699313 00000 n -0000694054 00000 n -0000699436 00000 n -0000699562 00000 n -0000699626 00000 n -0000705411 00000 n -0000705038 00000 n -0000699827 00000 n -0000705161 00000 n -0000705285 00000 n -0000705348 00000 n -0000711168 00000 n -0000710791 00000 n -0000705548 00000 n -0000710914 00000 n -0000711040 00000 n -0000711104 00000 n -0000716977 00000 n -0000716604 00000 n -0000711305 00000 n -0000716727 00000 n -0000716851 00000 n -0000716914 00000 n -0001001000 00000 n -0000722824 00000 n -0000722447 00000 n -0000717114 00000 n -0000722570 00000 n -0000722696 00000 n -0000722760 00000 n -0000728676 00000 n -0000728367 00000 n -0000722961 00000 n -0000728490 00000 n -0000728614 00000 n -0000734549 00000 n -0000734237 00000 n -0000728813 00000 n -0000734360 00000 n -0000734486 00000 n -0000741280 00000 n -0000741431 00000 n -0000741708 00000 n -0000741127 00000 n -0000734686 00000 n -0000741583 00000 n -0000750759 00000 n -0000750823 00000 n -0000750887 00000 n -0000748976 00000 n -0000741806 00000 n -0000749099 00000 n -0000749163 00000 n -0000749227 00000 n -0000996499 00000 n -0000749291 00000 n -0000749355 00000 n -0000749419 00000 n -0000749483 00000 n -0000749547 00000 n -0000749610 00000 n -0000749674 00000 n -0000749738 00000 n -0000749802 00000 n -0000749866 00000 n -0000749930 00000 n -0000749994 00000 n -0000750058 00000 n -0000750122 00000 n -0000750184 00000 n -0000750248 00000 n -0000750312 00000 n -0000750376 00000 n -0000750440 00000 n -0000750504 00000 n -0000750568 00000 n -0000750632 00000 n -0000750696 00000 n -0000755157 00000 n -0000754785 00000 n -0000751000 00000 n -0000754908 00000 n -0000755033 00000 n -0000755095 00000 n -0001001125 00000 n -0000757091 00000 n -0000756715 00000 n -0000755255 00000 n -0000756838 00000 n -0000756965 00000 n -0000757028 00000 n -0000759252 00000 n -0000758880 00000 n -0000757189 00000 n -0000759003 00000 n -0000759128 00000 n -0000759190 00000 n -0000761892 00000 n -0000761516 00000 n -0000759350 00000 n -0000761639 00000 n -0000761766 00000 n -0000761829 00000 n -0000762836 00000 n -0000762588 00000 n -0000762003 00000 n -0000762711 00000 n -0000767916 00000 n -0000768320 00000 n -0000767772 00000 n -0000762934 00000 n -0000768065 00000 n -0000768192 00000 n -0000768256 00000 n -0000773893 00000 n -0000774293 00000 n -0000773749 00000 n -0000768431 00000 n -0000774042 00000 n -0000774167 00000 n -0000774230 00000 n -0001001250 00000 n -0000778262 00000 n -0000778666 00000 n -0000778118 00000 n -0000774404 00000 n -0000778411 00000 n -0000778538 00000 n -0000778602 00000 n -0000782916 00000 n -0000782542 00000 n -0000778777 00000 n -0000782665 00000 n -0000782790 00000 n -0000782853 00000 n -0000787416 00000 n -0000787819 00000 n -0000787272 00000 n -0000783027 00000 n -0000787564 00000 n -0000787691 00000 n -0000787755 00000 n -0000791745 00000 n -0000791371 00000 n -0000787930 00000 n -0000791494 00000 n -0000791619 00000 n -0000791682 00000 n -0000793078 00000 n -0000792828 00000 n -0000791856 00000 n -0000792951 00000 n -0000798044 00000 n -0000798196 00000 n -0000798538 00000 n -0000797891 00000 n -0000793189 00000 n -0000798351 00000 n -0000798475 00000 n -0001001375 00000 n -0000806088 00000 n -0000806237 00000 n -0000806387 00000 n -0000806539 00000 n -0000806817 00000 n -0000805917 00000 n -0000798700 00000 n -0000806691 00000 n -0000813147 00000 n -0000813298 00000 n -0000813446 00000 n -0000813598 00000 n -0000813871 00000 n -0000812976 00000 n -0000806928 00000 n -0000813747 00000 n -0000816182 00000 n -0000816461 00000 n -0000816038 00000 n -0000813982 00000 n -0000816334 00000 n -0000817868 00000 n -0000817621 00000 n -0000816572 00000 n -0000817744 00000 n -0000818897 00000 n -0000818647 00000 n -0000817979 00000 n -0000818770 00000 n -0000827712 00000 n -0000827862 00000 n -0000828013 00000 n -0000835548 00000 n -0000828474 00000 n -0000827550 00000 n -0000818995 00000 n -0000828161 00000 n -0000828285 00000 n -0000828348 00000 n -0000828411 00000 n -0001001500 00000 n -0000835697 00000 n -0000835848 00000 n -0000836060 00000 n -0000835386 00000 n -0000828636 00000 n -0000835996 00000 n -0000838908 00000 n -0000838722 00000 n -0000836184 00000 n +0000009927 00000 n +0000765623 00000 n +0001006416 00000 n +0000009974 00000 n +0000010005 00000 n +0000770978 00000 n +0001006337 00000 n +0000010054 00000 n +0000010084 00000 n +0000776954 00000 n +0001006244 00000 n +0000010133 00000 n +0000010164 00000 n +0000781324 00000 n +0001006151 00000 n +0000010213 00000 n +0000010250 00000 n +0000785577 00000 n +0001006058 00000 n +0000010299 00000 n +0000010338 00000 n +0000790477 00000 n +0001005965 00000 n +0000010387 00000 n +0000010425 00000 n +0000794406 00000 n +0001005886 00000 n +0000010475 00000 n +0000010515 00000 n +0000795864 00000 n +0001005756 00000 n +0000010563 00000 n +0000010609 00000 n +0000801263 00000 n +0001005677 00000 n +0000010659 00000 n +0000010694 00000 n +0000809604 00000 n +0001005584 00000 n +0000010744 00000 n +0000010778 00000 n +0000816659 00000 n +0001005491 00000 n +0000010828 00000 n +0000010863 00000 n +0000819247 00000 n +0001005398 00000 n +0000010913 00000 n +0000010949 00000 n +0000820656 00000 n +0001005319 00000 n +0000010999 00000 n +0000011024 00000 n +0000821683 00000 n +0001005203 00000 n +0000011072 00000 n +0000011112 00000 n +0000831073 00000 n +0001005138 00000 n +0000011162 00000 n +0000011195 00000 n +0000011988 00000 n +0000012288 00000 n +0000011247 00000 n +0000012107 00000 n +0000012168 00000 n +0000999202 00000 n +0001001086 00000 n +0000999056 00000 n +0000999931 00000 n +0001001523 00000 n +0000012715 00000 n +0000012534 00000 n +0000012398 00000 n +0000012653 00000 n +0000030332 00000 n +0000030483 00000 n +0000030634 00000 n +0000030791 00000 n +0000030948 00000 n +0000031105 00000 n +0000031267 00000 n +0000031424 00000 n +0000031575 00000 n +0000031732 00000 n +0000031893 00000 n +0000032045 00000 n +0000032197 00000 n +0000032350 00000 n +0000032503 00000 n +0000032656 00000 n +0000032809 00000 n +0000032962 00000 n +0000033115 00000 n +0000033269 00000 n +0000033431 00000 n +0000033588 00000 n +0000033749 00000 n +0000033903 00000 n +0000034057 00000 n +0000034211 00000 n +0000034364 00000 n +0000034518 00000 n +0000034672 00000 n +0000034826 00000 n +0000034980 00000 n +0000035134 00000 n +0000035288 00000 n +0000035442 00000 n +0000035596 00000 n +0000035750 00000 n +0000035904 00000 n +0000036058 00000 n +0000036212 00000 n +0000036374 00000 n +0000036531 00000 n +0000036693 00000 n +0000036847 00000 n +0000037000 00000 n +0000037154 00000 n +0000037307 00000 n +0000059527 00000 n +0000037585 00000 n +0000029833 00000 n +0000012786 00000 n +0000037463 00000 n +0000037524 00000 n +0000059679 00000 n +0000059833 00000 n +0000059986 00000 n +0000060138 00000 n +0000060292 00000 n +0000060446 00000 n +0000060600 00000 n +0000060750 00000 n +0000060903 00000 n +0000061056 00000 n +0000061210 00000 n +0000061364 00000 n +0000061515 00000 n +0000061667 00000 n +0000061819 00000 n +0000061973 00000 n +0000062127 00000 n +0000062281 00000 n +0000062435 00000 n +0000062586 00000 n +0000062739 00000 n +0000062893 00000 n +0000063047 00000 n +0000063201 00000 n +0000063355 00000 n +0000063509 00000 n +0000063663 00000 n +0000063817 00000 n +0000063971 00000 n +0000064125 00000 n +0000064279 00000 n +0000064433 00000 n +0000064587 00000 n +0000064741 00000 n +0000064895 00000 n +0000065049 00000 n +0000065202 00000 n +0000065355 00000 n +0000065509 00000 n +0000065663 00000 n +0000065817 00000 n +0000065969 00000 n +0000066121 00000 n +0000066273 00000 n +0000066427 00000 n +0000066581 00000 n +0000083165 00000 n +0000066796 00000 n +0000059020 00000 n +0000037682 00000 n +0000066734 00000 n +0000083316 00000 n +0000083469 00000 n +0000083623 00000 n +0000083776 00000 n +0000083929 00000 n +0000084082 00000 n +0000084236 00000 n +0000084390 00000 n +0000084544 00000 n +0000084698 00000 n +0000084852 00000 n +0000085006 00000 n +0000085160 00000 n +0000085314 00000 n +0000085467 00000 n +0000085621 00000 n +0000085775 00000 n +0000085926 00000 n +0000086079 00000 n +0000086233 00000 n +0000086387 00000 n +0000086541 00000 n +0000086692 00000 n +0000086846 00000 n +0000087000 00000 n +0000087154 00000 n +0000087308 00000 n +0000087462 00000 n +0000087617 00000 n +0000087769 00000 n +0000087924 00000 n +0000088079 00000 n +0000088233 00000 n +0000088388 00000 n +0000088542 00000 n +0000088693 00000 n +0000088908 00000 n +0000082738 00000 n +0000066880 00000 n +0000088847 00000 n +0000089311 00000 n +0000089130 00000 n +0000088992 00000 n +0000089249 00000 n +0000098170 00000 n +0000098324 00000 n +0000098480 00000 n +0000098637 00000 n +0000098796 00000 n +0000098952 00000 n +0000099106 00000 n +0000099260 00000 n +0000099413 00000 n +0000099566 00000 n +0000099779 00000 n +0000097959 00000 n +0000089382 00000 n +0001000940 00000 n +0001001641 00000 n +0000854044 00000 n +0000850198 00000 n +0000849577 00000 n +0000854107 00000 n +0000853981 00000 n +0000850011 00000 n +0000850073 00000 n +0000853918 00000 n +0000849825 00000 n +0000849887 00000 n +0000110874 00000 n +0000111024 00000 n +0000111177 00000 n +0000105671 00000 n +0000120643 00000 n +0000111450 00000 n +0000105516 00000 n +0000099876 00000 n +0000999494 00000 n +0000111390 00000 n +0000106881 00000 n +0000107127 00000 n +0000107174 00000 n +0000107567 00000 n +0000107588 00000 n +0000107895 00000 n +0000849949 00000 n +0000120794 00000 n +0000120948 00000 n +0000121346 00000 n +0000120488 00000 n +0000111575 00000 n +0000121101 00000 n +0001001232 00000 n +0001000219 00000 n +0000999786 00000 n +0001000651 00000 n +0001000076 00000 n +0000121222 00000 n +0001000362 00000 n +0000121284 00000 n +0000853855 00000 n +0000129071 00000 n +0000129224 00000 n +0000127100 00000 n +0000129562 00000 n +0000126953 00000 n +0000121546 00000 n +0000129377 00000 n +0000129439 00000 n +0000128809 00000 n +0000128928 00000 n +0000128975 00000 n +0000129049 00000 n +0000849763 00000 n +0000849701 00000 n +0000135394 00000 n +0000135545 00000 n +0000135758 00000 n +0000135247 00000 n +0000129726 00000 n +0000135697 00000 n +0000145322 00000 n +0000144584 00000 n +0000135868 00000 n +0000144703 00000 n +0000999640 00000 n +0000144826 00000 n +0000144888 00000 n +0000144950 00000 n +0000145012 00000 n +0000145074 00000 n +0000145136 00000 n +0000145198 00000 n +0000145260 00000 n +0000161141 00000 n +0000153378 00000 n +0000152409 00000 n +0000145457 00000 n +0000152528 00000 n +0000152589 00000 n +0000152650 00000 n +0000152711 00000 n +0000152772 00000 n +0000152832 00000 n +0000152893 00000 n +0000152954 00000 n +0000153014 00000 n +0000153075 00000 n +0000153136 00000 n +0000153197 00000 n +0000153258 00000 n +0000153318 00000 n +0001001759 00000 n +0000161298 00000 n +0000162006 00000 n +0000160994 00000 n +0000153462 00000 n +0000161450 00000 n +0000161573 00000 n +0000161635 00000 n +0000161697 00000 n +0000161759 00000 n +0000161821 00000 n +0000161883 00000 n +0000170792 00000 n +0000171187 00000 n +0000170653 00000 n +0000162154 00000 n +0000170944 00000 n +0000171125 00000 n +0000178216 00000 n +0000178926 00000 n +0000178077 00000 n +0000171310 00000 n +0000178368 00000 n +0000178430 00000 n +0000178492 00000 n +0000178554 00000 n +0000178616 00000 n +0000178678 00000 n +0000178740 00000 n +0000178802 00000 n +0000178864 00000 n +0000184640 00000 n +0000184094 00000 n +0000179023 00000 n +0000184213 00000 n +0000184274 00000 n +0000184335 00000 n +0000184395 00000 n +0000184456 00000 n +0000184517 00000 n +0000184578 00000 n +0000190139 00000 n +0000190291 00000 n +0000190748 00000 n +0000189992 00000 n +0000184737 00000 n +0000190442 00000 n +0000195602 00000 n +0000195242 00000 n +0000190871 00000 n +0000195361 00000 n +0001001877 00000 n +0000201903 00000 n +0000201479 00000 n +0000195699 00000 n +0000201598 00000 n +0000211959 00000 n +0000212121 00000 n +0000212276 00000 n +0000212734 00000 n +0000211804 00000 n +0000202000 00000 n +0000212427 00000 n +0000212548 00000 n +0000212610 00000 n +0000212672 00000 n +0000853792 00000 n +0000217558 00000 n +0000217069 00000 n +0000212844 00000 n +0000217188 00000 n +0000217496 00000 n +0000221525 00000 n +0000221162 00000 n +0000217655 00000 n +0000221281 00000 n +0000226681 00000 n +0000226314 00000 n +0000221622 00000 n +0000226433 00000 n +0000231516 00000 n +0000231214 00000 n +0000226778 00000 n +0000231333 00000 n +0001001995 00000 n +0000236738 00000 n +0000236433 00000 n +0000231613 00000 n +0000236552 00000 n +0000241975 00000 n +0000241612 00000 n +0000236835 00000 n +0000241731 00000 n +0000250071 00000 n +0000250223 00000 n +0000250744 00000 n +0000249924 00000 n +0000242072 00000 n +0000250374 00000 n +0000250560 00000 n +0000250622 00000 n +0000250682 00000 n +0000254373 00000 n +0000253949 00000 n +0000250854 00000 n +0000254068 00000 n +0000257609 00000 n +0000258070 00000 n +0000257470 00000 n +0000254470 00000 n +0000257760 00000 n +0000257946 00000 n +0001001378 00000 n +0000258008 00000 n +0000258650 00000 n +0000258409 00000 n +0000258193 00000 n +0000258528 00000 n +0001002113 00000 n +0000266293 00000 n +0000266443 00000 n +0000266591 00000 n +0000266741 00000 n +0000266891 00000 n +0000267039 00000 n +0000270383 00000 n +0000267374 00000 n +0000266114 00000 n +0000258734 00000 n +0000267189 00000 n +0000267313 00000 n +0000270534 00000 n +0000270681 00000 n +0000270892 00000 n +0000270228 00000 n +0000267510 00000 n +0000270831 00000 n +0000279131 00000 n +0000279279 00000 n +0000279429 00000 n +0000279577 00000 n +0000279727 00000 n +0000279878 00000 n +0000280212 00000 n +0000278952 00000 n +0000271002 00000 n +0000280027 00000 n +0000280150 00000 n +0000281224 00000 n +0000281044 00000 n +0000280361 00000 n +0000281163 00000 n +0000289962 00000 n +0000290110 00000 n +0000290259 00000 n +0000290407 00000 n +0000290557 00000 n +0000290708 00000 n +0000291042 00000 n +0000289783 00000 n +0000281308 00000 n +0000290857 00000 n +0000290980 00000 n +0000292054 00000 n +0000291874 00000 n +0000291191 00000 n +0000291993 00000 n +0001002231 00000 n +0000299447 00000 n +0000299595 00000 n +0000299745 00000 n +0000300081 00000 n +0000299292 00000 n +0000292138 00000 n +0000299896 00000 n +0000300019 00000 n +0000306770 00000 n +0000306918 00000 n +0000307068 00000 n +0000307401 00000 n +0000306615 00000 n +0000300230 00000 n +0000307218 00000 n +0000307339 00000 n +0000314493 00000 n +0000314641 00000 n +0000314791 00000 n +0000315127 00000 n +0000314338 00000 n +0000307550 00000 n +0000314942 00000 n +0000315065 00000 n +0000322820 00000 n +0000322967 00000 n +0000323116 00000 n +0000323450 00000 n +0000322665 00000 n +0000315288 00000 n +0000323266 00000 n +0000323388 00000 n +0000324481 00000 n +0000324296 00000 n +0000323611 00000 n +0000324417 00000 n +0000331561 00000 n +0000331710 00000 n +0000331861 00000 n +0000332201 00000 n +0000331399 00000 n +0000324565 00000 n +0000332013 00000 n +0000332137 00000 n +0001002350 00000 n +0000338735 00000 n +0000338884 00000 n +0000339034 00000 n +0000339376 00000 n +0000338573 00000 n +0000332351 00000 n +0000339186 00000 n +0000339312 00000 n +0000345254 00000 n +0000345404 00000 n +0000345744 00000 n +0000345101 00000 n +0000339525 00000 n +0000345556 00000 n +0000345680 00000 n +0000351629 00000 n +0000351779 00000 n +0000352121 00000 n +0000351476 00000 n +0000345893 00000 n +0000351931 00000 n +0001000796 00000 n +0000352057 00000 n +0000359831 00000 n +0000359983 00000 n +0000360133 00000 n +0000360282 00000 n +0000368218 00000 n +0000360814 00000 n +0000359660 00000 n +0000352272 00000 n +0000360434 00000 n +0000360558 00000 n +0000360622 00000 n +0000360686 00000 n +0000360750 00000 n +0000368370 00000 n +0000368519 00000 n +0000368671 00000 n +0000368823 00000 n +0000368977 00000 n +0000369131 00000 n +0000369285 00000 n +0000369501 00000 n +0000368011 00000 n +0000360976 00000 n +0000369437 00000 n +0000376603 00000 n +0000385166 00000 n +0000376943 00000 n +0000376459 00000 n +0000369612 00000 n +0000376754 00000 n +0000376879 00000 n +0001002475 00000 n +0000385319 00000 n +0000385468 00000 n +0000385620 00000 n +0000385772 00000 n +0000385921 00000 n +0000386073 00000 n +0000386288 00000 n +0000384968 00000 n +0000377119 00000 n +0000386224 00000 n +0000391301 00000 n +0000391453 00000 n +0000391668 00000 n +0000391148 00000 n +0000386425 00000 n +0000391605 00000 n +0000392634 00000 n +0000392914 00000 n +0000392490 00000 n +0000391779 00000 n +0000392787 00000 n +0000400480 00000 n +0000400629 00000 n +0000400781 00000 n +0000409119 00000 n +0000401310 00000 n +0000400318 00000 n +0000392999 00000 n +0000400933 00000 n +0000401057 00000 n +0000401121 00000 n +0000401184 00000 n +0000401247 00000 n +0000404879 00000 n +0000409271 00000 n +0000409550 00000 n +0000404726 00000 n +0000401447 00000 n +0000409422 00000 n +0000409486 00000 n +0000408779 00000 n +0000408899 00000 n +0000408947 00000 n +0000409022 00000 n +0000409096 00000 n +0000412999 00000 n +0000412813 00000 n +0000409703 00000 n +0000412936 00000 n +0001000506 00000 n +0001002600 00000 n +0000421789 00000 n +0000421938 00000 n +0000422090 00000 n +0000422623 00000 n +0000421627 00000 n +0000413085 00000 n +0000422241 00000 n +0000422367 00000 n +0000422431 00000 n +0000422495 00000 n +0000422559 00000 n +0000428861 00000 n +0000434184 00000 n +0000429013 00000 n +0000429163 00000 n +0000429566 00000 n +0000428699 00000 n +0000422773 00000 n +0000429315 00000 n +0000429378 00000 n +0000429441 00000 n +0000429504 00000 n +0000438571 00000 n +0000433569 00000 n +0000433382 00000 n +0000429703 00000 n +0000433505 00000 n +0000438635 00000 n +0000434061 00000 n +0000433654 00000 n +0000438508 00000 n +0000438168 00000 n +0000438288 00000 n +0000438336 00000 n +0000438411 00000 n +0000438485 00000 n +0000448324 00000 n +0000448473 00000 n +0000448625 00000 n +0000449158 00000 n +0000448162 00000 n +0000438736 00000 n +0000448776 00000 n +0000448902 00000 n +0000448966 00000 n +0000449030 00000 n +0000449094 00000 n +0000451021 00000 n +0000450835 00000 n +0000449320 00000 n +0000450958 00000 n +0001002725 00000 n +0000459886 00000 n +0000462503 00000 n +0000460419 00000 n +0000459742 00000 n +0000451119 00000 n +0000460036 00000 n +0000460163 00000 n +0000460227 00000 n +0000460291 00000 n +0000460355 00000 n +0000462718 00000 n +0000462359 00000 n +0000460581 00000 n +0000462655 00000 n +0000469728 00000 n +0000469415 00000 n +0000462816 00000 n +0000469538 00000 n +0000476706 00000 n +0000476984 00000 n +0000476562 00000 n +0000469865 00000 n +0000476858 00000 n +0000476921 00000 n +0000487361 00000 n +0000487652 00000 n +0000487217 00000 n +0000477108 00000 n +0000487524 00000 n +0000487588 00000 n +0000491008 00000 n +0000490509 00000 n +0000487789 00000 n +0000490632 00000 n +0000490695 00000 n +0000490758 00000 n +0000490821 00000 n +0000490884 00000 n +0000490947 00000 n +0001002850 00000 n +0000498468 00000 n +0000498744 00000 n +0000498324 00000 n +0000491093 00000 n +0000498618 00000 n +0000502228 00000 n +0000502643 00000 n +0000502084 00000 n +0000498868 00000 n +0000502391 00000 n +0000502454 00000 n +0000502517 00000 n +0000502580 00000 n +0000506460 00000 n +0000506610 00000 n +0000506951 00000 n +0000506307 00000 n +0000502754 00000 n +0000506761 00000 n +0000506887 00000 n +0000510552 00000 n +0000510703 00000 n +0000510979 00000 n +0000510399 00000 n +0000507062 00000 n +0000510855 00000 n +0000513537 00000 n +0000513813 00000 n +0000513393 00000 n +0000511090 00000 n +0000513687 00000 n +0000520064 00000 n +0000520213 00000 n +0000520490 00000 n +0000519911 00000 n +0000513924 00000 n +0000520365 00000 n +0001002975 00000 n +0000522589 00000 n +0000522274 00000 n +0000520627 00000 n +0000522397 00000 n +0000522461 00000 n +0000522525 00000 n +0000527774 00000 n +0000527925 00000 n +0000528386 00000 n +0000527621 00000 n +0000522674 00000 n +0000528073 00000 n +0000528197 00000 n +0000528260 00000 n +0000528323 00000 n +0000535176 00000 n +0000535328 00000 n +0000542018 00000 n +0000535603 00000 n +0000535023 00000 n +0000528510 00000 n +0000535476 00000 n +0000542798 00000 n +0000541874 00000 n +0000535727 00000 n +0000542169 00000 n +0000542232 00000 n +0000542295 00000 n +0000542358 00000 n +0000542421 00000 n +0000542483 00000 n +0000542546 00000 n +0000542609 00000 n +0000542672 00000 n +0000542735 00000 n +0000549783 00000 n +0000549933 00000 n +0000550208 00000 n +0000549630 00000 n +0000542922 00000 n +0000550082 00000 n +0000553190 00000 n +0000552627 00000 n +0000550319 00000 n +0000552750 00000 n +0000552813 00000 n +0000552876 00000 n +0000552939 00000 n +0000553002 00000 n +0000553065 00000 n +0000553128 00000 n +0001003100 00000 n +0000556572 00000 n +0000556720 00000 n +0000556997 00000 n +0000556419 00000 n +0000553275 00000 n +0000556871 00000 n +0000561312 00000 n +0000561462 00000 n +0000561802 00000 n +0000561159 00000 n +0000557108 00000 n +0000561614 00000 n +0000561739 00000 n +0000567237 00000 n +0000567388 00000 n +0000567663 00000 n +0000567084 00000 n +0000561913 00000 n +0000567537 00000 n +0000574817 00000 n +0000574969 00000 n +0000575242 00000 n +0000574664 00000 n +0000567787 00000 n +0000575118 00000 n +0000576856 00000 n +0000576541 00000 n +0000575366 00000 n +0000576664 00000 n +0000576728 00000 n +0000576792 00000 n +0000582391 00000 n +0000582541 00000 n +0000582690 00000 n +0000582962 00000 n +0000582229 00000 n +0000576954 00000 n +0000582838 00000 n +0001003225 00000 n +0000586678 00000 n +0000586826 00000 n +0000587104 00000 n +0000586525 00000 n +0000583086 00000 n +0000586978 00000 n +0000590959 00000 n +0000590712 00000 n +0000587215 00000 n +0000590835 00000 n +0000597847 00000 n +0000598123 00000 n +0000597703 00000 n +0000591096 00000 n +0000597997 00000 n +0000599311 00000 n +0000598999 00000 n +0000598247 00000 n +0000599122 00000 n +0000599185 00000 n +0000599248 00000 n +0000605336 00000 n +0000605613 00000 n +0000605192 00000 n +0000599396 00000 n +0000605487 00000 n +0000609212 00000 n +0000609551 00000 n +0000609068 00000 n +0000605737 00000 n +0000609364 00000 n +0000609488 00000 n +0001003350 00000 n +0000614862 00000 n +0000615203 00000 n +0000614718 00000 n +0000609675 00000 n +0000615013 00000 n +0000615139 00000 n +0000618771 00000 n +0000619110 00000 n +0000618627 00000 n +0000615327 00000 n +0000618923 00000 n +0000619047 00000 n +0000624430 00000 n +0000624771 00000 n +0000624286 00000 n +0000619234 00000 n +0000624581 00000 n +0000624707 00000 n +0000628920 00000 n +0000629321 00000 n +0000628776 00000 n +0000624895 00000 n +0000629071 00000 n +0000629195 00000 n +0000629258 00000 n +0000633290 00000 n +0000633694 00000 n +0000633146 00000 n +0000629432 00000 n +0000633440 00000 n +0000633566 00000 n +0000633630 00000 n +0000639792 00000 n +0000640067 00000 n +0000639648 00000 n +0000633805 00000 n +0000639942 00000 n +0001003475 00000 n +0000644341 00000 n +0000643962 00000 n +0000640191 00000 n +0000644085 00000 n +0000644149 00000 n +0000644213 00000 n +0000644277 00000 n +0000648810 00000 n +0000648960 00000 n +0000649112 00000 n +0000649386 00000 n +0000648648 00000 n +0000644465 00000 n +0000649262 00000 n +0000655593 00000 n +0000655343 00000 n +0000649510 00000 n +0000655466 00000 n +0000663522 00000 n +0000662770 00000 n +0000655717 00000 n +0000662893 00000 n +0000662956 00000 n +0000663019 00000 n +0000663082 00000 n +0000663145 00000 n +0000663208 00000 n +0000663271 00000 n +0000663333 00000 n +0000663396 00000 n +0000663459 00000 n +0000664141 00000 n +0000663891 00000 n +0000663645 00000 n +0000664014 00000 n +0000670225 00000 n +0000669852 00000 n +0000664226 00000 n +0000669975 00000 n +0000670099 00000 n +0000670162 00000 n +0001003600 00000 n +0000675437 00000 n +0000675060 00000 n +0000670362 00000 n +0000675183 00000 n +0000675310 00000 n +0000675373 00000 n +0000680425 00000 n +0000679989 00000 n +0000675574 00000 n +0000680112 00000 n +0000680236 00000 n +0000680299 00000 n +0000680362 00000 n +0000683031 00000 n +0000682782 00000 n +0000680562 00000 n +0000682905 00000 n +0000686469 00000 n +0000686222 00000 n +0000683142 00000 n +0000686345 00000 n +0000688117 00000 n +0000687868 00000 n +0000686606 00000 n +0000687991 00000 n +0000690019 00000 n +0000689772 00000 n +0000688228 00000 n +0000689895 00000 n +0001003725 00000 n +0000691796 00000 n +0000691547 00000 n +0000690130 00000 n +0000691670 00000 n +0000696766 00000 n +0000696519 00000 n +0000691907 00000 n +0000696642 00000 n +0000702539 00000 n +0000702162 00000 n +0000696903 00000 n +0000702285 00000 n +0000702411 00000 n +0000702475 00000 n +0000708260 00000 n +0000707887 00000 n +0000702676 00000 n +0000708010 00000 n +0000708134 00000 n +0000708197 00000 n +0000714017 00000 n +0000713640 00000 n +0000708397 00000 n +0000713763 00000 n +0000713889 00000 n +0000713953 00000 n +0000719826 00000 n +0000719453 00000 n +0000714154 00000 n +0000719576 00000 n +0000719700 00000 n +0000719763 00000 n +0001003850 00000 n +0000725673 00000 n +0000725296 00000 n +0000719963 00000 n +0000725419 00000 n +0000725545 00000 n +0000725609 00000 n +0000731525 00000 n +0000731216 00000 n +0000725810 00000 n +0000731339 00000 n +0000731463 00000 n +0000737398 00000 n +0000737086 00000 n +0000731662 00000 n +0000737209 00000 n +0000737335 00000 n +0000744129 00000 n +0000744280 00000 n +0000744557 00000 n +0000743976 00000 n +0000737535 00000 n +0000744432 00000 n +0000753608 00000 n +0000753672 00000 n +0000753736 00000 n +0000751825 00000 n +0000744655 00000 n +0000751948 00000 n +0000752012 00000 n +0000752076 00000 n +0000999348 00000 n +0000752140 00000 n +0000752204 00000 n +0000752268 00000 n +0000752332 00000 n +0000752396 00000 n +0000752459 00000 n +0000752523 00000 n +0000752587 00000 n +0000752651 00000 n +0000752715 00000 n +0000752779 00000 n +0000752843 00000 n +0000752907 00000 n +0000752971 00000 n +0000753033 00000 n +0000753097 00000 n +0000753161 00000 n +0000753225 00000 n +0000753289 00000 n +0000753353 00000 n +0000753417 00000 n +0000753481 00000 n +0000753545 00000 n +0000758006 00000 n +0000757634 00000 n +0000753849 00000 n +0000757757 00000 n +0000757882 00000 n +0000757944 00000 n +0001003975 00000 n +0000759940 00000 n +0000759564 00000 n +0000758104 00000 n +0000759687 00000 n +0000759814 00000 n +0000759877 00000 n +0000762101 00000 n +0000761729 00000 n +0000760038 00000 n +0000761852 00000 n +0000761977 00000 n +0000762039 00000 n +0000764741 00000 n +0000764365 00000 n +0000762199 00000 n +0000764488 00000 n +0000764615 00000 n +0000764678 00000 n +0000765685 00000 n +0000765437 00000 n +0000764852 00000 n +0000765560 00000 n +0000770765 00000 n +0000771169 00000 n +0000770621 00000 n +0000765783 00000 n +0000770914 00000 n +0000771041 00000 n +0000771105 00000 n +0000776742 00000 n +0000777142 00000 n +0000776598 00000 n +0000771280 00000 n +0000776891 00000 n +0000777016 00000 n +0000777079 00000 n +0001004100 00000 n +0000781111 00000 n +0000781515 00000 n +0000780967 00000 n +0000777253 00000 n +0000781260 00000 n +0000781387 00000 n +0000781451 00000 n +0000785765 00000 n +0000785391 00000 n +0000781626 00000 n +0000785514 00000 n +0000785639 00000 n +0000785702 00000 n +0000790265 00000 n +0000790668 00000 n +0000790121 00000 n +0000785876 00000 n +0000790413 00000 n +0000790540 00000 n +0000790604 00000 n +0000794594 00000 n +0000794220 00000 n +0000790779 00000 n +0000794343 00000 n +0000794468 00000 n +0000794531 00000 n +0000795927 00000 n +0000795677 00000 n +0000794705 00000 n +0000795800 00000 n +0000800893 00000 n +0000801045 00000 n +0000801387 00000 n +0000800740 00000 n +0000796038 00000 n +0000801200 00000 n +0000801324 00000 n +0001004225 00000 n +0000808937 00000 n +0000809086 00000 n +0000809236 00000 n +0000809388 00000 n +0000809666 00000 n +0000808766 00000 n +0000801549 00000 n +0000809540 00000 n +0000815996 00000 n +0000816147 00000 n +0000816295 00000 n +0000816447 00000 n +0000816720 00000 n +0000815825 00000 n +0000809777 00000 n +0000816596 00000 n +0000819031 00000 n +0000819310 00000 n +0000818887 00000 n +0000816831 00000 n +0000819183 00000 n +0000820717 00000 n +0000820470 00000 n +0000819421 00000 n +0000820593 00000 n +0000821746 00000 n +0000821496 00000 n +0000820828 00000 n +0000821619 00000 n +0000830561 00000 n +0000830711 00000 n +0000830862 00000 n +0000838397 00000 n +0000831323 00000 n +0000830399 00000 n +0000821844 00000 n +0000831010 00000 n +0000831134 00000 n +0000831197 00000 n +0000831260 00000 n +0001004350 00000 n +0000838546 00000 n +0000838697 00000 n +0000838909 00000 n +0000838235 00000 n +0000831485 00000 n 0000838845 00000 n -0000839333 00000 n -0000839146 00000 n -0000839006 00000 n -0000839269 00000 n -0000847474 00000 n -0000846479 00000 n -0000839405 00000 n -0000846602 00000 n -0000846665 00000 n -0000846790 00000 n -0000847286 00000 n -0000847411 00000 n -0000851385 00000 n -0000850756 00000 n -0000847572 00000 n -0000850879 00000 n -0000851321 00000 n -0000851483 00000 n -0000851627 00000 n -0000852126 00000 n -0000852460 00000 n -0000852808 00000 n -0000852834 00000 n -0000853345 00000 n -0000853383 00000 n -0000854078 00000 n -0000854411 00000 n -0000854491 00000 n -0000854871 00000 n -0000855513 00000 n -0000856177 00000 n -0000856805 00000 n -0000857454 00000 n -0000857744 00000 n -0000858397 00000 n -0000872601 00000 n -0000873033 00000 n -0000885432 00000 n -0000885860 00000 n -0000890146 00000 n -0000890398 00000 n -0000901260 00000 n -0000901593 00000 n -0000903679 00000 n -0000903901 00000 n -0000908092 00000 n -0000908335 00000 n -0000925323 00000 n -0000925858 00000 n -0000928134 00000 n -0000928366 00000 n -0000930749 00000 n -0000930987 00000 n -0000940669 00000 n -0000941046 00000 n -0000950117 00000 n -0000950490 00000 n -0000954540 00000 n -0000954884 00000 n -0000956507 00000 n -0000956743 00000 n -0000970548 00000 n -0000970927 00000 n -0000977200 00000 n -0000977468 00000 n -0000990960 00000 n -0000991449 00000 n -0000995918 00000 n -0001001625 00000 n -0001001745 00000 n -0001001870 00000 n -0001001996 00000 n -0001002122 00000 n -0001002214 00000 n -0001014374 00000 n -0001014561 00000 n -0001014746 00000 n -0001014929 00000 n -0001015114 00000 n -0001015292 00000 n -0001015461 00000 n -0001015632 00000 n -0001015802 00000 n -0001015973 00000 n -0001016143 00000 n -0001016320 00000 n -0001016495 00000 n -0001016672 00000 n -0001016847 00000 n -0001017024 00000 n -0001017198 00000 n -0001017372 00000 n -0001017549 00000 n -0001017724 00000 n -0001017901 00000 n -0001018087 00000 n -0001018308 00000 n -0001018525 00000 n -0001018731 00000 n -0001018920 00000 n -0001019102 00000 n -0001019333 00000 n -0001019561 00000 n +0000841757 00000 n +0000841571 00000 n +0000839033 00000 n +0000841694 00000 n +0000842182 00000 n +0000841995 00000 n +0000841855 00000 n +0000842118 00000 n +0000850323 00000 n +0000849328 00000 n +0000842254 00000 n +0000849451 00000 n +0000849514 00000 n +0000849639 00000 n +0000850135 00000 n +0000850260 00000 n +0000854234 00000 n +0000853605 00000 n +0000850421 00000 n +0000853728 00000 n +0000854170 00000 n +0000854332 00000 n +0000854476 00000 n +0000854975 00000 n +0000855309 00000 n +0000855657 00000 n +0000855683 00000 n +0000856194 00000 n +0000856232 00000 n +0000856927 00000 n +0000857260 00000 n +0000857340 00000 n +0000857720 00000 n +0000858362 00000 n +0000859026 00000 n +0000859654 00000 n +0000860303 00000 n +0000860593 00000 n +0000861246 00000 n +0000875450 00000 n +0000875882 00000 n +0000888281 00000 n +0000888709 00000 n +0000892995 00000 n +0000893247 00000 n +0000904109 00000 n +0000904442 00000 n +0000906528 00000 n +0000906750 00000 n +0000910941 00000 n +0000911184 00000 n +0000928172 00000 n +0000928707 00000 n +0000930983 00000 n +0000931215 00000 n +0000933598 00000 n +0000933836 00000 n +0000943518 00000 n +0000943895 00000 n +0000952966 00000 n +0000953339 00000 n +0000957389 00000 n +0000957733 00000 n +0000959356 00000 n +0000959592 00000 n +0000973397 00000 n +0000973776 00000 n +0000980049 00000 n +0000980317 00000 n +0000993809 00000 n +0000994298 00000 n +0000998767 00000 n +0001004475 00000 n +0001004595 00000 n +0001004720 00000 n +0001004846 00000 n +0001004972 00000 n +0001005064 00000 n +0001017316 00000 n +0001017503 00000 n +0001017688 00000 n +0001017871 00000 n +0001018056 00000 n +0001018234 00000 n +0001018403 00000 n +0001018574 00000 n +0001018744 00000 n +0001018915 00000 n +0001019085 00000 n +0001019262 00000 n +0001019437 00000 n +0001019614 00000 n 0001019789 00000 n -0001020030 00000 n -0001020266 00000 n -0001020503 00000 n -0001020744 00000 n -0001020984 00000 n -0001021219 00000 n -0001021452 00000 n -0001021630 00000 n -0001021815 00000 n -0001021997 00000 n -0001022179 00000 n -0001022364 00000 n -0001022547 00000 n -0001022732 00000 n -0001022908 00000 n -0001023078 00000 n -0001023249 00000 n -0001023419 00000 n -0001023593 00000 n -0001023767 00000 n -0001023941 00000 n -0001024118 00000 n -0001024293 00000 n -0001024470 00000 n -0001024645 00000 n -0001024822 00000 n -0001024997 00000 n -0001025174 00000 n -0001025349 00000 n -0001025526 00000 n -0001025703 00000 n -0001025911 00000 n -0001026117 00000 n -0001026317 00000 n -0001026520 00000 n -0001026721 00000 n -0001026924 00000 n -0001027125 00000 n -0001027328 00000 n -0001027529 00000 n -0001027732 00000 n -0001027933 00000 n -0001028136 00000 n -0001028336 00000 n -0001028536 00000 n -0001028739 00000 n -0001028940 00000 n -0001029143 00000 n -0001029340 00000 n -0001029525 00000 n -0001029723 00000 n -0001029946 00000 n -0001030209 00000 n -0001030391 00000 n -0001030569 00000 n -0001030740 00000 n -0001030839 00000 n -0001030956 00000 n -0001031072 00000 n -0001031188 00000 n -0001031307 00000 n -0001031434 00000 n -0001031565 00000 n -0001031681 00000 n -0001031798 00000 n -0001031913 00000 n -0001032032 00000 n -0001032156 00000 n -0001032280 00000 n -0001032402 00000 n -0001032520 00000 n -0001032598 00000 n -0001032723 00000 n -0001032842 00000 n -0001032932 00000 n -0001033021 00000 n -0001033061 00000 n -0001033298 00000 n +0001019966 00000 n +0001020140 00000 n +0001020314 00000 n +0001020491 00000 n +0001020666 00000 n +0001020843 00000 n +0001021029 00000 n +0001021250 00000 n +0001021467 00000 n +0001021673 00000 n +0001021862 00000 n +0001022044 00000 n +0001022275 00000 n +0001022503 00000 n +0001022731 00000 n +0001022972 00000 n +0001023208 00000 n +0001023445 00000 n +0001023686 00000 n +0001023926 00000 n +0001024161 00000 n +0001024394 00000 n +0001024572 00000 n +0001024757 00000 n +0001024939 00000 n +0001025121 00000 n +0001025306 00000 n +0001025489 00000 n +0001025674 00000 n +0001025850 00000 n +0001026020 00000 n +0001026191 00000 n +0001026361 00000 n +0001026536 00000 n +0001026710 00000 n +0001026884 00000 n +0001027061 00000 n +0001027236 00000 n +0001027413 00000 n +0001027588 00000 n +0001027765 00000 n +0001027940 00000 n +0001028117 00000 n +0001028292 00000 n +0001028469 00000 n +0001028646 00000 n +0001028854 00000 n +0001029061 00000 n +0001029264 00000 n +0001029464 00000 n +0001029664 00000 n +0001029867 00000 n +0001030068 00000 n +0001030271 00000 n +0001030472 00000 n +0001030675 00000 n +0001030876 00000 n +0001031079 00000 n +0001031280 00000 n +0001031483 00000 n +0001031683 00000 n +0001031883 00000 n +0001032086 00000 n +0001032284 00000 n +0001032471 00000 n +0001032665 00000 n +0001032887 00000 n +0001033140 00000 n +0001033344 00000 n +0001033524 00000 n +0001033697 00000 n +0001033810 00000 n +0001033927 00000 n +0001034043 00000 n +0001034159 00000 n +0001034278 00000 n +0001034405 00000 n +0001034536 00000 n +0001034652 00000 n +0001034769 00000 n +0001034884 00000 n +0001035003 00000 n +0001035127 00000 n +0001035251 00000 n +0001035374 00000 n +0001035493 00000 n +0001035571 00000 n +0001035696 00000 n +0001035815 00000 n +0001035906 00000 n +0001035995 00000 n +0001036035 00000 n +0001036272 00000 n trailer -<< /Size 1879 -/Root 1877 0 R -/Info 1878 0 R -/ID [<7D03C58A1D185188914162B553F3C120> <7D03C58A1D185188914162B553F3C120>] >> +<< /Size 1884 +/Root 1882 0 R +/Info 1883 0 R +/ID [ ] >> startxref -1033935 +1036909 %%EOF diff --git a/docs/src/datastruct.tex b/docs/src/datastruct.tex index 65f108e3..4985afd4 100644 --- a/docs/src/datastruct.tex +++ b/docs/src/datastruct.tex @@ -278,6 +278,35 @@ Scope: {\bf local}.\\ \end{description} +\subsubsection*{get\_global\_indices --- Get vector of global indices} +\addcontentsline{toc}{paragraph}{get\_global\_rows} + +\begin{verbatim} +myidx = desc%get_global_indices([owned]) +\end{verbatim} + +\begin{description} +\item[Type:] Asynchronous. +\item[\bf On Entry] +\item[desc] the communication descriptor.\\ +Scope: {\bf local}.\\ +Type: {\bf required}.\\ +\item[owned] Choose if you only want owned indices + (\verb|owned=.true.|) or also halo indices (\verb|owned=.false.|). +Scope: {\bf local}.\\ +Type: {\bf optional}; default: \verb|.true.|.\\ +% Intent: {\bf in}.\\ +% Specified as: a object of type \descdata. +\end{description} + +\begin{description} +\item[\bf On Return] +\item[Function value] The global indices, returned as an allocatable + integer array of rank 1. +\end{description} + + + \subsubsection*{get\_context --- Get communication context} \addcontentsline{toc}{paragraph}{get\_context} diff --git a/util/psb_d_genpde_impl.f90 b/util/psb_d_genpde_impl.f90 index aa57be0e..cb47737d 100644 --- a/util/psb_d_genpde_impl.f90 +++ b/util/psb_d_genpde_impl.f90 @@ -155,7 +155,7 @@ subroutine psb_d_gen_pde3d(ictxt,idim,a,bv,xv,desc_a,afmt,& ! define rhs from boundary conditions; also build initial guess if (info == psb_success_) call psb_geall(xv,desc_a,info) if (info == psb_success_) call psb_geall(bv,desc_a,info) - nlr = desc_a%get_local_rows() + call psb_barrier(ictxt) talc = psb_wtime()-t0 @@ -171,19 +171,15 @@ subroutine psb_d_gen_pde3d(ictxt,idim,a,bv,xv,desc_a,afmt,& ! a bunch of rows per call. ! allocate(val(20*nb),irow(20*nb),& - &icol(20*nb),myidx(nlr),stat=info) + &icol(20*nb),stat=info) if (info /= psb_success_ ) then info=psb_err_alloc_dealloc_ call psb_errpush(info,name) goto 9999 endif - do i=1,nlr - myidx(i) = i - end do - - - call psb_loc_to_glob(myidx,desc_a,info) + myidx = desc_a%get_global_indices() + nlr = size(myidx) ! loop over rows belonging to current process in a block ! distribution. @@ -481,7 +477,6 @@ subroutine psb_d_gen_pde2d(ictxt,idim,a,bv,xv,desc_a,afmt,& ! define rhs from boundary conditions; also build initial guess if (info == psb_success_) call psb_geall(xv,desc_a,info) if (info == psb_success_) call psb_geall(bv,desc_a,info) - nlr = desc_a%get_local_rows() call psb_barrier(ictxt) talc = psb_wtime()-t0 @@ -497,19 +492,16 @@ subroutine psb_d_gen_pde2d(ictxt,idim,a,bv,xv,desc_a,afmt,& ! a bunch of rows per call. ! allocate(val(20*nb),irow(20*nb),& - &icol(20*nb),myidx(nlr),stat=info) + &icol(20*nb),stat=info) if (info /= psb_success_ ) then info=psb_err_alloc_dealloc_ call psb_errpush(info,name) goto 9999 endif - do i=1,nlr - myidx(i) = i - end do - - - call psb_loc_to_glob(myidx,desc_a,info) + + myidx = desc_a%get_global_indices() + nlr = size(myidx) ! loop over rows belonging to current process in a block ! distribution. diff --git a/util/psb_s_genpde_impl.f90 b/util/psb_s_genpde_impl.f90 index cdedd174..840bc0d3 100644 --- a/util/psb_s_genpde_impl.f90 +++ b/util/psb_s_genpde_impl.f90 @@ -140,7 +140,7 @@ subroutine psb_s_gen_pde3d(ictxt,idim,a,bv,xv,desc_a,afmt,& ! define rhs from boundary conditions; also build initial guess if (info == psb_success_) call psb_geall(xv,desc_a,info) if (info == psb_success_) call psb_geall(bv,desc_a,info) - nlr = desc_a%get_local_rows() + call psb_barrier(ictxt) talc = psb_wtime()-t0 @@ -156,19 +156,15 @@ subroutine psb_s_gen_pde3d(ictxt,idim,a,bv,xv,desc_a,afmt,& ! a bunch of rows per call. ! allocate(val(20*nb),irow(20*nb),& - &icol(20*nb),myidx(nlr),stat=info) + &icol(20*nb),stat=info) if (info /= psb_success_ ) then info=psb_err_alloc_dealloc_ call psb_errpush(info,name) goto 9999 endif - do i=1,nlr - myidx(i) = i - end do - - - call psb_loc_to_glob(myidx,desc_a,info) + myidx = desc_a%get_global_indices() + nlr = size(myidx) ! loop over rows belonging to current process in a block ! distribution. @@ -451,7 +447,6 @@ subroutine psb_s_gen_pde2d(ictxt,idim,a,bv,xv,desc_a,afmt,& ! define rhs from boundary conditions; also build initial guess if (info == psb_success_) call psb_geall(xv,desc_a,info) if (info == psb_success_) call psb_geall(bv,desc_a,info) - nlr = desc_a%get_local_rows() call psb_barrier(ictxt) talc = psb_wtime()-t0 @@ -467,19 +462,16 @@ subroutine psb_s_gen_pde2d(ictxt,idim,a,bv,xv,desc_a,afmt,& ! a bunch of rows per call. ! allocate(val(20*nb),irow(20*nb),& - &icol(20*nb),myidx(nlr),stat=info) + &icol(20*nb),stat=info) if (info /= psb_success_ ) then info=psb_err_alloc_dealloc_ call psb_errpush(info,name) goto 9999 endif - do i=1,nlr - myidx(i) = i - end do - - - call psb_loc_to_glob(myidx,desc_a,info) + + myidx = desc_a%get_global_indices() + nlr = size(myidx) ! loop over rows belonging to current process in a block ! distribution.