{"diffoscope-json-version": 1, "source1": "/srv/reproducible-results/rbuild-debian/r-b-build.XzMVjOKr/b1/spooles_2.2-14.1_i386.changes", "source2": "/srv/reproducible-results/rbuild-debian/r-b-build.XzMVjOKr/b2/spooles_2.2-14.1_i386.changes", "unified_diff": null, "details": [{"source1": "Files", "source2": "Files", "unified_diff": "@@ -1,5 +1,5 @@\n \n 4b3441d513b5ffab51088506c54d6728 637592 libdevel optional libspooles-dev_2.2-14.1_i386.deb\n 8f644c57e42223efb3eb5a75e28b05d1 1123340 debug optional libspooles2.2t64-dbgsym_2.2-14.1_i386.deb\n 69f930ba3c0f75558235a6036086acd1 488428 libs optional libspooles2.2t64_2.2-14.1_i386.deb\n- d499b7179ed02759539567c73c6ef039 6777876 doc optional spooles-doc_2.2-14.1_all.deb\n+ 61eae5304460ccc42474ebd7faad5a66 6766572 doc optional spooles-doc_2.2-14.1_all.deb\n"}, {"source1": "spooles-doc_2.2-14.1_all.deb", "source2": "spooles-doc_2.2-14.1_all.deb", "unified_diff": null, "details": [{"source1": "file list", "source2": "file list", "unified_diff": "@@ -1,3 +1,3 @@\n -rw-r--r-- 0 0 0 4 2024-02-29 17:18:08.000000 debian-binary\n--rw-r--r-- 0 0 0 1948 2024-02-29 17:18:08.000000 control.tar.xz\n--rw-r--r-- 0 0 0 6775736 2024-02-29 17:18:08.000000 data.tar.xz\n+-rw-r--r-- 0 0 0 1944 2024-02-29 17:18:08.000000 control.tar.xz\n+-rw-r--r-- 0 0 0 6764436 2024-02-29 17:18:08.000000 data.tar.xz\n"}, {"source1": "control.tar.xz", "source2": "control.tar.xz", "unified_diff": null, "details": [{"source1": "control.tar", "source2": "control.tar", "unified_diff": null, "details": [{"source1": "./control", "source2": "./control", "unified_diff": "@@ -1,13 +1,13 @@\n Package: spooles-doc\n Source: spooles\n Version: 2.2-14.1\n Architecture: all\n Maintainer: Debian Science Maintainers \n-Installed-Size: 6873\n+Installed-Size: 6856\n Suggests: libspooles2.2-dev\n Section: doc\n Priority: optional\n Homepage: http://www.netlib.org/linalg/spooles/\n Description: SPOOLES numerical simulation pre- and post-processor documentation\n SPOOLES is a library for solving sparse real and complex linear systems of\n equations, written in the C language using object oriented design.\n"}, {"source1": "./md5sums", "source2": "./md5sums", "unified_diff": null, "details": [{"source1": "./md5sums", "source2": "./md5sums", "comments": ["Files differ"], "unified_diff": null}]}]}]}, {"source1": "data.tar.xz", "source2": "data.tar.xz", "unified_diff": null, "details": [{"source1": "data.tar", "source2": "data.tar", "unified_diff": null, "details": [{"source1": "file list", "source2": "file list", "unified_diff": "@@ -1,56 +1,56 @@\n drwxr-xr-x 0 root (0) root (0) 0 2024-02-29 17:18:08.000000 ./\n drwxr-xr-x 0 root (0) root (0) 0 2024-02-29 17:18:08.000000 ./usr/\n drwxr-xr-x 0 root (0) root (0) 0 2024-02-29 17:18:08.000000 ./usr/share/\n drwxr-xr-x 0 root (0) root (0) 0 2024-02-29 17:18:08.000000 ./usr/share/doc/\n drwxr-xr-x 0 root (0) root (0) 0 2024-02-29 17:18:08.000000 ./usr/share/doc/spooles-doc/\n--rw-r--r-- 0 root (0) root (0) 151649 2024-02-29 17:18:08.000000 ./usr/share/doc/spooles-doc/A2.ps.gz\n+-rw-r--r-- 0 root (0) root (0) 151204 2024-02-29 17:18:08.000000 ./usr/share/doc/spooles-doc/A2.ps.gz\n -rw-r--r-- 0 root (0) root (0) 596035 2024-02-29 17:18:08.000000 ./usr/share/doc/spooles-doc/ASHCRAFC.ps.gz\n--rw-r--r-- 0 root (0) root (0) 67192 2024-02-29 17:18:08.000000 ./usr/share/doc/spooles-doc/AllInOne.ps.gz\n--rw-r--r-- 0 root (0) root (0) 127521 2024-02-29 17:18:08.000000 ./usr/share/doc/spooles-doc/BKL.ps.gz\n--rw-r--r-- 0 root (0) root (0) 155776 2024-02-29 17:18:08.000000 ./usr/share/doc/spooles-doc/BPG.ps.gz\n--rw-r--r-- 0 root (0) root (0) 189944 2024-02-29 17:18:08.000000 ./usr/share/doc/spooles-doc/Chv.ps.gz\n--rw-r--r-- 0 root (0) root (0) 100620 2024-02-29 17:18:08.000000 ./usr/share/doc/spooles-doc/ChvList.ps.gz\n--rw-r--r-- 0 root (0) root (0) 94351 2024-02-29 17:18:08.000000 ./usr/share/doc/spooles-doc/ChvManager.ps.gz\n--rw-r--r-- 0 root (0) root (0) 120565 2024-02-29 17:18:08.000000 ./usr/share/doc/spooles-doc/Coords.ps.gz\n--rw-r--r-- 0 root (0) root (0) 115611 2024-02-29 17:18:08.000000 ./usr/share/doc/spooles-doc/DSTree.ps.gz\n--rw-r--r-- 0 root (0) root (0) 133717 2024-02-29 17:18:08.000000 ./usr/share/doc/spooles-doc/DV.ps.gz\n--rw-r--r-- 0 root (0) root (0) 117431 2024-02-29 17:18:08.000000 ./usr/share/doc/spooles-doc/DenseMtx.ps.gz\n--rw-r--r-- 0 root (0) root (0) 107227 2024-02-29 17:18:08.000000 ./usr/share/doc/spooles-doc/Drand.ps.gz\n--rw-r--r-- 0 root (0) root (0) 121215 2024-02-29 17:18:08.000000 ./usr/share/doc/spooles-doc/EGraph.ps.gz\n--rw-r--r-- 0 root (0) root (0) 220566 2024-02-29 17:18:08.000000 ./usr/share/doc/spooles-doc/ETree.ps.gz\n--rw-r--r-- 0 root (0) root (0) 87237 2024-02-29 17:18:08.000000 ./usr/share/doc/spooles-doc/Eigen.ps.gz\n--rw-r--r-- 0 root (0) root (0) 179301 2024-02-29 17:18:08.000000 ./usr/share/doc/spooles-doc/FrontMtx.ps.gz\n--rw-r--r-- 0 root (0) root (0) 274935 2024-02-29 17:18:08.000000 ./usr/share/doc/spooles-doc/FrontTrees.ps.gz\n--rw-r--r-- 0 root (0) root (0) 184183 2024-02-29 17:18:08.000000 ./usr/share/doc/spooles-doc/GPart.ps.gz\n--rw-r--r-- 0 root (0) root (0) 189798 2024-02-29 17:18:08.000000 ./usr/share/doc/spooles-doc/Graph.ps.gz\n--rw-r--r-- 0 root (0) root (0) 131703 2024-02-29 17:18:08.000000 ./usr/share/doc/spooles-doc/I2Ohash.ps.gz\n--rw-r--r-- 0 root (0) root (0) 109577 2024-02-29 17:18:08.000000 ./usr/share/doc/spooles-doc/IIheap.ps.gz\n--rw-r--r-- 0 root (0) root (0) 121348 2024-02-29 17:18:08.000000 ./usr/share/doc/spooles-doc/IV.ps.gz\n--rw-r--r-- 0 root (0) root (0) 124292 2024-02-29 17:18:08.000000 ./usr/share/doc/spooles-doc/IVL.ps.gz\n--rw-r--r-- 0 root (0) root (0) 95301 2024-02-29 17:18:08.000000 ./usr/share/doc/spooles-doc/Ideq.ps.gz\n--rw-r--r-- 0 root (0) root (0) 204662 2024-02-29 17:18:08.000000 ./usr/share/doc/spooles-doc/InpMtx.ps.gz\n--rw-r--r-- 0 root (0) root (0) 127100 2024-02-29 17:18:08.000000 ./usr/share/doc/spooles-doc/LinSol.ps.gz\n--rw-r--r-- 0 root (0) root (0) 89102 2024-02-29 17:18:08.000000 ./usr/share/doc/spooles-doc/Lock.ps.gz\n--rw-r--r-- 0 root (0) root (0) 176180 2024-02-29 17:18:08.000000 ./usr/share/doc/spooles-doc/MPI.ps.gz\n--rw-r--r-- 0 root (0) root (0) 168388 2024-02-29 17:18:08.000000 ./usr/share/doc/spooles-doc/MSMD.ps.gz\n--rw-r--r-- 0 root (0) root (0) 163111 2024-02-29 17:18:08.000000 ./usr/share/doc/spooles-doc/MT.ps.gz\n--rw-r--r-- 0 root (0) root (0) 146161 2024-02-29 17:18:08.000000 ./usr/share/doc/spooles-doc/Network.ps.gz\n--rw-r--r-- 0 root (0) root (0) 143225 2024-02-29 17:18:08.000000 ./usr/share/doc/spooles-doc/PatchAndGoInfo.ps.gz\n--rw-r--r-- 0 root (0) root (0) 124366 2024-02-29 17:18:08.000000 ./usr/share/doc/spooles-doc/Pencil.ps.gz\n--rw-r--r-- 0 root (0) root (0) 106918 2024-02-29 17:18:08.000000 ./usr/share/doc/spooles-doc/Perm.ps.gz\n--rw-r--r-- 0 root (0) root (0) 149405 2024-02-29 17:18:08.000000 ./usr/share/doc/spooles-doc/ReferenceManual.ps.gz\n--rw-r--r-- 0 root (0) root (0) 152726 2024-02-29 17:18:08.000000 ./usr/share/doc/spooles-doc/SemiImplMtx.ps.gz\n--rw-r--r-- 0 root (0) root (0) 134312 2024-02-29 17:18:08.000000 ./usr/share/doc/spooles-doc/SolveMap.ps.gz\n--rw-r--r-- 0 root (0) root (0) 175648 2024-02-29 17:18:08.000000 ./usr/share/doc/spooles-doc/SubMtx.ps.gz\n--rw-r--r-- 0 root (0) root (0) 101288 2024-02-29 17:18:08.000000 ./usr/share/doc/spooles-doc/SubMtxList.ps.gz\n--rw-r--r-- 0 root (0) root (0) 117482 2024-02-29 17:18:08.000000 ./usr/share/doc/spooles-doc/SubMtxManager.ps.gz\n--rw-r--r-- 0 root (0) root (0) 120566 2024-02-29 17:18:08.000000 ./usr/share/doc/spooles-doc/SymbFac.ps.gz\n--rw-r--r-- 0 root (0) root (0) 167688 2024-02-29 17:18:08.000000 ./usr/share/doc/spooles-doc/Tree.ps.gz\n--rw-r--r-- 0 root (0) root (0) 189925 2024-02-29 17:18:08.000000 ./usr/share/doc/spooles-doc/Utilities.ps.gz\n--rw-r--r-- 0 root (0) root (0) 127595 2024-02-29 17:18:08.000000 ./usr/share/doc/spooles-doc/ZV.ps.gz\n+-rw-r--r-- 0 root (0) root (0) 67435 2024-02-29 17:18:08.000000 ./usr/share/doc/spooles-doc/AllInOne.ps.gz\n+-rw-r--r-- 0 root (0) root (0) 127073 2024-02-29 17:18:08.000000 ./usr/share/doc/spooles-doc/BKL.ps.gz\n+-rw-r--r-- 0 root (0) root (0) 155312 2024-02-29 17:18:08.000000 ./usr/share/doc/spooles-doc/BPG.ps.gz\n+-rw-r--r-- 0 root (0) root (0) 189461 2024-02-29 17:18:08.000000 ./usr/share/doc/spooles-doc/Chv.ps.gz\n+-rw-r--r-- 0 root (0) root (0) 100200 2024-02-29 17:18:08.000000 ./usr/share/doc/spooles-doc/ChvList.ps.gz\n+-rw-r--r-- 0 root (0) root (0) 93884 2024-02-29 17:18:08.000000 ./usr/share/doc/spooles-doc/ChvManager.ps.gz\n+-rw-r--r-- 0 root (0) root (0) 120109 2024-02-29 17:18:08.000000 ./usr/share/doc/spooles-doc/Coords.ps.gz\n+-rw-r--r-- 0 root (0) root (0) 115112 2024-02-29 17:18:08.000000 ./usr/share/doc/spooles-doc/DSTree.ps.gz\n+-rw-r--r-- 0 root (0) root (0) 133234 2024-02-29 17:18:08.000000 ./usr/share/doc/spooles-doc/DV.ps.gz\n+-rw-r--r-- 0 root (0) root (0) 116919 2024-02-29 17:18:08.000000 ./usr/share/doc/spooles-doc/DenseMtx.ps.gz\n+-rw-r--r-- 0 root (0) root (0) 106855 2024-02-29 17:18:08.000000 ./usr/share/doc/spooles-doc/Drand.ps.gz\n+-rw-r--r-- 0 root (0) root (0) 120746 2024-02-29 17:18:08.000000 ./usr/share/doc/spooles-doc/EGraph.ps.gz\n+-rw-r--r-- 0 root (0) root (0) 220062 2024-02-29 17:18:08.000000 ./usr/share/doc/spooles-doc/ETree.ps.gz\n+-rw-r--r-- 0 root (0) root (0) 87390 2024-02-29 17:18:08.000000 ./usr/share/doc/spooles-doc/Eigen.ps.gz\n+-rw-r--r-- 0 root (0) root (0) 178985 2024-02-29 17:18:08.000000 ./usr/share/doc/spooles-doc/FrontMtx.ps.gz\n+-rw-r--r-- 0 root (0) root (0) 275534 2024-02-29 17:18:08.000000 ./usr/share/doc/spooles-doc/FrontTrees.ps.gz\n+-rw-r--r-- 0 root (0) root (0) 183770 2024-02-29 17:18:08.000000 ./usr/share/doc/spooles-doc/GPart.ps.gz\n+-rw-r--r-- 0 root (0) root (0) 189290 2024-02-29 17:18:08.000000 ./usr/share/doc/spooles-doc/Graph.ps.gz\n+-rw-r--r-- 0 root (0) root (0) 131339 2024-02-29 17:18:08.000000 ./usr/share/doc/spooles-doc/I2Ohash.ps.gz\n+-rw-r--r-- 0 root (0) root (0) 109115 2024-02-29 17:18:08.000000 ./usr/share/doc/spooles-doc/IIheap.ps.gz\n+-rw-r--r-- 0 root (0) root (0) 120883 2024-02-29 17:18:08.000000 ./usr/share/doc/spooles-doc/IV.ps.gz\n+-rw-r--r-- 0 root (0) root (0) 123831 2024-02-29 17:18:08.000000 ./usr/share/doc/spooles-doc/IVL.ps.gz\n+-rw-r--r-- 0 root (0) root (0) 94863 2024-02-29 17:18:08.000000 ./usr/share/doc/spooles-doc/Ideq.ps.gz\n+-rw-r--r-- 0 root (0) root (0) 204171 2024-02-29 17:18:08.000000 ./usr/share/doc/spooles-doc/InpMtx.ps.gz\n+-rw-r--r-- 0 root (0) root (0) 127454 2024-02-29 17:18:08.000000 ./usr/share/doc/spooles-doc/LinSol.ps.gz\n+-rw-r--r-- 0 root (0) root (0) 88645 2024-02-29 17:18:08.000000 ./usr/share/doc/spooles-doc/Lock.ps.gz\n+-rw-r--r-- 0 root (0) root (0) 175772 2024-02-29 17:18:08.000000 ./usr/share/doc/spooles-doc/MPI.ps.gz\n+-rw-r--r-- 0 root (0) root (0) 167968 2024-02-29 17:18:08.000000 ./usr/share/doc/spooles-doc/MSMD.ps.gz\n+-rw-r--r-- 0 root (0) root (0) 162732 2024-02-29 17:18:08.000000 ./usr/share/doc/spooles-doc/MT.ps.gz\n+-rw-r--r-- 0 root (0) root (0) 145717 2024-02-29 17:18:08.000000 ./usr/share/doc/spooles-doc/Network.ps.gz\n+-rw-r--r-- 0 root (0) root (0) 142747 2024-02-29 17:18:08.000000 ./usr/share/doc/spooles-doc/PatchAndGoInfo.ps.gz\n+-rw-r--r-- 0 root (0) root (0) 123924 2024-02-29 17:18:08.000000 ./usr/share/doc/spooles-doc/Pencil.ps.gz\n+-rw-r--r-- 0 root (0) root (0) 106528 2024-02-29 17:18:08.000000 ./usr/share/doc/spooles-doc/Perm.ps.gz\n+-rw-r--r-- 0 root (0) root (0) 149266 2024-02-29 17:18:08.000000 ./usr/share/doc/spooles-doc/ReferenceManual.ps.gz\n+-rw-r--r-- 0 root (0) root (0) 152271 2024-02-29 17:18:08.000000 ./usr/share/doc/spooles-doc/SemiImplMtx.ps.gz\n+-rw-r--r-- 0 root (0) root (0) 133830 2024-02-29 17:18:08.000000 ./usr/share/doc/spooles-doc/SolveMap.ps.gz\n+-rw-r--r-- 0 root (0) root (0) 175267 2024-02-29 17:18:08.000000 ./usr/share/doc/spooles-doc/SubMtx.ps.gz\n+-rw-r--r-- 0 root (0) root (0) 100858 2024-02-29 17:18:08.000000 ./usr/share/doc/spooles-doc/SubMtxList.ps.gz\n+-rw-r--r-- 0 root (0) root (0) 117012 2024-02-29 17:18:08.000000 ./usr/share/doc/spooles-doc/SubMtxManager.ps.gz\n+-rw-r--r-- 0 root (0) root (0) 120158 2024-02-29 17:18:08.000000 ./usr/share/doc/spooles-doc/SymbFac.ps.gz\n+-rw-r--r-- 0 root (0) root (0) 167212 2024-02-29 17:18:08.000000 ./usr/share/doc/spooles-doc/Tree.ps.gz\n+-rw-r--r-- 0 root (0) root (0) 189399 2024-02-29 17:18:08.000000 ./usr/share/doc/spooles-doc/Utilities.ps.gz\n+-rw-r--r-- 0 root (0) root (0) 127151 2024-02-29 17:18:08.000000 ./usr/share/doc/spooles-doc/ZV.ps.gz\n -rw-r--r-- 0 root (0) root (0) 760 2024-02-29 17:18:08.000000 ./usr/share/doc/spooles-doc/changelog.Debian.gz\n -rw-r--r-- 0 root (0) root (0) 378 2018-12-19 22:56:58.000000 ./usr/share/doc/spooles-doc/copyright\n--rw-r--r-- 0 root (0) root (0) 188738 2024-02-29 17:18:08.000000 ./usr/share/doc/spooles-doc/misc.ps.gz\n+-rw-r--r-- 0 root (0) root (0) 188215 2024-02-29 17:18:08.000000 ./usr/share/doc/spooles-doc/misc.ps.gz\n -rw-r--r-- 0 root (0) root (0) 9600 2024-02-29 17:18:08.000000 ./usr/share/doc/spooles-doc/spooles.2.2.html\n drwxr-xr-x 0 root (0) root (0) 0 2024-02-29 17:18:08.000000 ./usr/share/doc-base/\n -rw-r--r-- 0 root (0) root (0) 430 2018-12-19 22:56:58.000000 ./usr/share/doc-base/spooles-doc.spooles\n"}, {"source1": "./usr/share/doc/spooles-doc/A2.ps.gz", "source2": "./usr/share/doc/spooles-doc/A2.ps.gz", "unified_diff": null, "details": [{"source1": "A2.ps", "source2": "A2.ps", "unified_diff": "@@ -11,15 +11,15 @@\n %%EndComments\n %%BeginDefaults\n %%ViewingOrientation: 1 0 0 1\n %%EndDefaults\n %DVIPSWebPage: (www.radicaleye.com)\n %DVIPSCommandLine: dvips main -o A2.ps\n %DVIPSParameters: dpi=600\n-%DVIPSSource: TeX output 2025.08.03:1317\n+%DVIPSSource: TeX output 2024.07.01:0659\n %%BeginProcSet: tex.pro 0 0\n %!\n /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S\n N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72\n mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0\n 0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{\n landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize\n@@ -2060,23 +2060,22 @@\n /UnderlinePosition -100 def\n /UnderlineThickness 50 def\n end readonly def\n /Encoding 256 array\n 0 1 255 {1 index exch /.notdef put} for\n dup 44 /comma put\n dup 48 /zero put\n+dup 49 /one put\n dup 50 /two put\n-dup 51 /three put\n-dup 53 /five put\n+dup 52 /four put\n dup 58 /colon put\n-dup 65 /A put\n-dup 103 /g put\n-dup 115 /s put\n-dup 116 /t put\n+dup 74 /J put\n+dup 108 /l put\n dup 117 /u put\n+dup 121 /y put\n readonly def\n currentdict end\n currentfile eexec\n D9D66F633B846AB284BCF8B0411B772DE5CE32340DC6F28AF40857E4451976E7\n 5182433CF9F333A38BD841C0D4E68BF9E012EB32A8FFB76B5816306B5EDF7C99\n 8B3A16D9B4BC056662E32C7CD0123DFAEB734C7532E64BBFBF5A60336E646716\n EFB852C877F440D329172C71F1E5D59CE9473C26B8AEF7AD68EF0727B6EC2E0C\n@@ -2257,79 +2256,67 @@\n 7CA1534C4D5B05FC33F83790ECFD7641DF3FB94289E2A1F6E7D29AB1228A867A\n 6E1EF0E9C6F899B491DC18401C2C0A05FFFED46A72C245F7529B8EA55A038082\n 8512307217D2A233C37004085BA3AEE379269F9FA7D0ADB4B19A95CC2AFE686E\n 55D88E47257C1FE6F235FEA295910569FE6DD5995512562359CC821E85A6C7A5\n 79B470A9E340A6985189FF8B6AF914A6B0ECF93F47903221F95DE894A8F05B05\n B7D99CD533EC5F931B18E6B39BECF67FA2D6DD1AEC76772B068BE06335A94C05\n 7A4DDEE77B66101DA855C17AC312600370B34E31F5EC3A01300A8EB60B4C9767\n-1B2FA10DF7E91D3BB34A1B1CE7A0015A57C813E0280D873ADB88440048702D1F\n-77994EE04EC3B4531D6E1888C86A8F0DA6CF1F056F16AB0DD76C862830F89DA4\n-28923B3AA543E0D6E41D3BD283E600BC11F889315EE92C675C109C81065ED1BC\n-82A5583D1B723D50051B0557A367887F5B263014C6E77288B4883C50889473D3\n-3787BAD4BEB88BD1353AFA5B73E61814819537E7FF09F53EF94792BB3DD36ED0\n-002D0E7A6CDAB85A9C17AF5664BCB5A71663B861880F3ECCABC8E7A2FC81A4CC\n-AE7A87503FDC1CE0077BA51ECC7B43B60793FED8E9AAD5BBD03ADD6183DCD26D\n-24A74163611C05562437644EF9B8889FD4F9D311911204FEFD35237486F2D2D0\n-B6783A03BF12EA6D19D6D0F87E4D08515F12F9CBF1961CAA71E0D69FE3C4C4D2\n-7C7FB64ED24F8684C8F00C2BEDEA53EA390CDC0B5BEBD7DD982580B2EA1F1F89\n-CFED5916630DC2BA32BB9180277E1ABC339B3B7DE086717BD93F7FF3681BA5B3\n-FCF671C4B293C2DE4A322F0AA3323A4934444C69F23EF90120B8755482757759\n-C457A435FB8BB4922BD92C5F3D9555D978275C510183E29DFF2FCE4ABBFC18DE\n-76CAD3B486BA12047DD808CD4D521A0FD368E4AE79DE262630983A5D6F0B679D\n-2F005306393C520E1B6987302D029939D94B0178DC55D5264E1FEA468AD4134C\n-8C65B2FBBE8DE8284E8E1F6BFE0B648F44D3DA8E9350D266EDBFD4A7054D9355\n-1E0B185DED37BCF32D3731358F1D707C94109428BAD3CEA456A2A43553E3D2C2\n-F549189201F3D3F715310E3E8C6A2E9AA5141AA9125D203694C7D875C2DD320F\n-C5BCDFC924F6C04DBC7A97349B45ECD0FBD7D2123ED1D3A9F440B1112BE62779\n-47A4592F9285CBD9635EC9091CEC0AFD7E6B6976974081DB9C0E43165BD8584D\n-6CDF08DED287F0883A9FBD351B3F8706BA1E94C7CA487338269482EB8DC1A05D\n-F6632A5D834DE29228C49C5BA65EF7C535A53B380BF4B391F43562147538EE97\n-E799DFC2C40315859F56BBCE9CAE1DF9293F6E2C193ABE7A724EC8F32FA220E7\n-6026877A63E318254F2AF7B1325D63FC4C52B536D3EF354814C2F8F1EEA30569\n-6EF04447DB0F809DF35B4985B9FB4F4BB6087310BE633E76F268B32ABA99CE8E\n-03163DFF4AEDB88E60DD0848C15E90026D7C24D81122EBC07113F9851914A9D5\n-D0E09C2BFDDAF10C5D8208E8329BC0C402F231CD84C95EFDD182AD9756662110\n-274650C7A5BB0D8EFA54EC6C5A49C0EB26701A54779AE8EFBBED824262761602\n-680EDFB38F0FE18C0F501F5AA8BF48A8F0DD3E5E1EBEB872F6F6B23964707B32\n-507FC677B9FDDC990E3828B06420F6F968B2F6AE81E76A2144B1ECE905485616\n-CFB29AC96DDE1F5039935D7E385CC13E34DD7EAF276A2EA3A8BF27FD4205AE13\n-7FE620E42F2CF231C6C8DD8EFC5A6CF081E5660D9ADD730D72D15C02B1E15FF3\n-D741D3B1EB1E666C4E562219033C1E2EF3F96E136998B2E1890395A3637A2C02\n-DE1C46AFCA8D898439F06606A2295D3F7ED6C7DB250C61B6B97A0D5EDDB9657E\n-E790B4E07540BB1026036F4A0D00E7F16FD757AD61D686620C6814B7DCEC43E8\n-FD36D9E75BA554F64548A67D9B0A26E11784E58D4357FC251D71B5D6D8BFDDE0\n-D3BF0E825DA5312C1904AF13C5905C2ADF79C357476183D2EC5A95243235E861\n-2F98D9EE77EF8F8CB3EC6BD358C5ED37DD3AF44D60575E7774BF96F1AE9DFAD1\n-F8646DEDF21D10311854726B8F7D25876BB1EF78E2442B16ED4B851816CF0A27\n-11FDFCE525002A1A7C3E62CD2A3EDE6FAADB026D2F3A46C030ADB22422CA8FF5\n-2545ED58C0D9FB5BDB55FE674301E91A75B005B86BD201D246F7ADACE50419FD\n-AC3312CAC5EB78A36F0E5F62E65AC92129CB574AAC59E0A7C1390DFC61F39D9E\n-D7036742F2F6E64D1EF8157E9CCF65F3EEDC6A8220235978B8E06EB80F649F3E\n-204CFB497F49306EA8E1F7B62305978A28F1E771ED82C6592C71022154E4062A\n-A92335EFC65D6DED9C686899FFD7AA2988740618C03C5E362E1AF352E3BE4602\n-5530C51E5FC8E9082DF79199CC91C50174000D337D86127AC807C5A3C81DDE57\n-7A68AEE7230949B925365C214D77C80E87CEE218ABC94023717EA43BA5D8A7C8\n-8A8B9BD1B767996AE33050E3D922ED0574E3579C57E4BDDAD35883806AFDF260\n-3AB5D83D451583262E580FFDB7A27D82396AF18D92B849A3F7A7E621987D5DF0\n-038F876C6E9CA47FB11AF05F0019191C5DDC5F0177AD421E94BC66D0CCB82F1F\n-93A80836284B095503752C600F72E2C89112ABFA5B76152691264103B268B3E5\n-8816724ADADB38740001A9AACE05C8AF02D72918606DC22EFC8BF0DA0FD12FFE\n-D3A09F8E28057F327BFB633E604B1EAD478637B1D9631650B314CC62D7E0E87F\n-9D3FE1FFA23BB6E3006C3E39BED52F6B0C1C651B5913878F36DA0BF776889165\n-68BA3456B40B8B471CA8FF5238E43D9113E052A2B8D2EAA2433D3F89FCA48AFB\n-5E842913E4ED6DF9623354059CD1F1707B126FED80349787C869883120183EDD\n-249185A55503FAC53898F52170D05CAC62BB742CF9702C0518AED6B27CDC401C\n-932E02143FD916703F360CB31049501B35EF3EDDFED791090D0CFA221FD1DB32\n-7D4759CE07983AE29C258C705D11E7D9481EEAAB9B6BA65CDCF0AA0057BD6FEA\n-ABBFBD3ABF2A7BFB550C3D2A16DC447384A89F3DB6D9C2DBDCA997ABE35A7706\n-633D328AECEDB5BD07070C1B96267FD73B45791DD18194F60D358091FBE88409\n-973529806F3D2C9E6E39091F90A14B560A987E0B9490B9B690FB489B8E253070\n-D7C54447BE0E0A0BFEAEFFB581DC1300E6EC382984673BF0665632404E59B5BF\n-5D5F0A1C956E618C0487751CA5DAE8A95C214F76ED756694EF273679CD2D85CB\n-949DF385BD50491649EFEFDA1574921D7460143D42A100D2C76E55F0BC\n+1B2FA10DF7E91D3BB34A1B1CE7A0015A57C813E0280D873ADB8844004B9BA1CC\n+580D3C6BDA4DC1B80B4365F1C80512453FC5316EC2D928FB731C3D6403E3C18B\n+E8424D644DF5E9A2134229C5C91CA68DB8E85BA2BB40F538F585DA6FA4037718\n+B8053EBBA1E765346BCD5BDAA6C38115D31611D8A87A2238C145F2DA2F92E4DF\n+3987BD9C4D2A3D460E8941A68B125BCD9EE4F9FD262C4C8A71F47A2C81975635\n+F1B981C274C53FA2ACCDE4C9D0A7C62D6C1EFF91CFC6712CA6A9F333C9564FCB\n+2A70F0AD715A79B10A08AB069E2A3C93BC0AED19D0CA10134B8DDDE8AF548DB2\n+3A4AAA9C29682CF135BB767DAA16169A127EB50A7EECEB6480CF56A7D0F8AC56\n+4A5090B3D75A790372886AF568D94C8165975A05BFBFDF1FFBA45F70700BB9E0\n+57F3249EF9E9C8AD9CBCF6E4FD592DC4CDD2CC7C0BC3130C1059096C657BE453\n+A2CBACE93420210E27AF56CA229BD6D982FB68B3FDC6D44478B922C4231C47EE\n+E500232F6C11D92DEB955F66DF52B92B22E7352790CC2DCBAC53965D57AC2920\n+68B7D520DE25047146EFEB06B9AD4E2A94243C7E5239F0BC2FC312B16051D52C\n+0B92C217B6B42997321AE4F8BB066754B7AA3F15069EF59224E8A442CE471AA7\n+E8049A3DD9EDA09CCEE4998998661CF7DB35E952F6C65DAEB3013951C59F3E09\n+157F313B0237876E1C0190F0473819570B8C0205AADF05D787CC00979CFB327A\n+289382B22DDA6F12804ED0ED5B179E36A995A2A59E1B66E75130DBE9109C813B\n+94403E0DEA8314A1E9DB474D7FA83C0BAFD08033E6A6215844C1D26BE15F1251\n+A1605E8DF9A9C601ED37379530BC1C82BE5463C6C711C5652BFD6262485AA9CA\n+B8C4A117593001D08D980041E2A83C190DCE8E6CD3D334E5CC19FC05DB30F7F7\n+24A305C4DBB31F0651392B99D44B4302333BDF7E326FD256DD75D309C6E73F85\n+FA71B35FD1F9BEFF4C7A1076362EEB0A85492933B6006086A7B8C1928CF2D1EE\n+FD4344409257BB802C117E739960821CD3C88BFBA5669FF16F610AD638AF3677\n+8674C985E6767253ED5769F71BEA5E9BB02A751F9E62EE2B18AC19D975FDEAE9\n+8B8822367FF177A7E850766DE99ED3366D46464612926430012212A90F8E85F4\n+4760B40D5B86B90819EE410382D22D8ED82D0B0AB00C93E10CD365F8766D1C87\n+B4A866021FB6F6AC3D250CC601989B1B8FE6B1098A48282D2CF258BF38FEE940\n+CE0141FB1344156DE7712A8F2DBF700174F12616EE17C852210D96D03E5E6635\n+D439EB6E84A383DDD32AD72DADE6F931FDBABBDC726C36081C96018FC95EAE13\n+DA1F8DBC2D8355AC9792649653225393F4A7A88F3B9443FEEB75E2C15BF93F09\n+CCBA7FABC022BE26F4C28152D5DA6D690494AD4EC0DA1B598AE12536BADF88B5\n+5E20EB452546389F57FF55459567B453AE1831C57D22FA6A4FDF441EDAFDB7FB\n+4F4B707C1FF9159C40F7B5DD519FC07815EE91B8D756B6C18500BCF47D0D9E45\n+6A2D51B6AA5AEAAC9AB2DEF7F0FDE957B6C179CBADEECAC7E9CEC248AB135EB4\n+FBF83D002FF859B574EF36C371540EF2BCFCEF5C2E7863AEDD7C3C965103453B\n+023A9CEC1D5C45B88827ADF4AE0C6746F3C7E6A944427DAEC493601019583A16\n+0F846CE00EAE89EEFF9CE68A0E1D6EBB8FDD8A45D1BF399B36A8328EC957CB8B\n+D842A56269C8C9A6B472C9E65BCBC090606B4E8A7EF4ABDEA120C9F9B3969A1C\n+2EB102925F4E155160E58000E1ADB0D19E10EFD96F6C3225EEE8FC24D122C069\n+C11F1A69DC383F7DACD2F3929BD135CE69787C6E7560AC4B683FE5D9AAFD2E89\n+EE6D95E38C9B726B416E28169A11E29559DBA9AECD714CF318FCB78F34A0E562\n+9C00FE0C6D5A848557D9A82EC2BEFCD30B5EDC0B23C5BA9F812C864394C8B9D1\n+B08BAC9CF94E70FF842306ACCFE6E39A56777C712904A3AB29FBD19275E19E06\n+B35B37CFFFCEC81CAF2D85A853663FAFCFFED1EA77064AA28C15BC94910683BC\n+D09513079DE9EE18E97CC2403DD206516D7F652A3459870757F34EEDCEF952C3\n+FE8004F4716B5BD6774E455010B0BB1E61FCD66B9F14F9BBCCF3E55A158EE96E\n+9A05BDFDDC7706D4BC28FDDC4004EF3A430C607EBDF115E0C996454D70C8BB42\n+D7C83A454B116663D648C23CE2B33365810DE2B64D4AE011BC8043BC3E05B94D\n+1700F859C6AFC6515C1C42FA104EE3E8F3FA5F80252C2E79B00ED27F675FFD09\n+B50BF7A3C63CF4856F909DF969D7DD3EA05CABDD1E71A58CFC2AB5F614B4E5E0\n+25CF92E9FB66ACEBE05DF5E033DA8AD3EE32D94C02D98DD7DA99FAB5AEA595C3\n+2987DC122F0242D76B782349E4069DE0CDD6EF4375C680CBFE4C8F24F2AE89BF\n+7785F5EA7435A91500F265022C307E8ADEAAE1C6\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n@@ -4617,20 +4604,20 @@\n %%EndFont \n TeXDict begin 39158280 55380996 1000 600 600 (main.dvi)\n @start /Fa 205[33 33 49[{}2 58.1154 /CMR7 rf /Fb 255[65{}1\n 83.022 /CMSY10 rf /Fc 149[27 21[39 11[54 72[{}3 58.1154\n /CMMI7 rf /Fd 173[74 77 81[{}2 99.6264 /CMMI12 rf /Fe\n 133[50 59 3[62 44 44 46 2[56 62 93 31 2[31 62 1[34 51\n 62 50 1[54 11[86 1[62 3[84 88 106 3[42 6[80 9[56 56 56\n-56 56 56 56 56 2[31 46[{}33 99.6264 /CMBX12 rf /Ff 138[46\n-32 33 11[42 37[62 6[23 4[42 1[42 42 1[42 3[23 44[{}11\n-83.022 /CMSL10 rf /Fg 139[62 4[62 4[62 4[62 1[62 62 32[62\n-14[62 50[{}8 119.552 /CMTT12 rf /Fh 136[55 1[45 28 34\n-35 1[42 42 47 68 21 38 1[25 42 38 1[38 42 38 38 42 12[59\n-1[61 11[54 56 63 2[62 6[25 58[{}26 83.022 /CMTI10 rf\n+56 56 56 56 56 2[31 46[{}33 99.6264 /CMBX12 rf /Ff 134[44\n+3[46 8[23 33[43 15[23 5[42 1[42 42 42 3[23 44[{}10 83.022\n+/CMSL10 rf /Fg 139[62 4[62 4[62 4[62 1[62 62 32[62 14[62\n+50[{}8 119.552 /CMTT12 rf /Fh 136[55 1[45 28 34 35 1[42\n+42 47 68 21 38 1[25 42 38 1[38 42 38 38 42 12[59 1[61\n+11[54 56 63 2[62 6[25 58[{}26 83.022 /CMTI10 rf\n %DVIPSBitmapFont: Fi tcrm1000 10 1\n [/Grave/Acute/Circumflex/Tilde/Dieresis/Hungarumlaut/Ring/Caron/Breve/Macron\n /Dotaccent/cedilla/ogonek/quotesinglbase.ts1 4{/.notdef}repeat\n /quotedblbase.ts1/.notdef/.notdef/twelveudash/threequartersemdash\n /afii61664.cap/arrowleft/arrowright/tieaccentlowercase/tieaccentcapital\n /tieaccentlowercase.new/tieaccentcapital.new/.notdef/afii61664.asc/uni2422 3\n {/.notdef}repeat/dollar/.notdef/.notdef/quotesingle/.notdef/.notdef\n@@ -4751,17 +4738,17 @@\n 2397 4912 V 31 w(BY)p 2516 4912 V 31 w(COLUMNS)p Fm(.)0\n 5204 y Fj(1.2)135 b(Protot)l(yp)t(es)46 b(and)f(descriptions)g(of)g\n Fg(A2)f Fj(metho)t(ds)0 5407 y Fm(This)28 b(section)f(con)n(tains)f\n (brief)i(descriptions)f(including)h(protot)n(yp)r(es)e(of)i(all)f\n (metho)r(ds)h(that)g(b)r(elong)f(to)g(the)h Fl(A2)f Fm(ob)5\n b(ject.)1929 5656 y(1)p eop end\n %%Page: 2 2\n-TeXDict begin 2 1 bop 0 100 a Fm(2)p 125 100 1281 4 v\n-1446 w Fl(A2)27 b Ff(:)37 b Fh(DRAFT)27 b Ff(August)h(3,)f(2025)p\n-2619 100 V 0 390 a Fe(1.2.1)112 b(Basic)38 b(metho)s(ds)0\n+TeXDict begin 2 1 bop 0 100 a Fm(2)p 125 100 1334 4 v\n+1499 w Fl(A2)27 b Ff(:)37 b Fh(DRAFT)27 b Ff(July)g(1,)h(2024)p\n+2567 100 V 0 390 a Fe(1.2.1)112 b(Basic)38 b(metho)s(ds)0\n 573 y Fm(As)21 b(usual,)g(there)f(are)g(four)g(basic)g(metho)r(ds)g(to)\n h(supp)r(ort)f(ob)5 b(ject)20 b(creation,)h(setting)f(default)h\n (\\014elds,)h(clearing)d(an)n(y)h(allo)r(cated)0 672 y(data,)27\n b(and)h(free'ing)f(the)h(ob)5 b(ject.)101 889 y(1.)42\n b Fl(A2)g(*)h(A2_new)f(\\()h(void)f(\\))h(;)208 1027 y\n Fm(This)28 b(metho)r(d)g(simply)h(allo)r(cates)e(storage)f(for)h(the)i\n Fl(A2)e Fm(structure)h(and)g(then)h(sets)f(the)g(default)h(\\014elds)f\n@@ -4820,98 +4807,97 @@\n b Fl(double)f(*)i(A2_entries)c(\\()k(A2)g(*mtx)f(\\))h(;)208\n 5270 y Fm(This)27 b(metho)r(d)h(returns)f(a)g(p)r(oin)n(ter)g(to)h(the)\n g(base)f(address)f(of)i(the)g(en)n(tries.)208 5407 y\n Fh(Err)l(or)i(che)l(cking:)38 b Fm(If)28 b Fl(mtx)f Fm(is)g\n Fl(NULL)p Fm(,)f(an)i(error)d(message)i(is)g(prin)n(ted)h(and)f(the)h\n (program)e(exits.)p eop end\n %%Page: 3 3\n-TeXDict begin 3 2 bop 83 100 1281 4 v 1447 100 a Fl(A2)27\n-b Ff(:)37 b Fh(DRAFT)110 b Ff(August)28 b(3,)f(2025)p\n-2580 100 V 1281 w Fm(3)101 390 y(6.)42 b Fl(double)f(*)i(A2_row)e(\\()i\n-(A2)g(*mtx,)e(int)i(irow)f(\\))h(;)208 541 y Fm(This)27\n-b(metho)r(d)h(returns)f(a)g(p)r(oin)n(ter)g(to)h(the)g(leading)f\n-(elemen)n(t)h(of)f(ro)n(w)g Fl(irow)p Fm(.)208 691 y\n-Fh(Err)l(or)k(che)l(cking:)41 b Fm(If)29 b Fl(mtx)f Fm(or)g\n-Fl(entries)e Fm(is)j Fl(NULL)p Fm(,)e(or)h(if)i Fl(irow)d\n-Fm(is)i(not)f(in)i Fl([0,n1-1])p Fm(,)c(an)i(error)f(message)g(is)i\n-(prin)n(ted)208 791 y(and)e(the)h(program)e(exits.)101\n-993 y(7.)42 b Fl(double)f(*)i(A2_column)d(\\()j(A2)g(*mtx,)e(int)h(jcol)\n-g(\\))i(;)208 1143 y Fm(This)27 b(metho)r(d)h(returns)f(a)g(p)r(oin)n\n-(ter)g(to)h(the)g(leading)f(elemen)n(t)h(of)f(column)h\n-Fl(jcol)p Fm(.)208 1294 y Fh(Err)l(or)j(che)l(cking:)41\n+TeXDict begin 3 2 bop 83 100 1334 4 v 1499 100 a Fl(A2)27\n+b Ff(:)37 b Fh(DRAFT)110 b Ff(July)28 b(1,)f(2024)p 2527\n+100 V 1334 w Fm(3)101 390 y(6.)42 b Fl(double)f(*)i(A2_row)e(\\()i(A2)g\n+(*mtx,)e(int)i(irow)f(\\))h(;)208 541 y Fm(This)27 b(metho)r(d)h\n+(returns)f(a)g(p)r(oin)n(ter)g(to)h(the)g(leading)f(elemen)n(t)h(of)f\n+(ro)n(w)g Fl(irow)p Fm(.)208 691 y Fh(Err)l(or)k(che)l(cking:)41\n b Fm(If)29 b Fl(mtx)f Fm(or)g Fl(entries)e Fm(is)j Fl(NULL)p\n-Fm(,)e(or)h(if)i Fl(jcol)d Fm(is)i(not)f(in)i Fl([0,n2-1])p\n-Fm(,)c(an)i(error)f(message)g(is)i(prin)n(ted)208 1394\n-y(and)e(the)h(program)e(exits.)101 1595 y(8.)42 b Fl(void)f\n-(A2_realEntry)e(\\()k(A2)g(*mtx,)f(int)g(irow,)f(int)i(jcol,)e(double)g\n-(*pValue)g(\\))i(;)208 1746 y Fm(This)27 b(metho)r(d)h(\\014lls)g\n-Fl(*pValue)d Fm(with)j(the)g(en)n(try)f(in)h(lo)r(cation)f\n-Fl(\\(irow,)41 b(jcol\\))p Fm(.)208 1896 y Fh(Err)l(or)29\n-b(che)l(cking:)37 b Fm(If)27 b Fl(mtx)e Fm(or)g Fl(pValue)f\n-Fm(is)i Fl(NULL)p Fm(,)f(or)g(if)i(the)g(matrix)e(is)h(not)h(real,)e\n-(or)h Fl(irow)e Fm(is)i(not)g(in)h Fl([0,n1-1])p Fm(,)c(or)j(if)208\n-1996 y Fl(jcol)g Fm(is)h(not)h(in)g Fl([0,n2-1])p Fm(,)c(an)j(error)f\n-(message)g(is)i(prin)n(ted)f(and)g(the)h(program)e(exits.)101\n-2198 y(9.)42 b Fl(void)f(A2_complexEntry)d(\\()43 b(A2)g(*mtx,)e(int)i\n-(irow,)e(int)i(jcol,)1210 2297 y(double)e(*pReal,)g(double)g(*pImag)g\n-(\\))i(;)208 2448 y Fm(This)27 b(metho)r(d)h(\\014lls)g\n-Fl(\\(*pReal,*pImag\\))21 b Fm(with)28 b(the)g(en)n(try)f(in)h(lo)r\n-(cation)f Fl(\\(irow,)41 b(jcol\\))p Fm(.)208 2599 y Fh(Err)l(or)c(che)l\n-(cking:)53 b Fm(If)36 b Fl(mtx)p Fm(,)f Fl(pReal)e Fm(or)i\n-Fl(pImag)e Fm(is)i Fl(NULL)p Fm(,)e(or)h(if)i(the)f(matrix)g(is)g(not)g\n-(complex,)h(or)e Fl(irow)g Fm(is)h(not)g(in)208 2698\n-y Fl([0,n1-1])p Fm(,)24 b(or)j(if)h Fl(jcol)e Fm(is)h(not)h(in)g\n-Fl([0,n2-1])p Fm(,)c(an)j(error)f(message)g(is)i(prin)n(ted)f(and)h\n-(the)g(program)d(exits.)60 2900 y(10.)41 b Fl(void)g(A2_setRealEntry)d\n-(\\()43 b(A2)g(*mtx,)e(int)i(irow,)e(int)i(jcol,)e(double)g(value)h(\\))h\n-(;)208 3051 y Fm(This)27 b(metho)r(d)h(sets)g(en)n(try)f\n-Fl(\\(irow,jcol\\))c Fm(to)k Fl(value)p Fm(.)208 3201 y\n-Fh(Err)l(or)h(che)l(cking:)37 b Fm(If)26 b Fl(mtx)e Fm(is)i\n-Fl(NULL)p Fm(,)e(or)g(if)i(the)g(matrix)f(is)g(not)h(real,)f(or)f\n-Fl(irow)g Fm(is)h(not)h(in)f Fl([0,n1-1])d Fm(or)j(if)h\n-Fl(jcol)e Fm(is)h(not)208 3301 y(in)i Fl([0,n2-1])p Fm(,)e(an)i(error)f\n-(message)g(is)h(prin)n(ted)h(and)f(the)h(program)e(exits.)60\n-3502 y(11.)41 b Fl(void)g(A2_setComplexEntr)o(y)d(\\()43\n-b(A2)g(*mtx,)e(int)h(irow,)g(int)g(jcol,)1341 3602 y(double)f(real,)g\n-(double)h(imag)f(\\))j(;)208 3753 y Fm(This)27 b(metho)r(d)h(sets)g(en)n\n-(try)f Fl(\\(irow,jcol\\))c Fm(to)k Fl(\\(real,imag\\))p\n-Fm(.)208 3903 y Fh(Err)l(or)k(che)l(cking:)40 b Fm(If)29\n-b Fl(mtx)e Fm(is)h Fl(NULL)p Fm(,)f(or)h(if)h(the)g(matrix)f(is)g(not)h\n-(complex,)f(or)f Fl(irow)g Fm(is)i(not)f(in)h Fl([0,n1-1])c\n-Fm(or)j(if)h Fl(jcol)208 4003 y Fm(is)e(not)h(in)f Fl([0,n2-1])p\n-Fm(,)e(an)i(error)f(message)g(is)i(prin)n(ted)f(and)g(the)h(program)e\n-(exits.)60 4205 y(12.)41 b Fl(void)g(A2_pointerToRealE)o(ntr)o(y)c(\\()\n-44 b(A2)e(*mtx,)g(int)g(irow,)g(int)g(jcol,)g(double)f(**ppValue)f(\\))j\n-(;)208 4355 y Fm(This)27 b(metho)r(d)h(sets)g Fl(*ppValue)c\n-Fm(to)j(the)h(p)r(oin)n(ter)g(of)f(the)h Fl(\\(irow,jcol\\))23\n-b Fm(en)n(try)-7 b(.)208 4506 y Fh(Err)l(or)31 b(che)l(cking:)41\n-b Fm(If)30 b Fl(mtx)d Fm(or)h Fl(ppValue)e Fm(is)j Fl(NULL)p\n-Fm(,)f(or)g(if)h(the)g(matrix)g(is)f(not)h(real,)g(or)f(if)h\n-Fl(irow)e Fm(is)i(not)g(in)g Fl([0,n1-1])p Fm(,)208 4605\n-y(or)d(if)i Fl(jcol)e Fm(is)i(not)f(in)h Fl([0,n2-1])p\n-Fm(,)d(an)i(error)f(message)g(is)h(prin)n(ted)h(and)f(the)h(program)e\n-(exits.)60 4807 y(13.)41 b Fl(void)g(A2_pointerToCompl)o(exE)o(nt)o(ry)\n-c(\\()43 b(A2)g(*mtx,)f(int)g(irow,)f(int)i(jcol,)1602\n+Fm(,)e(or)h(if)i Fl(irow)d Fm(is)i(not)f(in)i Fl([0,n1-1])p\n+Fm(,)c(an)i(error)f(message)g(is)i(prin)n(ted)208 791\n+y(and)e(the)h(program)e(exits.)101 993 y(7.)42 b Fl(double)f(*)i\n+(A2_column)d(\\()j(A2)g(*mtx,)e(int)h(jcol)g(\\))i(;)208\n+1143 y Fm(This)27 b(metho)r(d)h(returns)f(a)g(p)r(oin)n(ter)g(to)h(the)\n+g(leading)f(elemen)n(t)h(of)f(column)h Fl(jcol)p Fm(.)208\n+1294 y Fh(Err)l(or)j(che)l(cking:)41 b Fm(If)29 b Fl(mtx)f\n+Fm(or)g Fl(entries)e Fm(is)j Fl(NULL)p Fm(,)e(or)h(if)i\n+Fl(jcol)d Fm(is)i(not)f(in)i Fl([0,n2-1])p Fm(,)c(an)i(error)f(message)\n+g(is)i(prin)n(ted)208 1394 y(and)e(the)h(program)e(exits.)101\n+1595 y(8.)42 b Fl(void)f(A2_realEntry)e(\\()k(A2)g(*mtx,)f(int)g(irow,)f\n+(int)i(jcol,)e(double)g(*pValue)g(\\))i(;)208 1746 y Fm(This)27\n+b(metho)r(d)h(\\014lls)g Fl(*pValue)d Fm(with)j(the)g(en)n(try)f(in)h\n+(lo)r(cation)f Fl(\\(irow,)41 b(jcol\\))p Fm(.)208 1896\n+y Fh(Err)l(or)29 b(che)l(cking:)37 b Fm(If)27 b Fl(mtx)e\n+Fm(or)g Fl(pValue)f Fm(is)i Fl(NULL)p Fm(,)f(or)g(if)i(the)g(matrix)e\n+(is)h(not)h(real,)e(or)h Fl(irow)e Fm(is)i(not)g(in)h\n+Fl([0,n1-1])p Fm(,)c(or)j(if)208 1996 y Fl(jcol)g Fm(is)h(not)h(in)g\n+Fl([0,n2-1])p Fm(,)c(an)j(error)f(message)g(is)i(prin)n(ted)f(and)g\n+(the)h(program)e(exits.)101 2198 y(9.)42 b Fl(void)f(A2_complexEntry)d\n+(\\()43 b(A2)g(*mtx,)e(int)i(irow,)e(int)i(jcol,)1210\n+2297 y(double)e(*pReal,)g(double)g(*pImag)g(\\))i(;)208\n+2448 y Fm(This)27 b(metho)r(d)h(\\014lls)g Fl(\\(*pReal,*pImag\\))21\n+b Fm(with)28 b(the)g(en)n(try)f(in)h(lo)r(cation)f Fl(\\(irow,)41\n+b(jcol\\))p Fm(.)208 2599 y Fh(Err)l(or)c(che)l(cking:)53\n+b Fm(If)36 b Fl(mtx)p Fm(,)f Fl(pReal)e Fm(or)i Fl(pImag)e\n+Fm(is)i Fl(NULL)p Fm(,)e(or)h(if)i(the)f(matrix)g(is)g(not)g(complex,)h\n+(or)e Fl(irow)g Fm(is)h(not)g(in)208 2698 y Fl([0,n1-1])p\n+Fm(,)24 b(or)j(if)h Fl(jcol)e Fm(is)h(not)h(in)g Fl([0,n2-1])p\n+Fm(,)c(an)j(error)f(message)g(is)i(prin)n(ted)f(and)h(the)g(program)d\n+(exits.)60 2900 y(10.)41 b Fl(void)g(A2_setRealEntry)d(\\()43\n+b(A2)g(*mtx,)e(int)i(irow,)e(int)i(jcol,)e(double)g(value)h(\\))h(;)208\n+3051 y Fm(This)27 b(metho)r(d)h(sets)g(en)n(try)f Fl(\\(irow,jcol\\))c\n+Fm(to)k Fl(value)p Fm(.)208 3201 y Fh(Err)l(or)h(che)l(cking:)37\n+b Fm(If)26 b Fl(mtx)e Fm(is)i Fl(NULL)p Fm(,)e(or)g(if)i(the)g(matrix)f\n+(is)g(not)h(real,)f(or)f Fl(irow)g Fm(is)h(not)h(in)f\n+Fl([0,n1-1])d Fm(or)j(if)h Fl(jcol)e Fm(is)h(not)208\n+3301 y(in)i Fl([0,n2-1])p Fm(,)e(an)i(error)f(message)g(is)h(prin)n\n+(ted)h(and)f(the)h(program)e(exits.)60 3502 y(11.)41\n+b Fl(void)g(A2_setComplexEntr)o(y)d(\\()43 b(A2)g(*mtx,)e(int)h(irow,)g\n+(int)g(jcol,)1341 3602 y(double)f(real,)g(double)h(imag)f(\\))j(;)208\n+3753 y Fm(This)27 b(metho)r(d)h(sets)g(en)n(try)f Fl(\\(irow,jcol\\))c\n+Fm(to)k Fl(\\(real,imag\\))p Fm(.)208 3903 y Fh(Err)l(or)k(che)l(cking:)\n+40 b Fm(If)29 b Fl(mtx)e Fm(is)h Fl(NULL)p Fm(,)f(or)h(if)h(the)g\n+(matrix)f(is)g(not)h(complex,)f(or)f Fl(irow)g Fm(is)i(not)f(in)h\n+Fl([0,n1-1])c Fm(or)j(if)h Fl(jcol)208 4003 y Fm(is)e(not)h(in)f\n+Fl([0,n2-1])p Fm(,)e(an)i(error)f(message)g(is)i(prin)n(ted)f(and)g\n+(the)h(program)e(exits.)60 4205 y(12.)41 b Fl(void)g(A2_pointerToRealE)\n+o(ntr)o(y)c(\\()44 b(A2)e(*mtx,)g(int)g(irow,)g(int)g(jcol,)g(double)f\n+(**ppValue)f(\\))j(;)208 4355 y Fm(This)27 b(metho)r(d)h(sets)g\n+Fl(*ppValue)c Fm(to)j(the)h(p)r(oin)n(ter)g(of)f(the)h\n+Fl(\\(irow,jcol\\))23 b Fm(en)n(try)-7 b(.)208 4506 y Fh(Err)l(or)31\n+b(che)l(cking:)41 b Fm(If)30 b Fl(mtx)d Fm(or)h Fl(ppValue)e\n+Fm(is)j Fl(NULL)p Fm(,)f(or)g(if)h(the)g(matrix)g(is)f(not)h(real,)g\n+(or)f(if)h Fl(irow)e Fm(is)i(not)g(in)g Fl([0,n1-1])p\n+Fm(,)208 4605 y(or)d(if)i Fl(jcol)e Fm(is)i(not)f(in)h\n+Fl([0,n2-1])p Fm(,)d(an)i(error)f(message)g(is)h(prin)n(ted)h(and)f\n+(the)h(program)e(exits.)60 4807 y(13.)41 b Fl(void)g(A2_pointerToCompl)\n+o(exE)o(nt)o(ry)c(\\()43 b(A2)g(*mtx,)f(int)g(irow,)f(int)i(jcol,)1602\n 4907 y(double)e(**ppReal,)f(double)h(**ppImag)g(\\))i(;)208\n 5057 y Fm(This)26 b(metho)r(d)h(sets)f Fl(*ppReal)e Fm(to)i(the)h(p)r\n (oin)n(ter)g(to)f(the)h(real)e(part)h(of)h(the)g Fl(\\(irow,jcol\\))22\n b Fm(en)n(try)-7 b(,)26 b(and)h(sets)f Fl(*ppImag)208\n 5157 y Fm(to)h(the)h(p)r(oin)n(ter)f(to)h(the)g(imaginary)e(part)h(of)g\n (the)h Fl(\\(irow,jcol\\))23 b Fm(en)n(try)-7 b(.)208 5308\n y Fh(Err)l(or)30 b(che)l(cking:)38 b Fm(If)28 b Fl(mtx)p\n Fm(,)e Fl(ppReal)f Fm(or)i Fl(ppImag)e Fm(is)i Fl(NULL)p\n Fm(,)f(or)h(if)g(the)h(matrix)f(is)g(not)h(complex,)f(or)f(if)i\n Fl(irow)e Fm(is)h(not)h(in)208 5407 y Fl([0,n1-1])p Fm(,)c(or)j(if)h\n Fl(jcol)e Fm(is)h(not)h(in)g Fl([0,n2-1])p Fm(,)c(an)j(error)f(message)\n g(is)i(prin)n(ted)f(and)h(the)g(program)d(exits.)p eop\n end\n %%Page: 4 4\n-TeXDict begin 4 3 bop 0 100 a Fm(4)p 125 100 1281 4 v\n-1446 w Fl(A2)27 b Ff(:)37 b Fh(DRAFT)27 b Ff(August)h(3,)f(2025)p\n-2619 100 V 0 390 a Fe(1.2.3)112 b(Initialize)38 b(metho)s(ds)101\n+TeXDict begin 4 3 bop 0 100 a Fm(4)p 125 100 1334 4 v\n+1499 w Fl(A2)27 b Ff(:)37 b Fh(DRAFT)27 b Ff(July)g(1,)h(2024)p\n+2567 100 V 0 390 a Fe(1.2.3)112 b(Initialize)38 b(metho)s(ds)101\n 574 y Fm(1.)k Fl(void)f(A2_init)g(\\()i(A2)g(*mtx,)f(int)g(type,)f(int)i\n (n1,)f(int)h(n2,)f(int)g(inc1,)g(int)g(inc2,)861 674\n y(double)f(*entries)g(\\))i(;)208 812 y Fm(This)30 b(is)h(the)g(basic)f\n (initializer)h(metho)r(d.)47 b(W)-7 b(e)31 b(require)e(that)i\n Fl(mtx)f Fm(not)h(b)r(e)g Fl(NULL)p Fm(,)e Fl(type)g\n Fm(b)r(e)j(either)e Fl(SPOOLES)p 3702 812 27 4 v 29 w(REAL)208\n 912 y Fm(or)d Fl(SPOOLES)p 623 912 V 29 w(COMPLEX)p Fm(,)e\n@@ -4995,19 +4981,19 @@\n b(jor.)208 5308 y Fh(Err)l(or)31 b(che)l(cking:)40 b\n Fm(If)30 b Fl(Q)p Fm(,)e Fl(A)g Fm(or)g Fl(workDV)e Fm(is)j\n Fl(NULL)p Fm(,)e(or)h(if)h Fl(msglvl)41 b(>)i(0)28 b\n Fm(and)h Fl(msgFile)d Fm(if)j Fl(NULL)p Fm(,)e(an)h(error)f(message)g\n (is)208 5407 y(prin)n(ted)g(and)g(the)h(program)e(exits.)p\n eop end\n %%Page: 5 5\n-TeXDict begin 5 4 bop 83 100 1281 4 v 1447 100 a Fl(A2)27\n-b Ff(:)37 b Fh(DRAFT)110 b Ff(August)28 b(3,)f(2025)p\n-2580 100 V 1281 w Fm(5)101 390 y(4.)42 b Fl(void)f(A2_applyQT)f(\\()j\n-(A2)g(*Y,)f(A2)h(*A,)f(A2)h(*X,)f(DV)h(*workDV,)d(int)j(msglvl,)d(FILE)\n-i(*msgFile)f(\\))i(;)208 522 y Fm(This)22 b(metho)r(d)h(computes)f\n+TeXDict begin 5 4 bop 83 100 1334 4 v 1499 100 a Fl(A2)27\n+b Ff(:)37 b Fh(DRAFT)110 b Ff(July)28 b(1,)f(2024)p 2527\n+100 V 1334 w Fm(5)101 390 y(4.)42 b Fl(void)f(A2_applyQT)f(\\()j(A2)g\n+(*Y,)f(A2)h(*A,)f(A2)h(*X,)f(DV)h(*workDV,)d(int)j(msglvl,)d(FILE)i\n+(*msgFile)f(\\))i(;)208 522 y Fm(This)22 b(metho)r(d)h(computes)f\n Fk(Y)42 b Fm(=)22 b Fk(Q)1296 491 y Fc(T)1348 522 y Fk(X)29\n b Fm(\\(if)23 b(real\\))f(or)f Fk(Y)42 b Fm(=)22 b Fk(Q)2077\n 491 y Fc(H)2140 522 y Fk(X)29 b Fm(\\(if)23 b(complex\\),)g(where)f\n Fk(Q)g Fm(is)g(stored)g(in)g(Householder)208 621 y(v)n(ectors)d(inside)\n j Fk(A)p Fm(.)35 b(W)-7 b(e)21 b(assume)g(that)h Fk(A)p\n Fm(2)p 1533 621 25 4 v 29 w Fk(r)r(educe)p Fm(\\(\\))g(has)f(b)r(een)g\n (previously)f(called)h(with)h Fk(A)g Fm(as)e(an)h(argumen)n(t.)34\n@@ -5073,17 +5059,17 @@\n 5176 y Fm(This)27 b(metho)r(d)h(returns)f(the)h(one-norm)e(of)i(ro)n(w)\n e Fl(irow)g Fm(of)i(the)g(matrix.)208 5308 y Fh(Err)l(or)d(che)l\n (cking:)36 b Fm(If)22 b Fl(mtx)f Fm(is)h Fl(NULL)p Fm(,)e(or)i\n Fl(irow)e Fm(is)i(not)g(in)g Fl([0,n1-1])p Fm(,)e(an)i(error)e(message)\n h(is)h(prin)n(ted)g(and)g(the)g(program)208 5407 y(exits.)p\n eop end\n %%Page: 6 6\n-TeXDict begin 6 5 bop 0 100 a Fm(6)p 125 100 1281 4 v\n-1446 w Fl(A2)27 b Ff(:)37 b Fh(DRAFT)27 b Ff(August)h(3,)f(2025)p\n-2619 100 V 101 390 a Fm(9.)42 b Fl(double)f(A2_twoNormOfRow)c(\\()43\n+TeXDict begin 6 5 bop 0 100 a Fm(6)p 125 100 1334 4 v\n+1499 w Fl(A2)27 b Ff(:)37 b Fh(DRAFT)27 b Ff(July)g(1,)h(2024)p\n+2567 100 V 101 390 a Fm(9.)42 b Fl(double)f(A2_twoNormOfRow)c(\\()43\n b(A2)g(*mtx,)e(int)i(irow)f(\\))h(;)208 521 y Fm(This)27\n b(metho)r(d)h(returns)f(the)h(t)n(w)n(o-norm)e(of)h(ro)n(w)g\n Fl(irow)f Fm(of)h(the)h(matrix.)208 652 y Fh(Err)l(or)d(che)l(cking:)36\n b Fm(If)22 b Fl(mtx)f Fm(is)h Fl(NULL)p Fm(,)e(or)i Fl(irow)e\n Fm(is)i(not)g(in)g Fl([0,n1-1])p Fm(,)e(an)i(error)e(message)h(is)h\n (prin)n(ted)g(and)g(the)g(program)208 751 y(exits.)60\n 914 y(10.)41 b Fl(double)g(A2_infinityNorm)o(OfR)o(ow)c(\\()43\n@@ -5156,17 +5142,17 @@\n (coloff)f(\\))i(;)208 5218 y Fm(This)27 b(metho)r(d)h(is)g(used)f(to)h\n (shift)g(the)g(base)f(of)h(the)f(en)n(tries)g(and)h(adjust)g\n (dimensions)f(of)g(the)h Fl(A2)f Fm(ob)5 b(ject.)208\n 5407 y Fl(mtx\\(0:n1-rowoff)o(-1,)o(0:)o(n2)o(-co)o(lo)o(ff-)o(1\\))37\n b(:=)43 b(mtx\\(rowoff:n1-1)o(,co)o(lo)o(ff:)o(n2)o(-1)o(\\))p\n eop end\n %%Page: 7 7\n-TeXDict begin 7 6 bop 83 100 1281 4 v 1447 100 a Fl(A2)27\n-b Ff(:)37 b Fh(DRAFT)110 b Ff(August)28 b(3,)f(2025)p\n-2580 100 V 1281 w Fm(7)208 390 y Fh(Err)l(or)j(che)l(cking:)38\n+TeXDict begin 7 6 bop 83 100 1334 4 v 1499 100 a Fl(A2)27\n+b Ff(:)37 b Fh(DRAFT)110 b Ff(July)28 b(1,)f(2024)p 2527\n+100 V 1334 w Fm(7)208 390 y Fh(Err)l(or)j(che)l(cking:)38\n b Fm(If)28 b Fl(mtx)f Fm(is)g Fl(NULL)f Fm(an)i(error)d(message)h(is)i\n (prin)n(ted)f(and)h(the)g(program)d(exits.)101 551 y(3.)42\n b Fl(int)g(A2_rowMajor)d(\\()k(A2)g(*mtx)f(\\))h(;)208\n 682 y Fm(This)27 b(metho)r(d)h(returns)f(1)g(if)h(the)g(storage)e(is)i\n (ro)n(w)e(ma)5 b(jor,)26 b(otherwise)h(it)h(returns)f(zero.)208\n 812 y Fh(Err)l(or)j(che)l(cking:)38 b Fm(If)28 b Fl(mtx)f\n Fm(is)g Fl(NULL)p Fm(,)f(an)i(error)d(message)i(is)g(prin)n(ted)h(and)f\n@@ -5240,17 +5226,17 @@\n Fm(of)i(the)g(matrix)f(with)h(the)g(en)n(tries)f(in)h(the)g\n Fl(row[])d Fm(v)n(ector.)208 5308 y Fh(Err)l(or)k(che)l(cking:)39\n b Fm(If)27 b Fl(mtx)p Fm(,)f Fl(entries)e Fm(or)j Fl(row[])e\n Fm(are)h Fl(NULL)p Fm(,)f(or)h(if)i Fl(irow)d Fm(is)i(not)g(in)h\n Fl([0,n1-1])p Fm(,)c(an)i(error)g(message)f(is)208 5407\n y(prin)n(ted)i(and)g(the)h(program)e(exits.)p eop end\n %%Page: 8 8\n-TeXDict begin 8 7 bop 0 100 a Fm(8)p 125 100 1281 4 v\n-1446 w Fl(A2)27 b Ff(:)37 b Fh(DRAFT)27 b Ff(August)h(3,)f(2025)p\n-2619 100 V 60 390 a Fm(13.)41 b Fl(void)g(A2_setRowDV)f(\\()j(A2)f\n+TeXDict begin 8 7 bop 0 100 a Fm(8)p 125 100 1334 4 v\n+1499 w Fl(A2)27 b Ff(:)37 b Fh(DRAFT)27 b Ff(July)g(1,)h(2024)p\n+2567 100 V 60 390 a Fm(13.)41 b Fl(void)g(A2_setRowDV)f(\\()j(A2)f\n (*mtx,)g(DV)h(rowDV,)e(int)h(irow)g(\\))h(;)208 520 y\n Fm(This)27 b(metho)r(d)h(\\014lls)g(ro)n(w)e Fl(irow)g\n Fm(of)i(the)g(matrix)f(with)h(the)g(en)n(tries)f(in)h(the)g\n Fl(rowDV)d Fm(ob)5 b(ject.)208 649 y Fh(Err)l(or)32 b(che)l(cking:)44\n b Fm(If)31 b Fl(mtx)e Fm(or)h Fl(rowDV)e Fm(are)i Fl(NULL)p\n Fm(,)e(or)i(if)h(the)f(matrix)g(is)g(not)h(real,)f(or)f(if)i\n Fl(irow)e Fm(is)h(not)h(in)f Fl([0,n1-1])p Fm(,)208 749\n@@ -5325,17 +5311,17 @@\n (n2)o(\\))19 b Fm(columns)24 b(are)208 5178 y(copied.)208\n 5308 y Fh(Err)l(or)30 b(che)l(cking:)38 b Fm(If)28 b\n Fl(mtxA)e Fm(or)g Fl(mtxB)g Fm(is)i Fl(NULL)p Fm(,)d(or)i(if)h(the)g\n (matrices)e(are)h(not)g(of)h(the)f(same)g(t)n(yp)r(e,)h(an)f(error)f\n (message)208 5407 y(is)h(prin)n(ted)h(and)f(the)h(program)e(exits.)p\n eop end\n %%Page: 9 9\n-TeXDict begin 9 8 bop 83 100 1281 4 v 1447 100 a Fl(A2)27\n-b Ff(:)37 b Fh(DRAFT)110 b Ff(August)28 b(3,)f(2025)p\n-2580 100 V 1281 w Fm(9)60 390 y(23.)41 b Fl(void)g(A2_sub)h(\\()h(A2)g\n+TeXDict begin 9 8 bop 83 100 1334 4 v 1499 100 a Fl(A2)27\n+b Ff(:)37 b Fh(DRAFT)110 b Ff(July)28 b(1,)f(2024)p 2527\n+100 V 1334 w Fm(9)60 390 y(23.)41 b Fl(void)g(A2_sub)h(\\()h(A2)g\n (*mtxA,)e(A2)h(*mtxB)g(\\))h(;)208 523 y Fm(This)27 b(metho)r(d)h\n (subtracts)e(en)n(tries)h(in)h(matrix)e Fl(mtxB)g Fm(from)h(en)n(tries)\n g(in)g(matrix)g Fl(mtxA)p Fm(.)f(Note,)h Fl(mtxA)f Fm(and)h\n Fl(mtxB)f Fm(need)208 622 y(not)34 b(b)r(e)h(of)g(the)f(same)g(size,)i\n (the)f(leading)f Fl(min\\(mtxA->n1,mtxB)o(->)o(n1\\))28\n b Fm(ro)n(ws)33 b(and)h Fl(min\\(mtxA->n2,mtx)o(B->)o(n2)o(\\))208\n 722 y Fm(columns)27 b(are)f(subtracted.)208 855 y Fh(Err)l(or)k(che)l\n@@ -5422,17 +5408,17 @@\n (in)i(reading)208 5275 y(the)i(data,)f(the)h(v)-5 b(alue)27\n b Fl(1)g Fm(is)h(returned.)36 b(If)28 b(an)g(IO)f(error)f(is)h(encoun)n\n (tered)g(from)g Fl(fread)p Fm(,)f(zero)g(is)i(returned.)208\n 5407 y Fh(Err)l(or)i(che)l(cking:)38 b Fm(If)28 b Fl(mtx)f\n Fm(or)g Fl(fp)f Fm(are)h Fl(NULL)p Fm(,)f(an)h(error)f(message)g(is)i\n (prin)n(ted)f(and)h(zero)e(is)i(returned.)p eop end\n %%Page: 10 10\n-TeXDict begin 10 9 bop 0 100 a Fm(10)p 166 100 1260 4\n-v 1425 w Fl(A2)27 b Ff(:)37 b Fh(DRAFT)27 b Ff(August)h(3,)f(2025)p\n-2640 100 V 101 390 a Fm(4.)42 b Fl(int)g(A2_writeToFile)c(\\()43\n+TeXDict begin 10 9 bop 0 100 a Fm(10)p 166 100 1313 4\n+v 1478 w Fl(A2)27 b Ff(:)36 b Fh(DRAFT)28 b Ff(July)f(1,)g(2024)p\n+2587 100 V 101 390 a Fm(4.)42 b Fl(int)g(A2_writeToFile)c(\\()43\n b(A2)g(*mtx,)e(char)h(*fn)g(\\))i(;)208 522 y Fm(This)31\n b(metho)r(d)h(writes)f(a)g Fl(A2)g Fm(ob)5 b(ject)31\n b(to)h(a)f(\\014le.)49 b(It)32 b(tries)f(to)g(op)r(en)h(the)g(\\014le)g\n (and)f(if)h(it)g(is)f(successful,)i(it)f(then)g(calls)208\n 622 y Fl(A2)p 301 622 27 4 v 30 w(writeFromFormatt)o(edF)o(il)o(e\\(\\))\n 24 b Fm(or)29 b Fl(A2)p 1600 622 V 31 w(writeFromBinaryF)o(ile)o(\\(\\))o\n Fm(,)d(closes)j(the)i(\\014le)g(and)f(returns)g(the)h(v)-5\n@@ -5509,19 +5495,19 @@\n Fm(parameter)g(is)h(the)h(n)n(um)n(b)r(er)g(of)f(ro)n(ws.)307\n 5144 y Fi(\\210)42 b Fm(The)28 b Fl(ncol)e Fm(parameter)g(is)h(the)h(n)n\n (um)n(b)r(er)g(of)f(ro)n(ws.)307 5275 y Fi(\\210)42 b\n Fm(The)28 b Fl(inc1)e Fm(parameter)g(is)h(the)h(ro)n(w)f(incremen)n(t.)\n 307 5407 y Fi(\\210)42 b Fm(The)28 b Fl(inc2)e Fm(parameter)g(is)h(the)h\n (column)g(incremen)n(t.)p eop end\n %%Page: 11 11\n-TeXDict begin 11 10 bop 83 100 1260 4 v 1426 100 a Fl(A2)27\n-b Ff(:)37 b Fh(DRAFT)110 b Ff(August)28 b(3,)f(2025)p\n-2559 100 V 1260 w Fm(11)307 390 y Fi(\\210)42 b Fm(The)28\n-b Fl(seed)e Fm(parameter)g(is)h(a)h(random)e(n)n(um)n(b)r(er)i(seed.)\n-101 573 y(2.)42 b Fl(test_QR)e(msglvl)h(msgFile)g(type)h(nrow)g(ncol)g\n+TeXDict begin 11 10 bop 83 100 1313 4 v 1479 100 a Fl(A2)27\n+b Ff(:)36 b Fh(DRAFT)111 b Ff(July)27 b(1,)g(2024)p 2506\n+100 V 1313 w Fm(11)307 390 y Fi(\\210)42 b Fm(The)28 b\n+Fl(seed)e Fm(parameter)g(is)h(a)h(random)e(n)n(um)n(b)r(er)i(seed.)101\n+573 y(2.)42 b Fl(test_QR)e(msglvl)h(msgFile)g(type)h(nrow)g(ncol)g\n (inc1)g(inc2)g(seed)208 706 y Fm(This)22 b(driv)n(er)g(program)e(tests)\n j(the)g Fl(A2)p 1376 706 27 4 v 30 w(QRreduce\\(\\))c Fm(and)k\n Fl(A2)p 2110 706 V 30 w(QRreduce2\\(\\))18 b Fm(metho)r(ds)23\n b(whic)n(h)g(reduce)f Fk(A)h Fm(to)g Fk(QR)g Fm(via)208\n 805 y(rank-1)g(and)i(rank-2)f(up)r(dates.)36 b(Use)25\n b(the)h(script)f(\\014le)h Fl(do)p 1979 805 V 30 w(QR)f\n Fm(for)f(testing.)37 b(When)25 b Fl(msglvl)41 b(>)j(1)p\n", "details": [{"source1": "ps2ascii {}", "source2": "ps2ascii {}", "unified_diff": "@@ -20,15 +20,15 @@\n \u2022 A2 IS REAL(mtx) is 1 if mtx has real entries and 0 otherwise.\r\n \u2022 A2 IS COMPLEX(mtx) is 1 if mtx has complex entries and 0 otherwise.\r\n TheA2 copyEntriesToVector()methodusesthefollowingconstants: A2 STRICT LOWER,A2 LOWER,A2 DIAGONAL,\r\n A2 UPPER, A2 STRICT UPPER, A2 ALL ENTRIES, A2 BY ROWS and A2 BY COLUMNS.\r\n 1.2 Prototypes and descriptions of A2 methods\r\n This section contains brief descriptions including prototypes of all methods that belong to the A2 object.\r\n 1\r\n- 2 A2 : DRAFT August 3, 2025\r\n+ 2 A2 : DRAFT July 1, 2024\r\n 1.2.1 Basic methods\r\n Asusual, there are four basic methods to support object creation, setting default \ufb01elds, clearing any allocated\r\n data, and free\u2019ing the object.\r\n 1. A2 * A2_new ( void ) ;\r\n This method simply allocates storage for the A2 structure and then sets the default \ufb01elds by a call to\r\n A2 setDefaultFields().\r\n 2. void A2_setDefaultFields ( A2 *mtx ) ;\r\n@@ -56,15 +56,15 @@\n 4. int A2_inc2 ( A2 *mtx ) ;\r\n This method returns the secondary increment, the stride in memory (with respect to real or complex\r\n entries) between adjacent entries in the same row.\r\n Error checking: If mtx is NULL, an error message is printed and the program exits.\r\n 5. double * A2_entries ( A2 *mtx ) ;\r\n This method returns a pointer to the base address of the entries.\r\n Error checking: If mtx is NULL, an error message is printed and the program exits.\r\n- A2 : DRAFT August 3, 2025 3\r\n+ A2 : DRAFT July 1, 2024 3\r\n 6. double * A2_row ( A2 *mtx, int irow ) ;\r\n This method returns a pointer to the leading element of row irow.\r\n Error checking: If mtx or entries is NULL, or if irow is not in [0,n1-1], an error message is printed\r\n and the program exits.\r\n 7. double * A2_column ( A2 *mtx, int jcol ) ;\r\n This method returns a pointer to the leading element of column jcol.\r\n Error checking: If mtx or entries is NULL, or if jcol is not in [0,n2-1], an error message is printed\r\n@@ -93,15 +93,15 @@\n or if jcol is not in [0,n2-1], an error message is printed and the program exits.\r\n 13. void A2_pointerToComplexEntry ( A2 *mtx, int irow, int jcol,\r\n double **ppReal, double **ppImag ) ;\r\n This method sets *ppReal to the pointer to the real part of the (irow,jcol) entry, and sets *ppImag\r\n to the pointer to the imaginary part of the (irow,jcol) entry.\r\n Error checking: If mtx, ppReal or ppImag is NULL, or if the matrix is not complex, or if irow is not in\r\n [0,n1-1], or if jcol is not in [0,n2-1], an error message is printed and the program exits.\r\n- 4 A2 : DRAFT August 3, 2025\r\n+ 4 A2 : DRAFT July 1, 2024\r\n 1.2.3 Initialize methods\r\n 1. void A2_init ( A2 *mtx, int type, int n1, int n2, int inc1, int inc2,\r\n double *entries ) ;\r\n This is the basic initializer method. We require that mtx not be NULL, type be either SPOOLES REAL\r\n or SPOOLES COMPLEX, n1 and n2 both be positive, and both inc1 and inc2 both be positive and that\r\n one of them be equal to one. Also, we only initialize a full matrix, i.e., one of inc1 = 1 and inc2 =\r\n nrow or inc1 = ncol and inc2 = 1 must hold.\r\n@@ -134,15 +134,15 @@\n Error checking: If A or workDV is NULL, or if msglvl > 0 and msgFile if NULL, an error message is\r\n printed and the program exits.\r\n 3. void A2_computeQ ( A2 *Q, A2 *A, DV *workDV, int msglvl, FILE *msgFile ) ;\r\n This method computes Q from the A = QR factorization computed in A2 QRreduce(). Note: A and Q\r\n must be column major.\r\n Error checking: If Q, A or workDV is NULL, or if msglvl > 0 and msgFile if NULL, an error message is\r\n printed and the program exits.\r\n- A2 : DRAFT August 3, 2025 5\r\n+ A2 : DRAFT July 1, 2024 5\r\n 4. void A2_applyQT ( A2 *Y, A2 *A, A2 *X, DV *workDV, int msglvl, FILE *msgFile ) ;\r\n T H\r\n This method computes Y = Q X (if real) or Y = Q X (if complex), where Q is stored in Householder\r\n vectors inside A. We assume that A2 reduce() has been previously called with A as an argument. Since\r\n Y is computed column-by-column, X and Y can be the same A2 object. The workDV object is resized\r\n as necessary. Note: Y, A and X must be column major.\r\n Error checking: If Y, A, X or workDV is NULL, or if msglvl > 0 and msgFile if NULL, or if Y, A or X is\r\n@@ -174,15 +174,15 @@\n This method returns the in\ufb01nity-norm of column jcol of the matrix.\r\n Error checking: If mtx is NULL, or jcol is not in [0,n2-1], an error message is printed and the program\r\n exits.\r\n 8. double A2_oneNormOfRow ( A2 *mtx, int irow ) ;\r\n This method returns the one-norm of row irow of the matrix.\r\n Error checking: If mtx is NULL, or irow is not in [0,n1-1], an error message is printed and the program\r\n exits.\r\n- 6 A2 : DRAFT August 3, 2025\r\n+ 6 A2 : DRAFT July 1, 2024\r\n 9. double A2_twoNormOfRow ( A2 *mtx, int irow ) ;\r\n This method returns the two-norm of row irow of the matrix.\r\n Error checking: If mtx is NULL, or irow is not in [0,n1-1], an error message is printed and the program\r\n exits.\r\n 10. double A2_infinityNormOfRow ( A2 *mtx, int irow ) ;\r\n This method returns the in\ufb01nity-norm of row irow of the matrix.\r\n Error checking: If mtx is NULL, or irow is not in [0,n1-1], an error message is printed and the program\r\n@@ -213,15 +213,15 @@\n 1.2.7 Utility methods\r\n 1. int A2_sizeOf ( A2 *mtx ) ;\r\n This method returns the number of bytes owned by this object.\r\n Error checking: If mtx is NULL an error message is printed and the program exits.\r\n 2. void A2_shiftBase ( A2 *mtx, int rowoff, int coloff ) ;\r\n This method is used to shift the base of the entries and adjust dimensions of the A2 object.\r\n mtx(0:n1-rowoff-1,0:n2-coloff-1) := mtx(rowoff:n1-1,coloff:n2-1)\r\n- A2 : DRAFT August 3, 2025 7\r\n+ A2 : DRAFT July 1, 2024 7\r\n Error checking: If mtx is NULL an error message is printed and the program exits.\r\n 3. int A2_rowMajor ( A2 *mtx ) ;\r\n This method returns 1 if the storage is row major, otherwise it returns zero.\r\n Error checking: If mtx is NULL, an error message is printed and the program exits.\r\n 4. int A2_columnMajor ( A2 *mtx ) ;\r\n This method returns 1 if the storage is column major, otherwise it returns zero.\r\n Error checking: If mtx is NULL, an error message is printed and the program exits.\r\n@@ -253,15 +253,15 @@\n This method \ufb01lls the colZV object with column jcol of the matrix.\r\n Error checking: If mtx or colZV are NULL, or if the matrix is not complex, or if jcol is not in [0,n2-1],\r\n an error message is printed and the program exits.\r\n 12. void A2_setRow ( A2 *mtx, double row[], int irow ) ;\r\n This method \ufb01lls row irow of the matrix with the entries in the row[] vector.\r\n Error checking: If mtx, entries or row[] are NULL, or if irow is not in [0,n1-1], an error message is\r\n printed and the program exits.\r\n- 8 A2 : DRAFT August 3, 2025\r\n+ 8 A2 : DRAFT July 1, 2024\r\n 13. void A2_setRowDV ( A2 *mtx, DV rowDV, int irow ) ;\r\n This method \ufb01lls row irow of the matrix with the entries in the rowDV object.\r\n Error checking: If mtx or rowDV are NULL, or if the matrix is not real, or if irow is not in [0,n1-1],\r\n an error message is printed and the program exits.\r\n 14. void A2_setRowZV ( A2 *mtx, ZV rowZV, int irow ) ;\r\n This method \ufb01lls row irow of the matrix with the entries in the rowZV object.\r\n Error checking: If mtx or rowZV are NULL, or if the matrix is not complex, or if irow is not in [0,n1-1],\r\n@@ -294,15 +294,15 @@\n Error checking: If mtx is NULL, an error message is printed and the program exits.\r\n 22. void A2_copy ( A2 *mtxA, A2 *mtxB ) ;\r\n This method copies entries from matrix mtxB into matrix mtxA. Note, mtxA and mtxB need not be of\r\n the same size, the leading min(mtxA->n1,mtxB->n1)rows and min(mtxA->n2,mtxB->n2)columns are\r\n copied.\r\n Error checking: If mtxA or mtxB is NULL, or if the matrices are not of the same type, an error message\r\n is printed and the program exits.\r\n- A2 : DRAFT August 3, 2025 9\r\n+ A2 : DRAFT July 1, 2024 9\r\n 23. void A2_sub ( A2 *mtxA, A2 *mtxB ) ;\r\n This method subtracts entries in matrix mtxB from entries in matrix mtxA. Note, mtxA and mtxB need\r\n not be of the same size, the leading min(mtxA->n1,mtxB->n1) rows and min(mtxA->n2,mtxB->n2)\r\n columns are subtracted.\r\n Error checking: If mtxA or mtxB is NULL, or if the matrices are not of the same type, an error message\r\n is printed and the program exits.\r\n 24. void A2_swapRows ( A2 *mtx, int irow1, int irow2 ) ;\r\n@@ -335,15 +335,15 @@\n This method reads a A2 object from a formatted \ufb01le whose pointer is fp. If there are no errors in\r\n reading the data, the value 1 is returned. If an IO error is encountered from fscanf, zero is returned.\r\n Error checking: If mtx or fp are NULL, an error message is printed and zero is returned.\r\n 3. int A2_readFromBinaryFile ( A2 *mtx, FILE *fp ) ;\r\n This method reads a A2 object from a binary \ufb01le whose pointer is fp. If there are no errors in reading\r\n the data, the value 1 is returned. If an IO error is encountered from fread, zero is returned.\r\n Error checking: If mtx or fp are NULL, an error message is printed and zero is returned.\r\n- 10 A2 : DRAFT August 3, 2025\r\n+ 10 A2 : DRAFT July 1, 2024\r\n 4. int A2_writeToFile ( A2 *mtx, char *fn ) ;\r\n This method writes a A2 object to a \ufb01le. It tries to open the \ufb01le and if it is successful, it then calls\r\n A2 writeFromFormattedFile() or A2 writeFromBinaryFile(), closes the \ufb01le and returns the value\r\n returned from the called routine.\r\n Error checking: If mtx or fn are NULL, or if fn is not of the form *.a2f (for a formatted \ufb01le) or *.a2b\r\n (for a binary \ufb01le), an error message is printed and the method returns zero.\r\n 5. int A2_writeToFormattedFile ( A2 *mtx, FILE *fp ) ;\r\n@@ -374,15 +374,15 @@\n \u2022 The msgFile parameter determines the message \ufb01le \u2014 if msgFile is stdout, then the message\r\n \ufb01le is stdout, otherwise a \ufb01le is opened with append status to receive any output data.\r\n \u2022 The type parameter denotes the type of entries \u2014 SPOOLES REAL or SPOOLES COMPLEX\r\n \u2022 The nrow parameter is the number of rows.\r\n \u2022 The ncol parameter is the number of rows.\r\n \u2022 The inc1 parameter is the row increment.\r\n \u2022 The inc2 parameter is the column increment.\r\n- A2 : DRAFT August 3, 2025 11\r\n+ A2 : DRAFT July 1, 2024 11\r\n \u2022 The seed parameter is a random number seed.\r\n 2. test_QR msglvl msgFile type nrow ncol inc1 inc2 seed\r\n This driver program tests the A2 QRreduce()and A2 QRreduce2()methods which reduce A to QR via\r\n rank-1 and rank-2 updates. Use the script \ufb01le do QR for testing. When msglvl > 1, the matrix A and\r\n matrices R1 and R2 (computed from A2 QRreduce()and A2 QRreduce2(),respectively) are printed to\r\n T T T T\r\n the message \ufb01le. When the output \ufb01le is loaded into matlab, the errors A A\u2212R R and A A\u2212R R\r\n"}]}]}, {"source1": "./usr/share/doc/spooles-doc/AllInOne.ps.gz", "source2": "./usr/share/doc/spooles-doc/AllInOne.ps.gz", "unified_diff": null, "details": [{"source1": "AllInOne.ps", "source2": "AllInOne.ps", "unified_diff": "@@ -10,15 +10,15 @@\n %%EndComments\n %%BeginDefaults\n %%ViewingOrientation: 1 0 0 1\n %%EndDefaults\n %DVIPSWebPage: (www.radicaleye.com)\n %DVIPSCommandLine: dvips main -o AllInOne.ps\n %DVIPSParameters: dpi=600\n-%DVIPSSource: TeX output 2025.08.03:1317\n+%DVIPSSource: TeX output 2024.07.01:0659\n %%BeginProcSet: tex.pro 0 0\n %!\n /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S\n N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72\n mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0\n 0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{\n landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize\n@@ -1372,17 +1372,17 @@\n /UnderlineThickness 50 def\n end readonly def\n /Encoding 256 array\n 0 1 255 {1 index exch /.notdef put} for\n dup 44 /comma put\n dup 46 /period put\n dup 48 /zero put\n+dup 49 /one put\n dup 50 /two put\n-dup 51 /three put\n-dup 53 /five put\n+dup 52 /four put\n dup 65 /A put\n dup 66 /B put\n dup 67 /C put\n dup 68 /D put\n dup 71 /G put\n dup 74 /J put\n dup 75 /K put\n@@ -1393,21 +1393,23 @@\n dup 99 /c put\n dup 101 /e put\n dup 102 /f put\n dup 103 /g put\n dup 104 /h put\n dup 105 /i put\n dup 107 /k put\n+dup 108 /l put\n dup 109 /m put\n dup 110 /n put\n dup 111 /o put\n dup 114 /r put\n dup 115 /s put\n dup 116 /t put\n dup 117 /u put\n+dup 121 /y put\n readonly def\n currentdict end\n currentfile eexec\n D9D66F633B846AB284BCF8B0411B772DE5CE3DD325E55798292D7BD972BD75FA\n 0E079529AF9C82DF72F64195C9C210DCE34528F540DA1FFD7BEBB9B40787BA93\n 51BBFB7CFC5F9152D1E5BB0AD8D016C6CFA4EB41B3C51D091C2D5440E67CFD71\n 7C56816B03B901BF4A25A07175380E50A213F877C44778B3C5AADBCC86D6E551\n@@ -1586,198 +1588,205 @@\n 34DE10D995ABCAF45FBB3B6B73E80D05F4C51F8C29D4B0F67C8A86432A6C5E86\n F0126AB25A5CA2875B48C61CB8112A4CF9AA08F8B0157396CF63CBECDB8867CC\n AC10F060630C9BFBAD84B1FF01C814878F0C177F552BDC9BB181B14581C6E968\n DAAAB2896FCFB745795C4D2C87CC15BAA041EF80C5BDC12EC1F5786BB41A5A21\n 073EE0BC436B346E014DB4099EDC67BC432E470A4B779FD556341061CA3F2BE8\n EFA332637AEC878C2BB189CA3267B2BE5B8178E6B7889A33771F86276E6F0B8E\n 8E93B816AC7005575762EF4DE45E2794B7322F9B6D8E634FB8FF250D638EB502\n-818321B3C46DB51B8EC6C2EF1D05C716519A3BD6B12A67239898F8A010CB8279\n-86D2D942871606D4B8A274C720E46E43BE44C74224A8520232F7F6C96FC7D6D2\n-EB817F578B294EC22FA123ED64613F3AE96DE23AA1833D2A527F282DC80C38CA\n-B5A9D66708ED2293AC1F832C82B70993055FCF9BDE6F5DEAECBE5345572E7D78\n-71D938095EE457512DAABB5278FFBB263323B7FBDC84B52650114DC3DF9E57BB\n-C1835D2D17273F234A45642152EA125D909CA252173DAE4D0073D71DC3823955\n-488FADCF5F3B1E500A3059C4E00DAECB29BCACE5456AE77DB22FB7F97E9B9BF2\n-6D89F8080F41B03D402E59FFA3ED920D4DA409ECA9AAD57BAC91C3F1B51279EA\n-A3133501892E9E53F3F8A6BDA0FFF9456D027AE49BD31372050313BE55845B85\n-F15380257D6687D5F609325220D553D0F5C384A88E22325B42E6A336A12560BE\n-70E273FE85B4E68DD94BD530295F6D981DF936B92F136DF95AEF560EB138CB11\n-EC45F6D29743E46A4DDCB80283409F2C52FF83976BA136A4534307B3E6C8AD1A\n-59AED81A503AA8244A279BCB788DF7D2A1863404626CBEC7F122B3EFAC395A0B\n-1D514218CA020561041E4398BC1F8FBB74D3130DD0FDE7757DDB4BDC74D4CB0F\n-7EE03B5A2D23CD31816C1CD6BF51640ABE4CA02F0BAF2D19CDE2631107BAB24D\n-2A0C90021F19EC9CF2337E0C46D709D88BEC0C6160258D93A61D575348017132\n-6896E96413DF24F4E4C56C6EC57274C9A85FDDD4AAB5A3594B5E508BA65A489B\n-D71D51212382376D622850FA729B9A51B51F3E19589F43012906B95FEE61139C\n-FE88263101C1C491BBE03B7C5E37C37DE5F824224D2D604F4CB61DDDA8999275\n-E13C941B42BBB5F95E739E88C508B782FC6282254C8C2F0153094CCEC7732330\n-6767253E54BEAD38E779080ECB33A482CB540FDCE3EBB31A8D6495442A394E80\n-BCCB957FF4608D95FBD010F8717F9C61D98688993B319A02F34B36DC5E8DFF31\n-562A0EA472768AB66BF774C7BC11AE449B76DE596A78507875E601E6C0BCACC6\n-E655E3E933B0314E04C238F3E065EDA360178E82BF66DD326717A7F833A65B42\n-12F204B0660E44C3D13DD6533173DBE82AFBCE6F33F155F74BF5209F6C9E4651\n-DD75F38F6863185C8C2E8B5A55B17830D78460F14C658EBA0DEB2D9A0A62CB52\n-DC330A7DD163B627E86A8D2DCC8AF063C98794BA4DAFF8C5991E9440567E3C4A\n-47B2E4C9C9C2A33E2C0C8CD6D4386F039F34E717B094908D4C7486992463E359\n-7BB509967BDA5455A50AEF57F545CF9AC5BF52D1451CDD1027CCBBF9159E48CF\n-E699EBE12E3A56CFB36324822CF1C8E8E56264A3E5B9269DC3D81328C13085FE\n-C50B9A1D0FDF64E08591DFE0E7BB22EC5B2745659F82E731A8C1FD6B411A58FE\n-FC98CE8FE1FE780103B72F8539B918FBF6FCDE32798F8A8E5BD0521E46CAAF16\n-097DBF29D4930484786240C57BFDE2FDAFE57E02C411C822E0924DDC247B1BE8\n-C29E1C45D09909D9A098FF2C7D332AA9A0B3408B7B2F47AA2824792A9B6E1F85\n-BBACAF57F7490AA2B8AAC9BB9B38E6187700D2EE93232FB56F1BCC1B63C5F4A3\n-3A74953BA3C083739A282AF3090CD0C365262AD54E5471064FE5D3CB9D0853BB\n-83FCCEDAA06C54247BD18BC7C3D4B36A9534B3A5C454C3FB948A8CEE94C2FB7A\n-351857D700CECBED873E420A0FD8626EDD4C05B563CC351BE960BFE1E3073ECB\n-2F0087213C04B9A2B5C2C9903B7F05A4147161586F9C37D5A598E2105DD449E5\n-30D8C5E21C3E343E99003497E92B9EBAD5C15081C5B1B027BF9B13738BD6CDA5\n-D3C698C60FFFDA11842D74A955099CC306DFCD2B20AA5F2B1B2B694582DBC021\n-CF2B074BFE4F82C8037A497490F9FC4681631B41106A6ED3D2D52A3ACD402FC1\n-CFD37FA2A57D3439E7FEDC1A165447C77F4A459058F29DC3C55C734C1F66F622\n-A3A173D97453F49D3153BABDF82956E2212A9911C94D0D63701AFCC6DFC56667\n-D2130E76C9E026030DA0C631B2CFF13F9D088ED051C47BFD59154CCA97BC0AAE\n-742D254BA1D30CD3933AC8CA5DF66DDC798D4D6D31EF0E8F5D4982A1D599E422\n-79ACD92B06FE249EB4D4BA9E891D2618952AFCB1A38F8A805EFD2346DA982799\n-7A3423632DBBD4DE20F58B38F091125D69D6531F452723CCA8D8844B21C00950\n-74BF3F90E2165A587DACA5FDCF4763E85290B6AB6B89B808CD06047D71E228B9\n-E1E4945C392C88D3FD75BC4487AAB3E33AFAD299FDCAA89AA67619613A5AA98B\n-69E2E6315770BC13A96BFD2CF08D958167D54902FBF728A2C305A56EA8C6506E\n-96167D6897BF2DA53E0B910F9F3306752E5763259F8D5F43E4830F09639D338D\n-76A5893A9E0FC19929350CB514BAC045FE749C45C4B9A04379EFE3176CE00C57\n-4676FA21FE4ECBDBD09B7C4318C639B25811CD1C72654CBB16F6F98DE0825B10\n-8E405F45B5EFC9888EFA91E1C2FB08C5E6003FA8578D58835F8B39E12EB52762\n-943B227A71A59BACA883AEA520FF39DA7D1A0D6672EF33508DF4BAE1F7069F11\n-7EDC6C594CCBD796BB1557311879DDE9C36963EC5C80D3D8C28791522AB80059\n-E9E64BF27E5C525B4AEC55B46F11B825020B57AD1550175F7B6EFEB3AC823929\n-BECF8989F46A98BA97B4D74FF8BD037F8DF8C0E4B7A6FEBD0999D06106178095\n-0CA145BB2C9558AF55824E72F5CAF4FBCF9EAF69ECEAA48AF4E68A9B9FA7B6F2\n-E9C02DCFBEAA4F483979D72C9A0A18F8CCBCC1937BB6AF8CD69E25CB2C0BB3B0\n-76919E173BB9D4E27C5DA76B762DC3F605D903C9A6BDF48604F12766B526E76B\n-C6301CEC972AA300DB80B589B9438AD5A3BD99FBF4A135FAC8640CA03A8B23CF\n-68C3CAA2955025E1DE1A8E98C7B5BC4470828680741B70396CBA5D081162A9CB\n-68B88A75E54B5643BF6DCD4191E0259AFE8777019223A1F29A883597B38A1A77\n-BD4A9C0922D8DC278B255F758B353F3B62495FF42BC17A469583FD58E3C92296\n-334F5667FC2CEF3A6AF3CC45A6E2467CFF54319CDB3135D6DDF2B4204BE388CC\n-4981FFA98F6882733DEC5035BB26C9BE2070F944151243FF91D025818C1704C3\n-6D182A71A782F1B7D361060138AF3A4E9BE456D2019CA98EBC17EE38AA7D8364\n-66808DCC3A48FCDE3DAB0DCD65E7B660E3688EAA2CE37AB95CCCF16F6C8C4F4C\n-8742BEA7134256587F0A76EF386087FC5088057DBAE06C3857CFC50AECE3A74A\n-6EDF03272C021122E962CD756D5A41925D2B5DCC884844211677E9EC987DCB5B\n-952DB3F0BAEC602C2D2C237F32F952E7AB05CD2C095C3BED4F091A2534EC5006\n-736CA8420E9779D9E17E6222B47162CCC61108D9FE877DE286E7E0817A917A9A\n-06C13FBF9E6684AFDCD1FBA2F4C4A3302B6B86CFABDDCF454E325CDA6CF763FC\n-32E779967F24BB034A09B592709D613D75D60A45A993B2F0CC49141D04D42451\n-CF53A51B3E64B944232EAE001CCC4CF8879A65088C733F472A2133E8E75FC9B9\n-D1ACC9E8275BFD7AD0F2D4CFA73559EE3255CD5E1403F300A5D79F23DAE3432B\n-120CB11427B2CF7C09CF020FE8837316B73286D43282D874F87139A491813D64\n-F22B57AAED600D7E5C32B6D547C377EF77A1C0CF8BB6D0B07D7DDC4B755B5C68\n-7A79A9E0328AAD3A5E602756F15937D51978A560C89E619C96CD8E7862A06DB5\n-2B9DD9D419F1171290C1588624196416E73098A31FD099E2AF106A61165FBA70\n-4FC236A546FCE078DB3AA9F22EA0F8674C4A283D7252726305E9EEDD313B636A\n-23F8FA091C1AD4D6F475011B582950C280E153FBFED8168DC20C8DE4E917A2AF\n-DFF4E8BC5463F20AE2926BA07E58DB1FD06170AC5EE8F87399117271F728FDDC\n-E8BB08E144D5BA79394551CCED31D4E8915D310AAA0C231968F2514C7586ADA9\n-98BEE406B672EBE95BEF8FDB0E7A342DC0AA2C6A448EADD40500CE1B8EE31856\n-8CFF198671E7597A137137BDDA11458D252DF4CCE0AEF1A8880404E5F4D317E3\n-078A87D45497A0CE46ECE2109443B502580B9C95E17E20CFC85725D8661B2638\n-B56EB4D0465F13B9DC5CCEC56F357BC8F62A14B9D7B61284010CB3DC74705CE4\n-27508A9B44325A3913DB3B3B44ACFDCBFFC3471593EB7B774FF434E8D79E3606\n-F5F1C9B34FA1ED738362489A09429DE5C130A4990F47ECC4006A884B97D45F20\n-CBB0EB4755D9B7ED6BBB3E01D71EA80467313D86190B9923499422027EFD3819\n-60163B9BC79C0CC94519E14FEA7FC3A2190EBFFA3627E8546C0D871463B3472A\n-D3A0E31C61A71940A9822E4ADB9C22EE69151B40CAC6140DDC2EF956C5A59E4A\n-A081BE06965413B6E25FE851CEB11A5CE308710254AF41565B78C84BB2678BB6\n-3390E638A2D4F1923CEF21B01FB8AA4D566F6B600EEB8AB9CC9BC9F7E5C8E587\n-11B0909BC7C613EF153C5AB4D9D42DAB734DCF542C740C4EA2EFD0BD8282CDD8\n-FEC7A6EC0C8C38467DDF4A744739E0269647264EA1D301EAAD8EDFDFAC2D20DA\n-A54C0A3E862756B42C097734290C95D10B8355896FC0F762D6120C28B6547F34\n-14CE44A4D5ADA81C5EC47F374E629F295C58B3443C76234483C76FC8C6A874BA\n-7C4606781D30C645AC0920B40DC5AAABB354C4A2C5DB00A59FB6E64D224B5985\n-778B514F136EA47AD35328977EF4B16150AD55029A0B6513897E4AE1AD22274A\n-276C7E7432A4C8030700BAE849DDBFDDF22DB06923A5A4A25D42ABA5B1CA619E\n-752EC190DA2FDCEE9DBDA0B8FE7A39174362D1C2C73FA09C49F477F6372CCE34\n-F69EBC207D6EED1AE3F9CFC6120DE1C22D814A74663680DEFF100CF2128181C2\n-FF83F2C2C0B2A25D8FC5FE3EB02F5FB31BCF93F10817B63F12BA7FEF396C6AC0\n-B5F42790D10E8DDB0C47981BC9BE60E68B249F0617F57A7B60639664A1A72F21\n-B630E2D0D5F8F73746E18A2EF5A9C619D0529448988429B093D7E03B43B18816\n-83C7E4109B66F03835D12AE4E9C8C011FD81D2BBCF7C666E17A9FF4A7C668BB2\n-D8D4431BE3953AE033072B167FE95F78E957061D39ABE55511CF925579A85543\n-35F606ECEE3F0A94DABFD5839D3A46547C80370EDD9F45333AA183F3B29C5E8D\n-392FE1CCF1A9B86B9228A41A0EE7D16587FD0FBA0C0304209DA72FA6E3E01E3B\n-EB1B6951B43B612BD141B5A50A3F5E9A9DA21ABD9ED2C588032E7DD9AABF9C41\n-A13B2D491CEBA593689AAA618C8A7F35A96510D0A587CB0C0D983029134B115E\n-C6334203CF6576FFDD8B21AF86AFE7ED24A0152483BC82C1F3CE8309BA13999B\n-94793F7F32CE43376D8C9A6F487123C7A4C0F386DE9668770A766A5A4ED65B82\n-82C918100604493E755AE1D9071C6CB0EE50BDF3479FD8B6F85B335D12D15A4E\n-19BCCA7504B8A607314CA5757E0D775CCCE5DC497C4B2087452C90426BD5E357\n-17ECDDCA67C11167D910B7A47E4C720AE514C361874BA8D21162784C72ED6DA3\n-7C1E42B2D5B15BDA7FED8D47CB03715AB469E7EB9B790B8DCD561F7B0F3F741A\n-0001AF33FD15DB8CE6586B09F336147F8193617DA708B7A27EE1BA7C8CE0DAB2\n-B9A5D4BB9C7456FB50034F4080271FD6C382938BD6BB7F7B5DB7B709655923E8\n-E0D6BDB30C90F826DD042B34FFB1D30DA006CDDCB2B2871A7C5455BC9A1232C4\n-42210A23ACB97B13B020746F494E102CA85CC9D1B3850EFCC59702A2E2B888E2\n-8094014766736980D0565F3937671CBF974AC1459B16DF7D3CCE36DFC17F73CE\n-791848A83FED7EB194774A3B014E1176048028B6E4317633A254858F49C94C46\n-E37B9E0A860C6C6E8807587C1E7B5CBFA19AD97F1619DC620042462CBE716BC0\n-FDDD45DE730B0EFB100C9D80E434AE53D59892124481ABFFCA42065CD29CFC03\n-F5FF651B7274B7847E996313688374147E781EA8A0D47902CEE30B691D9A0619\n-EF49775648CAED05C5B4C2F3EDF1E764F2042EDD023BDC59329643ABD59A55B4\n-BF206CDA5204738EFA6AF4545F43A56AF56A701F81706EBF0B48375D45179D0C\n-CFEAC83D32A368BD108AF8982FFD035BD3AC3C96658E8D61B3D6FA918AD8514D\n-F9B8DCD63DA681678A042551B0799A76EAE026C6D14555BF97A1E5E9AE42A459\n-78949AA79ACFE0FCAA65D43432831AECF91E20C6DCF092A7C3344089A3C1453C\n-7B9F6016FF7EBFDDF1937951732DFD4939AFE53913288C2F5654027A8413B197\n-2CC471E85FD8EDDF1A684EC3115F369DBAE874FBB35BF17871A8B801FC7B8963\n-9BCB62A74D90259DA28CDC7EE8CBB1EBAB12A8112322D502D534B2D6B78E1027\n-F8505BD8C287E15458A5BDD8EA6C43FAEA0C763A230CB70C179F21EF4598BD6F\n-6E0D519071717BCF5DC8C99CDF8F97905D4CAD7A0F6E28FEBD2BF53CAE62F459\n-0EFB1923E9A059FBBBD2799D6D0108B0EC13721A5F5E56720F3E7DAB8456A71C\n-8DF13C61F9615C93E218219EA98A74974E00245233D1B5037B40CA2060D0B25E\n-3C834F74628BA64ABD81925EBD4C5CD903EC068FD56544BFAEE0DCE92A4D2AB4\n-DE1D7019BA754EE07343443A889DB1AD255C74C5929237785DB10036B70B7FC7\n-5311232D97C8CFB4567ECCF658F0ED624E51DC046C4BB675E5AE53B923EDBE17\n-51CB5CC5330D6F0C2ED7402FF0E3F5A224C36BDB1E320CECC60E536538223854\n-675CF54987C86B14FB7D67ADC1377CB042D4ADDA0B2860FEE4EEFB73DB2E9B66\n-AFECDCD69C0AC0EF37EFAD1FAC5E2DBA9E17B2F3775E6584968279F12BF0F01B\n-EC428EA24CAA5333EEDBA434368A82CA63AE3C40F91692DB10DD75013D60C5A5\n-0DC3A0A6E94FF62B05E4393DE76D749EFE097B339C85CB7421BAE88D9593108A\n-A211FEE8689AD9ADA5772D31159D5991FB90E449841E49A52A314173FA38D3C1\n-1F1C241E2563CDF43DD17FD57DDFE3B041294C55F890EC1805945C5BB685247D\n-1C82BB82B2CB21B16C01A1C26A10EDE0881FD83BE3812F5CB8D82758A72F85BA\n-9D453317636397C149D0A13AA50D38A30DDC4775FECA3BB5BF0F02FA2D6308CE\n-ED60AED924871A9E262E56080DA462F2B82205965C42033B85EA035B27B3ACA9\n-1E36966C09093474E74C18B77A0EF79043BE5A23734B233D0BDA22840C8ACEDB\n-7D4D899836890DFDE604092DA92DCC26850514211B2B08D0CA5EF1963BCCEE33\n-A54D2D112C706AF0E05251CA1C02ACD5564A018B6E1ED4D168AEA2E7E23D4526\n-F7D54218853B4132C1AE093B74A454F11A5B24D284511C75E9130F37C90593C6\n-C23B325D16F66E4102D72DA1A1B3EEEB3BF4F630E292FB50F4C02931E5D5AD1E\n-01635B64D78340F943182775FAD1FBC25DBF3E1D5004FB95668A29DD6CD3F5A4\n-E9C7B90399588458DBA30FB1940CF5CA9191F2A4C2ADFED37D1F7EA2543EF61A\n-3E08A206737357CC4DB8ACF58144023608C12677161C5C93C6BFBAC40830BE2C\n-CCE57577D53795F648D2DC18F2DBF39920FCF195B9F11A0921F29DFB02715357\n-65D3589D99F85F5CFA9ADB61A57EE0AC6885A5DA55F5592C03273B066CC9002D\n-7815B045C482ADDC9CB336CE7A9F72CA039A85FF4C5599C57DA7865AC8D19D8A\n-7282E92EB4828609B039D042CE469524E9BD6CDCEFCE6B9FE29F72A73DE9C592\n-C8FF85AA874D5706084DCE971C51CDB3A23676F2786D00CD2361E59B132CBC1F\n-A7EAF76F901DEDEAEEA5AFE155756453856F0164ADCD1130C76D48C23E1990EB\n-F2273A6171D629ED20FE759C9114D1EBAC7CD1C543393E568FA4A435F7EEA080\n-DF21B07A6C5809D099B072D8B08AC229D300F16784C3705BD01272C3EE3D2E53\n-385A2A5F371ECE8759E2AAC46B678D6CD3767CC454061D9832FDBD10CE6BA319\n-8DAAB0BED28FC3B9887479FE955ECDA2CE21EC4D95F7ECC29BC78D81960CA0D1\n-14D3927CBBA1DACCDFBBB34C6298E4EAEC008ED5B8FEF491290EA2CB2789EEBA\n-85BAD11E560633B4297495E96D669222246FFEBC9102B7F084861D157FF65FF4\n-CA26FA44497FF0F560995B433A67C3B399FFEFF7D4C5B17085C784EFDEC97DA9\n-B923322B85D3FB417E547F92AB825300EBEDF9E185CB2DEF837B610BA5FEA9EB\n-36B0EDDF288C9EE68A76F7D896C3BD012198B4D77861CA43F5F2FD7BA67EA9A5\n-39AAD008BCB3C1148D9C9338D89E2EC2B11DECABE35717E0B1655C8D03880984\n-06D3F447E26061F46A4E843610B133CC75A599B1CE00783B120C6890ADDA2D92\n-48327763B1CE13C3F8A88530D69F4BB1EF04AEA1A10AEBCCB666968C3501824D\n-236167CDD809EB757A060E3826B685A853DD9F8707695ABA877DD266B224DA96\n-6D3803F9D94C7C1DE8D6AA40C385813915FEE9AB3733E06DCAA64FEC2CAA4453\n-3D029DA3978D6484BBC29551BC84BB67D659E6\n+818321B3C46DB51B8EC6C2EF1D05C716519A3BD6B12A67239898F8A010CD1ECB\n+5F98B639B1CCA391E8E72C3B7BCA757603E45860252B9430C2B59108094C406E\n+3488A7B276447B996367CAC4B345C878EB62E1A25B4FA057A5AA4AC1F48CDB0C\n+8AEA68F7CE7DCF59E58483DBC9BDD003771B04CC1AC3A0BA98AD9CC43DF7CC38\n+72CB2C8DE93596934273247D48FA99288E762B45EA5A53EF684DE34B2A258F91\n+FFA8F98747970CF629A6AA0B502A12C052C618EAC473F8F71933A1249F78E167\n+F8F63A74FAF011ECAF83656F61D94D2083A6E96E7433C74DBD75B59A700980BA\n+6F10E8B58DA52ABD314BA086D9D03527F6B60037F883B74E4B268BCB101B0DD5\n+AD78BEC9ECDB537CC30DA36CB6A89269964AAB69D0496F7B066F6E6BB9DB874C\n+E5A7D81EAB79F6F3BD7EE8980243CAC635045E36384181357D5B27F0081A0C5F\n+C8D6DBBA75A36F394BDD94BF384052B0F49C8AE0F44E4DE57EE3D1C7FE73B242\n+A69A5CB53064013162122BB97555452CDD3D06645171DE53FADF72425A518092\n+ED601B61ACD5AF2E7C68E72A147F29630DD3383589EB195B842F3FB1D5D02CB2\n+FD370592D78AED95114A409B7C64A3CF625EDEBC194F5DBAE70A5E643AD50465\n+9750ADC1F788EB274F9D8B573A93ABFBF0AE15AA59E6C62DFF92AE3A69A13BCA\n+596CD20AE2D9257B1CD8E678BFD9A8E659284AE3DCD521BDCA97D4F65F6D03B2\n+042D540AB72E504830F03AEA815E662667A3EBC84EEA8D5765C590512D138C70\n+674BFE85C088A1012EEBD6F051BAEFEB67AB4E46A34E26B52D0F438442EC7934\n+59274364A388BF5EC671E4E5BD9DD22A75BED3BEE56EC6ED196AE15AC0EC9CB5\n+F60FBEFD59F10992FCCD3C2FC2C82BA701D32222C3A260C39FF6F62DBC786F26\n+39A79A62CA866FEE75A9EDCC35232FAE9ECF5BD170EA05C1A9DB9B513B7DD837\n+A6BDFF7E1CB3509E78965A78AB494DE656DD8F62ED71A718AFADA019B74C1E51\n+BF18C629CA84EEC48CA9B8352C90CCADBC305461BBE12FB165B64CE5C432409C\n+B6200C83D3513BBEC1243870A777C1A4B00BB9EFB3A6B1878B95A37E7276F706\n+1934CDC8E5DB2E59189B0C050511A46FACAD4C10E9BD97363CBA94BA7078C922\n+BE901E5A6A9AF5A2B1621AE2AFCD46154D25A87AD26E8B776EE710F98FC39D65\n+F840B085B5AF1F9F707E4640240CA4485E4398FEE8606AF28B5D9BF5CF8CDFCC\n+A75238A7AA6C95F2EBDD936F38A15EC1367E0DA090B300ECA5F1F5737DDA03E5\n+F933121EDAA7B50DF5704237FF075D07BA0A24FDF210C1146722B34E4D73F1C3\n+C5EF7CBEB870326E4B51005FC91DC71622EDA4F1F748918264E93454B8354169\n+63DA34F6078A6DAB16E1DF938423FE261D3C0112AD54503663A1DF394A2EBCDF\n+D7E43B4A05F496B64ED81819489ED9FE36F551E6C5B0F6BBE4587350405CB7DC\n+6A61195E23BA92330EFCFF6C071F5F1ED3EFBE4A25B367C4EF0D51002586B4FD\n+0578E747A8DCABE61B0438C917AD584204A6BD2A8325EB2F34500F4A3867C2B9\n+2CCAFB1C6FAE5E7AE0735CCE01C6528CA3158788C2C49A3AD558517E860B9214\n+A88AE5EF50BF9E710F0DC97B5779A37184877AB7082334D0770EC2459F5C3F3D\n+48F95BF25275D950B8CF24C1BB213EBD68212B33672AFE228708B9F01148808A\n+055BBF75779BFA8022385CFCF4EAD9681034C9177EFC2D15AA7C56771CEB9271\n+D9B53795BC839C7A304938F0B8299C2945B531E660AAE9DA36877AA95AC8CE2C\n+746F5A6F8BA64D8FCD43C25E8A47BBED5F8391C6B4023AC99ADA6D699A4CF012\n+089646EE904FCC21F02A2DAA4889836AFBAABD145CE4D421868239C5B1FDC38E\n+2377272EAE8043BAC86D04D179057B7685B208505438142BBFA1283AC4090990\n+DFB15CCCE1DE0FA5C8B524085C7C11EE2E6D937FE0AF3A831285E4DA7944226C\n+F8C3A9613163F2015DDD980A2BD5AEEA8193FF9F9665BAD2FC59360F9071AEB5\n+2BE798301C8E0939D0D23126251FF8F2C48CEBBE897C9C9146EF20BE87E27461\n+585B1D530F0B88D4BD05A377446E0BE03D6F1FD5B3A39629DD1DC75B72A40FEE\n+86FBF736DAD366DFE1175541064984C84859139B1B4F4C272A7F919B08A866C4\n+1391571581EF46C55A5760D5810A3F16A654EB84C99E2670CDEEFF0CEC114649\n+22D3B90A604B209786F866D3260979853648F6549BDBBF6634A5E05FE5EEAA0E\n+A001EAE24804762DFAAAB5CCF0F41947372D68D25A7754DC15155DADDFA6366F\n+D444F1BB1FBBDC51FEC60B747472FFB4C64D3EE3705200F74B0C85E7F1B7601C\n+6B03F7AE44636E0EBE8D98624418D2B3672A95B38D19E511E5D71FABC67E0B5F\n+5ADA53DB4CBE311127912B360686E2240942D1129FA98DB53089196CFF5F8A5A\n+F0E1A53A1BBEA40DA78D780F55DED84E8B84FB3886B3A7D25CDD95CD347FBE32\n+D92CEC74F854C975880D6DC985EA8CA968D92C9815056DBFD193957C91AD5295\n+9A3463CE958A58BB9CFB794FA9D080A7032C121B8442C678CBB39CBAF36B219D\n+DD8F55085031F9AE9F18A4C0A0691EF9348C32E0BD08F12C9D8BB8DB3C2B5452\n+21AB5B3C8A312FF68D08EE368AD371CD511E74DFF03C8A06D7B43A3B751B7FF4\n+16CB9BAB4CD47D68381B303BFFBC407C26901A760179AEDC011FBAC1E0947E02\n+F15FCF9BC9C68F8D7E7F316D81CB3A5D700B2111CD6BB9846E9BDC9CF3527C28\n+019E9610FE0C9E558AD720481BA7C660B3DD61C1968A1F25F2E28990E3383E9D\n+0CAC50C7782B42DB83F347B10F8361585BCB940D40B32106946AABA4A103459D\n+585B184F133F8B0DBBE342422A012D8D9A28E5E87F95CDF3EA124348AB64D9E7\n+3D1ED3C83CD51016B7E0C37A91823D93EBCAA41B11E8EAE9E8C5161313C1819B\n+4D7CC044DE665F163B6E8C323DACFA952BBA76177D7B60DF70CBA541B898DC2D\n+D9B1445527447954A85EF25280760D5D2F14F66738B9BF938B2830C609B282DA\n+2BCB808E93946CB47BF9B1134489D43E2943012F2A3002F1DD1448E2CFF212C3\n+4DD24405BC9535F81779FCDCE232D6FC5389570C4611881C20110A6C2C68FC2C\n+37F05132A646938DC8A015D789C0867A5CBF698CA4E92EA6C17040E7B43AB407\n+5AF5EDC2449B161DF9C7C0CEF9D229C60EE06D74AA26AA27919036FB966CADBE\n+901604FD17063187831203AD166CBBE245F6ACFD68D74F1820A54F96DDB7EA07\n+B5404DBC3636EFAB0EBEA6F553FFBD37E5B7A781FF22C5CDC7C35833D37B970D\n+63FF0245195D3BF4372FFEAD9DE42EC3E42018D552627DB6DD020C5B28A54BB4\n+05DECED49AF5590746C4821EA635A80A3009DE41887299B3C2A2FB8D4CF9209C\n+D85B32D6F96BA957E7108650643D80B12C459008CEA03B88C2164148A99FF830\n+85CE3F0FC83340893E53D020B54A18F894EB6E2AD629DACC8872D7C7EEFB7AC9\n+CB203225AB1E16836A580435F83222D593B44EDBB0CAE85FB66D2098CF05C22E\n+414AF9335700FEFEB6758E42F66D3EFDCE2BE06D099B2BC263E967BAB07B8869\n+A8CD26A1AF31606C08E70E2691882B16374240C7BB4F00E3A59E3BB419B236F3\n+056B097C033E19957E912CB1E57EF9AA57E8CFB270D63234F0A4762DFFFA286E\n+05C24E197296B4A7094034CD28FF6859C3FA630A9F220962E8B653A908DA8778\n+0B27D5EAE72FB04C6D2B447332DDF6C306D73963ACEA1FE4DD9DB48AE29B601F\n+E266CA71590AC0B044B464D8FAA0674563F2C02BA68C561418FA3AD9AC40BFF8\n+37FBF70FB4287C1E5764772830983D65C66AC0E6C30745311ABC4874E2BE910C\n+B1014BAB0DA1ECA0D68A6769D35DC74A64C164304E4AF6CAD897785198C2BE6B\n+7BA6B488307692BBC90CDE4D8165E8A4D64BFBEFFF11BF01B2D6629C92E8EBE2\n+ED6365C07C1BB7F276682F3A62FBF14941FB13EFB99C7512A568B1BA0FCE0E86\n+7FB3A1651E5EBF1B127AA0873EBA4950BC267304C9CDF56F401DC24F9DD9AFA8\n+BBBB9141C869E3E1B02E8594257E17B82B63EC5FB3F497FD2B58A0A8A2F22D9F\n+FACD6B5C73858286A0F413DB39E0FADB8BC0D28D458BBBBA8DB9C41274AC91C0\n+27D33E618740BD79492F846BD1EF40908EE9CDD1EA777FF6304C2EAAC478B948\n+104127A22BDC776BBAEF0E9B3E6B540802264642B784E221A1E16311F5D03089\n+0AABD00027E648A2077E4F4625D81ABABA0E8794060899B426E3A4C1ED0412A1\n+32F649AA40F6F61ACE42822AFD00980CFE0175EED2EE8E2AF639F431C1EE96F2\n+D2EA8AF616A6C308A7558CA1197199166C5C0B51433A9940A9971E9D68DDB414\n+DAB3F4B56D2382E07132E073216D73F700A645E441E46D923090DB79BE6FDCDF\n+CCECF446E96A3531A1B33F4BB5EDE175FC7E48BB46D36F2A0E5A8532C87D5370\n+6A91C9242A19F65F0BAE08604DC5D2B000D1578318BD39236B8C8332AF1691D5\n+06FBAD3CB4AF0216101D9FA52F6A46DCFC4439A5C26C37BDF4F5EFB306D7C6F3\n+38B6C2EF6860D056064E79140AB0DB07344C1019649B59F4D2F2B46FB0F06F37\n+F45E4027E6D32A596B188D10A28BC4867646F7B4506B7BFF38CBC61160BE7F5F\n+77AC03103905532DA74799B6A7316D6DD4E3C04B2FA208E8873D7D906CA15D60\n+9DE916D0738CDEA9DA81A047E50AC35030610480394BEF49FAEF4097D6F05A36\n+77174C09000996D3831ED25985E31636E37326D7F8323590D40D8BB63BC43C91\n+6AC1074F2AA401B01D5D3349B6F86897C560A907BC612D9968334FEFEC394009\n+2266E35DD2B3F0153F1082C41B0E33FA6ADDEF9F51747EE7A5F1D576132C874F\n+D9AB26F1A3F1B441DAE4679701A51430973A4B01A78561758E7BDCF22B75ED36\n+1E84C65DA3617D375756A77F0D5D986597C3085B059045CD82F657D5E1B5921B\n+D49A9F2F3AC40380306A42AF534193CD8CBFAE50FA9FE10417BE295A2B429B02\n+6FE22ED4EFEC35ECD8E825C82A9A0DCB59A4FA50B834CFB88557002E51C4F3EB\n+874F7B607C16790DB671B7F695F4A8CE3F65ED7409CC7C855DFC4C5DC3C198C2\n+2EBE79DA6F00CC24179A0A3FE6F98A7BAD96A9558336D692C4B9819344D648C9\n+DB59535F0EABEB34D231BDD42BE2B09B9CEE2ED82BC98FC1878760658DCF04E8\n+D08E89C6458B4A7D1FBBDEE2EBF2622BE189CFBA2E6A6E0D441D92DAE195A0F8\n+A7F907BDCC8D64238494811E720AD5B8325A8B574987BD5A81CAC5DAFE8F7517\n+CF3A2BAA0D8899F63494B7F6781588453EFE272C8AC8423998663A966B0B1625\n+D7BF8E92B4EEEF3FEB797515A98FC2BE9D726C3CC69AC838F8FED97D65A59665\n+C487268E39ECDFB4B0ECBB948E404D03247B4EC8EB86DEAAF74624993DBCD9D0\n+8940DECA5D0C32AD9F641AD4C1079E684C866B68943864ACB0EDCE1F8A543803\n+1194B1A11E0858DE110D6281F45CA4BC0C385383D302E5814A62B7E2DBF40EC4\n+64B7F059BF551E6F51698DEF055305BA8540B6E07057B4596D2DAE14F7C3DE85\n+E0A36C6DC6D10188E05774A43ABE6AA952E7DA2507BE0799BF3E8902FFF85A7F\n+40F4D23F0C8F7A84EE945C855E5C7DCD90AADF196FB8A06C10FEE2C4B20426DE\n+E996AFDB75231884AD4088A74BE942E844E4A50E727A6A0EC2EE05F99C43CE27\n+7BF9CE661A268CAD630593202105DBE0EBB746F841170F98D3448207D9FD913E\n+1C6F4F4EED5199C717C8C05CC42D653B01760E04BB9B3FFAA27FB2C04A13F2A1\n+976E6EFFBDB5841856FC8C0B78C2C812E530A14AC8F57790A0B5928712035613\n+9CD48911857A379BE292766CF63680899955186531DA3992404135C3334BCD23\n+8CD2DACC9C86E05589FFFC4AD2DABC8CF0421AB0FC1828513EBD0D6F7F451516\n+40FC04CAF32A57D41B3ADB08F4B9A88BE6C6850B71E88A2BA8263F8201538E7D\n+28B826732FCB3BB893B5C8B87CCB56C803F2F8639495DC356AF8DD24A60DE2CD\n+D68A51D75DB0E418641095245FAC2929C91BD66C905BE2AE24B07578AFE5A7F8\n+47597D7211BC3EBC0F5EFB6F6AFD0DBB0862F1F92BB59FAB83F22D65BD0ED602\n+799566BB72EC865E47A52C264E2F125579157AC646A7562AD787D48AABC31311\n+CA0EBFD6B6E735353293F2E0F29731225D447185F0F394C1AB4975EDCE212327\n+C973F2E02BA9624289F8A50CFA6F440BAE69AC3B29467AFBCCB8D320153322D5\n+CCEE808314BAE8AA0F61439BD738C6BED695501735D73C16DC2FA94AA5F10C8E\n+65F711E17927524494AA588DBBC234BDCE455AE1155C4757CC2BEE592187DE3C\n+4434B03A17FB2E38493FB11CB796C47C476899B67026B8ED80D0F608691F094D\n+EC93A39424D7219F045524FF864606C6EF6B6A5617801D321400F2C36E2EF1FD\n+F60E4A4D5E1BA84F8D75256B2FA00E68CFED14134989CA573632801DA33BA64B\n+4940D296945783EDD9EE07E926345A2F66D50F71A53273FC0F14AF3F90CE31B9\n+420920014B31C260BA5593B162FC11EBFF817D6397867E5A3FC4E053354266BC\n+C48BC99BF86F56E500980963B9925E7B1CC51A10F58EFDA556DCFC65D1DD0575\n+220C404B0B850DFB5AB573D5A28FCFD82965ED718A5F9205AA7A4A4B8CC503A4\n+71EF94EED7CD9C254328CCAD93147FAC592D23FA54CB2225319CF9D98CC1C576\n+5A8E830D7891888080505577C90854B2368641C40E4A09BEE4BEA873D1D04CDD\n+28014899FE394EE5EBAA074EE5207AC316EE5A380A5B31957A3EA42D45A752BC\n+DACA13D42443F30A596277C924B15404DBF1F0C4C73AFB5837EBCBD04875ADB8\n+880835D9D39107325480D36DA9882F38FEC055CC593B168E1B615985F858724C\n+20AF1D723939318592BB1E9D4843FCBD6782058CCD88C2854B7EDADFE1C9EEB0\n+05E1F89A1A16794B78307D3B0114D52E728DE367A853AB2F357EF3824B5FF6EA\n+BDF92982C16A393BBB2DE50ED382E059E8CF2BF09BDBD188EE8CC78438C19955\n+018A4FAF1A979D21E5D411C24D5763293FFECF701A128BB464CC004A41AB814C\n+3664672ACDFB1B5F7BE6382179E4D9ECD4C0E987E6C30F3AD16BBA1CBE9E9FB2\n+0C61C28576665D43CD47094115EFCFF6982E74B1FDA4A244FB3CBE8EA744CB1E\n+817384218B710348FA3ED3B8D7117B916C5536FAAC46849756D88A700FE41BC5\n+FCE46E070125393E674EFF450D9EEF4F826A7CACC13FB135A56FDA91AB8AE27F\n+C021114A82B223661D8EC9D95ECDE696743B3279CD7E3A246A52A59E07DF51CF\n+56EAA2442082E02FC293DBBF5982E2AE87B660FC720E0A913DCF7F23F9D1A2BC\n+80372B734FD6D02660C6150635126D761ABE357ABE7C008E953867AF55E5A627\n+726E3082AA1DE979E2A9B57BCEBBB80B2672C1FF7FD4EE5D6C8E4B32F74BA7E1\n+F77343BF6C97AEB8FC5D088DDB316B0A659DADB8BC19A2604180CA6F6E39025E\n+38D5D4CF88FEA2B380091CDC6DBE3EF72DE7FBED5332B044AF6216454FA06184\n+91845A1C500E038A28E6B1E501FE6D509CDDD180B69EC328B0B6E572E014EB47\n+1BB893A58643EFDC41B6F3D46F60A1C88CF986E366741E24514DE59E6D843E1A\n+32A749F81F8589914F78783EDBFFF73F7FB74DE2155BE6D8640A12D6AA38ED4E\n+45F004A72508042FBBB8155EC868730926E1DFDFFF7C21E2B7795ECAC700A3A4\n+7BD65BD3C114874F13519B91F4E7DF748E662571BFDADBE9D755B2D9321F8676\n+67C5218B12BA1368BB4CDE0299B4B6129557FAF29A2B0739DBBE6B85AFF15B6C\n+8D597DDB1D6F3AC0DE55E744C185D19DD7D7DA7D028A8E19E898CEE9705BF061\n+4703B7FBA0B7555E30DBA534EF541304C23D9FA0BD5E5A8E24D6584F4E991E01\n+F45C7DB4BB32BE197572A7ACD92A21F4B69364801FF88822684463A831BBDF8B\n+6F0234E4785E85F2BD27EF5D32D6FFF60CB1EDA3C4A297E4782B903709880ED4\n+7CD3C4288563CA756A8D757552869CFEF0F20D3CE3599294009F1AECCFCF4B21\n+7DF14DE453E5871789813D8B34C5B253BD9DE5C60916BB18C5530A02B036FFCF\n+E3B3BA29729845C43039BF5FF4D82B7CA28F4538D60B6D7E716841F0E7130339\n+F4D3A94EE1A739388757C3BA208C735BF5600E0B5EC974BE1A0A88B4A1BB5F76\n+61E82B33D75BEF5EEDE81F13E4F27F83AEB231D5405806F3FCD79C0F0B29CEDC\n+5B9A23BC1CCC6E020C9438F1CB1AFD9C988C42A9CF0C122D94A7D958CE329866\n+E51C5E1BFBEC8CE6C41E89DA9B01089753557C6D02A3ACA687FBB3F42AE14551\n+F762CF420F93716DAEA6967C8E88316076CD65892663400F5F869B6D6CD42E5A\n+EAE8E1426EDFCFD821F2394A5BB53594842016E57186FC9C8DCD9276CE290CE0\n+A3EE8874AF6690C7032BFE0A0AE6C6AE05BAE2B5E4F94C01A1084E65AFC36593\n+1E37EF2DD343A1DA389B02DCCC54A535352A6057D327AD09F88466122B8A8FC9\n+0E651183CA30D1F6F9969ACCA0BD9059C765C6F44EF14766F080DCFBB13A6399\n+4345779BF570E4F6BAFB2AA793E258FBAB3B6369C33A00241CC14C5E5884CEB9\n+0F09D9D8F6CB1DA872E2754116265177A4F49FF64C675EFC035F99AA1BF625F1\n+B6422F034BB36D56625A006E1ED3CA9D304B1A106CA7045EA6862EBFE2C0A70E\n+D13423FEE5420979BFF44E2848323F983724BB1F4255E1BDB085D12DFEDE7A80\n+6D10B1574F9CAD52B6F53B9D6BFACE2E74C58317E8326A\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n@@ -2444,21 +2453,21 @@\n /Fd 1 43 df<000C0000001E0000001E0000001E0000001E0000001E0000601E0180781E\n 0780FC0C0FC07F0C3F803F8C7F0007CCF80001FFE000007F8000001E0000007F800001FF\n E00007CCF8003F8C7F007F0C3F80FC0C0FC0781E0780601E0180001E0000001E0000001E\n 0000001E0000001E0000000C00001A1D7C9E23>42 D E\n /Fd load 0 Fd currentfont 66.6667 scalefont put/FMat\n X/FBB X/IEn X\n %EndDVIPSBitmapFont\n-/Fe 138[54 38 38 38 2[49 54 81 1[51 1[27 54 49 30 43\n-1[43 1[49 9[100 4[72 1[66 4[76 50 2[77 2[75 70 69 73\n-11[49 1[49 49 1[49 1[27 1[27 44[{}31 99.6264 /CMR12 rf\n-/Ff 172[90 2[110 121 2[97 6[106 18[81 3[45 46[{}7 143.462\n-/CMBX12 rf /Fg 134[70 2[70 73 51 52 51 2[66 73 111 36\n-2[36 1[66 1[58 3[66 13[73 6[83 76[{}16 143.462 /CMR17\n-rf end\n+/Fe 134[51 3[54 38 38 38 2[49 54 81 27 51 1[27 54 49\n+30 43 1[43 1[49 9[100 4[72 1[66 4[76 50 2[77 2[75 70\n+69 73 12[49 1[49 49 49 1[27 1[27 44[{}33 99.6264 /CMR12\n+rf /Ff 172[90 2[110 121 2[97 6[106 18[81 3[45 46[{}7\n+143.462 /CMBX12 rf /Fg 134[70 2[70 73 51 52 51 2[66 73\n+111 36 2[36 1[66 1[58 3[66 13[73 6[83 76[{}16 143.462\n+/CMR17 rf end\n %%EndProlog\n %%BeginSetup\n %%Feature: *Resolution 600dpi\n TeXDict begin\n %%BeginPaperSize: Letter\n /setpagedevice where\n { pop << /PageSize [612 792] >> setpagedevice }\n@@ -2468,17 +2477,17 @@\n end\n %%EndSetup\n %%Page: 1 1\n TeXDict begin 1 0 bop 590 739 a Fg(Solving)43 b(Linear)g(Systems)f\n (using)h Ff(SPOOLES)54 b(2.2)778 1005 y Fe(C.)33 b(C.)g(Ashcraft,)g(R.)\n f(G.)h(Grimes,)g(D.)f(J.)h(Pierce,)h(D.)e(K.)g(W)-8 b(ah)1442\n 1121 y(Bo)s(eing)32 b(Phan)m(tom)i(W)-8 b(orks)2458 1085\n-y Fd(*)1629 1340 y Fe(August)33 b(3,)f(2025)p 0 5173\n-1560 4 v 92 5226 a Fc(*)127 5249 y Fb(P)-6 b(.)33 b(O.)g(Bo)n(x)h\n-(24346,)j(Mail)32 b(Stop)i(7L-22,)i(Seattle,)h(W)-6 b(ashington)36\n+y Fd(*)1691 1341 y Fe(July)33 b(1,)f(2024)p 0 5173 1560\n+4 v 92 5226 a Fc(*)127 5249 y Fb(P)-6 b(.)33 b(O.)g(Bo)n(x)h(24346,)j\n+(Mail)32 b(Stop)i(7L-22,)i(Seattle,)h(W)-6 b(ashington)36\n b(98124.)62 b(This)32 b(researc)n(h)i(w)n(as)g(supp)r(orted)g(in)f\n (part)h(b)n(y)g(the)g(D)n(ARP)-6 b(A)0 5328 y(Con)n(tract)33\n b(D)n(ABT63-95-C-0122)f(and)g(the)g(DoD)g(High)f(P)n(erformance)h\n (Computing)g(Mo)r(dernization)g(Program)f(Common)h(HPC)f(Soft)n(w)n\n (are)0 5407 y(Supp)r(ort)25 b(Initiativ)n(e.)1929 5656\n y Fa(1)p eop end\n %%Trailer\n", "details": [{"source1": "ps2ascii {}", "source2": "ps2ascii {}", "unified_diff": "@@ -1,8 +1,8 @@\n Solving Linear Systems using SPOOLES 2.2\r\n C. C. Ashcraft, R. G. Grimes, D. J. Pierce, D. K. Wah\r\n Boeing Phantom Works\u2217\r\n- August 3, 2025\r\n+ July 1, 2024\r\n \u2217P. O. Box 24346, Mail Stop 7L-22, Seattle, Washington 98124. This research was supported in part by the DARPA\r\n Contract DABT63-95-C-0122 and the DoD High Performance Computing Modernization Program Common HPC Software\r\n Support Initiative.\r\n 1\r\n"}]}]}, {"source1": "./usr/share/doc/spooles-doc/BKL.ps.gz", "source2": "./usr/share/doc/spooles-doc/BKL.ps.gz", "unified_diff": null, "details": [{"source1": "BKL.ps", "source2": "BKL.ps", "unified_diff": "@@ -11,15 +11,15 @@\n %%EndComments\n %%BeginDefaults\n %%ViewingOrientation: 1 0 0 1\n %%EndDefaults\n %DVIPSWebPage: (www.radicaleye.com)\n %DVIPSCommandLine: dvips main -o BKL.ps\n %DVIPSParameters: dpi=600\n-%DVIPSSource: TeX output 2025.08.03:1317\n+%DVIPSSource: TeX output 2024.07.01:0659\n %%BeginProcSet: tex.pro 0 0\n %!\n /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S\n N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72\n mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0\n 0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{\n landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize\n@@ -2553,23 +2553,22 @@\n /UnderlinePosition -100 def\n /UnderlineThickness 50 def\n end readonly def\n /Encoding 256 array\n 0 1 255 {1 index exch /.notdef put} for\n dup 44 /comma put\n dup 48 /zero put\n+dup 49 /one put\n dup 50 /two put\n-dup 51 /three put\n-dup 53 /five put\n+dup 52 /four put\n dup 58 /colon put\n-dup 65 /A put\n-dup 103 /g put\n-dup 115 /s put\n-dup 116 /t put\n+dup 74 /J put\n+dup 108 /l put\n dup 117 /u put\n+dup 121 /y put\n readonly def\n currentdict end\n currentfile eexec\n D9D66F633B846AB284BCF8B0411B772DE5CE32340DC6F28AF40857E4451976E7\n 5182433CF9F333A38BD841C0D4E68BF9E012EB32A8FFB76B5816306B5EDF7C99\n 8B3A16D9B4BC056662E32C7CD0123DFAEB734C7532E64BBFBF5A60336E646716\n EFB852C877F440D329172C71F1E5D59CE9473C26B8AEF7AD68EF0727B6EC2E0C\n@@ -2750,79 +2749,67 @@\n 7CA1534C4D5B05FC33F83790ECFD7641DF3FB94289E2A1F6E7D29AB1228A867A\n 6E1EF0E9C6F899B491DC18401C2C0A05FFFED46A72C245F7529B8EA55A038082\n 8512307217D2A233C37004085BA3AEE379269F9FA7D0ADB4B19A95CC2AFE686E\n 55D88E47257C1FE6F235FEA295910569FE6DD5995512562359CC821E85A6C7A5\n 79B470A9E340A6985189FF8B6AF914A6B0ECF93F47903221F95DE894A8F05B05\n B7D99CD533EC5F931B18E6B39BECF67FA2D6DD1AEC76772B068BE06335A94C05\n 7A4DDEE77B66101DA855C17AC312600370B34E31F5EC3A01300A8EB60B4C9767\n-1B2FA10DF7E91D3BB34A1B1CE7A0015A57C813E0280D873ADB88440048702D1F\n-77994EE04EC3B4531D6E1888C86A8F0DA6CF1F056F16AB0DD76C862830F89DA4\n-28923B3AA543E0D6E41D3BD283E600BC11F889315EE92C675C109C81065ED1BC\n-82A5583D1B723D50051B0557A367887F5B263014C6E77288B4883C50889473D3\n-3787BAD4BEB88BD1353AFA5B73E61814819537E7FF09F53EF94792BB3DD36ED0\n-002D0E7A6CDAB85A9C17AF5664BCB5A71663B861880F3ECCABC8E7A2FC81A4CC\n-AE7A87503FDC1CE0077BA51ECC7B43B60793FED8E9AAD5BBD03ADD6183DCD26D\n-24A74163611C05562437644EF9B8889FD4F9D311911204FEFD35237486F2D2D0\n-B6783A03BF12EA6D19D6D0F87E4D08515F12F9CBF1961CAA71E0D69FE3C4C4D2\n-7C7FB64ED24F8684C8F00C2BEDEA53EA390CDC0B5BEBD7DD982580B2EA1F1F89\n-CFED5916630DC2BA32BB9180277E1ABC339B3B7DE086717BD93F7FF3681BA5B3\n-FCF671C4B293C2DE4A322F0AA3323A4934444C69F23EF90120B8755482757759\n-C457A435FB8BB4922BD92C5F3D9555D978275C510183E29DFF2FCE4ABBFC18DE\n-76CAD3B486BA12047DD808CD4D521A0FD368E4AE79DE262630983A5D6F0B679D\n-2F005306393C520E1B6987302D029939D94B0178DC55D5264E1FEA468AD4134C\n-8C65B2FBBE8DE8284E8E1F6BFE0B648F44D3DA8E9350D266EDBFD4A7054D9355\n-1E0B185DED37BCF32D3731358F1D707C94109428BAD3CEA456A2A43553E3D2C2\n-F549189201F3D3F715310E3E8C6A2E9AA5141AA9125D203694C7D875C2DD320F\n-C5BCDFC924F6C04DBC7A97349B45ECD0FBD7D2123ED1D3A9F440B1112BE62779\n-47A4592F9285CBD9635EC9091CEC0AFD7E6B6976974081DB9C0E43165BD8584D\n-6CDF08DED287F0883A9FBD351B3F8706BA1E94C7CA487338269482EB8DC1A05D\n-F6632A5D834DE29228C49C5BA65EF7C535A53B380BF4B391F43562147538EE97\n-E799DFC2C40315859F56BBCE9CAE1DF9293F6E2C193ABE7A724EC8F32FA220E7\n-6026877A63E318254F2AF7B1325D63FC4C52B536D3EF354814C2F8F1EEA30569\n-6EF04447DB0F809DF35B4985B9FB4F4BB6087310BE633E76F268B32ABA99CE8E\n-03163DFF4AEDB88E60DD0848C15E90026D7C24D81122EBC07113F9851914A9D5\n-D0E09C2BFDDAF10C5D8208E8329BC0C402F231CD84C95EFDD182AD9756662110\n-274650C7A5BB0D8EFA54EC6C5A49C0EB26701A54779AE8EFBBED824262761602\n-680EDFB38F0FE18C0F501F5AA8BF48A8F0DD3E5E1EBEB872F6F6B23964707B32\n-507FC677B9FDDC990E3828B06420F6F968B2F6AE81E76A2144B1ECE905485616\n-CFB29AC96DDE1F5039935D7E385CC13E34DD7EAF276A2EA3A8BF27FD4205AE13\n-7FE620E42F2CF231C6C8DD8EFC5A6CF081E5660D9ADD730D72D15C02B1E15FF3\n-D741D3B1EB1E666C4E562219033C1E2EF3F96E136998B2E1890395A3637A2C02\n-DE1C46AFCA8D898439F06606A2295D3F7ED6C7DB250C61B6B97A0D5EDDB9657E\n-E790B4E07540BB1026036F4A0D00E7F16FD757AD61D686620C6814B7DCEC43E8\n-FD36D9E75BA554F64548A67D9B0A26E11784E58D4357FC251D71B5D6D8BFDDE0\n-D3BF0E825DA5312C1904AF13C5905C2ADF79C357476183D2EC5A95243235E861\n-2F98D9EE77EF8F8CB3EC6BD358C5ED37DD3AF44D60575E7774BF96F1AE9DFAD1\n-F8646DEDF21D10311854726B8F7D25876BB1EF78E2442B16ED4B851816CF0A27\n-11FDFCE525002A1A7C3E62CD2A3EDE6FAADB026D2F3A46C030ADB22422CA8FF5\n-2545ED58C0D9FB5BDB55FE674301E91A75B005B86BD201D246F7ADACE50419FD\n-AC3312CAC5EB78A36F0E5F62E65AC92129CB574AAC59E0A7C1390DFC61F39D9E\n-D7036742F2F6E64D1EF8157E9CCF65F3EEDC6A8220235978B8E06EB80F649F3E\n-204CFB497F49306EA8E1F7B62305978A28F1E771ED82C6592C71022154E4062A\n-A92335EFC65D6DED9C686899FFD7AA2988740618C03C5E362E1AF352E3BE4602\n-5530C51E5FC8E9082DF79199CC91C50174000D337D86127AC807C5A3C81DDE57\n-7A68AEE7230949B925365C214D77C80E87CEE218ABC94023717EA43BA5D8A7C8\n-8A8B9BD1B767996AE33050E3D922ED0574E3579C57E4BDDAD35883806AFDF260\n-3AB5D83D451583262E580FFDB7A27D82396AF18D92B849A3F7A7E621987D5DF0\n-038F876C6E9CA47FB11AF05F0019191C5DDC5F0177AD421E94BC66D0CCB82F1F\n-93A80836284B095503752C600F72E2C89112ABFA5B76152691264103B268B3E5\n-8816724ADADB38740001A9AACE05C8AF02D72918606DC22EFC8BF0DA0FD12FFE\n-D3A09F8E28057F327BFB633E604B1EAD478637B1D9631650B314CC62D7E0E87F\n-9D3FE1FFA23BB6E3006C3E39BED52F6B0C1C651B5913878F36DA0BF776889165\n-68BA3456B40B8B471CA8FF5238E43D9113E052A2B8D2EAA2433D3F89FCA48AFB\n-5E842913E4ED6DF9623354059CD1F1707B126FED80349787C869883120183EDD\n-249185A55503FAC53898F52170D05CAC62BB742CF9702C0518AED6B27CDC401C\n-932E02143FD916703F360CB31049501B35EF3EDDFED791090D0CFA221FD1DB32\n-7D4759CE07983AE29C258C705D11E7D9481EEAAB9B6BA65CDCF0AA0057BD6FEA\n-ABBFBD3ABF2A7BFB550C3D2A16DC447384A89F3DB6D9C2DBDCA997ABE35A7706\n-633D328AECEDB5BD07070C1B96267FD73B45791DD18194F60D358091FBE88409\n-973529806F3D2C9E6E39091F90A14B560A987E0B9490B9B690FB489B8E253070\n-D7C54447BE0E0A0BFEAEFFB581DC1300E6EC382984673BF0665632404E59B5BF\n-5D5F0A1C956E618C0487751CA5DAE8A95C214F76ED756694EF273679CD2D85CB\n-949DF385BD50491649EFEFDA1574921D7460143D42A100D2C76E55F0BC\n+1B2FA10DF7E91D3BB34A1B1CE7A0015A57C813E0280D873ADB8844004B9BA1CC\n+580D3C6BDA4DC1B80B4365F1C80512453FC5316EC2D928FB731C3D6403E3C18B\n+E8424D644DF5E9A2134229C5C91CA68DB8E85BA2BB40F538F585DA6FA4037718\n+B8053EBBA1E765346BCD5BDAA6C38115D31611D8A87A2238C145F2DA2F92E4DF\n+3987BD9C4D2A3D460E8941A68B125BCD9EE4F9FD262C4C8A71F47A2C81975635\n+F1B981C274C53FA2ACCDE4C9D0A7C62D6C1EFF91CFC6712CA6A9F333C9564FCB\n+2A70F0AD715A79B10A08AB069E2A3C93BC0AED19D0CA10134B8DDDE8AF548DB2\n+3A4AAA9C29682CF135BB767DAA16169A127EB50A7EECEB6480CF56A7D0F8AC56\n+4A5090B3D75A790372886AF568D94C8165975A05BFBFDF1FFBA45F70700BB9E0\n+57F3249EF9E9C8AD9CBCF6E4FD592DC4CDD2CC7C0BC3130C1059096C657BE453\n+A2CBACE93420210E27AF56CA229BD6D982FB68B3FDC6D44478B922C4231C47EE\n+E500232F6C11D92DEB955F66DF52B92B22E7352790CC2DCBAC53965D57AC2920\n+68B7D520DE25047146EFEB06B9AD4E2A94243C7E5239F0BC2FC312B16051D52C\n+0B92C217B6B42997321AE4F8BB066754B7AA3F15069EF59224E8A442CE471AA7\n+E8049A3DD9EDA09CCEE4998998661CF7DB35E952F6C65DAEB3013951C59F3E09\n+157F313B0237876E1C0190F0473819570B8C0205AADF05D787CC00979CFB327A\n+289382B22DDA6F12804ED0ED5B179E36A995A2A59E1B66E75130DBE9109C813B\n+94403E0DEA8314A1E9DB474D7FA83C0BAFD08033E6A6215844C1D26BE15F1251\n+A1605E8DF9A9C601ED37379530BC1C82BE5463C6C711C5652BFD6262485AA9CA\n+B8C4A117593001D08D980041E2A83C190DCE8E6CD3D334E5CC19FC05DB30F7F7\n+24A305C4DBB31F0651392B99D44B4302333BDF7E326FD256DD75D309C6E73F85\n+FA71B35FD1F9BEFF4C7A1076362EEB0A85492933B6006086A7B8C1928CF2D1EE\n+FD4344409257BB802C117E739960821CD3C88BFBA5669FF16F610AD638AF3677\n+8674C985E6767253ED5769F71BEA5E9BB02A751F9E62EE2B18AC19D975FDEAE9\n+8B8822367FF177A7E850766DE99ED3366D46464612926430012212A90F8E85F4\n+4760B40D5B86B90819EE410382D22D8ED82D0B0AB00C93E10CD365F8766D1C87\n+B4A866021FB6F6AC3D250CC601989B1B8FE6B1098A48282D2CF258BF38FEE940\n+CE0141FB1344156DE7712A8F2DBF700174F12616EE17C852210D96D03E5E6635\n+D439EB6E84A383DDD32AD72DADE6F931FDBABBDC726C36081C96018FC95EAE13\n+DA1F8DBC2D8355AC9792649653225393F4A7A88F3B9443FEEB75E2C15BF93F09\n+CCBA7FABC022BE26F4C28152D5DA6D690494AD4EC0DA1B598AE12536BADF88B5\n+5E20EB452546389F57FF55459567B453AE1831C57D22FA6A4FDF441EDAFDB7FB\n+4F4B707C1FF9159C40F7B5DD519FC07815EE91B8D756B6C18500BCF47D0D9E45\n+6A2D51B6AA5AEAAC9AB2DEF7F0FDE957B6C179CBADEECAC7E9CEC248AB135EB4\n+FBF83D002FF859B574EF36C371540EF2BCFCEF5C2E7863AEDD7C3C965103453B\n+023A9CEC1D5C45B88827ADF4AE0C6746F3C7E6A944427DAEC493601019583A16\n+0F846CE00EAE89EEFF9CE68A0E1D6EBB8FDD8A45D1BF399B36A8328EC957CB8B\n+D842A56269C8C9A6B472C9E65BCBC090606B4E8A7EF4ABDEA120C9F9B3969A1C\n+2EB102925F4E155160E58000E1ADB0D19E10EFD96F6C3225EEE8FC24D122C069\n+C11F1A69DC383F7DACD2F3929BD135CE69787C6E7560AC4B683FE5D9AAFD2E89\n+EE6D95E38C9B726B416E28169A11E29559DBA9AECD714CF318FCB78F34A0E562\n+9C00FE0C6D5A848557D9A82EC2BEFCD30B5EDC0B23C5BA9F812C864394C8B9D1\n+B08BAC9CF94E70FF842306ACCFE6E39A56777C712904A3AB29FBD19275E19E06\n+B35B37CFFFCEC81CAF2D85A853663FAFCFFED1EA77064AA28C15BC94910683BC\n+D09513079DE9EE18E97CC2403DD206516D7F652A3459870757F34EEDCEF952C3\n+FE8004F4716B5BD6774E455010B0BB1E61FCD66B9F14F9BBCCF3E55A158EE96E\n+9A05BDFDDC7706D4BC28FDDC4004EF3A430C607EBDF115E0C996454D70C8BB42\n+D7C83A454B116663D648C23CE2B33365810DE2B64D4AE011BC8043BC3E05B94D\n+1700F859C6AFC6515C1C42FA104EE3E8F3FA5F80252C2E79B00ED27F675FFD09\n+B50BF7A3C63CF4856F909DF969D7DD3EA05CABDD1E71A58CFC2AB5F614B4E5E0\n+25CF92E9FB66ACEBE05DF5E033DA8AD3EE32D94C02D98DD7DA99FAB5AEA595C3\n+2987DC122F0242D76B782349E4069DE0CDD6EF4375C680CBFE4C8F24F2AE89BF\n+7785F5EA7435A91500F265022C307E8ADEAAE1C6\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n@@ -4112,16 +4099,16 @@\n 2[25 47[58 11[{}6 90.9091 /CMMI10 rf /Fd 149[25 72[91\n 29[45 2[71{}4 90.9091 /CMSY10 rf /Fe 133[50 59 2[59 62\n 44 44 46 1[62 56 62 93 31 2[31 62 2[51 62 2[54 11[86\n 4[77 6[42 20[56 56 56 56 2[31 46[{}25 99.6264 /CMBX12\n rf /Ff 179[62 62 8[62 66[{}3 119.552 /CMTT12 rf /Fg 141[38\n 2[46 51 1[23 42 1[28 46 42 1[42 1[42 1[46 12[65 1[66\n 11[59 62 69 2[68 6[28 58[{}18 90.9091 /CMTI10 rf /Fh\n-138[51 35 36 11[45 37[68 6[25 4[45 1[45 45 1[45 3[25\n-44[{}11 90.9091 /CMSL10 rf\n+134[48 3[51 8[25 33[47 15[25 5[45 1[45 45 45 3[25 44[{}10\n+90.9091 /CMSL10 rf\n %DVIPSBitmapFont: Fi tcrm1095 10.95 1\n [/Grave/Acute/Circumflex/Tilde/Dieresis/Hungarumlaut/Ring/Caron/Breve/Macron\n /Dotaccent/cedilla/ogonek/quotesinglbase.ts1 4{/.notdef}repeat\n /quotedblbase.ts1/.notdef/.notdef/twelveudash/threequartersemdash\n /afii61664.cap/arrowleft/arrowright/tieaccentlowercase/tieaccentcapital\n /tieaccentlowercase.new/tieaccentcapital.new/.notdef/afii61664.asc/uni2422 3\n {/.notdef}repeat/dollar/.notdef/.notdef/quotesingle/.notdef/.notdef\n@@ -4230,17 +4217,17 @@\n 5294 y Fi(\\210)45 b Fk(int)i(*cweights)28 b Fl(:)40 b(p)s(oin)m(ter)30\n b(to)h(an)f Fk(int)f Fl(v)m(ector)j(of)e(size)h(3,)g\n Fk(cweights[0])c Fl(con)m(tains)32 b(the)e(w)m(eigh)m(t)h(of)g(the)227\n 5407 y(separator,)h Fk(cweights[1])27 b Fl(and)j Fk(cweights[2])d\n Fl(con)m(tains)k(the)g(w)m(eigh)m(ts)h(of)e(the)h(t)m(w)m(o)h(comp)s\n (onen)m(ts)1927 5656 y(1)p eop end\n %%Page: 2 2\n-TeXDict begin 2 1 bop 0 100 a Fl(2)p 136 100 1199 4 v\n-1381 w Fk(BKL)29 b Fh(:)i Fg(DRAFT)f Fh(August)g(3,)h(2025)p\n-2702 100 V 137 399 a Fi(\\210)45 b Fk(int)i(*regwghts)39\n+TeXDict begin 2 1 bop 0 100 a Fl(2)p 136 100 1256 4 v\n+1438 w Fk(BKL)30 b Fh(:)g Fg(DRAFT)h Fh(July)e(1,)i(2024)p\n+2644 100 V 137 399 a Fi(\\210)45 b Fk(int)i(*regwghts)39\n b Fl(:)62 b(p)s(oin)m(ter)41 b(to)h(an)f Fk(int)f Fl(v)m(ector)j(of)e\n (size)h Fk(nreg)p Fl(,)h(used)d(to)i(store)g(the)f(w)m(eigh)m(ts)h(of)g\n (the)227 511 y(domains)30 b(and)g(segmen)m(ts)137 738\n y Fi(\\210)45 b Fk(float)i(alpha)41 b Fl(:)65 b(n)m(um)m(b)s(er)41\n b(used)g(to)j(store)f(the)f(partition)i(ev)-5 b(aluation)44\n b(parameter,)i(the)d(cost)g(of)g(the)227 851 y(partition)31\n b(is)227 1124 y Fk(balance)46 b(=)i(max\\(cweights[1],)43\n@@ -4285,17 +4272,17 @@\n (call)h(to)f Fk(BKL)p 2265 5125 V 34 w(clearData\\(\\))c\n Fl(then)j(free's)h(the)f(storage)i(for)227 5238 y(the)31\n b(structure)f(with)g(a)h(call)g(to)g Fk(free\\(\\))p Fl(.)227\n 5407 y Fg(Err)-5 b(or)34 b(che)-5 b(cking:)40 b Fl(If)30\n b Fk(bkl)g Fl(is)g Fk(NULL)p Fl(,)g(an)g(error)g(message)h(is)g(prin)m\n (ted)f(and)g(the)g(program)g(exits.)p eop end\n %%Page: 3 3\n-TeXDict begin 3 2 bop 91 100 1199 4 v 1380 100 a Fk(BKL)30\n-b Fh(:)g Fg(DRAFT)121 b Fh(August)30 b(3,)h(2025)p 2654\n-100 V 1199 w Fl(3)0 399 y Fe(1.3.1)112 b(Initializer)38\n+TeXDict begin 3 2 bop 91 100 1256 4 v 1438 100 a Fk(BKL)29\n+b Fh(:)i Fg(DRAFT)121 b Fh(July)30 b(1,)h(2024)p 2597\n+100 V 1256 w Fl(3)0 399 y Fe(1.3.1)112 b(Initializer)38\n b(metho)s(ds)111 590 y Fl(1.)46 b Fk(void)h(BKL_init)e(\\()j(BKL)f\n (*bkl,)f(BPG)h(*bpg,)f(float)h(alpha)f(\\))i(;)227 736\n y Fl(This)34 b(metho)s(d)g(initializes)j(the)d Fk(BKL)g\n Fl(ob)5 b(ject)35 b(giv)m(en)h(a)f(bipartite)g(graph)f(ob)5\n b(ject)35 b(and)f(cost)i(function)e(pa-)227 849 y(rameter)g(as)f\n (input.)48 b(An)m(y)33 b(previous)g(data)h(is)f(cleared)h(with)f(a)h\n (call)g(to)g Fk(BKL)p 2868 849 29 4 v 33 w(clearData\\(\\))p\n@@ -4359,17 +4346,17 @@\n y(6.)46 b Fk(float)h(BKL_setInitPart)c(\\()48 b(BKL)f(*bkl,)f(int)h\n (flag,)f(int)h(seed,)g(int)f(domcolors[])f(\\))j(;)227\n 5294 y Fl(This)43 b(metho)s(d)g(sets)h(the)f(initial)i(partition)f(b)m\n (y)f(coloring)i(the)e(domains)h(and)e(segmen)m(ts.)81\n b(The)43 b Fk(flag)227 5407 y Fl(parameter)31 b(has)f(the)h(follo)m\n (wing)h(v)-5 b(alues.)p eop end\n %%Page: 4 4\n-TeXDict begin 4 3 bop 0 100 a Fl(4)p 136 100 1199 4 v\n-1381 w Fk(BKL)29 b Fh(:)i Fg(DRAFT)f Fh(August)g(3,)h(2025)p\n-2702 100 V 337 399 a Fi(\\210)45 b Fk(flag)i(=)g(1)30\n+TeXDict begin 4 3 bop 0 100 a Fl(4)p 136 100 1256 4 v\n+1438 w Fk(BKL)30 b Fh(:)g Fg(DRAFT)h Fh(July)e(1,)i(2024)p\n+2644 100 V 337 399 a Fi(\\210)45 b Fk(flag)i(=)g(1)30\n b Fd(\\000)-15 b(!)30 b Fl(random)g(coloring)h(of)g(the)g(domains)337\n 558 y Fi(\\210)45 b Fk(flag)i(=)g(2)30 b Fd(\\000)-15 b(!)30\n b Fl(one)h(blac)m(k)g(domain,)g(\\()p Fk(seed)e Fl(\\045)h\n Fk(ndom)p Fl(\\),)g(rest)h(are)f(white)337 717 y Fi(\\210)45\n b Fk(flag)i(=)g(3)32 b Fd(\\000)-15 b(!)32 b Fl(one)g(blac)m(k)i\n (pseudop)s(eripheral)c(domain,)j(found)e(using)g(domain)h(\\()p\n Fk(seed)g Fl(\\045)g Fk(ndom)p Fl(\\))427 830 y(as)f(ro)s(ot,)g(rest)f\n@@ -4437,17 +4424,17 @@\n b(it)g(returns)e(\\()p Fd(j)p Fc(S)5 b Fd(j)21 b Fl(+)f\n Fd(j)p Fc(B)5 b Fd(j)20 b Fl(+)g Fd(j)p Fc(W)13 b Fd(j)p\n Fl(\\))1714 5211 y Fa(2)1754 5244 y Fl(.)227 5407 y Fg(Err)-5\n b(or)34 b(che)-5 b(cking:)40 b Fl(If)30 b Fk(bkl)g Fl(is)g\n Fk(NULL)p Fl(,)g(an)g(error)g(message)h(is)g(prin)m(ted)f(and)g(the)g\n (program)g(exits.)p eop end\n %%Page: 5 5\n-TeXDict begin 5 4 bop 91 100 1199 4 v 1380 100 a Fk(BKL)30\n-b Fh(:)g Fg(DRAFT)121 b Fh(August)30 b(3,)h(2025)p 2654\n-100 V 1199 w Fl(5)111 399 y(3.)46 b Fk(float)h(BKL_eval)e(\\()j(BKL)f\n+TeXDict begin 5 4 bop 91 100 1256 4 v 1438 100 a Fk(BKL)29\n+b Fh(:)i Fg(DRAFT)121 b Fh(July)30 b(1,)h(2024)p 2597\n+100 V 1256 w Fl(5)111 399 y(3.)46 b Fk(float)h(BKL_eval)e(\\()j(BKL)f\n (*bkl,)f(int)h(Sweight,)e(int)i(Bweight,)f(int)h(Wweight)f(\\))h(;)227\n 549 y Fl(The)31 b Fd(j)p Fc(S)5 b Fd(j)p Fl(,)31 b Fd(j)p\n Fc(B)5 b Fd(j)31 b Fl(and)f Fd(j)p Fc(W)13 b Fd(j)31\n b Fl(v)-5 b(alues)31 b(are)g(tak)m(en)h(from)e(the)h\n Fk(Sweight)p Fl(,)f Fk(Bweight)e Fl(and)j Fk(Wweight)d\n Fl(parameters.)227 662 y(If)i(min\\()p Fd(j)p Fc(B)5 b\n Fd(j)p Fc(;)15 b Fd(j)p Fc(W)e Fd(j)p Fl(\\))26 b Fc(>)f\n", "details": [{"source1": "ps2ascii {}", "source2": "ps2ascii {}", "unified_diff": "@@ -18,15 +18,15 @@\n \u2022 int ngaineval : number of gain evaluations, roughly equivalent to the number of degree\r\n evaluations in the minimum degree algorithm\r\n \u2022 int *colors : pointer to an int vector of size nreg, colors[idom] is 1 or 2 for domain\r\n idom, colors[iseg] is 0, 1 or 2 for segment iseg.\r\n \u2022 int *cweights : pointer to an int vector of size 3, cweights[0] contains the weight of the\r\n separator, cweights[1] and cweights[2] contains the weights of the two components\r\n 1\r\n- 2 BKL : DRAFT August 3, 2025\r\n+ 2 BKL : DRAFT July 1, 2024\r\n \u2022 int *regwghts : pointer to an int vector of size nreg, used to store the weights of the\r\n domains and segments\r\n \u2022 float alpha : number used to store the partition evaluation parameter, the cost of the\r\n partition is\r\n balance = max(cweights[1], cweights[2])/min(cweights[1], cweights[2]) ;\r\n cost = cweights[0]*(1. + alpha*balance) ;\r\n 1.2 Prototypes and descriptions of BKL methods\r\n@@ -47,15 +47,15 @@\n This method clears any data allocated by the object, namely the colors and regwghts vec-\r\n tors. It then \ufb01lls the structure\u2019s \ufb01elds with default values with a call to BKL setDefaultFields().\r\n Error checking: If bkl is NULL, an error message is printed and the program exits.\r\n 4. void BKL_free ( BKL *bkl ) ;\r\n This method releases any storage by a call to BKL clearData() then free\u2019s the storage for\r\n the structure with a call to free().\r\n Error checking: If bkl is NULL, an error message is printed and the program exits.\r\n- BKL : DRAFT August 3, 2025 3\r\n+ BKL : DRAFT July 1, 2024 3\r\n 1.3.1 Initializer methods\r\n 1. void BKL_init ( BKL *bkl, BPG *bpg, float alpha ) ;\r\n This method initializes the BKL object given a bipartite graph object and cost function pa-\r\n rameter as input. Any previous data is cleared with a call to BKL clearData(). The ndom,\r\n nseg and nreg scalars are set, the regwghts[] vector allocated and \ufb01lled, and the colors[]\r\n vector allocated and \ufb01lled with zeros.\r\n Error checking: If bkl or bpg is NULL, an error message is printed and the program exits.\r\n@@ -84,15 +84,15 @@\n This method returns the next domain id in a grey code sequence, used to exhaustively search\r\n of a subspace of partitions de\ufb01ned by set of candidate domains to \ufb02ip. The value count\r\n ranges from 1 to 2ndom.\r\n Error checking: If bkl is NULL, an error message is printed and the program exits.\r\n 6. float BKL_setInitPart ( BKL *bkl, int flag, int seed, int domcolors[] ) ;\r\n This method sets the initial partition by coloring the domains and segments. The flag\r\n parameter has the following values.\r\n- 4 BKL : DRAFT August 3, 2025\r\n+ 4 BKL : DRAFT July 1, 2024\r\n \u2022 flag = 1 \u2212\u2192 random coloring of the domains\r\n \u2022 flag = 2 \u2212\u2192 one black domain, (seed % ndom), rest are white\r\n \u2022 flag = 3 \u2212\u2192 one black pseudoperipheral domain, found using domain (seed % ndom)\r\n as root, rest are white\r\n \u2022 flag = 4 \u2212\u2192 roughly half-half split, breadth \ufb01rst search of domains, (seed % ndom) as\r\n root\r\n \u2022 flag = 5 \u2212\u2192 roughly half-half split, breadth \ufb01rst search of domains, (seed % ndom) as\r\n@@ -119,15 +119,15 @@\n The |S|, |B| and |W| values are taken from the cweights[] vector. If min(|B|,|W|) > 0, this\r\n function returns \u0012 \u0013\r\n |S| 1+\u03b1\u2217max(|B|,|W|) ,\r\n min(|B|,|W|)\r\n 2\r\n otherwise it returns (|S| + |B| + |W|) .\r\n Error checking: If bkl is NULL, an error message is printed and the program exits.\r\n- BKL : DRAFT August 3, 2025 5\r\n+ BKL : DRAFT July 1, 2024 5\r\n 3. float BKL_eval ( BKL *bkl, int Sweight, int Bweight, int Wweight ) ;\r\n The |S|, |B| and |W| values are taken from the Sweight, Bweight and Wweight parameters.\r\n If min(|B|,|W|) > 0, this function returns\r\n |S|\u00121+\u03b1\u2217 max(|B|,|W|)\u0013,\r\n min(|B|,|W|)\r\n 2\r\n otherwise it returns (|S| + |B| + |W|) . The method checks that bkl is not NULL.\r\n"}]}]}, {"source1": "./usr/share/doc/spooles-doc/BPG.ps.gz", "source2": "./usr/share/doc/spooles-doc/BPG.ps.gz", "unified_diff": null, "details": [{"source1": "BPG.ps", "source2": "BPG.ps", "unified_diff": "@@ -11,15 +11,15 @@\n %%EndComments\n %%BeginDefaults\n %%ViewingOrientation: 1 0 0 1\n %%EndDefaults\n %DVIPSWebPage: (www.radicaleye.com)\n %DVIPSCommandLine: dvips main -o BPG.ps\n %DVIPSParameters: dpi=600\n-%DVIPSSource: TeX output 2025.08.03:1317\n+%DVIPSSource: TeX output 2024.07.01:0659\n %%BeginProcSet: tex.pro 0 0\n %!\n /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S\n N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72\n mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0\n 0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{\n landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize\n@@ -1425,23 +1425,22 @@\n /UnderlinePosition -100 def\n /UnderlineThickness 50 def\n end readonly def\n /Encoding 256 array\n 0 1 255 {1 index exch /.notdef put} for\n dup 44 /comma put\n dup 48 /zero put\n+dup 49 /one put\n dup 50 /two put\n-dup 51 /three put\n-dup 53 /five put\n+dup 52 /four put\n dup 58 /colon put\n-dup 65 /A put\n-dup 103 /g put\n-dup 115 /s put\n-dup 116 /t put\n+dup 74 /J put\n+dup 108 /l put\n dup 117 /u put\n+dup 121 /y put\n readonly def\n currentdict end\n currentfile eexec\n D9D66F633B846AB284BCF8B0411B772DE5CE32340DC6F28AF40857E4451976E7\n 5182433CF9F333A38BD841C0D4E68BF9E012EB32A8FFB76B5816306B5EDF7C99\n 8B3A16D9B4BC056662E32C7CD0123DFAEB734C7532E64BBFBF5A60336E646716\n EFB852C877F440D329172C71F1E5D59CE9473C26B8AEF7AD68EF0727B6EC2E0C\n@@ -1622,79 +1621,67 @@\n 7CA1534C4D5B05FC33F83790ECFD7641DF3FB94289E2A1F6E7D29AB1228A867A\n 6E1EF0E9C6F899B491DC18401C2C0A05FFFED46A72C245F7529B8EA55A038082\n 8512307217D2A233C37004085BA3AEE379269F9FA7D0ADB4B19A95CC2AFE686E\n 55D88E47257C1FE6F235FEA295910569FE6DD5995512562359CC821E85A6C7A5\n 79B470A9E340A6985189FF8B6AF914A6B0ECF93F47903221F95DE894A8F05B05\n B7D99CD533EC5F931B18E6B39BECF67FA2D6DD1AEC76772B068BE06335A94C05\n 7A4DDEE77B66101DA855C17AC312600370B34E31F5EC3A01300A8EB60B4C9767\n-1B2FA10DF7E91D3BB34A1B1CE7A0015A57C813E0280D873ADB88440048702D1F\n-77994EE04EC3B4531D6E1888C86A8F0DA6CF1F056F16AB0DD76C862830F89DA4\n-28923B3AA543E0D6E41D3BD283E600BC11F889315EE92C675C109C81065ED1BC\n-82A5583D1B723D50051B0557A367887F5B263014C6E77288B4883C50889473D3\n-3787BAD4BEB88BD1353AFA5B73E61814819537E7FF09F53EF94792BB3DD36ED0\n-002D0E7A6CDAB85A9C17AF5664BCB5A71663B861880F3ECCABC8E7A2FC81A4CC\n-AE7A87503FDC1CE0077BA51ECC7B43B60793FED8E9AAD5BBD03ADD6183DCD26D\n-24A74163611C05562437644EF9B8889FD4F9D311911204FEFD35237486F2D2D0\n-B6783A03BF12EA6D19D6D0F87E4D08515F12F9CBF1961CAA71E0D69FE3C4C4D2\n-7C7FB64ED24F8684C8F00C2BEDEA53EA390CDC0B5BEBD7DD982580B2EA1F1F89\n-CFED5916630DC2BA32BB9180277E1ABC339B3B7DE086717BD93F7FF3681BA5B3\n-FCF671C4B293C2DE4A322F0AA3323A4934444C69F23EF90120B8755482757759\n-C457A435FB8BB4922BD92C5F3D9555D978275C510183E29DFF2FCE4ABBFC18DE\n-76CAD3B486BA12047DD808CD4D521A0FD368E4AE79DE262630983A5D6F0B679D\n-2F005306393C520E1B6987302D029939D94B0178DC55D5264E1FEA468AD4134C\n-8C65B2FBBE8DE8284E8E1F6BFE0B648F44D3DA8E9350D266EDBFD4A7054D9355\n-1E0B185DED37BCF32D3731358F1D707C94109428BAD3CEA456A2A43553E3D2C2\n-F549189201F3D3F715310E3E8C6A2E9AA5141AA9125D203694C7D875C2DD320F\n-C5BCDFC924F6C04DBC7A97349B45ECD0FBD7D2123ED1D3A9F440B1112BE62779\n-47A4592F9285CBD9635EC9091CEC0AFD7E6B6976974081DB9C0E43165BD8584D\n-6CDF08DED287F0883A9FBD351B3F8706BA1E94C7CA487338269482EB8DC1A05D\n-F6632A5D834DE29228C49C5BA65EF7C535A53B380BF4B391F43562147538EE97\n-E799DFC2C40315859F56BBCE9CAE1DF9293F6E2C193ABE7A724EC8F32FA220E7\n-6026877A63E318254F2AF7B1325D63FC4C52B536D3EF354814C2F8F1EEA30569\n-6EF04447DB0F809DF35B4985B9FB4F4BB6087310BE633E76F268B32ABA99CE8E\n-03163DFF4AEDB88E60DD0848C15E90026D7C24D81122EBC07113F9851914A9D5\n-D0E09C2BFDDAF10C5D8208E8329BC0C402F231CD84C95EFDD182AD9756662110\n-274650C7A5BB0D8EFA54EC6C5A49C0EB26701A54779AE8EFBBED824262761602\n-680EDFB38F0FE18C0F501F5AA8BF48A8F0DD3E5E1EBEB872F6F6B23964707B32\n-507FC677B9FDDC990E3828B06420F6F968B2F6AE81E76A2144B1ECE905485616\n-CFB29AC96DDE1F5039935D7E385CC13E34DD7EAF276A2EA3A8BF27FD4205AE13\n-7FE620E42F2CF231C6C8DD8EFC5A6CF081E5660D9ADD730D72D15C02B1E15FF3\n-D741D3B1EB1E666C4E562219033C1E2EF3F96E136998B2E1890395A3637A2C02\n-DE1C46AFCA8D898439F06606A2295D3F7ED6C7DB250C61B6B97A0D5EDDB9657E\n-E790B4E07540BB1026036F4A0D00E7F16FD757AD61D686620C6814B7DCEC43E8\n-FD36D9E75BA554F64548A67D9B0A26E11784E58D4357FC251D71B5D6D8BFDDE0\n-D3BF0E825DA5312C1904AF13C5905C2ADF79C357476183D2EC5A95243235E861\n-2F98D9EE77EF8F8CB3EC6BD358C5ED37DD3AF44D60575E7774BF96F1AE9DFAD1\n-F8646DEDF21D10311854726B8F7D25876BB1EF78E2442B16ED4B851816CF0A27\n-11FDFCE525002A1A7C3E62CD2A3EDE6FAADB026D2F3A46C030ADB22422CA8FF5\n-2545ED58C0D9FB5BDB55FE674301E91A75B005B86BD201D246F7ADACE50419FD\n-AC3312CAC5EB78A36F0E5F62E65AC92129CB574AAC59E0A7C1390DFC61F39D9E\n-D7036742F2F6E64D1EF8157E9CCF65F3EEDC6A8220235978B8E06EB80F649F3E\n-204CFB497F49306EA8E1F7B62305978A28F1E771ED82C6592C71022154E4062A\n-A92335EFC65D6DED9C686899FFD7AA2988740618C03C5E362E1AF352E3BE4602\n-5530C51E5FC8E9082DF79199CC91C50174000D337D86127AC807C5A3C81DDE57\n-7A68AEE7230949B925365C214D77C80E87CEE218ABC94023717EA43BA5D8A7C8\n-8A8B9BD1B767996AE33050E3D922ED0574E3579C57E4BDDAD35883806AFDF260\n-3AB5D83D451583262E580FFDB7A27D82396AF18D92B849A3F7A7E621987D5DF0\n-038F876C6E9CA47FB11AF05F0019191C5DDC5F0177AD421E94BC66D0CCB82F1F\n-93A80836284B095503752C600F72E2C89112ABFA5B76152691264103B268B3E5\n-8816724ADADB38740001A9AACE05C8AF02D72918606DC22EFC8BF0DA0FD12FFE\n-D3A09F8E28057F327BFB633E604B1EAD478637B1D9631650B314CC62D7E0E87F\n-9D3FE1FFA23BB6E3006C3E39BED52F6B0C1C651B5913878F36DA0BF776889165\n-68BA3456B40B8B471CA8FF5238E43D9113E052A2B8D2EAA2433D3F89FCA48AFB\n-5E842913E4ED6DF9623354059CD1F1707B126FED80349787C869883120183EDD\n-249185A55503FAC53898F52170D05CAC62BB742CF9702C0518AED6B27CDC401C\n-932E02143FD916703F360CB31049501B35EF3EDDFED791090D0CFA221FD1DB32\n-7D4759CE07983AE29C258C705D11E7D9481EEAAB9B6BA65CDCF0AA0057BD6FEA\n-ABBFBD3ABF2A7BFB550C3D2A16DC447384A89F3DB6D9C2DBDCA997ABE35A7706\n-633D328AECEDB5BD07070C1B96267FD73B45791DD18194F60D358091FBE88409\n-973529806F3D2C9E6E39091F90A14B560A987E0B9490B9B690FB489B8E253070\n-D7C54447BE0E0A0BFEAEFFB581DC1300E6EC382984673BF0665632404E59B5BF\n-5D5F0A1C956E618C0487751CA5DAE8A95C214F76ED756694EF273679CD2D85CB\n-949DF385BD50491649EFEFDA1574921D7460143D42A100D2C76E55F0BC\n+1B2FA10DF7E91D3BB34A1B1CE7A0015A57C813E0280D873ADB8844004B9BA1CC\n+580D3C6BDA4DC1B80B4365F1C80512453FC5316EC2D928FB731C3D6403E3C18B\n+E8424D644DF5E9A2134229C5C91CA68DB8E85BA2BB40F538F585DA6FA4037718\n+B8053EBBA1E765346BCD5BDAA6C38115D31611D8A87A2238C145F2DA2F92E4DF\n+3987BD9C4D2A3D460E8941A68B125BCD9EE4F9FD262C4C8A71F47A2C81975635\n+F1B981C274C53FA2ACCDE4C9D0A7C62D6C1EFF91CFC6712CA6A9F333C9564FCB\n+2A70F0AD715A79B10A08AB069E2A3C93BC0AED19D0CA10134B8DDDE8AF548DB2\n+3A4AAA9C29682CF135BB767DAA16169A127EB50A7EECEB6480CF56A7D0F8AC56\n+4A5090B3D75A790372886AF568D94C8165975A05BFBFDF1FFBA45F70700BB9E0\n+57F3249EF9E9C8AD9CBCF6E4FD592DC4CDD2CC7C0BC3130C1059096C657BE453\n+A2CBACE93420210E27AF56CA229BD6D982FB68B3FDC6D44478B922C4231C47EE\n+E500232F6C11D92DEB955F66DF52B92B22E7352790CC2DCBAC53965D57AC2920\n+68B7D520DE25047146EFEB06B9AD4E2A94243C7E5239F0BC2FC312B16051D52C\n+0B92C217B6B42997321AE4F8BB066754B7AA3F15069EF59224E8A442CE471AA7\n+E8049A3DD9EDA09CCEE4998998661CF7DB35E952F6C65DAEB3013951C59F3E09\n+157F313B0237876E1C0190F0473819570B8C0205AADF05D787CC00979CFB327A\n+289382B22DDA6F12804ED0ED5B179E36A995A2A59E1B66E75130DBE9109C813B\n+94403E0DEA8314A1E9DB474D7FA83C0BAFD08033E6A6215844C1D26BE15F1251\n+A1605E8DF9A9C601ED37379530BC1C82BE5463C6C711C5652BFD6262485AA9CA\n+B8C4A117593001D08D980041E2A83C190DCE8E6CD3D334E5CC19FC05DB30F7F7\n+24A305C4DBB31F0651392B99D44B4302333BDF7E326FD256DD75D309C6E73F85\n+FA71B35FD1F9BEFF4C7A1076362EEB0A85492933B6006086A7B8C1928CF2D1EE\n+FD4344409257BB802C117E739960821CD3C88BFBA5669FF16F610AD638AF3677\n+8674C985E6767253ED5769F71BEA5E9BB02A751F9E62EE2B18AC19D975FDEAE9\n+8B8822367FF177A7E850766DE99ED3366D46464612926430012212A90F8E85F4\n+4760B40D5B86B90819EE410382D22D8ED82D0B0AB00C93E10CD365F8766D1C87\n+B4A866021FB6F6AC3D250CC601989B1B8FE6B1098A48282D2CF258BF38FEE940\n+CE0141FB1344156DE7712A8F2DBF700174F12616EE17C852210D96D03E5E6635\n+D439EB6E84A383DDD32AD72DADE6F931FDBABBDC726C36081C96018FC95EAE13\n+DA1F8DBC2D8355AC9792649653225393F4A7A88F3B9443FEEB75E2C15BF93F09\n+CCBA7FABC022BE26F4C28152D5DA6D690494AD4EC0DA1B598AE12536BADF88B5\n+5E20EB452546389F57FF55459567B453AE1831C57D22FA6A4FDF441EDAFDB7FB\n+4F4B707C1FF9159C40F7B5DD519FC07815EE91B8D756B6C18500BCF47D0D9E45\n+6A2D51B6AA5AEAAC9AB2DEF7F0FDE957B6C179CBADEECAC7E9CEC248AB135EB4\n+FBF83D002FF859B574EF36C371540EF2BCFCEF5C2E7863AEDD7C3C965103453B\n+023A9CEC1D5C45B88827ADF4AE0C6746F3C7E6A944427DAEC493601019583A16\n+0F846CE00EAE89EEFF9CE68A0E1D6EBB8FDD8A45D1BF399B36A8328EC957CB8B\n+D842A56269C8C9A6B472C9E65BCBC090606B4E8A7EF4ABDEA120C9F9B3969A1C\n+2EB102925F4E155160E58000E1ADB0D19E10EFD96F6C3225EEE8FC24D122C069\n+C11F1A69DC383F7DACD2F3929BD135CE69787C6E7560AC4B683FE5D9AAFD2E89\n+EE6D95E38C9B726B416E28169A11E29559DBA9AECD714CF318FCB78F34A0E562\n+9C00FE0C6D5A848557D9A82EC2BEFCD30B5EDC0B23C5BA9F812C864394C8B9D1\n+B08BAC9CF94E70FF842306ACCFE6E39A56777C712904A3AB29FBD19275E19E06\n+B35B37CFFFCEC81CAF2D85A853663FAFCFFED1EA77064AA28C15BC94910683BC\n+D09513079DE9EE18E97CC2403DD206516D7F652A3459870757F34EEDCEF952C3\n+FE8004F4716B5BD6774E455010B0BB1E61FCD66B9F14F9BBCCF3E55A158EE96E\n+9A05BDFDDC7706D4BC28FDDC4004EF3A430C607EBDF115E0C996454D70C8BB42\n+D7C83A454B116663D648C23CE2B33365810DE2B64D4AE011BC8043BC3E05B94D\n+1700F859C6AFC6515C1C42FA104EE3E8F3FA5F80252C2E79B00ED27F675FFD09\n+B50BF7A3C63CF4856F909DF969D7DD3EA05CABDD1E71A58CFC2AB5F614B4E5E0\n+25CF92E9FB66ACEBE05DF5E033DA8AD3EE32D94C02D98DD7DA99FAB5AEA595C3\n+2987DC122F0242D76B782349E4069DE0CDD6EF4375C680CBFE4C8F24F2AE89BF\n+7785F5EA7435A91500F265022C307E8ADEAAE1C6\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n@@ -4738,16 +4725,16 @@\n @start /Fa 173[50 8[29 3[49 69[{}3 58.1154 /CMMI7 rf\n /Fb 133[50 59 3[62 44 44 46 1[62 56 62 93 31 2[31 62\n 56 1[51 62 50 1[54 11[86 5[84 1[106 3[42 1[88 2[86 1[80\n 11[56 56 56 56 56 56 2[31 37 45[{}33 99.6264 /CMBX12\n rf /Fc 175[62 8[62 4[62 66[{}3 119.552 /CMTT12 rf /Fd\n 134[71 2[71 75 52 53 55 1[75 67 75 112 2[41 37 75 67\n 41 61 75 60 75 65 13[75 2[92 11[103 16[67 67 67 2[37\n-46[{}27 119.552 /CMBX12 rf /Fe 138[46 32 33 11[42 37[62\n-6[23 4[42 1[42 42 1[42 3[23 44[{}11 83.022 /CMSL10 rf\n+46[{}27 119.552 /CMBX12 rf /Fe 134[44 3[46 8[23 33[43\n+15[23 5[42 1[42 42 42 3[23 44[{}10 83.022 /CMSL10 rf\n /Ff 156[83 46 35[74 1[74 1[74 1[74 56[{}6 83.022 /CMEX10\n rf /Fg 192[45 63[{}1 83.022 /CMBX10 rf\n %DVIPSBitmapFont: Fh tcrm1000 10 1\n [/Grave/Acute/Circumflex/Tilde/Dieresis/Hungarumlaut/Ring/Caron/Breve/Macron\n /Dotaccent/cedilla/ogonek/quotesinglbase.ts1 4{/.notdef}repeat\n /quotedblbase.ts1/.notdef/.notdef/twelveudash/threequartersemdash\n /afii61664.cap/arrowleft/arrowright/tieaccentlowercase/tieaccentcapital\n@@ -4896,17 +4883,17 @@\n y(Finding)27 b(the)g(Dulmage-Mendelsohn)g(decomp)r(osition)f(of)h(a)g\n (bipartite)g(graph)f(is)h(a)f(little)i(less)f(clear)f(cut.)37\n b(When)28 b(the)0 5215 y(v)n(ertices)e(in)i(the)g(bipartite)g(graph)e\n (ha)n(v)n(e)h(unit)h(w)n(eigh)n(t,)f(the)h(pro)r(cess)e(is)i(straigh)n\n (tforw)n(ard.)125 5407 y Fh(\\210)42 b Fm(Find)28 b(a)f(maxim)n(um)g\n (matc)n(hing.)1929 5656 y(1)p eop end\n %%Page: 2 2\n-TeXDict begin 2 1 bop 0 100 a Fm(2)p 125 100 1264 4 v\n-1429 w Fl(BPG)26 b Fe(:)i Fk(DRAFT)f Fe(August)h(3,)f(2025)p\n-2636 100 V 125 390 a Fh(\\210)42 b Fm(Drop)27 b(an)g(alternating)g(lev)n\n+TeXDict begin 2 1 bop 0 100 a Fm(2)p 125 100 1317 4 v\n+1482 w Fl(BPG)26 b Fe(:)i Fk(DRAFT)f Fe(July)g(1,)h(2024)p\n+2584 100 V 125 390 a Fh(\\210)42 b Fm(Drop)27 b(an)g(alternating)g(lev)n\n (el)g(structure)g(from)g(exp)r(osed)g(no)r(des)h(in)f\n Fj(X)7 b Fm(.)125 564 y Fh(\\210)42 b Fm(Drop)27 b(an)g(alternating)g\n (lev)n(el)g(structure)g(from)g(exp)r(osed)g(no)r(des)h(in)f\n Fj(Y)19 b Fm(.)125 738 y Fh(\\210)42 b Fm(Based)24 b(on)h(the)g(t)n(w)n\n (o)g(previous)f(steps,)h(partition)g Fj(X)32 b Fm(in)n(to)25\n b(three)g(pieces)g(and)g Fj(Y)44 b Fm(in)n(to)24 b(three)h(pieces)g\n (and)g(form)g(a)g(new)208 838 y(separator)g(from)i(the)h(pieces.)0\n@@ -5026,17 +5013,17 @@\n b(The)28 b(dra)n(wbac)n(k)e(is)i(that)h(the)f(net)n(w)n(ork)f(induced)0\n 5407 y(b)n(y)e Fj(S)17 b Fi([)c Fm(\\()p Fj(Ad)-9 b(j)5\n b Fm(\\()p Fj(S)g Fm(\\))13 b Fi(\\\\)g Fj(B)t Fm(\\))27 b(need)e(not)g(b)r\n (e)g(bipartite.)36 b(In)25 b(other)f(w)n(ords,)g(a)h(bipartite)g\n (induced)g(graph)f(necessarily)f(implies)i(t)n(w)n(o)p\n eop end\n %%Page: 3 3\n-TeXDict begin 3 2 bop 83 100 1264 4 v 1430 100 a Fl(BPG)26\n-b Fe(:)i Fk(DRAFT)110 b Fe(August)28 b(3,)f(2025)p 2597\n-100 V 1264 w Fm(3)0 390 y(la)n(y)n(ers)e(to)i(the)g(wide)g(separator,)e\n+TeXDict begin 3 2 bop 83 100 1317 4 v 1482 100 a Fl(BPG)27\n+b Fe(:)g Fk(DRAFT)111 b Fe(July)27 b(1,)g(2024)p 2544\n+100 V 1317 w Fm(3)0 390 y(la)n(y)n(ers)e(to)i(the)g(wide)g(separator,)e\n (but)j(the)f(con)n(v)n(erse)e(do)r(es)h(not)h(hold.)37\n b(W)-7 b(e)27 b(w)n(ere)f(then)i(free)e(to)h(examine)g(wide)g\n (separators)0 490 y(that)f(had)f(more)g(than)g(t)n(w)n(o)g(la)n(y)n\n (ers)e(from)i(whic)n(h)g(to)h(\\014nd)g(a)f(minimal)g(w)n(eigh)n(t)g\n (separator.)34 b(It)26 b(turns)f(out)g(that)h(three)f(la)n(y)n(ers)0\n 589 y(is)i(b)r(etter)h(than)g(t)n(w)n(o,)f(in)h(practice.)125\n 720 y(W)-7 b(e)34 b(did)g(write)f(a)g(separate)f(ob)5\n@@ -5097,17 +5084,17 @@\n 5162 V 30 w(clearData\\(\\))c Fm(then)23 b(free's)f(the)h(storage)d(for)i\n (the)h(structure)208 5262 y(with)28 b(a)f(call)g(to)h\n Fl(free\\(\\))p Fm(.)208 5407 y Fk(Err)l(or)i(che)l(cking:)38\n b Fm(If)28 b Fl(bpg)f Fm(is)g Fl(NULL)p Fm(,)f(an)i(error)d(message)i\n (is)g(prin)n(ted)h(and)f(the)h(program)e(exits.)p eop\n end\n %%Page: 4 4\n-TeXDict begin 4 3 bop 0 100 a Fm(4)p 125 100 1264 4 v\n-1429 w Fl(BPG)26 b Fe(:)i Fk(DRAFT)f Fe(August)h(3,)f(2025)p\n-2636 100 V 0 390 a Fb(1.2.2)112 b(Initializer)38 b(metho)s(ds)0\n+TeXDict begin 4 3 bop 0 100 a Fm(4)p 125 100 1317 4 v\n+1482 w Fl(BPG)26 b Fe(:)i Fk(DRAFT)f Fe(July)g(1,)h(2024)p\n+2584 100 V 0 390 a Fb(1.2.2)112 b(Initializer)38 b(metho)s(ds)0\n 562 y Fm(There)27 b(are)g(t)n(w)n(o)f(initializer)i(metho)r(ds.)101\n 731 y(1.)42 b Fl(void)f(BPG_init)g(\\()i(BPG)f(*bpg,)g(int)g(nX,)g(int)h\n (nY,)f(Graph)g(*graph)f(\\))i(;)208 858 y Fm(This)23 b(metho)r(d)i\n (initializes)e(the)h Fl(BPG)f Fm(ob)5 b(ject)23 b(when)h(all)g(three)f\n (of)h(its)g(\\014elds)g(are)f(giv)n(en)g(in)h(the)g(calling)f(sequence.)\n 35 b(The)208 958 y Fl(Graph)22 b Fm(ob)5 b(ject)25 b(has)f\n Fl(nX)42 b(+)i(nY)23 b Fm(v)n(ertices.)35 b(Note,)26\n@@ -5191,17 +5178,17 @@\n Fk(Err)l(or)i(che)l(cking:)39 b Fm(If)27 b Fl(bpg)p Fm(,)f\n Fl(list)p Fm(,)g Fl(dist)f Fm(or)i Fl(mark)e Fm(is)i\n Fl(NULL)p Fm(,)f(or)g(if)i Fl(root)d Fm(is)i(not)g(in)g\n Fl([0,)43 b(nX+nY\\))p Fm(,)25 b(an)h(error)g(message)208\n 5407 y(is)h(prin)n(ted)h(and)f(the)h(program)e(exits.)p\n eop end\n %%Page: 5 5\n-TeXDict begin 5 4 bop 83 100 1264 4 v 1430 100 a Fl(BPG)26\n-b Fe(:)i Fk(DRAFT)110 b Fe(August)28 b(3,)f(2025)p 2597\n-100 V 1264 w Fm(5)0 390 y Fb(1.2.5)112 b(Dulmage-Mendelsohn)42\n+TeXDict begin 5 4 bop 83 100 1317 4 v 1482 100 a Fl(BPG)27\n+b Fe(:)g Fk(DRAFT)111 b Fe(July)27 b(1,)g(2024)p 2544\n+100 V 1317 w Fm(5)0 390 y Fb(1.2.5)112 b(Dulmage-Mendelsohn)42\n b(decomp)s(osition)c(metho)s(d)0 563 y Fm(There)32 b(is)h(one)f(metho)r\n (d)h(to)f(\\014nd)h(the)g(Dulmage-Mendelsohn)f(decomp)r(osition)g(that)h\n (uses)f(matc)n(hing)g(when)h(the)g(graph)0 662 y(is)41\n b(unit)g(w)n(eigh)n(t)f(and)g(a)h(generalized)e(matc)n(hing)h(tec)n\n (hnique)h(otherwise.)75 b(There)40 b(is)h(a)f(second)g(metho)r(d)h(to)g\n (\\014nd)g(the)0 762 y(decomp)r(osition)30 b(using)g(a)h(F)-7\n b(ord-F)g(ulk)n(erson)28 b(algorithm)i(to)g(\\014nd)h(a)f(max)h(\\015o)n\n@@ -5296,17 +5283,17 @@\n 208 5280 y(v)-5 b(alue)27 b Fl(1)g Fm(is)h(returned.)36\n b(If)28 b(an)g(IO)f(error)e(is)j(encoun)n(tered)f(from)g\n Fl(fscanf)p Fm(,)e(zero)i(is)g(returned.)208 5407 y Fk(Err)l(or)j(che)l\n (cking:)38 b Fm(If)28 b Fl(bpg)f Fm(or)g Fl(fp)f Fm(is)i\n Fl(NULL)e Fm(an)h(error)f(message)g(is)i(prin)n(ted)f(and)g(zero)g(is)g\n (returned.)p eop end\n %%Page: 6 6\n-TeXDict begin 6 5 bop 0 100 a Fm(6)p 125 100 1264 4 v\n-1429 w Fl(BPG)26 b Fe(:)i Fk(DRAFT)f Fe(August)h(3,)f(2025)p\n-2636 100 V 101 390 a Fm(3.)42 b Fl(int)g(BPG_readFromBina)o(ry)o(Fil)o\n+TeXDict begin 6 5 bop 0 100 a Fm(6)p 125 100 1317 4 v\n+1482 w Fl(BPG)26 b Fe(:)i Fk(DRAFT)f Fe(July)g(1,)h(2024)p\n+2584 100 V 101 390 a Fm(3.)42 b Fl(int)g(BPG_readFromBina)o(ry)o(Fil)o\n (e)37 b(\\()44 b(BPG)e(*bpg,)f(FILE)h(*fp)h(\\))g(;)208\n 523 y Fm(This)24 b(metho)r(d)i(reads)e(a)g Fl(BPG)g Fm(ob)5\n b(ject)25 b(from)f(a)h(binary)f(\\014le.)36 b(If)26 b(there)e(are)g(no)h\n (errors)e(in)i(reading)f(the)h(data,)g(the)g(v)-5 b(alue)208\n 623 y Fl(1)27 b Fm(is)g(returned.)37 b(If)28 b(an)f(IO)g(error)f(is)h\n (encoun)n(tered)g(from)g Fl(fread)p Fm(,)f(zero)h(is)g(returned.)208\n 756 y Fk(Err)l(or)j(che)l(cking:)38 b Fm(If)28 b Fl(bpg)f\n@@ -5389,17 +5376,17 @@\n (the)h(input)g(\\014le)f(for)g(the)h Fl(BPG)e Fm(ob)5\n b(ject.)60 b(It)35 b(m)n(ust)h(b)r(e)f(of)h(the)f(form)g\n Fl(*.bpgf)e Fm(or)390 5407 y Fl(*.bpgb)p Fm(.)i(The)27\n b Fl(BPG)g Fm(ob)5 b(ject)27 b(is)h(read)e(from)i(the)g(\\014le)f(via)g\n (the)h Fl(BPG)p 2449 5407 V 31 w(readFromFile\\(\\))21\n b Fm(metho)r(d.)p eop end\n %%Page: 7 7\n-TeXDict begin 7 6 bop 83 100 1264 4 v 1430 100 a Fl(BPG)26\n-b Fe(:)i Fk(DRAFT)110 b Fe(August)28 b(3,)f(2025)p 2597\n-100 V 1264 w Fm(7)307 390 y Fh(\\210)42 b Fm(The)33 b\n+TeXDict begin 7 6 bop 83 100 1317 4 v 1482 100 a Fl(BPG)27\n+b Fe(:)g Fk(DRAFT)111 b Fe(July)27 b(1,)g(2024)p 2544\n+100 V 1317 w Fm(7)307 390 y Fh(\\210)42 b Fm(The)33 b\n Fl(outFile)d Fm(parameter)i(is)g(the)i(output)f(\\014le)g(for)g(the)g\n Fl(BPG)f Fm(ob)5 b(ject.)52 b(If)33 b Fl(outFile)d Fm(is)j\n Fl(none)f Fm(then)h(the)g Fl(BPG)390 490 y Fm(ob)5 b(ject)30\n b(is)f(not)h(written)f(to)h(a)f(\\014le.)43 b(Otherwise,)30\n b(the)g Fl(BPG)p 2219 490 27 4 v 30 w(writeToFile\\(\\))24\n b Fm(metho)r(d)30 b(is)g(called)f(to)g(write)h(the)390\n 589 y(graph)c(to)g(a)h(formatted)f(\\014le)h(\\(if)g Fl(outFile)d\n", "details": [{"source1": "ps2ascii {}", "source2": "ps2ascii {}", "unified_diff": "@@ -29,15 +29,15 @@\n code for the process outweighed (outline\u2019d?) the BPG code for the data. Now if someone wants to modify\r\n (and hopefully improve) the Kernighan-Lin process, they won\u2019t alter the behavior of the bipartite graph\r\n object.\r\n Finding the Dulmage-Mendelsohn decomposition of a bipartite graph is a little less clear cut. When the\r\n vertices in the bipartite graph have unit weight, the process is straightforward.\r\n \u2022 Find a maximum matching.\r\n 1\r\n- 2 BPG : DRAFT August 3, 2025\r\n+ 2 BPG : DRAFT July 1, 2024\r\n \u2022 Drop an alternating level structure from exposed nodes in X.\r\n \u2022 Drop an alternating level structure from exposed nodes in Y .\r\n \u2022 Based on the two previous steps, partition X into three pieces and Y into three pieces and form a new\r\n separator from the pieces.\r\n (If these terms are not familiar, see [?]; our present purpose is a discussion of software design, not algorithms.)\r\n Amatching is a very common operation on a bipartite graph, so it is not unreasonable to expand the data\r\n object to include some mechanism for matching, e.g., a mate[] vector. Finding a maximum matching is\r\n@@ -78,15 +78,15 @@\n b\r\n separator size. But, if we consider S \u222a (Adj(S) \u2229 B) to be a wide separator, the resulting separator S need\r\n not be a separator with minimal weight that is found within the wide separator. The trick is that some\r\n nodes in Adj(S)\u2229B might be absorbed into W.\r\n Onecan\ufb01ndaseparatorwith minimal weight from the wide separator S\u222a(Adj(S)\u2229B), in fact from any\r\n wide separator that contains S, by solving a max \ufb02ow problem. The drawback is that the network induced\r\n by S\u222a(Adj(S)\u2229B) need not be bipartite. In other words, a bipartite induced graph necessarily implies two\r\n- BPG : DRAFT August 3, 2025 3\r\n+ BPG : DRAFT July 1, 2024 3\r\n layers to the wide separator, but the converse does not hold. We were then free to examine wide separators\r\n that had more than two layers from which to \ufb01nd a minimal weight separator. It turns out that three layers\r\n is better than two, in practice.\r\n We did write a separate object to solve our max \ufb02ow problem; see the Network object. To smooth a\r\n separator, i.e., to improve a 2-set partition, we no longer have need of the bipartite graph object. We leave\r\n the two Dulmage-Mendelsohn methods in the BPG object for historical and sentimental reasons.\r\n 1.1 Data Structure\r\n@@ -110,15 +110,15 @@\n This method releases the storage for graph via a call to Graph clearData(), and then the structure\u2019s\r\n \ufb01elds are then set to their default values with a call to BPG setDefaultFields().\r\n Error checking: If bpg is NULL, an error message is printed and the program exits.\r\n 4. void BPG_free ( BPG *bpg ) ;\r\n This method releases any storage by a call to BPG clearData()then free\u2019s the storage for the structure\r\n with a call to free().\r\n Error checking: If bpg is NULL, an error message is printed and the program exits.\r\n- 4 BPG : DRAFT August 3, 2025\r\n+ 4 BPG : DRAFT July 1, 2024\r\n 1.2.2 Initializer methods\r\n There are two initializer methods.\r\n 1. void BPG_init ( BPG *bpg, int nX, int nY, Graph *graph ) ;\r\n This method initializes the BPG object when all three of its \ufb01elds are given in the calling sequence. The\r\n Graphobject has nX + nY vertices. Note, the BPG object now \u201cowns\u201d the Graph object and so will free\r\n the Graph object when it is free\u2019d. The Graph object may contains edges between nodes in X and Y,\r\n but these edges are swapped to the end of each adjacency list and the size of each list is then set.\r\n@@ -151,15 +151,15 @@\n int mark[], int tag ) ;\r\n This method drops a level structure from vertex root, \ufb01lls the dist[] vector with the distances from\r\n root, and returns the number of levels created. The mark[] vector is used to mark nodes with the tag\r\n value as they are placed in the level structure. The list[] vector is used to accumulate the nodes as\r\n they are placed in the level structure.\r\n Error checking: If bpg, list, dist or mark is NULL, or if root is not in [0, nX+nY), an error message\r\n is printed and the program exits.\r\n- BPG : DRAFT August 3, 2025 5\r\n+ BPG : DRAFT July 1, 2024 5\r\n 1.2.5 Dulmage-Mendelsohn decomposition method\r\n There is one method to \ufb01nd the Dulmage-Mendelsohn decomposition that uses matching when the graph\r\n is unit weight and a generalized matching technique otherwise. There is a second method to \ufb01nd the\r\n decomposition using a Ford-Fulkerson algorithm to \ufb01nd a max \ufb02ow and a min-cut on a bipartite network.\r\n This has largely been superceded by the Network object.\r\n 1. void BPG_DMdecomposition ( BPG *bpg, int dmflags[], int stats[],\r\n int msglvl, FILE *msgFile )\r\n@@ -204,15 +204,15 @@\n the value returned from the called routine.\r\n Error checking: If bpg or fn is NULL, or if fn is not of the form *.bpgf (for a formatted \ufb01le) or *.bpgb\r\n (for a binary \ufb01le), an error message is printed and the method returns zero.\r\n 2. int BPG_readFromFormattedFile ( BPG *bpg, FILE *fp ) ;\r\n This method reads a BPG object from a formatted \ufb01le. If there are no errors in reading the data, the\r\n value 1 is returned. If an IO error is encountered from fscanf, zero is returned.\r\n Error checking: If bpg or fp is NULL an error message is printed and zero is returned.\r\n- 6 BPG : DRAFT August 3, 2025\r\n+ 6 BPG : DRAFT July 1, 2024\r\n 3. int BPG_readFromBinaryFile ( BPG *bpg, FILE *fp ) ;\r\n This method reads a BPG object from a binary \ufb01le. If there are no errors in reading the data, the value\r\n 1 is returned. If an IO error is encountered from fread, zero is returned.\r\n Error checking: If bpg or fp is NULL an error message is printed and zero is returned.\r\n 4. int BPG_writeToFile ( BPG *bpg, char *fn ) ;\r\n ThismethodwritesaBPGobjecttoa\ufb01le. Themethodtriestoopenthe\ufb01leandifitissuccessful,it then\r\n calls BPG writeFromFormattedFile()or BPG writeFromBinaryFile(),closes the \ufb01le and returns the\r\n@@ -243,15 +243,15 @@\n BPG writeStats() method).\r\n \u2022 The msglvl parameter determines the amount of output \u2014 taking msglvl >= 3 means the BPG\r\n object is written to the message \ufb01le.\r\n \u2022 The msgFile parameter determines the message \ufb01le \u2014 if msgFile is stdout, then the message\r\n \ufb01le is stdout, otherwise a \ufb01le is opened with append status to receive any output data.\r\n \u2022 The inFile parameter is the input \ufb01le for the BPG object. It must be of the form *.bpgf or\r\n *.bpgb. The BPG object is read from the \ufb01le via the BPG readFromFile() method.\r\n- BPG : DRAFT August 3, 2025 7\r\n+ BPG : DRAFT July 1, 2024 7\r\n \u2022 The outFile parameter is the output \ufb01le for the BPG object. If outFile is none then the BPG\r\n object is not written to a \ufb01le. Otherwise, the BPG writeToFile() method is called to write the\r\n graph to a formatted \ufb01le (if outFile is of the form *.bpgf), or a binary \ufb01le (if outFile is of the\r\n form *.bpgb).\r\n 2. extractBPG msglvl msgFile inGraphFile inCompidsIVfile\r\n icomp outMapFile outBPGfile\r\n This driver program reads in a Graph object and an IV object that contains the component ids. (A\r\n"}]}]}, {"source1": "./usr/share/doc/spooles-doc/Chv.ps.gz", "source2": "./usr/share/doc/spooles-doc/Chv.ps.gz", "unified_diff": null, "details": [{"source1": "Chv.ps", "source2": "Chv.ps", "unified_diff": "@@ -11,15 +11,15 @@\n %%EndComments\n %%BeginDefaults\n %%ViewingOrientation: 1 0 0 1\n %%EndDefaults\n %DVIPSWebPage: (www.radicaleye.com)\n %DVIPSCommandLine: dvips main -o Chv.ps\n %DVIPSParameters: dpi=600\n-%DVIPSSource: TeX output 2025.08.03:1317\n+%DVIPSSource: TeX output 2024.07.01:0700\n %%BeginProcSet: tex.pro 0 0\n %!\n /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S\n N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72\n mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0\n 0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{\n landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize\n@@ -2516,23 +2516,22 @@\n /UnderlinePosition -100 def\n /UnderlineThickness 50 def\n end readonly def\n /Encoding 256 array\n 0 1 255 {1 index exch /.notdef put} for\n dup 44 /comma put\n dup 48 /zero put\n+dup 49 /one put\n dup 50 /two put\n-dup 51 /three put\n-dup 53 /five put\n+dup 52 /four put\n dup 58 /colon put\n-dup 65 /A put\n-dup 103 /g put\n-dup 115 /s put\n-dup 116 /t put\n+dup 74 /J put\n+dup 108 /l put\n dup 117 /u put\n+dup 121 /y put\n readonly def\n currentdict end\n currentfile eexec\n D9D66F633B846AB284BCF8B0411B772DE5CE32340DC6F28AF40857E4451976E7\n 5182433CF9F333A38BD841C0D4E68BF9E012EB32A8FFB76B5816306B5EDF7C99\n 8B3A16D9B4BC056662E32C7CD0123DFAEB734C7532E64BBFBF5A60336E646716\n EFB852C877F440D329172C71F1E5D59CE9473C26B8AEF7AD68EF0727B6EC2E0C\n@@ -2713,79 +2712,67 @@\n 7CA1534C4D5B05FC33F83790ECFD7641DF3FB94289E2A1F6E7D29AB1228A867A\n 6E1EF0E9C6F899B491DC18401C2C0A05FFFED46A72C245F7529B8EA55A038082\n 8512307217D2A233C37004085BA3AEE379269F9FA7D0ADB4B19A95CC2AFE686E\n 55D88E47257C1FE6F235FEA295910569FE6DD5995512562359CC821E85A6C7A5\n 79B470A9E340A6985189FF8B6AF914A6B0ECF93F47903221F95DE894A8F05B05\n B7D99CD533EC5F931B18E6B39BECF67FA2D6DD1AEC76772B068BE06335A94C05\n 7A4DDEE77B66101DA855C17AC312600370B34E31F5EC3A01300A8EB60B4C9767\n-1B2FA10DF7E91D3BB34A1B1CE7A0015A57C813E0280D873ADB88440048702D1F\n-77994EE04EC3B4531D6E1888C86A8F0DA6CF1F056F16AB0DD76C862830F89DA4\n-28923B3AA543E0D6E41D3BD283E600BC11F889315EE92C675C109C81065ED1BC\n-82A5583D1B723D50051B0557A367887F5B263014C6E77288B4883C50889473D3\n-3787BAD4BEB88BD1353AFA5B73E61814819537E7FF09F53EF94792BB3DD36ED0\n-002D0E7A6CDAB85A9C17AF5664BCB5A71663B861880F3ECCABC8E7A2FC81A4CC\n-AE7A87503FDC1CE0077BA51ECC7B43B60793FED8E9AAD5BBD03ADD6183DCD26D\n-24A74163611C05562437644EF9B8889FD4F9D311911204FEFD35237486F2D2D0\n-B6783A03BF12EA6D19D6D0F87E4D08515F12F9CBF1961CAA71E0D69FE3C4C4D2\n-7C7FB64ED24F8684C8F00C2BEDEA53EA390CDC0B5BEBD7DD982580B2EA1F1F89\n-CFED5916630DC2BA32BB9180277E1ABC339B3B7DE086717BD93F7FF3681BA5B3\n-FCF671C4B293C2DE4A322F0AA3323A4934444C69F23EF90120B8755482757759\n-C457A435FB8BB4922BD92C5F3D9555D978275C510183E29DFF2FCE4ABBFC18DE\n-76CAD3B486BA12047DD808CD4D521A0FD368E4AE79DE262630983A5D6F0B679D\n-2F005306393C520E1B6987302D029939D94B0178DC55D5264E1FEA468AD4134C\n-8C65B2FBBE8DE8284E8E1F6BFE0B648F44D3DA8E9350D266EDBFD4A7054D9355\n-1E0B185DED37BCF32D3731358F1D707C94109428BAD3CEA456A2A43553E3D2C2\n-F549189201F3D3F715310E3E8C6A2E9AA5141AA9125D203694C7D875C2DD320F\n-C5BCDFC924F6C04DBC7A97349B45ECD0FBD7D2123ED1D3A9F440B1112BE62779\n-47A4592F9285CBD9635EC9091CEC0AFD7E6B6976974081DB9C0E43165BD8584D\n-6CDF08DED287F0883A9FBD351B3F8706BA1E94C7CA487338269482EB8DC1A05D\n-F6632A5D834DE29228C49C5BA65EF7C535A53B380BF4B391F43562147538EE97\n-E799DFC2C40315859F56BBCE9CAE1DF9293F6E2C193ABE7A724EC8F32FA220E7\n-6026877A63E318254F2AF7B1325D63FC4C52B536D3EF354814C2F8F1EEA30569\n-6EF04447DB0F809DF35B4985B9FB4F4BB6087310BE633E76F268B32ABA99CE8E\n-03163DFF4AEDB88E60DD0848C15E90026D7C24D81122EBC07113F9851914A9D5\n-D0E09C2BFDDAF10C5D8208E8329BC0C402F231CD84C95EFDD182AD9756662110\n-274650C7A5BB0D8EFA54EC6C5A49C0EB26701A54779AE8EFBBED824262761602\n-680EDFB38F0FE18C0F501F5AA8BF48A8F0DD3E5E1EBEB872F6F6B23964707B32\n-507FC677B9FDDC990E3828B06420F6F968B2F6AE81E76A2144B1ECE905485616\n-CFB29AC96DDE1F5039935D7E385CC13E34DD7EAF276A2EA3A8BF27FD4205AE13\n-7FE620E42F2CF231C6C8DD8EFC5A6CF081E5660D9ADD730D72D15C02B1E15FF3\n-D741D3B1EB1E666C4E562219033C1E2EF3F96E136998B2E1890395A3637A2C02\n-DE1C46AFCA8D898439F06606A2295D3F7ED6C7DB250C61B6B97A0D5EDDB9657E\n-E790B4E07540BB1026036F4A0D00E7F16FD757AD61D686620C6814B7DCEC43E8\n-FD36D9E75BA554F64548A67D9B0A26E11784E58D4357FC251D71B5D6D8BFDDE0\n-D3BF0E825DA5312C1904AF13C5905C2ADF79C357476183D2EC5A95243235E861\n-2F98D9EE77EF8F8CB3EC6BD358C5ED37DD3AF44D60575E7774BF96F1AE9DFAD1\n-F8646DEDF21D10311854726B8F7D25876BB1EF78E2442B16ED4B851816CF0A27\n-11FDFCE525002A1A7C3E62CD2A3EDE6FAADB026D2F3A46C030ADB22422CA8FF5\n-2545ED58C0D9FB5BDB55FE674301E91A75B005B86BD201D246F7ADACE50419FD\n-AC3312CAC5EB78A36F0E5F62E65AC92129CB574AAC59E0A7C1390DFC61F39D9E\n-D7036742F2F6E64D1EF8157E9CCF65F3EEDC6A8220235978B8E06EB80F649F3E\n-204CFB497F49306EA8E1F7B62305978A28F1E771ED82C6592C71022154E4062A\n-A92335EFC65D6DED9C686899FFD7AA2988740618C03C5E362E1AF352E3BE4602\n-5530C51E5FC8E9082DF79199CC91C50174000D337D86127AC807C5A3C81DDE57\n-7A68AEE7230949B925365C214D77C80E87CEE218ABC94023717EA43BA5D8A7C8\n-8A8B9BD1B767996AE33050E3D922ED0574E3579C57E4BDDAD35883806AFDF260\n-3AB5D83D451583262E580FFDB7A27D82396AF18D92B849A3F7A7E621987D5DF0\n-038F876C6E9CA47FB11AF05F0019191C5DDC5F0177AD421E94BC66D0CCB82F1F\n-93A80836284B095503752C600F72E2C89112ABFA5B76152691264103B268B3E5\n-8816724ADADB38740001A9AACE05C8AF02D72918606DC22EFC8BF0DA0FD12FFE\n-D3A09F8E28057F327BFB633E604B1EAD478637B1D9631650B314CC62D7E0E87F\n-9D3FE1FFA23BB6E3006C3E39BED52F6B0C1C651B5913878F36DA0BF776889165\n-68BA3456B40B8B471CA8FF5238E43D9113E052A2B8D2EAA2433D3F89FCA48AFB\n-5E842913E4ED6DF9623354059CD1F1707B126FED80349787C869883120183EDD\n-249185A55503FAC53898F52170D05CAC62BB742CF9702C0518AED6B27CDC401C\n-932E02143FD916703F360CB31049501B35EF3EDDFED791090D0CFA221FD1DB32\n-7D4759CE07983AE29C258C705D11E7D9481EEAAB9B6BA65CDCF0AA0057BD6FEA\n-ABBFBD3ABF2A7BFB550C3D2A16DC447384A89F3DB6D9C2DBDCA997ABE35A7706\n-633D328AECEDB5BD07070C1B96267FD73B45791DD18194F60D358091FBE88409\n-973529806F3D2C9E6E39091F90A14B560A987E0B9490B9B690FB489B8E253070\n-D7C54447BE0E0A0BFEAEFFB581DC1300E6EC382984673BF0665632404E59B5BF\n-5D5F0A1C956E618C0487751CA5DAE8A95C214F76ED756694EF273679CD2D85CB\n-949DF385BD50491649EFEFDA1574921D7460143D42A100D2C76E55F0BC\n+1B2FA10DF7E91D3BB34A1B1CE7A0015A57C813E0280D873ADB8844004B9BA1CC\n+580D3C6BDA4DC1B80B4365F1C80512453FC5316EC2D928FB731C3D6403E3C18B\n+E8424D644DF5E9A2134229C5C91CA68DB8E85BA2BB40F538F585DA6FA4037718\n+B8053EBBA1E765346BCD5BDAA6C38115D31611D8A87A2238C145F2DA2F92E4DF\n+3987BD9C4D2A3D460E8941A68B125BCD9EE4F9FD262C4C8A71F47A2C81975635\n+F1B981C274C53FA2ACCDE4C9D0A7C62D6C1EFF91CFC6712CA6A9F333C9564FCB\n+2A70F0AD715A79B10A08AB069E2A3C93BC0AED19D0CA10134B8DDDE8AF548DB2\n+3A4AAA9C29682CF135BB767DAA16169A127EB50A7EECEB6480CF56A7D0F8AC56\n+4A5090B3D75A790372886AF568D94C8165975A05BFBFDF1FFBA45F70700BB9E0\n+57F3249EF9E9C8AD9CBCF6E4FD592DC4CDD2CC7C0BC3130C1059096C657BE453\n+A2CBACE93420210E27AF56CA229BD6D982FB68B3FDC6D44478B922C4231C47EE\n+E500232F6C11D92DEB955F66DF52B92B22E7352790CC2DCBAC53965D57AC2920\n+68B7D520DE25047146EFEB06B9AD4E2A94243C7E5239F0BC2FC312B16051D52C\n+0B92C217B6B42997321AE4F8BB066754B7AA3F15069EF59224E8A442CE471AA7\n+E8049A3DD9EDA09CCEE4998998661CF7DB35E952F6C65DAEB3013951C59F3E09\n+157F313B0237876E1C0190F0473819570B8C0205AADF05D787CC00979CFB327A\n+289382B22DDA6F12804ED0ED5B179E36A995A2A59E1B66E75130DBE9109C813B\n+94403E0DEA8314A1E9DB474D7FA83C0BAFD08033E6A6215844C1D26BE15F1251\n+A1605E8DF9A9C601ED37379530BC1C82BE5463C6C711C5652BFD6262485AA9CA\n+B8C4A117593001D08D980041E2A83C190DCE8E6CD3D334E5CC19FC05DB30F7F7\n+24A305C4DBB31F0651392B99D44B4302333BDF7E326FD256DD75D309C6E73F85\n+FA71B35FD1F9BEFF4C7A1076362EEB0A85492933B6006086A7B8C1928CF2D1EE\n+FD4344409257BB802C117E739960821CD3C88BFBA5669FF16F610AD638AF3677\n+8674C985E6767253ED5769F71BEA5E9BB02A751F9E62EE2B18AC19D975FDEAE9\n+8B8822367FF177A7E850766DE99ED3366D46464612926430012212A90F8E85F4\n+4760B40D5B86B90819EE410382D22D8ED82D0B0AB00C93E10CD365F8766D1C87\n+B4A866021FB6F6AC3D250CC601989B1B8FE6B1098A48282D2CF258BF38FEE940\n+CE0141FB1344156DE7712A8F2DBF700174F12616EE17C852210D96D03E5E6635\n+D439EB6E84A383DDD32AD72DADE6F931FDBABBDC726C36081C96018FC95EAE13\n+DA1F8DBC2D8355AC9792649653225393F4A7A88F3B9443FEEB75E2C15BF93F09\n+CCBA7FABC022BE26F4C28152D5DA6D690494AD4EC0DA1B598AE12536BADF88B5\n+5E20EB452546389F57FF55459567B453AE1831C57D22FA6A4FDF441EDAFDB7FB\n+4F4B707C1FF9159C40F7B5DD519FC07815EE91B8D756B6C18500BCF47D0D9E45\n+6A2D51B6AA5AEAAC9AB2DEF7F0FDE957B6C179CBADEECAC7E9CEC248AB135EB4\n+FBF83D002FF859B574EF36C371540EF2BCFCEF5C2E7863AEDD7C3C965103453B\n+023A9CEC1D5C45B88827ADF4AE0C6746F3C7E6A944427DAEC493601019583A16\n+0F846CE00EAE89EEFF9CE68A0E1D6EBB8FDD8A45D1BF399B36A8328EC957CB8B\n+D842A56269C8C9A6B472C9E65BCBC090606B4E8A7EF4ABDEA120C9F9B3969A1C\n+2EB102925F4E155160E58000E1ADB0D19E10EFD96F6C3225EEE8FC24D122C069\n+C11F1A69DC383F7DACD2F3929BD135CE69787C6E7560AC4B683FE5D9AAFD2E89\n+EE6D95E38C9B726B416E28169A11E29559DBA9AECD714CF318FCB78F34A0E562\n+9C00FE0C6D5A848557D9A82EC2BEFCD30B5EDC0B23C5BA9F812C864394C8B9D1\n+B08BAC9CF94E70FF842306ACCFE6E39A56777C712904A3AB29FBD19275E19E06\n+B35B37CFFFCEC81CAF2D85A853663FAFCFFED1EA77064AA28C15BC94910683BC\n+D09513079DE9EE18E97CC2403DD206516D7F652A3459870757F34EEDCEF952C3\n+FE8004F4716B5BD6774E455010B0BB1E61FCD66B9F14F9BBCCF3E55A158EE96E\n+9A05BDFDDC7706D4BC28FDDC4004EF3A430C607EBDF115E0C996454D70C8BB42\n+D7C83A454B116663D648C23CE2B33365810DE2B64D4AE011BC8043BC3E05B94D\n+1700F859C6AFC6515C1C42FA104EE3E8F3FA5F80252C2E79B00ED27F675FFD09\n+B50BF7A3C63CF4856F909DF969D7DD3EA05CABDD1E71A58CFC2AB5F614B4E5E0\n+25CF92E9FB66ACEBE05DF5E033DA8AD3EE32D94C02D98DD7DA99FAB5AEA595C3\n+2987DC122F0242D76B782349E4069DE0CDD6EF4375C680CBFE4C8F24F2AE89BF\n+7785F5EA7435A91500F265022C307E8ADEAAE1C6\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n@@ -5374,16 +5361,16 @@\n /Fe load 0 Fe currentfont 91.25 scalefont put/FMat X/FBB\n X/IEn X\n %EndDVIPSBitmapFont\n /Ff 134[71 2[71 75 52 53 55 1[75 67 75 112 3[37 75 67\n 41 61 75 60 1[65 13[75 2[92 11[103 16[67 67 67 2[37 46[{}25\n 119.552 /CMBX12 rf /Fg 132[52 8[43 1[58 52 58 10[46 99[{}6\n 90.9091 /CMBX10 rf /Fh 149[25 2[45 45 60[91 19[71 71\n-17[71 1[71{}8 90.9091 /CMSY10 rf /Fi 138[51 35 36 11[45\n-37[68 6[25 4[45 1[45 45 1[45 3[25 44[{}11 90.9091 /CMSL10\n+17[71 1[71{}8 90.9091 /CMSY10 rf /Fi 134[48 3[51 8[25\n+33[47 15[25 5[45 1[45 45 45 3[25 44[{}10 90.9091 /CMSL10\n rf /Fj 138[56 1[42 55 1[51 2[68 47 58 4[49 51 1[54 1[56\n 97[{}11 90.9091 /CMCSC10 rf /Fk 163[47 77[35 14[{}2 66.4176\n /CMSY8 rf /Fl 134[44 42 2[49 30 37 38 42 46 46 51 74\n 23 42 1[28 46 42 28 42 46 42 42 46 12[65 1[66 11[59 62\n 69 2[68 6[28 44[53 1[56 11[{}31 90.9091 /CMTI10 rf /Fm\n 133[48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48\n 48 48 48 48 48 48 48 48 48 1[48 1[48 1[48 48 48 48 48\n@@ -5511,17 +5498,17 @@\n (\\(e.g.,)i Fj(umfp)-6 b(a)n(ck)34 b Fn(and)j Fj(superlu)p\n Fn(\\),)f(then)h(w)m(e)g(can)g(mo)s(dify)0 5272 y(the)31\n b Fm(Chv)e Fn(ob)5 b(ject)31 b(to)g(handle)f(unequal)g(ro)m(ws)h(and)e\n (columns.)141 5407 y(During)h(a)h(factorization,)i(a)e(fron)m(t)f(has)h\n (to)g(tak)m(e)h(part)e(in)g(four)g(distinct)g(op)s(erations.)1927\n 5656 y(1)p eop end\n %%Page: 2 2\n-TeXDict begin 2 1 bop 0 100 a Fn(2)p 136 100 1194 4 v\n-1376 w Fm(Chv)29 b Fi(:)41 b Fl(DRAFT)30 b Fi(August)g(3,)h(2025)p\n-2707 100 V 111 399 a Fn(1.)46 b(Assem)m(ble)39 b(en)m(tries)g(from)f\n+TeXDict begin 2 1 bop 0 100 a Fn(2)p 136 100 1251 4 v\n+1433 w Fm(Chv)30 b Fi(:)40 b Fl(DRAFT)31 b Fi(July)e(1,)i(2024)p\n+2649 100 V 111 399 a Fn(1.)46 b(Assem)m(ble)39 b(en)m(tries)g(from)f\n (the)h(original)g(matrix)g(\\(or)g(matrix)f(p)s(encil\\).)65\n b(\\(See)39 b(the)g Fm(Chv)p 3300 399 29 4 v 33 w(addChevron\\(\\))227\n 511 y Fn(metho)s(d.\\))111 698 y(2.)46 b(Accum)m(ulate)32\n b(up)s(dates)e(from)g(descendan)m(t)g(fron)m(ts.)41 b(\\(See)31\n b(the)f Fm(Chv)p 2548 698 V 34 w(update)p Fh(f)p Fm(S,H,N)p\n Fh(g)p Fm(\\(\\))e Fn(metho)s(ds.\\))111 885 y(3.)46 b(Assem)m(ble)21\n b(an)m(y)g(p)s(ostp)s(oned)e(data)i(from)e(its)i(c)m(hildren)f(fron)m\n@@ -5704,17 +5691,17 @@\n b(is)f(inheren)m(tly)g(a)h(serial,)g(single)g(threaded)e(ob)5\n b(ject,)34 b(meaning)e(it)g(is)g(designed)g(so)g(that)h(only)0\n 5407 y(one)h(thread)g(or)f(pro)s(cess)h(\\\\o)m(wns\")g(or)g(op)s(erates)g\n (on)g(a)g(particular)g Fm(Chv)f Fn(ob)5 b(ject.)51 b(A)34\n b Fm(Chv)f Fn(ob)5 b(ject)35 b(is)e(an)h(\\\\atom\")p eop\n end\n %%Page: 3 3\n-TeXDict begin 3 2 bop 91 100 1194 4 v 1375 100 a Fm(Chv)30\n-b Fi(:)40 b Fl(DRAFT)121 b Fi(August)30 b(3,)h(2025)p\n-2659 100 V 1194 w Fn(3)0 399 y(of)38 b(comm)m(unication.)63\n+TeXDict begin 3 2 bop 91 100 1251 4 v 1433 100 a Fm(Chv)29\n+b Fi(:)41 b Fl(DRAFT)121 b Fi(July)30 b(1,)h(2024)p 2602\n+100 V 1251 w Fn(3)0 399 y(of)38 b(comm)m(unication.)63\n b(It)37 b(stores)h(p)s(ostp)s(oned)e(ro)m(ws)h(and)g(columns)g(to)h(b)s\n (e)f(assem)m(bled)h(in)f(a)g(paren)m(t)h(fron)m(t.)62\n b(It)0 511 y(migh)m(t)28 b(ha)m(v)m(e)h(to)f(b)s(e)f(written)g(to)h\n (and)f(read)g(from)g(a)h(\\014le)f(in)h(an)f(out-of-core)i(implemen)m\n (tation.)41 b(In)27 b(a)h(distributed)0 624 y(en)m(vironmen)m(t,)34\n b(it)e(is)h(comm)m(unicated)g(b)s(et)m(w)m(een)g(pro)s(cesses.)46\n b(F)-8 b(or)33 b(these)g(reasons,)g(w)m(e)g(designed)f(the)h(ob)5\n@@ -5783,17 +5770,17 @@\n b Fm(int)i(*colind)29 b Fn(:)40 b(p)s(oin)m(ter)31 b(to)g(the)f(base)h\n (address)e(of)i(the)f Fm(int)g Fn(v)m(ector)i(that)f(con)m(tains)g\n (column)g(indices.)137 5407 y Fe(\\210)45 b Fm(double)h(*entries)22\n b Fn(:)37 b(p)s(oin)m(ter)23 b(to)h(the)g(base)g(address)e(of)i(the)g\n Fm(double)d Fn(v)m(ector)k(that)g(con)m(tains)f(the)g(en)m(tries.)p\n eop end\n %%Page: 4 4\n-TeXDict begin 4 3 bop 0 100 a Fn(4)p 136 100 1194 4 v\n-1376 w Fm(Chv)29 b Fi(:)41 b Fl(DRAFT)30 b Fi(August)g(3,)h(2025)p\n-2707 100 V 137 399 a Fe(\\210)45 b Fm(DV)i(wrkDV)29 b\n+TeXDict begin 4 3 bop 0 100 a Fn(4)p 136 100 1251 4 v\n+1433 w Fm(Chv)30 b Fi(:)40 b Fl(DRAFT)31 b Fi(July)e(1,)i(2024)p\n+2649 100 V 137 399 a Fe(\\210)45 b Fm(DV)i(wrkDV)29 b\n Fn(:)i(ob)5 b(ject)31 b(that)g(manages)g(the)g(o)m(wned)f(w)m(orking)h\n (storage.)137 586 y Fe(\\210)45 b Fm(Chv)i(*next)29 b\n Fn(:)41 b(link)30 b(to)h(a)g(next)f(ob)5 b(ject)32 b(in)e(a)h(singly)f\n (link)m(ed)h(list.)141 798 y(One)f(can)h(query)f(the)g(t)m(yp)s(e)h\n (and)e(symmetry)h(of)h(the)f(ob)5 b(ject)32 b(using)e(these)g(simple)h\n (macros.)137 1011 y Fe(\\210)45 b Fm(CHV)p 377 1011 29\n 4 v 34 w(IS)p 507 1011 V 34 w(REAL\\(chv\\))27 b Fn(is)k\n@@ -5853,17 +5840,17 @@\n (call)i(to)f Fm(Chv)p 2235 5144 V 33 w(clearData\\(\\))c\n Fn(and)i(then)h(free)g(the)h(space)f(for)227 5257 y Fm(chv)p\n Fn(.)227 5407 y Fl(Err)-5 b(or)34 b(che)-5 b(cking:)40\n b Fn(If)30 b Fm(chv)g Fn(is)g Fm(NULL)p Fn(,)g(an)g(error)g(message)h\n (is)g(prin)m(ted)f(and)g(the)g(program)g(exits.)p eop\n end\n %%Page: 5 5\n-TeXDict begin 5 4 bop 91 100 1194 4 v 1375 100 a Fm(Chv)30\n-b Fi(:)40 b Fl(DRAFT)121 b Fi(August)30 b(3,)h(2025)p\n-2659 100 V 1194 w Fn(5)0 399 y Fc(1.2.2)112 b(Instance)38\n+TeXDict begin 5 4 bop 91 100 1251 4 v 1433 100 a Fm(Chv)29\n+b Fi(:)41 b Fl(DRAFT)121 b Fi(July)30 b(1,)h(2024)p 2602\n+100 V 1251 w Fn(5)0 399 y Fc(1.2.2)112 b(Instance)38\n b(metho)s(ds)111 595 y Fn(1.)46 b Fm(int)h(Chv_id)f(\\()i(Chv)f(*chv)f\n (\\))i(;)227 746 y Fn(This)30 b(metho)s(d)g(returns)f(the)h\n Fl(id)h Fn(of)g(the)f(ob)5 b(ject.)227 897 y Fl(Err)-5\n b(or)34 b(che)-5 b(cking:)40 b Fn(If)30 b Fm(chv)g Fn(is)g\n Fm(NULL)p Fn(,)g(an)g(error)g(message)h(is)g(prin)m(ted)f(and)g(zero)h\n (is)f(returned.)111 1086 y(2.)46 b Fm(int)h(Chv_type)f(\\()h(Chv)g(*chv)\n g(\\))g(;)227 1236 y Fn(This)30 b(metho)s(d)g(returns)f(the)h\n@@ -5923,17 +5910,17 @@\n Fl(double)k(pr)-5 b(e)g(cision)32 b(c)-5 b(omplex)30\n b Fn(en)m(tries,)g(equal)f(to)g(one)g(half)g(the)f(n)m(um)m(b)s(er)227\n 5256 y(of)j(double)f(precision)g(en)m(tries)h(that)g(are)g(stored.)227\n 5407 y Fl(Err)-5 b(or)34 b(che)-5 b(cking:)40 b Fn(If)30\n b Fm(chv)g Fn(is)g Fm(NULL)p Fn(,)g(an)g(error)g(message)h(is)g(prin)m\n (ted)f(and)g(zero)h(is)f(returned.)p eop end\n %%Page: 6 6\n-TeXDict begin 6 5 bop 0 100 a Fn(6)p 136 100 1194 4 v\n-1376 w Fm(Chv)29 b Fi(:)41 b Fl(DRAFT)30 b Fi(August)g(3,)h(2025)p\n-2707 100 V 111 399 a Fn(8.)46 b Fm(double)g(*)i(Chv_entries)d(\\()i(Chv)\n+TeXDict begin 6 5 bop 0 100 a Fn(6)p 136 100 1251 4 v\n+1433 w Fm(Chv)30 b Fi(:)40 b Fl(DRAFT)31 b Fi(July)e(1,)i(2024)p\n+2649 100 V 111 399 a Fn(8.)46 b Fm(double)g(*)i(Chv_entries)d(\\()i(Chv)\n g(*chv)g(\\))g(;)227 548 y Fn(This)40 b(metho)s(d)h(returns)f(the)h\n Fl(entries)g Fn(\\014eld)g(of)g(the)g(ob)5 b(ject,)45\n b(a)c(p)s(oin)m(ter)g(to)h(the)f(base)g(lo)s(cation)i(of)e(the)227\n 661 y(double)30 b(precision)h(arra)m(y)g(that)g(stores)f(the)h(complex)\n g(data.)227 810 y Fl(Err)-5 b(or)34 b(che)-5 b(cking:)40\n b Fn(If)30 b Fm(chv)g Fn(is)g Fm(NULL)p Fn(,)g(an)g(error)g(message)h\n (is)g(prin)m(ted)f(and)g(zero)h(is)f(returned.)111 995\n@@ -6013,18 +6000,18 @@\n b Fn(+)g Fm(nU)o Fn(.)227 5294 y Fl(Err)-5 b(or)37 b(che)-5\n b(cking:)45 b Fn(If)32 b Fm(chv)p Fn(,)h Fm(pReal)e Fn(or)i\n Fm(pImag)e Fn(is)i Fm(NULL)p Fn(,)f(or)h(if)g Fm(irow)e\n Fn(or)i Fm(jcol)f Fn(is)h(out)g(of)g(range,)h(an)e(error)227\n 5407 y(message)g(is)e(prin)m(ted)g(and)g(the)g(program)h(exits.)p\n eop end\n %%Page: 7 7\n-TeXDict begin 7 6 bop 91 100 1194 4 v 1375 100 a Fm(Chv)30\n-b Fi(:)40 b Fl(DRAFT)121 b Fi(August)30 b(3,)h(2025)p\n-2659 100 V 1194 w Fn(7)66 399 y(15.)46 b Fm(Chv_locationOfComplexEntr)o\n-(y)c(\\()47 b(Chv)g(*chv,)g(int)g(irow,)f(int)h(jcol,)1611\n+TeXDict begin 7 6 bop 91 100 1251 4 v 1433 100 a Fm(Chv)29\n+b Fi(:)41 b Fl(DRAFT)121 b Fi(July)30 b(1,)h(2024)p 2602\n+100 V 1251 w Fn(7)66 399 y(15.)46 b Fm(Chv_locationOfComplexEntr)o(y)c\n+(\\()47 b(Chv)g(*chv,)g(int)g(irow,)f(int)h(jcol,)1611\n 511 y(double)f(**ppReal,)g(double)g(**ppImag)f(\\))j(;)227\n 666 y Fn(This)29 b(metho)s(d)g(\\014lls)h Fm(*ppReal)e\n Fn(with)h(a)h(p)s(oin)m(ter)g(to)h(the)f(real)g(part)g(and)f\n Fm(*ppImag)f Fn(with)h(a)h(p)s(oin)m(ter)g(to)h(the)227\n 779 y(imaginary)37 b(part)g(of)f(the)h(en)m(try)f(in)g(ro)m(w)h\n Fm(irow)e Fn(and)h(column)g Fm(jcol)p Fn(.)58 b(Note,)39\n b Fm(irow)c Fn(and)h Fm(jcol)f Fn(are)i Fl(lo)-5 b(c)g(al)227\n@@ -6096,17 +6083,17 @@\n b(,)33 b(the)f(w)m(orkspace)h(bu\\013er)e(o)m(wned)h(b)m(y)f(the)h\n Fm(Chv)f Fn(ob)5 b(ject)33 b(is)f(sen)m(t)h(and)227 5253\n y(receiv)m(ed.)227 5407 y Fl(Err)-5 b(or)34 b(che)-5\n b(cking:)40 b Fn(If)30 b Fm(chv)g Fn(is)g Fm(NULL)p Fn(,)g(an)g(error)g\n (message)h(is)g(prin)m(ted)f(and)g(zero)h(is)f(returned.)p\n eop end\n %%Page: 8 8\n-TeXDict begin 8 7 bop 0 100 a Fn(8)p 136 100 1194 4 v\n-1376 w Fm(Chv)29 b Fi(:)41 b Fl(DRAFT)30 b Fi(August)g(3,)h(2025)p\n-2707 100 V 0 399 a Fc(1.2.4)112 b(Searc)m(h)38 b(metho)s(ds)111\n+TeXDict begin 8 7 bop 0 100 a Fn(8)p 136 100 1251 4 v\n+1433 w Fm(Chv)30 b Fi(:)40 b Fl(DRAFT)31 b Fi(July)e(1,)i(2024)p\n+2649 100 V 0 399 a Fc(1.2.4)112 b(Searc)m(h)38 b(metho)s(ds)111\n 604 y Fn(1.)46 b Fm(int)h(Chv_maxabsInDiagonal11)42 b(\\()47\n b(Chv)g(*chv,)g(int)g(mark[],)e(int)i(tag,)g(double)f(*pmaxval)g(\\))h\n (;)227 763 y Fn(This)34 b(metho)s(d)g(returns)f(the)i(lo)s(cation)h(of)\n f(the)g(\\014rst)f(tagged)i(elemen)m(t)g(with)e(the)h(largest)h\n (magnitude)e(in)227 876 y(the)i(diagonal)i(of)e(the)g(\\(1,1\\))i(blo)s\n (c)m(k.)58 b(Elemen)m(t)37 b Fm(jj)e Fn(m)m(ust)h(ha)m(v)m(e)h\n Fm(mark[jj])46 b(=)h(tag)36 b Fn(to)g(b)s(e)g(eligible.)59\n@@ -6174,18 +6161,18 @@\n b Fn(If)33 b Fm(chv)g Fn(is)h Fm(NULL)f Fn(or)h Fm(irow)f\n Fn(is)h(not)g(in)g Fm([0,n1-1])p Fn(,)f(an)g(error)h(message)h(is)f\n (prin)m(ted)g(and)227 5089 y(the)d(program)f(exits.)111\n 5294 y(5.)46 b Fm(int)h(Chv_maxabsInColumn)c(\\()k(Chv)g(*chv,)g(int)g\n (jcol,)f(int)h(rowmark[],)1420 5407 y(int)g(tag,)g(double)f(*pmaxval)g\n (\\))h(;)p eop end\n %%Page: 9 9\n-TeXDict begin 9 8 bop 91 100 1194 4 v 1375 100 a Fm(Chv)30\n-b Fi(:)40 b Fl(DRAFT)121 b Fi(August)30 b(3,)h(2025)p\n-2659 100 V 1194 w Fn(9)227 399 y(This)h(metho)s(d)g(returns)g(the)h(lo)\n-s(cation)h(of)f(the)g(\\014rst)f(elemen)m(t)i(with)f(the)g(largest)h\n+TeXDict begin 9 8 bop 91 100 1251 4 v 1433 100 a Fm(Chv)29\n+b Fi(:)41 b Fl(DRAFT)121 b Fi(July)30 b(1,)h(2024)p 2602\n+100 V 1251 w Fn(9)227 399 y(This)h(metho)s(d)g(returns)g(the)h(lo)s\n+(cation)h(of)f(the)g(\\014rst)f(elemen)m(t)i(with)f(the)g(largest)h\n (magnitude)f(in)f(column)227 511 y Fm(jcol)p Fn(.)52\n b(Elemen)m(t)35 b Fm(jj)f Fn(m)m(ust)g(ha)m(v)m(e)i Fm(rowmark[jj])45\n b(=)i(tag)33 b Fn(to)j(b)s(e)d(eligible.)55 b(Its)34\n b(magnitude)h(is)f(returned)227 624 y(in)28 b Fm(*pmaxval)p\n Fn(.)38 b(Note,)30 b(if)e(the)h(c)m(hevron)f(is)g(complex,)i(the)e(lo)s\n (cation)i(is)e(in)g(terms)g(of)h(the)f(complex)h(en)m(tries,)227\n 737 y(not)35 b(in)g(the)g(real)g(en)m(tries,)i(i.e.,)g(if)e\n@@ -6268,17 +6255,17 @@\n (symmetric,)h(w)m(e)f(can)h(\\014nd)d(a)j(1)21 b Fh(\\002)g\n Fn(1)33 b(or)f(2)22 b Fh(\\002)f Fn(2)32 b(piv)m(ot.)47\n b(If)31 b(the)i(c)m(hevron)227 5294 y(is)d(nonsymmetric,)g(w)m(e)h\n (only)f(\\014nd)e(a)i(1)20 b Fh(\\002)f Fn(1)30 b(piv)m(ot.)42\n b(A)30 b(return)e(v)-5 b(alue)31 b(of)f(zero)h(means)e(that)i(no)f(piv)\n m(ot)h(w)m(as)227 5407 y(found.)p eop end\n %%Page: 10 10\n-TeXDict begin 10 9 bop 0 100 a Fn(10)p 182 100 1171 4\n-v 1353 w Fm(Chv)30 b Fi(:)40 b Fl(DRAFT)31 b Fi(August)f(3,)h(2025)p\n-2729 100 V 227 399 a Fl(Err)-5 b(or)47 b(che)-5 b(cking:)67\n+TeXDict begin 10 9 bop 0 100 a Fn(10)p 182 100 1229 4\n+v 1411 w Fm(Chv)29 b Fi(:)41 b Fl(DRAFT)30 b Fi(July)g(1,)h(2024)p\n+2672 100 V 227 399 a Fl(Err)-5 b(or)47 b(che)-5 b(cking:)67\n b Fn(If)43 b Fm(chv)p Fn(,)j Fm(workDV)p Fn(,)d Fm(pirow)p\n Fn(,)j Fm(pjcol)c Fn(or)i Fm(pntest)e Fn(is)h Fm(NULL)p\n Fn(,)g(or)h(if)g Fm(tau)j Fb(<)g Fn(1)p Fb(:)p Fn(0,)h(or)c(if)227\n 511 y Fm(ndelay)24 b Fb(<)h Fn(0,)31 b(an)f(error)g(message)i(is)e\n (prin)m(ted)g(and)g(the)g(program)g(exits.)0 782 y Fc(1.2.6)112\n b(Up)s(date)39 b(metho)s(ds)111 980 y Fn(1.)46 b Fm(void)h(Chv_updateS)\n e(\\()i(Chv)g(*chv,)f(SubMtx)g(*mtxD,)h(SubMtx)f(*mtxU,)g(DV)h(*tempDV)f\n@@ -6375,53 +6362,53 @@\n b Fb(<)h Fn(0,)30 b(then)f(the)h(en)m(try)f(is)g(found)f(in)h(lo)s\n (cation)i Fm(\\(ichv-off,)45 b(ichv\\))28 b Fn(of)h(the)g(matrix.)227\n 5407 y(The)35 b(v)-5 b(alue\\(s\\))37 b(in)e Fm(alpha[])e\n Fn(form)i(a)h(scalar)h(used)d(to)i(scale)h(the)f(en)m(tire)g(c)m\n (hevron)g(for)f(its)h(assem)m(bly)-8 b(.)57 b(A)p eop\n end\n %%Page: 11 11\n-TeXDict begin 11 10 bop 91 100 1171 4 v 1352 100 a Fm(Chv)30\n-b Fi(:)40 b Fl(DRAFT)122 b Fi(August)30 b(3,)h(2025)p\n-2637 100 V 1171 w Fn(11)227 399 y(call)e(to)g(assem)m(ble)g(en)m(tries)\n-g(in)e Fb(A)h Fn(\\(from)g(the)g(p)s(encil)g Fb(A)15 b\n-Fn(+)g Fb(\\033)s(B)5 b Fn(\\))28 b(w)m(ould)f(ha)m(v)m(e)i\n-Fm(alpha[])46 b(=)i(\\(1.0,0.0\\))p Fn(;)26 b(to)227 511\n-y(assem)m(ble)32 b(en)m(tries)f(in)f Fb(B)35 b Fn(\\(from)30\n-b(the)g(p)s(encil)h Fb(A)20 b Fn(+)g Fb(\\033)s(B)5 b\n-Fn(\\))30 b(w)m(ould)g(ha)m(v)m(e)i Fm(alpha[])23 b Fn(=)i(\\()p\n-Fb(R)q(eal)r Fn(\\()p Fb(\\033)s Fn(\\))p Fb(;)15 b(I)7\n-b(mag)s Fn(\\()p Fb(\\033)s Fn(\\)\\).)227 659 y Fl(Err)-5\n-b(or)32 b(che)-5 b(cking:)39 b Fn(If)28 b Fm(chv)p Fn(,)g\n-Fm(chvind)p Fn(,)f Fm(chvent)f Fn(or)j Fm(alpha)d Fn(is)i\n-Fm(NULL)p Fn(,)g(or)g(if)g Fm(ichv)f Fn(or)h Fm(chvsize)e\n-Fn(are)j(less)f(than)227 772 y(zero,)k(an)e(error)g(message)h(is)g\n-(prin)m(ted)f(and)g(the)g(program)g(exits.)111 954 y(2.)46\n-b Fm(void)h(Chv_assembleChv)d(\\()j(Chv)g(*chvJ,)f(Chv)h(*chvI)f(\\))i(;)\n-227 1102 y Fn(This)33 b(metho)s(d)f(is)i(used)e(to)i(assem)m(ble)g(en)m\n-(tries)g(from)f(one)h Fm(Chv)e Fn(ob)5 b(ject)34 b(in)m(to)g(another.)\n-50 b(The)33 b(application)227 1215 y(is)d(during)f(a)i(factorization)i\n-(with)d(piv)m(oting,)h(p)s(ostp)s(oned)e(en)m(tries)i(from)f(the)g(c)m\n-(hildren)g(are)h(stored)f(in)g(the)227 1328 y Fm(chvI)47\n-b(Chv)23 b Fn(ob)5 b(ject)26 b(and)e(need)g(to)h(b)s(e)f(assem)m(bled)h\n-(in)m(to)g(the)g(\\014nal)f(w)m(orking)h(fron)m(t,)h(along)f(with)g(all)\n-g(up)s(dates)227 1441 y(from)34 b(the)g(descenden)m(ts)g(\\(whic)m(h)f\n-(are)i(stored)f(in)f(the)h Fm(chvJ)47 b(Chv)33 b Fn(ob)5\n-b(ject.)52 b(Note,)36 b(the)e(ro)m(w)g(and)f(column)227\n-1554 y(indices)e(of)f Fm(chvI)g Fl(must)j(nest)d Fn(with)g(those)h(of)g\n-Fm(chvJ)p Fn(.)227 1701 y Fl(Err)-5 b(or)35 b(che)-5\n-b(cking:)41 b Fn(If)30 b Fm(chvI)g Fn(or)h Fm(chvJ)e\n-Fn(is)i Fm(NULL)p Fn(,)f(or)h(if)f(their)h Fm(symflag)e\n-Fn(\\014elds)h(are)i(not)f(iden)m(tical,)i(an)d(error)227\n-1814 y(message)i(is)e(prin)m(ted)g(and)g(the)g(program)h(exits.)111\n-1997 y(3.)46 b Fm(int)h(Chv_assemblePostponedData)41\n-b(\\()48 b(Chv)e(*newchv,)g(Chv)h(*oldchv,)e(Chv)i(*firstchild)e(\\))j(;)\n-227 2144 y Fn(This)28 b(metho)s(d)g(is)g(used)f(to)i(assem)m(ble)h(a)e\n-Fm(Chv)g Fn(ob)5 b(ject)29 b(for)f(a)h(fron)m(t)f(\\()p\n-Fm(oldchv)p Fn(\\))f(along)j(with)e(an)m(y)g(p)s(ostp)s(oned)227\n-2257 y(data)34 b(from)f(the)g(c)m(hildren)g(\\(ob)5 b(jects)34\n+TeXDict begin 11 10 bop 91 100 1229 4 v 1410 100 a Fm(Chv)30\n+b Fi(:)40 b Fl(DRAFT)121 b Fi(July)30 b(1,)h(2024)p 2579\n+100 V 1229 w Fn(11)227 399 y(call)e(to)g(assem)m(ble)g(en)m(tries)g(in)\n+e Fb(A)h Fn(\\(from)g(the)g(p)s(encil)g Fb(A)15 b Fn(+)g\n+Fb(\\033)s(B)5 b Fn(\\))28 b(w)m(ould)f(ha)m(v)m(e)i Fm(alpha[])46\n+b(=)i(\\(1.0,0.0\\))p Fn(;)26 b(to)227 511 y(assem)m(ble)32\n+b(en)m(tries)f(in)f Fb(B)35 b Fn(\\(from)30 b(the)g(p)s(encil)h\n+Fb(A)20 b Fn(+)g Fb(\\033)s(B)5 b Fn(\\))30 b(w)m(ould)g(ha)m(v)m(e)i\n+Fm(alpha[])23 b Fn(=)i(\\()p Fb(R)q(eal)r Fn(\\()p Fb(\\033)s\n+Fn(\\))p Fb(;)15 b(I)7 b(mag)s Fn(\\()p Fb(\\033)s Fn(\\)\\).)227\n+659 y Fl(Err)-5 b(or)32 b(che)-5 b(cking:)39 b Fn(If)28\n+b Fm(chv)p Fn(,)g Fm(chvind)p Fn(,)f Fm(chvent)f Fn(or)j\n+Fm(alpha)d Fn(is)i Fm(NULL)p Fn(,)g(or)g(if)g Fm(ichv)f\n+Fn(or)h Fm(chvsize)e Fn(are)j(less)f(than)227 772 y(zero,)k(an)e(error)\n+g(message)h(is)g(prin)m(ted)f(and)g(the)g(program)g(exits.)111\n+954 y(2.)46 b Fm(void)h(Chv_assembleChv)d(\\()j(Chv)g(*chvJ,)f(Chv)h\n+(*chvI)f(\\))i(;)227 1102 y Fn(This)33 b(metho)s(d)f(is)i(used)e(to)i\n+(assem)m(ble)g(en)m(tries)g(from)f(one)h Fm(Chv)e Fn(ob)5\n+b(ject)34 b(in)m(to)g(another.)50 b(The)33 b(application)227\n+1215 y(is)d(during)f(a)i(factorization)i(with)d(piv)m(oting,)h(p)s\n+(ostp)s(oned)e(en)m(tries)i(from)f(the)g(c)m(hildren)g(are)h(stored)f\n+(in)g(the)227 1328 y Fm(chvI)47 b(Chv)23 b Fn(ob)5 b(ject)26\n+b(and)e(need)g(to)h(b)s(e)f(assem)m(bled)h(in)m(to)g(the)g(\\014nal)f(w)\n+m(orking)h(fron)m(t,)h(along)f(with)g(all)g(up)s(dates)227\n+1441 y(from)34 b(the)g(descenden)m(ts)g(\\(whic)m(h)f(are)i(stored)f(in)\n+f(the)h Fm(chvJ)47 b(Chv)33 b Fn(ob)5 b(ject.)52 b(Note,)36\n+b(the)e(ro)m(w)g(and)f(column)227 1554 y(indices)e(of)f\n+Fm(chvI)g Fl(must)j(nest)d Fn(with)g(those)h(of)g Fm(chvJ)p\n+Fn(.)227 1701 y Fl(Err)-5 b(or)35 b(che)-5 b(cking:)41\n+b Fn(If)30 b Fm(chvI)g Fn(or)h Fm(chvJ)e Fn(is)i Fm(NULL)p\n+Fn(,)f(or)h(if)f(their)h Fm(symflag)e Fn(\\014elds)h(are)i(not)f(iden)m\n+(tical,)i(an)d(error)227 1814 y(message)i(is)e(prin)m(ted)g(and)g(the)g\n+(program)h(exits.)111 1997 y(3.)46 b Fm(int)h\n+(Chv_assemblePostponedData)41 b(\\()48 b(Chv)e(*newchv,)g(Chv)h\n+(*oldchv,)e(Chv)i(*firstchild)e(\\))j(;)227 2144 y Fn(This)28\n+b(metho)s(d)g(is)g(used)f(to)i(assem)m(ble)h(a)e Fm(Chv)g\n+Fn(ob)5 b(ject)29 b(for)f(a)h(fron)m(t)f(\\()p Fm(oldchv)p\n+Fn(\\))f(along)j(with)e(an)m(y)g(p)s(ostp)s(oned)227 2257\n+y(data)34 b(from)f(the)g(c)m(hildren)g(\\(ob)5 b(jects)34\n b(are)f(held)g(in)f(a)i(list)f(where)g Fm(firstchild)d\n Fn(is)j(the)g(head\\))g(in)m(to)h(a)g Fm(Chv)227 2370\n y Fn(ob)5 b(ject)25 b Fm(newchv)p Fn(.)37 b(The)24 b(return)e(v)-5\n b(alue)25 b(is)f(the)g(n)m(um)m(b)s(er)f(of)h(dela)m(y)m(ed)h(ro)m(ws)f\n (and)g(columns)f(from)h(the)g(c)m(hildren)227 2483 y(fron)m(ts)31\n b(whic)m(h)f(are)g(found)g(in)g(the)g(leading)h(ro)m(ws)g(and)e\n (columns)h(of)h(the)g(c)m(hevron.)227 2631 y Fl(Err)-5\n@@ -6473,17 +6460,17 @@\n (functionalit)m(y)-8 b(,)33 b(where)d(if)h(a)g(small)g(or)g(zero)g(en)m\n (try)g(is)g(found)e(in)i(the)g(diagonal)g(elemen)m(t)227\n 5294 y(that)45 b(is)f(to)h(b)s(e)f(eliminated,)49 b(some)c(action)h\n (can)e(b)s(e)g(tak)m(en.)83 b(The)44 b(return)f(v)-5\n b(alue)45 b(is)f(the)h(n)m(um)m(b)s(er)e(of)227 5407\n y(eliminated)32 b(ro)m(ws)e(and)g(columns.)p eop end\n %%Page: 12 12\n-TeXDict begin 12 11 bop 0 100 a Fn(12)p 182 100 1171\n-4 v 1353 w Fm(Chv)30 b Fi(:)40 b Fl(DRAFT)31 b Fi(August)f(3,)h(2025)p\n-2729 100 V 227 399 a Fl(Err)-5 b(or)34 b(che)-5 b(cking:)40\n+TeXDict begin 12 11 bop 0 100 a Fn(12)p 182 100 1229\n+4 v 1411 w Fm(Chv)29 b Fi(:)41 b Fl(DRAFT)30 b Fi(July)g(1,)h(2024)p\n+2672 100 V 227 399 a Fl(Err)-5 b(or)34 b(che)-5 b(cking:)40\n b Fn(If)30 b Fm(chv)g Fn(is)g Fm(NULL)p Fn(,)g(an)g(error)g(message)h\n (is)g(prin)m(ted)f(and)g(the)g(program)g(exits.)111 588\n y(3.)46 b Fm(int)h(Chv_r1upd)e(\\()j(Chv)f(*chv)f(\\))i(;)227\n 739 y Fn(This)29 b(metho)s(d)f(is)i(used)e(during)g(the)h\n (factorization)j(of)e(a)f(fron)m(t,)h(p)s(erforming)e(a)i(rank-one)f\n (up)s(date)f(of)i(the)227 852 y(c)m(hevron.)41 b(The)30\n b(return)f(v)-5 b(alue)31 b(is)g Fm(1)f Fn(if)g(the)h(piv)m(ot)g(is)f\n@@ -6551,17 +6538,17 @@\n 1172 5260 V 33 w(11)29 b Fn(=)-15 b Fh(\\))30 b Fn(coun)m(t)h(strict)g\n (upp)s(er)e(en)m(tries)i(in)f(the)g(\\(1,1\\))j(blo)s(c)m(k)337\n 5407 y Fe(\\210)45 b Fm(CHV)p 577 5407 V 34 w(UPPER)p\n 851 5407 V 33 w(12)30 b Fn(=)-16 b Fh(\\))30 b Fn(coun)m(t)h(upp)s(er)e\n (en)m(tries)i(in)f(the)g(\\(1,2\\))j(blo)s(c)m(k)p eop\n end\n %%Page: 13 13\n-TeXDict begin 13 12 bop 91 100 1171 4 v 1352 100 a Fm(Chv)30\n-b Fi(:)40 b Fl(DRAFT)122 b Fi(August)30 b(3,)h(2025)p\n-2637 100 V 1171 w Fn(13)227 399 y(This)f(metho)s(d)g(is)g(used)g(to)h\n+TeXDict begin 13 12 bop 91 100 1229 4 v 1410 100 a Fm(Chv)30\n+b Fi(:)40 b Fl(DRAFT)121 b Fi(July)30 b(1,)h(2024)p 2579\n+100 V 1229 w Fn(13)227 399 y(This)f(metho)s(d)g(is)g(used)g(to)h\n (compute)f(the)h(necessary)g(storage)h(to)f(store)g(a)g(c)m(hevron)f\n (as)h(a)g(dense)f(fron)m(t.)227 551 y Fl(Err)-5 b(or)36\n b(che)-5 b(cking:)45 b Fn(If)32 b Fm(chv)g Fn(is)h Fm(NULL)e\n Fn(or)i(if)g Fm(countflag)d Fn(is)i(not)h(v)-5 b(alid,)34\n b(an)f(error)f(message)i(is)e(prin)m(ted)h(and)227 664\n y(the)e(program)f(exits.)111 855 y(2.)46 b Fm(int)h\n (Chv_countBigEntries)c(\\()k(Chv)g(*chv,)f(int)h(npivot,)f(int)h\n@@ -6641,17 +6628,17 @@\n b(che)-5 b(cking:)45 b Fn(If)32 b Fm(chv)g Fn(or)g Fm(dvec)g\n Fn(is)h Fm(NULL)e Fn(or)i(if)f Fm(length)f Fn(is)i(less)g(than)f(the)h\n (n)m(um)m(b)s(er)e(of)i(en)m(tries)g(to)h(b)s(e)227 5294\n y(copied,)k(or)d(if)g Fm(copyflag)e Fn(or)j Fm(storeflag)c\n Fn(is)k(v)-5 b(alid,)37 b(an)e(error)g(message)i(is)e(prin)m(ted)g(and)\n g(the)g(program)227 5407 y(exits.)p eop end\n %%Page: 14 14\n-TeXDict begin 14 13 bop 0 100 a Fn(14)p 182 100 1171\n-4 v 1353 w Fm(Chv)30 b Fi(:)40 b Fl(DRAFT)31 b Fi(August)f(3,)h(2025)p\n-2729 100 V 111 399 a Fn(4.)46 b Fm(int)h(Chv_copyBigEntriesToVecto)o(r)\n+TeXDict begin 14 13 bop 0 100 a Fn(14)p 182 100 1229\n+4 v 1411 w Fm(Chv)29 b Fi(:)41 b Fl(DRAFT)30 b Fi(July)g(1,)h(2024)p\n+2672 100 V 111 399 a Fn(4.)46 b Fm(int)h(Chv_copyBigEntriesToVecto)o(r)\n 42 b(\\()47 b(Chv)g(*chv,)g(int)f(npivot,)g(int)h(pivotsizes[],)1420\n 511 y(int)g(sizes[],)f(int)h(ivec[],)f(double)g(dvec[],)1420\n 624 y(int)h(copyflag,)f(int)h(storeflag,)e(double)h(droptol)f(\\))j(;)\n 227 769 y Fn(This)32 b(metho)s(d)f(also)j(copies)f(some)g(en)m(tries)g\n (the)f(c)m(hevron)h(ob)5 b(ject)33 b(in)m(to)g(a)g(double)f(precision)g\n (v)m(ector,)j(but)227 882 y(only)40 b(those)f(en)m(tries)h(whose)f\n (magnitude)g(is)h(greater)g(than)f(or)g(equal)h(to)g\n@@ -6739,17 +6726,17 @@\n 227 5294 y(width)e Fm(nD)h Fn(of)g(the)g(c)m(hevron.)58\n b(The)36 b(ro)m(w)g(ids)f(of)i(the)f(t)m(w)m(o)h(ro)m(ws)f(are)g(also)h\n (sw)m(app)s(ed.)57 b(If)35 b(the)i(c)m(hevron)f(is)227\n 5407 y(symmetric,)31 b(then)f(the)h(metho)s(d)f Fm(Chv)p\n 1540 5407 V 33 w(swapRowsAndColumns\\(\\))25 b Fn(is)30\n b(called.)p eop end\n %%Page: 15 15\n-TeXDict begin 15 14 bop 91 100 1171 4 v 1352 100 a Fm(Chv)30\n-b Fi(:)40 b Fl(DRAFT)122 b Fi(August)30 b(3,)h(2025)p\n-2637 100 V 1171 w Fn(15)227 399 y Fl(Err)-5 b(or)35 b(che)-5\n+TeXDict begin 15 14 bop 91 100 1229 4 v 1410 100 a Fm(Chv)30\n+b Fi(:)40 b Fl(DRAFT)121 b Fi(July)30 b(1,)h(2024)p 2579\n+100 V 1229 w Fn(15)227 399 y Fl(Err)-5 b(or)35 b(che)-5\n b(cking:)43 b Fn(If)31 b Fm(chv)g Fn(is)h Fm(NULL)e Fn(or)i(if)g\n Fm(irow)e Fn(or)i Fm(jrow)e Fn(are)i(less)g(than)f(0)i(or)e(greater)i\n (than)e(or)h(equal)g(to)227 511 y Fm(nD)p Fn(,)e(an)h(error)f(message)h\n (is)f(prin)m(ted)g(and)g(the)h(program)f(exits.)111 699\n y(2.)46 b Fm(void)h(Chv_swapColumns)d(\\()j(Chv)g(*chv,)f(int)h(icol,)g\n (int)f(jcol)h(\\))h(;)227 849 y Fn(This)29 b(metho)s(d)g(sw)m(aps)g\n (columns)g Fm(icol)g Fn(and)g Fm(jcol)f Fn(of)h(the)h(c)m(hevron.)41\n@@ -6819,17 +6806,17 @@\n Fn(is)i(p)s(ositiv)m(e,)k(the)41 b(\\014rst)g Fm(shift)f\n Fn(c)m(hevrons)i(are)g(remo)m(v)m(ed)g(from)f(the)h(c)m(hevron.)75\n b(If)41 b Fm(shift)f Fn(is)227 5407 y(negativ)m(e,)j(the)38\n b Fm(shift)f Fn(previous)g(c)m(hevrons)h(are)h(prep)s(ended)d(to)i(the)\n h(c)m(hevron.)64 b(This)37 b(is)h(a)g(dangerous)p eop\n end\n %%Page: 16 16\n-TeXDict begin 16 15 bop 0 100 a Fn(16)p 182 100 1171\n-4 v 1353 w Fm(Chv)30 b Fi(:)40 b Fl(DRAFT)31 b Fi(August)f(3,)h(2025)p\n-2729 100 V 227 399 a Fn(metho)s(d)j(as)h(it)g(c)m(hanges)h(the)e(state)\n+TeXDict begin 16 15 bop 0 100 a Fn(16)p 182 100 1229\n+4 v 1411 w Fm(Chv)29 b Fi(:)41 b Fl(DRAFT)30 b Fi(July)g(1,)h(2024)p\n+2672 100 V 227 399 a Fn(metho)s(d)j(as)h(it)g(c)m(hanges)h(the)e(state)\n i(of)f(the)g(ob)5 b(ject.)54 b(W)-8 b(e)35 b(use)g(it)g(during)e(the)i\n (factorization)i(of)e(a)g(fron)m(t,)227 511 y(where)c(one)g\n Fm(Chv)e Fn(ob)5 b(ject)32 b(p)s(oin)m(ts)f(to)g(the)g(en)m(tire)h(c)m\n (hevron)f(in)f(order)g(to)i(sw)m(ap)e(ro)m(ws)h(and)f(columns,)h(while)\n 227 624 y(another)36 b(c)m(hevron)g(p)s(oin)m(ts)g(to)g(the)g\n (uneliminated)g(ro)m(ws)g(and)f(columns)g(of)h(the)g(fron)m(t.)57\n b(It)36 b(is)g(the)g(latter)227 737 y(c)m(hevron)31 b(that)g(is)f\n@@ -6883,21 +6870,21 @@\n y(12.)46 b Fm(void)h(Chv_zero)e(\\()j(Chv)f(*chv)f(\\))i(;)227\n 5234 y Fn(This)30 b(metho)s(d)g(zero)s(es)h(the)f(en)m(tries)h(in)f\n (the)h(c)m(hevron.)227 5407 y Fl(Err)-5 b(or)34 b(che)-5\n b(cking:)40 b Fn(If)30 b Fm(chv)g Fn(is)g Fm(NULL)p Fn(,)g(an)g(error)g\n (message)h(is)g(prin)m(ted)f(and)g(the)g(program)g(exits.)p\n eop end\n %%Page: 17 17\n-TeXDict begin 17 16 bop 91 100 1171 4 v 1352 100 a Fm(Chv)30\n-b Fi(:)40 b Fl(DRAFT)122 b Fi(August)30 b(3,)h(2025)p\n-2637 100 V 1171 w Fn(17)0 399 y Fc(1.2.12)113 b(IO)37\n-b(metho)s(ds)111 592 y Fn(1.)46 b Fm(void)h(Chv_writeForHumanEye)42\n-b(\\()48 b(Chv)f(*chv,)f(FILE)h(*fp)f(\\))i(;)227 739 y\n-Fn(This)30 b(metho)s(d)g(writes)g(a)h Fm(Chv)e Fn(ob)5\n-b(ject)32 b(to)f(a)f(\\014le)h(in)f(an)g(easily)i(readable)f(format.)227\n+TeXDict begin 17 16 bop 91 100 1229 4 v 1410 100 a Fm(Chv)30\n+b Fi(:)40 b Fl(DRAFT)121 b Fi(July)30 b(1,)h(2024)p 2579\n+100 V 1229 w Fn(17)0 399 y Fc(1.2.12)113 b(IO)37 b(metho)s(ds)111\n+592 y Fn(1.)46 b Fm(void)h(Chv_writeForHumanEye)42 b(\\()48\n+b(Chv)f(*chv,)f(FILE)h(*fp)f(\\))i(;)227 739 y Fn(This)30\n+b(metho)s(d)g(writes)g(a)h Fm(Chv)e Fn(ob)5 b(ject)32\n+b(to)f(a)f(\\014le)h(in)f(an)g(easily)i(readable)f(format.)227\n 887 y Fl(Err)-5 b(or)34 b(che)-5 b(cking:)40 b Fn(If)30\n b Fm(chv)g Fn(or)g Fm(fp)g Fn(are)h Fm(NULL)p Fn(,)e(an)h(error)g\n (message)i(is)e(prin)m(ted)g(and)g(zero)h(is)g(returned.)111\n 1068 y(2.)46 b Fm(void)h(Chv_writeForMatlab)c(\\()k(Chv)g(*chv,)f(char)h\n (*chvname,)e(FILE)i(*fp)g(\\))g(;)227 1215 y Fn(This)33\n b(metho)s(d)f(writes)i(a)f Fm(Chv)g Fn(ob)5 b(ject)34\n b(to)g(a)f(\\014le)h(in)f(a)g(matlab)h(format.)50 b(F)-8\n@@ -6953,17 +6940,17 @@\n Fn(is)h(\\(1.0,0.0\\),)j(when)c(w)m(e)h(are)g(just)g(loading)g(matrix)g\n (en)m(tries)h(in)m(to)g(a)427 5294 y(fron)m(t.)41 b(Ho)m(w)m(ev)m(er,)\n 33 b(when)c(w)m(e)i(factor)g Fb(A)20 b Fn(+)g Fb(\\013B)5\n b Fn(,)31 b(the)f(en)m(tries)h(of)g Fb(B)j Fn(will)d(b)s(e)f(loaded)h\n (with)f Fm(alpha)e Fn(set)427 5407 y(equal)j(to)g Fb(\\013)p\n Fn([0)c(:)e(1].)p eop end\n %%Page: 18 18\n-TeXDict begin 18 17 bop 0 100 a Fn(18)p 182 100 1171\n-4 v 1353 w Fm(Chv)30 b Fi(:)40 b Fl(DRAFT)31 b Fi(August)f(3,)h(2025)p\n-2729 100 V 111 399 a Fn(2.)46 b Fm(test_assmbChv)e(msglvl)j(msgFile)e\n+TeXDict begin 18 17 bop 0 100 a Fn(18)p 182 100 1229\n+4 v 1411 w Fm(Chv)29 b Fi(:)41 b Fl(DRAFT)30 b Fi(July)g(1,)h(2024)p\n+2672 100 V 111 399 a Fn(2.)46 b Fm(test_assmbChv)e(msglvl)j(msgFile)e\n (nDJ)i(nUJ)g(nDI)g(nUI)g(type)g(symflag)e(seed)227 553\n y Fn(This)30 b(driv)m(er)h(program)g(tests)g(the)h Fm(Chv)p\n 1585 553 29 4 v 33 w(assembleChv)c Fn(metho)s(d.)42 b(It)31\n b(assem)m(bles)g(a)h(c)m(hevron)f Fb(T)3517 567 y Fa(I)3588\n 553 y Fn(in)m(to)h Fb(T)3826 567 y Fa(J)3875 553 y Fn(,)227\n 666 y(as)c(is)f(done)h(during)e(the)h(assem)m(bly)h(of)g(p)s(ostp)s\n (oned)e(ro)m(ws)h(and)g(columns)g(during)f(the)i(factorization)i(when)\n@@ -7040,18 +7027,18 @@\n 881 5144 V 32 w(NONSYMMETRIC)p Fn(.)337 5294 y Fe(\\210)45\n b Fn(The)32 b Fm(pivotingflag)d Fn(parameter)k(is)g(the)g(piv)m(oting)g\n (\\015ag)g(|)g Fm(SPOOLES)p 2906 5294 V 32 w(NO)p 3034\n 5294 V 34 w(PIVOTING)d Fn(for)j(no)f(piv-)427 5407 y(oting,)g\n Fm(SPOOLES)p 1027 5407 V 32 w(PIVOTING)c Fn(for)j(piv)m(oting.)p\n eop end\n %%Page: 19 19\n-TeXDict begin 19 18 bop 91 100 1171 4 v 1352 100 a Fm(Chv)30\n-b Fi(:)40 b Fl(DRAFT)122 b Fi(August)30 b(3,)h(2025)p\n-2637 100 V 1171 w Fn(19)337 399 y Fe(\\210)45 b Fn(The)35\n-b Fm(storeflag)e Fn(parameter)j(is)g(the)g(storage)h(\\015ag,)g(to)g\n+TeXDict begin 19 18 bop 91 100 1229 4 v 1410 100 a Fm(Chv)30\n+b Fi(:)40 b Fl(DRAFT)121 b Fi(July)30 b(1,)h(2024)p 2579\n+100 V 1229 w Fn(19)337 399 y Fe(\\210)45 b Fn(The)35 b\n+Fm(storeflag)e Fn(parameter)j(is)g(the)g(storage)h(\\015ag,)g(to)g\n (store)f(b)m(y)f(ro)m(ws,)i(use)f Fm(SPOOLES)p 3528 399\n 29 4 v 32 w(BY)p 3656 399 V 34 w(ROWS)p Fn(,)427 511\n y(to)31 b(store)g(b)m(y)g(columns,)f(use)g Fm(SPOOLES)p\n 1766 511 V 32 w(BY)p 1894 511 V 34 w(COLUMNS)p Fn(.)337\n 651 y Fe(\\210)45 b Fn(The)30 b Fm(seed)f Fn(parameter)i(is)g(a)f\n (random)g(n)m(um)m(b)s(er)f(seed.)111 853 y(4.)46 b Fm\n (test_copyBigEntriesToVect)o(or)c(msglvl)k(msgFile)g(nD)h(nU)g(type)g\n@@ -7126,17 +7113,17 @@\n Fn(parameter)j(determines)f(the)h(message)g(\\014le)f(|)h(if)f\n Fm(msgFile)e Fn(is)i Fm(stdout)p Fn(,)g(then)g(the)427\n 5294 y(message)27 b(\\014le)f(is)g Fl(stdout)p Fn(,)i(otherwise)e(a)h\n (\\014le)f(is)f(op)s(ened)g(with)h Fl(app)-5 b(end)28\n b Fn(status)e(to)g(receiv)m(e)i(an)m(y)e(output)427 5407\n y(data.)p eop end\n %%Page: 20 20\n-TeXDict begin 20 19 bop 0 100 a Fn(20)p 182 100 1171\n-4 v 1353 w Fm(Chv)30 b Fi(:)40 b Fl(DRAFT)31 b Fi(August)f(3,)h(2025)p\n-2729 100 V 337 399 a Fe(\\210)45 b Fn(The)30 b Fm(nD)g\n+TeXDict begin 20 19 bop 0 100 a Fn(20)p 182 100 1229\n+4 v 1411 w Fm(Chv)29 b Fi(:)41 b Fl(DRAFT)30 b Fi(July)g(1,)h(2024)p\n+2672 100 V 337 399 a Fe(\\210)45 b Fn(The)30 b Fm(nD)g\n Fn(parameter)h(is)f(the)h(n)m(um)m(b)s(er)e(of)h(ro)m(ws)h(and)e\n (columns)h(in)h(the)f(\\(1,1\\))i(blo)s(c)m(k.)337 551\n y Fe(\\210)45 b Fn(The)30 b Fm(nU)g Fn(parameter)h(is)f(the)h(n)m(um)m\n (b)s(er)e(of)h(columns)g(in)g(the)h(\\(1,2\\))h(blo)s(c)m(k.)337\n 703 y Fe(\\210)45 b Fn(The)30 b Fm(type)f Fn(parameter)i(denotes)g(the)g\n (t)m(yp)s(e)f(of)h(en)m(tries)g(|)f Fm(SPOOLES)p 2818\n 703 29 4 v 32 w(REAL)g Fn(or)g Fm(SPOOLES)p 3519 703\n@@ -7208,18 +7195,18 @@\n b Fm(rowerror)p Fn(,)f Fm(colerror)p Fn(,)h Fm(rowerror11)p\n Fn(,)e Fm(colerror11)f Fn(and)h Fm(diag11error)p Fn(.)59\n b(All)38 b(should)f(b)s(e)227 5067 y(zero.)337 5294 y\n Fe(\\210)45 b Fn(The)f Fm(msglvl)e Fn(parameter)j(determines)f(the)g\n (amoun)m(t)h(of)f(output.)82 b(Use)44 b Fm(msglvl)i(=)i(1)c\n Fn(for)g(just)427 5407 y(timing)31 b(output.)p eop end\n %%Page: 21 21\n-TeXDict begin 21 20 bop 91 100 1171 4 v 1352 100 a Fm(Chv)30\n-b Fi(:)40 b Fl(DRAFT)122 b Fi(August)30 b(3,)h(2025)p\n-2637 100 V 1171 w Fn(21)337 399 y Fe(\\210)45 b Fn(The)33\n-b Fm(msgFile)e Fn(parameter)j(determines)f(the)h(message)g(\\014le)f(|)h\n+TeXDict begin 21 20 bop 91 100 1229 4 v 1410 100 a Fm(Chv)30\n+b Fi(:)40 b Fl(DRAFT)121 b Fi(July)30 b(1,)h(2024)p 2579\n+100 V 1229 w Fn(21)337 399 y Fe(\\210)45 b Fn(The)33 b\n+Fm(msgFile)e Fn(parameter)j(determines)f(the)h(message)g(\\014le)f(|)h\n (if)f Fm(msgFile)e Fn(is)i Fm(stdout)p Fn(,)g(then)g(the)427\n 511 y(message)27 b(\\014le)f(is)g Fl(stdout)p Fn(,)i(otherwise)e(a)h\n (\\014le)f(is)f(op)s(ened)g(with)h Fl(app)-5 b(end)28\n b Fn(status)e(to)g(receiv)m(e)i(an)m(y)e(output)427 624\n y(data.)337 772 y Fe(\\210)45 b Fn(The)30 b Fm(nD)g Fn(parameter)h(is)f\n (the)h(n)m(um)m(b)s(er)e(of)h(ro)m(ws)h(and)e(columns)h(in)h(the)f\n (\\(1,1\\))i(blo)s(c)m(k.)337 920 y Fe(\\210)45 b Fn(The)30\n@@ -7288,17 +7275,17 @@\n (\\(1,1\\))i(blo)s(c)m(k.)337 5259 y Fe(\\210)45 b Fn(The)30\n b Fm(nU)g Fn(parameter)h(is)f(the)h(n)m(um)m(b)s(er)e(of)h(columns)g\n (in)g(the)h(\\(1,2\\))h(blo)s(c)m(k.)337 5407 y Fe(\\210)45\n b Fn(The)30 b Fm(type)f Fn(parameter)i(denotes)g(the)g(t)m(yp)s(e)f(of)\n h(en)m(tries)g(|)f Fm(SPOOLES)p 2818 5407 V 32 w(REAL)g\n Fn(or)g Fm(SPOOLES)p 3519 5407 V 32 w(COMPLEX)p eop end\n %%Page: 22 22\n-TeXDict begin 22 21 bop 0 100 a Fn(22)p 182 100 1171\n-4 v 1353 w Fm(Chv)30 b Fi(:)40 b Fl(DRAFT)31 b Fi(August)f(3,)h(2025)p\n-2729 100 V 337 399 a Fe(\\210)45 b Fn(The)20 b Fm(symflag)e\n+TeXDict begin 22 21 bop 0 100 a Fn(22)p 182 100 1229\n+4 v 1411 w Fm(Chv)29 b Fi(:)41 b Fl(DRAFT)30 b Fi(July)g(1,)h(2024)p\n+2672 100 V 337 399 a Fe(\\210)45 b Fn(The)20 b Fm(symflag)e\n Fn(parameter)j(is)f(the)h(symmetry)f(\\015ag)g(|)g Fm(SPOOLES)p\n 2640 399 29 4 v 33 w(SYMMETRIC)p Fn(,)e Fm(SPOOLES)p\n 3484 399 V 32 w(HERMITIAN)427 511 y Fn(or)31 b Fm(SPOOLES)p\n 881 511 V 32 w(NONSYMMETRIC)p Fn(.)337 659 y Fe(\\210)45\n b Fn(The)30 b Fm(seed)f Fn(parameter)i(is)g(a)f(random)g(n)m(um)m(b)s\n (er)f(seed.)66 876 y(10.)46 b Fm(test_swap)g(msglvl)g(msgFile)f(nD)j\n (nU)f(type)f(symflag)g(seed)227 1027 y Fn(This)26 b(driv)m(er)g\n@@ -7373,18 +7360,18 @@\n 5260 y Fe(\\210)k Fn(The)30 b Fm(ncolT)f Fn(parameter)i(is)f(the)h(n)m\n (um)m(b)s(er)e(of)i(columns)f(in)g(the)g(\\(1,1\\))i(and)e(\\(1,2\\))i(blo)\n s(c)m(ks)f(of)g Fb(T)13 b Fn(.)337 5407 y Fe(\\210)45\n b Fn(The)30 b Fm(nDT)g Fn(parameter)g(is)h(the)f(n)m(um)m(b)s(er)g(of)g\n (ro)m(ws)g(and)g(columns)g(in)g(the)h(\\(1,1\\))h(blo)s(c)m(k)f(of)f\n Fb(T)13 b Fn(.)p eop end\n %%Page: 23 23\n-TeXDict begin 23 22 bop 91 100 1171 4 v 1352 100 a Fm(Chv)30\n-b Fi(:)40 b Fl(DRAFT)122 b Fi(August)30 b(3,)h(2025)p\n-2637 100 V 1171 w Fn(23)337 399 y Fe(\\210)45 b Fn(The)30\n-b Fm(ncolU)f Fn(parameter)i(is)f(the)h(n)m(um)m(b)s(er)e(of)i(columns)f\n+TeXDict begin 23 22 bop 91 100 1229 4 v 1410 100 a Fm(Chv)30\n+b Fi(:)40 b Fl(DRAFT)121 b Fi(July)30 b(1,)h(2024)p 2579\n+100 V 1229 w Fn(23)337 399 y Fe(\\210)45 b Fn(The)30 b\n+Fm(ncolU)f Fn(parameter)i(is)f(the)h(n)m(um)m(b)s(er)e(of)i(columns)f\n (in)g Fb(U)10 b Fn(.)337 545 y Fe(\\210)45 b Fn(The)30\n b Fm(nrowD)f Fn(parameter)i(is)f(the)h(n)m(um)m(b)s(er)e(of)i(ro)m(ws)f\n (and)g(columns)g(in)g Fb(D)s Fn(.)337 691 y Fe(\\210)45\n b Fn(The)30 b Fm(nentU)f Fn(parameter)i(is)f(the)h(n)m(um)m(b)s(er)e\n (en)m(tries)i(in)f Fb(U)10 b Fn(,)31 b(ignored)f(if)h\n Fm(sparsityflag)44 b(=)j(0)p Fn(.)337 837 y Fe(\\210)e\n Fn(The)30 b Fm(offset)f Fn(parameter)i(is)f(the)h(o\\013set)g(of)g\n", "details": [{"source1": "ps2ascii {}", "source2": "ps2ascii {}", "unified_diff": "@@ -23,15 +23,15 @@\n unnecessary, that we put on the Chv object \u2014 the number of rows in the (2,1) block and number of\r\n columns in the (1,2) block are equal. The Chv object is used within the context of a factorization of\r\n a sparse matrix that is assumed to have symmetric structure. If we ever extend the code to handle\r\n a true nonsymmetric structure factorization (e.g., umfpack and superlu), then we can modify\r\n the Chv object to handle unequal rows and columns.\r\n During a factorization, a front has to take part in four distinct operations.\r\n 1\r\n- 2 Chv : DRAFT August 3, 2025\r\n+ 2 Chv : DRAFT July 1, 2024\r\n 1. Assemble entries from the original matrix (or matrix pencil). (See the Chv addChevron()\r\n method.)\r\n 2. Accumulate updates from descendant fronts. (See the Chv update{S,H,N}() methods.)\r\n 3. Assembleanypostponeddatafromitschildrenfronts. (SeetheChv assemblePostponedData()\r\n method.)\r\n 4. Computethefactorization ofthecompletely assembledfront. (SeetheChv factor()method.)\r\n The implementor of a front object has a great deal of freedom to design the underlying data\r\n@@ -65,15 +65,15 @@\n de\ufb01neitsrowsandcolumns. ForasymmetricorHermitianmatrix, weonlystorethecolumnindices.\r\n For a nonsymmetric matrix, we store the both the row and column indices. This second case may\r\n seem unnecessary, since we assume that the larger global matrix has symmetric structure. However,\r\n during a factorization with pivoting enabled, a pivot element may be chosen from anywhere in the\r\n (1,1) block, so the row indices and column indices may no longer be identical.\r\n AChv object is inherently a serial, single threaded object, meaning it is designed so that only\r\n one thread or process \u201cowns\u201d or operates on a particular Chv object. A Chv object is an \u201catom\u201d\r\n- Chv : DRAFT August 3, 2025 3\r\n+ Chv : DRAFT July 1, 2024 3\r\n of communication. It stores postponed rows and columns to be assembled in a parent front. It\r\n might have to be written to and read from a \ufb01le in an out-of-core implementation. In a distributed\r\n environment, it is communicated between processes. For these reasons, we designed the object so\r\n that its data (the scalars that describe its dimensions, id and type, the row and column indices,\r\n and its entries) are found in contiguous storage managed by a DV object. A \ufb01le operation can be\r\n done with a single read or write, a message can be sent without packing and unpacking data, or\r\n de\ufb01ning a new datatype. Managing working storage for a number of Chv objects is now simpler.\r\n@@ -100,15 +100,15 @@\n \u2022 int symflag : symmetry \ufb02ag\r\n \u2013 SPOOLES SYMMETRIC =\u21d2 symmetric entries\r\n \u2013 SPOOLES HERMITIAN =\u21d2 Hermitian entries\r\n \u2013 SPOOLES NONSYMMETRIC =\u21d2 nonsymmetric entries\r\n \u2022 int *rowind : pointer to the base address of the int vector that contains row indices.\r\n \u2022 int *colind : pointer to the base address of the int vector that contains column indices.\r\n \u2022 double *entries: pointer to the base address of the double vector that contains the entries.\r\n- 4 Chv : DRAFT August 3, 2025\r\n+ 4 Chv : DRAFT July 1, 2024\r\n \u2022 DV wrkDV : object that manages the owned working storage.\r\n \u2022 Chv *next : link to a next object in a singly linked list.\r\n One can query the type and symmetry of the object using these simple macros.\r\n \u2022 CHV IS REAL(chv) is 1 if chv has real entries and 0 otherwise.\r\n \u2022 CHV IS COMPLEX(chv) is 1 if chv has complex entries and 0 otherwise.\r\n \u2022 CHV IS SYMMETRIC(chv) is 1 if chv is symmetric and 0 otherwise.\r\n \u2022 CHV IS HERMITIAN(chv) is 1 if chv is Hermitian and 0 otherwise.\r\n@@ -131,15 +131,15 @@\n This method clears the object and free\u2019s any owned data by invoking the clearData()\r\n methods for its internal DV object. There is a concluding call to Chv setDefaultFields().\r\n Error checking: If chv is NULL, an error message is printed and the program exits.\r\n 4. void Chv_free ( Chv *chv ) ;\r\n This method releases any storage by a call to Chv clearData() and then free the space for\r\n chv.\r\n Error checking: If chv is NULL, an error message is printed and the program exits.\r\n- Chv : DRAFT August 3, 2025 5\r\n+ Chv : DRAFT July 1, 2024 5\r\n 1.2.2 Instance methods\r\n 1. int Chv_id ( Chv *chv ) ;\r\n This method returns the id of the object.\r\n Error checking: If chv is NULL, an error message is printed and zero is returned.\r\n 2. int Chv_type ( Chv *chv ) ;\r\n This method returns the type of the object.\r\n \u2022 SPOOLES REAL =\u21d2 real entries\r\n@@ -167,15 +167,15 @@\n Error checking: If chv, pncol or pcolind is NULL, an error message is printed and zero is\r\n returned.\r\n 7. int Chv_nent ( Chv *chv ) ;\r\n This method returns number of matrix entries that the object contains. Note, for a complex\r\n chevron, this is the number of double precision complex entries, equal to one half the number\r\n of double precision entries that are stored.\r\n Error checking: If chv is NULL, an error message is printed and zero is returned.\r\n- 6 Chv : DRAFT August 3, 2025\r\n+ 6 Chv : DRAFT July 1, 2024\r\n 8. double * Chv_entries ( Chv *chv ) ;\r\n This method returns the entries \ufb01eld of the object, a pointer to the base location of the\r\n double precision array that stores the complex data.\r\n Error checking: If chv is NULL, an error message is printed and zero is returned.\r\n 9. double * Chv_diagLocation ( Chv *chv, int ichv ) ;\r\n This method returns a pointer to the address of the entry in the ichv\u2019th diagonal location.\r\n For a real chevron, to \ufb01nd the entry k places to the right of the diagonal entry, add k to the\r\n@@ -205,15 +205,15 @@\n 14. void Chv_complexEntry ( Chv *chv, int irow, int jcol,\r\n double *pReal, double *pImag ) ;\r\n This method \ufb01lls *pReal with the real part and *pImag with the imaginary part of the the\r\n entry in row irow and column jcol. Note, irow and jcol are local indices, i.e., 0 \u2264 irow <\r\n nD+nLand0\u2264jcolentries[2*kk:2*kk+1].\r\n@@ -281,15 +281,15 @@\n in *pmaxval. Note, if the chevron is complex, the location is in terms of the complex entries,\r\n not in the real entries, i.e., if k = Chv maxabsRow(chv,...), then the complex entry is found\r\n in chv->entries[2*kk:2*kk+1].\r\n Error checking: If chv is NULL or irow is not in [0,n1-1], an error message is printed and\r\n the program exits.\r\n 5. int Chv_maxabsInColumn ( Chv *chv, int jcol, int rowmark[],\r\n int tag, double *pmaxval ) ;\r\n- Chv : DRAFT August 3, 2025 9\r\n+ Chv : DRAFT July 1, 2024 9\r\n This method returns the location of the \ufb01rst element with the largest magnitude in column\r\n jcol. Element jj must have rowmark[jj] = tag to be eligible. Its magnitude is returned\r\n in *pmaxval. Note, if the chevron is complex, the location is in terms of the complex entries,\r\n not in the real entries, i.e., if k = Chv maxabsColumn11(chv,...), then the complex entry\r\n is found in chv->entries[2*kk:2*kk+1].\r\n Error checking: If chv is NULL or irow is not in [0,n1-1], an error message is printed and\r\n the program exits.\r\n@@ -322,15 +322,15 @@\n number of leading rows and columns to ignore, useful when delayed rows and columns have\r\n been placed in the leading portion of the chevron. The pirow, pjcol and pntest addresses\r\n are \ufb01lled with the pivot row, pivot column, and number of pivot tests performed to \ufb01nd the\r\n pivot. If no pivot was found, pirow and pjcol are \ufb01lled with -1. The return value is the size\r\n of the pivot. If the chevron is symmetric, we can \ufb01nd a 1 \u00d7 1 or 2 \u00d7 2 pivot. If the chevron\r\n is nonsymmetric, we only \ufb01nd a 1\u00d71 pivot. A return value of zero means that no pivot was\r\n found.\r\n- 10 Chv : DRAFT August 3, 2025\r\n+ 10 Chv : DRAFT July 1, 2024\r\n Error checking: If chv, workDV, pirow, pjcol or pntest is NULL, or if tau < 1.0, or if\r\n ndelay < 0, an error message is printed and the program exits.\r\n 1.2.6 Update methods\r\n 1. void Chv_updateS ( Chv *chv, SubMtx *mtxD, SubMtx *mtxU, DV *tempDV ) ;\r\n void Chv_updateH ( Chv *chv, SubMtx *mtxD, SubMtx *mtxU, DV *tempDV ) ;\r\n void Chv_updateN ( Chv *chv, SubMtx *mtxL, SubMtx *mtxD, SubMtx *mtxU,\r\n DV *tempDV ) ;\r\n@@ -364,15 +364,15 @@\n This method is used to assemble entries from the matrix pencil A+\u03c3B into the block chevron\r\n object. Typically the entries from A or B will come from a InpMtx object, one of whose modes\r\n of storage is by single chevrons. The value ichvis the row and column location of the diagonal\r\n entry. The indices found in chvind[] are o\ufb00sets. Let off = chvind[ii] be the o\ufb00set for one\r\n of the chevron\u2019s entries. If off \u2265 0, then the entry is found in location (ichv, ichv+off) of\r\n the matrix. If off < 0, then the entry is found in location (ichv-off, ichv) of the matrix.\r\n The value(s) in alpha[] form a scalar used to scale the entire chevron for its assembly. A\r\n- Chv : DRAFT August 3, 2025 11\r\n+ Chv : DRAFT July 1, 2024 11\r\n call to assemble entries in A (from the pencil A+\u03c3B) would have alpha[] = (1.0,0.0); to\r\n assemble entries in B (from the pencil A+\u03c3B) would have alpha[] = (Real(\u03c3),Imag(\u03c3)).\r\n Error checking: If chv, chvind, chvent or alpha is NULL, or if ichv or chvsize are less than\r\n zero, an error message is printed and the program exits.\r\n 2. void Chv_assembleChv ( Chv *chvJ, Chv *chvI ) ;\r\n This method is used to assemble entries from one Chv object into another. The application\r\n is during a factorization with pivoting, postponed entries from the children are stored in the\r\n@@ -404,15 +404,15 @@\n chevron is symmetric or Hermitian, pivotflag == SPOOLES PIVOTING and pivotsizesIV is\r\n NULL, an error message is printed and the program exits.\r\n 2. int Chv_factorWithNoPivoting ( Chv *chv, PatchAndGoInfo *info ) ;\r\n This method factors a front without using pivoting for numerical stability. It does support\r\n \u201cpatch-and-go\u201d functionality, where if a small or zero entry is found in the diagonal element\r\n that is to be eliminated, some action can be taken. The return value is the number of\r\n eliminated rows and columns.\r\n- 12 Chv : DRAFT August 3, 2025\r\n+ 12 Chv : DRAFT July 1, 2024\r\n Error checking: If chv is NULL, an error message is printed and the program exits.\r\n 3. int Chv_r1upd ( Chv *chv ) ;\r\n This method is used during the factorization of a front, performing a rank-one update of the\r\n chevron. The return value is 1 if the pivot is nonzero, 0 otherwise.\r\n Error checking: If chv is NULL, an error message is printed and the program exits.\r\n 4. int Chv_r2upd ( Chv *chv ) ;\r\n This method is used during the factorization of a front, performing a rank-two update of the\r\n@@ -440,15 +440,15 @@\n \u2022 CHV STRICT LOWER =\u21d2 count strict lower entries\r\n \u2022 CHV DIAGONAL =\u21d2 count diagonal entries\r\n \u2022 CHV STRICT UPPER =\u21d2 count strict upper entries\r\n \u2022 CHV STRICT LOWER 11 =\u21d2 count strict lower entries in the (1,1) block\r\n \u2022 CHV LOWER 21 =\u21d2 count lower entries in the (2,1) block\r\n \u2022 CHV STRICT UPPER 11 =\u21d2 count strict upper entries in the (1,1) block\r\n \u2022 CHV UPPER 12 =\u21d2 count upper entries in the (1,2) block\r\n- Chv : DRAFT August 3, 2025 13\r\n+ Chv : DRAFT July 1, 2024 13\r\n This method is used to compute the necessary storage to store a chevron as a dense front.\r\n Error checking: If chv is NULL or if countflag is not valid, an error message is printed and\r\n the program exits.\r\n 2. int Chv_countBigEntries ( Chv *chv, int npivot, int pivotsizes[],\r\n int countflag, double droptol ) ;\r\n This method counts the number of entries in the chevron that are larger in magnitude than\r\n droptol. countflag has the following meaning.\r\n@@ -477,15 +477,15 @@\n \u2022 CHV STRICT UPPER 11 =\u21d2 copy strict upper entries in the (1,1) block\r\n \u2022 CHV UPPER 12 =\u21d2 copy upper entries in the (1,2) block\r\n If storeflagisCHV BY ROWS,theentriesarestoredbyrowsandifstoreflagisCHV BY COLUMNS,\r\n the entries are stored by columns.\r\n Error checking: If chv or dvec is NULL or if length is less than the number of entries to be\r\n copied, or if copyflag or storeflag is valid, an error message is printed and the program\r\n exits.\r\n- 14 Chv : DRAFT August 3, 2025\r\n+ 14 Chv : DRAFT July 1, 2024\r\n 4. int Chv_copyBigEntriesToVector ( Chv *chv, int npivot, int pivotsizes[],\r\n int sizes[], int ivec[], double dvec[],\r\n int copyflag, int storeflag, double droptol ) ;\r\n This method also copies some entries the chevron object into a double precision vector, but\r\n only those entries whose magnitude is greater than or equal to droptol are copied. This\r\n method is called after a front has been factored and is used to store the factor entries of large\r\n magnitude into the storage for the factor matrix. If the front is nonsymmetric, the front\r\n@@ -517,15 +517,15 @@\n Error checking: If chvI or chvJ is NULL, or if offset < 0 or offset is greater than the\r\n number of chevrons in chvJ, an error message is printed and the program exits.\r\n 1.2.10 Swap methods\r\n 1. void Chv_swapRows ( Chv *chv, int irow, int jrow ) ;\r\n This method swaps rows irow and jrow of the chevron. Both rows must be less than the\r\n width nD of the chevron. The row ids of the two rows are also swapped. If the chevron is\r\n symmetric, then the method Chv swapRowsAndColumns() is called.\r\n- Chv : DRAFT August 3, 2025 15\r\n+ Chv : DRAFT July 1, 2024 15\r\n Error checking: If chv is NULL or if irow or jrow are less than 0 or greater than or equal to\r\n nD, an error message is printed and the program exits.\r\n 2. void Chv_swapColumns ( Chv *chv, int icol, int jcol ) ;\r\n This method swaps columns icol and jcol of the chevron. Both columns must be less than\r\n the width nD of the chevron. The column ids of the two columns are also swapped. If the\r\n chevron is symmetric, then the method Chv swapRowsAndColumns() is called.\r\n Error checking: If chv is NULL or if icol or jcol are less than 0 or greater than or equal to\r\n@@ -553,15 +553,15 @@\n This method sets the scalar \ufb01elds and rowind, colind and entries pointers.\r\n Error checking: If chv is NULL, or if nD \u2264 0, or if nL or nU are less than zero, or if type or\r\n symflag are not valid, an error message is printed and the program exits.\r\n 5. void Chv_shift ( Chv *chv, int shift ) ;\r\n This method is used to shift the base of the entries and adjust dimensions of the Chv object.\r\n If shift is positive, the \ufb01rst shift chevrons are removed from the chevron. If shift is\r\n negative, the shift previous chevrons are prepended to the chevron. This is a dangerous\r\n- 16 Chv : DRAFT August 3, 2025\r\n+ 16 Chv : DRAFT July 1, 2024\r\n method as it changes the state of the object. We use it during the factorization of a front,\r\n where one Chv object points to the entire chevron in order to swap rows and columns, while\r\n another chevron points to the uneliminated rows and columns of the front. It is the latter\r\n chevron that is shifted during the factorization.\r\n Error checking: If chv is NULL an error message is printed and the program exits.\r\n 6. void Chv_fill11block ( Chv *chv, A2 *mtx ) ;\r\n This method is used to \ufb01ll a A2 dense matrix object with the entries in the (1,1) block of the\r\n@@ -584,15 +584,15 @@\n 11. void Chv_sub ( Chv *chvJ, Chv *chvI ) ;\r\n This method subtracts chvI from chvJ.\r\n Error checking: If chvJ or chvI is NULL, or if their dimensions are not the same, or if either\r\n of their entries \ufb01elds are NULL, an error message is printed and the program exits.\r\n 12. void Chv_zero ( Chv *chv ) ;\r\n This method zeroes the entries in the chevron.\r\n Error checking: If chv is NULL, an error message is printed and the program exits.\r\n- Chv : DRAFT August 3, 2025 17\r\n+ Chv : DRAFT July 1, 2024 17\r\n 1.2.12 IO methods\r\n 1. void Chv_writeForHumanEye ( Chv *chv, FILE *fp ) ;\r\n This method writes a Chv object to a \ufb01le in an easily readable format.\r\n Error checking: If chv or fp are NULL, an error message is printed and zero is returned.\r\n 2. void Chv_writeForMatlab ( Chv *chv, char *chvname, FILE *fp ) ;\r\n This method writes a Chv object to a \ufb01le in a matlab format. For a real chevron, a sample\r\n line is\r\n@@ -619,15 +619,15 @@\n \u2022 Thesymflagparameteristhesymmetry\ufb02ag\u2014SPOOLES SYMMETRIC,SPOOLES HERMITIAN\r\n or SPOOLES NONSYMMETRIC.\r\n \u2022 The seed parameter is a random number seed.\r\n \u2022 The alphareal and alphaimag parameters form a complex number that is a scaling\r\n parameter. Normally alpha is (1.0,0.0), when we are just loading matrix entries into a\r\n front. However, when we factor A+\u03b1B, the entries of B will be loaded with alpha set\r\n equal to \u03b1[0 : 1].\r\n- 18 Chv : DRAFT August 3, 2025\r\n+ 18 Chv : DRAFT July 1, 2024\r\n 2. test_assmbChv msglvl msgFile nDJ nUJ nDI nUI type symflag seed\r\n This driver program tests the Chv assembleChv method. It assembles a chevron T into T ,\r\n I J\r\n as is done during the assembly of postponed rows and columns during the factorization when\r\n pivoting is enabled. Use the script \ufb01le do assmbChv for testing. When the output \ufb01le is\r\n loaded into matlab, the last line to the screen is the error of the assembly.\r\n \u2022 The msglvl parameter determines the amount of output. Use msglvl = 1 for just\r\n@@ -658,15 +658,15 @@\n \u2022 The nD parameter is the number of rows and columns in the (1,1) block.\r\n \u2022 The nU parameter is the number of columns in the (1,2) block.\r\n \u2022 The type parameter denotes the type of entries \u2014 SPOOLES REAL or SPOOLES COMPLEX\r\n \u2022 Thesymflagparameteristhesymmetry\ufb02ag\u2014SPOOLES SYMMETRIC,SPOOLES HERMITIAN\r\n or SPOOLES NONSYMMETRIC.\r\n \u2022 The pivotingflag parameter is the pivoting \ufb02ag \u2014 SPOOLES NO PIVOTING for no piv-\r\n oting, SPOOLES PIVOTING for pivoting.\r\n- Chv : DRAFT August 3, 2025 19\r\n+ Chv : DRAFT July 1, 2024 19\r\n \u2022 The storeflag parameter is the storage \ufb02ag, to store by rows, use SPOOLES BY ROWS,\r\n to store by columns, use SPOOLES BY COLUMNS.\r\n \u2022 The seed parameter is a random number seed.\r\n 4. test_copyBigEntriesToVector msglvl msgFile nD nU type symflag\r\n pivotingflag storeflag seed droptol\r\n This driver program tests the Chv copyBigEntriesToVector method which is used when\r\n after a front has been factored to store the entries into sparse L and U submatrices. Use\r\n@@ -698,15 +698,15 @@\n three entries. The \ufb01rst entry is the error in the factorization. The second and third entries\r\n are the maximum magnitudes of the entries in L and U, respectively.\r\n \u2022 The msglvl parameter determines the amount of output. Use msglvl = 1 for just\r\n timing output.\r\n \u2022 The msgFile parameter determines the message \ufb01le \u2014 if msgFile is stdout, then the\r\n message \ufb01le is stdout, otherwise a \ufb01le is opened with append status to receive any output\r\n data.\r\n- 20 Chv : DRAFT August 3, 2025\r\n+ 20 Chv : DRAFT July 1, 2024\r\n \u2022 The nD parameter is the number of rows and columns in the (1,1) block.\r\n \u2022 The nU parameter is the number of columns in the (1,2) block.\r\n \u2022 The type parameter denotes the type of entries \u2014 SPOOLES REAL or SPOOLES COMPLEX\r\n \u2022 Thesymflagparameteristhesymmetry\ufb02ag\u2014SPOOLES SYMMETRIC,SPOOLES HERMITIAN\r\n or SPOOLES NONSYMMETRIC.\r\n \u2022 The pivotingflag parameter is the pivoting \ufb02ag \u2014 SPOOLES NO PIVOTING for no piv-\r\n oting, SPOOLES PIVOTING for pivoting.\r\n@@ -735,15 +735,15 @@\n ThisdriverprogramteststheChv maxabsInRow(),Chv maxabsInRow11(),Chv maxabsInColumn(),\r\n Chv maxabsInColumn11() and Chv maxabsInDiagonal11() methods. Use the script \ufb01le\r\n do maxabs for testing. When the output \ufb01le is loaded into matlab, look on the screen for the\r\n variables rowerror, colerror, rowerror11, colerror11 and diag11error. All should be\r\n zero.\r\n \u2022 The msglvl parameter determines the amount of output. Use msglvl = 1 for just\r\n timing output.\r\n- Chv : DRAFT August 3, 2025 21\r\n+ Chv : DRAFT July 1, 2024 21\r\n \u2022 The msgFile parameter determines the message \ufb01le \u2014 if msgFile is stdout, then the\r\n message \ufb01le is stdout, otherwise a \ufb01le is opened with append status to receive any output\r\n data.\r\n \u2022 The nD parameter is the number of rows and columns in the (1,1) block.\r\n \u2022 The nU parameter is the number of columns in the (1,2) block.\r\n \u2022 The type parameter denotes the type of entries \u2014 SPOOLES REAL or SPOOLES COMPLEX\r\n \u2022 Thesymflagparameteristhesymmetry\ufb02ag\u2014SPOOLES SYMMETRIC,SPOOLES HERMITIAN\r\n@@ -772,15 +772,15 @@\n timing output.\r\n \u2022 The msgFile parameter determines the message \ufb01le \u2014 if msgFile is stdout, then the\r\n message \ufb01le is stdout, otherwise a \ufb01le is opened with append status to receive any output\r\n data.\r\n \u2022 The nD parameter is the number of rows and columns in the (1,1) block.\r\n \u2022 The nU parameter is the number of columns in the (1,2) block.\r\n \u2022 The type parameter denotes the type of entries \u2014 SPOOLES REAL or SPOOLES COMPLEX\r\n- 22 Chv : DRAFT August 3, 2025\r\n+ 22 Chv : DRAFT July 1, 2024\r\n \u2022 Thesymflagparameteristhesymmetry\ufb02ag\u2014SPOOLES SYMMETRIC,SPOOLES HERMITIAN\r\n or SPOOLES NONSYMMETRIC.\r\n \u2022 The seed parameter is a random number seed.\r\n 10. test_swap msglvl msgFile nD nU type symflag seed\r\n This driver program tests three methods: Chv swapRowsAndColumns(), Chv swapRows() and\r\n Chv swapColumns(). Use the script \ufb01le do swap for testing. When the output \ufb01le is loaded\r\n into matlab, look for the maxerrrowswap1, maxerrcolswap1, maxerrswap, maxerrsymswap1\r\n@@ -810,15 +810,15 @@\n \u2022 The type parameter denotes the type of entries \u2014 SPOOLES REAL or SPOOLES COMPLEX\r\n \u2022 Thesymflagparameteristhesymmetry\ufb02ag\u2014SPOOLES SYMMETRIC,SPOOLES HERMITIAN\r\n or SPOOLES NONSYMMETRIC.\r\n \u2022 The sparsityflag parameter should be zero for dense U and L, or 1 for sparse U and\r\n L.\r\n \u2022 The ncolT parameter is the number of columns in the (1,1) and (1,2) blocks of T.\r\n \u2022 The nDT parameter is the number of rows and columns in the (1,1) block of T.\r\n- Chv : DRAFT August 3, 2025 23\r\n+ Chv : DRAFT July 1, 2024 23\r\n \u2022 The ncolU parameter is the number of columns in U.\r\n \u2022 The nrowD parameter is the number of rows and columns in D.\r\n \u2022 The nentU parameter is the number entries in U, ignored if sparsityflag = 0.\r\n \u2022 The offset parameter is the o\ufb00set of \ufb01rst index in T from the last index in D.\r\n \u2022 The seed parameter is a random number seed.\r\n Index\r\n Chv addChevron(), 10 Chv new(), 4\r\n"}]}]}, {"source1": "./usr/share/doc/spooles-doc/ChvList.ps.gz", "source2": "./usr/share/doc/spooles-doc/ChvList.ps.gz", "unified_diff": null, "details": [{"source1": "ChvList.ps", "source2": "ChvList.ps", "unified_diff": "@@ -10,15 +10,15 @@\n %%EndComments\n %%BeginDefaults\n %%ViewingOrientation: 1 0 0 1\n %%EndDefaults\n %DVIPSWebPage: (www.radicaleye.com)\n %DVIPSCommandLine: dvips main -o ChvList.ps\n %DVIPSParameters: dpi=600\n-%DVIPSSource: TeX output 2025.08.03:1317\n+%DVIPSSource: TeX output 2024.07.01:0700\n %%BeginProcSet: tex.pro 0 0\n %!\n /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S\n N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72\n mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0\n 0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{\n landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize\n@@ -1760,23 +1760,22 @@\n /UnderlinePosition -100 def\n /UnderlineThickness 50 def\n end readonly def\n /Encoding 256 array\n 0 1 255 {1 index exch /.notdef put} for\n dup 44 /comma put\n dup 48 /zero put\n+dup 49 /one put\n dup 50 /two put\n-dup 51 /three put\n-dup 53 /five put\n+dup 52 /four put\n dup 58 /colon put\n-dup 65 /A put\n-dup 103 /g put\n-dup 115 /s put\n-dup 116 /t put\n+dup 74 /J put\n+dup 108 /l put\n dup 117 /u put\n+dup 121 /y put\n readonly def\n currentdict end\n currentfile eexec\n D9D66F633B846AB284BCF8B0411B772DE5CE32340DC6F28AF40857E4451976E7\n 5182433CF9F333A38BD841C0D4E68BF9E012EB32A8FFB76B5816306B5EDF7C99\n 8B3A16D9B4BC056662E32C7CD0123DFAEB734C7532E64BBFBF5A60336E646716\n EFB852C877F440D329172C71F1E5D59CE9473C26B8AEF7AD68EF0727B6EC2E0C\n@@ -1957,79 +1956,67 @@\n 7CA1534C4D5B05FC33F83790ECFD7641DF3FB94289E2A1F6E7D29AB1228A867A\n 6E1EF0E9C6F899B491DC18401C2C0A05FFFED46A72C245F7529B8EA55A038082\n 8512307217D2A233C37004085BA3AEE379269F9FA7D0ADB4B19A95CC2AFE686E\n 55D88E47257C1FE6F235FEA295910569FE6DD5995512562359CC821E85A6C7A5\n 79B470A9E340A6985189FF8B6AF914A6B0ECF93F47903221F95DE894A8F05B05\n B7D99CD533EC5F931B18E6B39BECF67FA2D6DD1AEC76772B068BE06335A94C05\n 7A4DDEE77B66101DA855C17AC312600370B34E31F5EC3A01300A8EB60B4C9767\n-1B2FA10DF7E91D3BB34A1B1CE7A0015A57C813E0280D873ADB88440048702D1F\n-77994EE04EC3B4531D6E1888C86A8F0DA6CF1F056F16AB0DD76C862830F89DA4\n-28923B3AA543E0D6E41D3BD283E600BC11F889315EE92C675C109C81065ED1BC\n-82A5583D1B723D50051B0557A367887F5B263014C6E77288B4883C50889473D3\n-3787BAD4BEB88BD1353AFA5B73E61814819537E7FF09F53EF94792BB3DD36ED0\n-002D0E7A6CDAB85A9C17AF5664BCB5A71663B861880F3ECCABC8E7A2FC81A4CC\n-AE7A87503FDC1CE0077BA51ECC7B43B60793FED8E9AAD5BBD03ADD6183DCD26D\n-24A74163611C05562437644EF9B8889FD4F9D311911204FEFD35237486F2D2D0\n-B6783A03BF12EA6D19D6D0F87E4D08515F12F9CBF1961CAA71E0D69FE3C4C4D2\n-7C7FB64ED24F8684C8F00C2BEDEA53EA390CDC0B5BEBD7DD982580B2EA1F1F89\n-CFED5916630DC2BA32BB9180277E1ABC339B3B7DE086717BD93F7FF3681BA5B3\n-FCF671C4B293C2DE4A322F0AA3323A4934444C69F23EF90120B8755482757759\n-C457A435FB8BB4922BD92C5F3D9555D978275C510183E29DFF2FCE4ABBFC18DE\n-76CAD3B486BA12047DD808CD4D521A0FD368E4AE79DE262630983A5D6F0B679D\n-2F005306393C520E1B6987302D029939D94B0178DC55D5264E1FEA468AD4134C\n-8C65B2FBBE8DE8284E8E1F6BFE0B648F44D3DA8E9350D266EDBFD4A7054D9355\n-1E0B185DED37BCF32D3731358F1D707C94109428BAD3CEA456A2A43553E3D2C2\n-F549189201F3D3F715310E3E8C6A2E9AA5141AA9125D203694C7D875C2DD320F\n-C5BCDFC924F6C04DBC7A97349B45ECD0FBD7D2123ED1D3A9F440B1112BE62779\n-47A4592F9285CBD9635EC9091CEC0AFD7E6B6976974081DB9C0E43165BD8584D\n-6CDF08DED287F0883A9FBD351B3F8706BA1E94C7CA487338269482EB8DC1A05D\n-F6632A5D834DE29228C49C5BA65EF7C535A53B380BF4B391F43562147538EE97\n-E799DFC2C40315859F56BBCE9CAE1DF9293F6E2C193ABE7A724EC8F32FA220E7\n-6026877A63E318254F2AF7B1325D63FC4C52B536D3EF354814C2F8F1EEA30569\n-6EF04447DB0F809DF35B4985B9FB4F4BB6087310BE633E76F268B32ABA99CE8E\n-03163DFF4AEDB88E60DD0848C15E90026D7C24D81122EBC07113F9851914A9D5\n-D0E09C2BFDDAF10C5D8208E8329BC0C402F231CD84C95EFDD182AD9756662110\n-274650C7A5BB0D8EFA54EC6C5A49C0EB26701A54779AE8EFBBED824262761602\n-680EDFB38F0FE18C0F501F5AA8BF48A8F0DD3E5E1EBEB872F6F6B23964707B32\n-507FC677B9FDDC990E3828B06420F6F968B2F6AE81E76A2144B1ECE905485616\n-CFB29AC96DDE1F5039935D7E385CC13E34DD7EAF276A2EA3A8BF27FD4205AE13\n-7FE620E42F2CF231C6C8DD8EFC5A6CF081E5660D9ADD730D72D15C02B1E15FF3\n-D741D3B1EB1E666C4E562219033C1E2EF3F96E136998B2E1890395A3637A2C02\n-DE1C46AFCA8D898439F06606A2295D3F7ED6C7DB250C61B6B97A0D5EDDB9657E\n-E790B4E07540BB1026036F4A0D00E7F16FD757AD61D686620C6814B7DCEC43E8\n-FD36D9E75BA554F64548A67D9B0A26E11784E58D4357FC251D71B5D6D8BFDDE0\n-D3BF0E825DA5312C1904AF13C5905C2ADF79C357476183D2EC5A95243235E861\n-2F98D9EE77EF8F8CB3EC6BD358C5ED37DD3AF44D60575E7774BF96F1AE9DFAD1\n-F8646DEDF21D10311854726B8F7D25876BB1EF78E2442B16ED4B851816CF0A27\n-11FDFCE525002A1A7C3E62CD2A3EDE6FAADB026D2F3A46C030ADB22422CA8FF5\n-2545ED58C0D9FB5BDB55FE674301E91A75B005B86BD201D246F7ADACE50419FD\n-AC3312CAC5EB78A36F0E5F62E65AC92129CB574AAC59E0A7C1390DFC61F39D9E\n-D7036742F2F6E64D1EF8157E9CCF65F3EEDC6A8220235978B8E06EB80F649F3E\n-204CFB497F49306EA8E1F7B62305978A28F1E771ED82C6592C71022154E4062A\n-A92335EFC65D6DED9C686899FFD7AA2988740618C03C5E362E1AF352E3BE4602\n-5530C51E5FC8E9082DF79199CC91C50174000D337D86127AC807C5A3C81DDE57\n-7A68AEE7230949B925365C214D77C80E87CEE218ABC94023717EA43BA5D8A7C8\n-8A8B9BD1B767996AE33050E3D922ED0574E3579C57E4BDDAD35883806AFDF260\n-3AB5D83D451583262E580FFDB7A27D82396AF18D92B849A3F7A7E621987D5DF0\n-038F876C6E9CA47FB11AF05F0019191C5DDC5F0177AD421E94BC66D0CCB82F1F\n-93A80836284B095503752C600F72E2C89112ABFA5B76152691264103B268B3E5\n-8816724ADADB38740001A9AACE05C8AF02D72918606DC22EFC8BF0DA0FD12FFE\n-D3A09F8E28057F327BFB633E604B1EAD478637B1D9631650B314CC62D7E0E87F\n-9D3FE1FFA23BB6E3006C3E39BED52F6B0C1C651B5913878F36DA0BF776889165\n-68BA3456B40B8B471CA8FF5238E43D9113E052A2B8D2EAA2433D3F89FCA48AFB\n-5E842913E4ED6DF9623354059CD1F1707B126FED80349787C869883120183EDD\n-249185A55503FAC53898F52170D05CAC62BB742CF9702C0518AED6B27CDC401C\n-932E02143FD916703F360CB31049501B35EF3EDDFED791090D0CFA221FD1DB32\n-7D4759CE07983AE29C258C705D11E7D9481EEAAB9B6BA65CDCF0AA0057BD6FEA\n-ABBFBD3ABF2A7BFB550C3D2A16DC447384A89F3DB6D9C2DBDCA997ABE35A7706\n-633D328AECEDB5BD07070C1B96267FD73B45791DD18194F60D358091FBE88409\n-973529806F3D2C9E6E39091F90A14B560A987E0B9490B9B690FB489B8E253070\n-D7C54447BE0E0A0BFEAEFFB581DC1300E6EC382984673BF0665632404E59B5BF\n-5D5F0A1C956E618C0487751CA5DAE8A95C214F76ED756694EF273679CD2D85CB\n-949DF385BD50491649EFEFDA1574921D7460143D42A100D2C76E55F0BC\n+1B2FA10DF7E91D3BB34A1B1CE7A0015A57C813E0280D873ADB8844004B9BA1CC\n+580D3C6BDA4DC1B80B4365F1C80512453FC5316EC2D928FB731C3D6403E3C18B\n+E8424D644DF5E9A2134229C5C91CA68DB8E85BA2BB40F538F585DA6FA4037718\n+B8053EBBA1E765346BCD5BDAA6C38115D31611D8A87A2238C145F2DA2F92E4DF\n+3987BD9C4D2A3D460E8941A68B125BCD9EE4F9FD262C4C8A71F47A2C81975635\n+F1B981C274C53FA2ACCDE4C9D0A7C62D6C1EFF91CFC6712CA6A9F333C9564FCB\n+2A70F0AD715A79B10A08AB069E2A3C93BC0AED19D0CA10134B8DDDE8AF548DB2\n+3A4AAA9C29682CF135BB767DAA16169A127EB50A7EECEB6480CF56A7D0F8AC56\n+4A5090B3D75A790372886AF568D94C8165975A05BFBFDF1FFBA45F70700BB9E0\n+57F3249EF9E9C8AD9CBCF6E4FD592DC4CDD2CC7C0BC3130C1059096C657BE453\n+A2CBACE93420210E27AF56CA229BD6D982FB68B3FDC6D44478B922C4231C47EE\n+E500232F6C11D92DEB955F66DF52B92B22E7352790CC2DCBAC53965D57AC2920\n+68B7D520DE25047146EFEB06B9AD4E2A94243C7E5239F0BC2FC312B16051D52C\n+0B92C217B6B42997321AE4F8BB066754B7AA3F15069EF59224E8A442CE471AA7\n+E8049A3DD9EDA09CCEE4998998661CF7DB35E952F6C65DAEB3013951C59F3E09\n+157F313B0237876E1C0190F0473819570B8C0205AADF05D787CC00979CFB327A\n+289382B22DDA6F12804ED0ED5B179E36A995A2A59E1B66E75130DBE9109C813B\n+94403E0DEA8314A1E9DB474D7FA83C0BAFD08033E6A6215844C1D26BE15F1251\n+A1605E8DF9A9C601ED37379530BC1C82BE5463C6C711C5652BFD6262485AA9CA\n+B8C4A117593001D08D980041E2A83C190DCE8E6CD3D334E5CC19FC05DB30F7F7\n+24A305C4DBB31F0651392B99D44B4302333BDF7E326FD256DD75D309C6E73F85\n+FA71B35FD1F9BEFF4C7A1076362EEB0A85492933B6006086A7B8C1928CF2D1EE\n+FD4344409257BB802C117E739960821CD3C88BFBA5669FF16F610AD638AF3677\n+8674C985E6767253ED5769F71BEA5E9BB02A751F9E62EE2B18AC19D975FDEAE9\n+8B8822367FF177A7E850766DE99ED3366D46464612926430012212A90F8E85F4\n+4760B40D5B86B90819EE410382D22D8ED82D0B0AB00C93E10CD365F8766D1C87\n+B4A866021FB6F6AC3D250CC601989B1B8FE6B1098A48282D2CF258BF38FEE940\n+CE0141FB1344156DE7712A8F2DBF700174F12616EE17C852210D96D03E5E6635\n+D439EB6E84A383DDD32AD72DADE6F931FDBABBDC726C36081C96018FC95EAE13\n+DA1F8DBC2D8355AC9792649653225393F4A7A88F3B9443FEEB75E2C15BF93F09\n+CCBA7FABC022BE26F4C28152D5DA6D690494AD4EC0DA1B598AE12536BADF88B5\n+5E20EB452546389F57FF55459567B453AE1831C57D22FA6A4FDF441EDAFDB7FB\n+4F4B707C1FF9159C40F7B5DD519FC07815EE91B8D756B6C18500BCF47D0D9E45\n+6A2D51B6AA5AEAAC9AB2DEF7F0FDE957B6C179CBADEECAC7E9CEC248AB135EB4\n+FBF83D002FF859B574EF36C371540EF2BCFCEF5C2E7863AEDD7C3C965103453B\n+023A9CEC1D5C45B88827ADF4AE0C6746F3C7E6A944427DAEC493601019583A16\n+0F846CE00EAE89EEFF9CE68A0E1D6EBB8FDD8A45D1BF399B36A8328EC957CB8B\n+D842A56269C8C9A6B472C9E65BCBC090606B4E8A7EF4ABDEA120C9F9B3969A1C\n+2EB102925F4E155160E58000E1ADB0D19E10EFD96F6C3225EEE8FC24D122C069\n+C11F1A69DC383F7DACD2F3929BD135CE69787C6E7560AC4B683FE5D9AAFD2E89\n+EE6D95E38C9B726B416E28169A11E29559DBA9AECD714CF318FCB78F34A0E562\n+9C00FE0C6D5A848557D9A82EC2BEFCD30B5EDC0B23C5BA9F812C864394C8B9D1\n+B08BAC9CF94E70FF842306ACCFE6E39A56777C712904A3AB29FBD19275E19E06\n+B35B37CFFFCEC81CAF2D85A853663FAFCFFED1EA77064AA28C15BC94910683BC\n+D09513079DE9EE18E97CC2403DD206516D7F652A3459870757F34EEDCEF952C3\n+FE8004F4716B5BD6774E455010B0BB1E61FCD66B9F14F9BBCCF3E55A158EE96E\n+9A05BDFDDC7706D4BC28FDDC4004EF3A430C607EBDF115E0C996454D70C8BB42\n+D7C83A454B116663D648C23CE2B33365810DE2B64D4AE011BC8043BC3E05B94D\n+1700F859C6AFC6515C1C42FA104EE3E8F3FA5F80252C2E79B00ED27F675FFD09\n+B50BF7A3C63CF4856F909DF969D7DD3EA05CABDD1E71A58CFC2AB5F614B4E5E0\n+25CF92E9FB66ACEBE05DF5E033DA8AD3EE32D94C02D98DD7DA99FAB5AEA595C3\n+2987DC122F0242D76B782349E4069DE0CDD6EF4375C680CBFE4C8F24F2AE89BF\n+7785F5EA7435A91500F265022C307E8ADEAAE1C6\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n@@ -3295,16 +3282,16 @@\n 59 4[44 44 3[56 62 93 31 2[31 62 2[51 62 50 1[54 11[86\n 5[84 5[42 6[80 13[56 56 56 56 2[31 46[{}23 99.6264 /CMBX12\n rf /Fc 137[62 1[62 62 9[62 62 27[62 8[62 67[{}7 119.552\n /CMTT12 rf /Fd 134[71 3[75 52 53 55 1[75 67 75 112 3[37\n 75 1[41 61 75 60 1[65 13[75 2[92 11[103 17[67 67 2[37\n 46[{}22 119.552 /CMBX12 rf /Fe 141[38 2[46 51 2[42 1[28\n 46 42 1[42 1[42 14[65 1[66 11[59 62 69 2[68 6[28 58[{}16\n-90.9091 /CMTI10 rf /Ff 138[51 35 36 11[45 37[68 6[25\n-4[45 1[45 45 1[45 3[25 44[{}11 90.9091 /CMSL10 rf\n+90.9091 /CMTI10 rf /Ff 134[48 3[51 8[25 33[47 15[25 5[45\n+1[45 45 45 3[25 44[{}10 90.9091 /CMSL10 rf\n %DVIPSBitmapFont: Fg tcrm1095 10.95 1\n [/Grave/Acute/Circumflex/Tilde/Dieresis/Hungarumlaut/Ring/Caron/Breve/Macron\n /Dotaccent/cedilla/ogonek/quotesinglbase.ts1 4{/.notdef}repeat\n /quotedblbase.ts1/.notdef/.notdef/twelveudash/threequartersemdash\n /afii61664.cap/arrowleft/arrowright/tieaccentlowercase/tieaccentcapital\n /tieaccentlowercase.new/tieaccentcapital.new/.notdef/afii61664.asc/uni2422 3\n {/.notdef}repeat/dollar/.notdef/.notdef/quotesingle/.notdef/.notdef\n@@ -3415,17 +3402,17 @@\n (not)h(y)m(et)h(zero.)141 5294 y(Ha)m(ving)27 b(a)g(lo)s(c)m(k)g(asso)s\n (ciated)g(with)f(a)h Fh(ChvList)d Fi(ob)5 b(ject)27 b(is)f(optional,)i\n (for)e(example,)i(it)e(is)g(not)g(needed)g(during)0 5407\n y(a)31 b(serial)h(factorization)i(nor)c(a)i(MPI)f(factorization.)45\n b(In)31 b(the)g(latter)h(case)g(there)g(is)f(one)g Fh(ChvList)e\n Fi(p)s(er)h(pro)s(cess.)1927 5656 y(1)p eop end\n %%Page: 2 2\n-TeXDict begin 2 1 bop 0 100 a Fi(2)p 136 100 1098 4 v\n-1280 w Fh(ChvList)28 b Ff(:)41 b Fe(DRAFT)30 b Ff(August)g(3,)h(2025)p\n-2802 100 V 0 399 a Fi(F)-8 b(or)35 b(a)g(m)m(ultithreaded)g\n+TeXDict begin 2 1 bop 0 100 a Fi(2)p 136 100 1156 4 v\n+1338 w Fh(ChvList)28 b Ff(:)41 b Fe(DRAFT)30 b Ff(July)g(1,)h(2024)p\n+2745 100 V 0 399 a Fi(F)-8 b(or)35 b(a)g(m)m(ultithreaded)g\n (factorization)i(there)d(is)h(one)f Fh(ChvList)f Fi(ob)5\n b(ject)35 b(that)g(is)g(shared)e(b)m(y)i(all)g(threads.)52\n b(The)0 511 y(m)m(utual)22 b(exclusion)h(lo)s(c)m(k)g(that)f(is)g\n (\\(optionally\\))i(em)m(b)s(edded)d(in)h(the)g Fh(ChvList)e\n Fi(ob)5 b(ject)23 b(is)f(a)g Fh(Lock)f Fi(ob)5 b(ject)23\n b(from)e(this)0 624 y(library)-8 b(.)39 b(It)27 b(is)f(inside)g(the)g\n Fh(Lock)f Fi(ob)5 b(ject)27 b(that)g(w)m(e)f(ha)m(v)m(e)i(a)e(m)m\n@@ -3478,35 +3465,35 @@\n (and)d Fh(heads)p Fi(,)227 5251 y Fh(counts)p Fi(,)29\n b Fh(lock)g Fi(and)h Fh(flags)f Fi(are)i(set)g(to)g Fh(NULL)e\n Fi(.)227 5407 y Fe(Err)-5 b(or)34 b(che)-5 b(cking:)40\n b Fi(If)30 b Fh(list)g Fi(is)g Fh(NULL)p Fi(,)f(an)i(error)f(message)h\n (is)g(prin)m(ted)f(and)f(the)i(program)f(exits.)p eop\n end\n %%Page: 3 3\n-TeXDict begin 3 2 bop 91 100 1098 4 v 1280 100 a Fh(ChvList)28\n-b Ff(:)41 b Fe(DRAFT)121 b Ff(August)30 b(3,)h(2025)p\n-2755 100 V 1098 w Fi(3)111 399 y(3.)46 b Fh(void)h(ChvList_clearData)c\n-(\\()k(ChvList)f(*list)h(\\))g(;)227 555 y Fi(This)41 b(metho)s(d)g\n-(clears)h(the)g(ob)5 b(ject)42 b(and)f(free's)h(an)m(y)g(o)m(wned)f\n-(data)i(b)m(y)e(calling)i Fh(Chv)p 3220 555 29 4 v 34\n-w(free\\(\\))c Fi(for)j(eac)m(h)227 668 y(ob)5 b(ject)36\n-b(on)f(the)h(free)f(list.)56 b(If)35 b Fh(heads)f Fi(is)h(not)g\n-Fh(NULL)p Fi(,)g(it)g(is)h(free'd.)55 b(If)35 b Fh(counts)e\n-Fi(is)i(not)h Fh(NULL)p Fi(,)e(it)i(is)f(free'd)227 781\n-y(via)43 b(a)f(call)h(to)g Fh(IVfree\\(\\))p Fi(.)73 b(If)41\n-b Fh(flags)f Fi(is)i(not)g Fh(NULL)p Fi(,)f(it)i(is)e(free'd)h(via)h(a)\n-f(call)h(to)g Fh(CVfree\\(\\))p Fi(.)72 b(If)42 b(the)227\n-894 y(lo)s(c)m(k)f(is)f(not)g Fh(NULL)p Fi(,)g(it)g(is)g(destro)m(y)m\n-(ed)h(via)g(a)f(call)h(to)g Fh(Lock)p 2312 894 V 33 w(free\\(\\))p\n-Fi(.)68 b(There)39 b(is)h(a)h(concluding)f(call)h(to)227\n-1007 y Fh(ChvList)p 569 1007 V 33 w(setDefaultFields\\(\\))p\n-Fi(.)227 1164 y Fe(Err)-5 b(or)34 b(che)-5 b(cking:)40\n-b Fi(If)30 b Fh(list)g Fi(is)g Fh(NULL)p Fi(,)f(an)i(error)f(message)h\n-(is)g(prin)m(ted)f(and)f(the)i(program)f(exits.)111 1364\n-y(4.)46 b Fh(void)h(ChvList_free)d(\\()k(ChvList)e(*list)g(\\))h(;)227\n+TeXDict begin 3 2 bop 91 100 1156 4 v 1337 100 a Fh(ChvList)29\n+b Ff(:)40 b Fe(DRAFT)121 b Ff(July)30 b(1,)h(2024)p 2697\n+100 V 1156 w Fi(3)111 399 y(3.)46 b Fh(void)h(ChvList_clearData)c(\\()k\n+(ChvList)f(*list)h(\\))g(;)227 555 y Fi(This)41 b(metho)s(d)g(clears)h\n+(the)g(ob)5 b(ject)42 b(and)f(free's)h(an)m(y)g(o)m(wned)f(data)i(b)m\n+(y)e(calling)i Fh(Chv)p 3220 555 29 4 v 34 w(free\\(\\))c\n+Fi(for)j(eac)m(h)227 668 y(ob)5 b(ject)36 b(on)f(the)h(free)f(list.)56\n+b(If)35 b Fh(heads)f Fi(is)h(not)g Fh(NULL)p Fi(,)g(it)g(is)h(free'd.)\n+55 b(If)35 b Fh(counts)e Fi(is)i(not)h Fh(NULL)p Fi(,)e(it)i(is)f\n+(free'd)227 781 y(via)43 b(a)f(call)h(to)g Fh(IVfree\\(\\))p\n+Fi(.)73 b(If)41 b Fh(flags)f Fi(is)i(not)g Fh(NULL)p\n+Fi(,)f(it)i(is)e(free'd)h(via)h(a)f(call)h(to)g Fh(CVfree\\(\\))p\n+Fi(.)72 b(If)42 b(the)227 894 y(lo)s(c)m(k)f(is)f(not)g\n+Fh(NULL)p Fi(,)g(it)g(is)g(destro)m(y)m(ed)h(via)g(a)f(call)h(to)g\n+Fh(Lock)p 2312 894 V 33 w(free\\(\\))p Fi(.)68 b(There)39\n+b(is)h(a)h(concluding)f(call)h(to)227 1007 y Fh(ChvList)p\n+569 1007 V 33 w(setDefaultFields\\(\\))p Fi(.)227 1164\n+y Fe(Err)-5 b(or)34 b(che)-5 b(cking:)40 b Fi(If)30 b\n+Fh(list)g Fi(is)g Fh(NULL)p Fi(,)f(an)i(error)f(message)h(is)g(prin)m\n+(ted)f(and)f(the)i(program)f(exits.)111 1364 y(4.)46\n+b Fh(void)h(ChvList_free)d(\\()k(ChvList)e(*list)g(\\))h(;)227\n 1521 y Fi(This)29 b(metho)s(d)g(releases)i(an)m(y)f(storage)h(b)m(y)e\n (a)h(call)h(to)f Fh(ChvList)p 2395 1521 V 32 w(clearData\\(\\))d\n Fi(and)i(then)g(free)h(the)f(space)227 1634 y(for)h Fh(list)p\n Fi(.)227 1791 y Fe(Err)-5 b(or)34 b(che)-5 b(cking:)40\n b Fi(If)30 b Fh(list)g Fi(is)g Fh(NULL)p Fi(,)f(an)i(error)f(message)h\n (is)g(prin)m(ted)f(and)f(the)i(program)f(exits.)0 2078\n y Fb(1.2.2)112 b(Initialization)39 b(metho)s(ds)0 2281\n@@ -3551,17 +3538,17 @@\n 5138 y(metho)s(d)e(returns)f(0.)227 5294 y Fe(Err)-5\n b(or)34 b(che)-5 b(cking:)40 b Fi(If)29 b Fh(list)g Fi(is)h\n Fh(NULL)p Fi(,)f(or)h(if)g Fh(ilist)e Fi(is)i(not)h(in)e(the)h(range)h\n Fh([0,nlist\\))p Fi(,)c(an)j(error)g(message)227 5407\n y(is)h(prin)m(ted)f(and)f(zero)j(is)e(returned.)p eop\n end\n %%Page: 4 4\n-TeXDict begin 4 3 bop 0 100 a Fi(4)p 136 100 1098 4 v\n-1280 w Fh(ChvList)28 b Ff(:)41 b Fe(DRAFT)30 b Ff(August)g(3,)h(2025)p\n-2802 100 V 111 399 a Fi(3.)46 b Fh(Chv)h(*)h(ChvList_getList)43\n+TeXDict begin 4 3 bop 0 100 a Fi(4)p 136 100 1156 4 v\n+1338 w Fh(ChvList)28 b Ff(:)41 b Fe(DRAFT)30 b Ff(July)g(1,)h(2024)p\n+2745 100 V 111 399 a Fi(3.)46 b Fh(Chv)h(*)h(ChvList_getList)43\n b(\\()48 b(ChvList)e(*list,)g(int)h(ilist)f(\\))h(;)227\n 549 y Fi(If)28 b(list)h Fh(ilist)e Fi(is)h(empt)m(y)-8\n b(,)30 b(the)f(metho)s(d)f(returns)f Fh(NULL)p Fi(.)g(Otherwise,)i(if)f\n (the)h(list)g(needs)f(to)h(b)s(e)e(lo)s(c)m(k)m(ed,)k(the)227\n 662 y(lo)s(c)m(k)37 b(is)e(lo)s(c)m(k)m(ed.)57 b(The)34\n b(head)h(of)h(the)f(list)h(is)f(sa)m(v)m(ed)i(to)f(a)f(p)s(oin)m(ter)h\n (and)e(then)h(the)h(head)f(is)g(set)h(to)g Fh(NULL)p\n", "details": [{"source1": "ps2ascii {}", "source2": "ps2ascii {}", "unified_diff": "@@ -22,15 +22,15 @@\n The \ufb01rst two operations are queries, and can be done without locking the list. The third operation\r\n needs a lock only when two or more threads will be inserting objects into the list. The fourth\r\n operation requires a lock only when one thread will add an object while another thread removes\r\n the object and the incoming count is not yet zero.\r\n Having a lock associated with a ChvList object is optional, for example, it is not needed during\r\n a serial factorization nor a MPI factorization. In the latter case there is one ChvList per process.\r\n 1\r\n- 2 ChvList : DRAFT August 3, 2025\r\n+ 2 ChvList : DRAFT July 1, 2024\r\n For a multithreaded factorization there is one ChvList object that is shared by all threads. The\r\n mutualexclusion lock that is (optionally) embedded in the ChvListobject is a Lock object from this\r\n library. It is inside the Lock object that we have a mutual exclusion lock. Presently we support the\r\n Solaris and POSIX thread packages. Porting the multithreaded codes to another platform should\r\n be simple if the POSIX thread package is present. Another type of thread package will require\r\n some modi\ufb01cations to the Lock object, but none to the ChvList objects.\r\n 1.1 Data Structure\r\n@@ -52,15 +52,15 @@\n 1. ChvList * ChvList_new ( void ) ;\r\n This method simply allocates storage for the ChvList structure and then sets the default\r\n \ufb01elds by a call to ChvList setDefaultFields().\r\n 2. void ChvList_setDefaultFields ( ChvList *list ) ;\r\n The structure\u2019s \ufb01elds are set to default values: nlist and nlocks set to zero, and heads,\r\n counts, lock and flags are set to NULL .\r\n Error checking: If list is NULL, an error message is printed and the program exits.\r\n- ChvList : DRAFT August 3, 2025 3\r\n+ ChvList : DRAFT July 1, 2024 3\r\n 3. void ChvList_clearData ( ChvList *list ) ;\r\n This method clears the object and free\u2019s any owned data by calling Chv free() for each\r\n object on the free list. If heads is not NULL, it is free\u2019d. If counts is not NULL, it is free\u2019d\r\n via a call to IVfree(). If flags is not NULL, it is free\u2019d via a call to CVfree(). If the\r\n lock is not NULL, it is destroyed via a call to Lock free(). There is a concluding call to\r\n ChvList setDefaultFields().\r\n Error checking: If list is NULL, an error message is printed and the program exits.\r\n@@ -87,15 +87,15 @@\n Error checking: If list is NULL, or if ilist is not in the range [0,nlist), an error message\r\n is printed and zero is returned.\r\n 2. int ChvList_isCountZero ( ChvList *list, int ilist ) ;\r\n If counts is NULL, or if counts[ilist] equal to zero, the method returns 1. Otherwise, the\r\n method returns 0.\r\n Error checking: If list is NULL, or if ilist is not in the range [0,nlist), an error message\r\n is printed and zero is returned.\r\n- 4 ChvList : DRAFT August 3, 2025\r\n+ 4 ChvList : DRAFT July 1, 2024\r\n 3. Chv * ChvList_getList ( ChvList *list, int ilist ) ;\r\n If list ilist is empty, the method returns NULL. Otherwise, if the list needs to be locked, the\r\n lock is locked. The head of the list is saved to a pointer and then the head is set to NULL.\r\n If the list was locked, the number of locks is incremented and the lock unlocked. The saved\r\n pointer is returned.\r\n Error checking: If list is NULL, or if ilist is not in the range [0,nlist), an error message\r\n is printed and zero is returned.\r\n"}]}]}, {"source1": "./usr/share/doc/spooles-doc/ChvManager.ps.gz", "source2": "./usr/share/doc/spooles-doc/ChvManager.ps.gz", "unified_diff": null, "details": [{"source1": "ChvManager.ps", "source2": "ChvManager.ps", "unified_diff": "@@ -10,15 +10,15 @@\n %%EndComments\n %%BeginDefaults\n %%ViewingOrientation: 1 0 0 1\n %%EndDefaults\n %DVIPSWebPage: (www.radicaleye.com)\n %DVIPSCommandLine: dvips main -o ChvManager.ps\n %DVIPSParameters: dpi=600\n-%DVIPSSource: TeX output 2025.08.03:1317\n+%DVIPSSource: TeX output 2024.07.01:0700\n %%BeginProcSet: tex.pro 0 0\n %!\n /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S\n N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72\n mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0\n 0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{\n landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize\n@@ -1157,23 +1157,22 @@\n /UnderlinePosition -100 def\n /UnderlineThickness 50 def\n end readonly def\n /Encoding 256 array\n 0 1 255 {1 index exch /.notdef put} for\n dup 44 /comma put\n dup 48 /zero put\n+dup 49 /one put\n dup 50 /two put\n-dup 51 /three put\n-dup 53 /five put\n+dup 52 /four put\n dup 58 /colon put\n-dup 65 /A put\n-dup 103 /g put\n-dup 115 /s put\n-dup 116 /t put\n+dup 74 /J put\n+dup 108 /l put\n dup 117 /u put\n+dup 121 /y put\n readonly def\n currentdict end\n currentfile eexec\n D9D66F633B846AB284BCF8B0411B772DE5CE32340DC6F28AF40857E4451976E7\n 5182433CF9F333A38BD841C0D4E68BF9E012EB32A8FFB76B5816306B5EDF7C99\n 8B3A16D9B4BC056662E32C7CD0123DFAEB734C7532E64BBFBF5A60336E646716\n EFB852C877F440D329172C71F1E5D59CE9473C26B8AEF7AD68EF0727B6EC2E0C\n@@ -1354,79 +1353,67 @@\n 7CA1534C4D5B05FC33F83790ECFD7641DF3FB94289E2A1F6E7D29AB1228A867A\n 6E1EF0E9C6F899B491DC18401C2C0A05FFFED46A72C245F7529B8EA55A038082\n 8512307217D2A233C37004085BA3AEE379269F9FA7D0ADB4B19A95CC2AFE686E\n 55D88E47257C1FE6F235FEA295910569FE6DD5995512562359CC821E85A6C7A5\n 79B470A9E340A6985189FF8B6AF914A6B0ECF93F47903221F95DE894A8F05B05\n B7D99CD533EC5F931B18E6B39BECF67FA2D6DD1AEC76772B068BE06335A94C05\n 7A4DDEE77B66101DA855C17AC312600370B34E31F5EC3A01300A8EB60B4C9767\n-1B2FA10DF7E91D3BB34A1B1CE7A0015A57C813E0280D873ADB88440048702D1F\n-77994EE04EC3B4531D6E1888C86A8F0DA6CF1F056F16AB0DD76C862830F89DA4\n-28923B3AA543E0D6E41D3BD283E600BC11F889315EE92C675C109C81065ED1BC\n-82A5583D1B723D50051B0557A367887F5B263014C6E77288B4883C50889473D3\n-3787BAD4BEB88BD1353AFA5B73E61814819537E7FF09F53EF94792BB3DD36ED0\n-002D0E7A6CDAB85A9C17AF5664BCB5A71663B861880F3ECCABC8E7A2FC81A4CC\n-AE7A87503FDC1CE0077BA51ECC7B43B60793FED8E9AAD5BBD03ADD6183DCD26D\n-24A74163611C05562437644EF9B8889FD4F9D311911204FEFD35237486F2D2D0\n-B6783A03BF12EA6D19D6D0F87E4D08515F12F9CBF1961CAA71E0D69FE3C4C4D2\n-7C7FB64ED24F8684C8F00C2BEDEA53EA390CDC0B5BEBD7DD982580B2EA1F1F89\n-CFED5916630DC2BA32BB9180277E1ABC339B3B7DE086717BD93F7FF3681BA5B3\n-FCF671C4B293C2DE4A322F0AA3323A4934444C69F23EF90120B8755482757759\n-C457A435FB8BB4922BD92C5F3D9555D978275C510183E29DFF2FCE4ABBFC18DE\n-76CAD3B486BA12047DD808CD4D521A0FD368E4AE79DE262630983A5D6F0B679D\n-2F005306393C520E1B6987302D029939D94B0178DC55D5264E1FEA468AD4134C\n-8C65B2FBBE8DE8284E8E1F6BFE0B648F44D3DA8E9350D266EDBFD4A7054D9355\n-1E0B185DED37BCF32D3731358F1D707C94109428BAD3CEA456A2A43553E3D2C2\n-F549189201F3D3F715310E3E8C6A2E9AA5141AA9125D203694C7D875C2DD320F\n-C5BCDFC924F6C04DBC7A97349B45ECD0FBD7D2123ED1D3A9F440B1112BE62779\n-47A4592F9285CBD9635EC9091CEC0AFD7E6B6976974081DB9C0E43165BD8584D\n-6CDF08DED287F0883A9FBD351B3F8706BA1E94C7CA487338269482EB8DC1A05D\n-F6632A5D834DE29228C49C5BA65EF7C535A53B380BF4B391F43562147538EE97\n-E799DFC2C40315859F56BBCE9CAE1DF9293F6E2C193ABE7A724EC8F32FA220E7\n-6026877A63E318254F2AF7B1325D63FC4C52B536D3EF354814C2F8F1EEA30569\n-6EF04447DB0F809DF35B4985B9FB4F4BB6087310BE633E76F268B32ABA99CE8E\n-03163DFF4AEDB88E60DD0848C15E90026D7C24D81122EBC07113F9851914A9D5\n-D0E09C2BFDDAF10C5D8208E8329BC0C402F231CD84C95EFDD182AD9756662110\n-274650C7A5BB0D8EFA54EC6C5A49C0EB26701A54779AE8EFBBED824262761602\n-680EDFB38F0FE18C0F501F5AA8BF48A8F0DD3E5E1EBEB872F6F6B23964707B32\n-507FC677B9FDDC990E3828B06420F6F968B2F6AE81E76A2144B1ECE905485616\n-CFB29AC96DDE1F5039935D7E385CC13E34DD7EAF276A2EA3A8BF27FD4205AE13\n-7FE620E42F2CF231C6C8DD8EFC5A6CF081E5660D9ADD730D72D15C02B1E15FF3\n-D741D3B1EB1E666C4E562219033C1E2EF3F96E136998B2E1890395A3637A2C02\n-DE1C46AFCA8D898439F06606A2295D3F7ED6C7DB250C61B6B97A0D5EDDB9657E\n-E790B4E07540BB1026036F4A0D00E7F16FD757AD61D686620C6814B7DCEC43E8\n-FD36D9E75BA554F64548A67D9B0A26E11784E58D4357FC251D71B5D6D8BFDDE0\n-D3BF0E825DA5312C1904AF13C5905C2ADF79C357476183D2EC5A95243235E861\n-2F98D9EE77EF8F8CB3EC6BD358C5ED37DD3AF44D60575E7774BF96F1AE9DFAD1\n-F8646DEDF21D10311854726B8F7D25876BB1EF78E2442B16ED4B851816CF0A27\n-11FDFCE525002A1A7C3E62CD2A3EDE6FAADB026D2F3A46C030ADB22422CA8FF5\n-2545ED58C0D9FB5BDB55FE674301E91A75B005B86BD201D246F7ADACE50419FD\n-AC3312CAC5EB78A36F0E5F62E65AC92129CB574AAC59E0A7C1390DFC61F39D9E\n-D7036742F2F6E64D1EF8157E9CCF65F3EEDC6A8220235978B8E06EB80F649F3E\n-204CFB497F49306EA8E1F7B62305978A28F1E771ED82C6592C71022154E4062A\n-A92335EFC65D6DED9C686899FFD7AA2988740618C03C5E362E1AF352E3BE4602\n-5530C51E5FC8E9082DF79199CC91C50174000D337D86127AC807C5A3C81DDE57\n-7A68AEE7230949B925365C214D77C80E87CEE218ABC94023717EA43BA5D8A7C8\n-8A8B9BD1B767996AE33050E3D922ED0574E3579C57E4BDDAD35883806AFDF260\n-3AB5D83D451583262E580FFDB7A27D82396AF18D92B849A3F7A7E621987D5DF0\n-038F876C6E9CA47FB11AF05F0019191C5DDC5F0177AD421E94BC66D0CCB82F1F\n-93A80836284B095503752C600F72E2C89112ABFA5B76152691264103B268B3E5\n-8816724ADADB38740001A9AACE05C8AF02D72918606DC22EFC8BF0DA0FD12FFE\n-D3A09F8E28057F327BFB633E604B1EAD478637B1D9631650B314CC62D7E0E87F\n-9D3FE1FFA23BB6E3006C3E39BED52F6B0C1C651B5913878F36DA0BF776889165\n-68BA3456B40B8B471CA8FF5238E43D9113E052A2B8D2EAA2433D3F89FCA48AFB\n-5E842913E4ED6DF9623354059CD1F1707B126FED80349787C869883120183EDD\n-249185A55503FAC53898F52170D05CAC62BB742CF9702C0518AED6B27CDC401C\n-932E02143FD916703F360CB31049501B35EF3EDDFED791090D0CFA221FD1DB32\n-7D4759CE07983AE29C258C705D11E7D9481EEAAB9B6BA65CDCF0AA0057BD6FEA\n-ABBFBD3ABF2A7BFB550C3D2A16DC447384A89F3DB6D9C2DBDCA997ABE35A7706\n-633D328AECEDB5BD07070C1B96267FD73B45791DD18194F60D358091FBE88409\n-973529806F3D2C9E6E39091F90A14B560A987E0B9490B9B690FB489B8E253070\n-D7C54447BE0E0A0BFEAEFFB581DC1300E6EC382984673BF0665632404E59B5BF\n-5D5F0A1C956E618C0487751CA5DAE8A95C214F76ED756694EF273679CD2D85CB\n-949DF385BD50491649EFEFDA1574921D7460143D42A100D2C76E55F0BC\n+1B2FA10DF7E91D3BB34A1B1CE7A0015A57C813E0280D873ADB8844004B9BA1CC\n+580D3C6BDA4DC1B80B4365F1C80512453FC5316EC2D928FB731C3D6403E3C18B\n+E8424D644DF5E9A2134229C5C91CA68DB8E85BA2BB40F538F585DA6FA4037718\n+B8053EBBA1E765346BCD5BDAA6C38115D31611D8A87A2238C145F2DA2F92E4DF\n+3987BD9C4D2A3D460E8941A68B125BCD9EE4F9FD262C4C8A71F47A2C81975635\n+F1B981C274C53FA2ACCDE4C9D0A7C62D6C1EFF91CFC6712CA6A9F333C9564FCB\n+2A70F0AD715A79B10A08AB069E2A3C93BC0AED19D0CA10134B8DDDE8AF548DB2\n+3A4AAA9C29682CF135BB767DAA16169A127EB50A7EECEB6480CF56A7D0F8AC56\n+4A5090B3D75A790372886AF568D94C8165975A05BFBFDF1FFBA45F70700BB9E0\n+57F3249EF9E9C8AD9CBCF6E4FD592DC4CDD2CC7C0BC3130C1059096C657BE453\n+A2CBACE93420210E27AF56CA229BD6D982FB68B3FDC6D44478B922C4231C47EE\n+E500232F6C11D92DEB955F66DF52B92B22E7352790CC2DCBAC53965D57AC2920\n+68B7D520DE25047146EFEB06B9AD4E2A94243C7E5239F0BC2FC312B16051D52C\n+0B92C217B6B42997321AE4F8BB066754B7AA3F15069EF59224E8A442CE471AA7\n+E8049A3DD9EDA09CCEE4998998661CF7DB35E952F6C65DAEB3013951C59F3E09\n+157F313B0237876E1C0190F0473819570B8C0205AADF05D787CC00979CFB327A\n+289382B22DDA6F12804ED0ED5B179E36A995A2A59E1B66E75130DBE9109C813B\n+94403E0DEA8314A1E9DB474D7FA83C0BAFD08033E6A6215844C1D26BE15F1251\n+A1605E8DF9A9C601ED37379530BC1C82BE5463C6C711C5652BFD6262485AA9CA\n+B8C4A117593001D08D980041E2A83C190DCE8E6CD3D334E5CC19FC05DB30F7F7\n+24A305C4DBB31F0651392B99D44B4302333BDF7E326FD256DD75D309C6E73F85\n+FA71B35FD1F9BEFF4C7A1076362EEB0A85492933B6006086A7B8C1928CF2D1EE\n+FD4344409257BB802C117E739960821CD3C88BFBA5669FF16F610AD638AF3677\n+8674C985E6767253ED5769F71BEA5E9BB02A751F9E62EE2B18AC19D975FDEAE9\n+8B8822367FF177A7E850766DE99ED3366D46464612926430012212A90F8E85F4\n+4760B40D5B86B90819EE410382D22D8ED82D0B0AB00C93E10CD365F8766D1C87\n+B4A866021FB6F6AC3D250CC601989B1B8FE6B1098A48282D2CF258BF38FEE940\n+CE0141FB1344156DE7712A8F2DBF700174F12616EE17C852210D96D03E5E6635\n+D439EB6E84A383DDD32AD72DADE6F931FDBABBDC726C36081C96018FC95EAE13\n+DA1F8DBC2D8355AC9792649653225393F4A7A88F3B9443FEEB75E2C15BF93F09\n+CCBA7FABC022BE26F4C28152D5DA6D690494AD4EC0DA1B598AE12536BADF88B5\n+5E20EB452546389F57FF55459567B453AE1831C57D22FA6A4FDF441EDAFDB7FB\n+4F4B707C1FF9159C40F7B5DD519FC07815EE91B8D756B6C18500BCF47D0D9E45\n+6A2D51B6AA5AEAAC9AB2DEF7F0FDE957B6C179CBADEECAC7E9CEC248AB135EB4\n+FBF83D002FF859B574EF36C371540EF2BCFCEF5C2E7863AEDD7C3C965103453B\n+023A9CEC1D5C45B88827ADF4AE0C6746F3C7E6A944427DAEC493601019583A16\n+0F846CE00EAE89EEFF9CE68A0E1D6EBB8FDD8A45D1BF399B36A8328EC957CB8B\n+D842A56269C8C9A6B472C9E65BCBC090606B4E8A7EF4ABDEA120C9F9B3969A1C\n+2EB102925F4E155160E58000E1ADB0D19E10EFD96F6C3225EEE8FC24D122C069\n+C11F1A69DC383F7DACD2F3929BD135CE69787C6E7560AC4B683FE5D9AAFD2E89\n+EE6D95E38C9B726B416E28169A11E29559DBA9AECD714CF318FCB78F34A0E562\n+9C00FE0C6D5A848557D9A82EC2BEFCD30B5EDC0B23C5BA9F812C864394C8B9D1\n+B08BAC9CF94E70FF842306ACCFE6E39A56777C712904A3AB29FBD19275E19E06\n+B35B37CFFFCEC81CAF2D85A853663FAFCFFED1EA77064AA28C15BC94910683BC\n+D09513079DE9EE18E97CC2403DD206516D7F652A3459870757F34EEDCEF952C3\n+FE8004F4716B5BD6774E455010B0BB1E61FCD66B9F14F9BBCCF3E55A158EE96E\n+9A05BDFDDC7706D4BC28FDDC4004EF3A430C607EBDF115E0C996454D70C8BB42\n+D7C83A454B116663D648C23CE2B33365810DE2B64D4AE011BC8043BC3E05B94D\n+1700F859C6AFC6515C1C42FA104EE3E8F3FA5F80252C2E79B00ED27F675FFD09\n+B50BF7A3C63CF4856F909DF969D7DD3EA05CABDD1E71A58CFC2AB5F614B4E5E0\n+25CF92E9FB66ACEBE05DF5E033DA8AD3EE32D94C02D98DD7DA99FAB5AEA595C3\n+2987DC122F0242D76B782349E4069DE0CDD6EF4375C680CBFE4C8F24F2AE89BF\n+7785F5EA7435A91500F265022C307E8ADEAAE1C6\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n@@ -3097,18 +3084,18 @@\n TeXDict begin 40258437 52099151 1000 600 600 (main.dvi)\n @start /Fa 133[50 59 4[44 44 3[56 62 93 31 2[31 62 2[51\n 62 50 1[54 11[86 5[84 5[42 6[80 13[56 56 56 56 2[31 46[{}23\n 99.6264 /CMBX12 rf /Fb 137[62 3[62 3[62 5[62 62 1[62\n 3[62 19[62 9[62 67[{}9 119.552 /CMTT12 rf /Fc 134[71\n 3[75 52 53 55 1[75 67 75 112 3[37 75 1[41 61 75 60 1[65\n 13[75 2[92 11[103 17[67 67 2[37 46[{}22 119.552 /CMBX12\n-rf /Fd 138[51 35 36 11[45 37[68 6[25 4[45 1[45 45 1[45\n-3[25 44[{}11 90.9091 /CMSL10 rf /Fe 134[44 4[30 37 38\n-2[46 51 74 23 42 1[28 46 42 1[42 46 42 1[46 12[65 1[66\n-11[59 62 69 2[68 6[28 12[33 45[{}24 90.9091 /CMTI10 rf\n+rf /Fd 134[48 3[51 8[25 33[47 15[25 5[45 1[45 45 45 3[25\n+44[{}10 90.9091 /CMSL10 rf /Fe 134[44 4[30 37 38 2[46\n+51 74 23 42 1[28 46 42 1[42 46 42 1[46 12[65 1[66 11[59\n+62 69 2[68 6[28 12[33 45[{}24 90.9091 /CMTI10 rf\n %DVIPSBitmapFont: Ff tcrm1095 10.95 1\n [/Grave/Acute/Circumflex/Tilde/Dieresis/Hungarumlaut/Ring/Caron/Breve/Macron\n /Dotaccent/cedilla/ogonek/quotesinglbase.ts1 4{/.notdef}repeat\n /quotedblbase.ts1/.notdef/.notdef/twelveudash/threequartersemdash\n /afii61664.cap/arrowleft/arrowright/tieaccentlowercase/tieaccentcapital\n /tieaccentlowercase.new/tieaccentcapital.new/.notdef/afii61664.asc/uni2422 3\n {/.notdef}repeat/dollar/.notdef/.notdef/quotesingle/.notdef/.notdef\n@@ -3225,17 +3212,17 @@\n (recycling)i(mo)s(de.)141 5294 y(A)39 b(m)m(ultithreaded)g(en)m\n (vironmen)m(t)g(creates)h(some)f(di\\016culties.)66 b(Should)37\n b(there)i(b)s(e)f(one)h(manager)g(ob)5 b(ject)0 5407\n y(p)s(er)30 b(thread,)h(or)g(should)e(all)j(the)f(threads)g(share)f\n (one)h(ob)5 b(ject?)43 b(W)-8 b(e)32 b(ha)m(v)m(e)g(c)m(hosen)f(the)g\n (latter)i(course,)e(but)f(this)1927 5656 y(1)p eop end\n %%Page: 2 2\n-TeXDict begin 2 1 bop 0 100 a Fh(2)p 136 100 1074 4 v\n-1256 w Fg(DChvList)28 b Fd(:)41 b Fe(DRAFT)30 b Fd(August)g(3,)h(2025)p\n-2826 100 V 0 399 a Fh(requires)f(that)i(a)f(lo)s(c)m(k)h(b)s(e)e\n+TeXDict begin 2 1 bop 0 100 a Fh(2)p 136 100 1132 4 v\n+1314 w Fg(DChvList)28 b Fd(:)41 b Fe(DRAFT)30 b Fd(July)g(1,)h(2024)p\n+2768 100 V 0 399 a Fh(requires)f(that)i(a)f(lo)s(c)m(k)h(b)s(e)e\n (presen)m(t)h(to)h(guard)e(the)h(critical)i(section)f(of)f(co)s(de)g\n (where)f(one)h(searc)m(hes)h(or)f(adds)f(an)0 511 y(ob)5\n b(ject)38 b(to)g(the)f(list.)61 b(The)36 b(lo)s(c)m(k)i(w)m(e)g(use)e\n (is)h(a)h Fg(Lock)d Fh(ob)5 b(ject,)40 b(and)d(so)g(the)g\n Fg(ChvManager)d Fh(co)s(de)j(is)g(completely)0 624 y(indep)s(enden)m(t)\n c(of)i(the)f(thread)g(pac)m(k)-5 b(age.)55 b(P)m(orting)35\n b(to)g(a)g(new)e(system)i(migh)m(t)g(require)f(some)h(mo)s\n@@ -3288,20 +3275,20 @@\n (free'ing)h(the)g(ob)5 b(ject.)111 5146 y(1.)46 b Fg(ChvManager)f(*)j\n (ChvManager_new)c(\\()j(void)g(\\))g(;)227 5294 y Fh(This)28\n b(metho)s(d)f(simply)h(allo)s(cates)i(storage)g(for)e(the)g\n Fg(ChvManager)e Fh(structure)h(and)h(then)g(sets)g(the)h(default)227\n 5407 y(\\014elds)h(b)m(y)g(a)h(call)h(to)f Fg(ChvManager)p\n 1426 5407 V 32 w(setDefaultFields\\(\\))p Fh(.)p eop end\n %%Page: 3 3\n-TeXDict begin 3 2 bop 91 100 1074 4 v 1256 100 a Fg(DChvList)28\n-b Fd(:)41 b Fe(DRAFT)121 b Fd(August)30 b(3,)h(2025)p\n-2779 100 V 1074 w Fh(3)111 399 y(2.)46 b Fg(void)h\n-(ChvManager_setDefaultFie)o(lds)41 b(\\()48 b(ChvManager)d(*manager)g\n-(\\))j(;)227 548 y Fh(The)20 b(structure's)g(\\014elds)g(are)g(set)h(to)g\n-(default)g(v)-5 b(alues:)36 b Fg(mode)p Fh(,)21 b Fg(nactive)p\n+TeXDict begin 3 2 bop 91 100 1132 4 v 1313 100 a Fg(DChvList)29\n+b Fd(:)40 b Fe(DRAFT)121 b Fd(July)30 b(1,)h(2024)p 2721\n+100 V 1132 w Fh(3)111 399 y(2.)46 b Fg(void)h(ChvManager_setDefaultFie)\n+o(lds)41 b(\\()48 b(ChvManager)d(*manager)g(\\))j(;)227\n+548 y Fh(The)20 b(structure's)g(\\014elds)g(are)g(set)h(to)g(default)g\n+(v)-5 b(alues:)36 b Fg(mode)p Fh(,)21 b Fg(nactive)p\n Fh(,)g Fg(nbytesactive)p Fh(,)e Fg(nbytesrequested)p\n Fh(,)227 661 y Fg(nbytesalloc)p Fh(,)26 b Fg(nrequests)p\n Fh(,)h Fg(nreleases)p Fh(,)g Fg(nlocks)g Fh(and)h Fg(nunlocks)e\n Fh(set)j(to)h(zero,)g(and)e Fg(head)f Fh(and)h Fg(lock)227\n 774 y Fh(are)j(set)g(to)g Fg(NULL)e Fh(.)227 924 y Fe(Err)-5\n b(or)34 b(che)-5 b(cking:)40 b Fh(If)30 b Fg(manager)f\n Fh(is)h Fg(NULL)p Fh(,)g(an)g(error)g(message)h(is)g(prin)m(ted)f(and)f\n@@ -3365,17 +3352,17 @@\n Fg(Chv)f Fh(ob)5 b(jects)33 b(in)m(to)g(the)g(free)f(p)s(o)s(ol)g(of)g\n (ob)5 b(jects.)47 b(The)32 b(head)g(of)g(the)g(list)227\n 5258 y(is)f(the)f Fg(chv)g Fh(instance.)227 5407 y Fe(Err)-5\n b(or)34 b(che)-5 b(cking:)40 b Fh(If)30 b Fg(manager)f\n Fh(is)h Fg(NULL)p Fh(,)g(an)g(error)g(message)h(is)g(prin)m(ted)f(and)f\n (zero)j(is)e(returned.)p eop end\n %%Page: 4 4\n-TeXDict begin 4 3 bop 0 100 a Fh(4)p 136 100 1074 4 v\n-1256 w Fg(DChvList)28 b Fd(:)41 b Fe(DRAFT)30 b Fd(August)g(3,)h(2025)p\n-2826 100 V 0 399 a Fa(1.2.4)112 b(IO)38 b(metho)s(ds)111\n+TeXDict begin 4 3 bop 0 100 a Fh(4)p 136 100 1132 4 v\n+1314 w Fg(DChvList)28 b Fd(:)41 b Fe(DRAFT)30 b Fd(July)g(1,)h(2024)p\n+2768 100 V 0 399 a Fa(1.2.4)112 b(IO)38 b(metho)s(ds)111\n 595 y Fh(1.)46 b Fg(void)h(ChvManager_writeForHuman)o(Eye)41\n b(\\()48 b(ChvManager)d(*manager,)g(FILE)i(*fp)g(\\))g(;)227\n 745 y Fh(This)30 b(metho)s(d)g(writes)g(the)h(statistics)h(to)f(a)g\n (\\014le)f(in)g(user)g(readable)h(form.)227 896 y Fe(Err)-5\n b(or)34 b(che)-5 b(cking:)40 b Fh(If)30 b Fg(manager)f\n Fh(or)h Fg(fp)g Fh(are)h Fg(NULL)p Fh(,)e(an)h(error)g(message)i(is)e\n (prin)m(ted)g(and)g(zero)h(is)g(returned.)p eop end\n", "details": [{"source1": "ps2ascii {}", "source2": "ps2ascii {}", "unified_diff": "@@ -23,15 +23,15 @@\n \ufb01nds a smallest object of that size or larger.) If there is no object on the free pool of su\ufb03cient\r\n size, one is created and returned. When the user releases an object to the manager, the object\r\n is placed on the free pool.\r\n For the factorization, serial, multithreaded or MPI, we recommend using the recycling mode.\r\n A multithreaded environment creates some di\ufb03culties. Should there be one manager object\r\n per thread, or should all the threads share one object? We have chosen the latter course, but this\r\n 1\r\n- 2 DChvList : DRAFT August 3, 2025\r\n+ 2 DChvList : DRAFT July 1, 2024\r\n requires that a lock be present to guard the critical section of code where one searches or adds an\r\n object to the list. The lock we use is a Lock object, and so the ChvManager code is completely\r\n independent of the thread package. Porting to a new system might require some modi\ufb01cation to\r\n the Lock, but none to the manager object.\r\n Each manager object keeps track of certain statistics, bytes in their workspaces, the total\r\n number of bytes requested, the number of requests for a Chv objects, the number of releases, and\r\n the number of locks and unlocks.\r\n@@ -54,15 +54,15 @@\n ChvManager object.\r\n 1.2.1 Basic methods\r\n As usual, there are four basic methods to support object creation, setting default \ufb01elds, clearing\r\n any allocated data, and free\u2019ing the object.\r\n 1. ChvManager * ChvManager_new ( void ) ;\r\n This method simply allocates storage for the ChvManager structure and then sets the default\r\n \ufb01elds by a call to ChvManager setDefaultFields().\r\n- DChvList : DRAFT August 3, 2025 3\r\n+ DChvList : DRAFT July 1, 2024 3\r\n 2. void ChvManager_setDefaultFields ( ChvManager *manager ) ;\r\n Thestructure\u2019s\ufb01eldsaresettodefaultvalues: mode,nactive,nbytesactive,nbytesrequested,\r\n nbytesalloc, nrequests, nreleases, nlocks and nunlocks set to zero, and head and lock\r\n are set to NULL .\r\n Error checking: If manager is NULL, an error message is printed and the program exits.\r\n 3. void ChvManager_clearData ( ChvManager *manager ) ;\r\n This method clears the object and free\u2019s any owned data by calling Chv free() for each\r\n@@ -89,15 +89,15 @@\n 2. void ChvManager_releaseObject ( ChvManager *manager, Chv *chv ) ;\r\n This method releases the chv instance into the free pool of objects.\r\n Error checking: If manager is NULL, an error message is printed and zero is returned.\r\n 3. void ChvManager_releaseListOfObjects ( ChvManager *manager, Chv *chv ) ;\r\n This method releases a list of Chv objects into the free pool of objects. The head of the list\r\n is the chv instance.\r\n Error checking: If manager is NULL, an error message is printed and zero is returned.\r\n- 4 DChvList : DRAFT August 3, 2025\r\n+ 4 DChvList : DRAFT July 1, 2024\r\n 1.2.4 IO methods\r\n 1. void ChvManager_writeForHumanEye ( ChvManager *manager, FILE *fp ) ;\r\n This method writes the statistics to a \ufb01le in user readable form.\r\n Error checking: If manager or fp are NULL, an error message is printed and zero is returned.\r\n Index\r\n ChvManager clearData(), 3\r\n ChvManager free(), 3\r\n"}]}]}, {"source1": "./usr/share/doc/spooles-doc/Coords.ps.gz", "source2": "./usr/share/doc/spooles-doc/Coords.ps.gz", "unified_diff": null, "details": [{"source1": "Coords.ps", "source2": "Coords.ps", "unified_diff": "@@ -11,15 +11,15 @@\n %%EndComments\n %%BeginDefaults\n %%ViewingOrientation: 1 0 0 1\n %%EndDefaults\n %DVIPSWebPage: (www.radicaleye.com)\n %DVIPSCommandLine: dvips main -o Coords.ps\n %DVIPSParameters: dpi=600\n-%DVIPSSource: TeX output 2025.08.03:1317\n+%DVIPSSource: TeX output 2024.07.01:0700\n %%BeginProcSet: tex.pro 0 0\n %!\n /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S\n N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72\n mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0\n 0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{\n landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize\n@@ -1236,23 +1236,22 @@\n /UnderlinePosition -100 def\n /UnderlineThickness 50 def\n end readonly def\n /Encoding 256 array\n 0 1 255 {1 index exch /.notdef put} for\n dup 44 /comma put\n dup 48 /zero put\n+dup 49 /one put\n dup 50 /two put\n-dup 51 /three put\n-dup 53 /five put\n+dup 52 /four put\n dup 58 /colon put\n-dup 65 /A put\n-dup 103 /g put\n-dup 115 /s put\n-dup 116 /t put\n+dup 74 /J put\n+dup 108 /l put\n dup 117 /u put\n+dup 121 /y put\n readonly def\n currentdict end\n currentfile eexec\n D9D66F633B846AB284BCF8B0411B772DE5CE32340DC6F28AF40857E4451976E7\n 5182433CF9F333A38BD841C0D4E68BF9E012EB32A8FFB76B5816306B5EDF7C99\n 8B3A16D9B4BC056662E32C7CD0123DFAEB734C7532E64BBFBF5A60336E646716\n EFB852C877F440D329172C71F1E5D59CE9473C26B8AEF7AD68EF0727B6EC2E0C\n@@ -1433,79 +1432,67 @@\n 7CA1534C4D5B05FC33F83790ECFD7641DF3FB94289E2A1F6E7D29AB1228A867A\n 6E1EF0E9C6F899B491DC18401C2C0A05FFFED46A72C245F7529B8EA55A038082\n 8512307217D2A233C37004085BA3AEE379269F9FA7D0ADB4B19A95CC2AFE686E\n 55D88E47257C1FE6F235FEA295910569FE6DD5995512562359CC821E85A6C7A5\n 79B470A9E340A6985189FF8B6AF914A6B0ECF93F47903221F95DE894A8F05B05\n B7D99CD533EC5F931B18E6B39BECF67FA2D6DD1AEC76772B068BE06335A94C05\n 7A4DDEE77B66101DA855C17AC312600370B34E31F5EC3A01300A8EB60B4C9767\n-1B2FA10DF7E91D3BB34A1B1CE7A0015A57C813E0280D873ADB88440048702D1F\n-77994EE04EC3B4531D6E1888C86A8F0DA6CF1F056F16AB0DD76C862830F89DA4\n-28923B3AA543E0D6E41D3BD283E600BC11F889315EE92C675C109C81065ED1BC\n-82A5583D1B723D50051B0557A367887F5B263014C6E77288B4883C50889473D3\n-3787BAD4BEB88BD1353AFA5B73E61814819537E7FF09F53EF94792BB3DD36ED0\n-002D0E7A6CDAB85A9C17AF5664BCB5A71663B861880F3ECCABC8E7A2FC81A4CC\n-AE7A87503FDC1CE0077BA51ECC7B43B60793FED8E9AAD5BBD03ADD6183DCD26D\n-24A74163611C05562437644EF9B8889FD4F9D311911204FEFD35237486F2D2D0\n-B6783A03BF12EA6D19D6D0F87E4D08515F12F9CBF1961CAA71E0D69FE3C4C4D2\n-7C7FB64ED24F8684C8F00C2BEDEA53EA390CDC0B5BEBD7DD982580B2EA1F1F89\n-CFED5916630DC2BA32BB9180277E1ABC339B3B7DE086717BD93F7FF3681BA5B3\n-FCF671C4B293C2DE4A322F0AA3323A4934444C69F23EF90120B8755482757759\n-C457A435FB8BB4922BD92C5F3D9555D978275C510183E29DFF2FCE4ABBFC18DE\n-76CAD3B486BA12047DD808CD4D521A0FD368E4AE79DE262630983A5D6F0B679D\n-2F005306393C520E1B6987302D029939D94B0178DC55D5264E1FEA468AD4134C\n-8C65B2FBBE8DE8284E8E1F6BFE0B648F44D3DA8E9350D266EDBFD4A7054D9355\n-1E0B185DED37BCF32D3731358F1D707C94109428BAD3CEA456A2A43553E3D2C2\n-F549189201F3D3F715310E3E8C6A2E9AA5141AA9125D203694C7D875C2DD320F\n-C5BCDFC924F6C04DBC7A97349B45ECD0FBD7D2123ED1D3A9F440B1112BE62779\n-47A4592F9285CBD9635EC9091CEC0AFD7E6B6976974081DB9C0E43165BD8584D\n-6CDF08DED287F0883A9FBD351B3F8706BA1E94C7CA487338269482EB8DC1A05D\n-F6632A5D834DE29228C49C5BA65EF7C535A53B380BF4B391F43562147538EE97\n-E799DFC2C40315859F56BBCE9CAE1DF9293F6E2C193ABE7A724EC8F32FA220E7\n-6026877A63E318254F2AF7B1325D63FC4C52B536D3EF354814C2F8F1EEA30569\n-6EF04447DB0F809DF35B4985B9FB4F4BB6087310BE633E76F268B32ABA99CE8E\n-03163DFF4AEDB88E60DD0848C15E90026D7C24D81122EBC07113F9851914A9D5\n-D0E09C2BFDDAF10C5D8208E8329BC0C402F231CD84C95EFDD182AD9756662110\n-274650C7A5BB0D8EFA54EC6C5A49C0EB26701A54779AE8EFBBED824262761602\n-680EDFB38F0FE18C0F501F5AA8BF48A8F0DD3E5E1EBEB872F6F6B23964707B32\n-507FC677B9FDDC990E3828B06420F6F968B2F6AE81E76A2144B1ECE905485616\n-CFB29AC96DDE1F5039935D7E385CC13E34DD7EAF276A2EA3A8BF27FD4205AE13\n-7FE620E42F2CF231C6C8DD8EFC5A6CF081E5660D9ADD730D72D15C02B1E15FF3\n-D741D3B1EB1E666C4E562219033C1E2EF3F96E136998B2E1890395A3637A2C02\n-DE1C46AFCA8D898439F06606A2295D3F7ED6C7DB250C61B6B97A0D5EDDB9657E\n-E790B4E07540BB1026036F4A0D00E7F16FD757AD61D686620C6814B7DCEC43E8\n-FD36D9E75BA554F64548A67D9B0A26E11784E58D4357FC251D71B5D6D8BFDDE0\n-D3BF0E825DA5312C1904AF13C5905C2ADF79C357476183D2EC5A95243235E861\n-2F98D9EE77EF8F8CB3EC6BD358C5ED37DD3AF44D60575E7774BF96F1AE9DFAD1\n-F8646DEDF21D10311854726B8F7D25876BB1EF78E2442B16ED4B851816CF0A27\n-11FDFCE525002A1A7C3E62CD2A3EDE6FAADB026D2F3A46C030ADB22422CA8FF5\n-2545ED58C0D9FB5BDB55FE674301E91A75B005B86BD201D246F7ADACE50419FD\n-AC3312CAC5EB78A36F0E5F62E65AC92129CB574AAC59E0A7C1390DFC61F39D9E\n-D7036742F2F6E64D1EF8157E9CCF65F3EEDC6A8220235978B8E06EB80F649F3E\n-204CFB497F49306EA8E1F7B62305978A28F1E771ED82C6592C71022154E4062A\n-A92335EFC65D6DED9C686899FFD7AA2988740618C03C5E362E1AF352E3BE4602\n-5530C51E5FC8E9082DF79199CC91C50174000D337D86127AC807C5A3C81DDE57\n-7A68AEE7230949B925365C214D77C80E87CEE218ABC94023717EA43BA5D8A7C8\n-8A8B9BD1B767996AE33050E3D922ED0574E3579C57E4BDDAD35883806AFDF260\n-3AB5D83D451583262E580FFDB7A27D82396AF18D92B849A3F7A7E621987D5DF0\n-038F876C6E9CA47FB11AF05F0019191C5DDC5F0177AD421E94BC66D0CCB82F1F\n-93A80836284B095503752C600F72E2C89112ABFA5B76152691264103B268B3E5\n-8816724ADADB38740001A9AACE05C8AF02D72918606DC22EFC8BF0DA0FD12FFE\n-D3A09F8E28057F327BFB633E604B1EAD478637B1D9631650B314CC62D7E0E87F\n-9D3FE1FFA23BB6E3006C3E39BED52F6B0C1C651B5913878F36DA0BF776889165\n-68BA3456B40B8B471CA8FF5238E43D9113E052A2B8D2EAA2433D3F89FCA48AFB\n-5E842913E4ED6DF9623354059CD1F1707B126FED80349787C869883120183EDD\n-249185A55503FAC53898F52170D05CAC62BB742CF9702C0518AED6B27CDC401C\n-932E02143FD916703F360CB31049501B35EF3EDDFED791090D0CFA221FD1DB32\n-7D4759CE07983AE29C258C705D11E7D9481EEAAB9B6BA65CDCF0AA0057BD6FEA\n-ABBFBD3ABF2A7BFB550C3D2A16DC447384A89F3DB6D9C2DBDCA997ABE35A7706\n-633D328AECEDB5BD07070C1B96267FD73B45791DD18194F60D358091FBE88409\n-973529806F3D2C9E6E39091F90A14B560A987E0B9490B9B690FB489B8E253070\n-D7C54447BE0E0A0BFEAEFFB581DC1300E6EC382984673BF0665632404E59B5BF\n-5D5F0A1C956E618C0487751CA5DAE8A95C214F76ED756694EF273679CD2D85CB\n-949DF385BD50491649EFEFDA1574921D7460143D42A100D2C76E55F0BC\n+1B2FA10DF7E91D3BB34A1B1CE7A0015A57C813E0280D873ADB8844004B9BA1CC\n+580D3C6BDA4DC1B80B4365F1C80512453FC5316EC2D928FB731C3D6403E3C18B\n+E8424D644DF5E9A2134229C5C91CA68DB8E85BA2BB40F538F585DA6FA4037718\n+B8053EBBA1E765346BCD5BDAA6C38115D31611D8A87A2238C145F2DA2F92E4DF\n+3987BD9C4D2A3D460E8941A68B125BCD9EE4F9FD262C4C8A71F47A2C81975635\n+F1B981C274C53FA2ACCDE4C9D0A7C62D6C1EFF91CFC6712CA6A9F333C9564FCB\n+2A70F0AD715A79B10A08AB069E2A3C93BC0AED19D0CA10134B8DDDE8AF548DB2\n+3A4AAA9C29682CF135BB767DAA16169A127EB50A7EECEB6480CF56A7D0F8AC56\n+4A5090B3D75A790372886AF568D94C8165975A05BFBFDF1FFBA45F70700BB9E0\n+57F3249EF9E9C8AD9CBCF6E4FD592DC4CDD2CC7C0BC3130C1059096C657BE453\n+A2CBACE93420210E27AF56CA229BD6D982FB68B3FDC6D44478B922C4231C47EE\n+E500232F6C11D92DEB955F66DF52B92B22E7352790CC2DCBAC53965D57AC2920\n+68B7D520DE25047146EFEB06B9AD4E2A94243C7E5239F0BC2FC312B16051D52C\n+0B92C217B6B42997321AE4F8BB066754B7AA3F15069EF59224E8A442CE471AA7\n+E8049A3DD9EDA09CCEE4998998661CF7DB35E952F6C65DAEB3013951C59F3E09\n+157F313B0237876E1C0190F0473819570B8C0205AADF05D787CC00979CFB327A\n+289382B22DDA6F12804ED0ED5B179E36A995A2A59E1B66E75130DBE9109C813B\n+94403E0DEA8314A1E9DB474D7FA83C0BAFD08033E6A6215844C1D26BE15F1251\n+A1605E8DF9A9C601ED37379530BC1C82BE5463C6C711C5652BFD6262485AA9CA\n+B8C4A117593001D08D980041E2A83C190DCE8E6CD3D334E5CC19FC05DB30F7F7\n+24A305C4DBB31F0651392B99D44B4302333BDF7E326FD256DD75D309C6E73F85\n+FA71B35FD1F9BEFF4C7A1076362EEB0A85492933B6006086A7B8C1928CF2D1EE\n+FD4344409257BB802C117E739960821CD3C88BFBA5669FF16F610AD638AF3677\n+8674C985E6767253ED5769F71BEA5E9BB02A751F9E62EE2B18AC19D975FDEAE9\n+8B8822367FF177A7E850766DE99ED3366D46464612926430012212A90F8E85F4\n+4760B40D5B86B90819EE410382D22D8ED82D0B0AB00C93E10CD365F8766D1C87\n+B4A866021FB6F6AC3D250CC601989B1B8FE6B1098A48282D2CF258BF38FEE940\n+CE0141FB1344156DE7712A8F2DBF700174F12616EE17C852210D96D03E5E6635\n+D439EB6E84A383DDD32AD72DADE6F931FDBABBDC726C36081C96018FC95EAE13\n+DA1F8DBC2D8355AC9792649653225393F4A7A88F3B9443FEEB75E2C15BF93F09\n+CCBA7FABC022BE26F4C28152D5DA6D690494AD4EC0DA1B598AE12536BADF88B5\n+5E20EB452546389F57FF55459567B453AE1831C57D22FA6A4FDF441EDAFDB7FB\n+4F4B707C1FF9159C40F7B5DD519FC07815EE91B8D756B6C18500BCF47D0D9E45\n+6A2D51B6AA5AEAAC9AB2DEF7F0FDE957B6C179CBADEECAC7E9CEC248AB135EB4\n+FBF83D002FF859B574EF36C371540EF2BCFCEF5C2E7863AEDD7C3C965103453B\n+023A9CEC1D5C45B88827ADF4AE0C6746F3C7E6A944427DAEC493601019583A16\n+0F846CE00EAE89EEFF9CE68A0E1D6EBB8FDD8A45D1BF399B36A8328EC957CB8B\n+D842A56269C8C9A6B472C9E65BCBC090606B4E8A7EF4ABDEA120C9F9B3969A1C\n+2EB102925F4E155160E58000E1ADB0D19E10EFD96F6C3225EEE8FC24D122C069\n+C11F1A69DC383F7DACD2F3929BD135CE69787C6E7560AC4B683FE5D9AAFD2E89\n+EE6D95E38C9B726B416E28169A11E29559DBA9AECD714CF318FCB78F34A0E562\n+9C00FE0C6D5A848557D9A82EC2BEFCD30B5EDC0B23C5BA9F812C864394C8B9D1\n+B08BAC9CF94E70FF842306ACCFE6E39A56777C712904A3AB29FBD19275E19E06\n+B35B37CFFFCEC81CAF2D85A853663FAFCFFED1EA77064AA28C15BC94910683BC\n+D09513079DE9EE18E97CC2403DD206516D7F652A3459870757F34EEDCEF952C3\n+FE8004F4716B5BD6774E455010B0BB1E61FCD66B9F14F9BBCCF3E55A158EE96E\n+9A05BDFDDC7706D4BC28FDDC4004EF3A430C607EBDF115E0C996454D70C8BB42\n+D7C83A454B116663D648C23CE2B33365810DE2B64D4AE011BC8043BC3E05B94D\n+1700F859C6AFC6515C1C42FA104EE3E8F3FA5F80252C2E79B00ED27F675FFD09\n+B50BF7A3C63CF4856F909DF969D7DD3EA05CABDD1E71A58CFC2AB5F614B4E5E0\n+25CF92E9FB66ACEBE05DF5E033DA8AD3EE32D94C02D98DD7DA99FAB5AEA595C3\n+2987DC122F0242D76B782349E4069DE0CDD6EF4375C680CBFE4C8F24F2AE89BF\n+7785F5EA7435A91500F265022C307E8ADEAAE1C6\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n@@ -3885,16 +3872,16 @@\n cleartomark\n {restore}if\n %%EndFont \n TeXDict begin 39158280 55380996 1000 600 600 (main.dvi)\n @start /Fa 253[71 2[{}1 90.9091 /CMSY10 rf /Fb 138[49\n 30 37 38 1[46 46 51 2[42 1[28 46 42 1[42 46 42 1[46 12[65\n 1[66 11[59 62 69 2[68 6[28 58[{}22 90.9091 /CMTI10 rf\n-/Fc 138[51 35 36 11[45 37[68 6[25 4[45 1[45 45 1[45 3[25\n-44[{}11 90.9091 /CMSL10 rf /Fd 133[50 59 4[44 44 46 2[56\n+/Fc 134[48 3[51 8[25 33[47 15[25 5[45 1[45 45 45 3[25\n+44[{}10 90.9091 /CMSL10 rf /Fd 133[50 59 4[44 44 46 2[56\n 62 93 31 2[31 62 2[51 62 50 1[54 11[86 5[84 5[42 6[80\n 13[56 56 56 56 2[31 46[{}24 99.6264 /CMBX12 rf /Fe 140[62\n 62 2[62 10[62 32[62 67[{}5 119.552 /CMTT12 rf /Ff 199[35\n 35 35 3[35 35 35 48[{}6 66.4176 /CMR8 rf\n %DVIPSBitmapFont: Fg tcrm1095 10.95 1\n [/Grave/Acute/Circumflex/Tilde/Dieresis/Hungarumlaut/Ring/Caron/Breve/Macron\n /Dotaccent/cedilla/ogonek/quotesinglbase.ts1 4{/.notdef}repeat\n@@ -4000,17 +3987,17 @@\n (metho)s(ds)f(that)h(b)s(elong)f(to)h(the)0 4808 y Fj(Coords)29\n b Fk(ob)5 b(ject.)0 5092 y Fd(1.2.1)112 b(Basic)38 b(metho)s(ds)0\n 5294 y Fk(As)d(usual,)h(there)f(are)g(four)f(basic)h(metho)s(ds)g(to)g\n (supp)s(ort)e(ob)5 b(ject)36 b(creation,)i(setting)e(default)f\n (\\014elds,)h(clearing)0 5407 y(an)m(y)31 b(allo)s(cated)h(data,)f(and)f\n (free'ing)h(the)g(ob)5 b(ject.)1927 5656 y(1)p eop end\n %%Page: 2 2\n-TeXDict begin 2 1 bop 0 100 a Fk(2)p 136 100 1122 4 v\n-1304 w Fj(Coords)29 b Fc(:)40 b Fb(DRAFT)30 b Fc(August)h(3,)g(2025)p\n-2778 100 V 111 399 a Fk(1.)46 b Fj(Coords)g(*)i(Coords_new)d(\\()i(void)\n+TeXDict begin 2 1 bop 0 100 a Fk(2)p 136 100 1180 4 v\n+1362 w Fj(Coords)28 b Fc(:)41 b Fb(DRAFT)30 b Fc(July)g(1,)h(2024)p\n+2721 100 V 111 399 a Fk(1.)46 b Fj(Coords)g(*)i(Coords_new)d(\\()i(void)\n g(\\))g(;)227 555 y Fk(This)25 b(metho)s(d)g(simply)f(allo)s(cates)k\n (storage)f(for)e(the)h Fj(Coords)d Fk(structure)i(and)g(then)g(sets)g\n (the)h(default)f(\\014elds)227 668 y(b)m(y)31 b(a)f(call)i(to)f\n Fj(Coords)p 1001 668 29 4 v 33 w(setDefaultFields\\(\\))p\n Fk(.)111 867 y(2.)46 b Fj(void)h(Coords_setDefaultFields)41\n b(\\()48 b(Coords)e(*coords)g(\\))h(;)227 1023 y Fk(This)34\n b(metho)s(d)g(sets)h(the)g(structure's)f(\\014elds)g(are)h(set)h(to)f\n@@ -4079,17 +4066,17 @@\n Fj(n2)e Fk(or)h Fj(ncomp)e Fk(are)j(nonp)s(ositiv)m(e,)h(an)d(error)h\n (message)h(is)f(prin)m(ted)f(and)g(the)h(program)227\n 5095 y(exits.)111 5294 y(3.)46 b Fj(void)h(Coords_init27P)d(\\()j\n (Coords)f(*coords,)g(float)g(bbox[],)g(int)h(type,)1277\n 5407 y(int)g(n1,)g(int)g(n2,)g(int)g(n3,)g(int)g(ncomp)f(\\))h(;)p\n eop end\n %%Page: 3 3\n-TeXDict begin 3 2 bop 91 100 1122 4 v 1303 100 a Fj(Coords)29\n-b Fc(:)41 b Fb(DRAFT)121 b Fc(August)30 b(3,)h(2025)p\n-2731 100 V 1122 w Fk(3)227 399 y(This)g(metho)s(d)g(initializes)i(a)f\n+TeXDict begin 3 2 bop 91 100 1180 4 v 1361 100 a Fj(Coords)29\n+b Fc(:)40 b Fb(DRAFT)122 b Fc(July)29 b(1,)i(2024)p 2673\n+100 V 1180 w Fk(3)227 399 y(This)g(metho)s(d)g(initializes)i(a)f\n Fj(Coords)e Fk(ob)5 b(ject)32 b(for)f(a)h(27-p)s(oin)m(t)h(op)s(erator)\n e(on)h(a)f Fj(n1)21 b Fa(\\002)f Fj(n2)h Fa(\\002)f Fj(n3)31\n b Fk(grid)g(with)227 511 y Fj(ncomp)42 b Fk(degrees)j(of)e(freedom)h\n (at)g(a)g(grid)f(p)s(oin)m(t.)81 b(The)43 b(grid's)g(lo)s(cation)i(is)f\n (giv)m(en)h(b)m(y)e(the)h(b)s(ounding)227 624 y(b)s(o)m(x)34\n b(v)m(ector,)i Fj(bbox[0])31 b Fk(=)i Fi(x)p Fk(-co)s(ordinate)i(of)f\n (the)f(south)m(w)m(est)i(p)s(oin)m(t,)f Fj(bbox[1])e\n@@ -4170,17 +4157,17 @@\n Fk(2,)34 b Fj(Coords)p 3110 5294 V 32 w(setValue\\(coords,)227\n 5407 y(2,)47 b(16,)g(3.3\\))30 b Fk(sets)g Fi(y)1005 5421\n y Ff(16)1105 5407 y Fk(=)25 b(3)p Fi(:)p Fk(3,)32 b(and)d\n Fj(Coords)p 1843 5407 V 33 w(setValue\\(coords,)43 b(3,)48\n b(118,)e(0\\))30 b Fk(sets)h Fi(z)3409 5421 y Ff(118)3544\n 5407 y Fk(=)25 b(0.)p eop end\n %%Page: 4 4\n-TeXDict begin 4 3 bop 0 100 a Fk(4)p 136 100 1122 4 v\n-1304 w Fj(Coords)29 b Fc(:)40 b Fb(DRAFT)30 b Fc(August)h(3,)g(2025)p\n-2778 100 V 227 399 a Fb(Err)-5 b(or)34 b(che)-5 b(cking:)40\n+TeXDict begin 4 3 bop 0 100 a Fk(4)p 136 100 1180 4 v\n+1362 w Fj(Coords)28 b Fc(:)41 b Fb(DRAFT)30 b Fc(July)g(1,)h(2024)p\n+2721 100 V 227 399 a Fb(Err)-5 b(or)34 b(che)-5 b(cking:)40\n b Fk(If)29 b Fj(coords)g Fk(is)h Fj(NULL)p Fk(,)f(or)h(if)g\n Fj(idim)f Fk(do)s(es)g(not)h(lie)h(in)f(the)g(range)g\n Fj([1,ndim])p Fk(,)e(or)i(if)g Fj(icoor)227 511 y Fk(do)s(es)g(not)h\n (lie)g(in)f(the)h(range)g Fj([0,ncoor\\))p Fk(,)d(an)i(error)g(message)h\n (is)g(prin)m(ted)f(and)f(the)i(program)f(exits.)0 790\n y Fd(1.2.4)112 b(IO)38 b(metho)s(ds)0 989 y Fk(There)29\n b(are)g(the)g(usual)g(eigh)m(t)i(IO)d(routines.)40 b(The)29\n@@ -4257,21 +4244,21 @@\n 5253 y(data,)32 b(the)e(v)-5 b(alue)31 b Fj(1)f Fk(is)g(returned.)40\n b(If)30 b(an)g(IO)g(error)g(is)g(encoun)m(tered)h(from)f\n Fj(fwrite)p Fk(,)f(zero)i(is)g(returned.)227 5407 y Fb(Err)-5\n b(or)34 b(che)-5 b(cking:)40 b Fk(If)30 b Fj(coords)f\n Fk(or)h Fj(fp)g Fk(are)h Fj(NULL)e Fk(an)h(error)g(message)i(is)e(prin)\n m(ted)g(and)g(zero)h(is)g(returned.)p eop end\n %%Page: 5 5\n-TeXDict begin 5 4 bop 91 100 1122 4 v 1303 100 a Fj(Coords)29\n-b Fc(:)41 b Fb(DRAFT)121 b Fc(August)30 b(3,)h(2025)p\n-2731 100 V 1122 w Fk(5)111 399 y(7.)46 b Fj(int)h\n-(Coords_writeForHumanEye)42 b(\\()47 b(Coords)f(*coords,)g(FILE)g(*fp)h\n-(\\))h(;)227 554 y Fk(This)43 b(metho)s(d)g(write)h(the)g\n-Fj(Coords)e Fk(ob)5 b(ject)45 b(to)f(a)g(\\014le)g(in)g(an)f(easy)i(to)f\n-(read)g(fashion.)80 b(The)43 b(metho)s(d)227 667 y Fj(Coords)p\n+TeXDict begin 5 4 bop 91 100 1180 4 v 1361 100 a Fj(Coords)29\n+b Fc(:)40 b Fb(DRAFT)122 b Fc(July)29 b(1,)i(2024)p 2673\n+100 V 1180 w Fk(5)111 399 y(7.)46 b Fj(int)h(Coords_writeForHumanEye)42\n+b(\\()47 b(Coords)f(*coords,)g(FILE)g(*fp)h(\\))h(;)227\n+554 y Fk(This)43 b(metho)s(d)g(write)h(the)g Fj(Coords)e\n+Fk(ob)5 b(ject)45 b(to)f(a)g(\\014le)g(in)g(an)f(easy)i(to)f(read)g\n+(fashion.)80 b(The)43 b(metho)s(d)227 667 y Fj(Coords)p\n 521 667 29 4 v 33 w(writeStats\\(\\))24 b Fk(is)k(called)h(to)f(write)g\n (out)g(the)g(header)g(and)f(statistics.)42 b(The)27 b\n Fj(coors[])f Fk(v)m(ector)j(is)227 780 y(then)h(prin)m(ted)g(out.)41\n b(The)30 b(v)-5 b(alue)31 b Fj(1)f Fk(is)g(returned.)227\n 936 y Fb(Err)-5 b(or)34 b(che)-5 b(cking:)40 b Fk(If)30\n b Fj(coords)f Fk(or)h Fj(fp)g Fk(are)h Fj(NULL)e Fk(an)h(error)g\n (message)i(is)e(prin)m(ted)g(and)g(zero)h(is)g(returned.)111\n@@ -4331,17 +4318,17 @@\n 5181 y Fg(\\210)45 b Fk(The)33 b Fj(msgFile)e Fk(parameter)j(determines)\n f(the)h(message)g(\\014le)f(|)h(if)f Fj(msgFile)e Fk(is)i\n Fj(stdout)p Fk(,)g(then)g(the)427 5294 y(message)24 b(\\014le)e(is)h\n Fb(stdout)p Fk(,)i(otherwise)e(a)f(\\014le)h(is)f(op)s(ened)g(with)g\n Fb(app)-5 b(end)24 b Fk(status)f(to)g(receiv)m(e)h(an)m(y)f(message)427\n 5407 y(data.)p eop end\n %%Page: 6 6\n-TeXDict begin 6 5 bop 0 100 a Fk(6)p 136 100 1122 4 v\n-1304 w Fj(Coords)29 b Fc(:)40 b Fb(DRAFT)30 b Fc(August)h(3,)g(2025)p\n-2778 100 V 337 399 a Fg(\\210)45 b Fk(The)20 b Fj(outCoordsFile)d\n+TeXDict begin 6 5 bop 0 100 a Fk(6)p 136 100 1180 4 v\n+1362 w Fj(Coords)28 b Fc(:)41 b Fb(DRAFT)30 b Fc(July)g(1,)h(2024)p\n+2721 100 V 337 399 a Fg(\\210)45 b Fk(The)20 b Fj(outCoordsFile)d\n Fk(parameter)j(is)h(the)f(output)g(\\014le)g(for)h(the)f\n Fj(Coords)f Fk(ob)5 b(ject.)38 b(If)20 b Fj(outCoordsFile)427\n 511 y Fk(is)h Fj(none)e Fk(then)h(the)g Fj(Coords)f Fk(ob)5\n b(ject)21 b(is)f(not)h(written)f(to)h(a)g(\\014le.)37\n b(Otherwise,)22 b(the)f Fj(Coords)p 3409 511 29 4 v 33\n w(writeToFile\\(\\))427 624 y Fk(metho)s(d)27 b(is)h(called)h(to)f(write)\n g(the)g(ob)5 b(ject)29 b(to)f(a)g(formatted)g(\\014le)g(\\(if)g\n", "details": [{"source1": "ps2ascii {}", "source2": "ps2ascii {}", "unified_diff": "@@ -18,15 +18,15 @@\n 1.2 Prototypes and descriptions of Coords methods\r\n This section contains brief descriptions including prototypes of all methods that belong to the\r\n Coords object.\r\n 1.2.1 Basic methods\r\n As usual, there are four basic methods to support object creation, setting default \ufb01elds, clearing\r\n any allocated data, and free\u2019ing the object.\r\n 1\r\n- 2 Coords : DRAFT August 3, 2025\r\n+ 2 Coords : DRAFT July 1, 2024\r\n 1. Coords * Coords_new ( void ) ;\r\n This method simply allocates storage for the Coords structure and then sets the default \ufb01elds\r\n by a call to Coords setDefaultFields().\r\n 2. void Coords_setDefaultFields ( Coords *coords ) ;\r\n This method sets the structure\u2019s \ufb01elds are set to default values: type = COORDS BY TUPLE,\r\n ndim = ncoor = 0 and coors = NULL.\r\n Error checking: If coords is NULL, an error message is printed and the program exits.\r\n@@ -54,15 +54,15 @@\n point, bbox[2] = x-coordinate of the northeast point, and bbox[3] = y-coordinate of the\r\n northeast point.\r\n Error checking: If coordsbboxisNULL,oriftypeisnotCOORDS BY TUPLEorCOORDS BY COORD,\r\n or if any of n1, n2 or ncomp are nonpositive, an error message is printed and the program\r\n exits.\r\n 3. void Coords_init27P ( Coords *coords, float bbox[], int type,\r\n int n1, int n2, int n3, int ncomp ) ;\r\n- Coords : DRAFT August 3, 2025 3\r\n+ Coords : DRAFT July 1, 2024 3\r\n This method initializes a Coords object for a 27-point operator on a n1 \u00d7n2 \u00d7n3 grid with\r\n ncomp degrees of freedom at a grid point. The grid\u2019s location is given by the bounding\r\n box vector, bbox[0] = x-coordinate of the southwest point, bbox[1] = y-coordinate of the\r\n southwest point, bbox[2] = z-coordinate of the southwest point, bbox[3] = x-coordinate\r\n of the northeast point, bbox[4] = y-coordinate of the northeast point, and bbox[5] = z-\r\n coordinate of the northeast point.\r\n Error checking: If coordsbboxisNULL,oriftypeisnotCOORDS BY TUPLEorCOORDS BY COORD,\r\n@@ -94,15 +94,15 @@\n does not lie in the range [0,ncoor), an error message is printed and the program exits.\r\n 5. void Coords_setValue ( Coords *coords, int idim, int icoor, float val ) ;\r\n Thismethodsetsthefloatvalueoftheidim-thcoordinateoftheicoor-thgridpoint. Forex-\r\n ample, Coords setValue(coords, 1, 27, 1.2) sets x =1.2, Coords setValue(coords,\r\n 27\r\n 2, 16, 3.3) sets y =3.3, and Coords setValue(coords, 3, 118, 0) sets z =0.\r\n 16 118\r\n- 4 Coords : DRAFT August 3, 2025\r\n+ 4 Coords : DRAFT July 1, 2024\r\n Error checking: If coords is NULL, or if idim does not lie in the range [1,ndim], or if icoor\r\n does not lie in the range [0,ncoor), an error message is printed and the program exits.\r\n 1.2.4 IO methods\r\n There are the usual eight IO routines. The \ufb01le structure of a Coords object is simple: type, ndim,\r\n ncoor followed by the coors[] vector.\r\n 1. int Coords_readFromFile ( Coords *coords, char *filename ) ;\r\n This method read a Coords object from a \ufb01le. It tries to open the \ufb01le and if it is successful, it\r\n@@ -129,15 +129,15 @@\n This method writes a Coords object to a formatted \ufb01le. If there are no errors in writing the\r\n data, the value 1 is returned. If an IO error is encountered from fprintf, zero is returned.\r\n Error checking: If coords or fp are NULL an error message is printed and zero is returned.\r\n 6. int Coords_writeToBinaryFile ( Coords *coords, FILE *fp ) ;\r\n This method writes a Coords object to a binary \ufb01le. If there are no errors in writing the\r\n data, the value 1 is returned. If an IO error is encountered from fwrite, zero is returned.\r\n Error checking: If coords or fp are NULL an error message is printed and zero is returned.\r\n- Coords : DRAFT August 3, 2025 5\r\n+ Coords : DRAFT July 1, 2024 5\r\n 7. int Coords_writeForHumanEye ( Coords *coords, FILE *fp ) ;\r\n This method write the Coords object to a \ufb01le in an easy to read fashion. The method\r\n Coords writeStats() is called to write out the header and statistics. The coors[] vector is\r\n then printed out. The value 1 is returned.\r\n Error checking: If coords or fp are NULL an error message is printed and zero is returned.\r\n 8. int Coords_writeStats ( Coords *coords, FILE *fp ) ;\r\n The header and statistics are written. The value 1 is returned.\r\n@@ -164,15 +164,15 @@\n This driver program creates a Coords object for 9-point \ufb01nite di\ufb00erence operator on a n1\u00d7n2\r\n grid and optionally writes it to a \ufb01le.\r\n \u2022 The msglvl parameter determines the amount of output \u2014 taking msglvl >= 3 means\r\n that all objects are written to the message \ufb01le.\r\n \u2022 The msgFile parameter determines the message \ufb01le \u2014 if msgFile is stdout, then the\r\n message \ufb01le is stdout, otherwise a \ufb01le is opened with append status to receive any message\r\n data.\r\n- 6 Coords : DRAFT August 3, 2025\r\n+ 6 Coords : DRAFT July 1, 2024\r\n \u2022 TheoutCoordsFileparameteristheoutput\ufb01lefortheCoordsobject. IfoutCoordsFile\r\n is nonethentheCoordsobjectisnotwrittentoa\ufb01le. Otherwise,theCoords writeToFile()\r\n method is called to write the object to a formatted \ufb01le (if outCoordsFile is of the form\r\n *.coordsf), or a binary \ufb01le (if outCoordsFile is of the form *.coordsb).\r\n Index\r\n Coords clearData(), 2\r\n Coords free(), 2\r\n"}]}]}, {"source1": "./usr/share/doc/spooles-doc/DSTree.ps.gz", "source2": "./usr/share/doc/spooles-doc/DSTree.ps.gz", "unified_diff": null, "details": [{"source1": "DSTree.ps", "source2": "DSTree.ps", "unified_diff": "@@ -10,15 +10,15 @@\n %%EndComments\n %%BeginDefaults\n %%ViewingOrientation: 1 0 0 1\n %%EndDefaults\n %DVIPSWebPage: (www.radicaleye.com)\n %DVIPSCommandLine: dvips main -o DSTree.ps\n %DVIPSParameters: dpi=600\n-%DVIPSSource: TeX output 2025.08.03:1317\n+%DVIPSSource: TeX output 2024.07.01:0700\n %%BeginProcSet: tex.pro 0 0\n %!\n /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S\n N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72\n mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0\n 0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{\n landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize\n@@ -1406,23 +1406,22 @@\n /UnderlinePosition -100 def\n /UnderlineThickness 50 def\n end readonly def\n /Encoding 256 array\n 0 1 255 {1 index exch /.notdef put} for\n dup 44 /comma put\n dup 48 /zero put\n+dup 49 /one put\n dup 50 /two put\n-dup 51 /three put\n-dup 53 /five put\n+dup 52 /four put\n dup 58 /colon put\n-dup 65 /A put\n-dup 103 /g put\n-dup 115 /s put\n-dup 116 /t put\n+dup 74 /J put\n+dup 108 /l put\n dup 117 /u put\n+dup 121 /y put\n readonly def\n currentdict end\n currentfile eexec\n D9D66F633B846AB284BCF8B0411B772DE5CE32340DC6F28AF40857E4451976E7\n 5182433CF9F333A38BD841C0D4E68BF9E012EB32A8FFB76B5816306B5EDF7C99\n 8B3A16D9B4BC056662E32C7CD0123DFAEB734C7532E64BBFBF5A60336E646716\n EFB852C877F440D329172C71F1E5D59CE9473C26B8AEF7AD68EF0727B6EC2E0C\n@@ -1603,79 +1602,67 @@\n 7CA1534C4D5B05FC33F83790ECFD7641DF3FB94289E2A1F6E7D29AB1228A867A\n 6E1EF0E9C6F899B491DC18401C2C0A05FFFED46A72C245F7529B8EA55A038082\n 8512307217D2A233C37004085BA3AEE379269F9FA7D0ADB4B19A95CC2AFE686E\n 55D88E47257C1FE6F235FEA295910569FE6DD5995512562359CC821E85A6C7A5\n 79B470A9E340A6985189FF8B6AF914A6B0ECF93F47903221F95DE894A8F05B05\n B7D99CD533EC5F931B18E6B39BECF67FA2D6DD1AEC76772B068BE06335A94C05\n 7A4DDEE77B66101DA855C17AC312600370B34E31F5EC3A01300A8EB60B4C9767\n-1B2FA10DF7E91D3BB34A1B1CE7A0015A57C813E0280D873ADB88440048702D1F\n-77994EE04EC3B4531D6E1888C86A8F0DA6CF1F056F16AB0DD76C862830F89DA4\n-28923B3AA543E0D6E41D3BD283E600BC11F889315EE92C675C109C81065ED1BC\n-82A5583D1B723D50051B0557A367887F5B263014C6E77288B4883C50889473D3\n-3787BAD4BEB88BD1353AFA5B73E61814819537E7FF09F53EF94792BB3DD36ED0\n-002D0E7A6CDAB85A9C17AF5664BCB5A71663B861880F3ECCABC8E7A2FC81A4CC\n-AE7A87503FDC1CE0077BA51ECC7B43B60793FED8E9AAD5BBD03ADD6183DCD26D\n-24A74163611C05562437644EF9B8889FD4F9D311911204FEFD35237486F2D2D0\n-B6783A03BF12EA6D19D6D0F87E4D08515F12F9CBF1961CAA71E0D69FE3C4C4D2\n-7C7FB64ED24F8684C8F00C2BEDEA53EA390CDC0B5BEBD7DD982580B2EA1F1F89\n-CFED5916630DC2BA32BB9180277E1ABC339B3B7DE086717BD93F7FF3681BA5B3\n-FCF671C4B293C2DE4A322F0AA3323A4934444C69F23EF90120B8755482757759\n-C457A435FB8BB4922BD92C5F3D9555D978275C510183E29DFF2FCE4ABBFC18DE\n-76CAD3B486BA12047DD808CD4D521A0FD368E4AE79DE262630983A5D6F0B679D\n-2F005306393C520E1B6987302D029939D94B0178DC55D5264E1FEA468AD4134C\n-8C65B2FBBE8DE8284E8E1F6BFE0B648F44D3DA8E9350D266EDBFD4A7054D9355\n-1E0B185DED37BCF32D3731358F1D707C94109428BAD3CEA456A2A43553E3D2C2\n-F549189201F3D3F715310E3E8C6A2E9AA5141AA9125D203694C7D875C2DD320F\n-C5BCDFC924F6C04DBC7A97349B45ECD0FBD7D2123ED1D3A9F440B1112BE62779\n-47A4592F9285CBD9635EC9091CEC0AFD7E6B6976974081DB9C0E43165BD8584D\n-6CDF08DED287F0883A9FBD351B3F8706BA1E94C7CA487338269482EB8DC1A05D\n-F6632A5D834DE29228C49C5BA65EF7C535A53B380BF4B391F43562147538EE97\n-E799DFC2C40315859F56BBCE9CAE1DF9293F6E2C193ABE7A724EC8F32FA220E7\n-6026877A63E318254F2AF7B1325D63FC4C52B536D3EF354814C2F8F1EEA30569\n-6EF04447DB0F809DF35B4985B9FB4F4BB6087310BE633E76F268B32ABA99CE8E\n-03163DFF4AEDB88E60DD0848C15E90026D7C24D81122EBC07113F9851914A9D5\n-D0E09C2BFDDAF10C5D8208E8329BC0C402F231CD84C95EFDD182AD9756662110\n-274650C7A5BB0D8EFA54EC6C5A49C0EB26701A54779AE8EFBBED824262761602\n-680EDFB38F0FE18C0F501F5AA8BF48A8F0DD3E5E1EBEB872F6F6B23964707B32\n-507FC677B9FDDC990E3828B06420F6F968B2F6AE81E76A2144B1ECE905485616\n-CFB29AC96DDE1F5039935D7E385CC13E34DD7EAF276A2EA3A8BF27FD4205AE13\n-7FE620E42F2CF231C6C8DD8EFC5A6CF081E5660D9ADD730D72D15C02B1E15FF3\n-D741D3B1EB1E666C4E562219033C1E2EF3F96E136998B2E1890395A3637A2C02\n-DE1C46AFCA8D898439F06606A2295D3F7ED6C7DB250C61B6B97A0D5EDDB9657E\n-E790B4E07540BB1026036F4A0D00E7F16FD757AD61D686620C6814B7DCEC43E8\n-FD36D9E75BA554F64548A67D9B0A26E11784E58D4357FC251D71B5D6D8BFDDE0\n-D3BF0E825DA5312C1904AF13C5905C2ADF79C357476183D2EC5A95243235E861\n-2F98D9EE77EF8F8CB3EC6BD358C5ED37DD3AF44D60575E7774BF96F1AE9DFAD1\n-F8646DEDF21D10311854726B8F7D25876BB1EF78E2442B16ED4B851816CF0A27\n-11FDFCE525002A1A7C3E62CD2A3EDE6FAADB026D2F3A46C030ADB22422CA8FF5\n-2545ED58C0D9FB5BDB55FE674301E91A75B005B86BD201D246F7ADACE50419FD\n-AC3312CAC5EB78A36F0E5F62E65AC92129CB574AAC59E0A7C1390DFC61F39D9E\n-D7036742F2F6E64D1EF8157E9CCF65F3EEDC6A8220235978B8E06EB80F649F3E\n-204CFB497F49306EA8E1F7B62305978A28F1E771ED82C6592C71022154E4062A\n-A92335EFC65D6DED9C686899FFD7AA2988740618C03C5E362E1AF352E3BE4602\n-5530C51E5FC8E9082DF79199CC91C50174000D337D86127AC807C5A3C81DDE57\n-7A68AEE7230949B925365C214D77C80E87CEE218ABC94023717EA43BA5D8A7C8\n-8A8B9BD1B767996AE33050E3D922ED0574E3579C57E4BDDAD35883806AFDF260\n-3AB5D83D451583262E580FFDB7A27D82396AF18D92B849A3F7A7E621987D5DF0\n-038F876C6E9CA47FB11AF05F0019191C5DDC5F0177AD421E94BC66D0CCB82F1F\n-93A80836284B095503752C600F72E2C89112ABFA5B76152691264103B268B3E5\n-8816724ADADB38740001A9AACE05C8AF02D72918606DC22EFC8BF0DA0FD12FFE\n-D3A09F8E28057F327BFB633E604B1EAD478637B1D9631650B314CC62D7E0E87F\n-9D3FE1FFA23BB6E3006C3E39BED52F6B0C1C651B5913878F36DA0BF776889165\n-68BA3456B40B8B471CA8FF5238E43D9113E052A2B8D2EAA2433D3F89FCA48AFB\n-5E842913E4ED6DF9623354059CD1F1707B126FED80349787C869883120183EDD\n-249185A55503FAC53898F52170D05CAC62BB742CF9702C0518AED6B27CDC401C\n-932E02143FD916703F360CB31049501B35EF3EDDFED791090D0CFA221FD1DB32\n-7D4759CE07983AE29C258C705D11E7D9481EEAAB9B6BA65CDCF0AA0057BD6FEA\n-ABBFBD3ABF2A7BFB550C3D2A16DC447384A89F3DB6D9C2DBDCA997ABE35A7706\n-633D328AECEDB5BD07070C1B96267FD73B45791DD18194F60D358091FBE88409\n-973529806F3D2C9E6E39091F90A14B560A987E0B9490B9B690FB489B8E253070\n-D7C54447BE0E0A0BFEAEFFB581DC1300E6EC382984673BF0665632404E59B5BF\n-5D5F0A1C956E618C0487751CA5DAE8A95C214F76ED756694EF273679CD2D85CB\n-949DF385BD50491649EFEFDA1574921D7460143D42A100D2C76E55F0BC\n+1B2FA10DF7E91D3BB34A1B1CE7A0015A57C813E0280D873ADB8844004B9BA1CC\n+580D3C6BDA4DC1B80B4365F1C80512453FC5316EC2D928FB731C3D6403E3C18B\n+E8424D644DF5E9A2134229C5C91CA68DB8E85BA2BB40F538F585DA6FA4037718\n+B8053EBBA1E765346BCD5BDAA6C38115D31611D8A87A2238C145F2DA2F92E4DF\n+3987BD9C4D2A3D460E8941A68B125BCD9EE4F9FD262C4C8A71F47A2C81975635\n+F1B981C274C53FA2ACCDE4C9D0A7C62D6C1EFF91CFC6712CA6A9F333C9564FCB\n+2A70F0AD715A79B10A08AB069E2A3C93BC0AED19D0CA10134B8DDDE8AF548DB2\n+3A4AAA9C29682CF135BB767DAA16169A127EB50A7EECEB6480CF56A7D0F8AC56\n+4A5090B3D75A790372886AF568D94C8165975A05BFBFDF1FFBA45F70700BB9E0\n+57F3249EF9E9C8AD9CBCF6E4FD592DC4CDD2CC7C0BC3130C1059096C657BE453\n+A2CBACE93420210E27AF56CA229BD6D982FB68B3FDC6D44478B922C4231C47EE\n+E500232F6C11D92DEB955F66DF52B92B22E7352790CC2DCBAC53965D57AC2920\n+68B7D520DE25047146EFEB06B9AD4E2A94243C7E5239F0BC2FC312B16051D52C\n+0B92C217B6B42997321AE4F8BB066754B7AA3F15069EF59224E8A442CE471AA7\n+E8049A3DD9EDA09CCEE4998998661CF7DB35E952F6C65DAEB3013951C59F3E09\n+157F313B0237876E1C0190F0473819570B8C0205AADF05D787CC00979CFB327A\n+289382B22DDA6F12804ED0ED5B179E36A995A2A59E1B66E75130DBE9109C813B\n+94403E0DEA8314A1E9DB474D7FA83C0BAFD08033E6A6215844C1D26BE15F1251\n+A1605E8DF9A9C601ED37379530BC1C82BE5463C6C711C5652BFD6262485AA9CA\n+B8C4A117593001D08D980041E2A83C190DCE8E6CD3D334E5CC19FC05DB30F7F7\n+24A305C4DBB31F0651392B99D44B4302333BDF7E326FD256DD75D309C6E73F85\n+FA71B35FD1F9BEFF4C7A1076362EEB0A85492933B6006086A7B8C1928CF2D1EE\n+FD4344409257BB802C117E739960821CD3C88BFBA5669FF16F610AD638AF3677\n+8674C985E6767253ED5769F71BEA5E9BB02A751F9E62EE2B18AC19D975FDEAE9\n+8B8822367FF177A7E850766DE99ED3366D46464612926430012212A90F8E85F4\n+4760B40D5B86B90819EE410382D22D8ED82D0B0AB00C93E10CD365F8766D1C87\n+B4A866021FB6F6AC3D250CC601989B1B8FE6B1098A48282D2CF258BF38FEE940\n+CE0141FB1344156DE7712A8F2DBF700174F12616EE17C852210D96D03E5E6635\n+D439EB6E84A383DDD32AD72DADE6F931FDBABBDC726C36081C96018FC95EAE13\n+DA1F8DBC2D8355AC9792649653225393F4A7A88F3B9443FEEB75E2C15BF93F09\n+CCBA7FABC022BE26F4C28152D5DA6D690494AD4EC0DA1B598AE12536BADF88B5\n+5E20EB452546389F57FF55459567B453AE1831C57D22FA6A4FDF441EDAFDB7FB\n+4F4B707C1FF9159C40F7B5DD519FC07815EE91B8D756B6C18500BCF47D0D9E45\n+6A2D51B6AA5AEAAC9AB2DEF7F0FDE957B6C179CBADEECAC7E9CEC248AB135EB4\n+FBF83D002FF859B574EF36C371540EF2BCFCEF5C2E7863AEDD7C3C965103453B\n+023A9CEC1D5C45B88827ADF4AE0C6746F3C7E6A944427DAEC493601019583A16\n+0F846CE00EAE89EEFF9CE68A0E1D6EBB8FDD8A45D1BF399B36A8328EC957CB8B\n+D842A56269C8C9A6B472C9E65BCBC090606B4E8A7EF4ABDEA120C9F9B3969A1C\n+2EB102925F4E155160E58000E1ADB0D19E10EFD96F6C3225EEE8FC24D122C069\n+C11F1A69DC383F7DACD2F3929BD135CE69787C6E7560AC4B683FE5D9AAFD2E89\n+EE6D95E38C9B726B416E28169A11E29559DBA9AECD714CF318FCB78F34A0E562\n+9C00FE0C6D5A848557D9A82EC2BEFCD30B5EDC0B23C5BA9F812C864394C8B9D1\n+B08BAC9CF94E70FF842306ACCFE6E39A56777C712904A3AB29FBD19275E19E06\n+B35B37CFFFCEC81CAF2D85A853663FAFCFFED1EA77064AA28C15BC94910683BC\n+D09513079DE9EE18E97CC2403DD206516D7F652A3459870757F34EEDCEF952C3\n+FE8004F4716B5BD6774E455010B0BB1E61FCD66B9F14F9BBCCF3E55A158EE96E\n+9A05BDFDDC7706D4BC28FDDC4004EF3A430C607EBDF115E0C996454D70C8BB42\n+D7C83A454B116663D648C23CE2B33365810DE2B64D4AE011BC8043BC3E05B94D\n+1700F859C6AFC6515C1C42FA104EE3E8F3FA5F80252C2E79B00ED27F675FFD09\n+B50BF7A3C63CF4856F909DF969D7DD3EA05CABDD1E71A58CFC2AB5F614B4E5E0\n+25CF92E9FB66ACEBE05DF5E033DA8AD3EE32D94C02D98DD7DA99FAB5AEA595C3\n+2987DC122F0242D76B782349E4069DE0CDD6EF4375C680CBFE4C8F24F2AE89BF\n+7785F5EA7435A91500F265022C307E8ADEAAE1C6\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n@@ -3648,16 +3635,16 @@\n {restore}if\n %%EndFont \n TeXDict begin 39158280 55380996 1000 600 600 (main.dvi)\n @start /Fa 154[40 40 100[{}2 90.9091 /CMSY10 rf /Fb 133[50\n 59 4[44 44 46 2[56 62 93 31 2[31 62 56 1[51 62 50 1[54\n 11[86 1[62 3[84 5[42 6[80 11[56 56 56 56 56 56 2[31 46[{}28\n 99.6264 /CMBX12 rf /Fc 141[62 12[62 16[62 62 14[62 68[{}5\n-119.552 /CMTT12 rf /Fd 138[51 35 36 11[45 37[68 6[25\n-4[45 1[45 45 1[45 3[25 44[{}11 90.9091 /CMSL10 rf\n+119.552 /CMTT12 rf /Fd 134[48 3[51 8[25 33[47 15[25 5[45\n+1[45 45 45 3[25 44[{}10 90.9091 /CMSL10 rf\n %DVIPSBitmapFont: Fe tcrm1095 10.95 1\n [/Grave/Acute/Circumflex/Tilde/Dieresis/Hungarumlaut/Ring/Caron/Breve/Macron\n /Dotaccent/cedilla/ogonek/quotesinglbase.ts1 4{/.notdef}repeat\n /quotedblbase.ts1/.notdef/.notdef/twelveudash/threequartersemdash\n /afii61664.cap/arrowleft/arrowright/tieaccentlowercase/tieaccentcapital\n /tieaccentlowercase.new/tieaccentcapital.new/.notdef/afii61664.asc/uni2422 3\n {/.notdef}repeat/dollar/.notdef/.notdef/quotesingle/.notdef/.notdef\n@@ -3774,17 +3761,17 @@\n 5074 y Fe(\\210)45 b Fi(Tree)i(*tree)29 b Fj(:)41 b(p)s(oin)m(ter)30\n b(to)h(the)g Fi(Tree)e Fj(ob)5 b(ject)137 5294 y Fe(\\210)45\n b Fi(IV)i(*mapIV)d Fj(:)h(p)s(oin)m(ter)g(to)h(the)f\n Fi(IV)g Fj(ob)5 b(ject)46 b(that)g(holds)e(the)i(map)e(from)h(v)m\n (ertices)i(to)f(domains)f(and)227 5407 y(separators.)1927\n 5656 y(1)p eop end\n %%Page: 2 2\n-TeXDict begin 2 1 bop 0 100 a Fj(2)p 136 100 1170 4 v\n-1352 w Fi(Tree)29 b Fd(:)41 b Fh(DRAFT)30 b Fd(August)g(3,)h(2025)p\n-2731 100 V 0 399 a Ff(1.2)135 b(Protot)l(yp)t(es)46 b(and)f\n+TeXDict begin 2 1 bop 0 100 a Fj(2)p 136 100 1228 4 v\n+1409 w Fi(Tree)30 b Fd(:)40 b Fh(DRAFT)30 b Fd(July)g(1,)h(2024)p\n+2673 100 V 0 399 a Ff(1.2)135 b(Protot)l(yp)t(es)46 b(and)f\n (descriptions)g(of)g Fc(DSTree)d Ff(metho)t(ds)0 636\n y Fj(This)f(section)j(con)m(tains)f(brief)f(descriptions)g(including)f\n (protot)m(yp)s(es)i(of)f(all)h(metho)s(ds)f(that)h(b)s(elong)f(to)h\n (the)0 749 y Fi(DSTree)29 b Fj(ob)5 b(ject.)0 1047 y\n Fb(1.2.1)112 b(Basic)38 b(metho)s(ds)0 1253 y Fj(As)d(usual,)h(there)f\n (are)g(four)f(basic)h(metho)s(ds)g(to)g(supp)s(ort)e(ob)5\n b(ject)36 b(creation,)i(setting)e(default)f(\\014elds,)h(clearing)0\n@@ -3838,17 +3825,17 @@\n 5247 y Fj(This)27 b(metho)s(d)f(returns)g(a)h(p)s(oin)m(ter)g(to)h(its)\n g Fi(IV)e Fj(ob)5 b(ject)28 b(that)g(maps)e(v)m(ertices)j(to)f(domains)\n f(and)f(separators.)227 5407 y Fh(Err)-5 b(or)34 b(che)-5\n b(cking:)40 b Fj(If)30 b Fi(dstree)f Fj(is)h Fi(NULL)p\n Fj(,)g(an)g(error)g(message)i(is)e(prin)m(ted)g(and)g(the)g(program)g\n (exits.)p eop end\n %%Page: 3 3\n-TeXDict begin 3 2 bop 91 100 1170 4 v 1351 100 a Fi(Tree)29\n-b Fd(:)41 b Fh(DRAFT)121 b Fd(August)30 b(3,)h(2025)p\n-2683 100 V 1170 w Fj(3)0 399 y Fb(1.2.3)112 b(Initializer)38\n+TeXDict begin 3 2 bop 91 100 1228 4 v 1409 100 a Fi(Tree)29\n+b Fd(:)41 b Fh(DRAFT)121 b Fd(July)30 b(1,)h(2024)p 2626\n+100 V 1228 w Fj(3)0 399 y Fb(1.2.3)112 b(Initializer)38\n b(metho)s(ds)0 602 y Fj(There)c(are)h(three)f(initializers)j(and)d(t)m\n (w)m(o)h(help)s(er)f(functions)g(to)h(set)g(the)g(dimensions)e(of)i\n (the)g(dstree,)g(allo)s(cate)0 715 y(the)c(three)f(v)m(ectors,)i(and)e\n (\\014ll)g(the)h(information.)111 969 y(1.)46 b Fi(void)h(DSTree_init1)d\n (\\()k(DSTree)e(*dstree,)f(int)i(ndomsep,)f(int)h(nvtx)f(\\))i(;)227\n 1126 y Fj(This)28 b(metho)s(d)f(initializes)k(an)d(ob)5\n b(ject)29 b(giv)m(en)g(the)f(n)m(um)m(b)s(er)f(of)h(v)m(ertices,)j\n@@ -3916,17 +3903,17 @@\n (k,)f(its)f(stage)i(is)f Fa(d)p Fg(k)s(=)p Fj(2)p Fa(e)p\n Fj(.)227 5294 y Fh(Err)-5 b(or)34 b(che)-5 b(cking:)41\n b Fj(If)29 b Fi(dstree)g Fj(is)i Fi(NULL)p Fj(,)e(or)h(if)h(the)f(ob)5\n b(ject)32 b(has)e(not)g(b)s(een)g(initialized,)j(an)d(error)g(message)\n 227 5407 y(is)h(prin)m(ted)f(and)f(the)i(program)f(exits.)p\n eop end\n %%Page: 4 4\n-TeXDict begin 4 3 bop 0 100 a Fj(4)p 136 100 1170 4 v\n-1352 w Fi(Tree)29 b Fd(:)41 b Fh(DRAFT)30 b Fd(August)g(3,)h(2025)p\n-2731 100 V 111 399 a Fj(3.)46 b Fi(IV)h(*)h(DSTree_MS2stages)43\n+TeXDict begin 4 3 bop 0 100 a Fj(4)p 136 100 1228 4 v\n+1409 w Fi(Tree)30 b Fd(:)40 b Fh(DRAFT)30 b Fd(July)g(1,)h(2024)p\n+2673 100 V 111 399 a Fj(3.)46 b Fi(IV)h(*)h(DSTree_MS2stages)43\n b(\\()48 b(DSTree)e(*dstree)g(\\))95 b(;)227 553 y Fj(This)40\n b(metho)s(d)g(returns)f(the)i(stages)h(for)e(the)h(standard)f(m)m\n (ultisection)i(ordering.)71 b(The)40 b(lev)m(els)i(of)f(the)227\n 666 y(domains)34 b(and)f(separators)h(are)g(obtained)g(via)g(a)g(call)h\n (to)g Fi(Tree)p 2455 666 29 4 v 33 w(setHeightImetric\\(\\))p\n Fj(.)45 b(A)34 b Fi(stagesIV)227 779 y(IV)40 b Fj(ob)5\n b(ject)41 b(is)f(created)h(of)f(size)h Fi(nvtx)47 b(=)g(mapIV->size)p\n@@ -3997,20 +3984,20 @@\n (in)h(the)f(tree)h(via)g(a)g(p)s(ost-order)f(tra)m(v)m(ersal.)227\n 5294 y Fh(Err)-5 b(or)34 b(che)-5 b(cking:)41 b Fj(If)29\n b Fi(dstree)g Fj(is)i Fi(NULL)p Fj(,)e(or)h(if)h(the)f(ob)5\n b(ject)32 b(has)e(not)g(b)s(een)g(initialized,)j(an)d(error)g(message)\n 227 5407 y(is)h(prin)m(ted)f(and)f(the)i(program)f(exits.)p\n eop end\n %%Page: 5 5\n-TeXDict begin 5 4 bop 91 100 1170 4 v 1351 100 a Fi(Tree)29\n-b Fd(:)41 b Fh(DRAFT)121 b Fd(August)30 b(3,)h(2025)p\n-2683 100 V 1170 w Fj(5)111 399 y(3.)46 b Fi(int)h(DSTree_domainWeight)c\n-(\\()k(DSTree)f(*dstree,)g(int)h(vwghts[])e(\\))j(;)227\n-560 y Fj(This)25 b(metho)s(d)g(returns)g(the)h(w)m(eigh)m(t)h(of)f(the)\n-g(v)m(ertices)h(in)f(the)g(domains.)38 b(If)26 b Fi(vwghts)e\n+TeXDict begin 5 4 bop 91 100 1228 4 v 1409 100 a Fi(Tree)29\n+b Fd(:)41 b Fh(DRAFT)121 b Fd(July)30 b(1,)h(2024)p 2626\n+100 V 1228 w Fj(5)111 399 y(3.)46 b Fi(int)h(DSTree_domainWeight)c(\\()k\n+(DSTree)f(*dstree,)g(int)h(vwghts[])e(\\))j(;)227 560\n+y Fj(This)25 b(metho)s(d)g(returns)g(the)h(w)m(eigh)m(t)h(of)f(the)g(v)\n+m(ertices)h(in)f(the)g(domains.)38 b(If)26 b Fi(vwghts)e\n Fj(is)i Fi(NULL)p Fj(,)e(the)i(v)m(ertices)227 673 y(ha)m(v)m(e)32\n b(unit)e(w)m(eigh)m(t.)227 834 y Fh(Err)-5 b(or)34 b(che)-5\n b(cking:)40 b Fj(If)30 b Fi(dstree)f Fj(is)h Fi(NULL)p\n Fj(,)g(an)g(error)g(message)i(is)e(prin)m(ted)g(and)g(the)g(program)g\n (exits.)111 1043 y(4.)46 b Fi(int)h(DSTree_separatorWeight)42\n b(\\()47 b(DSTree)f(*dstree,)g(int)h(vwghts[])e(\\))j(;)227\n 1204 y Fj(This)40 b(metho)s(d)h(returns)f(the)h(w)m(eigh)m(t)h(of)g\n@@ -4074,17 +4061,17 @@\n b Fi(dstree)e Fj(or)h Fi(fn)g Fj(are)i Fi(NULL)p Fj(,)d(or)i(if)g\n Fi(fn)f Fj(is)h(not)g(of)f(the)h(form)g Fi(*.dstreef)d\n Fj(\\(for)j(a)227 5294 y(formatted)32 b(\\014le\\))g(or)f\n Fi(*.dstreeb)e Fj(\\(for)j(a)f(binary)g(\\014le\\),)h(an)f(error)g\n (message)i(is)e(prin)m(ted)g(and)g(the)g(metho)s(d)227\n 5407 y(returns)e(zero.)p eop end\n %%Page: 6 6\n-TeXDict begin 6 5 bop 0 100 a Fj(6)p 136 100 1170 4 v\n-1352 w Fi(Tree)29 b Fd(:)41 b Fh(DRAFT)30 b Fd(August)g(3,)h(2025)p\n-2731 100 V 111 399 a Fj(5.)46 b Fi(int)h(DSTree_writeToFormattedFi)o\n+TeXDict begin 6 5 bop 0 100 a Fj(6)p 136 100 1228 4 v\n+1409 w Fi(Tree)30 b Fd(:)40 b Fh(DRAFT)30 b Fd(July)g(1,)h(2024)p\n+2673 100 V 111 399 a Fj(5.)46 b Fi(int)h(DSTree_writeToFormattedFi)o\n (le)42 b(\\()47 b(DSTree)f(*dstree,)g(FILE)g(*fp)h(\\))h(;)227\n 548 y Fj(This)30 b(metho)s(d)g(writes)g(a)h Fi(DSTree)e\n Fj(ob)5 b(ject)31 b(to)g(a)g(formatted)g(\\014le.)41 b(If)30\n b(there)h(are)g(no)f(errors)g(in)g(writing)h(the)227\n 661 y(data,)h(the)e(v)-5 b(alue)31 b Fi(1)f Fj(is)g(returned.)40\n b(If)30 b(an)g(IO)g(error)g(is)g(encoun)m(tered)h(from)f\n Fi(fprintf)p Fj(,)f(zero)i(is)f(returned.)227 810 y Fh(Err)-5\n@@ -4158,17 +4145,17 @@\n 5181 V 33 w(writeToFile\\(\\))17 b Fj(metho)s(d)427 5294\n y(is)31 b(called)h(to)f(write)g(the)g(ob)5 b(ject)32\n b(to)f(a)g(formatted)h(\\014le)f(\\(if)g Fi(outFile)d Fj(is)j(of)g(the)g\n (form)f Fi(*.dinpmtxf)p Fj(\\),)427 5407 y(or)h(a)f(binary)g(\\014le)g\n (\\(if)h Fi(outFile)e Fj(is)h(of)g(the)h(form)f Fi(*.dinpmtxb)p\n Fj(\\).)p eop end\n %%Page: 7 7\n-TeXDict begin 7 6 bop 91 100 1170 4 v 1351 100 a Fi(Tree)29\n-b Fd(:)41 b Fh(DRAFT)121 b Fd(August)30 b(3,)h(2025)p\n-2683 100 V 1170 w Fj(7)111 399 y(2.)46 b Fi(writeStagesIV)e(msglvl)j\n+TeXDict begin 7 6 bop 91 100 1228 4 v 1409 100 a Fi(Tree)29\n+b Fd(:)41 b Fh(DRAFT)121 b Fd(July)30 b(1,)h(2024)p 2626\n+100 V 1228 w Fj(7)111 399 y(2.)46 b Fi(writeStagesIV)e(msglvl)j\n (msgFile)e(inFile)h(type)h(outFile)227 544 y Fj(This)28\n b(driv)m(er)h(program)g(reads)f(in)h(a)g Fi(DSTree)e\n Fj(from)h(a)i(\\014le,)f(creates)h(a)g(stages)g Fi(IV)e\n Fj(ob)5 b(ject)30 b(and)e(writes)h(it)g(to)227 657 y(a)i(\\014le.)337\n 855 y Fe(\\210)45 b Fj(The)28 b Fi(msglvl)f Fj(parameter)i(determines)g\n (the)g(amoun)m(t)g(of)f(output)h(|)f(taking)i Fi(msglvl)46\n b(>=)h(3)28 b Fj(means)427 968 y(the)j Fi(DSTree)e Fj(ob)5\n", "details": [{"source1": "ps2ascii {}", "source2": "ps2ascii {}", "unified_diff": "@@ -21,15 +21,15 @@\n The DSTree object has a very simple data structure. It contains a Tree object to represent the\r\n tree \ufb01elds of the domains and separators, and an IV object to hold the map from the vertices to\r\n the domains and separators.\r\n \u2022 Tree *tree : pointer to the Tree object\r\n \u2022 IV *mapIV : pointer to the IV object that holds the map from vertices to domains and\r\n separators.\r\n 1\r\n- 2 Tree : DRAFT August 3, 2025\r\n+ 2 Tree : DRAFT July 1, 2024\r\n 1.2 Prototypes and descriptions of DSTree methods\r\n This section contains brief descriptions including prototypes of all methods that belong to the\r\n DSTree object.\r\n 1.2.1 Basic methods\r\n As usual, there are four basic methods to support object creation, setting default \ufb01elds, clearing\r\n any allocated data, and free\u2019ing the object.\r\n 1. DSTree * DSTree_new ( void ) ;\r\n@@ -52,15 +52,15 @@\n 1.2.2 Instance methods\r\n 1. Tree * DSTree_tree ( DSTree *dstree ) ;\r\n This method returns a pointer to its Tree object.\r\n Error checking: If dstree is NULL, an error message is printed and the program exits.\r\n 2. IV * DSTree_mapIV ( DSTree *dstree ) ;\r\n This method returns a pointer to its IV object that maps vertices to domains and separators.\r\n Error checking: If dstree is NULL, an error message is printed and the program exits.\r\n- Tree : DRAFT August 3, 2025 3\r\n+ Tree : DRAFT July 1, 2024 3\r\n 1.2.3 Initializer methods\r\n There are three initializers and two helper functions to set the dimensions of the dstree, allocate\r\n the three vectors, and \ufb01ll the information.\r\n 1. void DSTree_init1 ( DSTree *dstree, int ndomsep, int nvtx ) ;\r\n This method initializes an object given the number of vertices, (the dimension of mapIV) and\r\n domains and separators (the number of nodes in tree). It then clears any previous data\r\n with a call to DSTree clearData(). The tree \ufb01eld is created and initialized via a call to\r\n@@ -88,15 +88,15 @@\n This method returns the stages for a nested dissection variant, separators on two adjacent\r\n levels are put into the same stage. The levels of the domains and separators are obtained\r\n via a call to Tree setHeightImetric(). A stagesIV IV object is created of size nvtx =\r\n mapIV->size, \ufb01lled and then returned. If a vertex is found in a domain, its stage is zero. If\r\n a vertex is found in a separator at level k, its stage is \u2308k/2\u2309.\r\n Error checking: If dstree is NULL, or if the object has not been initialized, an error message\r\n is printed and the program exits.\r\n- 4 Tree : DRAFT August 3, 2025\r\n+ 4 Tree : DRAFT July 1, 2024\r\n 3. IV * DSTree_MS2stages ( DSTree *dstree ) ;\r\n This method returns the stages for the standard multisection ordering. The levels of the\r\n domains and separators are obtained via a call to Tree setHeightImetric(). A stagesIV\r\n IV object is created of size nvtx = mapIV->size, \ufb01lled and then returned. If a vertex is\r\n found in a domain, its stage is zero. If a vertex is found in a separator, its stage is one.\r\n Error checking: If dstree is NULL, or if the object has not been initialized, an error message\r\n is printed and the program exits.\r\n@@ -125,15 +125,15 @@\n If dstree is NULL, an error message is printed and the program exits. Otherwise, the number\r\n of bytes taken by this object is returned.\r\n Error checking: If dstree is NULL, an error message is printed and the program exits.\r\n 2. void DSTree_renumberViaPostOT ( DSTree *dstree ) ;\r\n This method renumbers the fronts in the tree via a post-order traversal.\r\n Error checking: If dstree is NULL, or if the object has not been initialized, an error message\r\n is printed and the program exits.\r\n- Tree : DRAFT August 3, 2025 5\r\n+ Tree : DRAFT July 1, 2024 5\r\n 3. int DSTree_domainWeight ( DSTree *dstree, int vwghts[] ) ;\r\n This method returns the weight of the vertices in the domains. If vwghts is NULL, the vertices\r\n have unit weight.\r\n Error checking: If dstree is NULL, an error message is printed and the program exits.\r\n 4. int DSTree_separatorWeight ( DSTree *dstree, int vwghts[] ) ;\r\n This method returns the weight of the vertices in the separators. If vwghts is NULL, the\r\n vertices have unit weight.\r\n@@ -159,15 +159,15 @@\n 4. int DSTree_writeToFile ( DSTree *dstree, char *fn ) ;\r\n This method writes a DSTree object to a \ufb01le. It tries to open the \ufb01le and if it is successful,\r\n it then calls DSTree writeFromFormattedFile()or DSTree writeFromBinaryFile(),closes\r\n the \ufb01le and returns the value returned from the called routine.\r\n Error checking: If dstree or fn are NULL, or if fn is not of the form *.dstreef (for a\r\n formatted \ufb01le) or *.dstreeb (for a binary \ufb01le), an error message is printed and the method\r\n returns zero.\r\n- 6 Tree : DRAFT August 3, 2025\r\n+ 6 Tree : DRAFT July 1, 2024\r\n 5. int DSTree_writeToFormattedFile ( DSTree *dstree, FILE *fp ) ;\r\n This method writes a DSTree object to a formatted \ufb01le. If there are no errors in writing the\r\n data, the value 1 is returned. If an IO error is encountered from fprintf, zero is returned.\r\n Error checking: If dstree or fp is NULL, an error message is printed and zero is returned.\r\n 6. int DSTree_writeToBinaryFile ( DSTree *dstree, FILE *fp ) ;\r\n This method writes a DSTree object to a binary \ufb01le. If there are no errors in writing the\r\n data, the value 1 is returned. If an IO error is encountered from fwrite, zero is returned.\r\n@@ -195,15 +195,15 @@\n \u2022 The inFile parameter is the input \ufb01le for the DSTree object. It must be of the\r\n form *.dinpmtxf or *.dinpmtxb. The DSTree object is read from the \ufb01le via the\r\n DSTree readFromFile() method.\r\n \u2022 The outFileparameter is the output \ufb01le for the DSTree object. If outFile is none then\r\n the DSTreeobject is not written to a \ufb01le. Otherwise, the DSTree writeToFile()method\r\n is called to write the object to a formatted \ufb01le (if outFile is of the form *.dinpmtxf),\r\n or a binary \ufb01le (if outFile is of the form *.dinpmtxb).\r\n- Tree : DRAFT August 3, 2025 7\r\n+ Tree : DRAFT July 1, 2024 7\r\n 2. writeStagesIV msglvl msgFile inFile type outFile\r\n This driver program reads in a DSTree from a \ufb01le, creates a stages IV object and writes it to\r\n a \ufb01le.\r\n \u2022 The msglvl parameter determines the amount of output \u2014 taking msglvl >= 3 means\r\n the DSTree object is written to the message \ufb01le.\r\n \u2022 The msgFile parameter determines the message \ufb01le \u2014 if msgFile is stdout, then the\r\n message \ufb01le is stdout, otherwise a \ufb01le is opened with append status to receive any output\r\n"}]}]}, {"source1": "./usr/share/doc/spooles-doc/DV.ps.gz", "source2": "./usr/share/doc/spooles-doc/DV.ps.gz", "unified_diff": null, "details": [{"source1": "DV.ps", "source2": "DV.ps", "unified_diff": "@@ -11,15 +11,15 @@\n %%EndComments\n %%BeginDefaults\n %%ViewingOrientation: 1 0 0 1\n %%EndDefaults\n %DVIPSWebPage: (www.radicaleye.com)\n %DVIPSCommandLine: dvips main -o DV.ps\n %DVIPSParameters: dpi=600\n-%DVIPSSource: TeX output 2025.08.03:1317\n+%DVIPSSource: TeX output 2024.07.01:0700\n %%BeginProcSet: tex.pro 0 0\n %!\n /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S\n N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72\n mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0\n 0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{\n landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize\n@@ -2350,23 +2350,22 @@\n /UnderlinePosition -100 def\n /UnderlineThickness 50 def\n end readonly def\n /Encoding 256 array\n 0 1 255 {1 index exch /.notdef put} for\n dup 44 /comma put\n dup 48 /zero put\n+dup 49 /one put\n dup 50 /two put\n-dup 51 /three put\n-dup 53 /five put\n+dup 52 /four put\n dup 58 /colon put\n-dup 65 /A put\n-dup 103 /g put\n-dup 115 /s put\n-dup 116 /t put\n+dup 74 /J put\n+dup 108 /l put\n dup 117 /u put\n+dup 121 /y put\n readonly def\n currentdict end\n currentfile eexec\n D9D66F633B846AB284BCF8B0411B772DE5CE32340DC6F28AF40857E4451976E7\n 5182433CF9F333A38BD841C0D4E68BF9E012EB32A8FFB76B5816306B5EDF7C99\n 8B3A16D9B4BC056662E32C7CD0123DFAEB734C7532E64BBFBF5A60336E646716\n EFB852C877F440D329172C71F1E5D59CE9473C26B8AEF7AD68EF0727B6EC2E0C\n@@ -2547,79 +2546,67 @@\n 7CA1534C4D5B05FC33F83790ECFD7641DF3FB94289E2A1F6E7D29AB1228A867A\n 6E1EF0E9C6F899B491DC18401C2C0A05FFFED46A72C245F7529B8EA55A038082\n 8512307217D2A233C37004085BA3AEE379269F9FA7D0ADB4B19A95CC2AFE686E\n 55D88E47257C1FE6F235FEA295910569FE6DD5995512562359CC821E85A6C7A5\n 79B470A9E340A6985189FF8B6AF914A6B0ECF93F47903221F95DE894A8F05B05\n B7D99CD533EC5F931B18E6B39BECF67FA2D6DD1AEC76772B068BE06335A94C05\n 7A4DDEE77B66101DA855C17AC312600370B34E31F5EC3A01300A8EB60B4C9767\n-1B2FA10DF7E91D3BB34A1B1CE7A0015A57C813E0280D873ADB88440048702D1F\n-77994EE04EC3B4531D6E1888C86A8F0DA6CF1F056F16AB0DD76C862830F89DA4\n-28923B3AA543E0D6E41D3BD283E600BC11F889315EE92C675C109C81065ED1BC\n-82A5583D1B723D50051B0557A367887F5B263014C6E77288B4883C50889473D3\n-3787BAD4BEB88BD1353AFA5B73E61814819537E7FF09F53EF94792BB3DD36ED0\n-002D0E7A6CDAB85A9C17AF5664BCB5A71663B861880F3ECCABC8E7A2FC81A4CC\n-AE7A87503FDC1CE0077BA51ECC7B43B60793FED8E9AAD5BBD03ADD6183DCD26D\n-24A74163611C05562437644EF9B8889FD4F9D311911204FEFD35237486F2D2D0\n-B6783A03BF12EA6D19D6D0F87E4D08515F12F9CBF1961CAA71E0D69FE3C4C4D2\n-7C7FB64ED24F8684C8F00C2BEDEA53EA390CDC0B5BEBD7DD982580B2EA1F1F89\n-CFED5916630DC2BA32BB9180277E1ABC339B3B7DE086717BD93F7FF3681BA5B3\n-FCF671C4B293C2DE4A322F0AA3323A4934444C69F23EF90120B8755482757759\n-C457A435FB8BB4922BD92C5F3D9555D978275C510183E29DFF2FCE4ABBFC18DE\n-76CAD3B486BA12047DD808CD4D521A0FD368E4AE79DE262630983A5D6F0B679D\n-2F005306393C520E1B6987302D029939D94B0178DC55D5264E1FEA468AD4134C\n-8C65B2FBBE8DE8284E8E1F6BFE0B648F44D3DA8E9350D266EDBFD4A7054D9355\n-1E0B185DED37BCF32D3731358F1D707C94109428BAD3CEA456A2A43553E3D2C2\n-F549189201F3D3F715310E3E8C6A2E9AA5141AA9125D203694C7D875C2DD320F\n-C5BCDFC924F6C04DBC7A97349B45ECD0FBD7D2123ED1D3A9F440B1112BE62779\n-47A4592F9285CBD9635EC9091CEC0AFD7E6B6976974081DB9C0E43165BD8584D\n-6CDF08DED287F0883A9FBD351B3F8706BA1E94C7CA487338269482EB8DC1A05D\n-F6632A5D834DE29228C49C5BA65EF7C535A53B380BF4B391F43562147538EE97\n-E799DFC2C40315859F56BBCE9CAE1DF9293F6E2C193ABE7A724EC8F32FA220E7\n-6026877A63E318254F2AF7B1325D63FC4C52B536D3EF354814C2F8F1EEA30569\n-6EF04447DB0F809DF35B4985B9FB4F4BB6087310BE633E76F268B32ABA99CE8E\n-03163DFF4AEDB88E60DD0848C15E90026D7C24D81122EBC07113F9851914A9D5\n-D0E09C2BFDDAF10C5D8208E8329BC0C402F231CD84C95EFDD182AD9756662110\n-274650C7A5BB0D8EFA54EC6C5A49C0EB26701A54779AE8EFBBED824262761602\n-680EDFB38F0FE18C0F501F5AA8BF48A8F0DD3E5E1EBEB872F6F6B23964707B32\n-507FC677B9FDDC990E3828B06420F6F968B2F6AE81E76A2144B1ECE905485616\n-CFB29AC96DDE1F5039935D7E385CC13E34DD7EAF276A2EA3A8BF27FD4205AE13\n-7FE620E42F2CF231C6C8DD8EFC5A6CF081E5660D9ADD730D72D15C02B1E15FF3\n-D741D3B1EB1E666C4E562219033C1E2EF3F96E136998B2E1890395A3637A2C02\n-DE1C46AFCA8D898439F06606A2295D3F7ED6C7DB250C61B6B97A0D5EDDB9657E\n-E790B4E07540BB1026036F4A0D00E7F16FD757AD61D686620C6814B7DCEC43E8\n-FD36D9E75BA554F64548A67D9B0A26E11784E58D4357FC251D71B5D6D8BFDDE0\n-D3BF0E825DA5312C1904AF13C5905C2ADF79C357476183D2EC5A95243235E861\n-2F98D9EE77EF8F8CB3EC6BD358C5ED37DD3AF44D60575E7774BF96F1AE9DFAD1\n-F8646DEDF21D10311854726B8F7D25876BB1EF78E2442B16ED4B851816CF0A27\n-11FDFCE525002A1A7C3E62CD2A3EDE6FAADB026D2F3A46C030ADB22422CA8FF5\n-2545ED58C0D9FB5BDB55FE674301E91A75B005B86BD201D246F7ADACE50419FD\n-AC3312CAC5EB78A36F0E5F62E65AC92129CB574AAC59E0A7C1390DFC61F39D9E\n-D7036742F2F6E64D1EF8157E9CCF65F3EEDC6A8220235978B8E06EB80F649F3E\n-204CFB497F49306EA8E1F7B62305978A28F1E771ED82C6592C71022154E4062A\n-A92335EFC65D6DED9C686899FFD7AA2988740618C03C5E362E1AF352E3BE4602\n-5530C51E5FC8E9082DF79199CC91C50174000D337D86127AC807C5A3C81DDE57\n-7A68AEE7230949B925365C214D77C80E87CEE218ABC94023717EA43BA5D8A7C8\n-8A8B9BD1B767996AE33050E3D922ED0574E3579C57E4BDDAD35883806AFDF260\n-3AB5D83D451583262E580FFDB7A27D82396AF18D92B849A3F7A7E621987D5DF0\n-038F876C6E9CA47FB11AF05F0019191C5DDC5F0177AD421E94BC66D0CCB82F1F\n-93A80836284B095503752C600F72E2C89112ABFA5B76152691264103B268B3E5\n-8816724ADADB38740001A9AACE05C8AF02D72918606DC22EFC8BF0DA0FD12FFE\n-D3A09F8E28057F327BFB633E604B1EAD478637B1D9631650B314CC62D7E0E87F\n-9D3FE1FFA23BB6E3006C3E39BED52F6B0C1C651B5913878F36DA0BF776889165\n-68BA3456B40B8B471CA8FF5238E43D9113E052A2B8D2EAA2433D3F89FCA48AFB\n-5E842913E4ED6DF9623354059CD1F1707B126FED80349787C869883120183EDD\n-249185A55503FAC53898F52170D05CAC62BB742CF9702C0518AED6B27CDC401C\n-932E02143FD916703F360CB31049501B35EF3EDDFED791090D0CFA221FD1DB32\n-7D4759CE07983AE29C258C705D11E7D9481EEAAB9B6BA65CDCF0AA0057BD6FEA\n-ABBFBD3ABF2A7BFB550C3D2A16DC447384A89F3DB6D9C2DBDCA997ABE35A7706\n-633D328AECEDB5BD07070C1B96267FD73B45791DD18194F60D358091FBE88409\n-973529806F3D2C9E6E39091F90A14B560A987E0B9490B9B690FB489B8E253070\n-D7C54447BE0E0A0BFEAEFFB581DC1300E6EC382984673BF0665632404E59B5BF\n-5D5F0A1C956E618C0487751CA5DAE8A95C214F76ED756694EF273679CD2D85CB\n-949DF385BD50491649EFEFDA1574921D7460143D42A100D2C76E55F0BC\n+1B2FA10DF7E91D3BB34A1B1CE7A0015A57C813E0280D873ADB8844004B9BA1CC\n+580D3C6BDA4DC1B80B4365F1C80512453FC5316EC2D928FB731C3D6403E3C18B\n+E8424D644DF5E9A2134229C5C91CA68DB8E85BA2BB40F538F585DA6FA4037718\n+B8053EBBA1E765346BCD5BDAA6C38115D31611D8A87A2238C145F2DA2F92E4DF\n+3987BD9C4D2A3D460E8941A68B125BCD9EE4F9FD262C4C8A71F47A2C81975635\n+F1B981C274C53FA2ACCDE4C9D0A7C62D6C1EFF91CFC6712CA6A9F333C9564FCB\n+2A70F0AD715A79B10A08AB069E2A3C93BC0AED19D0CA10134B8DDDE8AF548DB2\n+3A4AAA9C29682CF135BB767DAA16169A127EB50A7EECEB6480CF56A7D0F8AC56\n+4A5090B3D75A790372886AF568D94C8165975A05BFBFDF1FFBA45F70700BB9E0\n+57F3249EF9E9C8AD9CBCF6E4FD592DC4CDD2CC7C0BC3130C1059096C657BE453\n+A2CBACE93420210E27AF56CA229BD6D982FB68B3FDC6D44478B922C4231C47EE\n+E500232F6C11D92DEB955F66DF52B92B22E7352790CC2DCBAC53965D57AC2920\n+68B7D520DE25047146EFEB06B9AD4E2A94243C7E5239F0BC2FC312B16051D52C\n+0B92C217B6B42997321AE4F8BB066754B7AA3F15069EF59224E8A442CE471AA7\n+E8049A3DD9EDA09CCEE4998998661CF7DB35E952F6C65DAEB3013951C59F3E09\n+157F313B0237876E1C0190F0473819570B8C0205AADF05D787CC00979CFB327A\n+289382B22DDA6F12804ED0ED5B179E36A995A2A59E1B66E75130DBE9109C813B\n+94403E0DEA8314A1E9DB474D7FA83C0BAFD08033E6A6215844C1D26BE15F1251\n+A1605E8DF9A9C601ED37379530BC1C82BE5463C6C711C5652BFD6262485AA9CA\n+B8C4A117593001D08D980041E2A83C190DCE8E6CD3D334E5CC19FC05DB30F7F7\n+24A305C4DBB31F0651392B99D44B4302333BDF7E326FD256DD75D309C6E73F85\n+FA71B35FD1F9BEFF4C7A1076362EEB0A85492933B6006086A7B8C1928CF2D1EE\n+FD4344409257BB802C117E739960821CD3C88BFBA5669FF16F610AD638AF3677\n+8674C985E6767253ED5769F71BEA5E9BB02A751F9E62EE2B18AC19D975FDEAE9\n+8B8822367FF177A7E850766DE99ED3366D46464612926430012212A90F8E85F4\n+4760B40D5B86B90819EE410382D22D8ED82D0B0AB00C93E10CD365F8766D1C87\n+B4A866021FB6F6AC3D250CC601989B1B8FE6B1098A48282D2CF258BF38FEE940\n+CE0141FB1344156DE7712A8F2DBF700174F12616EE17C852210D96D03E5E6635\n+D439EB6E84A383DDD32AD72DADE6F931FDBABBDC726C36081C96018FC95EAE13\n+DA1F8DBC2D8355AC9792649653225393F4A7A88F3B9443FEEB75E2C15BF93F09\n+CCBA7FABC022BE26F4C28152D5DA6D690494AD4EC0DA1B598AE12536BADF88B5\n+5E20EB452546389F57FF55459567B453AE1831C57D22FA6A4FDF441EDAFDB7FB\n+4F4B707C1FF9159C40F7B5DD519FC07815EE91B8D756B6C18500BCF47D0D9E45\n+6A2D51B6AA5AEAAC9AB2DEF7F0FDE957B6C179CBADEECAC7E9CEC248AB135EB4\n+FBF83D002FF859B574EF36C371540EF2BCFCEF5C2E7863AEDD7C3C965103453B\n+023A9CEC1D5C45B88827ADF4AE0C6746F3C7E6A944427DAEC493601019583A16\n+0F846CE00EAE89EEFF9CE68A0E1D6EBB8FDD8A45D1BF399B36A8328EC957CB8B\n+D842A56269C8C9A6B472C9E65BCBC090606B4E8A7EF4ABDEA120C9F9B3969A1C\n+2EB102925F4E155160E58000E1ADB0D19E10EFD96F6C3225EEE8FC24D122C069\n+C11F1A69DC383F7DACD2F3929BD135CE69787C6E7560AC4B683FE5D9AAFD2E89\n+EE6D95E38C9B726B416E28169A11E29559DBA9AECD714CF318FCB78F34A0E562\n+9C00FE0C6D5A848557D9A82EC2BEFCD30B5EDC0B23C5BA9F812C864394C8B9D1\n+B08BAC9CF94E70FF842306ACCFE6E39A56777C712904A3AB29FBD19275E19E06\n+B35B37CFFFCEC81CAF2D85A853663FAFCFFED1EA77064AA28C15BC94910683BC\n+D09513079DE9EE18E97CC2403DD206516D7F652A3459870757F34EEDCEF952C3\n+FE8004F4716B5BD6774E455010B0BB1E61FCD66B9F14F9BBCCF3E55A158EE96E\n+9A05BDFDDC7706D4BC28FDDC4004EF3A430C607EBDF115E0C996454D70C8BB42\n+D7C83A454B116663D648C23CE2B33365810DE2B64D4AE011BC8043BC3E05B94D\n+1700F859C6AFC6515C1C42FA104EE3E8F3FA5F80252C2E79B00ED27F675FFD09\n+B50BF7A3C63CF4856F909DF969D7DD3EA05CABDD1E71A58CFC2AB5F614B4E5E0\n+25CF92E9FB66ACEBE05DF5E033DA8AD3EE32D94C02D98DD7DA99FAB5AEA595C3\n+2987DC122F0242D76B782349E4069DE0CDD6EF4375C680CBFE4C8F24F2AE89BF\n+7785F5EA7435A91500F265022C307E8ADEAAE1C6\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n@@ -4193,19 +4180,19 @@\n /Fb 235[71 20[{}1 90.9091 /CMSY10 rf /Fc 206[35 35 48[{}2\n 66.4176 /CMR8 rf /Fd 133[50 59 4[44 44 46 2[56 62 93\n 31 2[31 62 2[51 62 50 1[54 11[86 5[84 5[42 6[80 12[56\n 56 56 56 56 2[31 46[{}25 99.6264 /CMBX12 rf /Fe 139[62\n 4[62 4[62 4[62 1[62 62 11[62 17[62 68[{}8 119.552 /CMTT12\n rf /Ff 138[49 30 37 38 1[46 46 51 74 23 42 1[28 46 42\n 1[42 46 42 42 46 12[65 1[66 11[59 62 69 2[68 6[28 58[{}25\n-90.9091 /CMTI10 rf /Fg 138[51 35 36 11[45 37[68 6[25\n-4[45 1[45 45 1[45 3[25 44[{}11 90.9091 /CMSL10 rf /Fh\n-134[71 2[71 75 52 53 55 1[75 67 75 112 3[37 75 67 41\n-61 75 60 1[65 13[75 2[92 11[103 16[67 67 67 2[37 46[{}25\n-119.552 /CMBX12 rf\n+90.9091 /CMTI10 rf /Fg 134[48 3[51 8[25 33[47 15[25 5[45\n+1[45 45 45 3[25 44[{}10 90.9091 /CMSL10 rf /Fh 134[71\n+2[71 75 52 53 55 1[75 67 75 112 3[37 75 67 41 61 75 60\n+1[65 13[75 2[92 11[103 16[67 67 67 2[37 46[{}25 119.552\n+/CMBX12 rf\n %DVIPSBitmapFont: Fi tcrm1095 10.95 2\n [/Grave/Acute/Circumflex/Tilde/Dieresis/Hungarumlaut/Ring/Caron/Breve/Macron\n /Dotaccent/cedilla/ogonek/quotesinglbase.ts1 4{/.notdef}repeat\n /quotedblbase.ts1/.notdef/.notdef/twelveudash/threequartersemdash\n /afii61664.cap/arrowleft/arrowright/tieaccentlowercase/tieaccentcapital\n /tieaccentlowercase.new/tieaccentcapital.new/.notdef/afii61664.asc/uni2422 3\n {/.notdef}repeat/dollar/.notdef/.notdef/quotesingle/.notdef/.notdef\n@@ -4320,17 +4307,17 @@\n Fk(DV)g Fl(ob)5 b(ject.)41 b(On)29 b(the)g(other)h(hand,)e(the)i(con)m\n (v)m(enience)0 4684 y(mak)m(es)h(it)g(a)g(widely)f(used)g(ob)5\n b(ject.)0 4989 y Fh(1.1)135 b(Data)46 b(Structure)0 5214\n y Fl(The)30 b Fk(DV)g Fl(structure)g(has)g(three)g(\\014elds.)137\n 5407 y Fi(\\210)45 b Fk(int)i(size)29 b Fl(:)41 b(presen)m(t)30\n b(size)i(of)e(the)h(v)m(ector.)1927 5656 y(1)p eop end\n %%Page: 2 2\n-TeXDict begin 2 1 bop 0 100 a Fl(2)p 136 100 1223 4 v\n-1404 w Fk(DV)30 b Fg(:)h Ff(DRAFT)f Fg(August)g(3,)h(2025)p\n-2678 100 V 137 399 a Fi(\\210)45 b Fk(int)i(maxsize)29\n+TeXDict begin 2 1 bop 0 100 a Fl(2)p 136 100 1280 4 v\n+1462 w Fk(DV)30 b Fg(:)g Ff(DRAFT)h Fg(July)e(1,)i(2024)p\n+2620 100 V 137 399 a Fi(\\210)45 b Fk(int)i(maxsize)29\n b Fl(:)40 b(maxim)m(um)30 b(size)i(of)e(the)h(v)m(ector.)137\n 608 y Fi(\\210)45 b Fk(int)i(owned)27 b Fl(:)40 b(o)m(wner)28\n b(\\015ag)h(for)f(the)h(data.)41 b(When)28 b Fk(owned)46\n b(=)i(1)p Fl(,)28 b(storage)i(for)f Fk(owned)e(double)p\n Fl('s)f(has)j(b)s(een)227 721 y(allo)s(cated)k(b)m(y)d(this)h(ob)5\n b(ject)31 b(and)f(can)h(b)s(e)f(free'd)g(b)m(y)h(the)f(ob)5\n b(ject.)42 b(When)31 b Fk(owned)46 b(==)h(0)30 b Fl(but)g\n@@ -4384,17 +4371,17 @@\n (storage)i(b)m(y)d(a)i(call)g(to)f Fk(DV)p 2148 5133\n V 34 w(clearData\\(\\))d Fl(then)i(free's)h(the)g(storage)h(for)f(the)227\n 5246 y(structure)h(with)g(a)h(call)h(to)f Fk(free\\(\\))p\n Fl(.)227 5407 y Ff(Err)-5 b(or)34 b(che)-5 b(cking:)40\n b Fl(If)30 b Fk(dv)g Fl(is)h Fk(NULL)e Fl(an)h(error)g(message)h(is)g\n (prin)m(ted)f(and)g(the)g(program)g(exits.)p eop end\n %%Page: 3 3\n-TeXDict begin 3 2 bop 91 100 1223 4 v 1404 100 a Fk(DV)30\n-b Fg(:)g Ff(DRAFT)121 b Fg(August)31 b(3,)g(2025)p 2631\n-100 V 1223 w Fl(3)0 399 y Fd(1.2.2)112 b(Instance)38\n+TeXDict begin 3 2 bop 91 100 1280 4 v 1462 100 a Fk(DV)29\n+b Fg(:)i Ff(DRAFT)121 b Fg(July)30 b(1,)h(2024)p 2573\n+100 V 1280 w Fl(3)0 399 y Fd(1.2.2)112 b(Instance)38\n b(metho)s(ds)0 610 y Fl(These)33 b(metho)s(d)f(allo)m(w)j(access)g(to)e\n (information)h(in)f(the)g(data)h(\\014elds)e(without)i(explicitly)g\n (follo)m(wing)h(p)s(oin)m(ters.)0 723 y(There)g(is)h(o)m(v)m(erhead)h\n (in)m(v)m(olv)m(ed)h(with)d(these)h(metho)s(d)g(due)f(to)h(the)g\n (function)g(call)h(and)e(error)h(c)m(hec)m(king)h(inside)0\n 835 y(the)31 b(metho)s(ds.)111 1110 y(1.)46 b Fk(int)h(DV_owned)f(\\()h\n (DV)g(*dv)g(\\))h(;)227 1276 y Fl(This)24 b(metho)s(d)g(returns)g(the)g\n@@ -4448,17 +4435,17 @@\n (double)h(value)f(\\))h(;)227 5242 y Fl(This)30 b(metho)s(d)g(sets)g\n (the)h Fk(loc)p Fl('th)f(en)m(try)g(of)h(the)f(v)m(ector)i(to)f\n Fk(value)p Fl(.)227 5407 y Ff(Err)-5 b(or)33 b(che)-5\n b(cking:)40 b Fl(If)28 b Fk(dv)h Fl(is)g Fk(NULL)e Fl(or)j\n Fk(loc)46 b(<)i(0)p Fl(,)29 b(an)g(error)g(message)h(is)f(prin)m(ted)f\n (and)h(the)g(program)g(exits.)p eop end\n %%Page: 4 4\n-TeXDict begin 4 3 bop 0 100 a Fl(4)p 136 100 1223 4 v\n-1404 w Fk(DV)30 b Fg(:)h Ff(DRAFT)f Fg(August)g(3,)h(2025)p\n-2678 100 V 0 399 a Fd(1.2.3)112 b(Initializer)38 b(metho)s(ds)0\n+TeXDict begin 4 3 bop 0 100 a Fl(4)p 136 100 1280 4 v\n+1462 w Fk(DV)30 b Fg(:)g Ff(DRAFT)h Fg(July)e(1,)i(2024)p\n+2620 100 V 0 399 a Fd(1.2.3)112 b(Initializer)38 b(metho)s(ds)0\n 592 y Fl(There)30 b(are)h(three)f(initializer)j(metho)s(ds.)111\n 806 y(1.)46 b Fk(void)h(DV_init)f(\\()h(DV)g(*dv,)g(int)g(size,)f\n (double)g(*entries)g(\\))h(;)227 953 y Fl(This)36 b(metho)s(d)g\n (initializes)j(the)d(ob)5 b(ject)38 b(giv)m(en)f(a)g(size)h(for)e(the)h\n (v)m(ector)h(and)e(a)h(p)s(ossible)f(p)s(oin)m(ter)g(to)i(the)227\n 1066 y(v)m(ectors')30 b(storage.)42 b(An)m(y)28 b(previous)g(data)h(is)\n g(cleared)g(with)f(a)h(call)h(to)f Fk(DV)p 2716 1066\n@@ -4534,17 +4521,17 @@\n (offset)f(\\))h(;)227 5294 y Fl(This)32 b(metho)s(d)h(shifts)f(the)i\n (base)f(en)m(tries)g(of)h(the)f(v)m(ector)h(and)f(decremen)m(ts)g(the)g\n (presen)m(t)g(size)h(and)f(max-)227 5407 y(im)m(um)g(size)g(of)g(the)f\n (v)m(ector)j(b)m(y)d Fk(offset)p Fl(.)46 b(This)31 b(is)i(a)g\n (dangerous)f(metho)s(d)g(to)h(use)g(b)s(ecause)f(the)h(state)h(of)p\n eop end\n %%Page: 5 5\n-TeXDict begin 5 4 bop 91 100 1223 4 v 1404 100 a Fk(DV)30\n-b Fg(:)g Ff(DRAFT)121 b Fg(August)31 b(3,)g(2025)p 2631\n-100 V 1223 w Fl(5)227 399 y(the)37 b(v)m(ector)h(is)e(lost,)j(namely)e\n+TeXDict begin 5 4 bop 91 100 1280 4 v 1462 100 a Fk(DV)29\n+b Fg(:)i Ff(DRAFT)121 b Fg(July)30 b(1,)h(2024)p 2573\n+100 V 1280 w Fl(5)227 399 y(the)37 b(v)m(ector)h(is)e(lost,)j(namely)e\n Fk(vec)p Fl(,)g(the)g(base)f(of)h(the)f(en)m(tries,)j(is)e(corrupted.)\n 58 b(If)35 b(the)i(ob)5 b(ject)37 b(o)m(wns)g(its)227\n 511 y(en)m(tries)29 b(and)e Fk(DV)p 792 511 29 4 v 34\n w(free\\(\\))p Fl(,)g Fk(DV)p 1262 511 V 34 w(setSize\\(\\))e\n Fl(or)j Fk(DV)p 1958 511 V 34 w(setMaxsize\\(\\))d Fl(is)j(called)h(b)s\n (efore)f(the)g(base)g(has)g(b)s(een)227 624 y(shifted)h(bac)m(k)g(to)g\n (its)h(original)f(p)s(osition,)h(a)f(segmen)m(tation)i(violation)f\n@@ -4603,17 +4590,17 @@\n 5088 y(7.)46 b Fk(int)h(DV_sizeOf)e(\\()j(DV)f(*dv)g(\\))g(;)227\n 5247 y Fl(This)30 b(metho)s(d)g(returns)f(the)h(n)m(um)m(b)s(er)f(of)i\n (b)m(ytes)g(tak)m(en)g(b)m(y)g(the)f(ob)5 b(ject.)227\n 5407 y Ff(Err)-5 b(or)34 b(che)-5 b(cking:)40 b Fl(If)30\n b Fk(dv)g Fl(is)h Fk(NULL)e Fl(an)h(error)g(message)h(is)g(prin)m(ted)f\n (and)g(the)g(program)g(exits.)p eop end\n %%Page: 6 6\n-TeXDict begin 6 5 bop 0 100 a Fl(6)p 136 100 1223 4 v\n-1404 w Fk(DV)30 b Fg(:)h Ff(DRAFT)f Fg(August)g(3,)h(2025)p\n-2678 100 V 111 399 a Fl(8.)46 b Fk(double)g(*)i(DV_first)d(\\()j(DV)f\n+TeXDict begin 6 5 bop 0 100 a Fl(6)p 136 100 1280 4 v\n+1462 w Fk(DV)30 b Fg(:)g Ff(DRAFT)h Fg(July)e(1,)i(2024)p\n+2620 100 V 111 399 a Fl(8.)46 b Fk(double)g(*)i(DV_first)d(\\()j(DV)f\n (*dv)g(\\))g(;)227 511 y(double)f(*)i(DV_next)e(\\()h(DV)g(*dv,)g(int)g\n (*pd)g(\\))g(;)227 671 y Fl(These)30 b(t)m(w)m(o)i(metho)s(ds)e(are)h\n (used)e(as)i(iterators,)h(e.g.,)227 921 y Fk(for)47 b(\\()h(pd)f(=)g\n (DV_first\\(dv\\))e(;)i(pd)g(!=)h(NULL)e(;)i(pd)f(=)g(DV_next\\(dv,)e\n (pd\\))i(\\))g({)370 1033 y(do)h(something)d(with)i(entry)f(*pd)227\n 1146 y(})227 1396 y Fl(Eac)m(h)41 b(metho)s(d)f(c)m(hec)m(ks)i(to)f\n (see)g(if)f Fk(dv)g Fl(or)g Fk(pd)g Fl(is)g Fk(NULL)p\n@@ -4673,17 +4660,17 @@\n b(are)i(the)f(usual)f(eigh)m(t)i(IO)f(routines.)40 b(The)30\n b(\\014le)f(structure)h(of)g(a)g Fk(DV)f Fl(ob)5 b(ject)31\n b(is)f(simple:)41 b(the)30 b(\\014rst)f(en)m(try)h(is)0\n 5407 y Fk(size)p Fl(,)f(follo)m(w)m(ed)j(b)m(y)f(the)f\n Fk(size)g Fl(en)m(tries)h(found)e(in)h Fk(vec[])p Fl(.)p\n eop end\n %%Page: 7 7\n-TeXDict begin 7 6 bop 91 100 1223 4 v 1404 100 a Fk(DV)30\n-b Fg(:)g Ff(DRAFT)121 b Fg(August)31 b(3,)g(2025)p 2631\n-100 V 1223 w Fl(7)111 399 y(1.)46 b Fk(int)h(DV_readFromFile)d(\\()j(DV)\n+TeXDict begin 7 6 bop 91 100 1280 4 v 1462 100 a Fk(DV)29\n+b Fg(:)i Ff(DRAFT)121 b Fg(July)30 b(1,)h(2024)p 2573\n+100 V 1280 w Fl(7)111 399 y(1.)46 b Fk(int)h(DV_readFromFile)d(\\()j(DV)\n g(*dv,)g(char)g(*fn)g(\\))g(;)227 547 y Fl(This)33 b(metho)s(d)g(reads)g\n (a)h Fk(DV)f Fl(ob)5 b(ject)35 b(from)e(a)h(\\014le.)50\n b(It)34 b(tries)f(to)i(op)s(en)e(the)g(\\014le)h(and)f(if)g(it)h(is)g\n (successful,)g(it)227 660 y(then)j(calls)g Fk(DV)p 751\n 660 29 4 v 34 w(readFromFormattedFile\\(\\))30 b Fl(or)37\n b Fk(DV)p 2133 660 V 34 w(readFromBinaryFile\\(\\))p Fl(,)32\n b(closes)38 b(the)f(\\014le)g(and)227 772 y(returns)29\n@@ -4764,17 +4751,17 @@\n (\\))h(;)227 5259 y Fl(This)30 b(metho)s(d)g(writes)g(the)h(header)f\n (and)g(statistics)i(to)f(a)g(\\014le.)41 b(The)29 b(v)-5\n b(alue)31 b Fk(1)f Fl(is)h(returned.)227 5407 y Ff(Err)-5\n b(or)34 b(che)-5 b(cking:)40 b Fl(If)30 b Fk(dv)g Fl(or)g\n Fk(fp)g Fl(are)h Fk(NULL)p Fl(,)e(an)i(error)f(message)h(is)g(prin)m\n (ted)f(and)f(zero)i(is)g(returned.)p eop end\n %%Page: 8 8\n-TeXDict begin 8 7 bop 0 100 a Fl(8)p 136 100 1223 4 v\n-1404 w Fk(DV)30 b Fg(:)h Ff(DRAFT)f Fg(August)g(3,)h(2025)p\n-2678 100 V 111 399 a Fl(9.)46 b Fk(int)h(DV_writeForMatlab)c(\\()48\n+TeXDict begin 8 7 bop 0 100 a Fl(8)p 136 100 1280 4 v\n+1462 w Fk(DV)30 b Fg(:)g Ff(DRAFT)h Fg(July)e(1,)i(2024)p\n+2620 100 V 111 399 a Fl(9.)46 b Fk(int)h(DV_writeForMatlab)c(\\()48\n b(DV)f(*dv,)g(char)f(*name,)g(FILE)h(*fp)g(\\))g(;)227\n 549 y Fl(This)37 b(metho)s(d)h(writes)f(the)i(en)m(tries)f(of)g(the)g\n (v)m(ector)i(to)e(a)g(\\014le)g(suitable)h(to)f(b)s(e)g(read)f(b)m(y)h\n (Matlab.)64 b(The)227 662 y(c)m(haracter)31 b(string)e\n Fk(name)f Fl(is)h(the)g(name)g(of)g(the)g(v)m(ector,)i(e.g,)g(if)e\n Fk(name)46 b(=)i(\"A\")p Fl(,)28 b(then)h(w)m(e)g(ha)m(v)m(e)h(lines)g\n (of)f(the)227 775 y(form)227 1000 y Fk(A\\(1\\))47 b(=)g\n", "details": [{"source1": "ps2ascii {}", "source2": "ps2ascii {}", "unified_diff": "@@ -22,15 +22,15 @@\n simplest operations, and so when we need to manipulate an double vector inside a loop, we extract\r\n out the size and pointer to the base array from the DV object. On the other hand, the convenience\r\n makes it a widely used object.\r\n 1.1 Data Structure\r\n The DV structure has three \ufb01elds.\r\n \u2022 int size : present size of the vector.\r\n 1\r\n- 2 DV : DRAFT August 3, 2025\r\n+ 2 DV : DRAFT July 1, 2024\r\n \u2022 int maxsize : maximum size of the vector.\r\n \u2022 int owned : owner \ufb02ag for the data. When owned = 1, storage for owned double\u2019s has been\r\n allocated by this object and can be free\u2019d by the object. When owned == 0 but size > 0 ,\r\n this object points to entries that have been allocated elsewhere, and these entries will not be\r\n free\u2019d by this object.\r\n \u2022 double *vec : pointer to the base address of the double vector\r\n The size, maxsize, nowned and vec \ufb01elds need never be accessed directly \u2014 see the DV size(),\r\n@@ -53,15 +53,15 @@\n the storage for vec is free\u2019d by a call to DVfree(). The structure\u2019s default \ufb01elds are then set\r\n with a call to DV setDefaultFields().\r\n Error checking: If dv is NULL an error message is printed and the program exits.\r\n 4. void DV_free ( DV *dv ) ;\r\n This method releases any storage by a call to DV clearData() then free\u2019s the storage for the\r\n structure with a call to free().\r\n Error checking: If dv is NULL an error message is printed and the program exits.\r\n- DV : DRAFT August 3, 2025 3\r\n+ DV : DRAFT July 1, 2024 3\r\n 1.2.2 Instance methods\r\n These method allow access to information in the data \ufb01elds without explicitly following pointers.\r\n There is overhead involved with these method due to the function call and error checking inside\r\n the methods.\r\n 1. int DV_owned ( DV *dv ) ;\r\n This method returns the value of owned. If owned > 0, then the object owns the data pointed\r\n to by vec and will free this data with a call to DVfree() when its data is cleared by a call to\r\n@@ -85,15 +85,15 @@\n This method \ufb01lls *psize with the size of the vector and **pentries with the base address\r\n of the vector.\r\n Error checking: If dv, psize or pentriesis NULL, an error message is printed and the program\r\n exits.\r\n 7. void DV_setEntry ( DV *dv, int loc, double value ) ;\r\n This method sets the loc\u2019th entry of the vector to value.\r\n Error checking: If dv is NULL or loc < 0, an error message is printed and the program exits.\r\n- 4 DV : DRAFT August 3, 2025\r\n+ 4 DV : DRAFT July 1, 2024\r\n 1.2.3 Initializer methods\r\n There are three initializer methods.\r\n 1. void DV_init ( DV *dv, int size, double *entries ) ;\r\n This method initializes the object given a size for the vector and a possible pointer to the\r\n vectors\u2019 storage. Any previous data is cleared with a call to DV clearData(). If entries !=\r\n NULL then the vec \ufb01eld is set to entries, the size and maxsize \ufb01elds are set to size, and\r\n owned is set to zero because the object does not own the entries. If entries is NULL and size\r\n@@ -123,15 +123,15 @@\n increased with a call to DV setMaxsize(). The size \ufb01eld is set to newsize.\r\n Error checking: If dv is NULL, or newsize < 0, or if 0 < maxsize < newsize and owned =\r\n 0, an error message is printed and the program exits.\r\n 1.2.4 Utility methods\r\n 1. void DV_shiftBase ( DV *dv, int offset ) ;\r\n This method shifts the base entries of the vector and decrements the present size and max-\r\n imum size of the vector by offset. This is a dangerous method to use because the state of\r\n- DV : DRAFT August 3, 2025 5\r\n+ DV : DRAFT July 1, 2024 5\r\n the vector is lost, namely vec, the base of the entries, is corrupted. If the object owns its\r\n entries and DV free(), DV setSize() or DV setMaxsize() is called before the base has been\r\n shifted back to its original position, a segmentation violation will likely result. This is a very\r\n useful method, but use with caution.\r\n Error checking: If dv is NULL, an error message is printed and the program exits.\r\n 2. void DV_push ( DV *dv, double val ) ;\r\n This method pushes an entry onto the vector. If the vector is full, i.e., if size == maxsize\r\n@@ -159,15 +159,15 @@\n This method shu\ufb04es the entries in the vector using seed as a seed to a random number\r\n generator.\r\n Error checking: If dv is NULL, size <= 0 or if vec == NULL, an error message is printed and\r\n the program exits.\r\n 7. int DV_sizeOf ( DV *dv ) ;\r\n This method returns the number of bytes taken by the object.\r\n Error checking: If dv is NULL an error message is printed and the program exits.\r\n- 6 DV : DRAFT August 3, 2025\r\n+ 6 DV : DRAFT July 1, 2024\r\n 8. double * DV_first ( DV *dv ) ;\r\n double * DV_next ( DV *dv, int *pd ) ;\r\n These two methods are used as iterators, e.g.,\r\n for ( pd = DV_first(dv) ; pd != NULL ; pd = DV_next(dv, pd) ) {\r\n do something with entry *pd\r\n }\r\n Each method checks to see if dv or pd is NULL, if so an error message is printed and the\r\n@@ -193,15 +193,15 @@\n smaller than tausmall, or larger than taubig are placed into pnzero, *pnsmall and *pnbig,\r\n respectively. On return, the size of the xDV and yDV objects is npts.\r\n Error checking: If dv, xDV, yDV, pnsmall or pnbig are NULL, or if npts \u2264 0, or if taubig < 0.0\r\n or if tausmall > taubig, an error message is printed and the program exits.\r\n 1.2.5 IO methods\r\n There are the usual eight IO routines. The \ufb01le structure of a DV object is simple: the \ufb01rst entry is\r\n size, followed by the size entries found in vec[].\r\n- DV : DRAFT August 3, 2025 7\r\n+ DV : DRAFT July 1, 2024 7\r\n 1. int DV_readFromFile ( DV *dv, char *fn ) ;\r\n This method reads a DV object from a \ufb01le. It tries to open the \ufb01le and if it is successful, it\r\n then calls DV readFromFormattedFile() or DV readFromBinaryFile(), closes the \ufb01le and\r\n returns the value returned from the called routine.\r\n Error checking: If dv or fn are NULL, or if fn is not of the form *.dvf (for a formatted \ufb01le)\r\n or *.dvb (for a binary \ufb01le), an error message is printed and the method returns zero.\r\n 2. int DV_readFromFormattedFile ( DV *dv, FILE *fp ) ;\r\n@@ -230,15 +230,15 @@\n This method writes a DV object to a \ufb01le in a human readable format. is called to write out\r\n the header and statistics. The entries of the vector then follow in eighty column format using\r\n the DVfprintf() method. The value 1 is returned.\r\n Error checking: If dv or fp are NULL, an error message is printed and zero is returned.\r\n 8. int DV_writeStats ( DV *dv, FILE *fp ) ;\r\n This method writes the header and statistics to a \ufb01le. The value 1 is returned.\r\n Error checking: If dv or fp are NULL, an error message is printed and zero is returned.\r\n- 8 DV : DRAFT August 3, 2025\r\n+ 8 DV : DRAFT July 1, 2024\r\n 9. int DV_writeForMatlab ( DV *dv, char *name, FILE *fp ) ;\r\n This method writes the entries of the vector to a \ufb01le suitable to be read by Matlab. The\r\n character string name is the name of the vector, e.g, if name = \"A\", then we have lines of the\r\n form\r\n A(1) = 1.000000000000e0 ;\r\n A(2) = 2.000000000000e0 ;\r\n ...\r\n"}]}]}, {"source1": "./usr/share/doc/spooles-doc/DenseMtx.ps.gz", "source2": "./usr/share/doc/spooles-doc/DenseMtx.ps.gz", "unified_diff": null, "details": [{"source1": "DenseMtx.ps", "source2": "DenseMtx.ps", "unified_diff": "@@ -10,15 +10,15 @@\n %%EndComments\n %%BeginDefaults\n %%ViewingOrientation: 1 0 0 1\n %%EndDefaults\n %DVIPSWebPage: (www.radicaleye.com)\n %DVIPSCommandLine: dvips main -o DenseMtx.ps\n %DVIPSParameters: dpi=600\n-%DVIPSSource: TeX output 2025.08.03:1317\n+%DVIPSSource: TeX output 2024.07.01:0700\n %%BeginProcSet: tex.pro 0 0\n %!\n /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S\n N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72\n mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0\n 0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{\n landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize\n@@ -1621,23 +1621,22 @@\n /UnderlinePosition -100 def\n /UnderlineThickness 50 def\n end readonly def\n /Encoding 256 array\n 0 1 255 {1 index exch /.notdef put} for\n dup 44 /comma put\n dup 48 /zero put\n+dup 49 /one put\n dup 50 /two put\n-dup 51 /three put\n-dup 53 /five put\n+dup 52 /four put\n dup 58 /colon put\n-dup 65 /A put\n-dup 103 /g put\n-dup 115 /s put\n-dup 116 /t put\n+dup 74 /J put\n+dup 108 /l put\n dup 117 /u put\n+dup 121 /y put\n readonly def\n currentdict end\n currentfile eexec\n D9D66F633B846AB284BCF8B0411B772DE5CE32340DC6F28AF40857E4451976E7\n 5182433CF9F333A38BD841C0D4E68BF9E012EB32A8FFB76B5816306B5EDF7C99\n 8B3A16D9B4BC056662E32C7CD0123DFAEB734C7532E64BBFBF5A60336E646716\n EFB852C877F440D329172C71F1E5D59CE9473C26B8AEF7AD68EF0727B6EC2E0C\n@@ -1818,79 +1817,67 @@\n 7CA1534C4D5B05FC33F83790ECFD7641DF3FB94289E2A1F6E7D29AB1228A867A\n 6E1EF0E9C6F899B491DC18401C2C0A05FFFED46A72C245F7529B8EA55A038082\n 8512307217D2A233C37004085BA3AEE379269F9FA7D0ADB4B19A95CC2AFE686E\n 55D88E47257C1FE6F235FEA295910569FE6DD5995512562359CC821E85A6C7A5\n 79B470A9E340A6985189FF8B6AF914A6B0ECF93F47903221F95DE894A8F05B05\n B7D99CD533EC5F931B18E6B39BECF67FA2D6DD1AEC76772B068BE06335A94C05\n 7A4DDEE77B66101DA855C17AC312600370B34E31F5EC3A01300A8EB60B4C9767\n-1B2FA10DF7E91D3BB34A1B1CE7A0015A57C813E0280D873ADB88440048702D1F\n-77994EE04EC3B4531D6E1888C86A8F0DA6CF1F056F16AB0DD76C862830F89DA4\n-28923B3AA543E0D6E41D3BD283E600BC11F889315EE92C675C109C81065ED1BC\n-82A5583D1B723D50051B0557A367887F5B263014C6E77288B4883C50889473D3\n-3787BAD4BEB88BD1353AFA5B73E61814819537E7FF09F53EF94792BB3DD36ED0\n-002D0E7A6CDAB85A9C17AF5664BCB5A71663B861880F3ECCABC8E7A2FC81A4CC\n-AE7A87503FDC1CE0077BA51ECC7B43B60793FED8E9AAD5BBD03ADD6183DCD26D\n-24A74163611C05562437644EF9B8889FD4F9D311911204FEFD35237486F2D2D0\n-B6783A03BF12EA6D19D6D0F87E4D08515F12F9CBF1961CAA71E0D69FE3C4C4D2\n-7C7FB64ED24F8684C8F00C2BEDEA53EA390CDC0B5BEBD7DD982580B2EA1F1F89\n-CFED5916630DC2BA32BB9180277E1ABC339B3B7DE086717BD93F7FF3681BA5B3\n-FCF671C4B293C2DE4A322F0AA3323A4934444C69F23EF90120B8755482757759\n-C457A435FB8BB4922BD92C5F3D9555D978275C510183E29DFF2FCE4ABBFC18DE\n-76CAD3B486BA12047DD808CD4D521A0FD368E4AE79DE262630983A5D6F0B679D\n-2F005306393C520E1B6987302D029939D94B0178DC55D5264E1FEA468AD4134C\n-8C65B2FBBE8DE8284E8E1F6BFE0B648F44D3DA8E9350D266EDBFD4A7054D9355\n-1E0B185DED37BCF32D3731358F1D707C94109428BAD3CEA456A2A43553E3D2C2\n-F549189201F3D3F715310E3E8C6A2E9AA5141AA9125D203694C7D875C2DD320F\n-C5BCDFC924F6C04DBC7A97349B45ECD0FBD7D2123ED1D3A9F440B1112BE62779\n-47A4592F9285CBD9635EC9091CEC0AFD7E6B6976974081DB9C0E43165BD8584D\n-6CDF08DED287F0883A9FBD351B3F8706BA1E94C7CA487338269482EB8DC1A05D\n-F6632A5D834DE29228C49C5BA65EF7C535A53B380BF4B391F43562147538EE97\n-E799DFC2C40315859F56BBCE9CAE1DF9293F6E2C193ABE7A724EC8F32FA220E7\n-6026877A63E318254F2AF7B1325D63FC4C52B536D3EF354814C2F8F1EEA30569\n-6EF04447DB0F809DF35B4985B9FB4F4BB6087310BE633E76F268B32ABA99CE8E\n-03163DFF4AEDB88E60DD0848C15E90026D7C24D81122EBC07113F9851914A9D5\n-D0E09C2BFDDAF10C5D8208E8329BC0C402F231CD84C95EFDD182AD9756662110\n-274650C7A5BB0D8EFA54EC6C5A49C0EB26701A54779AE8EFBBED824262761602\n-680EDFB38F0FE18C0F501F5AA8BF48A8F0DD3E5E1EBEB872F6F6B23964707B32\n-507FC677B9FDDC990E3828B06420F6F968B2F6AE81E76A2144B1ECE905485616\n-CFB29AC96DDE1F5039935D7E385CC13E34DD7EAF276A2EA3A8BF27FD4205AE13\n-7FE620E42F2CF231C6C8DD8EFC5A6CF081E5660D9ADD730D72D15C02B1E15FF3\n-D741D3B1EB1E666C4E562219033C1E2EF3F96E136998B2E1890395A3637A2C02\n-DE1C46AFCA8D898439F06606A2295D3F7ED6C7DB250C61B6B97A0D5EDDB9657E\n-E790B4E07540BB1026036F4A0D00E7F16FD757AD61D686620C6814B7DCEC43E8\n-FD36D9E75BA554F64548A67D9B0A26E11784E58D4357FC251D71B5D6D8BFDDE0\n-D3BF0E825DA5312C1904AF13C5905C2ADF79C357476183D2EC5A95243235E861\n-2F98D9EE77EF8F8CB3EC6BD358C5ED37DD3AF44D60575E7774BF96F1AE9DFAD1\n-F8646DEDF21D10311854726B8F7D25876BB1EF78E2442B16ED4B851816CF0A27\n-11FDFCE525002A1A7C3E62CD2A3EDE6FAADB026D2F3A46C030ADB22422CA8FF5\n-2545ED58C0D9FB5BDB55FE674301E91A75B005B86BD201D246F7ADACE50419FD\n-AC3312CAC5EB78A36F0E5F62E65AC92129CB574AAC59E0A7C1390DFC61F39D9E\n-D7036742F2F6E64D1EF8157E9CCF65F3EEDC6A8220235978B8E06EB80F649F3E\n-204CFB497F49306EA8E1F7B62305978A28F1E771ED82C6592C71022154E4062A\n-A92335EFC65D6DED9C686899FFD7AA2988740618C03C5E362E1AF352E3BE4602\n-5530C51E5FC8E9082DF79199CC91C50174000D337D86127AC807C5A3C81DDE57\n-7A68AEE7230949B925365C214D77C80E87CEE218ABC94023717EA43BA5D8A7C8\n-8A8B9BD1B767996AE33050E3D922ED0574E3579C57E4BDDAD35883806AFDF260\n-3AB5D83D451583262E580FFDB7A27D82396AF18D92B849A3F7A7E621987D5DF0\n-038F876C6E9CA47FB11AF05F0019191C5DDC5F0177AD421E94BC66D0CCB82F1F\n-93A80836284B095503752C600F72E2C89112ABFA5B76152691264103B268B3E5\n-8816724ADADB38740001A9AACE05C8AF02D72918606DC22EFC8BF0DA0FD12FFE\n-D3A09F8E28057F327BFB633E604B1EAD478637B1D9631650B314CC62D7E0E87F\n-9D3FE1FFA23BB6E3006C3E39BED52F6B0C1C651B5913878F36DA0BF776889165\n-68BA3456B40B8B471CA8FF5238E43D9113E052A2B8D2EAA2433D3F89FCA48AFB\n-5E842913E4ED6DF9623354059CD1F1707B126FED80349787C869883120183EDD\n-249185A55503FAC53898F52170D05CAC62BB742CF9702C0518AED6B27CDC401C\n-932E02143FD916703F360CB31049501B35EF3EDDFED791090D0CFA221FD1DB32\n-7D4759CE07983AE29C258C705D11E7D9481EEAAB9B6BA65CDCF0AA0057BD6FEA\n-ABBFBD3ABF2A7BFB550C3D2A16DC447384A89F3DB6D9C2DBDCA997ABE35A7706\n-633D328AECEDB5BD07070C1B96267FD73B45791DD18194F60D358091FBE88409\n-973529806F3D2C9E6E39091F90A14B560A987E0B9490B9B690FB489B8E253070\n-D7C54447BE0E0A0BFEAEFFB581DC1300E6EC382984673BF0665632404E59B5BF\n-5D5F0A1C956E618C0487751CA5DAE8A95C214F76ED756694EF273679CD2D85CB\n-949DF385BD50491649EFEFDA1574921D7460143D42A100D2C76E55F0BC\n+1B2FA10DF7E91D3BB34A1B1CE7A0015A57C813E0280D873ADB8844004B9BA1CC\n+580D3C6BDA4DC1B80B4365F1C80512453FC5316EC2D928FB731C3D6403E3C18B\n+E8424D644DF5E9A2134229C5C91CA68DB8E85BA2BB40F538F585DA6FA4037718\n+B8053EBBA1E765346BCD5BDAA6C38115D31611D8A87A2238C145F2DA2F92E4DF\n+3987BD9C4D2A3D460E8941A68B125BCD9EE4F9FD262C4C8A71F47A2C81975635\n+F1B981C274C53FA2ACCDE4C9D0A7C62D6C1EFF91CFC6712CA6A9F333C9564FCB\n+2A70F0AD715A79B10A08AB069E2A3C93BC0AED19D0CA10134B8DDDE8AF548DB2\n+3A4AAA9C29682CF135BB767DAA16169A127EB50A7EECEB6480CF56A7D0F8AC56\n+4A5090B3D75A790372886AF568D94C8165975A05BFBFDF1FFBA45F70700BB9E0\n+57F3249EF9E9C8AD9CBCF6E4FD592DC4CDD2CC7C0BC3130C1059096C657BE453\n+A2CBACE93420210E27AF56CA229BD6D982FB68B3FDC6D44478B922C4231C47EE\n+E500232F6C11D92DEB955F66DF52B92B22E7352790CC2DCBAC53965D57AC2920\n+68B7D520DE25047146EFEB06B9AD4E2A94243C7E5239F0BC2FC312B16051D52C\n+0B92C217B6B42997321AE4F8BB066754B7AA3F15069EF59224E8A442CE471AA7\n+E8049A3DD9EDA09CCEE4998998661CF7DB35E952F6C65DAEB3013951C59F3E09\n+157F313B0237876E1C0190F0473819570B8C0205AADF05D787CC00979CFB327A\n+289382B22DDA6F12804ED0ED5B179E36A995A2A59E1B66E75130DBE9109C813B\n+94403E0DEA8314A1E9DB474D7FA83C0BAFD08033E6A6215844C1D26BE15F1251\n+A1605E8DF9A9C601ED37379530BC1C82BE5463C6C711C5652BFD6262485AA9CA\n+B8C4A117593001D08D980041E2A83C190DCE8E6CD3D334E5CC19FC05DB30F7F7\n+24A305C4DBB31F0651392B99D44B4302333BDF7E326FD256DD75D309C6E73F85\n+FA71B35FD1F9BEFF4C7A1076362EEB0A85492933B6006086A7B8C1928CF2D1EE\n+FD4344409257BB802C117E739960821CD3C88BFBA5669FF16F610AD638AF3677\n+8674C985E6767253ED5769F71BEA5E9BB02A751F9E62EE2B18AC19D975FDEAE9\n+8B8822367FF177A7E850766DE99ED3366D46464612926430012212A90F8E85F4\n+4760B40D5B86B90819EE410382D22D8ED82D0B0AB00C93E10CD365F8766D1C87\n+B4A866021FB6F6AC3D250CC601989B1B8FE6B1098A48282D2CF258BF38FEE940\n+CE0141FB1344156DE7712A8F2DBF700174F12616EE17C852210D96D03E5E6635\n+D439EB6E84A383DDD32AD72DADE6F931FDBABBDC726C36081C96018FC95EAE13\n+DA1F8DBC2D8355AC9792649653225393F4A7A88F3B9443FEEB75E2C15BF93F09\n+CCBA7FABC022BE26F4C28152D5DA6D690494AD4EC0DA1B598AE12536BADF88B5\n+5E20EB452546389F57FF55459567B453AE1831C57D22FA6A4FDF441EDAFDB7FB\n+4F4B707C1FF9159C40F7B5DD519FC07815EE91B8D756B6C18500BCF47D0D9E45\n+6A2D51B6AA5AEAAC9AB2DEF7F0FDE957B6C179CBADEECAC7E9CEC248AB135EB4\n+FBF83D002FF859B574EF36C371540EF2BCFCEF5C2E7863AEDD7C3C965103453B\n+023A9CEC1D5C45B88827ADF4AE0C6746F3C7E6A944427DAEC493601019583A16\n+0F846CE00EAE89EEFF9CE68A0E1D6EBB8FDD8A45D1BF399B36A8328EC957CB8B\n+D842A56269C8C9A6B472C9E65BCBC090606B4E8A7EF4ABDEA120C9F9B3969A1C\n+2EB102925F4E155160E58000E1ADB0D19E10EFD96F6C3225EEE8FC24D122C069\n+C11F1A69DC383F7DACD2F3929BD135CE69787C6E7560AC4B683FE5D9AAFD2E89\n+EE6D95E38C9B726B416E28169A11E29559DBA9AECD714CF318FCB78F34A0E562\n+9C00FE0C6D5A848557D9A82EC2BEFCD30B5EDC0B23C5BA9F812C864394C8B9D1\n+B08BAC9CF94E70FF842306ACCFE6E39A56777C712904A3AB29FBD19275E19E06\n+B35B37CFFFCEC81CAF2D85A853663FAFCFFED1EA77064AA28C15BC94910683BC\n+D09513079DE9EE18E97CC2403DD206516D7F652A3459870757F34EEDCEF952C3\n+FE8004F4716B5BD6774E455010B0BB1E61FCD66B9F14F9BBCCF3E55A158EE96E\n+9A05BDFDDC7706D4BC28FDDC4004EF3A430C607EBDF115E0C996454D70C8BB42\n+D7C83A454B116663D648C23CE2B33365810DE2B64D4AE011BC8043BC3E05B94D\n+1700F859C6AFC6515C1C42FA104EE3E8F3FA5F80252C2E79B00ED27F675FFD09\n+B50BF7A3C63CF4856F909DF969D7DD3EA05CABDD1E71A58CFC2AB5F614B4E5E0\n+25CF92E9FB66ACEBE05DF5E033DA8AD3EE32D94C02D98DD7DA99FAB5AEA595C3\n+2987DC122F0242D76B782349E4069DE0CDD6EF4375C680CBFE4C8F24F2AE89BF\n+7785F5EA7435A91500F265022C307E8ADEAAE1C6\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n@@ -3679,16 +3666,16 @@\n %%EndFont \n TeXDict begin 40258437 52099151 1000 600 600 (main.dvi)\n @start /Fa 234[65 21[{}1 83.022 /CMSY10 rf /Fb 195[65\n 60[{}1 83.022 /CMMI10 rf /Fc 133[50 59 4[44 44 3[56 62\n 93 31 2[31 62 2[51 62 50 1[54 11[86 5[84 5[42 6[80 12[56\n 56 56 56 56 2[31 46[{}24 99.6264 /CMBX12 rf /Fd 135[62\n 3[62 62 4[62 8[62 23[62 8[62 68[{}7 119.552 /CMTT12 rf\n-/Fe 138[46 32 33 11[42 37[62 6[23 4[42 1[42 42 1[42 3[23\n-44[{}11 83.022 /CMSL10 rf\n+/Fe 134[44 3[46 8[23 33[43 15[23 5[42 1[42 42 42 3[23\n+44[{}10 83.022 /CMSL10 rf\n %DVIPSBitmapFont: Ff tcrm1000 10 1\n [/Grave/Acute/Circumflex/Tilde/Dieresis/Hungarumlaut/Ring/Caron/Breve/Macron\n /Dotaccent/cedilla/ogonek/quotesinglbase.ts1 4{/.notdef}repeat\n /quotedblbase.ts1/.notdef/.notdef/twelveudash/threequartersemdash\n /afii61664.cap/arrowleft/arrowright/tieaccentlowercase/tieaccentcapital\n /tieaccentlowercase.new/tieaccentcapital.new/.notdef/afii61664.asc/uni2422 3\n {/.notdef}repeat/dollar/.notdef/.notdef/quotesingle/.notdef/.notdef\n@@ -3811,17 +3798,17 @@\n b Fj(returns)j Fi(1)g Fj(if)h(the)g(matrix)f(has)g(real)g(en)n(tries,)g\n (and)h Fi(0)f Fj(otherwise.)125 5407 y Ff(\\210)42 b Fi(DENSEMTX)p\n 565 5407 V 28 w(IS)p 681 5407 V 30 w(COMPLEX\\(mtx\\))23\n b Fj(returns)k Fi(1)g Fj(if)h(the)g(matrix)f(has)g(complex)g(en)n\n (tries,)g(and)h Fi(0)f Fj(otherwise.)1929 5656 y(1)p\n eop end\n %%Page: 2 2\n-TeXDict begin 2 1 bop 0 100 a Fj(2)p 125 100 1150 4 v\n-1315 w Fi(DenseMtx)25 b Fe(:)37 b Fh(DRAFT)27 b Fe(August)h(3,)f(2025)p\n-2750 100 V 0 390 a Fg(1.2)135 b(Protot)l(yp)t(es)46 b(and)f\n+TeXDict begin 2 1 bop 0 100 a Fj(2)p 125 100 1203 4 v\n+1368 w Fi(DenseMtx)25 b Fe(:)36 b Fh(DRAFT)28 b Fe(July)f(1,)g(2024)p\n+2697 100 V 0 390 a Fg(1.2)135 b(Protot)l(yp)t(es)46 b(and)f\n (descriptions)g(of)g Fd(DenseMtx)c Fg(metho)t(ds)0 598\n y Fj(This)35 b(section)f(con)n(tains)g(brief)h(descriptions)f\n (including)h(protot)n(yp)r(es)f(of)h(all)f(metho)r(ds)i(that)f(b)r\n (elong)f(to)h(the)g Fi(DenseMtx)0 698 y Fj(ob)5 b(ject.)0\n 958 y Fc(1.2.1)112 b(Basic)38 b(metho)s(ds)0 1138 y Fj(As)21\n b(usual,)g(there)f(are)g(four)g(basic)g(metho)r(ds)g(to)h(supp)r(ort)f\n (ob)5 b(ject)20 b(creation,)h(setting)f(default)h(\\014elds,)h(clearing)\n@@ -3885,19 +3872,19 @@\n f(the)i(ro)n(w)e(incremen)n(t)g(of)h(the)h(ob)5 b(ject,)24\n b(the)h(di\\013erence)f(in)g(memory)f(lo)r(cations)h(of)g(t)n(w)n(o)f\n (en)n(tries)208 5273 y(in)k(consecutiv)n(e)g(columns)g(in)h(the)g(same)\n f(ro)n(w.)208 5407 y Fh(Err)l(or)j(che)l(cking:)38 b\n Fj(If)28 b Fi(mtx)f Fj(is)g Fi(NULL)p Fj(,)f(an)i(error)d(message)i(is)\n g(prin)n(ted)h(and)f(the)h(program)e(exits.)p eop end\n %%Page: 3 3\n-TeXDict begin 3 2 bop 83 100 1150 4 v 1316 100 a Fi(DenseMtx)24\n-b Fe(:)37 b Fh(DRAFT)111 b Fe(August)27 b(3,)h(2025)p\n-2711 100 V 1150 w Fj(3)101 390 y(5.)42 b Fi(int)g(DenseMtx_rowIncr)o\n-(em)o(ent)37 b(\\()43 b(DenseMtx)d(*mtx)i(\\))h(;)208 529\n-y Fj(This)24 b(metho)r(d)g(returns)f(the)i(ro)n(w)e(incremen)n(t)g(of)h\n+TeXDict begin 3 2 bop 83 100 1203 4 v 1369 100 a Fi(DenseMtx)24\n+b Fe(:)37 b Fh(DRAFT)110 b Fe(July)28 b(1,)f(2024)p 2658\n+100 V 1203 w Fj(3)101 390 y(5.)42 b Fi(int)g(DenseMtx_rowIncr)o(em)o\n+(ent)37 b(\\()43 b(DenseMtx)d(*mtx)i(\\))h(;)208 529 y\n+Fj(This)24 b(metho)r(d)g(returns)f(the)i(ro)n(w)e(incremen)n(t)g(of)h\n (the)h(ob)5 b(ject,)24 b(the)h(di\\013erence)f(in)g(memory)f(lo)r\n (cations)h(of)g(t)n(w)n(o)f(en)n(tries)208 629 y(in)k(consecutiv)n(e)g\n (ro)n(ws)f(in)i(the)g(same)f(column.)208 767 y Fh(Err)l(or)j(che)l\n (cking:)38 b Fj(If)28 b Fi(mtx)f Fj(is)g Fi(NULL)p Fj(,)f(an)i(error)d\n (message)i(is)g(prin)n(ted)h(and)f(the)h(program)e(exits.)101\n 945 y(6.)42 b Fi(void)f(DenseMtx_rowIndic)o(es)c(\\()43\n b(DenseMtx)e(*mtx,)g(int)i(*pnrow,)d(**prowind)g(\\))j(;)208\n@@ -3966,17 +3953,17 @@\n Fi(jcol)f Fj(to)i(b)r(e)208 5169 y Fi(\\(real,imag\\))p\n Fj(.)208 5308 y Fh(Err)l(or)31 b(che)l(cking:)42 b Fj(If)29\n b Fi(mtx)f Fj(is)h Fi(NULL)p Fj(,)e(or)h(if)i(the)f(matrix)g(is)g(not)g\n (complex,)g(or)f(if)h Fi(irow)f Fj(or)g Fi(jcol)f Fj(is)i(out)g(of)g\n (range,)f(an)208 5407 y(error)d(message)h(is)i(prin)n(ted)f(and)h(the)g\n (program)d(exits.)p eop end\n %%Page: 4 4\n-TeXDict begin 4 3 bop 0 100 a Fj(4)p 125 100 1150 4 v\n-1315 w Fi(DenseMtx)25 b Fe(:)37 b Fh(DRAFT)27 b Fe(August)h(3,)f(2025)p\n-2750 100 V 60 390 a Fj(14.)41 b Fi(int)h(DenseMtx_row)d(\\()k(DenseMtx)d\n+TeXDict begin 4 3 bop 0 100 a Fj(4)p 125 100 1203 4 v\n+1368 w Fi(DenseMtx)25 b Fe(:)36 b Fh(DRAFT)28 b Fe(July)f(1,)g(2024)p\n+2697 100 V 60 390 a Fj(14.)41 b Fi(int)h(DenseMtx_row)d(\\()k(DenseMtx)d\n (*mtx,)h(int)i(irow,)e(double)g(**prowent)f(\\))j(;)208\n 517 y Fj(This)27 b(metho)r(d)h(\\014lls)g Fi(*prowent)c\n Fj(with)k(the)g(\\014rst)g(lo)r(cation)f(of)g(the)h(en)n(tries)f(in)h\n (ro)n(w)e Fi(irow)p Fj(.)208 644 y Fh(R)l(eturn)31 b(c)l(o)l(des:)45\n b Fi(1)31 b Fj(is)g(a)g(normal)f(return,)i Fi(-1)e Fj(means)h\n Fi(mtx)f Fj(is)h Fi(NULL)p Fj(,)f Fi(-2)g Fj(means)h(in)n(v)-5\n b(alid)31 b(t)n(yp)r(e)g(for)g Fi(mtx)p Fj(,)g Fi(-3)g\n@@ -4063,17 +4050,17 @@\n y Fj(This)27 b(metho)r(d)h(initializes)g(the)g Fi(a2)f\n Fj(ob)5 b(ject)27 b(to)g(p)r(oin)n(t)h(in)n(to)f(the)h(en)n(tries)f(of)\n h(the)g(matrix.)208 5407 y Fh(Err)l(or)i(che)l(cking:)38\n b Fj(If)28 b Fi(mtx)f Fj(or)g Fi(a2)f Fj(is)i Fi(NULL)p\n Fj(,)e(an)h(error)f(message)g(is)i(prin)n(ted)f(and)h(the)g(program)d\n (exits.)p eop end\n %%Page: 5 5\n-TeXDict begin 5 4 bop 83 100 1150 4 v 1316 100 a Fi(DenseMtx)24\n-b Fe(:)37 b Fh(DRAFT)111 b Fe(August)27 b(3,)h(2025)p\n-2711 100 V 1150 w Fj(5)0 390 y Fc(1.2.4)112 b(Utilit)m(y)38\n+TeXDict begin 5 4 bop 83 100 1203 4 v 1369 100 a Fi(DenseMtx)24\n+b Fe(:)37 b Fh(DRAFT)110 b Fe(July)28 b(1,)f(2024)p 2658\n+100 V 1203 w Fj(5)0 390 y Fc(1.2.4)112 b(Utilit)m(y)38\n b(metho)s(ds)101 570 y Fj(1.)k Fi(int)g(DenseMtx_nbytesN)o(ee)o(ded)37\n b(\\()43 b(int)f(type,)g(int)g(nrow,)g(int)g(ncol)g(\\))h(;)208\n 705 y Fj(This)27 b(metho)r(d)h(returns)f(the)h(n)n(um)n(b)r(er)f(of)h\n (b)n(ytes)f(required)g(to)g(store)g(the)h(ob)5 b(ject's)27\n b(information)g(in)h(its)g(bu\\013er.)208 839 y Fh(Err)l(or)h(che)l\n (cking:)38 b Fj(If)27 b Fi(type)e Fj(is)i(neither)f Fi(SPOOLES)p\n 1758 839 27 4 v 29 w(REAL)f Fj(nor)g Fi(SPOOLES)p 2442\n@@ -4152,17 +4139,17 @@\n Fi(irowB)e Fj(is)h(out)h(of)f(range,)h(or)f(if)h Fi(mtxA)e\n Fj(is)h Fi(NULL)p Fj(,)f(or)h(if)h Fi(irowA)e Fj(is)h(out)h(of)208\n 5308 y(range,)23 b(or)h(if)g(the)h(n)n(um)n(b)r(er)f(of)h(columns)f(in)\n g Fi(mtxB)f Fj(and)h Fi(mtxA)f Fj(are)g(not)h(the)h(same,)g(an)f(error)\n e(message)h(is)h(prin)n(ted)g(and)208 5407 y(the)k(program)d(exits.)p\n eop end\n %%Page: 6 6\n-TeXDict begin 6 5 bop 0 100 a Fj(6)p 125 100 1150 4 v\n-1315 w Fi(DenseMtx)25 b Fe(:)37 b Fh(DRAFT)27 b Fe(August)h(3,)f(2025)p\n-2750 100 V 101 390 a Fj(9.)42 b Fi(void)f(DenseMtx_addRow)d(\\()43\n+TeXDict begin 6 5 bop 0 100 a Fj(6)p 125 100 1203 4 v\n+1368 w Fi(DenseMtx)25 b Fe(:)36 b Fh(DRAFT)28 b Fe(July)f(1,)g(2024)p\n+2697 100 V 101 390 a Fj(9.)42 b Fi(void)f(DenseMtx_addRow)d(\\()43\n b(DenseMtx)d(*mtxB,)h(int)i(irowB,)e(DenseMtx)f(*mtxA,)h(int)i(irowA)85\n b(\\))43 b(;)208 525 y Fj(This)27 b(metho)r(d)h(adds)f(ro)n(w)g\n Fi(irowA)e Fj(from)j(matrix)f Fi(mtxA)f Fj(in)n(to)h(ro)n(w)f\n Fi(irowB)g Fj(of)i(matrix)f Fi(mtxB)p Fj(.)208 659 y\n Fh(Err)l(or)34 b(che)l(cking:)46 b Fj(If)32 b Fi(mtxB)e\n Fj(is)i Fi(NULL)p Fj(,)e(or)h(if)h Fi(irowB)e Fj(is)h(out)h(of)f\n (range,)h(or)f(if)h Fi(mtxA)e Fj(is)h Fi(NULL)p Fj(,)f(or)h(if)h\n@@ -4235,17 +4222,17 @@\n Fj(in)n(to)j(ro)n(w)e Fi(irow)g Fj(of)i(matrix)f Fi(mtx)p\n Fj(.)208 5308 y Fh(Err)l(or)j(che)l(cking:)39 b Fj(If)28\n b Fi(mtx)e Fj(or)h Fi(vec)f Fj(is)i Fi(NULL)p Fj(,)e(or)h(if)h\n Fi(irow)22 b Fb(<)g Fj(0)28 b(or)e Fi(irow)c Fa(\\025)h\n Fi(nrow)n Fj(,)28 b(an)f(error)f(message)g(is)i(prin)n(ted)f(and)208\n 5407 y(the)h(program)d(exits.)p eop end\n %%Page: 7 7\n-TeXDict begin 7 6 bop 83 100 1150 4 v 1316 100 a Fi(DenseMtx)24\n-b Fe(:)37 b Fh(DRAFT)111 b Fe(August)27 b(3,)h(2025)p\n-2711 100 V 1150 w Fj(7)0 390 y Fc(1.2.5)112 b(IO)38 b(metho)s(ds)0\n+TeXDict begin 7 6 bop 83 100 1203 4 v 1369 100 a Fi(DenseMtx)24\n+b Fe(:)37 b Fh(DRAFT)110 b Fe(July)28 b(1,)f(2024)p 2658\n+100 V 1203 w Fj(7)0 390 y Fc(1.2.5)112 b(IO)38 b(metho)s(ds)0\n 573 y Fj(The)23 b(\\014le)g(structure)f(of)h(a)g Fi(DenseMtx)c\n Fj(ob)5 b(ject)23 b(is)g(simple.)35 b(First)23 b(comes)f(sev)n(en)g\n (scalars,)g Fi(type)p Fj(,)h Fi(rowid)p Fj(,)e Fi(colid)p\n Fj(,)h Fi(nrow)p Fj(,)h Fi(ncol)p Fj(,)0 672 y Fi(inc1)g\n Fj(and)h Fi(inc2)p Fj(,)f(follo)n(w)n(ed)g(b)n(y)h(the)h(ro)n(w)e\n (indices,)i(follo)n(w)n(ed)e(b)n(y)h(the)g(column)g(indices,)h(and)f\n (then)h(follo)n(w)n(ed)e(b)n(y)h(the)h(matrix)0 772 y(en)n(tries.)101\n@@ -4332,17 +4319,17 @@\n 5270 y Fj(This)27 b(metho)r(d)h(writes)f(a)h Fi(DenseMtx)c\n Fj(ob)5 b(ject)27 b(to)h(a)f(\\014le)h(in)g(an)f(easily)g(readable)f\n (format.)208 5407 y Fh(Err)l(or)k(che)l(cking:)38 b Fj(If)28\n b Fi(mtx)f Fj(or)g Fi(fp)f Fj(are)h Fi(NULL)p Fj(,)f(an)h(error)f\n (message)g(is)i(prin)n(ted)f(and)h(zero)e(is)i(returned.)p\n eop end\n %%Page: 8 8\n-TeXDict begin 8 7 bop 0 100 a Fj(8)p 125 100 1150 4 v\n-1315 w Fi(DenseMtx)25 b Fe(:)37 b Fh(DRAFT)27 b Fe(August)h(3,)f(2025)p\n-2750 100 V 101 390 a Fj(9.)42 b Fi(void)f(DenseMtx_writeFor)o(Mat)o(la)\n+TeXDict begin 8 7 bop 0 100 a Fj(8)p 125 100 1203 4 v\n+1368 w Fi(DenseMtx)25 b Fe(:)36 b Fh(DRAFT)28 b Fe(July)f(1,)g(2024)p\n+2697 100 V 101 390 a Fj(9.)42 b Fi(void)f(DenseMtx_writeFor)o(Mat)o(la)\n o(b)d(\\()43 b(DenseMtx)d(*mtx,)i(char)f(*mtxname,)f(FILE)i(*fp)h(\\))g\n (;)208 523 y Fj(This)27 b(metho)r(d)h(writes)f(out)h(a)f\n Fi(DenseMtx)e Fj(ob)5 b(ject)27 b(to)g(a)h(\\014le)f(in)h(a)f(Matlab)h\n (format.)36 b(A)28 b(sample)f(line)h(is)208 722 y Fi(a\\(10,5\\))40\n b(=)87 b(-1.550328201511e)o(-01)37 b(+)130 b(1.848033378871e+)o(00*)o\n (i)37 b(;)208 922 y Fj(for)27 b(complex)g(matrices,)g(or)208\n 1121 y Fi(a\\(10,5\\))40 b(=)87 b(-1.550328201511e)o(-01)37\n", "details": [{"source1": "ps2ascii {}", "source2": "ps2ascii {}", "unified_diff": "@@ -22,15 +22,15 @@\n \u2022 double *entries : pointer to the base address of the double vector that contains the entries.\r\n \u2022 DV wrkDV : object that manages the owned working storage.\r\n \u2022 DenseMtx *next : link to a next object in a singly linked list.\r\n One can query the type of entries via two macros.\r\n \u2022 DENSEMTX IS REAL(mtx) returns 1 if the matrix has real entries, and 0 otherwise.\r\n \u2022 DENSEMTX IS COMPLEX(mtx) returns 1 if the matrix has complex entries, and 0 otherwise.\r\n 1\r\n- 2 DenseMtx : DRAFT August 3, 2025\r\n+ 2 DenseMtx : DRAFT July 1, 2024\r\n 1.2 Prototypes and descriptions of DenseMtx methods\r\n This section contains brief descriptions including prototypes of all methods that belong to the DenseMtx\r\n object.\r\n 1.2.1 Basic methods\r\n Asusual, there are four basic methods to support object creation, setting default \ufb01elds, clearing any allocated\r\n data, and free\u2019ing the object.\r\n 1. DenseMtx * DenseMtx_new ( void ) ;\r\n@@ -58,15 +58,15 @@\n 3. void DenseMtx_dimensions ( DenseMtx *mtx, int *pnrow, int *pncol ) ;\r\n This method \ufb01lls *pnrow and *pncol with nrow and ncol.\r\n Error checking: If mtx is NULL, an error message is printed and the program exits.\r\n 4. int DenseMtx_columnIncrement ( DenseMtx *mtx ) ;\r\n This method returns the row increment of the object, the di\ufb00erence in memory locations of two entries\r\n in consecutive columns in the same row.\r\n Error checking: If mtx is NULL, an error message is printed and the program exits.\r\n- DenseMtx : DRAFT August 3, 2025 3\r\n+ DenseMtx : DRAFT July 1, 2024 3\r\n 5. int DenseMtx_rowIncrement ( DenseMtx *mtx ) ;\r\n This method returns the row increment of the object, the di\ufb00erence in memory locations of two entries\r\n in consecutive rows in the same column.\r\n Error checking: If mtx is NULL, an error message is printed and the program exits.\r\n 6. void DenseMtx_rowIndices ( DenseMtx *mtx, int *pnrow, **prowind ) ;\r\n This method \ufb01lls *pnrow with nrow, the number of rows, and *prowind with rowind, a pointer to the\r\n row indices.\r\n@@ -97,15 +97,15 @@\n message is printed and the program exits.\r\n 13. void DenseMtx_setComplexEntry ( DenseMtx *mtx, int irow, int jcol,\r\n double real, double imag ) ;\r\n This method sets the real and imaginary parts of the entry in row irow and column jcol to be\r\n (real,imag).\r\n Error checking: If mtx is NULL, or if the matrix is not complex, or if irow or jcol is out of range, an\r\n error message is printed and the program exits.\r\n- 4 DenseMtx : DRAFT August 3, 2025\r\n+ 4 DenseMtx : DRAFT July 1, 2024\r\n 14. int DenseMtx_row ( DenseMtx *mtx, int irow, double **prowent ) ;\r\n This method \ufb01lls *prowent with the \ufb01rst location of the entries in row irow.\r\n Return codes: 1 is a normal return, -1 means mtx is NULL, -2 means invalid type for mtx, -3 means\r\n irow is out-of-range, -4 means prowent is NULL.\r\n 15. int DenseMtx_column ( DenseMtx *mtx, int jcol, double **pcolent ) ;\r\n This method \ufb01lls *pcolent with the \ufb01rst location of the entries in column jcol.\r\n Return codes: 1 is a normal return, -1 means mtx is NULL, -2 means invalid type for mtx, -3 means\r\n@@ -139,15 +139,15 @@\n 4. void DenseMtx_initFromBuffer ( DenseMtx *mtx ) ;\r\n This method initializes the object using information present in the workspace bu\ufb00er. This method is\r\n used to initialize the DenseMtx object when it has been received as an MPI message.\r\n Error checking: If mtx is NULL, an error message is printed and the program exits.\r\n 5. void DenseMtx_setA2 ( DenseMtx *mtx, A2 *a2 ) ;\r\n This method initializes the a2 object to point into the entries of the matrix.\r\n Error checking: If mtx or a2 is NULL, an error message is printed and the program exits.\r\n- DenseMtx : DRAFT August 3, 2025 5\r\n+ DenseMtx : DRAFT July 1, 2024 5\r\n 1.2.4 Utility methods\r\n 1. int DenseMtx_nbytesNeeded ( int type, int nrow, int ncol ) ;\r\n This method returns the number of bytes required to store the object\u2019s information in its bu\ufb00er.\r\n Error checking: If type is neither SPOOLES REAL nor SPOOLES COMPLEX, or if nrow or ncol is less than\r\n zero, an error message is printed and the program exits.\r\n 2. int DenseMtx_nbytesInWorkspace ( DenseMtx *mtx ) ;\r\n This method returns the number of bytes in the workspace owned by this object.\r\n@@ -180,15 +180,15 @@\n 8. void DenseMtx_copyRowAndIndex ( DenseMtx *mtxB, int irowB,\r\n DenseMtx *mtxA, int irowA ) ;\r\n This method copies row irowA from matrix mtxA into row irowB of matrix mtxB, and copies the index\r\n of row irowA of mtxA into location irowB of the row indices for mtxB.\r\n Error checking: If mtxB is NULL, or if irowB is out of range, or if mtxA is NULL, or if irowA is out of\r\n range, or if the number of columns in mtxB and mtxA are not the same, an error message is printed and\r\n the program exits.\r\n- 6 DenseMtx : DRAFT August 3, 2025\r\n+ 6 DenseMtx : DRAFT July 1, 2024\r\n 9. void DenseMtx_addRow ( DenseMtx *mtxB, int irowB, DenseMtx *mtxA, int irowA ) ;\r\n This method adds row irowA from matrix mtxA into row irowB of matrix mtxB.\r\n Error checking: If mtxB is NULL, or if irowB is out of range, or if mtxA is NULL, or if irowA is out of\r\n range, or if the number of columns in mtxB and mtxA are not the same, an error message is printed and\r\n the program exits.\r\n 10. void DenseMtx_zero ( DenseMtx *mtx ) ;\r\n This method zeros the entries in the matrix.\r\n@@ -219,15 +219,15 @@\n This method copies vector vec[] into row irow of matrix mtx.\r\n Error checking: If mtx or vec is NULL, or if irow < 0 or irow \u2265 nrow, an error message is printed and\r\n the program exits.\r\n 18. double DenseMtx_addVectorIntoRow ( DenseMtx *mtx, int irow, double vec[] ) ;\r\n This method adds vector vec[] into row irow of matrix mtx.\r\n Error checking: If mtx or vec is NULL, or if irow < 0 or irow \u2265 nrow, an error message is printed and\r\n the program exits.\r\n- DenseMtx : DRAFT August 3, 2025 7\r\n+ DenseMtx : DRAFT July 1, 2024 7\r\n 1.2.5 IO methods\r\n The\ufb01le structure of a DenseMtxobject is simple. First comes seven scalars, type, rowid, colid, nrow, ncol,\r\n inc1 and inc2, followed by the row indices, followed by the column indices, and then followed by the matrix\r\n entries.\r\n 1. int DenseMtx_readFromFile ( DenseMtx *mtx, char *fn ) ;\r\n This method reads an DenseMtx object from a \ufb01le. If the the \ufb01le can be opened successfully, the\r\n method calls DenseMtx readFromFormattedFile() or DenseMtx readFromBinaryFile(), closes the\r\n@@ -258,15 +258,15 @@\n Error checking: If mtx or fp are NULL an error message is printed and zero is returned.\r\n 7. int DenseMtx_writeStats ( DenseMtx *mtx, FILE *fp ) ;\r\n This method writes out a header and statistics to a \ufb01le. The value 1 is returned.\r\n Error checking: If mtx or fp are NULL, an error message is printed and zero is returned.\r\n 8. void DenseMtx_writeForHumanEye ( DenseMtx *mtx, FILE *fp ) ;\r\n This method writes a DenseMtx object to a \ufb01le in an easily readable format.\r\n Error checking: If mtx or fp are NULL, an error message is printed and zero is returned.\r\n- 8 DenseMtx : DRAFT August 3, 2025\r\n+ 8 DenseMtx : DRAFT July 1, 2024\r\n 9. void DenseMtx_writeForMatlab ( DenseMtx *mtx, char *mtxname, FILE *fp ) ;\r\n This method writes out a DenseMtx object to a \ufb01le in a Matlab format. A sample line is\r\n a(10,5) = -1.550328201511e-01 + 1.848033378871e+00*i ;\r\n for complex matrices, or\r\n a(10,5) = -1.550328201511e-01 ;\r\n for real matrices, where mtxname = \"a\". The matrix indices come from the rowind[] and colind[]\r\n vectors, and are incremented by one to follow the Matlab and FORTRAN convention.\r\n"}]}]}, {"source1": "./usr/share/doc/spooles-doc/Drand.ps.gz", "source2": "./usr/share/doc/spooles-doc/Drand.ps.gz", "unified_diff": null, "details": [{"source1": "Drand.ps", "source2": "Drand.ps", "unified_diff": "@@ -10,15 +10,15 @@\n %%EndComments\n %%BeginDefaults\n %%ViewingOrientation: 1 0 0 1\n %%EndDefaults\n %DVIPSWebPage: (www.radicaleye.com)\n %DVIPSCommandLine: dvips main -o Drand.ps\n %DVIPSParameters: dpi=600\n-%DVIPSSource: TeX output 2025.08.03:1317\n+%DVIPSSource: TeX output 2024.07.01:0700\n %%BeginProcSet: tex.pro 0 0\n %!\n /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S\n N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72\n mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0\n 0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{\n landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize\n@@ -1719,23 +1719,22 @@\n /UnderlinePosition -100 def\n /UnderlineThickness 50 def\n end readonly def\n /Encoding 256 array\n 0 1 255 {1 index exch /.notdef put} for\n dup 44 /comma put\n dup 48 /zero put\n+dup 49 /one put\n dup 50 /two put\n-dup 51 /three put\n-dup 53 /five put\n+dup 52 /four put\n dup 58 /colon put\n-dup 65 /A put\n-dup 103 /g put\n-dup 115 /s put\n-dup 116 /t put\n+dup 74 /J put\n+dup 108 /l put\n dup 117 /u put\n+dup 121 /y put\n readonly def\n currentdict end\n currentfile eexec\n D9D66F633B846AB284BCF8B0411B772DE5CE32340DC6F28AF40857E4451976E7\n 5182433CF9F333A38BD841C0D4E68BF9E012EB32A8FFB76B5816306B5EDF7C99\n 8B3A16D9B4BC056662E32C7CD0123DFAEB734C7532E64BBFBF5A60336E646716\n EFB852C877F440D329172C71F1E5D59CE9473C26B8AEF7AD68EF0727B6EC2E0C\n@@ -1916,79 +1915,67 @@\n 7CA1534C4D5B05FC33F83790ECFD7641DF3FB94289E2A1F6E7D29AB1228A867A\n 6E1EF0E9C6F899B491DC18401C2C0A05FFFED46A72C245F7529B8EA55A038082\n 8512307217D2A233C37004085BA3AEE379269F9FA7D0ADB4B19A95CC2AFE686E\n 55D88E47257C1FE6F235FEA295910569FE6DD5995512562359CC821E85A6C7A5\n 79B470A9E340A6985189FF8B6AF914A6B0ECF93F47903221F95DE894A8F05B05\n B7D99CD533EC5F931B18E6B39BECF67FA2D6DD1AEC76772B068BE06335A94C05\n 7A4DDEE77B66101DA855C17AC312600370B34E31F5EC3A01300A8EB60B4C9767\n-1B2FA10DF7E91D3BB34A1B1CE7A0015A57C813E0280D873ADB88440048702D1F\n-77994EE04EC3B4531D6E1888C86A8F0DA6CF1F056F16AB0DD76C862830F89DA4\n-28923B3AA543E0D6E41D3BD283E600BC11F889315EE92C675C109C81065ED1BC\n-82A5583D1B723D50051B0557A367887F5B263014C6E77288B4883C50889473D3\n-3787BAD4BEB88BD1353AFA5B73E61814819537E7FF09F53EF94792BB3DD36ED0\n-002D0E7A6CDAB85A9C17AF5664BCB5A71663B861880F3ECCABC8E7A2FC81A4CC\n-AE7A87503FDC1CE0077BA51ECC7B43B60793FED8E9AAD5BBD03ADD6183DCD26D\n-24A74163611C05562437644EF9B8889FD4F9D311911204FEFD35237486F2D2D0\n-B6783A03BF12EA6D19D6D0F87E4D08515F12F9CBF1961CAA71E0D69FE3C4C4D2\n-7C7FB64ED24F8684C8F00C2BEDEA53EA390CDC0B5BEBD7DD982580B2EA1F1F89\n-CFED5916630DC2BA32BB9180277E1ABC339B3B7DE086717BD93F7FF3681BA5B3\n-FCF671C4B293C2DE4A322F0AA3323A4934444C69F23EF90120B8755482757759\n-C457A435FB8BB4922BD92C5F3D9555D978275C510183E29DFF2FCE4ABBFC18DE\n-76CAD3B486BA12047DD808CD4D521A0FD368E4AE79DE262630983A5D6F0B679D\n-2F005306393C520E1B6987302D029939D94B0178DC55D5264E1FEA468AD4134C\n-8C65B2FBBE8DE8284E8E1F6BFE0B648F44D3DA8E9350D266EDBFD4A7054D9355\n-1E0B185DED37BCF32D3731358F1D707C94109428BAD3CEA456A2A43553E3D2C2\n-F549189201F3D3F715310E3E8C6A2E9AA5141AA9125D203694C7D875C2DD320F\n-C5BCDFC924F6C04DBC7A97349B45ECD0FBD7D2123ED1D3A9F440B1112BE62779\n-47A4592F9285CBD9635EC9091CEC0AFD7E6B6976974081DB9C0E43165BD8584D\n-6CDF08DED287F0883A9FBD351B3F8706BA1E94C7CA487338269482EB8DC1A05D\n-F6632A5D834DE29228C49C5BA65EF7C535A53B380BF4B391F43562147538EE97\n-E799DFC2C40315859F56BBCE9CAE1DF9293F6E2C193ABE7A724EC8F32FA220E7\n-6026877A63E318254F2AF7B1325D63FC4C52B536D3EF354814C2F8F1EEA30569\n-6EF04447DB0F809DF35B4985B9FB4F4BB6087310BE633E76F268B32ABA99CE8E\n-03163DFF4AEDB88E60DD0848C15E90026D7C24D81122EBC07113F9851914A9D5\n-D0E09C2BFDDAF10C5D8208E8329BC0C402F231CD84C95EFDD182AD9756662110\n-274650C7A5BB0D8EFA54EC6C5A49C0EB26701A54779AE8EFBBED824262761602\n-680EDFB38F0FE18C0F501F5AA8BF48A8F0DD3E5E1EBEB872F6F6B23964707B32\n-507FC677B9FDDC990E3828B06420F6F968B2F6AE81E76A2144B1ECE905485616\n-CFB29AC96DDE1F5039935D7E385CC13E34DD7EAF276A2EA3A8BF27FD4205AE13\n-7FE620E42F2CF231C6C8DD8EFC5A6CF081E5660D9ADD730D72D15C02B1E15FF3\n-D741D3B1EB1E666C4E562219033C1E2EF3F96E136998B2E1890395A3637A2C02\n-DE1C46AFCA8D898439F06606A2295D3F7ED6C7DB250C61B6B97A0D5EDDB9657E\n-E790B4E07540BB1026036F4A0D00E7F16FD757AD61D686620C6814B7DCEC43E8\n-FD36D9E75BA554F64548A67D9B0A26E11784E58D4357FC251D71B5D6D8BFDDE0\n-D3BF0E825DA5312C1904AF13C5905C2ADF79C357476183D2EC5A95243235E861\n-2F98D9EE77EF8F8CB3EC6BD358C5ED37DD3AF44D60575E7774BF96F1AE9DFAD1\n-F8646DEDF21D10311854726B8F7D25876BB1EF78E2442B16ED4B851816CF0A27\n-11FDFCE525002A1A7C3E62CD2A3EDE6FAADB026D2F3A46C030ADB22422CA8FF5\n-2545ED58C0D9FB5BDB55FE674301E91A75B005B86BD201D246F7ADACE50419FD\n-AC3312CAC5EB78A36F0E5F62E65AC92129CB574AAC59E0A7C1390DFC61F39D9E\n-D7036742F2F6E64D1EF8157E9CCF65F3EEDC6A8220235978B8E06EB80F649F3E\n-204CFB497F49306EA8E1F7B62305978A28F1E771ED82C6592C71022154E4062A\n-A92335EFC65D6DED9C686899FFD7AA2988740618C03C5E362E1AF352E3BE4602\n-5530C51E5FC8E9082DF79199CC91C50174000D337D86127AC807C5A3C81DDE57\n-7A68AEE7230949B925365C214D77C80E87CEE218ABC94023717EA43BA5D8A7C8\n-8A8B9BD1B767996AE33050E3D922ED0574E3579C57E4BDDAD35883806AFDF260\n-3AB5D83D451583262E580FFDB7A27D82396AF18D92B849A3F7A7E621987D5DF0\n-038F876C6E9CA47FB11AF05F0019191C5DDC5F0177AD421E94BC66D0CCB82F1F\n-93A80836284B095503752C600F72E2C89112ABFA5B76152691264103B268B3E5\n-8816724ADADB38740001A9AACE05C8AF02D72918606DC22EFC8BF0DA0FD12FFE\n-D3A09F8E28057F327BFB633E604B1EAD478637B1D9631650B314CC62D7E0E87F\n-9D3FE1FFA23BB6E3006C3E39BED52F6B0C1C651B5913878F36DA0BF776889165\n-68BA3456B40B8B471CA8FF5238E43D9113E052A2B8D2EAA2433D3F89FCA48AFB\n-5E842913E4ED6DF9623354059CD1F1707B126FED80349787C869883120183EDD\n-249185A55503FAC53898F52170D05CAC62BB742CF9702C0518AED6B27CDC401C\n-932E02143FD916703F360CB31049501B35EF3EDDFED791090D0CFA221FD1DB32\n-7D4759CE07983AE29C258C705D11E7D9481EEAAB9B6BA65CDCF0AA0057BD6FEA\n-ABBFBD3ABF2A7BFB550C3D2A16DC447384A89F3DB6D9C2DBDCA997ABE35A7706\n-633D328AECEDB5BD07070C1B96267FD73B45791DD18194F60D358091FBE88409\n-973529806F3D2C9E6E39091F90A14B560A987E0B9490B9B690FB489B8E253070\n-D7C54447BE0E0A0BFEAEFFB581DC1300E6EC382984673BF0665632404E59B5BF\n-5D5F0A1C956E618C0487751CA5DAE8A95C214F76ED756694EF273679CD2D85CB\n-949DF385BD50491649EFEFDA1574921D7460143D42A100D2C76E55F0BC\n+1B2FA10DF7E91D3BB34A1B1CE7A0015A57C813E0280D873ADB8844004B9BA1CC\n+580D3C6BDA4DC1B80B4365F1C80512453FC5316EC2D928FB731C3D6403E3C18B\n+E8424D644DF5E9A2134229C5C91CA68DB8E85BA2BB40F538F585DA6FA4037718\n+B8053EBBA1E765346BCD5BDAA6C38115D31611D8A87A2238C145F2DA2F92E4DF\n+3987BD9C4D2A3D460E8941A68B125BCD9EE4F9FD262C4C8A71F47A2C81975635\n+F1B981C274C53FA2ACCDE4C9D0A7C62D6C1EFF91CFC6712CA6A9F333C9564FCB\n+2A70F0AD715A79B10A08AB069E2A3C93BC0AED19D0CA10134B8DDDE8AF548DB2\n+3A4AAA9C29682CF135BB767DAA16169A127EB50A7EECEB6480CF56A7D0F8AC56\n+4A5090B3D75A790372886AF568D94C8165975A05BFBFDF1FFBA45F70700BB9E0\n+57F3249EF9E9C8AD9CBCF6E4FD592DC4CDD2CC7C0BC3130C1059096C657BE453\n+A2CBACE93420210E27AF56CA229BD6D982FB68B3FDC6D44478B922C4231C47EE\n+E500232F6C11D92DEB955F66DF52B92B22E7352790CC2DCBAC53965D57AC2920\n+68B7D520DE25047146EFEB06B9AD4E2A94243C7E5239F0BC2FC312B16051D52C\n+0B92C217B6B42997321AE4F8BB066754B7AA3F15069EF59224E8A442CE471AA7\n+E8049A3DD9EDA09CCEE4998998661CF7DB35E952F6C65DAEB3013951C59F3E09\n+157F313B0237876E1C0190F0473819570B8C0205AADF05D787CC00979CFB327A\n+289382B22DDA6F12804ED0ED5B179E36A995A2A59E1B66E75130DBE9109C813B\n+94403E0DEA8314A1E9DB474D7FA83C0BAFD08033E6A6215844C1D26BE15F1251\n+A1605E8DF9A9C601ED37379530BC1C82BE5463C6C711C5652BFD6262485AA9CA\n+B8C4A117593001D08D980041E2A83C190DCE8E6CD3D334E5CC19FC05DB30F7F7\n+24A305C4DBB31F0651392B99D44B4302333BDF7E326FD256DD75D309C6E73F85\n+FA71B35FD1F9BEFF4C7A1076362EEB0A85492933B6006086A7B8C1928CF2D1EE\n+FD4344409257BB802C117E739960821CD3C88BFBA5669FF16F610AD638AF3677\n+8674C985E6767253ED5769F71BEA5E9BB02A751F9E62EE2B18AC19D975FDEAE9\n+8B8822367FF177A7E850766DE99ED3366D46464612926430012212A90F8E85F4\n+4760B40D5B86B90819EE410382D22D8ED82D0B0AB00C93E10CD365F8766D1C87\n+B4A866021FB6F6AC3D250CC601989B1B8FE6B1098A48282D2CF258BF38FEE940\n+CE0141FB1344156DE7712A8F2DBF700174F12616EE17C852210D96D03E5E6635\n+D439EB6E84A383DDD32AD72DADE6F931FDBABBDC726C36081C96018FC95EAE13\n+DA1F8DBC2D8355AC9792649653225393F4A7A88F3B9443FEEB75E2C15BF93F09\n+CCBA7FABC022BE26F4C28152D5DA6D690494AD4EC0DA1B598AE12536BADF88B5\n+5E20EB452546389F57FF55459567B453AE1831C57D22FA6A4FDF441EDAFDB7FB\n+4F4B707C1FF9159C40F7B5DD519FC07815EE91B8D756B6C18500BCF47D0D9E45\n+6A2D51B6AA5AEAAC9AB2DEF7F0FDE957B6C179CBADEECAC7E9CEC248AB135EB4\n+FBF83D002FF859B574EF36C371540EF2BCFCEF5C2E7863AEDD7C3C965103453B\n+023A9CEC1D5C45B88827ADF4AE0C6746F3C7E6A944427DAEC493601019583A16\n+0F846CE00EAE89EEFF9CE68A0E1D6EBB8FDD8A45D1BF399B36A8328EC957CB8B\n+D842A56269C8C9A6B472C9E65BCBC090606B4E8A7EF4ABDEA120C9F9B3969A1C\n+2EB102925F4E155160E58000E1ADB0D19E10EFD96F6C3225EEE8FC24D122C069\n+C11F1A69DC383F7DACD2F3929BD135CE69787C6E7560AC4B683FE5D9AAFD2E89\n+EE6D95E38C9B726B416E28169A11E29559DBA9AECD714CF318FCB78F34A0E562\n+9C00FE0C6D5A848557D9A82EC2BEFCD30B5EDC0B23C5BA9F812C864394C8B9D1\n+B08BAC9CF94E70FF842306ACCFE6E39A56777C712904A3AB29FBD19275E19E06\n+B35B37CFFFCEC81CAF2D85A853663FAFCFFED1EA77064AA28C15BC94910683BC\n+D09513079DE9EE18E97CC2403DD206516D7F652A3459870757F34EEDCEF952C3\n+FE8004F4716B5BD6774E455010B0BB1E61FCD66B9F14F9BBCCF3E55A158EE96E\n+9A05BDFDDC7706D4BC28FDDC4004EF3A430C607EBDF115E0C996454D70C8BB42\n+D7C83A454B116663D648C23CE2B33365810DE2B64D4AE011BC8043BC3E05B94D\n+1700F859C6AFC6515C1C42FA104EE3E8F3FA5F80252C2E79B00ED27F675FFD09\n+B50BF7A3C63CF4856F909DF969D7DD3EA05CABDD1E71A58CFC2AB5F614B4E5E0\n+25CF92E9FB66ACEBE05DF5E033DA8AD3EE32D94C02D98DD7DA99FAB5AEA595C3\n+2987DC122F0242D76B782349E4069DE0CDD6EF4375C680CBFE4C8F24F2AE89BF\n+7785F5EA7435A91500F265022C307E8ADEAAE1C6\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n@@ -3599,16 +3586,16 @@\n %%EndFont \n TeXDict begin 39158280 55380996 1000 600 600 (main.dvi)\n @start /Fa 234[71 71 20[{}2 90.9091 /CMSY10 rf /Fb 133[50\n 59 4[44 44 46 2[56 62 93 31 2[31 62 2[51 62 50 1[54 11[86\n 11[42 6[80 14[56 56 56 2[31 46[{}22 99.6264 /CMBX12 rf\n /Fc 138[49 30 37 38 1[46 46 51 2[42 1[28 46 42 1[42 46\n 42 1[46 12[65 1[66 11[59 62 69 2[68 6[28 58[{}22 90.9091\n-/CMTI10 rf /Fd 138[51 35 36 11[45 37[68 6[25 4[45 1[45\n-45 1[45 3[25 44[{}11 90.9091 /CMSL10 rf /Fe 141[62 3[62\n+/CMTI10 rf /Fd 134[48 3[51 8[25 33[47 15[25 5[45 1[45\n+45 45 3[25 44[{}10 90.9091 /CMSL10 rf /Fe 141[62 3[62\n 9[62 2[62 28[62 68[{}5 119.552 /CMTT12 rf\n %DVIPSBitmapFont: Ff tcrm1095 10.95 1\n [/Grave/Acute/Circumflex/Tilde/Dieresis/Hungarumlaut/Ring/Caron/Breve/Macron\n /Dotaccent/cedilla/ogonek/quotesinglbase.ts1 4{/.notdef}repeat\n /quotedblbase.ts1/.notdef/.notdef/twelveudash/threequartersemdash\n /afii61664.cap/arrowleft/arrowright/tieaccentlowercase/tieaccentcapital\n /tieaccentlowercase.new/tieaccentcapital.new/.notdef/afii61664.asc/uni2422 3\n@@ -3700,17 +3687,17 @@\n b(ject,)31 b(uniform)e(is)i Fh(1)p Fj(,)f(normal)g(is)h\n Fh(2)0 5064 y Fg(1.2)135 b(Protot)l(yp)t(es)46 b(and)f(descriptions)g\n (of)g Fe(Drand)e Fg(metho)t(ds)0 5294 y Fj(This)e(section)j(con)m\n (tains)f(brief)f(descriptions)g(including)f(protot)m(yp)s(es)i(of)f\n (all)h(metho)s(ds)f(that)h(b)s(elong)f(to)h(the)0 5407\n y Fh(Drand)29 b Fj(ob)5 b(ject.)1927 5656 y(1)p eop end\n %%Page: 2 2\n-TeXDict begin 2 1 bop 0 100 a Fj(2)p 136 100 1146 4 v\n-1328 w Fh(Drand)29 b Fd(:)40 b Fc(DRAFT)31 b Fd(August)f(3,)h(2025)p\n-2754 100 V 0 399 a Fb(1.2.1)112 b(Basic)38 b(metho)s(ds)0\n+TeXDict begin 2 1 bop 0 100 a Fj(2)p 136 100 1204 4 v\n+1385 w Fh(Drand)29 b Fd(:)41 b Fc(DRAFT)30 b Fd(July)g(1,)h(2024)p\n+2697 100 V 0 399 a Fb(1.2.1)112 b(Basic)38 b(metho)s(ds)0\n 602 y Fj(As)d(usual,)h(there)f(are)g(four)f(basic)h(metho)s(ds)g(to)g\n (supp)s(ort)e(ob)5 b(ject)36 b(creation,)i(setting)e(default)f\n (\\014elds,)h(clearing)0 715 y(an)m(y)31 b(allo)s(cated)h(data,)f(and)f\n (free'ing)h(the)g(ob)5 b(ject.)111 972 y(1.)46 b Fh(Drand)h(*)g\n (Drand_new)e(\\()j(void)e(\\))i(;)227 1130 y Fj(This)28\n b(metho)s(d)g(simply)h(allo)s(cates)i(storage)f(for)e(the)h\n Fh(Drand)f Fj(structure)g(and)g(then)g(sets)i(the)f(default)f(\\014elds)\n@@ -3758,18 +3745,18 @@\n (b)s(er)f(seeds)h(using)g(a)h(single)g(input)e(seed.)227\n 5294 y Fc(Err)-5 b(or)30 b(che)-5 b(cking:)38 b Fj(If)25\n b Fh(drand)f Fj(is)h Fh(NULL)p Fj(,)g(or)h(if)f Fh(seed1)f\n Fa(\\024)h Fj(0,)i(or)f(if)f Fh(seed1)f Fa(\\025)h Fj(2147483563,)31\n b(an)26 b(error)f(message)227 5407 y(is)31 b(prin)m(ted)f(and)f(the)i\n (program)f(exits.)p eop end\n %%Page: 3 3\n-TeXDict begin 3 2 bop 91 100 1146 4 v 1327 100 a Fh(Drand)29\n-b Fd(:)41 b Fc(DRAFT)121 b Fd(August)30 b(3,)h(2025)p\n-2707 100 V 1146 w Fj(3)111 399 y(3.)46 b Fh(void)h(Drand_setSeeds)d(\\()\n-j(Drand)g(*drand,)e(int)i(seed1,)f(int)h(seed2)g(\\))g(;)227\n+TeXDict begin 3 2 bop 91 100 1204 4 v 1385 100 a Fh(Drand)29\n+b Fd(:)41 b Fc(DRAFT)121 b Fd(July)30 b(1,)h(2024)p 2650\n+100 V 1204 w Fj(3)111 399 y(3.)46 b Fh(void)h(Drand_setSeeds)d(\\()j\n+(Drand)g(*drand,)e(int)i(seed1,)f(int)h(seed2)g(\\))g(;)227\n 553 y Fj(This)30 b(metho)s(d)g(sets)g(the)h(random)f(n)m(um)m(b)s(er)f\n (seeds)h(using)g(t)m(w)m(o)i(input)d(seeds.)227 707 y\n Fc(Err)-5 b(or)34 b(che)-5 b(cking:)40 b Fj(If)30 b Fh(drand)f\n Fj(is)i Fh(NULL)p Fj(,)e(an)h(error)g(message)i(is)e(prin)m(ted)g(and)g\n (the)h(program)f(exits.)227 862 y Fc(Err)-5 b(or)33 b(che)-5\n b(cking:)39 b Fj(If)29 b Fh(drand)e Fj(is)i Fh(NULL)p\n Fj(,)f(or)h(if)g Fh(seed1)24 b Fa(\\024)h Fj(0,)k(or)g(if)g\n@@ -3823,17 +3810,17 @@\n Fh(n)47 b(<)h(0)f Fj(,)35 b(an)f(error)f(message)i(is)e(prin)m(ted)h\n (and)f(the)227 4852 y(program)d(exits.)0 5175 y Fg(1.3)135\n b(Driv)l(er)46 b(programs)g(for)f(the)g Fe(Drand)d Fg(ob)7\n b(ject)0 5407 y Fj(This)30 b(section)h(con)m(tains)h(brief)e\n (descriptions)g(of)g(the)h(driv)m(er)f(programs.)p eop\n end\n %%Page: 4 4\n-TeXDict begin 4 3 bop 0 100 a Fj(4)p 136 100 1146 4 v\n-1328 w Fh(Drand)29 b Fd(:)40 b Fc(DRAFT)31 b Fd(August)f(3,)h(2025)p\n-2754 100 V 111 399 a Fj(1.)46 b Fh(testDrand)g(msglvl)g(msgFile)f\n+TeXDict begin 4 3 bop 0 100 a Fj(4)p 136 100 1204 4 v\n+1385 w Fh(Drand)29 b Fd(:)41 b Fc(DRAFT)30 b Fd(July)g(1,)h(2024)p\n+2697 100 V 111 399 a Fj(1.)46 b Fh(testDrand)g(msglvl)g(msgFile)f\n (distribution)g(param1)h(param2)g(seed1)g(seed2)h(n)227\n 549 y Fj(This)30 b(driv)m(er)g(program)g(test)h(the)g\n Fh(Drand)e Fj(random)g(n)m(um)m(b)s(er)h(generator.)337\n 761 y Ff(\\210)45 b Fj(The)30 b Fh(msglvl)f Fj(parameter)i(determines)f\n (the)h(amoun)m(t)f(of)h(output.)337 907 y Ff(\\210)45\n b Fj(The)33 b Fh(msgFile)e Fj(parameter)j(determines)f(the)h(message)g\n (\\014le)f(|)h(if)f Fh(msgFile)e Fj(is)i Fh(stdout)p Fj(,)g(then)g(the)\n", "details": [{"source1": "ps2ascii {}", "source2": "ps2ascii {}", "unified_diff": "@@ -15,15 +15,15 @@\n \u2022 double mean : mean for a normal distribution\r\n \u2022 double sigma : variation for a normal distribution\r\n \u2022 int mode: mode of the object, uniform is 1, normal is 2\r\n 1.2 Prototypes and descriptions of Drand methods\r\n This section contains brief descriptions including prototypes of all methods that belong to the\r\n Drand object.\r\n 1\r\n- 2 Drand : DRAFT August 3, 2025\r\n+ 2 Drand : DRAFT July 1, 2024\r\n 1.2.1 Basic methods\r\n As usual, there are four basic methods to support object creation, setting default \ufb01elds, clearing\r\n any allocated data, and free\u2019ing the object.\r\n 1. Drand * Drand_new ( void ) ;\r\n This method simply allocates storage for the Drand structure and then sets the default \ufb01elds\r\n by a call to Drand setDefaultFields().\r\n 2. void Drand_setDefaultFields ( Drand *drand ) ;\r\n@@ -47,15 +47,15 @@\n 1. void Drand_init ( Drand *drand ) ;\r\n This initializer simply sets the default \ufb01elds with a call to Drand setDefaultFields().\r\n Error checking: If drand is NULL, an error message is printed and the program exits.\r\n 2. void Drand_setSeed ( Drand *drand, int seed1 ) ;\r\n This method sets the random number seeds using a single input seed.\r\n Error checking: If drand is NULL, or if seed1 \u2264 0, or if seed1 \u2265 2147483563, an error message\r\n is printed and the program exits.\r\n- Drand : DRAFT August 3, 2025 3\r\n+ Drand : DRAFT July 1, 2024 3\r\n 3. void Drand_setSeeds ( Drand *drand, int seed1, int seed2 ) ;\r\n This method sets the random number seeds using two input seeds.\r\n Error checking: If drand is NULL, an error message is printed and the program exits.\r\n Error checking: If drand is NULL, or if seed1 \u2264 0, or if seed1 \u2265 2147483563, or if seed2 \u2264 0,\r\n or if seed2 \u2265 2147483399, an error message is printed and the program exits.\r\n 4. void Drand_setNormal ( Drand *drand, double mean, double sigma ) ;\r\n This method sets the mode to be a normal distribution with mean mean and variation sigma.\r\n@@ -79,15 +79,15 @@\n program exits.\r\n 4. void Drand_fillIvector ( Drand *drand, int n, int vec[] ) ;\r\n This method \ufb01lls vec[] with n int random numbers.\r\n Error checking: If drand or vec are NULL or if n < 0 , an error message is printed and the\r\n program exits.\r\n 1.3 Driver programs for the Drand object\r\n This section contains brief descriptions of the driver programs.\r\n- 4 Drand : DRAFT August 3, 2025\r\n+ 4 Drand : DRAFT July 1, 2024\r\n 1. testDrand msglvl msgFile distribution param1 param2 seed1 seed2 n\r\n This driver program test the Drand random number generator.\r\n \u2022 The msglvl parameter determines the amount of output.\r\n \u2022 The msgFile parameter determines the message \ufb01le \u2014 if msgFile is stdout, then the\r\n message \ufb01le is stdout, otherwise a \ufb01le is opened with append status to receive any output\r\n data.\r\n \u2022 The distribution parameter speci\ufb01es the mode of the object. If 1, the distribution is\r\n"}]}]}, {"source1": "./usr/share/doc/spooles-doc/EGraph.ps.gz", "source2": "./usr/share/doc/spooles-doc/EGraph.ps.gz", "unified_diff": null, "details": [{"source1": "EGraph.ps", "source2": "EGraph.ps", "unified_diff": "@@ -11,15 +11,15 @@\n %%EndComments\n %%BeginDefaults\n %%ViewingOrientation: 1 0 0 1\n %%EndDefaults\n %DVIPSWebPage: (www.radicaleye.com)\n %DVIPSCommandLine: dvips main -o EGraph.ps\n %DVIPSParameters: dpi=600\n-%DVIPSSource: TeX output 2025.08.03:1317\n+%DVIPSSource: TeX output 2024.07.01:0700\n %%BeginProcSet: tex.pro 0 0\n %!\n /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S\n N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72\n mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0\n 0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{\n landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize\n@@ -1405,23 +1405,22 @@\n /UnderlinePosition -100 def\n /UnderlineThickness 50 def\n end readonly def\n /Encoding 256 array\n 0 1 255 {1 index exch /.notdef put} for\n dup 44 /comma put\n dup 48 /zero put\n+dup 49 /one put\n dup 50 /two put\n-dup 51 /three put\n-dup 53 /five put\n+dup 52 /four put\n dup 58 /colon put\n-dup 65 /A put\n-dup 103 /g put\n-dup 115 /s put\n-dup 116 /t put\n+dup 74 /J put\n+dup 108 /l put\n dup 117 /u put\n+dup 121 /y put\n readonly def\n currentdict end\n currentfile eexec\n D9D66F633B846AB284BCF8B0411B772DE5CE32340DC6F28AF40857E4451976E7\n 5182433CF9F333A38BD841C0D4E68BF9E012EB32A8FFB76B5816306B5EDF7C99\n 8B3A16D9B4BC056662E32C7CD0123DFAEB734C7532E64BBFBF5A60336E646716\n EFB852C877F440D329172C71F1E5D59CE9473C26B8AEF7AD68EF0727B6EC2E0C\n@@ -1602,79 +1601,67 @@\n 7CA1534C4D5B05FC33F83790ECFD7641DF3FB94289E2A1F6E7D29AB1228A867A\n 6E1EF0E9C6F899B491DC18401C2C0A05FFFED46A72C245F7529B8EA55A038082\n 8512307217D2A233C37004085BA3AEE379269F9FA7D0ADB4B19A95CC2AFE686E\n 55D88E47257C1FE6F235FEA295910569FE6DD5995512562359CC821E85A6C7A5\n 79B470A9E340A6985189FF8B6AF914A6B0ECF93F47903221F95DE894A8F05B05\n B7D99CD533EC5F931B18E6B39BECF67FA2D6DD1AEC76772B068BE06335A94C05\n 7A4DDEE77B66101DA855C17AC312600370B34E31F5EC3A01300A8EB60B4C9767\n-1B2FA10DF7E91D3BB34A1B1CE7A0015A57C813E0280D873ADB88440048702D1F\n-77994EE04EC3B4531D6E1888C86A8F0DA6CF1F056F16AB0DD76C862830F89DA4\n-28923B3AA543E0D6E41D3BD283E600BC11F889315EE92C675C109C81065ED1BC\n-82A5583D1B723D50051B0557A367887F5B263014C6E77288B4883C50889473D3\n-3787BAD4BEB88BD1353AFA5B73E61814819537E7FF09F53EF94792BB3DD36ED0\n-002D0E7A6CDAB85A9C17AF5664BCB5A71663B861880F3ECCABC8E7A2FC81A4CC\n-AE7A87503FDC1CE0077BA51ECC7B43B60793FED8E9AAD5BBD03ADD6183DCD26D\n-24A74163611C05562437644EF9B8889FD4F9D311911204FEFD35237486F2D2D0\n-B6783A03BF12EA6D19D6D0F87E4D08515F12F9CBF1961CAA71E0D69FE3C4C4D2\n-7C7FB64ED24F8684C8F00C2BEDEA53EA390CDC0B5BEBD7DD982580B2EA1F1F89\n-CFED5916630DC2BA32BB9180277E1ABC339B3B7DE086717BD93F7FF3681BA5B3\n-FCF671C4B293C2DE4A322F0AA3323A4934444C69F23EF90120B8755482757759\n-C457A435FB8BB4922BD92C5F3D9555D978275C510183E29DFF2FCE4ABBFC18DE\n-76CAD3B486BA12047DD808CD4D521A0FD368E4AE79DE262630983A5D6F0B679D\n-2F005306393C520E1B6987302D029939D94B0178DC55D5264E1FEA468AD4134C\n-8C65B2FBBE8DE8284E8E1F6BFE0B648F44D3DA8E9350D266EDBFD4A7054D9355\n-1E0B185DED37BCF32D3731358F1D707C94109428BAD3CEA456A2A43553E3D2C2\n-F549189201F3D3F715310E3E8C6A2E9AA5141AA9125D203694C7D875C2DD320F\n-C5BCDFC924F6C04DBC7A97349B45ECD0FBD7D2123ED1D3A9F440B1112BE62779\n-47A4592F9285CBD9635EC9091CEC0AFD7E6B6976974081DB9C0E43165BD8584D\n-6CDF08DED287F0883A9FBD351B3F8706BA1E94C7CA487338269482EB8DC1A05D\n-F6632A5D834DE29228C49C5BA65EF7C535A53B380BF4B391F43562147538EE97\n-E799DFC2C40315859F56BBCE9CAE1DF9293F6E2C193ABE7A724EC8F32FA220E7\n-6026877A63E318254F2AF7B1325D63FC4C52B536D3EF354814C2F8F1EEA30569\n-6EF04447DB0F809DF35B4985B9FB4F4BB6087310BE633E76F268B32ABA99CE8E\n-03163DFF4AEDB88E60DD0848C15E90026D7C24D81122EBC07113F9851914A9D5\n-D0E09C2BFDDAF10C5D8208E8329BC0C402F231CD84C95EFDD182AD9756662110\n-274650C7A5BB0D8EFA54EC6C5A49C0EB26701A54779AE8EFBBED824262761602\n-680EDFB38F0FE18C0F501F5AA8BF48A8F0DD3E5E1EBEB872F6F6B23964707B32\n-507FC677B9FDDC990E3828B06420F6F968B2F6AE81E76A2144B1ECE905485616\n-CFB29AC96DDE1F5039935D7E385CC13E34DD7EAF276A2EA3A8BF27FD4205AE13\n-7FE620E42F2CF231C6C8DD8EFC5A6CF081E5660D9ADD730D72D15C02B1E15FF3\n-D741D3B1EB1E666C4E562219033C1E2EF3F96E136998B2E1890395A3637A2C02\n-DE1C46AFCA8D898439F06606A2295D3F7ED6C7DB250C61B6B97A0D5EDDB9657E\n-E790B4E07540BB1026036F4A0D00E7F16FD757AD61D686620C6814B7DCEC43E8\n-FD36D9E75BA554F64548A67D9B0A26E11784E58D4357FC251D71B5D6D8BFDDE0\n-D3BF0E825DA5312C1904AF13C5905C2ADF79C357476183D2EC5A95243235E861\n-2F98D9EE77EF8F8CB3EC6BD358C5ED37DD3AF44D60575E7774BF96F1AE9DFAD1\n-F8646DEDF21D10311854726B8F7D25876BB1EF78E2442B16ED4B851816CF0A27\n-11FDFCE525002A1A7C3E62CD2A3EDE6FAADB026D2F3A46C030ADB22422CA8FF5\n-2545ED58C0D9FB5BDB55FE674301E91A75B005B86BD201D246F7ADACE50419FD\n-AC3312CAC5EB78A36F0E5F62E65AC92129CB574AAC59E0A7C1390DFC61F39D9E\n-D7036742F2F6E64D1EF8157E9CCF65F3EEDC6A8220235978B8E06EB80F649F3E\n-204CFB497F49306EA8E1F7B62305978A28F1E771ED82C6592C71022154E4062A\n-A92335EFC65D6DED9C686899FFD7AA2988740618C03C5E362E1AF352E3BE4602\n-5530C51E5FC8E9082DF79199CC91C50174000D337D86127AC807C5A3C81DDE57\n-7A68AEE7230949B925365C214D77C80E87CEE218ABC94023717EA43BA5D8A7C8\n-8A8B9BD1B767996AE33050E3D922ED0574E3579C57E4BDDAD35883806AFDF260\n-3AB5D83D451583262E580FFDB7A27D82396AF18D92B849A3F7A7E621987D5DF0\n-038F876C6E9CA47FB11AF05F0019191C5DDC5F0177AD421E94BC66D0CCB82F1F\n-93A80836284B095503752C600F72E2C89112ABFA5B76152691264103B268B3E5\n-8816724ADADB38740001A9AACE05C8AF02D72918606DC22EFC8BF0DA0FD12FFE\n-D3A09F8E28057F327BFB633E604B1EAD478637B1D9631650B314CC62D7E0E87F\n-9D3FE1FFA23BB6E3006C3E39BED52F6B0C1C651B5913878F36DA0BF776889165\n-68BA3456B40B8B471CA8FF5238E43D9113E052A2B8D2EAA2433D3F89FCA48AFB\n-5E842913E4ED6DF9623354059CD1F1707B126FED80349787C869883120183EDD\n-249185A55503FAC53898F52170D05CAC62BB742CF9702C0518AED6B27CDC401C\n-932E02143FD916703F360CB31049501B35EF3EDDFED791090D0CFA221FD1DB32\n-7D4759CE07983AE29C258C705D11E7D9481EEAAB9B6BA65CDCF0AA0057BD6FEA\n-ABBFBD3ABF2A7BFB550C3D2A16DC447384A89F3DB6D9C2DBDCA997ABE35A7706\n-633D328AECEDB5BD07070C1B96267FD73B45791DD18194F60D358091FBE88409\n-973529806F3D2C9E6E39091F90A14B560A987E0B9490B9B690FB489B8E253070\n-D7C54447BE0E0A0BFEAEFFB581DC1300E6EC382984673BF0665632404E59B5BF\n-5D5F0A1C956E618C0487751CA5DAE8A95C214F76ED756694EF273679CD2D85CB\n-949DF385BD50491649EFEFDA1574921D7460143D42A100D2C76E55F0BC\n+1B2FA10DF7E91D3BB34A1B1CE7A0015A57C813E0280D873ADB8844004B9BA1CC\n+580D3C6BDA4DC1B80B4365F1C80512453FC5316EC2D928FB731C3D6403E3C18B\n+E8424D644DF5E9A2134229C5C91CA68DB8E85BA2BB40F538F585DA6FA4037718\n+B8053EBBA1E765346BCD5BDAA6C38115D31611D8A87A2238C145F2DA2F92E4DF\n+3987BD9C4D2A3D460E8941A68B125BCD9EE4F9FD262C4C8A71F47A2C81975635\n+F1B981C274C53FA2ACCDE4C9D0A7C62D6C1EFF91CFC6712CA6A9F333C9564FCB\n+2A70F0AD715A79B10A08AB069E2A3C93BC0AED19D0CA10134B8DDDE8AF548DB2\n+3A4AAA9C29682CF135BB767DAA16169A127EB50A7EECEB6480CF56A7D0F8AC56\n+4A5090B3D75A790372886AF568D94C8165975A05BFBFDF1FFBA45F70700BB9E0\n+57F3249EF9E9C8AD9CBCF6E4FD592DC4CDD2CC7C0BC3130C1059096C657BE453\n+A2CBACE93420210E27AF56CA229BD6D982FB68B3FDC6D44478B922C4231C47EE\n+E500232F6C11D92DEB955F66DF52B92B22E7352790CC2DCBAC53965D57AC2920\n+68B7D520DE25047146EFEB06B9AD4E2A94243C7E5239F0BC2FC312B16051D52C\n+0B92C217B6B42997321AE4F8BB066754B7AA3F15069EF59224E8A442CE471AA7\n+E8049A3DD9EDA09CCEE4998998661CF7DB35E952F6C65DAEB3013951C59F3E09\n+157F313B0237876E1C0190F0473819570B8C0205AADF05D787CC00979CFB327A\n+289382B22DDA6F12804ED0ED5B179E36A995A2A59E1B66E75130DBE9109C813B\n+94403E0DEA8314A1E9DB474D7FA83C0BAFD08033E6A6215844C1D26BE15F1251\n+A1605E8DF9A9C601ED37379530BC1C82BE5463C6C711C5652BFD6262485AA9CA\n+B8C4A117593001D08D980041E2A83C190DCE8E6CD3D334E5CC19FC05DB30F7F7\n+24A305C4DBB31F0651392B99D44B4302333BDF7E326FD256DD75D309C6E73F85\n+FA71B35FD1F9BEFF4C7A1076362EEB0A85492933B6006086A7B8C1928CF2D1EE\n+FD4344409257BB802C117E739960821CD3C88BFBA5669FF16F610AD638AF3677\n+8674C985E6767253ED5769F71BEA5E9BB02A751F9E62EE2B18AC19D975FDEAE9\n+8B8822367FF177A7E850766DE99ED3366D46464612926430012212A90F8E85F4\n+4760B40D5B86B90819EE410382D22D8ED82D0B0AB00C93E10CD365F8766D1C87\n+B4A866021FB6F6AC3D250CC601989B1B8FE6B1098A48282D2CF258BF38FEE940\n+CE0141FB1344156DE7712A8F2DBF700174F12616EE17C852210D96D03E5E6635\n+D439EB6E84A383DDD32AD72DADE6F931FDBABBDC726C36081C96018FC95EAE13\n+DA1F8DBC2D8355AC9792649653225393F4A7A88F3B9443FEEB75E2C15BF93F09\n+CCBA7FABC022BE26F4C28152D5DA6D690494AD4EC0DA1B598AE12536BADF88B5\n+5E20EB452546389F57FF55459567B453AE1831C57D22FA6A4FDF441EDAFDB7FB\n+4F4B707C1FF9159C40F7B5DD519FC07815EE91B8D756B6C18500BCF47D0D9E45\n+6A2D51B6AA5AEAAC9AB2DEF7F0FDE957B6C179CBADEECAC7E9CEC248AB135EB4\n+FBF83D002FF859B574EF36C371540EF2BCFCEF5C2E7863AEDD7C3C965103453B\n+023A9CEC1D5C45B88827ADF4AE0C6746F3C7E6A944427DAEC493601019583A16\n+0F846CE00EAE89EEFF9CE68A0E1D6EBB8FDD8A45D1BF399B36A8328EC957CB8B\n+D842A56269C8C9A6B472C9E65BCBC090606B4E8A7EF4ABDEA120C9F9B3969A1C\n+2EB102925F4E155160E58000E1ADB0D19E10EFD96F6C3225EEE8FC24D122C069\n+C11F1A69DC383F7DACD2F3929BD135CE69787C6E7560AC4B683FE5D9AAFD2E89\n+EE6D95E38C9B726B416E28169A11E29559DBA9AECD714CF318FCB78F34A0E562\n+9C00FE0C6D5A848557D9A82EC2BEFCD30B5EDC0B23C5BA9F812C864394C8B9D1\n+B08BAC9CF94E70FF842306ACCFE6E39A56777C712904A3AB29FBD19275E19E06\n+B35B37CFFFCEC81CAF2D85A853663FAFCFFED1EA77064AA28C15BC94910683BC\n+D09513079DE9EE18E97CC2403DD206516D7F652A3459870757F34EEDCEF952C3\n+FE8004F4716B5BD6774E455010B0BB1E61FCD66B9F14F9BBCCF3E55A158EE96E\n+9A05BDFDDC7706D4BC28FDDC4004EF3A430C607EBDF115E0C996454D70C8BB42\n+D7C83A454B116663D648C23CE2B33365810DE2B64D4AE011BC8043BC3E05B94D\n+1700F859C6AFC6515C1C42FA104EE3E8F3FA5F80252C2E79B00ED27F675FFD09\n+B50BF7A3C63CF4856F909DF969D7DD3EA05CABDD1E71A58CFC2AB5F614B4E5E0\n+25CF92E9FB66ACEBE05DF5E033DA8AD3EE32D94C02D98DD7DA99FAB5AEA595C3\n+2987DC122F0242D76B782349E4069DE0CDD6EF4375C680CBFE4C8F24F2AE89BF\n+7785F5EA7435A91500F265022C307E8ADEAAE1C6\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n@@ -3894,16 +3881,16 @@\n {restore}if\n %%EndFont \n TeXDict begin 39158280 55380996 1000 600 600 (main.dvi)\n @start /Fa 253[71 2[{}1 90.9091 /CMSY10 rf /Fb 133[50\n 59 4[44 44 46 2[56 62 93 31 2[31 62 2[51 62 50 1[54 11[86\n 5[84 5[42 6[80 13[56 56 56 56 2[31 46[{}24 99.6264 /CMBX12\n rf /Fc 141[62 1[62 7[62 6[62 25[62 1[62 69[{}6 119.552\n-/CMTT12 rf /Fd 138[51 35 36 11[45 37[68 6[25 4[45 1[45\n-45 1[45 3[25 44[{}11 90.9091 /CMSL10 rf\n+/CMTT12 rf /Fd 134[48 3[51 8[25 33[47 15[25 5[45 1[45\n+45 45 3[25 44[{}10 90.9091 /CMSL10 rf\n %DVIPSBitmapFont: Fe tcrm1095 10.95 1\n [/Grave/Acute/Circumflex/Tilde/Dieresis/Hungarumlaut/Ring/Caron/Breve/Macron\n /Dotaccent/cedilla/ogonek/quotesinglbase.ts1 4{/.notdef}repeat\n /quotedblbase.ts1/.notdef/.notdef/twelveudash/threequartersemdash\n /afii61664.cap/arrowleft/arrowright/tieaccentlowercase/tieaccentcapital\n /tieaccentlowercase.new/tieaccentcapital.new/.notdef/afii61664.asc/uni2422 3\n {/.notdef}repeat/dollar/.notdef/.notdef/quotesingle/.notdef/.notdef\n@@ -4023,17 +4010,17 @@\n (ts.)0 5294 y(A)37 b(correctly)i(initialized)g(and)d(non)m(trivial)i\n Fj(EGraph)e Fk(ob)5 b(ject)38 b(will)f(ha)m(v)m(e)i(p)s(ositiv)m(e)f\n Fj(nelem)e Fk(and)g Fj(nvtx)g Fk(v)-5 b(alues,)40 b(a)0\n 5407 y(v)-5 b(alid)31 b Fj(adjIVL)d Fk(\\014eld.)41 b(If)30\n b Fj(type)46 b(=)i(1)p Fk(,)30 b(the)h Fj(vwghts)d Fk(will)j(b)s(e)f\n (non-)p Fj(NULL)p Fk(.)1927 5656 y(1)p eop end\n %%Page: 2 2\n-TeXDict begin 2 1 bop 0 100 a Fk(2)p 136 100 1122 4 v\n-1304 w Fj(EGraph)29 b Fd(:)40 b Fg(DRAFT)30 b Fd(August)h(3,)g(2025)p\n-2778 100 V 0 399 a Ff(1.2)135 b(Protot)l(yp)t(es)46 b(and)f\n+TeXDict begin 2 1 bop 0 100 a Fk(2)p 136 100 1180 4 v\n+1362 w Fj(EGraph)28 b Fd(:)41 b Fg(DRAFT)30 b Fd(July)g(1,)h(2024)p\n+2721 100 V 0 399 a Ff(1.2)135 b(Protot)l(yp)t(es)46 b(and)f\n (descriptions)g(of)g Fc(EGraph)d Ff(metho)t(ds)0 631\n y Fk(This)f(section)j(con)m(tains)f(brief)f(descriptions)g(including)f\n (protot)m(yp)s(es)i(of)f(all)h(metho)s(ds)f(that)h(b)s(elong)f(to)h\n (the)0 744 y Fj(EGraph)29 b Fk(ob)5 b(ject.)0 1025 y\n Fb(1.2.1)112 b(Basic)38 b(metho)s(ds)0 1226 y Fk(As)d(usual,)h(there)f\n (are)g(four)f(basic)h(metho)s(ds)g(to)g(supp)s(ort)e(ob)5\n b(ject)36 b(creation,)i(setting)e(default)f(\\014elds,)h(clearing)0\n@@ -4093,17 +4080,17 @@\n Fj(IVL)p 1593 5140 V 33 w(type)f Fk(parameter.)227 5294\n y Fg(Err)-5 b(or)36 b(che)-5 b(cking:)45 b Fk(If)32 b\n Fj(egraph)f Fk(is)i Fj(NULL)f Fk(or)g Fj(type)g Fk(is)h(not)g(zero)g\n (or)g(one,)h(or)e(if)h(either)g Fj(nelem)e Fk(or)i Fj(nvtx)f\n Fk(are)227 5407 y(nonp)s(ositiv)m(e,)f(an)g(error)f(message)h(is)g\n (prin)m(ted)e(and)h(the)h(program)f(exits.)p eop end\n %%Page: 3 3\n-TeXDict begin 3 2 bop 91 100 1122 4 v 1303 100 a Fj(EGraph)29\n-b Fd(:)41 b Fg(DRAFT)121 b Fd(August)30 b(3,)h(2025)p\n-2731 100 V 1122 w Fk(3)0 399 y Fb(1.2.3)112 b(Utilit)m(y)38\n+TeXDict begin 3 2 bop 91 100 1180 4 v 1361 100 a Fj(EGraph)29\n+b Fd(:)40 b Fg(DRAFT)122 b Fd(July)29 b(1,)i(2024)p 2673\n+100 V 1180 w Fk(3)0 399 y Fb(1.2.3)112 b(Utilit)m(y)38\n b(metho)s(ds)111 591 y Fk(1.)46 b Fj(Graph)h(EGraph_mkAdjGraph)c(\\()k\n (EGraph)f(*egraph)g(\\))i(;)227 736 y Fk(This)26 b(metho)s(d)h(creates)h\n (and)f(returns)f(a)h Fj(Graph)f Fk(ob)5 b(ject)27 b(with)g(v)m(ertex)h\n (adjacency)g(lists)g(from)e(the)h(elemen)m(t)227 849\n y(graph)j(ob)5 b(ject.)227 995 y Fg(Err)-5 b(or)34 b(che)-5\n b(cking:)40 b Fk(If)30 b Fj(egraph)f Fk(is)h Fj(NULL)p\n Fk(,)g(an)g(error)g(message)i(is)e(prin)m(ted)g(and)g(the)g(program)g\n@@ -4175,17 +4162,17 @@\n 5261 y(the)d(data,)h(the)f(v)-5 b(alue)30 b Fj(1)f Fk(is)h(returned.)39\n b(If)29 b(an)h(IO)f(error)g(is)h(encoun)m(tered)g(from)f\n Fj(fread)p Fk(,)g(zero)h(is)g(returned.)227 5407 y Fg(Err)-5\n b(or)34 b(che)-5 b(cking:)40 b Fk(If)30 b Fj(egraph)f\n Fk(or)h Fj(fp)g Fk(are)h Fj(NULL)e Fk(an)h(error)g(message)i(is)e(prin)\n m(ted)g(and)g(zero)h(is)g(returned.)p eop end\n %%Page: 4 4\n-TeXDict begin 4 3 bop 0 100 a Fk(4)p 136 100 1122 4 v\n-1304 w Fj(EGraph)29 b Fd(:)40 b Fg(DRAFT)30 b Fd(August)h(3,)g(2025)p\n-2778 100 V 111 399 a Fk(4.)46 b Fj(int)h(EGraph_writeToFile)c(\\()k\n+TeXDict begin 4 3 bop 0 100 a Fk(4)p 136 100 1180 4 v\n+1362 w Fj(EGraph)28 b Fd(:)41 b Fg(DRAFT)30 b Fd(July)g(1,)h(2024)p\n+2721 100 V 111 399 a Fk(4.)46 b Fj(int)h(EGraph_writeToFile)c(\\()k\n (EGraph)g(*egraph,)e(char)i(*fn)g(\\))g(;)227 546 y Fk(This)29\n b(metho)s(d)h(writes)g(an)g Fj(EGraph)e Fk(ob)5 b(ject)31\n b(to)g(a)f(\\014le.)41 b(It)30 b(tries)h(to)f(op)s(en)g(the)g(\\014le)g\n (and)f(if)h(it)h(is)f(successful,)227 658 y(it)25 b(then)e(calls)i\n Fj(EGraph)p 1002 658 29 4 v 33 w(writeFromFormattedFile\\(\\))17\n b Fk(or)24 b Fj(EGraph)p 2597 658 V 33 w(writeFromBinaryFile\\(\\))p\n Fk(,)c(closes)227 771 y(the)31 b(\\014le)f(and)g(returns)f(the)i(v)-5\n@@ -4256,18 +4243,18 @@\n y Fe(\\210)45 b Fk(The)33 b Fj(msgFile)e Fk(parameter)j(determines)f\n (the)h(message)g(\\014le)f(|)h(if)f Fj(msgFile)e Fk(is)i\n Fj(stdout)p Fk(,)g(then)g(the)427 5294 y(message)27 b(\\014le)f(is)g\n Fg(stdout)p Fk(,)i(otherwise)e(a)h(\\014le)f(is)f(op)s(ened)g(with)h\n Fg(app)-5 b(end)28 b Fk(status)e(to)g(receiv)m(e)i(an)m(y)e(output)427\n 5407 y(data.)p eop end\n %%Page: 5 5\n-TeXDict begin 5 4 bop 91 100 1122 4 v 1303 100 a Fj(EGraph)29\n-b Fd(:)41 b Fg(DRAFT)121 b Fd(August)30 b(3,)h(2025)p\n-2731 100 V 1122 w Fk(5)337 399 y Fe(\\210)45 b Fk(The)35\n-b Fj(inFile)e Fk(parameter)i(is)g(the)h(input)e(\\014le)h(for)f(the)h\n+TeXDict begin 5 4 bop 91 100 1180 4 v 1361 100 a Fj(EGraph)29\n+b Fd(:)40 b Fg(DRAFT)122 b Fd(July)29 b(1,)i(2024)p 2673\n+100 V 1180 w Fk(5)337 399 y Fe(\\210)45 b Fk(The)35 b\n+Fj(inFile)e Fk(parameter)i(is)g(the)h(input)e(\\014le)h(for)f(the)h\n Fj(EGraph)f Fk(ob)5 b(ject.)55 b(It)35 b(m)m(ust)g(b)s(e)f(of)h(the)g\n (form)427 511 y Fj(*.egraphf)18 b Fk(or)i Fj(*.egraphb)p\n Fk(.)35 b(The)20 b Fj(EGraph)e Fk(ob)5 b(ject)22 b(is)e(read)g(from)g\n (the)g(\\014le)h(via)g(the)f Fj(EGraph)p 3559 511 29 4\n v 33 w(readFromFile\\(\\))427 624 y Fk(metho)s(d.)337 780\n y Fe(\\210)45 b Fk(The)25 b Fj(outFile)e Fk(parameter)j(is)f(the)h\n (output)f(\\014le)g(for)g(the)g Fj(EGraph)f Fk(ob)5 b(ject.)40\n@@ -4338,17 +4325,17 @@\n (b)s(e)g(greater)i(than)f(or)g(equal)g(to)427 5139 y(one.)337\n 5294 y Fe(\\210)45 b Fj(ncomp)26 b Fk(is)g(the)h(n)m(um)m(b)s(er)f(of)h\n (comp)s(onen)m(ts)f(\\(i.e.,)k(the)c(n)m(um)m(b)s(er)g(of)h(degrees)g\n (of)g(freedom\\))g(at)g(eac)m(h)h(grid)427 5407 y(p)s(oin)m(t,)j(m)m\n (ust)f(b)s(e)g(greater)h(than)g(or)f(equal)h(to)g(one.)p\n eop end\n %%Page: 6 6\n-TeXDict begin 6 5 bop 0 100 a Fk(6)p 136 100 1122 4 v\n-1304 w Fj(EGraph)29 b Fd(:)40 b Fg(DRAFT)30 b Fd(August)h(3,)g(2025)p\n-2778 100 V 337 399 a Fe(\\210)45 b Fk(The)20 b Fj(outEGraphFile)d\n+TeXDict begin 6 5 bop 0 100 a Fk(6)p 136 100 1180 4 v\n+1362 w Fj(EGraph)28 b Fd(:)41 b Fg(DRAFT)30 b Fd(July)g(1,)h(2024)p\n+2721 100 V 337 399 a Fe(\\210)45 b Fk(The)20 b Fj(outEGraphFile)d\n Fk(parameter)j(is)h(the)f(output)g(\\014le)g(for)h(the)f\n Fj(EGraph)f Fk(ob)5 b(ject.)38 b(If)20 b Fj(outEGraphFile)427\n 511 y Fk(is)h Fj(none)e Fk(then)h(the)g Fj(EGraph)f Fk(ob)5\n b(ject)21 b(is)f(not)h(written)f(to)h(a)g(\\014le.)37\n b(Otherwise,)22 b(the)f Fj(EGraph)p 3409 511 29 4 v 33\n w(writeToFile\\(\\))427 624 y Fk(metho)s(d)27 b(is)h(called)h(to)f(write)\n g(the)g(ob)5 b(ject)29 b(to)f(a)g(formatted)g(\\014le)g(\\(if)g\n", "details": [{"source1": "ps2ascii {}", "source2": "ps2ascii {}", "unified_diff": "@@ -21,15 +21,15 @@\n \u2022 int nvtx : number of vertices in the graph\r\n \u2022 IVL *adjIVL : pointer to a IVL structure that holds the vertex lists for the elements.\r\n \u2022 int *vwghts : when type = 1, vwghts points to an int vector of size nvtx that holds the\r\n node weights.\r\n A correctly initialized and nontrivial EGraph object will have positive nelem and nvtx values, a\r\n valid adjIVL \ufb01eld. If type = 1, the vwghts will be non-NULL.\r\n 1\r\n- 2 EGraph : DRAFT August 3, 2025\r\n+ 2 EGraph : DRAFT July 1, 2024\r\n 1.2 Prototypes and descriptions of EGraph methods\r\n This section contains brief descriptions including prototypes of all methods that belong to the\r\n EGraph object.\r\n 1.2.1 Basic methods\r\n As usual, there are four basic methods to support object creation, setting default \ufb01elds, clearing\r\n any allocated data, and free\u2019ing the object.\r\n 1. EGraph * EGraph_new ( void ) ;\r\n@@ -55,15 +55,15 @@\n This method initializes an EGraph object given the type of vertices, number of elements,\r\n number of vertices, and storage type for the IVL element list object. It then clears any\r\n previous data with a call to EGraph clearData(). The IVL object is initialized by a call\r\n to IVL init1(). If type = 1, the vwghts is initialized via a call to IVinit(). See the IVL\r\n object for a description of the IVL type parameter.\r\n Error checking: If egraph is NULL or type is not zero or one, or if either nelem or nvtx are\r\n nonpositive, an error message is printed and the program exits.\r\n- EGraph : DRAFT August 3, 2025 3\r\n+ EGraph : DRAFT July 1, 2024 3\r\n 1.2.3 Utility methods\r\n 1. Graph EGraph_mkAdjGraph ( EGraph *egraph ) ;\r\n This method creates and returns a Graph object with vertex adjacency lists from the element\r\n graph object.\r\n Error checking: If egraph is NULL, an error message is printed and the program exits.\r\n 2. EGraph * EGraph_make9P ( int n1, int n2, int ncomp ) ;\r\n This method creates and returns a EGraph object for a n1 \u00d7 n2 grid for a 9-point operator\r\n@@ -92,15 +92,15 @@\n This method reads in an EGraph object from a formatted \ufb01le. If there are no errors in reading\r\n the data, the value 1 is returned. If an IO error is encountered from fscanf, zero is returned.\r\n Error checking: If egraph or fp are NULL an error message is printed and zero is returned.\r\n 3. int EGraph_readFromBinaryFile ( EGraph *egraph, FILE *fp ) ;\r\n This method reads in an EGraph object from a binary \ufb01le. If there are no errors in reading\r\n the data, the value 1 is returned. If an IO error is encountered from fread, zero is returned.\r\n Error checking: If egraph or fp are NULL an error message is printed and zero is returned.\r\n- 4 EGraph : DRAFT August 3, 2025\r\n+ 4 EGraph : DRAFT July 1, 2024\r\n 4. int EGraph_writeToFile ( EGraph *egraph, char *fn ) ;\r\n This method writes an EGraph object to a \ufb01le. It tries to open the \ufb01le and if it is successful,\r\n it then calls EGraph writeFromFormattedFile()or EGraph writeFromBinaryFile(),closes\r\n the \ufb01le and returns the value returned from the called routine.\r\n Error checking: If egraph or fn are NULL, or if fn is not of the form *.egraphf (for a\r\n formatted \ufb01le) or *.egraphb (for a binary \ufb01le), an error message is printed and the method\r\n returns zero.\r\n@@ -128,15 +128,15 @@\n binary \ufb01les and vice versa. One can also read in a EGraph \ufb01le and print out just the header\r\n information (see the EGraph writeStats() method).\r\n \u2022 The msglvl parameter determines the amount of output \u2014 taking msglvl >= 3 means\r\n the EGraph object is written to the message \ufb01le.\r\n \u2022 The msgFile parameter determines the message \ufb01le \u2014 if msgFile is stdout, then the\r\n message \ufb01le is stdout, otherwise a \ufb01le is opened with append status to receive any output\r\n data.\r\n- EGraph : DRAFT August 3, 2025 5\r\n+ EGraph : DRAFT July 1, 2024 5\r\n \u2022 The inFile parameter is the input \ufb01le for the EGraph object. It must be of the form\r\n *.egraphfor*.egraphb. TheEGraphobjectisreadfromthe\ufb01leviatheEGraph readFromFile()\r\n method.\r\n \u2022 The outFileparameter is the output \ufb01le for the EGraph object. If outFile is none then\r\n the EGraphobject is not written to a \ufb01le. Otherwise, the EGraph writeToFile()method\r\n is called to write the object to a formatted \ufb01le (if outFile is of the form *.egraphf),\r\n or a binary \ufb01le (if outFile is of the form *.egraphb).\r\n@@ -166,15 +166,15 @@\n data.\r\n \u2022 n1 is the number of grid points in the \ufb01rst direction, must be greater than one.\r\n \u2022 n2 is the number of grid points in the second direction, must be greater than one.\r\n \u2022 n3 is the number of grid points in the third direction, must be greater than or equal to\r\n one.\r\n \u2022 ncomp is the number of components (i.e., the number of degrees of freedom) at each grid\r\n point, must be greater than or equal to one.\r\n- 6 EGraph : DRAFT August 3, 2025\r\n+ 6 EGraph : DRAFT July 1, 2024\r\n \u2022 TheoutEGraphFileparameteristheoutput\ufb01lefortheEGraphobject. IfoutEGraphFile\r\n is nonethentheEGraphobjectisnotwrittentoa\ufb01le. Otherwise,theEGraph writeToFile()\r\n method is called to write the object to a formatted \ufb01le (if outEGraphFile is of the form\r\n *.egraphf), or a binary \ufb01le (if outEGraphFile is of the form *.egraphb).\r\n Index\r\n EGraph clearData(), 2\r\n EGraph free(), 2\r\n"}]}]}, {"source1": "./usr/share/doc/spooles-doc/ETree.ps.gz", "source2": "./usr/share/doc/spooles-doc/ETree.ps.gz", "unified_diff": null, "details": [{"source1": "ETree.ps", "source2": "ETree.ps", "unified_diff": "@@ -11,15 +11,15 @@\n %%EndComments\n %%BeginDefaults\n %%ViewingOrientation: 1 0 0 1\n %%EndDefaults\n %DVIPSWebPage: (www.radicaleye.com)\n %DVIPSCommandLine: dvips main -o ETree.ps\n %DVIPSParameters: dpi=600\n-%DVIPSSource: TeX output 2025.08.03:1317\n+%DVIPSSource: TeX output 2024.07.01:0700\n %%BeginProcSet: tex.pro 0 0\n %!\n /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S\n N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72\n mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0\n 0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{\n landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize\n@@ -3605,23 +3605,22 @@\n /UnderlinePosition -100 def\n /UnderlineThickness 50 def\n end readonly def\n /Encoding 256 array\n 0 1 255 {1 index exch /.notdef put} for\n dup 44 /comma put\n dup 48 /zero put\n+dup 49 /one put\n dup 50 /two put\n-dup 51 /three put\n-dup 53 /five put\n+dup 52 /four put\n dup 58 /colon put\n-dup 65 /A put\n-dup 103 /g put\n-dup 115 /s put\n-dup 116 /t put\n+dup 74 /J put\n+dup 108 /l put\n dup 117 /u put\n+dup 121 /y put\n readonly def\n currentdict end\n currentfile eexec\n D9D66F633B846AB284BCF8B0411B772DE5CE32340DC6F28AF40857E4451976E7\n 5182433CF9F333A38BD841C0D4E68BF9E012EB32A8FFB76B5816306B5EDF7C99\n 8B3A16D9B4BC056662E32C7CD0123DFAEB734C7532E64BBFBF5A60336E646716\n EFB852C877F440D329172C71F1E5D59CE9473C26B8AEF7AD68EF0727B6EC2E0C\n@@ -3802,79 +3801,67 @@\n 7CA1534C4D5B05FC33F83790ECFD7641DF3FB94289E2A1F6E7D29AB1228A867A\n 6E1EF0E9C6F899B491DC18401C2C0A05FFFED46A72C245F7529B8EA55A038082\n 8512307217D2A233C37004085BA3AEE379269F9FA7D0ADB4B19A95CC2AFE686E\n 55D88E47257C1FE6F235FEA295910569FE6DD5995512562359CC821E85A6C7A5\n 79B470A9E340A6985189FF8B6AF914A6B0ECF93F47903221F95DE894A8F05B05\n B7D99CD533EC5F931B18E6B39BECF67FA2D6DD1AEC76772B068BE06335A94C05\n 7A4DDEE77B66101DA855C17AC312600370B34E31F5EC3A01300A8EB60B4C9767\n-1B2FA10DF7E91D3BB34A1B1CE7A0015A57C813E0280D873ADB88440048702D1F\n-77994EE04EC3B4531D6E1888C86A8F0DA6CF1F056F16AB0DD76C862830F89DA4\n-28923B3AA543E0D6E41D3BD283E600BC11F889315EE92C675C109C81065ED1BC\n-82A5583D1B723D50051B0557A367887F5B263014C6E77288B4883C50889473D3\n-3787BAD4BEB88BD1353AFA5B73E61814819537E7FF09F53EF94792BB3DD36ED0\n-002D0E7A6CDAB85A9C17AF5664BCB5A71663B861880F3ECCABC8E7A2FC81A4CC\n-AE7A87503FDC1CE0077BA51ECC7B43B60793FED8E9AAD5BBD03ADD6183DCD26D\n-24A74163611C05562437644EF9B8889FD4F9D311911204FEFD35237486F2D2D0\n-B6783A03BF12EA6D19D6D0F87E4D08515F12F9CBF1961CAA71E0D69FE3C4C4D2\n-7C7FB64ED24F8684C8F00C2BEDEA53EA390CDC0B5BEBD7DD982580B2EA1F1F89\n-CFED5916630DC2BA32BB9180277E1ABC339B3B7DE086717BD93F7FF3681BA5B3\n-FCF671C4B293C2DE4A322F0AA3323A4934444C69F23EF90120B8755482757759\n-C457A435FB8BB4922BD92C5F3D9555D978275C510183E29DFF2FCE4ABBFC18DE\n-76CAD3B486BA12047DD808CD4D521A0FD368E4AE79DE262630983A5D6F0B679D\n-2F005306393C520E1B6987302D029939D94B0178DC55D5264E1FEA468AD4134C\n-8C65B2FBBE8DE8284E8E1F6BFE0B648F44D3DA8E9350D266EDBFD4A7054D9355\n-1E0B185DED37BCF32D3731358F1D707C94109428BAD3CEA456A2A43553E3D2C2\n-F549189201F3D3F715310E3E8C6A2E9AA5141AA9125D203694C7D875C2DD320F\n-C5BCDFC924F6C04DBC7A97349B45ECD0FBD7D2123ED1D3A9F440B1112BE62779\n-47A4592F9285CBD9635EC9091CEC0AFD7E6B6976974081DB9C0E43165BD8584D\n-6CDF08DED287F0883A9FBD351B3F8706BA1E94C7CA487338269482EB8DC1A05D\n-F6632A5D834DE29228C49C5BA65EF7C535A53B380BF4B391F43562147538EE97\n-E799DFC2C40315859F56BBCE9CAE1DF9293F6E2C193ABE7A724EC8F32FA220E7\n-6026877A63E318254F2AF7B1325D63FC4C52B536D3EF354814C2F8F1EEA30569\n-6EF04447DB0F809DF35B4985B9FB4F4BB6087310BE633E76F268B32ABA99CE8E\n-03163DFF4AEDB88E60DD0848C15E90026D7C24D81122EBC07113F9851914A9D5\n-D0E09C2BFDDAF10C5D8208E8329BC0C402F231CD84C95EFDD182AD9756662110\n-274650C7A5BB0D8EFA54EC6C5A49C0EB26701A54779AE8EFBBED824262761602\n-680EDFB38F0FE18C0F501F5AA8BF48A8F0DD3E5E1EBEB872F6F6B23964707B32\n-507FC677B9FDDC990E3828B06420F6F968B2F6AE81E76A2144B1ECE905485616\n-CFB29AC96DDE1F5039935D7E385CC13E34DD7EAF276A2EA3A8BF27FD4205AE13\n-7FE620E42F2CF231C6C8DD8EFC5A6CF081E5660D9ADD730D72D15C02B1E15FF3\n-D741D3B1EB1E666C4E562219033C1E2EF3F96E136998B2E1890395A3637A2C02\n-DE1C46AFCA8D898439F06606A2295D3F7ED6C7DB250C61B6B97A0D5EDDB9657E\n-E790B4E07540BB1026036F4A0D00E7F16FD757AD61D686620C6814B7DCEC43E8\n-FD36D9E75BA554F64548A67D9B0A26E11784E58D4357FC251D71B5D6D8BFDDE0\n-D3BF0E825DA5312C1904AF13C5905C2ADF79C357476183D2EC5A95243235E861\n-2F98D9EE77EF8F8CB3EC6BD358C5ED37DD3AF44D60575E7774BF96F1AE9DFAD1\n-F8646DEDF21D10311854726B8F7D25876BB1EF78E2442B16ED4B851816CF0A27\n-11FDFCE525002A1A7C3E62CD2A3EDE6FAADB026D2F3A46C030ADB22422CA8FF5\n-2545ED58C0D9FB5BDB55FE674301E91A75B005B86BD201D246F7ADACE50419FD\n-AC3312CAC5EB78A36F0E5F62E65AC92129CB574AAC59E0A7C1390DFC61F39D9E\n-D7036742F2F6E64D1EF8157E9CCF65F3EEDC6A8220235978B8E06EB80F649F3E\n-204CFB497F49306EA8E1F7B62305978A28F1E771ED82C6592C71022154E4062A\n-A92335EFC65D6DED9C686899FFD7AA2988740618C03C5E362E1AF352E3BE4602\n-5530C51E5FC8E9082DF79199CC91C50174000D337D86127AC807C5A3C81DDE57\n-7A68AEE7230949B925365C214D77C80E87CEE218ABC94023717EA43BA5D8A7C8\n-8A8B9BD1B767996AE33050E3D922ED0574E3579C57E4BDDAD35883806AFDF260\n-3AB5D83D451583262E580FFDB7A27D82396AF18D92B849A3F7A7E621987D5DF0\n-038F876C6E9CA47FB11AF05F0019191C5DDC5F0177AD421E94BC66D0CCB82F1F\n-93A80836284B095503752C600F72E2C89112ABFA5B76152691264103B268B3E5\n-8816724ADADB38740001A9AACE05C8AF02D72918606DC22EFC8BF0DA0FD12FFE\n-D3A09F8E28057F327BFB633E604B1EAD478637B1D9631650B314CC62D7E0E87F\n-9D3FE1FFA23BB6E3006C3E39BED52F6B0C1C651B5913878F36DA0BF776889165\n-68BA3456B40B8B471CA8FF5238E43D9113E052A2B8D2EAA2433D3F89FCA48AFB\n-5E842913E4ED6DF9623354059CD1F1707B126FED80349787C869883120183EDD\n-249185A55503FAC53898F52170D05CAC62BB742CF9702C0518AED6B27CDC401C\n-932E02143FD916703F360CB31049501B35EF3EDDFED791090D0CFA221FD1DB32\n-7D4759CE07983AE29C258C705D11E7D9481EEAAB9B6BA65CDCF0AA0057BD6FEA\n-ABBFBD3ABF2A7BFB550C3D2A16DC447384A89F3DB6D9C2DBDCA997ABE35A7706\n-633D328AECEDB5BD07070C1B96267FD73B45791DD18194F60D358091FBE88409\n-973529806F3D2C9E6E39091F90A14B560A987E0B9490B9B690FB489B8E253070\n-D7C54447BE0E0A0BFEAEFFB581DC1300E6EC382984673BF0665632404E59B5BF\n-5D5F0A1C956E618C0487751CA5DAE8A95C214F76ED756694EF273679CD2D85CB\n-949DF385BD50491649EFEFDA1574921D7460143D42A100D2C76E55F0BC\n+1B2FA10DF7E91D3BB34A1B1CE7A0015A57C813E0280D873ADB8844004B9BA1CC\n+580D3C6BDA4DC1B80B4365F1C80512453FC5316EC2D928FB731C3D6403E3C18B\n+E8424D644DF5E9A2134229C5C91CA68DB8E85BA2BB40F538F585DA6FA4037718\n+B8053EBBA1E765346BCD5BDAA6C38115D31611D8A87A2238C145F2DA2F92E4DF\n+3987BD9C4D2A3D460E8941A68B125BCD9EE4F9FD262C4C8A71F47A2C81975635\n+F1B981C274C53FA2ACCDE4C9D0A7C62D6C1EFF91CFC6712CA6A9F333C9564FCB\n+2A70F0AD715A79B10A08AB069E2A3C93BC0AED19D0CA10134B8DDDE8AF548DB2\n+3A4AAA9C29682CF135BB767DAA16169A127EB50A7EECEB6480CF56A7D0F8AC56\n+4A5090B3D75A790372886AF568D94C8165975A05BFBFDF1FFBA45F70700BB9E0\n+57F3249EF9E9C8AD9CBCF6E4FD592DC4CDD2CC7C0BC3130C1059096C657BE453\n+A2CBACE93420210E27AF56CA229BD6D982FB68B3FDC6D44478B922C4231C47EE\n+E500232F6C11D92DEB955F66DF52B92B22E7352790CC2DCBAC53965D57AC2920\n+68B7D520DE25047146EFEB06B9AD4E2A94243C7E5239F0BC2FC312B16051D52C\n+0B92C217B6B42997321AE4F8BB066754B7AA3F15069EF59224E8A442CE471AA7\n+E8049A3DD9EDA09CCEE4998998661CF7DB35E952F6C65DAEB3013951C59F3E09\n+157F313B0237876E1C0190F0473819570B8C0205AADF05D787CC00979CFB327A\n+289382B22DDA6F12804ED0ED5B179E36A995A2A59E1B66E75130DBE9109C813B\n+94403E0DEA8314A1E9DB474D7FA83C0BAFD08033E6A6215844C1D26BE15F1251\n+A1605E8DF9A9C601ED37379530BC1C82BE5463C6C711C5652BFD6262485AA9CA\n+B8C4A117593001D08D980041E2A83C190DCE8E6CD3D334E5CC19FC05DB30F7F7\n+24A305C4DBB31F0651392B99D44B4302333BDF7E326FD256DD75D309C6E73F85\n+FA71B35FD1F9BEFF4C7A1076362EEB0A85492933B6006086A7B8C1928CF2D1EE\n+FD4344409257BB802C117E739960821CD3C88BFBA5669FF16F610AD638AF3677\n+8674C985E6767253ED5769F71BEA5E9BB02A751F9E62EE2B18AC19D975FDEAE9\n+8B8822367FF177A7E850766DE99ED3366D46464612926430012212A90F8E85F4\n+4760B40D5B86B90819EE410382D22D8ED82D0B0AB00C93E10CD365F8766D1C87\n+B4A866021FB6F6AC3D250CC601989B1B8FE6B1098A48282D2CF258BF38FEE940\n+CE0141FB1344156DE7712A8F2DBF700174F12616EE17C852210D96D03E5E6635\n+D439EB6E84A383DDD32AD72DADE6F931FDBABBDC726C36081C96018FC95EAE13\n+DA1F8DBC2D8355AC9792649653225393F4A7A88F3B9443FEEB75E2C15BF93F09\n+CCBA7FABC022BE26F4C28152D5DA6D690494AD4EC0DA1B598AE12536BADF88B5\n+5E20EB452546389F57FF55459567B453AE1831C57D22FA6A4FDF441EDAFDB7FB\n+4F4B707C1FF9159C40F7B5DD519FC07815EE91B8D756B6C18500BCF47D0D9E45\n+6A2D51B6AA5AEAAC9AB2DEF7F0FDE957B6C179CBADEECAC7E9CEC248AB135EB4\n+FBF83D002FF859B574EF36C371540EF2BCFCEF5C2E7863AEDD7C3C965103453B\n+023A9CEC1D5C45B88827ADF4AE0C6746F3C7E6A944427DAEC493601019583A16\n+0F846CE00EAE89EEFF9CE68A0E1D6EBB8FDD8A45D1BF399B36A8328EC957CB8B\n+D842A56269C8C9A6B472C9E65BCBC090606B4E8A7EF4ABDEA120C9F9B3969A1C\n+2EB102925F4E155160E58000E1ADB0D19E10EFD96F6C3225EEE8FC24D122C069\n+C11F1A69DC383F7DACD2F3929BD135CE69787C6E7560AC4B683FE5D9AAFD2E89\n+EE6D95E38C9B726B416E28169A11E29559DBA9AECD714CF318FCB78F34A0E562\n+9C00FE0C6D5A848557D9A82EC2BEFCD30B5EDC0B23C5BA9F812C864394C8B9D1\n+B08BAC9CF94E70FF842306ACCFE6E39A56777C712904A3AB29FBD19275E19E06\n+B35B37CFFFCEC81CAF2D85A853663FAFCFFED1EA77064AA28C15BC94910683BC\n+D09513079DE9EE18E97CC2403DD206516D7F652A3459870757F34EEDCEF952C3\n+FE8004F4716B5BD6774E455010B0BB1E61FCD66B9F14F9BBCCF3E55A158EE96E\n+9A05BDFDDC7706D4BC28FDDC4004EF3A430C607EBDF115E0C996454D70C8BB42\n+D7C83A454B116663D648C23CE2B33365810DE2B64D4AE011BC8043BC3E05B94D\n+1700F859C6AFC6515C1C42FA104EE3E8F3FA5F80252C2E79B00ED27F675FFD09\n+B50BF7A3C63CF4856F909DF969D7DD3EA05CABDD1E71A58CFC2AB5F614B4E5E0\n+25CF92E9FB66ACEBE05DF5E033DA8AD3EE32D94C02D98DD7DA99FAB5AEA595C3\n+2987DC122F0242D76B782349E4069DE0CDD6EF4375C680CBFE4C8F24F2AE89BF\n+7785F5EA7435A91500F265022C307E8ADEAAE1C6\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n@@ -5416,16 +5403,16 @@\n /CMMI10 rf /Fh 133[50 59 3[62 44 44 46 1[62 56 62 93\n 31 2[31 62 56 34 51 62 50 1[54 11[86 78 62 2[77 84 1[106\n 2[58 42 5[81 80 8[56 56 56 56 56 56 56 56 56 56 1[31\n 33[62 12[{}41 99.6264 /CMBX12 rf /Fi 141[62 12[62 16[62\n 14[62 69[{}4 119.552 /CMTT12 rf /Fj 135[42 60 1[49 30\n 37 38 1[46 46 51 74 23 42 1[28 46 42 1[42 46 42 42 46\n 12[65 51 66 4[82 6[59 62 69 2[68 6[28 12[33 45[{}30 90.9091\n-/CMTI10 rf /Fk 138[51 35 36 11[45 37[68 6[25 4[45 1[45\n-45 1[45 3[25 44[{}11 90.9091 /CMSL10 rf\n+/CMTI10 rf /Fk 134[48 3[51 8[25 33[47 15[25 5[45 1[45\n+45 45 3[25 44[{}10 90.9091 /CMSL10 rf\n %DVIPSBitmapFont: Fl tcrm1095 10.95 1\n [/Grave/Acute/Circumflex/Tilde/Dieresis/Hungarumlaut/Ring/Caron/Breve/Macron\n /Dotaccent/cedilla/ogonek/quotesinglbase.ts1 4{/.notdef}repeat\n /quotedblbase.ts1/.notdef/.notdef/twelveudash/threequartersemdash\n /afii61664.cap/arrowleft/arrowright/tieaccentlowercase/tieaccentcapital\n /tieaccentlowercase.new/tieaccentcapital.new/.notdef/afii61664.asc/uni2422 3\n {/.notdef}repeat/dollar/.notdef/.notdef/quotesingle/.notdef/.notdef\n@@ -5538,17 +5525,17 @@\n b Fo(:)i(p)s(oin)m(ter)h(to)g(an)f Fn(IV)g Fo(ob)5 b(ject)31\n b(to)g(hold)f(fron)m(t)h(w)m(eigh)m(ts,)h(size)f Fn(nfront)137\n 5294 y Fl(\\210)45 b Fn(IV)i(*bndwghtsIV)28 b Fo(:)i(p)s(oin)m(ter)h(to)\n g(an)f Fn(IV)g Fo(ob)5 b(ject)31 b(to)g(hold)f(the)h(w)m(eigh)m(ts)g\n (of)g(the)f(fron)m(ts')h(b)s(oundaries,)e(size)227 5407\n y Fn(nfront)1927 5656 y Fo(1)p eop end\n %%Page: 2 2\n-TeXDict begin 2 1 bop 0 100 a Fo(2)p 136 100 1146 4 v\n-1328 w Fn(ETree)29 b Fk(:)40 b Fj(DRAFT)31 b Fk(August)f(3,)h(2025)p\n-2754 100 V 137 399 a Fl(\\210)45 b Fn(IV)i(*vtxToFrontIV)35\n+TeXDict begin 2 1 bop 0 100 a Fo(2)p 136 100 1204 4 v\n+1385 w Fn(ETree)29 b Fk(:)41 b Fj(DRAFT)30 b Fk(July)g(1,)h(2024)p\n+2697 100 V 137 399 a Fl(\\210)45 b Fn(IV)i(*vtxToFrontIV)35\n b Fo(:)j(p)s(oin)m(ter)h(to)g(an)f Fn(IV)f Fo(ob)5 b(ject)39\n b(to)g(hold)f(the)g(map)g(from)g(v)m(ertices)i(to)f(fron)m(ts,)h(size)\n 227 511 y Fn(nfront)0 727 y Fo(A)d(correctly)i(initialized)g(and)d(non)\n m(trivial)i Fn(ETree)e Fo(ob)5 b(ject)38 b(will)g(ha)m(v)m(e)g(p)s\n (ositiv)m(e)g Fn(nfront)e Fo(and)g Fn(nvtx)g Fo(v)-5\n b(alues,)40 b(a)0 840 y(v)-5 b(alid)31 b Fn(tree)e Fo(\\014eld)h(and)g\n (non-)p Fn(NULL)f(nodwghtsIV)p Fo(,)e Fn(bndwghtsIV)h\n@@ -5601,20 +5588,20 @@\n b(metho)s(ds)111 5104 y Fo(1.)46 b Fn(int)h(ETree_nfront)e(\\()i(ETree)f\n (*etree)h(\\))g(;)227 5255 y Fo(This)30 b(metho)s(d)g(returns)f(the)h(n)\n m(um)m(b)s(er)f(of)i(fron)m(ts.)227 5407 y Fj(Err)-5\n b(or)34 b(che)-5 b(cking:)40 b Fo(If)30 b Fn(etree)f\n Fo(is)i Fn(NULL)p Fo(,)e(an)h(error)g(message)i(is)e(prin)m(ted)g(and)g\n (the)h(program)f(exits.)p eop end\n %%Page: 3 3\n-TeXDict begin 3 2 bop 91 100 1146 4 v 1327 100 a Fn(ETree)29\n-b Fk(:)41 b Fj(DRAFT)121 b Fk(August)30 b(3,)h(2025)p\n-2707 100 V 1146 w Fo(3)111 399 y(2.)46 b Fn(int)h(ETree_nvtx)e(\\()j\n-(ETree)e(*etree)g(\\))i(;)227 556 y Fo(This)30 b(metho)s(d)g(returns)f\n-(the)h(n)m(um)m(b)s(er)f(of)i(v)m(ertices.)227 713 y\n-Fj(Err)-5 b(or)34 b(che)-5 b(cking:)40 b Fo(If)30 b Fn(etree)f\n+TeXDict begin 3 2 bop 91 100 1204 4 v 1385 100 a Fn(ETree)29\n+b Fk(:)41 b Fj(DRAFT)121 b Fk(July)30 b(1,)h(2024)p 2650\n+100 V 1204 w Fo(3)111 399 y(2.)46 b Fn(int)h(ETree_nvtx)e(\\()j(ETree)e\n+(*etree)g(\\))i(;)227 556 y Fo(This)30 b(metho)s(d)g(returns)f(the)h(n)m\n+(um)m(b)s(er)f(of)i(v)m(ertices.)227 713 y Fj(Err)-5\n+b(or)34 b(che)-5 b(cking:)40 b Fo(If)30 b Fn(etree)f\n Fo(is)i Fn(NULL)p Fo(,)e(an)h(error)g(message)i(is)e(prin)m(ted)g(and)g\n (the)h(program)f(exits.)111 915 y(3.)46 b Fn(Tree)h(*)g(ETree_tree)e\n (\\()j(ETree)e(*etree)g(\\))i(;)227 1072 y Fo(This)30 b(metho)s(d)g\n (returns)f(a)i(p)s(oin)m(ter)f(to)h(the)g Fn(Tree)e Fo(ob)5\n b(ject.)227 1229 y Fj(Err)-5 b(or)34 b(che)-5 b(cking:)40\n b Fo(If)30 b Fn(etree)f Fo(is)i Fn(NULL)p Fo(,)e(an)h(error)g(message)i\n (is)e(prin)m(ted)g(and)g(the)h(program)f(exits.)111 1431\n@@ -5659,17 +5646,17 @@\n b(ETree)e(*etree)g(\\))i(;)227 5250 y Fo(This)30 b(metho)s(d)g(returns)f\n (a)i(p)s(oin)m(ter)f(to)h(the)g Fn(bndwghtsIV)c Fo(ob)5\n b(ject.)227 5407 y Fj(Err)-5 b(or)34 b(che)-5 b(cking:)40\n b Fo(If)30 b Fn(etree)f Fo(is)i Fn(NULL)p Fo(,)e(an)h(error)g(message)i\n (is)e(prin)m(ted)g(and)g(the)h(program)f(exits.)p eop\n end\n %%Page: 4 4\n-TeXDict begin 4 3 bop 0 100 a Fo(4)p 136 100 1146 4 v\n-1328 w Fn(ETree)29 b Fk(:)40 b Fj(DRAFT)31 b Fk(August)f(3,)h(2025)p\n-2754 100 V 66 399 a Fo(11.)46 b Fn(int)h(*)h(ETree_bndwghts)c(\\()j\n+TeXDict begin 4 3 bop 0 100 a Fo(4)p 136 100 1204 4 v\n+1385 w Fn(ETree)29 b Fk(:)41 b Fj(DRAFT)30 b Fk(July)g(1,)h(2024)p\n+2697 100 V 66 399 a Fo(11.)46 b Fn(int)h(*)h(ETree_bndwghts)c(\\()j\n (ETree)f(*etree)g(\\))i(;)227 551 y Fo(This)30 b(metho)s(d)g(returns)f\n (a)i(p)s(oin)m(ter)f(to)h(the)g Fn(bndwghts)d Fo(v)m(ector.)227\n 703 y Fj(Err)-5 b(or)32 b(che)-5 b(cking:)39 b Fo(If)27\n b Fn(etree)f Fo(or)i Fn(etree->bndwghtsIV)23 b Fo(is)k\n Fn(NULL)p Fo(,)g(an)h(error)f(message)i(is)e(prin)m(ted)h(and)f(the)227\n 816 y(program)j(exits.)66 1008 y(12.)46 b Fn(IV)h(*)h\n (ETree_vtxToFrontIV)43 b(\\()k(ETree)g(*etree)f(\\))h(;)227\n@@ -5727,20 +5714,20 @@\n Fo(ob)5 b(ject)34 b(giv)m(en)g(the)f(n)m(um)m(b)s(er)f(of)h(fron)m(ts)g\n (and)f(n)m(um)m(b)s(er)g(of)h(v)m(ertices.)227 5407 y(An)m(y)26\n b(previous)f(data)h(is)f(cleared)i(with)e(a)h(call)g(to)h\n Fn(ETree)p 2153 5407 V 33 w(clearData\\(\\))p Fo(,)c(The)i\n Fn(Tree)f Fo(ob)5 b(ject)27 b(is)e(initialized)p eop\n end\n %%Page: 5 5\n-TeXDict begin 5 4 bop 91 100 1146 4 v 1327 100 a Fn(ETree)29\n-b Fk(:)41 b Fj(DRAFT)121 b Fk(August)30 b(3,)h(2025)p\n-2707 100 V 1146 w Fo(5)227 399 y(with)j(a)g(call)i(to)e\n-Fn(Tree)p 1000 399 29 4 v 34 w(init1\\(\\))p Fo(.)49 b(The)34\n-b Fn(nodwghtsIV)p Fo(,)d Fn(bndwghtsIV)h Fo(and)h Fn(vtxToFrontIV)e\n-Fo(ob)5 b(jects)35 b(are)227 511 y(initialized)d(with)e(calls)h(to)g\n+TeXDict begin 5 4 bop 91 100 1204 4 v 1385 100 a Fn(ETree)29\n+b Fk(:)41 b Fj(DRAFT)121 b Fk(July)30 b(1,)h(2024)p 2650\n+100 V 1204 w Fo(5)227 399 y(with)j(a)g(call)i(to)e Fn(Tree)p\n+1000 399 29 4 v 34 w(init1\\(\\))p Fo(.)49 b(The)34 b Fn(nodwghtsIV)p\n+Fo(,)d Fn(bndwghtsIV)h Fo(and)h Fn(vtxToFrontIV)e Fo(ob)5\n+b(jects)35 b(are)227 511 y(initialized)d(with)e(calls)h(to)g\n Fn(IV)p 1268 511 V 34 w(init\\(\\))p Fo(.)39 b(The)30 b(en)m(tries)h(in)f\n Fn(nodwghtsIV)d Fo(and)i Fn(bndwghtsIV)f Fo(are)i(set)h(to)g\n Fn(0)p Fo(,)227 624 y(while)g(the)f(en)m(tries)h(in)f\n Fn(vtxToFrontIV)d Fo(are)k(set)g(to)g Fn(-1)p Fo(.)227\n 779 y Fj(Err)-5 b(or)43 b(che)-5 b(cking:)58 b Fo(If)39\n b Fn(etree)f Fo(is)i Fn(NULL)p Fo(,)e(or)i(if)f Fn(nfront)f\n Fo(is)h(negativ)m(e,)45 b(or)39 b(if)h Fn(nvtx)46 b(<)i(nfront)p\n@@ -5815,17 +5802,17 @@\n 5294 y Fo(This)f(metho)s(d)g(initializes)j Fn(subtree)c\n Fo(from)h Fn(tree)f Fo(using)h(the)h(no)s(des)f(of)h\n Fn(etree)e Fo(that)i(are)g(found)e(in)227 5407 y Fn(nodeidsIV)p\n Fo(.)28 b(The)i(map)g(from)g(no)s(des)g(in)g Fn(subtree)e\n Fo(to)j(no)s(des)f(in)g Fn(etree)f Fo(is)h(returned)f(in)h\n Fn(vtxIV)p Fo(.)p eop end\n %%Page: 6 6\n-TeXDict begin 6 5 bop 0 100 a Fo(6)p 136 100 1146 4 v\n-1328 w Fn(ETree)29 b Fk(:)40 b Fj(DRAFT)31 b Fk(August)f(3,)h(2025)p\n-2754 100 V 227 399 a Fj(R)-5 b(eturn)40 b(c)-5 b(o)g(de:)111\n+TeXDict begin 6 5 bop 0 100 a Fo(6)p 136 100 1204 4 v\n+1385 w Fn(ETree)29 b Fk(:)41 b Fj(DRAFT)30 b Fk(July)g(1,)h(2024)p\n+2697 100 V 227 399 a Fj(R)-5 b(eturn)40 b(c)-5 b(o)g(de:)111\n b Fo(1)38 b(for)f(a)h(normal)g(return,)g(-1)h(if)e Fn(subtree)f\n Fo(is)h Fn(NULL)p Fo(,)g(-2)h(if)g Fn(nodeidsIV)d Fo(is)i\n Fn(NULL)p Fo(,)g(-3)h(if)227 511 y Fn(etree)29 b Fo(is)i\n Fn(NULL)p Fo(,)e(-4)i(if)f Fn(nodeidsIV)e Fo(is)j(in)m(v)-5\n b(alid,)31 b(-5)g(if)f Fn(vtxIV)f Fo(is)i Fn(NULL)p Fo(.)0\n 809 y Fh(1.2.4)112 b(Utilit)m(y)38 b(metho)s(ds)0 1015\n y Fo(The)23 b(utilit)m(y)h(metho)s(ds)f(return)f(the)h(n)m(um)m(b)s(er)\n@@ -5900,17 +5887,17 @@\n b Fo(If)37 b Fn(etree)f Fo(or)h Fn(tree)g Fo(is)g Fn(NULL)p\n Fo(,)g(or)h(if)f Fn(nfront)f Fg(<)h Fo(1,)j(or)d(if)h\n Fn(symflag)e Fo(is)h(in)m(v)-5 b(alid,)40 b(or)e(if)227\n 5407 y Fn(J)25 b Fg(<)g Fo(0,)31 b(or)g(if)f Fn(J)25\n b Ff(\\025)g Fn(nfront)n Fo(,)31 b(an)f(error)g(message)i(is)e(prin)m\n (ted)g(and)g(the)g(program)g(exits.)p eop end\n %%Page: 7 7\n-TeXDict begin 7 6 bop 91 100 1146 4 v 1327 100 a Fn(ETree)29\n-b Fk(:)41 b Fj(DRAFT)121 b Fk(August)30 b(3,)h(2025)p\n-2707 100 V 1146 w Fo(7)111 399 y(6.)46 b Fn(double)g\n+TeXDict begin 7 6 bop 91 100 1204 4 v 1385 100 a Fn(ETree)29\n+b Fk(:)41 b Fj(DRAFT)121 b Fk(July)30 b(1,)h(2024)p 2650\n+100 V 1204 w Fo(7)111 399 y(6.)46 b Fn(double)g\n (ETree_nInternalOpsInFront)41 b(\\()48 b(ETree)e(*etree,)g(int)h(type,)f\n (int)h(symflag,)f(int)h(J)g(\\))g(;)227 554 y Fo(This)20\n b(metho)s(d)f(returns)h(the)g(n)m(um)m(b)s(er)f(of)h(in)m(ternal)h(op)s\n (erations)g(p)s(erformed)e(b)m(y)h(fron)m(t)g Fn(J)g\n Fo(on)h(its)f(\\(1)p Fg(;)15 b Fo(1\\),)25 b(\\(2)p Fg(;)15\n b Fo(1\\),)227 667 y(and)37 b(\\(1)p Fg(;)15 b Fo(2\\))38\n b(blo)s(c)m(ks)g(during)d(a)j(factorization.)63 b(The)36\n@@ -5996,17 +5983,17 @@\n 39 b(The)27 b(map)f(from)227 5138 y(compressed)k(v)m(ertices)i(to)f\n (uncompressed)f(v)m(ertices)i(is)e(found)f(in)h(the)h\n Fn(eqmapIV)d Fo(ob)5 b(ject.)227 5294 y Fj(Err)-5 b(or)39\n b(che)-5 b(cking:)50 b Fo(If)34 b Fn(etree)g Fo(or)h\n Fn(eqmapIV)e Fo(is)j Fn(NULL)p Fo(,)e(an)h(error)g(message)h(is)f(prin)\n m(ted)g(and)g(the)g(program)227 5407 y(exits.)p eop end\n %%Page: 8 8\n-TeXDict begin 8 7 bop 0 100 a Fo(8)p 136 100 1146 4 v\n-1328 w Fn(ETree)29 b Fk(:)40 b Fj(DRAFT)31 b Fk(August)f(3,)h(2025)p\n-2754 100 V 66 399 a Fo(12.)46 b Fn(ETree)h(*)g(ETree_spliceTwoEtrees)42\n+TeXDict begin 8 7 bop 0 100 a Fo(8)p 136 100 1204 4 v\n+1385 w Fn(ETree)29 b Fk(:)41 b Fj(DRAFT)30 b Fk(July)g(1,)h(2024)p\n+2697 100 V 66 399 a Fo(12.)46 b Fn(ETree)h(*)g(ETree_spliceTwoEtrees)42\n b(\\()48 b(ETree)e(*etree0,)f(Graph)i(*graph,)f(IV)h(*mapIV,)f(ETree)g\n (*etree1)g(\\))h(;)227 562 y Fo(This)38 b(metho)s(d)h(creates)h(and)e\n (returns)g(an)h Fn(ETree)e Fo(ob)5 b(ject)40 b(that)g(is)f(formed)f(b)m\n (y)h(splicing)g(together)i(t)m(w)m(o)227 675 y(fron)m(t)28\n b(trees,)h Fn(etree0)c Fo(for)j(the)f(v)m(ertices)i(the)f(eliminated)g\n (domains,)g Fn(etree1)e Fo(for)h(the)h(v)m(ertices)h(the)f(Sc)m(h)m(ur)\n 227 788 y(complemen)m(t.)43 b(The)30 b Fn(mapIV)f Fo(ob)5\n@@ -6074,17 +6061,17 @@\n b(che)-5 b(cking:)45 b Fo(If)32 b Fn(etree)f Fo(is)i\n Fn(NULL)p Fo(,)f(or)h(if)g Fn(nfront)28 b Fg(<)h Fo(1,)34\n b(or)f(if)f Fn(nvtx)d Fg(<)g Fo(1,)34 b(or)f(if)g Fn(type)e\n Fo(or)i Fn(symflag)e Fo(is)227 5407 y(in)m(v)-5 b(alid,)31\n b(an)g(error)f(message)h(is)g(prin)m(ted)f(and)f(the)i(program)f\n (exits.)p eop end\n %%Page: 9 9\n-TeXDict begin 9 8 bop 91 100 1146 4 v 1327 100 a Fn(ETree)29\n-b Fk(:)41 b Fj(DRAFT)121 b Fk(August)30 b(3,)h(2025)p\n-2707 100 V 1146 w Fo(9)0 399 y Fh(1.2.6)112 b(Compression)39\n+TeXDict begin 9 8 bop 91 100 1204 4 v 1385 100 a Fn(ETree)29\n+b Fk(:)41 b Fj(DRAFT)121 b Fk(July)30 b(1,)h(2024)p 2650\n+100 V 1204 w Fo(9)0 399 y Fh(1.2.6)112 b(Compression)39\n b(metho)s(ds)0 604 y Fo(F)-8 b(requen)m(tly)30 b(an)f\n Fn(ETree)f Fo(ob)5 b(ject)30 b(will)g(need)e(to)i(b)s(e)f(compressed)g\n (in)f(some)i(manner.)40 b(Elimination)29 b(trees)h(usually)0\n 717 y(ha)m(v)m(e)42 b(long)g(c)m(hains)g(of)f(v)m(ertices)i(at)f(the)f\n (higher)g(lev)m(els,)46 b(where)41 b(eac)m(h)h(c)m(hain)g(of)f(v)m\n (ertices)i(corresp)s(onds)d(to)i(a)0 830 y(sup)s(erno)s(de.)d(Liu's)30\n b(generalized)i(ro)m(w)e(en)m(v)m(elop)s(e)i(metho)s(ds)e(partition)h\n@@ -6152,17 +6139,17 @@\n b(then)j(returned.)227 5294 y Fj(Err)-5 b(or)35 b(che)-5\n b(cking:)41 b Fo(If)31 b Fn(etree)e Fo(or)i Fn(tree)f\n Fo(is)h Fn(NULL)p Fo(,)f(or)h(if)g Fn(nfront)24 b Fg(<)i\n Fo(1,)32 b(or)f(if)g Fn(nvtx)25 b Fg(<)h Fo(1,)31 b(an)g(error)g\n (message)227 5407 y(is)g(prin)m(ted)f(and)f(the)i(program)f(exits.)p\n eop end\n %%Page: 10 10\n-TeXDict begin 10 9 bop 0 100 a Fo(10)p 182 100 1123 4\n-v 1306 w Fn(ETree)28 b Fk(:)41 b Fj(DRAFT)30 b Fk(August)g(3,)h(2025)p\n-2777 100 V 111 399 a Fo(3.)46 b Fn(ETree)h(*)g(ETree_compress)d(\\()j\n+TeXDict begin 10 9 bop 0 100 a Fo(10)p 182 100 1181 4\n+v 1363 w Fn(ETree)29 b Fk(:)41 b Fj(DRAFT)30 b Fk(July)g(1,)h(2024)p\n+2720 100 V 111 399 a Fo(3.)46 b Fn(ETree)h(*)g(ETree_compress)d(\\()j\n (ETree)g(*etree,)f(IV)h(*frontMapIV)e(\\))i(;)227 562\n y Fo(Using)41 b Fn(frontMapIV)p Fo(,)d(a)j(new)f Fn(ETree)f\n Fo(ob)5 b(ject)41 b(is)g(created)g(and)f(returned.)70\n b(If)40 b Fn(frontMapIV)e Fo(do)s(es)i(not)227 675 y(de\\014ne)30\n b(eac)m(h)i(in)m(v)m(erse)f(map)f(of)h(a)g(new)f(no)s(de)g(to)h(b)s(e)f\n (connected)i(set)f(of)f(no)s(des)g(in)g(the)h(old)g Fn(ETree)e\n Fo(ob)5 b(ject,)227 788 y(the)31 b(new)f Fn(ETree)f Fo(ob)5\n@@ -6226,40 +6213,40 @@\n (ectiv)m(e)g Fn(Tree)e Fo(metho)s(ds.)227 5294 y Fj(Err)-5\n b(or)31 b(che)-5 b(cking:)38 b Fo(If)26 b Fn(etree)e\n Fo(is)j Fn(NULL)p Fo(,)e(or)h(if)h Fn(nfront)c Fg(<)i\n Fo(1,)j(or)e(if)h Fn(nvtx)d Fg(<)h Fo(1,)i(an)g(error)f(message)h(is)f\n (prin)m(ted)227 5407 y(and)k(the)h(program)f(exits.)p\n eop end\n %%Page: 11 11\n-TeXDict begin 11 10 bop 91 100 1123 4 v 1305 100 a Fn(ETree)29\n-b Fk(:)40 b Fj(DRAFT)121 b Fk(August)30 b(3,)h(2025)p\n-2684 100 V 1123 w Fo(11)111 399 y(2.)46 b Fn(IV)h(*)h\n-(ETree_newToOldVtxPerm)42 b(\\()47 b(ETree)g(*etree)f(\\))h(;)227\n-511 y(IV)g(*)h(ETree_oldToNewVtxPerm)42 b(\\()47 b(ETree)g(*etree)f(\\))h\n-(;)227 663 y Fo(An)29 b Fn(IV)f Fo(ob)5 b(ject)30 b(is)g(created)g\n-(with)f(size)h Fn(nvtx)p Fo(.)39 b(First)29 b(w)m(e)h(\\014nd)d(a)j\n-(new-to-old)g(p)s(erm)m(utation)f(of)g(the)h(fron)m(ts.)227\n-776 y(Then)j(w)m(e)i(searc)m(h)f(o)m(v)m(er)h(the)g(fron)m(ts)f(in)f\n-(their)h(new)g(order)f(to)i(\\014ll)f(the)g(v)m(ertex)h(new-to-old)g(p)s\n-(erm)m(utation)227 888 y(v)m(ector.)68 b(The)39 b(old-to-new)h(v)m\n-(ertex)g(p)s(erm)m(utation)f(v)m(ector)h(is)f(found)f(b)m(y)h(\\014rst)f\n-(\\014nding)g(the)h(new-to-old)227 1001 y(v)m(ertex)32\n-b(p)s(erm)m(utation)e(v)m(ector,)i(then)f(in)m(v)m(erting)g(it.)227\n-1153 y Fj(Err)-5 b(or)31 b(che)-5 b(cking:)38 b Fo(If)26\n-b Fn(etree)e Fo(is)j Fn(NULL)p Fo(,)e(or)h(if)h Fn(nfront)c\n-Fg(<)i Fo(1,)j(or)e(if)h Fn(nvtx)d Fg(<)h Fo(1,)i(an)g(error)f(message)\n-h(is)f(prin)m(ted)227 1265 y(and)k(the)h(program)f(exits.)111\n-1455 y(3.)46 b Fn(void)h(ETree_permuteVertices)42 b(\\()47\n-b(ETree)g(*etree,)f(IV)h(*vtxOldToNewIV)d(\\))j(;)227\n-1606 y Fo(This)32 b(metho)s(d)f(p)s(erm)m(utes)h(the)g(v)m(ertices)i(|)\n-f(the)f Fn(vtxToFrontIV)d Fo(map)j(is)g(up)s(dated)f(to)i(re\\015ect)g\n-(the)f(new)227 1719 y(v)m(ertex)g(n)m(um)m(b)s(ering.)227\n-1870 y Fj(Err)-5 b(or)44 b(che)-5 b(cking:)61 b Fo(If)41\n-b Fn(etree)e Fo(or)i Fn(vtxOldToNewIV)d Fo(is)j Fn(NULL)p\n-Fo(,)f(or)h(if)g Fn(nvtx)g Fg(<)i Fo(1,)h(an)d(error)g(message)h(is)227\n+TeXDict begin 11 10 bop 91 100 1181 4 v 1362 100 a Fn(ETree)29\n+b Fk(:)41 b Fj(DRAFT)121 b Fk(July)30 b(1,)h(2024)p 2627\n+100 V 1181 w Fo(11)111 399 y(2.)46 b Fn(IV)h(*)h(ETree_newToOldVtxPerm)\n+42 b(\\()47 b(ETree)g(*etree)f(\\))h(;)227 511 y(IV)g(*)h\n+(ETree_oldToNewVtxPerm)42 b(\\()47 b(ETree)g(*etree)f(\\))h(;)227\n+663 y Fo(An)29 b Fn(IV)f Fo(ob)5 b(ject)30 b(is)g(created)g(with)f\n+(size)h Fn(nvtx)p Fo(.)39 b(First)29 b(w)m(e)h(\\014nd)d(a)j(new-to-old)\n+g(p)s(erm)m(utation)f(of)g(the)h(fron)m(ts.)227 776 y(Then)j(w)m(e)i\n+(searc)m(h)f(o)m(v)m(er)h(the)g(fron)m(ts)f(in)f(their)h(new)g(order)f\n+(to)i(\\014ll)f(the)g(v)m(ertex)h(new-to-old)g(p)s(erm)m(utation)227\n+888 y(v)m(ector.)68 b(The)39 b(old-to-new)h(v)m(ertex)g(p)s(erm)m\n+(utation)f(v)m(ector)h(is)f(found)f(b)m(y)h(\\014rst)f(\\014nding)g(the)h\n+(new-to-old)227 1001 y(v)m(ertex)32 b(p)s(erm)m(utation)e(v)m(ector,)i\n+(then)f(in)m(v)m(erting)g(it.)227 1153 y Fj(Err)-5 b(or)31\n+b(che)-5 b(cking:)38 b Fo(If)26 b Fn(etree)e Fo(is)j\n+Fn(NULL)p Fo(,)e(or)h(if)h Fn(nfront)c Fg(<)i Fo(1,)j(or)e(if)h\n+Fn(nvtx)d Fg(<)h Fo(1,)i(an)g(error)f(message)h(is)f(prin)m(ted)227\n+1265 y(and)k(the)h(program)f(exits.)111 1455 y(3.)46\n+b Fn(void)h(ETree_permuteVertices)42 b(\\()47 b(ETree)g(*etree,)f(IV)h\n+(*vtxOldToNewIV)d(\\))j(;)227 1606 y Fo(This)32 b(metho)s(d)f(p)s(erm)m\n+(utes)h(the)g(v)m(ertices)i(|)f(the)f Fn(vtxToFrontIV)d\n+Fo(map)j(is)g(up)s(dated)f(to)i(re\\015ect)g(the)f(new)227\n+1719 y(v)m(ertex)g(n)m(um)m(b)s(ering.)227 1870 y Fj(Err)-5\n+b(or)44 b(che)-5 b(cking:)61 b Fo(If)41 b Fn(etree)e\n+Fo(or)i Fn(vtxOldToNewIV)d Fo(is)j Fn(NULL)p Fo(,)f(or)h(if)g\n+Fn(nvtx)g Fg(<)i Fo(1,)h(an)d(error)g(message)h(is)227\n 1983 y(prin)m(ted)30 b(and)g(the)h(program)f(exits.)0\n 2254 y Fh(1.2.9)112 b(Multisector)38 b(metho)s(ds)0 2452\n y Fo(One)f(of)g(our)g(goals)h(is)g(to)f(impro)m(v)m(e)h(a)g(matrix)g\n (ordering)e(using)h(the)g(m)m(ultisection)i(ordering)e(algorithm.)62\n b(T)-8 b(o)0 2565 y(do)31 b(this,)h(w)m(e)f(need)g(to)h(extract)h(a)e\n (m)m(ultisector)i(from)e(the)g(v)m(ertices,)i(i.e.,)g(a)f(set)f(of)h\n (no)s(des)e(that)i(when)e(remo)m(v)m(ed)0 2677 y(from)38\n@@ -6308,19 +6295,19 @@\n b(Multisector)47 b(no)s(des)227 5294 y(ha)m(v)m(e)36\n b(their)e(comp)s(onen)m(t)g(id)g(zero,)i(domain)e(no)s(des)f(ha)m(v)m\n (e)i(their)f(comp)s(onen)m(t)h(id)e(one.)52 b(Inclusion)34\n b(in)g(the)227 5407 y(m)m(ultisector)g(is)e(based)f(on)h(the)g(n)m(um)m\n (b)s(er)e(of)i(factor)h(en)m(tries)g(in)e(the)i(subtree)e(that)h(a)h(v)\n m(ertex)g(b)s(elongs,)f(or)p eop end\n %%Page: 12 12\n-TeXDict begin 12 11 bop 0 100 a Fo(12)p 182 100 1123\n-4 v 1306 w Fn(ETree)28 b Fk(:)41 b Fj(DRAFT)30 b Fk(August)g(3,)h(2025)\n-p 2777 100 V 227 399 a Fo(strictly)36 b(sp)s(eaking,)f(the)f(n)m(um)m\n-(b)s(er)f(of)i(factor)g(en)m(tries)g(in)f(the)g(subtree)g(of)g(the)h\n-(fron)m(t)f(to)h(whic)m(h)f(a)h(v)m(ertex)227 511 y(b)s(elongs.)63\n+TeXDict begin 12 11 bop 0 100 a Fo(12)p 182 100 1181\n+4 v 1363 w Fn(ETree)29 b Fk(:)41 b Fj(DRAFT)30 b Fk(July)g(1,)h(2024)p\n+2720 100 V 227 399 a Fo(strictly)36 b(sp)s(eaking,)f(the)f(n)m(um)m(b)s\n+(er)f(of)i(factor)g(en)m(tries)g(in)f(the)g(subtree)g(of)g(the)h(fron)m\n+(t)f(to)h(whic)m(h)f(a)h(v)m(ertex)227 511 y(b)s(elongs.)63\n b(If)37 b(w)m(eigh)m(t)i(of)f(the)g(subtree)g(is)f(more)h(than)g\n Fn(cutoff)e Fo(times)i(the)g(n)m(um)m(b)s(er)e(of)i(factor)h(en)m\n (tries,)227 624 y(the)31 b(v)m(ertex)h(is)f(in)g(the)g(m)m(ultisector.)\n 44 b(The)31 b Fn(symflag)e Fo(parameter)i(can)g(b)s(e)f(one)i(of)f\n Fn(SPOOLES)p 3419 624 29 4 v 32 w(SYMMETRIC)p Fo(,)227\n 737 y Fn(SPOOLES)p 569 737 V 33 w(HERMITIAN)d Fo(or)i\n Fn(SPOOLES)p 1509 737 V 32 w(NONSYMMETRIC)p Fo(.)227\n@@ -6411,21 +6398,21 @@\n b Fo(means)227 5127 y(that)31 b Fn(J)f Fo(is)h(in)f(domain)g\n Fn(compids[J])p Fo(.)227 5294 y Fj(Err)-5 b(or)34 b(che)-5\n b(cking:)41 b Fo(If)30 b Fn(etree)p Fo(,)g Fn(graph)f\n Fo(or)h Fn(symbfacIVL)e Fo(is)j Fn(NULL)p Fo(,)f(an)g(error)g(message)i\n (is)f(prin)m(ted)f(and)g(the)227 5407 y(program)g(exits.)p\n eop end\n %%Page: 13 13\n-TeXDict begin 13 12 bop 91 100 1123 4 v 1305 100 a Fn(ETree)29\n-b Fk(:)40 b Fj(DRAFT)121 b Fk(August)30 b(3,)h(2025)p\n-2684 100 V 1123 w Fo(13)0 399 y Fh(1.2.10)113 b(T)-9\n-b(ransformation)38 b(metho)s(ds)0 592 y Fo(Often)g(the)h(elimination)h\n-(tree)g(or)e(fron)m(t)h(tree)g(that)h(w)m(e)f(obtain)g(from)f(an)h\n-(ordering)f(of)h(the)g(graph)f(is)h(not)g(as)0 705 y(appropriate)30\n-b(for)h(a)f(factorization)j(as)e(w)m(e)g(w)m(ould)f(lik)m(e.)42\n+TeXDict begin 13 12 bop 91 100 1181 4 v 1362 100 a Fn(ETree)29\n+b Fk(:)41 b Fj(DRAFT)121 b Fk(July)30 b(1,)h(2024)p 2627\n+100 V 1181 w Fo(13)0 399 y Fh(1.2.10)113 b(T)-9 b(ransformation)38\n+b(metho)s(ds)0 592 y Fo(Often)g(the)h(elimination)h(tree)g(or)e(fron)m\n+(t)h(tree)g(that)h(w)m(e)f(obtain)g(from)f(an)h(ordering)f(of)h(the)g\n+(graph)f(is)h(not)g(as)0 705 y(appropriate)30 b(for)h(a)f\n+(factorization)j(as)e(w)m(e)g(w)m(ould)f(lik)m(e.)42\n b(There)30 b(are)h(t)m(w)m(o)g(imp)s(ortan)m(t)g(cases.)137\n 898 y Fl(\\210)45 b Fo(Near)h(the)g(lea)m(v)m(es)i(of)d(the)h(tree)g\n (the)g(fron)m(ts)f(are)h(t)m(ypically)i(small)e(in)f(size.)87\n b(There)45 b(is)g(an)h(o)m(v)m(erhead)227 1011 y(asso)s(ciated)36\n b(with)d(eac)m(h)i(fron)m(t,)g(and)e(though)h(the)g(o)m(v)m(erhead)h(v)\n -5 b(aries)34 b(with)g(regard)g(to)g(the)g(factorization)227\n 1123 y(algorithm,)28 b(it)e(can)g(b)s(e)g(b)s(ene\\014cial)f(to)i(group)\n@@ -6510,19 +6497,19 @@\n (recom-)0 5294 y(mend)32 b(\\014rst)g(using)h Fn(ETree)p\n 927 5294 V 33 w(mergeFrontsOne\\(\\))c Fo(follo)m(w)m(ed)34\n b(b)m(y)f Fn(ETree)p 2479 5294 V 33 w(mergeFrontsAll\\(\\))p\n Fo(.)45 b(See)33 b(the)g(driv)m(er)0 5407 y(programs)d\n Fn(testTransform)d Fo(and)j Fn(mkNDETree)d Fo(for)k(examples)f(of)h(ho)\n m(w)f(to)h(call)h(the)f(metho)s(ds.)p eop end\n %%Page: 14 14\n-TeXDict begin 14 13 bop 0 100 a Fo(14)p 182 100 1123\n-4 v 1306 w Fn(ETree)28 b Fk(:)41 b Fj(DRAFT)30 b Fk(August)g(3,)h(2025)\n-p 2777 100 V 111 399 a Fo(1.)46 b Fn(ETree)h(*)g(ETree_mergeFrontsOne)\n-42 b(\\()48 b(ETree)e(*etree,)g(int)h(maxzeros,)e(IV)i(*nzerosIV)f(\\))h\n-(;)227 549 y Fo(This)27 b(metho)s(d)g(only)g(tries)h(to)g(merge)g(a)g\n+TeXDict begin 14 13 bop 0 100 a Fo(14)p 182 100 1181\n+4 v 1363 w Fn(ETree)29 b Fk(:)41 b Fj(DRAFT)30 b Fk(July)g(1,)h(2024)p\n+2720 100 V 111 399 a Fo(1.)46 b Fn(ETree)h(*)g(ETree_mergeFrontsOne)42\n+b(\\()48 b(ETree)e(*etree,)g(int)h(maxzeros,)e(IV)i(*nzerosIV)f(\\))h(;)\n+227 549 y Fo(This)27 b(metho)s(d)g(only)g(tries)h(to)g(merge)g(a)g\n (fron)m(t)f(with)g(its)h(only)f(c)m(hild.)40 b(It)28\n b(returns)e(an)h Fn(ETree)f Fo(ob)5 b(ject)28 b(where)227\n 662 y(one)34 b(or)g(more)f(subtrees)g(that)h(con)m(tain)h(m)m(ultiple)f\n (fron)m(ts)g(ha)m(v)m(e)g(b)s(een)f(merged)h(in)m(to)g(single)g(fron)m\n (ts.)50 b(The)227 775 y(parameter)28 b(that)g(go)m(v)m(erns)g(the)f\n (merging)h(pro)s(cess)f(is)g Fn(maxzeros)p Fo(,)e(the)j(n)m(um)m(b)s\n (er)e(of)h(zero)h(en)m(tries)g(that)g(can)227 888 y(b)s(e)36\n@@ -6600,18 +6587,18 @@\n b(or)f(if)f Fn(maxfrontsize)26 b Ff(\\024)i Fo(0,)227\n 5106 y(an)j(error)f(message)h(is)f(prin)m(ted)g(and)g(the)h(program)f\n (exits.)111 5294 y(5.)46 b Fn(ETree)h(*)g(ETree_transform)91\n b(\\()48 b(ETree)e(*etree,)g(int)h(vwghts[],)e(int)i(maxzeros,)1516\n 5407 y(int)g(maxfrontsize,)d(int)j(seed)g(\\))g(;)p eop\n end\n %%Page: 15 15\n-TeXDict begin 15 14 bop 91 100 1123 4 v 1305 100 a Fn(ETree)29\n-b Fk(:)40 b Fj(DRAFT)121 b Fk(August)30 b(3,)h(2025)p\n-2684 100 V 1123 w Fo(15)227 399 y Fn(ETree)47 b(*)g(ETree_transform2)c\n-(\\()48 b(ETree)e(*etree,)g(int)h(vwghts[],)e(int)i(maxzeros,)1516\n+TeXDict begin 15 14 bop 91 100 1181 4 v 1362 100 a Fn(ETree)29\n+b Fk(:)41 b Fj(DRAFT)121 b Fk(July)30 b(1,)h(2024)p 2627\n+100 V 1181 w Fo(15)227 399 y Fn(ETree)47 b(*)g(ETree_transform2)c(\\()48\n+b(ETree)e(*etree,)g(int)h(vwghts[],)e(int)i(maxzeros,)1516\n 511 y(int)g(maxfrontsize,)d(int)j(seed)g(\\))g(;)227 675\n y Fo(These)37 b(metho)s(ds)g(returns)f(an)i Fn(ETree)e\n Fo(ob)5 b(ject)38 b(where)f(one)h(or)f(more)h(subtrees)e(that)i(con)m\n (tain)h(m)m(ultiple)227 788 y(fron)m(ts)28 b(ha)m(v)m(e)g(b)s(een)f\n (merged)h(in)m(to)g(single)g(fron)m(ts)g(and)f(where)g(one)g(or)h(more)\n f(large)i(fron)m(ts)e(ha)m(v)m(e)i(b)s(een)e(split)227\n 901 y(in)m(to)38 b(smaller)g(fron)m(ts.)60 b(The)36 b(t)m(w)m(o)j\n@@ -6675,17 +6662,17 @@\n 5181 y(assigned)i(to)f(all)h(pro)s(cessors.\\))49 b(The)33\n b(tree)h(is)f(then)g(visited)g(in)g(a)h(p)s(ost-order)e(tra)m(v)m\n (ersal,)k(and)d(eac)m(h)427 5294 y(fron)m(t)27 b(is)g(assigned)g(to)g\n (an)g(eligible)h(thread)e(or)h(pro)s(cessor)f(with)h(the)f(least)i(n)m\n (um)m(b)s(er)e(of)h(accum)m(ulated)427 5407 y(ops)j(so)h(far.)p\n eop end\n %%Page: 16 16\n-TeXDict begin 16 15 bop 0 100 a Fo(16)p 182 100 1123\n-4 v 1306 w Fn(ETree)28 b Fk(:)41 b Fj(DRAFT)30 b Fk(August)g(3,)h(2025)\n-p 2777 100 V 337 399 a Fl(\\210)45 b Fo(The)28 b Fj(domain)k(de)-5\n+TeXDict begin 16 15 bop 0 100 a Fo(16)p 182 100 1181\n+4 v 1363 w Fn(ETree)29 b Fk(:)41 b Fj(DRAFT)30 b Fk(July)g(1,)h(2024)p\n+2720 100 V 337 399 a Fl(\\210)45 b Fo(The)28 b Fj(domain)k(de)-5\n b(c)g(omp)g(osition)34 b(map)c Fo(is)e(also)h(complex,)h(where)e\n (domains)g(are)g(mapp)s(ed)f(to)i(threads,)427 511 y(then)d(the)h(fron)\n m(ts)f(in)g(the)g(sc)m(h)m(ur)g(complemen)m(t)i(are)e(mapp)s(ed)f(to)i\n (threads,)g(b)s(oth)e(using)h(indep)s(enden)m(t)427 624\n y(balanced)38 b(maps.)61 b(The)36 b(metho)s(d)h Fn(ETree)p\n 1884 624 29 4 v 33 w(ddMapNew\\(\\))e Fo(is)i(more)g(robust)g(than)g\n Fn(ETree)p 3514 624 V 33 w(ddMap\\(\\))p Fo(,)427 737 y(and)c(is)h(more)g\n@@ -6753,25 +6740,25 @@\n (of)f(stac)m(k)i(storage)g(to)f(solv)m(e)h(for)e Fn(J)g\n Fo(using)g(the)g(m)m(ultifron)m(tal-)227 5249 y(based)30\n b(forw)m(ard)g(solv)m(e.)227 5407 y Fj(Err)-5 b(or)29\n b(che)-5 b(cking:)38 b Fo(If)25 b Fn(etree)e Fo(or)j\n Fn(dvec)d Fo(are)j Fn(NULL)p Fo(,)e(an)h(error)g(message)h(is)f(prin)m\n (ted)g(and)g(the)g(program)g(exits.)p eop end\n %%Page: 17 17\n-TeXDict begin 17 16 bop 91 100 1123 4 v 1305 100 a Fn(ETree)29\n-b Fk(:)40 b Fj(DRAFT)121 b Fk(August)30 b(3,)h(2025)p\n-2684 100 V 1123 w Fo(17)111 399 y(5.)46 b Fn(void)h\n-(ETree_backSolveProfile)42 b(\\()47 b(ETree)f(*etree,)g(double)g(dvec[])\n-g(\\))i(;)227 555 y Fo(On)24 b(return,)g Fn(dvec[J])f\n-Fo(con)m(tains)i(the)g(amoun)m(t)g(of)f(stac)m(k)i(storage)g(to)f(solv)\n-m(e)h(for)e Fn(J)g Fo(using)g(the)g(m)m(ultifron)m(tal-)227\n-668 y(based)30 b(bac)m(kw)m(ard)h(solv)m(e.)227 825 y\n-Fj(Err)-5 b(or)29 b(che)-5 b(cking:)38 b Fo(If)25 b Fn(etree)e\n-Fo(or)j Fn(dvec)d Fo(are)j Fn(NULL)p Fo(,)e(an)h(error)g(message)h(is)f\n-(prin)m(ted)g(and)g(the)g(program)g(exits.)0 1112 y Fh(1.2.13)113\n+TeXDict begin 17 16 bop 91 100 1181 4 v 1362 100 a Fn(ETree)29\n+b Fk(:)41 b Fj(DRAFT)121 b Fk(July)30 b(1,)h(2024)p 2627\n+100 V 1181 w Fo(17)111 399 y(5.)46 b Fn(void)h(ETree_backSolveProfile)\n+42 b(\\()47 b(ETree)f(*etree,)g(double)g(dvec[])g(\\))i(;)227\n+555 y Fo(On)24 b(return,)g Fn(dvec[J])f Fo(con)m(tains)i(the)g(amoun)m\n+(t)g(of)f(stac)m(k)i(storage)g(to)f(solv)m(e)h(for)e\n+Fn(J)g Fo(using)g(the)g(m)m(ultifron)m(tal-)227 668 y(based)30\n+b(bac)m(kw)m(ard)h(solv)m(e.)227 825 y Fj(Err)-5 b(or)29\n+b(che)-5 b(cking:)38 b Fo(If)25 b Fn(etree)e Fo(or)j\n+Fn(dvec)d Fo(are)j Fn(NULL)p Fo(,)e(an)h(error)g(message)h(is)f(prin)m\n+(ted)g(and)g(the)g(program)g(exits.)0 1112 y Fh(1.2.13)113\n b(IO)37 b(metho)s(ds)0 1315 y Fo(There)31 b(are)h(the)f(usual)g(eigh)m\n (t)i(IO)e(routines.)43 b(The)31 b(\\014le)g(structure)g(of)h(a)f(tree)h\n (ob)5 b(ject)33 b(is)e(simple:)43 b Fn(nfront)p Fo(,)30\n b Fn(nvtx)p Fo(,)0 1428 y(a)h Fn(Tree)e Fo(ob)5 b(ject)31\n b(follo)m(w)m(ed)h(b)m(y)e(the)h Fn(nodwghtsIV)p Fo(,)d\n Fn(bndwghtsIV)f Fo(and)j Fn(vtxToFrontIV)d Fo(ob)5 b(jects.)111\n 1682 y(1.)46 b Fn(int)h(ETree_readFromFile)c(\\()k(ETree)g(*etree,)f\n@@ -6837,17 +6824,17 @@\n e(v)-5 b(alue)34 b Fn(1)e Fo(is)i(returned.)47 b(If)33\n b(an)g(IO)f(error)h(is)227 5250 y(encoun)m(tered)e(from)f\n Fn(fprintf)p Fo(,)f(zero)i(is)f(returned.)227 5407 y\n Fj(Err)-5 b(or)34 b(che)-5 b(cking:)40 b Fo(If)30 b Fn(etree)f\n Fo(or)i Fn(fp)e Fo(are)i Fn(NULL)p Fo(,)f(an)g(error)g(message)h(is)g\n (prin)m(ted)f(and)f(zero)j(is)e(returned.)p eop end\n %%Page: 18 18\n-TeXDict begin 18 17 bop 0 100 a Fo(18)p 182 100 1123\n-4 v 1306 w Fn(ETree)28 b Fk(:)41 b Fj(DRAFT)30 b Fk(August)g(3,)h(2025)\n-p 2777 100 V 111 399 a Fo(6.)46 b Fn(int)h(ETree_writeToBinaryFile)42\n+TeXDict begin 18 17 bop 0 100 a Fo(18)p 182 100 1181\n+4 v 1363 w Fn(ETree)29 b Fk(:)41 b Fj(DRAFT)30 b Fk(July)g(1,)h(2024)p\n+2720 100 V 111 399 a Fo(6.)46 b Fn(int)h(ETree_writeToBinaryFile)42\n b(\\()47 b(ETree)f(*etree,)g(FILE)h(*fp)g(\\))g(;)227 557\n y Fo(This)37 b(metho)s(d)g(writes)g(an)h Fn(ETree)e Fo(ob)5\n b(ject)38 b(to)g(a)g(binary)f(\\014le.)62 b(If)37 b(there)h(are)g(no)f\n (errors)g(in)g(writing)h(the)227 670 y(data,)32 b(the)e(v)-5\n b(alue)31 b Fn(1)f Fo(is)g(returned.)40 b(If)30 b(an)g(IO)g(error)g(is)\n g(encoun)m(tered)h(from)f Fn(fwrite)p Fo(,)f(zero)i(is)g(returned.)227\n 829 y Fj(Err)-5 b(or)34 b(che)-5 b(cking:)40 b Fo(If)30\n@@ -6917,18 +6904,18 @@\n w(writeToFile\\(\\))22 b Fo(metho)s(d)i(is)i(called)g(to)g(write)g(the)f\n (ob)5 b(ject)26 b(to)g(a)g(formatted)g(\\014le)f(\\(if)g\n Fn(outIVfile)427 5407 y Fo(is)31 b(of)f(the)h(form)f\n Fn(*.ivf)p Fo(\\),)f(or)i(a)f(binary)g(\\014le)g(\\(if)h\n Fn(outIVfile)d Fo(is)i(of)h(the)f(form)g Fn(*.ivb)p Fo(\\).)p\n eop end\n %%Page: 19 19\n-TeXDict begin 19 18 bop 91 100 1123 4 v 1305 100 a Fn(ETree)29\n-b Fk(:)40 b Fj(DRAFT)121 b Fk(August)30 b(3,)h(2025)p\n-2684 100 V 1123 w Fo(19)337 399 y Fl(\\210)45 b Fo(The)24\n-b Fn(outETreeFile)d Fo(parameter)k(is)f(the)h(output)f(\\014le)g(for)g\n+TeXDict begin 19 18 bop 91 100 1181 4 v 1362 100 a Fn(ETree)29\n+b Fk(:)41 b Fj(DRAFT)121 b Fk(July)30 b(1,)h(2024)p 2627\n+100 V 1181 w Fo(19)337 399 y Fl(\\210)45 b Fo(The)24 b\n+Fn(outETreeFile)d Fo(parameter)k(is)f(the)h(output)f(\\014le)g(for)g\n (the)h Fn(ETree)d Fo(ob)5 b(ject.)40 b(If)24 b Fn(outETreeFile)d\n Fo(is)427 511 y Fn(none)g Fo(then)h(the)g Fn(ETree)f\n Fo(ob)5 b(ject)22 b(is)g(not)h(written)f(to)g(a)h(\\014le.)38\n b(Otherwise,)23 b(the)g Fn(ETree)p 3253 511 29 4 v 33\n w(writeToFile\\(\\))427 624 y Fo(metho)s(d)30 b(is)h(called)h(to)f(write)\n g(the)g(ob)5 b(ject)31 b(to)h(a)f(formatted)g(\\014le)g(\\(if)g\n Fn(outETreeFile)c Fo(is)k(of)g(the)f(form)427 737 y Fn(*.etreef)p\n@@ -6999,17 +6986,17 @@\n b(39661)47 b(indices,)141 b(367237)46 b(|L|,)g(63215265)g(ops)275\n 5294 y(merge2)142 b(:)g(511)47 b(fronts,)189 b(29525)47\n b(indices,)141 b(373757)46 b(|L|,)g(63590185)g(ops)275\n 5407 y(split)190 b(:)142 b(536)47 b(fronts,)189 b(34484)47\n b(indices,)141 b(373757)46 b(|L|,)g(63590185)g(ops)p\n eop end\n %%Page: 20 20\n-TeXDict begin 20 19 bop 0 100 a Fo(20)p 182 100 1123\n-4 v 1306 w Fn(ETree)28 b Fk(:)41 b Fj(DRAFT)30 b Fk(August)g(3,)h(2025)\n-p 2777 100 V 337 399 a Fl(\\210)45 b Fo(The)28 b Fn(msglvl)f\n+TeXDict begin 20 19 bop 0 100 a Fo(20)p 182 100 1181\n+4 v 1363 w Fn(ETree)29 b Fk(:)41 b Fj(DRAFT)30 b Fk(July)g(1,)h(2024)p\n+2720 100 V 337 399 a Fl(\\210)45 b Fo(The)28 b Fn(msglvl)f\n Fo(parameter)i(determines)g(the)g(amoun)m(t)g(of)f(output)h(|)f(taking)\n i Fn(msglvl)46 b(>=)h(3)28 b Fo(means)427 511 y(the)j\n Fn(ETree)e Fo(ob)5 b(ject)31 b(is)f(written)h(to)g(the)g(message)g\n (\\014le.)337 660 y Fl(\\210)45 b Fo(The)33 b Fn(msgFile)e\n Fo(parameter)j(determines)f(the)h(message)g(\\014le)f(|)h(if)f\n Fn(msgFile)e Fo(is)i Fn(stdout)p Fo(,)g(then)g(the)427\n 773 y(message)27 b(\\014le)f(is)g Fj(stdout)p Fo(,)i(otherwise)e(a)h\n@@ -7079,18 +7066,18 @@\n h(n)m(um)m(b)s(er)e(of)h(v)m(ertices)i(in)e(a)h(fron)m(t)f(|)h(an)m(y)\n 427 5146 y(original)j(fron)m(t)f(that)g(con)m(tains)h(more)f(than)f\n Fn(maxsize)f Fo(v)m(ertices)j(will)f(b)s(e)f(brok)m(en)g(up)g(in)m(to)h\n (smaller)427 5259 y(fron)m(ts.)337 5407 y Fl(\\210)45\n b Fo(The)30 b Fn(nthread)f Fo(parameter)h(is)h(the)f(n)m(um)m(b)s(er)f\n (of)i(threads.)p eop end\n %%Page: 21 21\n-TeXDict begin 21 20 bop 91 100 1123 4 v 1305 100 a Fn(ETree)29\n-b Fk(:)40 b Fj(DRAFT)121 b Fk(August)30 b(3,)h(2025)p\n-2684 100 V 1123 w Fo(21)337 399 y Fl(\\210)45 b Fo(The)30\n-b Fn(maptype)f Fo(parameter)h(is)h(the)f(t)m(yp)s(e)h(of)f(map.)500\n+TeXDict begin 21 20 bop 91 100 1181 4 v 1362 100 a Fn(ETree)29\n+b Fk(:)41 b Fj(DRAFT)121 b Fk(July)30 b(1,)h(2024)p 2627\n+100 V 1181 w Fo(21)337 399 y Fl(\\210)45 b Fo(The)30 b\n+Fn(maptype)f Fo(parameter)h(is)h(the)f(t)m(yp)s(e)h(of)f(map.)500\n 540 y Fe({)45 b Fn(1)30 b Fo(|)h(wrap)e(map)500 667 y\n Fe({)45 b Fn(2)30 b Fo(|)h(balanced)f(map)500 794 y Fe({)45\n b Fn(3)30 b Fo(|)h(subtree-subset)e(map)500 921 y Fe({)45\n b Fn(4)30 b Fo(|)h(domain)f(decomp)s(osition)h(map)337\n 1062 y Fl(\\210)45 b Fo(The)d Fn(cutoff)e Fo(parameter)i(is)g(used)f(b)m\n (y)h(the)g(domain)g(decomp)s(osition)g(map)g(only)-8\n b(.)75 b(T)-8 b(ry)42 b(setting)427 1175 y Fn(cutoff)k(=)i(1/nthread)28\n@@ -7172,17 +7159,17 @@\n b(Otherwise,)37 b(the)g Fn(IV)p 3252 5181 V 34 w(writeToFile\\(\\))427\n 5294 y Fo(metho)s(d)i(is)h(called)h(to)f(write)g(the)g(ob)5\n b(ject)40 b(to)g(a)g(formatted)h(\\014le)e(\\(if)h Fn(outIVFile)d\n Fo(is)j(of)g(the)f(form)427 5407 y Fn(*.ivf)p Fo(\\),)30\n b(or)g(a)h(binary)f(\\014le)g(\\(if)h Fn(outIVFile)d Fo(is)i(of)g(the)h\n (form)f Fn(*.ivb)p Fo(\\).)p eop end\n %%Page: 22 22\n-TeXDict begin 22 21 bop 0 100 a Fo(22)p 182 100 1123\n-4 v 1306 w Fn(ETree)28 b Fk(:)41 b Fj(DRAFT)30 b Fk(August)g(3,)h(2025)\n-p 2777 100 V 111 399 a Fo(6.)46 b Fn(testExpand)f(msglvl)h(msgFile)g\n+TeXDict begin 22 21 bop 0 100 a Fo(22)p 182 100 1181\n+4 v 1363 w Fn(ETree)29 b Fk(:)41 b Fj(DRAFT)30 b Fk(July)g(1,)h(2024)p\n+2720 100 V 111 399 a Fo(6.)46 b Fn(testExpand)f(msglvl)h(msgFile)g\n (inETreeFile)f(inEqmapFile)g(outETreeFile)227 553 y Fo(This)39\n b(driv)m(er)h(program)g(is)g(used)f(to)i(translate)g(an)f\n Fn(ETree)e Fo(ob)5 b(ject)41 b(for)f(a)g(compressed)g(graph)f(in)m(to)i\n (an)227 666 y Fn(ETree)29 b Fo(ob)5 b(ject)31 b(for)g(the)f(unit)g(w)m\n (eigh)m(t)i(graph.)337 888 y Fl(\\210)45 b Fo(The)28 b\n Fn(msglvl)f Fo(parameter)i(determines)g(the)g(amoun)m(t)g(of)f(output)h\n (|)f(taking)i Fn(msglvl)46 b(>=)h(3)28 b Fo(means)427\n@@ -7257,28 +7244,27 @@\n h(t)m(w)m(o)g(plots.)337 5058 y Fl(\\210)45 b Fo(Eac)m(h)31\n b(no)s(de)f(will)h(ha)m(v)m(e)g(a)g(circle)h(with)e(radius)f\n Fn(radius)p Fo(.)337 5208 y Fl(\\210)45 b Fo(The)34 b\n Fn(firstEPSfile)e Fo(and)i Fn(secondEPSfile)d Fo(parameters)j(is)h(the)\n g(output)f(EPS)g(\\014le)g(for)h(the)g(t)m(w)m(o)427 5321\n y(plots.)p eop end\n %%Page: 23 23\n-TeXDict begin 23 22 bop 91 100 1123 4 v 1305 100 a Fn(ETree)29\n-b Fk(:)40 b Fj(DRAFT)121 b Fk(August)30 b(3,)h(2025)p\n-2684 100 V 1123 w Fo(23)0 453 y(Figure)26 b(1.1:)40 b\n-Fa(GRD7x7)p Fo(:)f(W)-8 b(orking)26 b(storage)i(for)d(the)h(forw)m(ard)\n-f(sparse)g(factorization)k(of)d(the)g(nested)f(dissection)0\n-566 y(ordering.)40 b(On)28 b(the)h(left)h(is)e(the)h(storage)i\n-(required)d(to)i(factor)2159 540 y Fb(b)2137 566 y Fg(J)38\n-b Fo(and)29 b(its)g(up)s(date)f(matrix.)40 b(On)28 b(the)h(righ)m(t)h\n-(is)f(the)0 679 y(storage)j(required)d(to)j(factor)f\n-Fg(J)39 b Fo(and)30 b(all)h(of)g(its)g(ancestors.)41\n-b(Both)31 b(plots)g(ha)m(v)m(e)h(the)e(same)h(scale.)p\n-18 808 1918 4 v 18 2658 4 1850 v 76 2633 a @beginspecial\n-50 @llx 50 @lly 500 @urx 500 @ury 2160 @rwi 2160 @rhi\n-@setspecial\n+TeXDict begin 23 22 bop 91 100 1181 4 v 1362 100 a Fn(ETree)29\n+b Fk(:)41 b Fj(DRAFT)121 b Fk(July)30 b(1,)h(2024)p 2627\n+100 V 1181 w Fo(23)0 453 y(Figure)26 b(1.1:)40 b Fa(GRD7x7)p\n+Fo(:)f(W)-8 b(orking)26 b(storage)i(for)d(the)h(forw)m(ard)f(sparse)g\n+(factorization)k(of)d(the)g(nested)f(dissection)0 566\n+y(ordering.)40 b(On)28 b(the)h(left)h(is)e(the)h(storage)i(required)d\n+(to)i(factor)2159 540 y Fb(b)2137 566 y Fg(J)38 b Fo(and)29\n+b(its)g(up)s(date)f(matrix.)40 b(On)28 b(the)h(righ)m(t)h(is)f(the)0\n+679 y(storage)j(required)d(to)j(factor)f Fg(J)39 b Fo(and)30\n+b(all)h(of)g(its)g(ancestors.)41 b(Both)31 b(plots)g(ha)m(v)m(e)h(the)e\n+(same)h(scale.)p 18 808 1918 4 v 18 2658 4 1850 v 76\n+2633 a @beginspecial 50 @llx 50 @lly 500 @urx 500 @ury\n+2160 @rwi 2160 @rhi @setspecial\n %%BeginDocument: ../../ETree/doc/FS1.eps\n %!PS-Adobe-2.0 EPSF-1.2\n %%BoundingBox: 50 50 500 500\n /CSH {\n %\n % center show a string\n %\n@@ -7666,17 +7652,17 @@\n 5053 y(information)d(\\(see)g(the)g Fn(ETree)p 1305 5053\n V 33 w(writeStats\\(\\))c Fo(metho)s(d\\).)337 5294 y Fl(\\210)45\n b Fo(The)28 b Fn(msglvl)f Fo(parameter)i(determines)g(the)g(amoun)m(t)g\n (of)f(output)h(|)f(taking)i Fn(msglvl)46 b(>=)h(3)28\n b Fo(means)427 5407 y(the)j Fn(ETree)e Fo(ob)5 b(ject)31\n b(is)f(written)h(to)g(the)g(message)g(\\014le.)p eop end\n %%Page: 24 24\n-TeXDict begin 24 23 bop 0 100 a Fo(24)p 182 100 1123\n-4 v 1306 w Fn(ETree)28 b Fk(:)41 b Fj(DRAFT)30 b Fk(August)g(3,)h(2025)\n-p 2777 100 V 337 399 a Fl(\\210)45 b Fo(The)33 b Fn(msgFile)e\n+TeXDict begin 24 23 bop 0 100 a Fo(24)p 182 100 1181\n+4 v 1363 w Fn(ETree)29 b Fk(:)41 b Fj(DRAFT)30 b Fk(July)g(1,)h(2024)p\n+2720 100 V 337 399 a Fl(\\210)45 b Fo(The)33 b Fn(msgFile)e\n Fo(parameter)j(determines)f(the)h(message)g(\\014le)f(|)h(if)f\n Fn(msgFile)e Fo(is)i Fn(stdout)p Fo(,)g(then)g(the)427\n 511 y(message)27 b(\\014le)f(is)g Fj(stdout)p Fo(,)i(otherwise)e(a)h\n (\\014le)f(is)f(op)s(ened)g(with)h Fj(app)-5 b(end)28\n b Fo(status)e(to)g(receiv)m(e)i(an)m(y)e(output)427 624\n y(data.)337 770 y Fl(\\210)45 b Fo(The)37 b Fn(inFile)f\n Fo(parameter)i(is)g(the)g(input)e(\\014le)i(for)f(the)h\n@@ -7757,17 +7743,17 @@\n Fo(ob)5 b(ject.)40 b(It)25 b(partitions)h(the)227 5294\n y(v)m(ertices)37 b(in)m(to)f(domains)f(and)g(a)g(m)m(ultisector,)j\n (where)d(eac)m(h)h(domain)f(is)h(a)f(subtree)g(of)g(the)h(elimination)\n 227 5407 y(tree)i(and)e(the)h(m)m(ultisector)h(is)f(the)g(rest)g(of)g\n (the)g(v)m(ertices.)61 b(The)37 b(c)m(hoice)h(of)f(the)g(subtrees)f\n (dep)s(ends)f(on)p eop end\n %%Page: 25 25\n-TeXDict begin 25 24 bop 91 100 1123 4 v 1305 100 a Fn(ETree)29\n-b Fk(:)40 b Fj(DRAFT)121 b Fk(August)30 b(3,)h(2025)p\n-2684 100 V 1123 w Fo(25)227 399 y(the)h Fn(flag)e Fo(and)h\n+TeXDict begin 25 24 bop 91 100 1181 4 v 1362 100 a Fn(ETree)29\n+b Fk(:)41 b Fj(DRAFT)121 b Fk(July)30 b(1,)h(2024)p 2627\n+100 V 1181 w Fo(25)227 399 y(the)h Fn(flag)e Fo(and)h\n Fn(cutoff)f Fo(parameters)i(|)f(it)h(can)g(b)s(e)f(based)g(on)h(depth)f\n (of)g(a)h(subtree)f(or)h(the)g(n)m(um)m(b)s(er)e(of)227\n 511 y(v)m(ertices,)36 b(factor)e(en)m(tries)g(or)f(factor)h(op)s\n (erations)f(asso)s(ciated)i(with)e(the)g(subtree.)48\n b(The)33 b(comp)s(onen)m(t)g(ids)227 624 y Fn(IV)27 b\n Fo(ob)5 b(ject)28 b(is)g(optionally)h(written)e(to)h(a)g(\\014le.)40\n b(Here)28 b(is)f(some)h(sample)g(output)f(for)g Fn(BCSSTK30)e\n@@ -7831,17 +7817,17 @@\n (\\014le.)40 b(Otherwise,)30 b(the)f Fn(IV)p 2832 5181\n V 34 w(writeToFile\\(\\))c Fo(metho)s(d)k(is)427 5294 y(called)35\n b(to)f(write)g(the)f(ob)5 b(ject)35 b(to)f(a)g(formatted)g(\\014le)f\n (\\(if)h Fn(outIVFile)d Fo(is)i(of)h(the)g(form)f Fn(*.ivf)p\n Fo(\\),)g(or)h(a)427 5407 y(binary)c(\\014le)g(\\(if)h Fn(outIVFile)d\n Fo(is)i(of)h(the)f(form)g Fn(*.ivb)p Fo(\\).)p eop end\n %%Page: 26 26\n-TeXDict begin 26 25 bop 0 100 a Fo(26)p 182 100 1123\n-4 v 1306 w Fn(ETree)28 b Fk(:)41 b Fj(DRAFT)30 b Fk(August)g(3,)h(2025)\n-p 2777 100 V 337 399 a Fl(\\210)45 b Fo(The)30 b Fn(flag)f\n+TeXDict begin 26 25 bop 0 100 a Fo(26)p 182 100 1181\n+4 v 1363 w Fn(ETree)29 b Fk(:)41 b Fj(DRAFT)30 b Fk(July)g(1,)h(2024)p\n+2720 100 V 337 399 a Fl(\\210)45 b Fo(The)30 b Fn(flag)f\n Fo(parameter)i(sp)s(eci\\014es)f(the)h(t)m(yp)s(e)f(of)h(m)m\n (ultisector.)500 548 y Fe({)45 b Fn(flag)i(==)g(1)30\n b Fo(|)h(the)g(m)m(ultisector)h(is)f(based)f(on)g(the)h(depth)f(of)h\n (the)g(fron)m(t,)g(i.e.,)h(if)e(the)h(fron)m(t)g(is)597\n 661 y(more)g(than)f Fn(depth)f Fo(steps)h(remo)m(v)m(ed)i(from)d(the)i\n (ro)s(ot,)g(it)g(forms)f(the)g(ro)s(ot)h(of)f(a)h(domain.)500\n 792 y Fe({)45 b Fn(flag)i(==)g(2)32 b Fo(|)h(the)g(m)m(ultisector)h(is)\n@@ -7911,18 +7897,18 @@\n (the)h(input)e(\\014le)i(for)f(the)g Fn(Graph)f Fo(ob)5\n b(ject.)39 b(It)24 b(m)m(ust)f(b)s(e)f(of)i(the)f(form)427\n 5294 y Fn(*.graphf)18 b Fo(or)j Fn(*.graphb)p Fo(.)35\n b(The)19 b Fn(Graph)g Fo(ob)5 b(ject)21 b(is)g(read)f(from)g(the)g\n (\\014le)h(via)f(the)h Fn(Graph)p 3368 5294 V 33 w(readFromFile\\(\\))427\n 5407 y Fo(metho)s(d.)p eop end\n %%Page: 27 27\n-TeXDict begin 27 26 bop 91 100 1123 4 v 1305 100 a Fn(ETree)29\n-b Fk(:)40 b Fj(DRAFT)121 b Fk(August)30 b(3,)h(2025)p\n-2684 100 V 1123 w Fo(27)337 399 y Fl(\\210)45 b Fo(The)30\n-b Fn(outEPSfile)e Fo(parameter)j(is)f(the)h(name)f(of)h(the)f(EPS)g\n+TeXDict begin 27 26 bop 91 100 1181 4 v 1362 100 a Fn(ETree)29\n+b Fk(:)41 b Fj(DRAFT)121 b Fk(July)30 b(1,)h(2024)p 2627\n+100 V 1181 w Fo(27)337 399 y Fl(\\210)45 b Fo(The)30 b\n+Fn(outEPSfile)e Fo(parameter)j(is)f(the)h(name)f(of)h(the)f(EPS)g\n (\\014le)g(to)h(hold)f(the)h(tree.)337 542 y Fl(\\210)45\n b Fo(The)34 b Fn(metricType)e Fo(parameter)j(de\\014nes)f(the)h(t)m(yp)s\n (e)g(of)g(metric)g(to)g(b)s(e)f(illustrated.)54 b(See)35\n b(ab)s(o)m(v)m(e)h(for)427 655 y(v)-5 b(alues.)337 799\n y Fl(\\210)45 b Fo(F)-8 b(or)31 b(information)g(ab)s(out)f(the)h\n Fn(heightflag)c Fo(and)j Fn(coordflag)e Fo(parameters,)j(see)g(Section)\n g Fe(??)q Fo(.)337 943 y Fl(\\210)45 b Fo(If)30 b Fn(labelflag)45\n@@ -9724,17 +9710,17 @@\n b Fj(Mer)-5 b(ging)31 b Fo(the)h(fron)m(t)g(tree)h(means)f(com)m\n (bining)g(fron)m(ts)g(together)h(that)227 5407 y(do)26\n b(not)g(in)m(tro)s(duce)f(more)h(than)f Fn(maxzeros)e\n Fo(zero)k(en)m(tries)f(in)f(a)h(fron)m(t.)40 b(\\(See)26\n b([)p Fe(?)p Fo(])g(and)f([)p Fe(?)q Fo(])h(for)f(a)h(description)p\n eop end\n %%Page: 28 28\n-TeXDict begin 28 27 bop 0 100 a Fo(28)p 182 100 1123\n-4 v 1306 w Fn(ETree)28 b Fk(:)41 b Fj(DRAFT)30 b Fk(August)g(3,)h(2025)\n-p 2777 100 V 0 731 a Fo(Figure)c(1.2:)39 b Fa(GRD7x7x7)p\n+TeXDict begin 28 27 bop 0 100 a Fo(28)p 182 100 1181\n+4 v 1363 w Fn(ETree)29 b Fk(:)41 b Fj(DRAFT)30 b Fk(July)g(1,)h(2024)p\n+2720 100 V 0 731 a Fo(Figure)c(1.2:)39 b Fa(GRD7x7x7)p\n Fo(:)h(F)-8 b(our)26 b(tree)h(plots)g(for)f(a)g(7)12\n b Ff(\\002)g Fo(7)g Ff(\\002)g Fo(7)27 b(grid)f(matrix)g(ordered)g(using)\n g(nested)g(dissection.)0 844 y(The)j(top)h(left)h(tree)g(measure)e(n)m\n (um)m(b)s(er)g(of)h(original)h(matrix)f(en)m(tries)h(in)f(a)g(fron)m\n (t.)40 b(The)30 b(top)g(righ)m(t)g(tree)h(measure)0 957\n y(n)m(um)m(b)s(er)20 b(of)i(factor)h(matrix)f(en)m(tries)h(in)e(a)h\n (fron)m(t.)38 b(The)22 b(b)s(ottom)g(left)g(tree)h(measure)e(n)m(um)m\n@@ -12005,17 +11991,17 @@\n 60 60 480 480 rectstroke\n \n showpage\n \n %%EndDocument\n @endspecial 3879 5026 V 1965 5029 1918 4 v eop end\n %%Page: 29 29\n-TeXDict begin 29 28 bop 91 100 1123 4 v 1305 100 a Fn(ETree)29\n-b Fk(:)40 b Fj(DRAFT)121 b Fk(August)30 b(3,)h(2025)p\n-2684 100 V 1123 w Fo(29)227 399 y(of)j(this)g(sup)s(erno)s(de)d\n+TeXDict begin 29 28 bop 91 100 1181 4 v 1362 100 a Fn(ETree)29\n+b Fk(:)41 b Fj(DRAFT)121 b Fk(July)30 b(1,)h(2024)p 2627\n+100 V 1181 w Fo(29)227 399 y(of)j(this)g(sup)s(erno)s(de)d\n (amalgamation)36 b(or)e(relaxation.\\))53 b Fj(Splitting)34\n b Fo(a)g(fron)m(t)g(means)f(breaking)h(a)g(fron)m(t)g(up)227\n 511 y(in)m(to)39 b(a)f(c)m(hain)g(of)g(smaller)g(fron)m(ts;)j(this)d\n (allo)m(ws)h(more)e(pro)s(cessors)g(to)i(w)m(ork)f(on)f(the)h(original)\n h(fron)m(t)e(in)227 624 y(a)g(straigh)m(tforw)m(ard)f(manner.)57\n b(The)35 b(new)h(fron)m(t)g(tree)g(is)g(optionally)i(written)e(to)g(a)h\n (\\014le.)57 b(Here)37 b(is)f(some)227 737 y(output)30\n@@ -12176,19 +12162,19 @@\n Fo(,)d(8)1992 4950 y Fn(ETree)p 2238 4950 V 33 w(splitFronts\\(\\))p\n Fo(,)i(14)1992 5064 y Fn(ETree)p 2238 5064 V 33 w(subtreeSubsetMap\\(\\))\n p Fo(,)e(15)1992 5178 y Fn(ETree)p 2238 5178 V 33 w(transform\\(\\))p\n Fo(,)i(15)1992 5293 y Fn(ETree)p 2238 5293 V 33 w(transform2\\(\\))p\n Fo(,)g(15)1992 5407 y Fn(ETree)p 2238 5407 V 33 w(tree\\(\\))p\n Fo(,)h(3)1905 5656 y(30)p eop end\n %%Page: 31 31\n-TeXDict begin 31 30 bop 91 100 1123 4 v 1305 100 a Fn(ETree)29\n-b Fk(:)40 b Fj(DRAFT)121 b Fk(August)30 b(3,)h(2025)p\n-2684 100 V 1123 w Fo(31)0 399 y Fn(ETree)p 246 399 29\n-4 v 33 w(vtxToFront\\(\\))p Fo(,)c(4)0 511 y Fn(ETree)p\n-246 511 V 33 w(vtxToFrontIV\\(\\))p Fo(,)g(4)0 624 y Fn(ETree)p\n+TeXDict begin 31 30 bop 91 100 1181 4 v 1362 100 a Fn(ETree)29\n+b Fk(:)41 b Fj(DRAFT)121 b Fk(July)30 b(1,)h(2024)p 2627\n+100 V 1181 w Fo(31)0 399 y Fn(ETree)p 246 399 29 4 v\n+33 w(vtxToFront\\(\\))p Fo(,)c(4)0 511 y Fn(ETree)p 246\n+511 V 33 w(vtxToFrontIV\\(\\))p Fo(,)g(4)0 624 y Fn(ETree)p\n 246 624 V 33 w(wrapMap\\(\\))p Fo(,)h(15)0 737 y Fn(ETree)p\n 246 737 V 33 w(writeForHumanEye\\(\\))p Fo(,)e(18)0 850\n y Fn(ETree)p 246 850 V 33 w(writeStats\\(\\))p Fo(,)h(18)0\n 963 y Fn(ETree)p 246 963 V 33 w(writeToBinaryFile\\(\\))p\n Fo(,)e(18)0 1076 y Fn(ETree)p 246 1076 V 33 w(writeToFile\\(\\))p\n Fo(,)i(17)0 1189 y Fn(ETree)p 246 1189 V 33 w(writeToFormattedFile\\(\\))\n p Fo(,)e(17)p eop end\n", "details": [{"source1": "ps2ascii {}", "source2": "ps2ascii {}", "unified_diff": "@@ -21,15 +21,15 @@\n \u2022 int nfront : number of fronts in the tree\r\n \u2022 int nvtx : number of vertices in the tree\r\n \u2022 Tree *tree : pointer to a Tree structure\r\n \u2022 IV *nodwghtsIV : pointer to an IV object to hold front weights, size nfront\r\n \u2022 IV *bndwghtsIV : pointer to an IV object to hold the weights of the fronts\u2019 boundaries, size\r\n nfront\r\n 1\r\n- 2 ETree : DRAFT August 3, 2025\r\n+ 2 ETree : DRAFT July 1, 2024\r\n \u2022 IV *vtxToFrontIV : pointer to an IV object to hold the map from vertices to fronts, size\r\n nfront\r\n A correctly initialized and nontrivial ETree object will have positive nfront and nvtx values, a\r\n valid tree \ufb01eld and non-NULL nodwghtsIV, bndwghtsIV and vtxToFrontIV pointers.\r\n 1.2 Prototypes and descriptions of ETree methods\r\n This section contains brief descriptions including prototypes of all methods that belong to the\r\n ETree object.\r\n@@ -53,15 +53,15 @@\n This method releases any storage by a call to ETree clearData() then free\u2019s the storage for\r\n the structure with a call to free().\r\n Error checking: If etree is NULL, an error message is printed and the program exits.\r\n 1.2.2 Instance methods\r\n 1. int ETree_nfront ( ETree *etree ) ;\r\n This method returns the number of fronts.\r\n Error checking: If etree is NULL, an error message is printed and the program exits.\r\n- ETree : DRAFT August 3, 2025 3\r\n+ ETree : DRAFT July 1, 2024 3\r\n 2. int ETree_nvtx ( ETree *etree ) ;\r\n This method returns the number of vertices.\r\n Error checking: If etree is NULL, an error message is printed and the program exits.\r\n 3. Tree * ETree_tree ( ETree *etree ) ;\r\n This method returns a pointer to the Tree object.\r\n Error checking: If etree is NULL, an error message is printed and the program exits.\r\n 4. int ETree_root ( ETree *etree ) ;\r\n@@ -86,15 +86,15 @@\n 9. int * ETree_nodwghts ( ETree *etree ) ;\r\n This method returns a pointer to the nodwghts vector.\r\n Error checking: If etree or etree->nodwghtsIV is NULL, an error message is printed and the\r\n program exits.\r\n 10. IV * ETree_bndwghtsIV ( ETree *etree ) ;\r\n This method returns a pointer to the bndwghtsIV object.\r\n Error checking: If etree is NULL, an error message is printed and the program exits.\r\n- 4 ETree : DRAFT August 3, 2025\r\n+ 4 ETree : DRAFT July 1, 2024\r\n 11. int * ETree_bndwghts ( ETree *etree ) ;\r\n This method returns a pointer to the bndwghts vector.\r\n Error checking: If etree or etree->bndwghtsIV is NULL, an error message is printed and the\r\n program exits.\r\n 12. IV * ETree_vtxToFrontIV ( ETree *etree ) ;\r\n This method returns a pointer to the vtxToFrontIV object.\r\n Error checking: If etree is NULL, an error message is printed and the program exits.\r\n@@ -121,15 +121,15 @@\n Error checking: If etree is NULL, or if symflag is invalid, an error message is printed and the\r\n program exits.\r\n 1.2.3 Initializer methods\r\n There are four initializer methods.\r\n 1. void ETree_init1 ( ETree *etree, int nfront, int nvtx ) ;\r\n This method initializes an ETree object given the number of fronts and number of vertices.\r\n Anyprevious data is cleared with a call to ETree clearData(), The Tree object is initialized\r\n- ETree : DRAFT August 3, 2025 5\r\n+ ETree : DRAFT July 1, 2024 5\r\n with a call to Tree init1(). The nodwghtsIV, bndwghtsIV and vtxToFrontIV objects are\r\n initialized with calls to IV init(). The entries in nodwghtsIV and bndwghtsIV are set to 0,\r\n while the entries in vtxToFrontIV are set to -1.\r\n Error checking: If etree is NULL, or if nfront is negative, or if nvtx < nfront, an error\r\n message is printed and the program exits.\r\n 2. void ETree_initFromGraph ( ETree *etree, Graph *g ) ;\r\n This method generates an elimination tree from a graph. The nodwghtsIV vector object is\r\n@@ -160,15 +160,15 @@\n permutes to vertex-to-front map, and returns an IV object that contains the old-to-new\r\n permutation.\r\n Error checking: If etree is NULL or inETreeFileName is \u201cnone\u201d, an error message is printed\r\n and the program exits.\r\n 6. int ETree_initFromSubtree ( ETree *subtree, IV *nodeidsIV, ETree *etree, IV *vtxIV ) ;\r\n This method initializes subtree from tree using the nodes of etree that are found in\r\n nodeidsIV. The map from nodes in subtree to nodes in etree is returned in vtxIV.\r\n- 6 ETree : DRAFT August 3, 2025\r\n+ 6 ETree : DRAFT July 1, 2024\r\n Return code: 1 for a normal return, -1 if subtree is NULL, -2 if nodeidsIV is NULL, -3 if\r\n etree is NULL, -4 if nodeidsIV is invalid, -5 if vtxIV is NULL.\r\n 1.2.4 Utility methods\r\n Theutility methods return the number of bytes taken by the object, or the number of factor indices,\r\n entries or operations required by the object.\r\n 1. int ETree_sizeOf ( ETree *etree ) ;\r\n This method returns the number of bytes taken by this object (which includes the bytes taken\r\n@@ -195,15 +195,15 @@\n Error checking: If etree or tree is NULL, or if nfront < 1, or if nvtx < 1, or if type or\r\n symflag is invalid, an error message is printed and the program exits.\r\n 5. double ETree_nFactorEntriesInFront ( ETree *etree, int symflag, int J ) ;\r\n ThismethodreturnsthenumberofentriesinfrontJforanLU factorization. Thesymflagpa-\r\n rameter can be one of SPOOLES SYMMETRIC, SPOOLES HERMITIAN or SPOOLES NONSYMMETRIC.\r\n Error checking: If etree or tree is NULL, or if nfront < 1, or if symflag is invalid, or if\r\n J < 0, or if J \u2265 nfront, an error message is printed and the program exits.\r\n- ETree : DRAFT August 3, 2025 7\r\n+ ETree : DRAFT July 1, 2024 7\r\n 6. double ETree_nInternalOpsInFront ( ETree *etree, int type, int symflag, int J ) ;\r\n ThismethodreturnsthenumberofinternaloperationsperformedbyfrontJonits(1,1), (2,1),\r\n and (1,2) blocks during a factorization. The type parameter can be one of SPOOLES REAL\r\n or SPOOLES COMPLEX. symflag must be one of SPOOLES SYMMETRIC, SPOOLES HERMITIAN or\r\n SPOOLES NONSYMMETRIC.\r\n Error checking: If etree or tree is NULL, or if nfront < 1, or if type or symflag is invalid,\r\n or if J < 0, or if J \u2265 nfront, an error message is printed and the program exits.\r\n@@ -233,15 +233,15 @@\n Error checking: If etree is NULL, or if type or symflag is invalid, an error message is printed\r\n and the program exits.\r\n 11. ETree * ETree_expand ( ETree *etree, IV *eqmapIV ) ;\r\n This method creates and returns an ETree object for an uncompressed graph. The map from\r\n compressed vertices to uncompressed vertices is found in the eqmapIV object.\r\n Error checking: If etree or eqmapIV is NULL, an error message is printed and the program\r\n exits.\r\n- 8 ETree : DRAFT August 3, 2025\r\n+ 8 ETree : DRAFT July 1, 2024\r\n 12. ETree * ETree_spliceTwoEtrees ( ETree *etree0, Graph *graph, IV *mapIV, ETree *etree1 ) ;\r\n This method creates and returns an ETree object that is formed by splicing together two\r\n front trees, etree0 for the vertices the eliminated domains, etree1 for the vertices the Schur\r\n complement. The mapIV object maps vertices to domains or the Schur complement \u2014 if the\r\n entry is 0, the vertex is in the Schur complement, otherwise it is in a domain.\r\n Error checking: If etree0, graph, mapIV or etree1 is NULL, an error message is printed and\r\n the program exits.\r\n@@ -266,15 +266,15 @@\n 3. DV * ETree_nopsMetric ( ETree *etree, int type, int symflag ) ;\r\n AnDVobjectofsize nfrontis created and returned. Each entry of the vector is \ufb01lled with the\r\n number of factor operations associated with the corresponding front. The type parameter\r\n can be one of SPOOLES REAL or SPOOLES COMPLEX. The symflag parameter can be one of\r\n SPOOLES SYMMETRIC, SPOOLES HERMITIAN or SPOOLES NONSYMMETRIC.\r\n Error checking: If etree is NULL, or if nfront < 1, or if nvtx < 1, or if type or symflag is\r\n invalid, an error message is printed and the program exits.\r\n- ETree : DRAFT August 3, 2025 9\r\n+ ETree : DRAFT July 1, 2024 9\r\n 1.2.6 Compression methods\r\n Frequently an ETree object will need to be compressed in some manner. Elimination trees usually\r\n have long chains of vertices at the higher levels, where each chain of vertices corresponds to a\r\n supernode. Liu\u2019s generalized row envelope methods partition the vertices by longest chains [?]. In\r\n both cases, we can construct a map from each node to a set of nodes to de\ufb01ne a smaller, more\r\n compact ETree object. Given such a map, we construct the smaller etree.\r\n Afundamental chain is a set of vertices v ,...,v such that\r\n@@ -308,15 +308,15 @@\n Error checking: If etree or tree is NULL, or if nfront < 1, or if nvtx < 1, an error message\r\n is printed and the program exits.\r\n 2. IV * ETree_fundSupernodeMap ( ETree *etree ) ;\r\n An IV object of size nfront is created, \ufb01lled with the map from vertices to fundamental\r\n supernodes, then returned.\r\n Error checking: If etree or tree is NULL, or if nfront < 1, or if nvtx < 1, an error message\r\n is printed and the program exits.\r\n- 10 ETree : DRAFT August 3, 2025\r\n+ 10 ETree : DRAFT July 1, 2024\r\n 3. ETree * ETree_compress ( ETree *etree, IV *frontMapIV ) ;\r\n Using frontMapIV, a new ETree object is created and returned. If frontMapIV does not\r\n de\ufb01ne each inverse map of a new node to be connected set of nodes in the old ETree object,\r\n the new ETree object will not be well de\ufb01ned.\r\n Error checking: If etree or frontMapIV is NULL, or if nfront < 1, or if nvtx < 1, an error\r\n message is printed and the program exits.\r\n 1.2.7 Justi\ufb01cation methods\r\n@@ -342,15 +342,15 @@\n 1. IV * ETree_newToOldFrontPerm ( ETree *etree ) ;\r\n IV * ETree_oldToNewFrontPerm ( ETree *etree ) ;\r\n An IV object is created with size nfront. A post-order traversal of the Tree object \ufb01lls\r\n the new-to-old permutation. A reversal of the new-to-old permutation gives the old-to-new\r\n permutation. Both methods are simply wrappers around the respective Tree methods.\r\n Error checking: If etree is NULL, or if nfront < 1, or if nvtx < 1, an error message is printed\r\n and the program exits.\r\n- ETree : DRAFT August 3, 2025 11\r\n+ ETree : DRAFT July 1, 2024 11\r\n 2. IV * ETree_newToOldVtxPerm ( ETree *etree ) ;\r\n IV * ETree_oldToNewVtxPerm ( ETree *etree ) ;\r\n AnIVobject is created with size nvtx. First we \ufb01nd a new-to-old permutation of the fronts.\r\n Then we search over the fronts in their new order to \ufb01ll the vertex new-to-old permutation\r\n vector. The old-to-new vertex permutation vector is found by \ufb01rst \ufb01nding the new-to-old\r\n vertex permutation vector, then inverting it.\r\n Error checking: If etree is NULL, or if nfront < 1, or if nvtx < 1, an error message is printed\r\n@@ -380,15 +380,15 @@\n of the subtree is more than cutoff times the vertex weight, the vertex is in the multisector.\r\n Error checking: If etree is NULL, or if nfront < 1, or if nvtx < 1, an error message is printed\r\n and the program exits.\r\n 3. IV * ETree_msByNentCutoff ( ETree *etree, double cutoff, int symflag ) ;\r\n An IV object is created to hold the multisector nodes and returned. Multisector nodes\r\n have their component id zero, domain nodes have their component id one. Inclusion in the\r\n multisector is based on the number of factor entries in the subtree that a vertex belongs, or\r\n- 12 ETree : DRAFT August 3, 2025\r\n+ 12 ETree : DRAFT July 1, 2024\r\n strictly speaking, the number of factor entries in the subtree of the front to which a vertex\r\n belongs. If weight of the subtree is more than cutoff times the number of factor entries,\r\n the vertex is in the multisector. The symflag parameter can be one of SPOOLES SYMMETRIC,\r\n SPOOLES HERMITIAN or SPOOLES NONSYMMETRIC.\r\n Error checking: If etree is NULL, or if nfront < 1, or if nvtx < 1, or if symflag is invalid,\r\n an error message is printed and the program exits.\r\n 4. IV * ETree_msByNopsCutoff ( ETree *etree, double cutoff, int type, int symflag ) ;\r\n@@ -423,15 +423,15 @@\n \u2202J,J \u2202J,J J,J\r\n \u03b1 = 0, we minimize active storage, when \u03b1 = 1, we minimize solve operations. On return,\r\n *ptotalgain is \ufb01lled with the total gain. The return value is a pointer to compidsIV, where\r\n compids[J] = 0 means that J is in the Schur complement, and compids[J] != 0 means\r\n that J is in domain compids[J].\r\n Error checking: If etree, graph or symbfacIVL is NULL, an error message is printed and the\r\n program exits.\r\n- ETree : DRAFT August 3, 2025 13\r\n+ ETree : DRAFT July 1, 2024 13\r\n 1.2.10 Transformation methods\r\n Often the elimination tree or front tree that we obtain from an ordering of the graph is not as\r\n appropriate for a factorization as we would like. There are two important cases.\r\n \u2022 Near the leaves of the tree the fronts are typically small in size. There is an overhead\r\n associated with each front, and though the overhead varies with regard to the factorization\r\n algorithm, it can be bene\ufb01cial to group small subtrees together into one front. The expense is\r\n added storage for the logically zero entries and the factor operations on them. In this library,\r\n@@ -464,15 +464,15 @@\n restriction.\r\n \u2022 The method ETree mergeFrontsAll() tries to merge a front with all of its children, if the\r\n resulting front does not contain too many zero entries. This has the e\ufb00ect of merging small\r\n bushy subtrees, but will not merge a top level separator with one of its children.\r\n For a serial application, ETree mergeFrontsAny()is suitable. For a parallel application, we recom-\r\n mend \ufb01rst using ETree mergeFrontsOne() followed by ETree mergeFrontsAll(). See the driver\r\n programs testTransform and mkNDETree for examples of how to call the methods.\r\n- 14 ETree : DRAFT August 3, 2025\r\n+ 14 ETree : DRAFT July 1, 2024\r\n 1. ETree * ETree_mergeFrontsOne ( ETree *etree, int maxzeros, IV *nzerosIV ) ;\r\n This method only tries to merge a front with its only child. It returns an ETree object where\r\n one or more subtrees that contain multiple fronts have been merged into single fronts. The\r\n parameter that governs the merging process is maxzeros, the number of zero entries that can\r\n be introduced by merging a child and parent front together. On input, nzerosIV contains\r\n the number of zeros presently in each front. It is modi\ufb01ed on output to correspond with the\r\n new front tree. This method only tries to merge a front with its only child.\r\n@@ -505,15 +505,15 @@\n is NULL, then the vertices have unit weight. The way the vertices in a front to be split are\r\n assigned to smaller fronts is random; the seed parameter is a seed to a random number\r\n generator that permutes the vertices in a front.\r\n Error checking: If etree is NULL, or if nfront < 1, or if nvtx < 1, or if maxfrontsize \u2264 0,\r\n an error message is printed and the program exits.\r\n 5. ETree * ETree_transform ( ETree *etree, int vwghts[], int maxzeros,\r\n int maxfrontsize, int seed ) ;\r\n- ETree : DRAFT August 3, 2025 15\r\n+ ETree : DRAFT July 1, 2024 15\r\n ETree * ETree_transform2 ( ETree *etree, int vwghts[], int maxzeros,\r\n int maxfrontsize, int seed ) ;\r\n These methods returns an ETree object where one or more subtrees that contain multiple\r\n fronts have been merged into single fronts and where one or more large fronts have been split\r\n into smaller fronts. The two methods di\ufb00er slightly. ETree transform2() is better suited\r\n for parallel computing because it tends to preserve the tree branching properties. (A front is\r\n merged with either an only child or all children. ETree transform() can merge a front with\r\n@@ -544,15 +544,15 @@\n where the fronts are visited in a post-order traversal of the tree and a front is assigned\r\n to a thread or processor with the least number of accumulated operations thus far.\r\n \u2022 The subtree-subset map is the most complex, where subsets of threads or processors are\r\n assigned to subtrees via a pre-order traversal of the tree. (Each root of the tree can be\r\n assigned to all processors.) The tree is then visited in a post-order traversal, and each\r\n front is assigned to an eligible thread or processor with the least number of accumulated\r\n ops so far.\r\n- 16 ETree : DRAFT August 3, 2025\r\n+ 16 ETree : DRAFT July 1, 2024\r\n \u2022 The domain decomposition map is also complex, where domains are mapped to threads,\r\n then the fronts in the schur complement are mapped to threads, both using independent\r\n balanced maps. The method ETree ddMapNew() is more robust than ETree ddMap(),\r\n and is more general in the sense that it takes a multisector vector as input. The msIV\r\n object is a map from the vertices to {0,1}. A vertex mapped to 0 lies in the Schur\r\n complement, a vertex mapped to 1 lies in a domain.\r\n Error checking: If etree or cumopsDV is NULL, or if type or symflag is invalid, an error\r\n@@ -580,15 +580,15 @@\n can be one of SPOOLES SYMMETRIC, SPOOLES HERMITIAN or SPOOLES NONSYMMETRIC.\r\n Error checking: If etree or dvec are NULL, or if symflag is invalid, an error message is printed\r\n and the program exits.\r\n 4. void ETree_forwSolveProfile ( ETree *etree, double dvec[] ) ;\r\n Onreturn, dvec[J] contains the amount of stack storage to solve for J using the multifrontal-\r\n based forward solve.\r\n Error checking: If etree or dvec are NULL, an error message is printed and the program exits.\r\n- ETree : DRAFT August 3, 2025 17\r\n+ ETree : DRAFT July 1, 2024 17\r\n 5. void ETree_backSolveProfile ( ETree *etree, double dvec[] ) ;\r\n Onreturn, dvec[J] contains the amount of stack storage to solve for J using the multifrontal-\r\n based backward solve.\r\n Error checking: If etree or dvec are NULL, an error message is printed and the program exits.\r\n 1.2.13 IO methods\r\n There are the usual eight IO routines. The \ufb01le structure of a tree object is simple: nfront, nvtx,\r\n a Tree object followed by the nodwghtsIV, bndwghtsIV and vtxToFrontIV objects.\r\n@@ -615,15 +615,15 @@\n Error checking: If etree or fn are NULL, or if fn is not of the form *.etreef (for a formatted\r\n \ufb01le) or *.etreeb (for a binary \ufb01le), an error message is printed and the method returns zero.\r\n 5. int ETree_writeToFormattedFile ( ETree *etree, FILE *fp ) ;\r\n This method writes an ETree object to a formatted \ufb01le. Otherwise, the data is written to\r\n the \ufb01le. If there are no errors in writing the data, the value 1 is returned. If an IO error is\r\n encountered from fprintf, zero is returned.\r\n Error checking: If etree or fp are NULL, an error message is printed and zero is returned.\r\n- 18 ETree : DRAFT August 3, 2025\r\n+ 18 ETree : DRAFT July 1, 2024\r\n 6. int ETree_writeToBinaryFile ( ETree *etree, FILE *fp ) ;\r\n This method writes an ETree object to a binary \ufb01le. If there are no errors in writing the\r\n data, the value 1 is returned. If an IO error is encountered from fwrite, zero is returned.\r\n Error checking: If etree or fp are NULL, an error message is printed and zero is returned.\r\n 7. int ETree_writeForHumanEye ( ETree *etree, FILE *fp ) ;\r\n This method writes an ETree object to a \ufb01le in a readable format. Otherwise, the method\r\n ETree writeStats() is called to write out the header and statistics. Then the parent, \ufb01rst\r\n@@ -650,15 +650,15 @@\n \u2022 The inPermFile parameter is the input \ufb01le for the Perm object. It must be of the form\r\n *.permfor*.permb. ThePermobjectisreadfromthe\ufb01leviathePerm readFromFile()\r\n method.\r\n \u2022 The outIVfile parameter is the output \ufb01le for the vertex-to-front map IV object.\r\n If outIVfile is none then the IV object is not written to a \ufb01le. Otherwise, the\r\n IV writeToFile()methodis called to write the object to a formatted \ufb01le (if outIVfile\r\n is of the form *.ivf), or a binary \ufb01le (if outIVfile is of the form *.ivb).\r\n- ETree : DRAFT August 3, 2025 19\r\n+ ETree : DRAFT July 1, 2024 19\r\n \u2022 TheoutETreeFileparameter is the output \ufb01le for the ETree object. If outETreeFileis\r\n nonethentheETreeobjectisnotwrittentoa\ufb01le. Otherwise,theETree writeToFile()\r\n method is called to write the object to a formatted \ufb01le (if outETreeFile is of the form\r\n *.etreef), or a binary \ufb01le (if outETreeFile is of the form *.etreeb).\r\n 2. extractTopSep msglvl msgFile inETreeFile outIVfile\r\n ThisdriverprogramcreatesanIVobjectthatcontainsacompids[]vector, wherecompids[v]\r\n = 0 if vertex v is in the top level separator and -1 otherwise. The IV object is optionally\r\n@@ -689,15 +689,15 @@\n Here is some typical output for a 15\u00d715\u00d715 grid matrix with maxzeros = 64 and maxsize\r\n = 32.\r\n vtx tree : 3375 fronts, 367237 indices, 367237 |L|, 63215265 ops\r\n fs tree : 1023 fronts, 39661 indices, 367237 |L|, 63215265 ops\r\n merge1 : 1023 fronts, 39661 indices, 367237 |L|, 63215265 ops\r\n merge2 : 511 fronts, 29525 indices, 373757 |L|, 63590185 ops\r\n split : 536 fronts, 34484 indices, 373757 |L|, 63590185 ops\r\n- 20 ETree : DRAFT August 3, 2025\r\n+ 20 ETree : DRAFT July 1, 2024\r\n \u2022 The msglvl parameter determines the amount of output \u2014 taking msglvl >= 3 means\r\n the ETree object is written to the message \ufb01le.\r\n \u2022 The msgFile parameter determines the message \ufb01le \u2014 if msgFile is stdout, then the\r\n message \ufb01le is stdout, otherwise a \ufb01le is opened with append status to receive any output\r\n data.\r\n \u2022 n1 is the number of grid points in the \ufb01rst direction.\r\n \u2022 n2 is the number of grid points in the second direction.\r\n@@ -729,15 +729,15 @@\n \u2022 n3 is the number of grid points in the third direction.\r\n \u2022 The maxzeros parameter is an upper bound on the number of logically zero entries that\r\n will be allowed in a new front.\r\n \u2022 The maxsize parameter is an upper bound on the number of vertices in a front \u2014 any\r\n original front that contains more than maxsize vertices will be broken up into smaller\r\n fronts.\r\n \u2022 The nthread parameter is the number of threads.\r\n- ETree : DRAFT August 3, 2025 21\r\n+ ETree : DRAFT July 1, 2024 21\r\n \u2022 The maptype parameter is the type of map.\r\n \u2013 1 \u2014 wrap map\r\n \u2013 2 \u2014 balanced map\r\n \u2013 3 \u2014 subtree-subset map\r\n \u2013 4 \u2014 domain decomposition map\r\n \u2022 The cutoff parameter is used by the domain decomposition map only. Try setting\r\n cutoff = 1/nthread or cutoff = 1/(2*nthread).\r\n@@ -771,15 +771,15 @@\n nonethentheETreeobjectisnotwrittentoa\ufb01le. Otherwise,theETree writeToFile()\r\n method is called to write the object to a formatted \ufb01le (if outETreeFile is of the form\r\n *.etreef), or a binary \ufb01le (if outETreeFile is of the form *.etreeb).\r\n \u2022 The outIVFile parameter is the output \ufb01le for the old-to-new IV object. If outIVFile\r\n is none then the IV object is not written to a \ufb01le. Otherwise, the IV writeToFile()\r\n method is called to write the object to a formatted \ufb01le (if outIVFile is of the form\r\n *.ivf), or a binary \ufb01le (if outIVFile is of the form *.ivb).\r\n- 22 ETree : DRAFT August 3, 2025\r\n+ 22 ETree : DRAFT July 1, 2024\r\n 6. testExpand msglvl msgFile inETreeFile inEqmapFile outETreeFile\r\n This driver program is used to translate an ETree object for a compressed graph into an\r\n ETree object for the unit weight graph.\r\n \u2022 The msglvl parameter determines the amount of output \u2014 taking msglvl >= 3 means\r\n the ETree object is written to the message \ufb01le.\r\n \u2022 The msgFile parameter determines the message \ufb01le \u2014 if msgFile is stdout, then the\r\n message \ufb01le is stdout, otherwise a \ufb01le is opened with append status to receive any output\r\n@@ -812,15 +812,15 @@\n \u2022 TheinETreeFileparameteristheinput\ufb01lefortheETreeobject. It mustbeof theform\r\n *.etreefor*.etreeb. TheETreeobjectisreadfromthe\ufb01leviatheETree readFromFile()\r\n method.\r\n \u2022 If labelflag = 1, the node ids are written on the nodes in the two plots.\r\n \u2022 Each node will have a circle with radius radius.\r\n \u2022 The firstEPSfile and secondEPSfile parameters is the output EPS \ufb01le for the two\r\n plots.\r\n- ETree : DRAFT August 3, 2025 23\r\n+ ETree : DRAFT July 1, 2024 23\r\n Figure 1.1: GRD7x7: Working storage for the forward sparse factorization of the nested dissection\r\n b\r\n ordering. On the left is the storage required to factor J and its update matrix. On the right is the\r\n storage required to factor J and all of its ancestors. Both plots have the same scale.\r\n 29 30 14 22 16 10 4\r\n 23 15 11 3\r\n 26 25 24 19 18 17 12 8 7 5 1 0\r\n@@ -846,15 +846,15 @@\n method.\r\n 9. testIO msglvl msgFile inFile outFile\r\n This driver program reads and writes ETree \ufb01les, useful for converting formatted \ufb01les to\r\n binary \ufb01les and vice versa. One can also read in a ETree \ufb01le and print out just the header\r\n information (see the ETree writeStats() method).\r\n \u2022 The msglvl parameter determines the amount of output \u2014 taking msglvl >= 3 means\r\n the ETree object is written to the message \ufb01le.\r\n- 24 ETree : DRAFT August 3, 2025\r\n+ 24 ETree : DRAFT July 1, 2024\r\n \u2022 The msgFile parameter determines the message \ufb01le \u2014 if msgFile is stdout, then the\r\n message \ufb01le is stdout, otherwise a \ufb01le is opened with append status to receive any output\r\n data.\r\n \u2022 The inFile parameter is the input \ufb01le for the ETree object. It must be of the form\r\n *.etreefor*.etreeb. TheETreeobjectisreadfromthe\ufb01leviatheETree readFromFile()\r\n method.\r\n \u2022 The outFile parameter is the output \ufb01le for the ETree object. If outFile is none then\r\n@@ -886,15 +886,15 @@\n Thecuto\ufb00 de\ufb01nes the multisector, 0 \u2264 cutoff \u2264 1. If front J has a subtree metric based\r\n on forward operations that is greater than or equalt to cutoff times the total number\r\n of operations, then front J belongs to the multisector.\r\n 11. testMS msglvl msgFile inETreeFile outIVfile flag cutoff\r\n This program is used to extract a multisector from a front tree ETree object. It partitions the\r\n vertices into domains and a multisector, where each domain is a subtree of the elimination\r\n tree and the multisector is the rest of the vertices. The choice of the subtrees depends on\r\n- ETree : DRAFT August 3, 2025 25\r\n+ ETree : DRAFT July 1, 2024 25\r\n the flag and cutoff parameters \u2014 it can be based on depth of a subtree or the number of\r\n vertices, factor entries or factor operations associated with the subtree. The component ids\r\n IV object is optionally written to a \ufb01le. Here is some sample output for BCSSTK30 ordered by\r\n nested dissection, where the multisector is de\ufb01ned by subtree vertex weight (flag = 2) with\r\n cutoff = 0.125.\r\n region vertices entries operations metric/(avg domain)\r\n 0 1671 597058 255691396 0.797 2.201 3.967\r\n@@ -927,15 +927,15 @@\n \u2022 TheinETreeFileparameteristheinput\ufb01lefortheETreeobject. It mustbeof theform\r\n *.etreefor*.etreeb. TheETreeobjectisreadfromthe\ufb01leviatheETree readFromFile()\r\n method.\r\n \u2022 The outIVFile parameter is the output \ufb01le for the IV object. If outIVFile is none\r\n then the IV object is not written to a \ufb01le. Otherwise, the IV writeToFile() method is\r\n called to write the object to a formatted \ufb01le (if outIVFile is of the form *.ivf), or a\r\n binary \ufb01le (if outIVFile is of the form *.ivb).\r\n- 26 ETree : DRAFT August 3, 2025\r\n+ 26 ETree : DRAFT July 1, 2024\r\n \u2022 The flag parameter speci\ufb01es the type of multisector.\r\n \u2013 flag == 1 \u2014 the multisector is based on the depth of the front, i.e., if the front is\r\n more than depth steps removed from the root, it forms the root of a domain.\r\n \u2013 flag == 2 \u2014 the multisector is based on the number of vertices in a subtree, i.e.,\r\n if the subtree rooted at a front contains more than cutoff times the total number\r\n of vertices, it is a domain.\r\n \u2013 flag == 3 \u2014 the multisector is based on the number of factor entries in a subtree,\r\n@@ -967,15 +967,15 @@\n data.\r\n \u2022 TheinETreeFileparameteristheinput\ufb01lefortheETreeobject. It mustbeof theform\r\n *.etreefor*.etreeb. TheETreeobjectisreadfromthe\ufb01leviatheETree readFromFile()\r\n method.\r\n \u2022 TheinGraphFileparameteristheinput\ufb01lefortheGraphobject. It mustbeof theform\r\n *.graphfor*.graphb. TheGraphobjectisreadfromthe\ufb01leviatheGraph readFromFile()\r\n method.\r\n- ETree : DRAFT August 3, 2025 27\r\n+ ETree : DRAFT July 1, 2024 27\r\n \u2022 The outEPSfile parameter is the name of the EPS \ufb01le to hold the tree.\r\n \u2022 The metricType parameter de\ufb01nes the type of metric to be illustrated. See above for\r\n values.\r\n \u2022 For information about the heightflag and coordflag parameters, see Section ??.\r\n \u2022 If labelflag = 1, the node ids are written on the nodes in the two plots.\r\n \u2022 The fontscale parameter is the font size when labels are drawn.\r\n 13. testStorage msglvl msgFile inETreeFile inGraphFile\r\n@@ -1007,21 +1007,21 @@\n *.graphfor*.graphb. TheGraphobjectisreadfromthe\ufb01leviatheGraph readFromFile()\r\n method.\r\n 14. testTransform msglvl msgFile inETreeFile inGraphFile\r\n outETreeFile maxzeros maxsize seed\r\n This driver program is used to transform a front tree ETree object into a (possibly) merged\r\n and (possibly) split front tree. Merging the front tree means combining fronts together that\r\n do not introduce more than maxzeros zero entries in a front. (See [?] and [?] for a description\r\n- 28 ETree : DRAFT August 3, 2025\r\n+ 28 ETree : DRAFT July 1, 2024\r\n Figure 1.2: GRD7x7x7: Four tree plots for a 7\u00d77\u00d77 grid matrix ordered using nested dissection.\r\n The top left tree measure number of original matrix entries in a front. The top right tree measure\r\n numberoffactormatrixentries inafront. Thebottomlefttree measurenumberoffactor operations\r\n in a front for a forward looking factorization, e.g., forward sparse. The bottom right tree measure\r\n number of factor operations in a front for a backward looking factorization, e.g., general sparse.\r\n- ETree : DRAFT August 3, 2025 29\r\n+ ETree : DRAFT July 1, 2024 29\r\n of this supernode amalgamation or relaxation.) Splitting a front means breaking a front up\r\n into a chain of smaller fronts; this allows more processors to work on the original front in\r\n a straightforward manner. The new front tree is optionally written to a \ufb01le. Here is some\r\n output for the R3D13824 matrix using maxzeros = 1000 and maxsize = 64.\r\n CPU #fronts #indices #entries #ops\r\n original : 6001 326858 3459359 1981403337\r\n merge one : 0.209 3477 158834 3497139 2000297117\r\n@@ -1094,15 +1094,15 @@\n ETree mergeFrontsAll(), 14 ETree spliceTwoEtrees(), 8\r\n ETree mergeFrontsAny(), 14 ETree splitFronts(), 14\r\n ETree mergeFrontsOne(), 14 ETree subtreeSubsetMap(), 15\r\n ETree MFstackProfile(), 16 ETree transform(), 15\r\n ETree msByDepth(), 11 ETree transform2(), 15\r\n ETree msByNentCutoff(), 11 ETree tree(), 3\r\n 30\r\n- ETree : DRAFT August 3, 2025 31\r\n+ ETree : DRAFT July 1, 2024 31\r\n ETree vtxToFront(), 4\r\n ETree vtxToFrontIV(), 4\r\n ETree wrapMap(), 15\r\n ETree writeForHumanEye(), 18\r\n ETree writeStats(), 18\r\n ETree writeToBinaryFile(), 18\r\n ETree writeToFile(), 17\r\n"}]}]}, {"source1": "./usr/share/doc/spooles-doc/Eigen.ps.gz", "source2": "./usr/share/doc/spooles-doc/Eigen.ps.gz", "unified_diff": null, "details": [{"source1": "Eigen.ps", "source2": "Eigen.ps", "unified_diff": "@@ -7,15 +7,15 @@\n %%BoundingBox: 0 0 612 792\n %%DocumentFonts: CMR17 CMBX12 CMR12 CMR8 CMR6 CMR9 CMTT9\n %%DocumentPaperSizes: Letter\n %%EndComments\n %DVIPSWebPage: (www.radicaleye.com)\n %DVIPSCommandLine: dvips main -o Eigen.ps\n %DVIPSParameters: dpi=600\n-%DVIPSSource: TeX output 2025.08.03:1317\n+%DVIPSSource: TeX output 2024.07.01:0700\n %%BeginProcSet: tex.pro 0 0\n %!\n /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S\n N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72\n mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0\n 0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{\n landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize\n@@ -2005,17 +2005,17 @@\n /UnderlinePosition -100 def\n /UnderlineThickness 50 def\n end readonly def\n /Encoding 256 array\n 0 1 255 {1 index exch /.notdef put} for\n dup 44 /comma put\n dup 48 /zero put\n+dup 49 /one put\n dup 50 /two put\n-dup 51 /three put\n-dup 53 /five put\n+dup 52 /four put\n dup 65 /A put\n dup 66 /B put\n dup 67 /C put\n dup 74 /J put\n dup 80 /P put\n dup 87 /W put\n dup 97 /a put\n@@ -2031,14 +2031,15 @@\n dup 110 /n put\n dup 111 /o put\n dup 114 /r put\n dup 115 /s put\n dup 116 /t put\n dup 117 /u put\n dup 118 /v put\n+dup 121 /y put\n readonly def\n currentdict end\n currentfile eexec\n D9D66F633B846AB284BCF8B0411B772DE5CE3DD325E55798292D7BD972BD75FA\n 0E079529AF9C82DF72F64195C9C210DCE34528F540DA1FFD7BEBB9B40787BA93\n 51BBFB7CFC5F9152D1E5BB0AD8D016C6CFA4EB41B3C51D091C2D5440E67CFD71\n 7C56816B03B901BF4A25A07175380E50A213F877C44778B3C5AADBCC86D6E551\n@@ -2212,176 +2213,180 @@\n 82032FBD2FCB6E403D34B85ED4053A8CB619BDD4DE001F4C3007B1F317579651\n E6D6662189CC2D95AB85D7473F65C5D7B4AC63B0FE928F3400035D5A9D443D0D\n F3532B99F3AC26CB25EA3CD64C341159061E02EFBC7C033C05CD919BBD827A6A\n BFCF3BD739E32E7FE909AEE068D50FAC33605FFF98C7D0115FB860178FD03DB9\n 7985B78E0AC21F2EA065FA841F5928FB85163B2E2D8F850DC7EE313912C45C28\n 2783F6762C67882EFEDDC7E7567F91C16B16FD8D5A1ABF35B5586307701B91AD\n 54984598F2AD46FEE3D68A2731BEAA754C8E730FE0E84952EF77930E4118F8D7\n-2F3AD75524D5E58AE6AECB03D4CBFD830FB0F0780328B678652E55328E0BFCF2\n-278479E7168F2FCE946A848E9AC0602F0FE1C9DF31A012574FB8B2ACC2214FCC\n-5F4B34C81506D94CC2B500B14544D2A74596A85B827C1376921947F8F10FC7A4\n-61917FDA0AA725845222E69CC2397FAF8655A7B3FF11F1F6467697D4D57AC289\n-7225E6E7ADBC2C3D433BD9276DAF1033717B95A323950A8822753CD8BD5B3014\n-31F192BC693DEB1F6CF3704FB316C0BFFA4A058D7E0A250238D419CC48EA8950\n-066E629626449751568F03E1436DFF3D88D3FC77C3A974843DBCF673317ABAC7\n-FE23F77A341043CE4CB789A219DB882B9670AB79D70A3C8B6A0E582F66188923\n-CA072E0E095303BA68DD66330552A146EF07CE7D511092B2997C9899966AC30D\n-044104601D767C0824234B3FBF4803CF3DC06C93373D49F57E07B8E66AA2F216\n-F50DD9F2893D8D4BD1C3AC4DF7BD9151B7305B67CF807DC64905132F66CC0C47\n-9F352E2FDDFB1A418D9B05F794358C8CB7B717949775A28411BCA2D2D414F96C\n-0F0FB2F57E2CCA56509F11AD49F3FA99CF5FCC6FE8B1770E7F92CE2FC319178A\n-51D2BB0815C9EB21277FEE4F29473F5BAD1A7096B7D213A6D617348CDF693EC1\n-AD03233B543535E98147A949351308EAEADD346328AA555EF4942D3ABE30F61D\n-C856D1F0F735A0E45336614360C373287C399A829B1FAC18C72B4307F0E808D3\n-1519EC64000E80A1F0D9D0B0C98DB190E72B361EF0EDF0476CC9BABE474AE3BE\n-0F91B5FE1CE385B2491A8240E3F34A60DB67FCF8E11D8DAA49ECD206538D9EFC\n-ADB02F899B2E8D46C3EA16DFE58B5A45D8936553331275A93FDB7790DDF87D31\n-EF237A1BC4391DDB1788ACC5B16DBBEF8C0099A3DEAF2F4F48740A42FA338BE9\n-D7D1F8B27D288E782C43F0A98AC775D0C62C44BAC3C817A122918F1555679FD6\n-F2D26BF7AD8760A8C5D4534A466419D6C8C4BDBBF61DBEE73AFC8F3F59AEF97E\n-FF403A05B2AF1D7673DEDE5485C09D4B67E15255D02996187A448B093A9E41F4\n-3E45251F046A6F6AADAD7DAD57528A3DDED1734D1612B3D842DF06E4FF2840E9\n-88FDEE88570268A71E769CAA1334511EF57A428B536A4F0C4BE4B0B088BDAA6D\n-582FAA42C603FB2DBBFBA588C1DA00593E330EA755333AA9BF90EE3716757A3E\n-B011E176BA4BD74FFE0BE96EB8937DF1078EEE00973F2A7D7F152153C3585139\n-F0509EB8DD1F6A8AF5B321D1550C15C0E40C5DAFD62D7C9AC7016260FA24AA3C\n-7345A0BAF89DA149E0274FE239694B50B63A95BD778F4BCCB91B891D8F7D44B0\n-E057E0B0214FE875F9DF297CEA624984CDD770CBE45BCC0E435F8350551C7E70\n-CEA7652A90EAB141051B1064CF569A259C896F7CE236D21673D0AF5C5B48457D\n-0B6C11832ED6D7443538971E9BDB1059A8893A113E1EE1D63A195C63F2C6677C\n-CCDE06BC0789BB56162AB9F75CA5DCFFB8E090BF6B83D4C5C4C9CBC3B746CE65\n-5498B231DB3811CC21A44329CD05BB73CDF1FAB4473860D917CF8F08CB2B50C7\n-9A39B6EF27EA837EDAF9DBBFC3BA772B007F1B71E2A7CE416FB5082D2AF2BD03\n-6D81375636ADE57607DE72228665CE7FA2469940FB2D98BF0B525D35286766CD\n-BEFAB5BCA72D810050107D1193B3C752BF3A90513FF3A316108318D471BCE0D0\n-A6CDB3B296EC986B4AB94EF89E042B62AA80294AA3347ABA341AF4CD5DB634B7\n-5D1276A9AA2B3992BD1DEEADE2464D64451D7DABB607EFCC4AEDAF3DB3E40BE9\n-E22DB99FD9C8B6369884FCD3930C6063C3BDF802EF881BF1731CC1561B901D0E\n-2EDFB32958CF055CA63523CEA0AF193C514ACE50EDC0789406C00EC899B7ECED\n-2A4456CE8F4AC619744892B9624D1B5DFED23EBC776F0333E9D115794580E984\n-3C42D3B345CC4A3EA7EAF75133A943F978E4FB6B22356CFA0F9F24FF1C26214C\n-DD61EE4FAAA27EB1F644B174992DB8D542BE733B305E589EAC45E08F5A6B6D8B\n-A7349F0017A6F6258B9E5E674FFD6E794C6C7B8F1B3714C0D73570A9BEEC330F\n-4653393E325CEE605D9A74B1CDBEDA6613B2E806018D3FF611BA4CC5D436F15D\n-1648F6481877A4343D3EA8D1B0228B3D0B6145D364526E32FE68E6E2B5D6A24F\n-B4AD7E6EE3DE19828C53A1AC3F49B4BF3F3D17EA46D4291D822EBD077ECE013A\n-A22C166F6DAC8C065D35578279907B0E1CE05AD812F37F3D9F06B1406639F189\n-35D0062FBEA389EBE55232096EE7D0655B75DF1937232B3EE92077A77FAEA45A\n-B2F0BC42B9E6755892364710E75F7A711A22C01BE767A4887F38BC76E6662CAA\n-9923926A1EB01E51A11D9B3270496E002E9EC287E34391CC02753268A2950729\n-F91ACBFE3FFCCD8880D94044A7BC4B9A57B688260CCB709D198396525F1E7FAA\n-2C3501573E724018EEC3BF45F83594C841A985847BED06745E9BAF8FC376942B\n-89B651E917228844B7EA711774011FA2B7C8226F3ADED7694F1944D2B9A0CE34\n-ACC9C9C91DE0C33F59926FA2C66599FB5BF9919E720661BF5ADDE5E71AAE28FC\n-A91D09CA9D888A864DBED19C7D1A11F392AB2473BB13E1D883DD8D7084D0B42A\n-EAC06BEE7D8959427A3D04B26C0BAAD28E7E69F834CC0BE41B5392482CEFA2AC\n-A9160FD2D070727312EC5687AF00A44CED6AFFAC97C0098D035DE5DEE0AA9617\n-A804C14141D62C97372CBA567734D9A8F00A1CC0EDC9B9A5782D3D7B39DFDFCC\n-FE50FA2AE2BFF4CE54896EEFB9A98E7C5AFB9AB1090C54AFDC47148BFD714C93\n-ED3293F64997F18A81889F0A6ACF50EA0B4B2FECCF49649D4C3C6249A1A93CE4\n-B217AD7A03A5186E58E8BDB437186C1D4449BA94683D4CC208FD6927E948F61A\n-B5FB4C701ACE4F6E8D02D1049051D73EF6251ABB8E8266A8E2F7E08FF03A4075\n-1BEFDCF68269E2D024BA1794DC845C3883BBBEFA21B6A74529BFE6B0E3BBE72B\n-1F59CF43C72708DE1427A37886D4F680B570400FD1391721535B2C0A237755DA\n-1C672462AF8625F760B787030DF77E2B63DDA49CB708F7C243A572C6BC484612\n-28C7FB916B28A9D9343DDE321EDEF8A93D657A12710B8D0A4AA1A31031A192F2\n-49C488C3AE6E61A97DD6D1340CD932FADC88E30C42D4BBB3F82CA54A34BACB46\n-94D570B2CD769EF0BC5071ED0016D21CE2F8B0D022E7756E2A57C8DEF06A3A0F\n-F22F1E79564E3EECCB205E8D8ADB5FD549EE758C8D47C3AE3D3458534F8A7302\n-351639064FC11840C9C8076A1C2E436B7B91E2939156F1BF83C4969A164FDDB7\n-91A55F068F7ECF077326042BCA83C0AEFE726FD330318959F63CC687C8AD97E3\n-62E39BC1BCD56FACB51662D71CEB6B93E0C40170B4357B6A11A1EFE45408EC24\n-81F38DE95A812EB982CFCA70D9A4E0CC7CB34FD80D63B5A47CE088B7ECEA9E12\n-47D4FF4C9CF0242C46590C0F398B04881AACAC3EAF2C77F0B580A3FFCC0DFEA2\n-DF6C60CA9652D94D4166E58F0B82D4C0E326AF17775CC36716A55D2B4E511A63\n-F4C0934BDE263A5D26010ECCAFBF8D17934B780AEEBE6C20C0539707F284D6C9\n-492073EF592A459AC923A54A9646A2B520C86B981D06FF6185B9FF7BA8D020B2\n-B5C0D6266C6F061F871DDCF0777F654E2B8D218F682AF7EA6D51D2B6D69450D5\n-A2435B2E3F480F96BD22720A750C3D4F216908A237A4DB9A231B9252800680F3\n-879BF6EC6DB6AF5FDB8FA4E81FAD16644EEED7E128CA79E696CCC57988D31ACE\n-8C332862E6EF240182D001410A8D18C7C120AB4FC087C2CDAE8F4E6E269DCCD7\n-FB88ED6443472AC96C523FD2ECF4DEE3AE438E1692FDD49CE997CA6EB9E2EBA0\n-3FD8FE1F6E6D715F2FA3726E2668EA5F8437B93A8BD4E71EBD93CA9E17DA1F0F\n-C7EC8372DBFEA79E93F4BD524E4FC905BEC929BE8A97E9755C04A62C336C06A5\n-07BFA62B27EB3BD99D88C43FA6FB2D17206A5D8E77068C2E5C2BC47742C89ED7\n-E358DA22D9590BD8013991B0BD0AE8FE5C678508D6DE5F6F27AC3ACEF7C94A1F\n-99FC0E31D15FAD9CFB4BD1F5D61D745B798015AABB560A5E1E5ACBA04F5B8A9B\n-7A42C154BA399A9D011C151CA1B15878B5C959C3398171FFCFEAF8457B10748D\n-AACD478B771B9EF9ACBDA3BD76BB2538098BD30B3B2B4ACA4C609D0CBBD1B043\n-E691AFC3996DACF0A36AF05332863A34CE5FD30C669F89845D56C6755C9BDF82\n-20817CD159F355777055DDD9139BF9918FE9CA140961D9AAFA214F740C81F5F6\n-C61EC8209131F29C76FF1830E3DB0B2B7D9BFB5E1C887CF9C6853A0F00BAA568\n-C9B3138B4D89EE436C0FAE7C99F349A37EAAE067A0E619B86AEF6056BB360C29\n-C9D51ACBA1A7E55EF55C910E90873B273620F7F176D9CDDC8D65337CE6F2CBF5\n-627FC4CD005122390DBF26BE38DC1F2A1ED0FC6FB0278110D397C7226FA97E60\n-1F1157C118E9AC10D973F3C7F23CA7363FFDBF912B0CEA80552DFBD8607D1433\n-C69D470B94D708B0855F84EFA2809C4CEBCC22CCBDDC9AD426047BECF11A9D0B\n-25B535D0453E234D55A52041C03B10ED4110A10E2B87180B3A846F546997F3F9\n-3631FDFB38ECFEF765944F049CCE1796BD797CDB11803B404B4D9A8A5C91F991\n-1561A1ADA6F692C08F7235B20714B72F2089CD7EBB7BC659ACB1B0C3D46B20E7\n-31C2E726D7A142FD69302DFDA6001E1A3A208C3D6C567B84E9D4640FF3FCBF98\n-45F1A89A1964BC5F0AE89A2D849DD2650889CE0ECE1048747CF8B6DEACFFF4EC\n-883D43820C41221D26824D32088B7E40DD5DC8E08807C3D21E3729294946536C\n-4973CAA83326CD66780359C77EEB549F9FDBC438C3B165761498F4488903B8BF\n-0CA72C6C0B29AB808A20FC71C998928054F24A01091D44EBBD45BB441DA4ECA6\n-69556CEE9F2E3489FBACB85A5DC686042F8126E0733917646F45B9115FAB2029\n-8C0442EAB8A911A4ABAF437DB5ECAE632A47F20B2E1AB8D2A4C9E12FCAAF3275\n-1C84F14B0D15CE0347530030747FA7891DB2CD2ECCFB3D34E73BA1B524C334B9\n-C6AB3CD74EACF809171B125252D468CCF773F3729DFF6625CEA65E160B0E24EE\n-1ED2219F873FF8CD1256437B98C5EBD483E2864B41C6A988632EA91DA2F32A16\n-53A3F6D398BA9ABA009D3903233DA64C8C4FE493B3F7C14A9782D998F1385678\n-B5072B0C8E56140C6EF8B18D64C3B418867A8A60A9DEADA8C40F8F1937214062\n-CD154AEBB1D3B41B1F4F080BB581C4043CD08A18CC68A354883A00B0ED6ED91F\n-0063F68A354EDA11D7AA1034B3ED0462AA396E05A2739F001C86E23B71B989DC\n-5CD2F66FA5A3154FBD62C754932767BD9F712BE3138ADF65091D4359C21D6E13\n-200FED8030B13E0D2491F18D405141F3396D56DF3D269A8AA835FA662E241250\n-AEAD548B6FBD411E972A0E956C7B86DC1E804F75EAE46F08BDCA15D1080314DE\n-EB5AEE2C9F233BFCA9F69BA277DBECC9D46792BDD9912E412E83D014E98D70F0\n-EC1D463AA79690059C97A610139E08B9E314B882D1DB644EFB666652315F74AD\n-EA9EE6815EDF6782510D46B63ED21EFD8FFBF9F845513B4DACF4F9D800AC9F60\n-AC2E4287679320E89622A6A72F55E1B0139893B3F0A72CA252AF844DCF302E4C\n-CADC409CBAFEA38A5D98859DB95E63CDA6BC9676986023B3BCFAF95B681A4BA0\n-CE4292189C8DD7B59F98F2A80C4D3BD17E607E82D68CCDAE9F91C02F7F2BA085\n-485C421526992DC1C6D1A05AB1779CA9A6B1355C870273FAAE89C37126612B8C\n-A8D33DF13C48B5FD91088C69AD41EE2701A7F3D65BD2503E83EF72D02FD5BA72\n-BE03A52637D8AD5A1D6EF7569F673A588C005C4D5EB0BA84CD047B9882537E5C\n-177B4A762449B222AE6D626991212D24E2EC5DEA8ADAA742ED41975101BCC462\n-FDBCD78677FB6DE660A3BEED918C55EFFBA444F622594B30CF0ED19C755BA13B\n-4777C70D7D7DEB8854FDFCAFAB1F3627C4EB35F772C1F70ACAEF898F9A1F643D\n-54348F8829F2E42D41D5824F0C78383F2258D5B4A196E1984193537E08B1DD31\n-95C0302CA9E26C5E3E13BD6052C61ADE5AB35EBA86A5A79005758C289604473B\n-154927749A117DEC371A2154B939E21A528E6419EB84CEE8C6BB2D50B534C8F2\n-8864E208AA8612CFFA1C4E6087B3CCE2657D0FE7B514E39E009FD0DC58D58186\n-CE21468FC4A4510EAA0D5640733089747DC58C99BE21C2EB3513E11B245C3F9F\n-CEB8B3F5F72EAD8B8F886B4DB06F076A209BD62C0906E6A1EB65F30D07E4B95E\n-4A8F15719A589897C33C0F2B8E030E1803C8B66724DC0F4EFDF527CBB997A93D\n-C706238F7CADDFFACFAAD3AAE5E45B0787FC3249C90EA23CA7F0A88B8FB25D49\n-9DD17B5CC275023D5893C0D93B2247144F40839F54D20D52DAE49FAD3EF1EF72\n-A663F4D6FD0EB0809247291C61C085EBE040F7ABD68065D4E3059FF8E6A020C9\n-BC56324356EE28649F9A8FA432B9428AB27B0B8472EE396D74C5380F76300772\n-2E9972958B0CCC4F6225E6D4F1E4D82A3AAF31E1DD14F64CBE0B705201CC7CB9\n-E6368EFFA83FCDE2DA11867563D9B448932D27CBEAEA537280F17BB4F7023143\n-5EEA824C1ADD12ED145B33FE61703A9D9E9089F7C630025390EDD9F99E916BC7\n-1ED7FE587D76798C976E306B36A7A579C3799F295092130875611A4A2D5AF05E\n-A204EF16B2923BD40453A564ACFB3CE205B7F6F72B439B5B7B51A962F6D30DA4\n-AB6CA4814F5EF5ACC2D181AE4CA6C0BC1ED49B185911D4DC6DB3EFF1068E02D3\n-13E67D2EF8852D779ADC68E74BD87B5FA8F844247D979766737C59E650D9616A\n-A14FA38D0D6B9CACFA33634DE529642E1EA82A5C288D8FB921113F063B96D67E\n-BD848354CA3EE3546B8330967591CA53DAEF776E89951F9624BEAF32B0025175\n-8BDF3034633653F2FC7A0B772E9F9AF076A1F64EAEAC2BB1A6225D313A51DED5\n-41369691FDBBDD7B200C1074C276BF2EA2BBAB87209B30ED4693720814F1D21F\n-EE501D4002DDB70C3289043EEC8546B5EB183A228FAA0D6E4984D7C3866CB304\n-FF0649C979D029472FDE03BDA3821427D3B5D7FA30590C35967A3430E6D1787D\n-50F9AAF53740BA1609D91EB59EFEDBEDA1E351D5367ED55F0304095E8C6CCF96\n-50A89181DF75A2EB3CAA6426B5BA9763C192A80E42770E409C49AE417768AF70\n-BD84C73A9C975D21F4651290770A8863C8FF68F219EEEE83F5437B833DB943A3\n-C7278966CFB1AE9F8DBD6B6E0E1B4299CD46C5862CA6A3178695455490A1ED65\n-970C1119D143A2342F9331C18D67F71FF35134CC5FA1780CAA8F3DD3FFE4D186\n-A293439DE2C4F426A6758691D6D260705F367188653B597FCBFEDDC05427DD9B\n-79AA5B12F89737535CE26D286CA60F7866B71A0BC15DA6CDE4\n+2F3AD7547F9B0793E20128D03B122C74288283D9B583378FBA48950DCBDF887D\n+0A4C231FE009050F8A0C02473587E1D076F0BDC5458931FB26937C4EF7A7AB76\n+DF14BDA8C5E27BDD9EC959C6F3FCF0C55E52847705744EE3D80EF426B9760775\n+F4BD72DF213B715BE0AB9CEF5A9038E3EED7AF454E08ACBBD037E6307A04F331\n+224C39B55908AC9FA0B8E560F8E78D5027B8266331C62EDF750CC08C0E2EB573\n+082BB774BD853932B7C0C88BBE5F6E5E9D985792FA21B3180EE9911F823439DE\n+C430774263982682D4B1B76C287D1856702887A9A99B2B5A466FE6CC5B0851DF\n+EFBE62D59C80A0B97E81D0EEF577494C78F03924465B9042C7C6C1FD732CA57D\n+099755095F57ED2389501E3BF0969584ECE08D55FD8D7E95F92B4A0D405E5D61\n+D10A7CF6B540B64594532EF90FA00CF28271462CB7F96D210E554AE285907A38\n+EF66F57A40E2302CA4D3864994EC113AA35017C6D9890D1F4990AED4E5E395BA\n+51A1FED7F0E799614AEEFBD6FA24180F06F18DAC1D48FCC97C637130FF5C49AB\n+65E3E993F2CF6A2ED14A5A5CB71EDDAC41F58897B17750F761C131E1951F0F61\n+1F97660E665F72B8E5106D357D7F673A61FA9399DF549ED13478B0335D7E97DA\n+DB74852BFFEBA827ACFD99EAD434BC753CF4E821275943118CF97A260781E068\n+B184EEDC5879DC8787E93AAF61C0A4D418A86C33B89A2B8AAF6F49094930434D\n+D0C2E3E47E4C849694F27DD241F3BE91C3DB064D79677FE30BB4275A02AB5703\n+C2264DE0968934F25B5A855A153CFC062AA83B31F1C6E8FB1AFEB58A64A14B09\n+67E7B6AF2DA17860B7543EEB6ADCDD16D4B7D4F18E6F194B786485B01BC1A3A9\n+396EE80A882178E4C3644FF8AA702B5464748DFED0976C8BA16C832E799B239B\n+9099F3D4A5A68BDF2E3FE6443946500F31DE839C2A3BBA6577B8CF43DEB27DAB\n+C0A137B4720797D42486BF465D5B985A25E9032899A947682839EFEB2B8C88A4\n+68C6CF3974C05F04622DA67A108D15E6FA0045E7DDB78CCA3D006E29DAFCE011\n+145079AEAE711D809C2E273678FBB776D52D087A2188BC928D1402D701B15092\n+5738B4443E74A65AE02C4003A26A7AB8B47EE43F90F9BF18B2ED0B49C7323D1A\n+B8260E303426756CCD9F58C35EE26DF93E3812B5AC37CE52B4CF91AFD4E35BAB\n+953B82F8605C48210430CF1BB40C08830D363012F6B799CEBD93E0F4471863C8\n+757C7F2B98D93043226E39D08F33F2A4FD0A5ED47C649D4B436975FA06A55C50\n+EF3B08AD7530027A0A39A0DA0100A0FECF5DE027A6A28A96D04B31398B2D83B0\n+DCC54F437F821BD1A7A557E0C57880CCA7272CA5A57904CC4E9928D615251D0B\n+F3531E5E727AD0685FCC56379A638017555F0461CB993D5C1521CDAC0763C532\n+97F184F8970D9684715E8795FA1D524DA2C34CD3A14A6B0040FECD322147BCDA\n+E3B077C05158FFB35462B1F76E0EA38924B4D11D7F1E33A27097C16B18DA9041\n+73F04019FA0D2B8B44A29349DA31CF1623D7B4B2BA93B0EC0A77F6C83E00EA7A\n+068E3AEA228DE76A68DCAD7CE2EF84A1158AF71B91CEC37AA83B8D9475E08577\n+57AC8D901BB47DE5D3C0012733E108B4E5DC9F6A2866288164F49A6A0326F071\n+7CBB886F7926E350F0BC53722D07B13EAB8B2BB7BD45E3B200D263E36CF8B0D8\n+14C0A96F3A7E9469803789D1985C88EC018B5B696AD7F7EF06E0A62E0078E96F\n+0A283CA24D5DAD82B27E2984E30E914AB13CFE88FC213C35EE5C0EBD817B22E5\n+24FB5FBEE871C835A21153C990CB0BC59A486B70426ACAB0D72379FA133632E5\n+2E7CCEDA4B0CA0C758D7B6DD891E8DF070F5A3E47424DA17E5F5A79FB44B80EE\n+9D502B785C5C5E21B278ADDD80861B51EECB67682DD2689FAE4D96FDE5DC5256\n+1C61308451B5582737FF42E3484E5EBCB4B3EA3A6F4E6356853CA7ACDAB065DD\n+45F1FC4982A71C819632C03F2B916B4656E5A522E7B88E12B60607BA3D58BE35\n+5C533980965548A0713E92EDE9E4D415C9C8E9C315ACCAA774A40845C02D547D\n+D8760A93AD923B43A519C38D6E4CE693423B5CEF3EEB724F54CDC6ED1E9656EC\n+478CC715C686A19DA7FC4BCED6B917808961A24C3A9C9A9E4C90FD8E58289239\n+7E3B38C5EDA0A10E927D44C76BB6979A19FE46C2A3A6925FAF8B6086FCF02CE6\n+3EA6B2A17F7B7719193278645AA4CFA10767A122D7CDDFB8211490DA425133DB\n+F153F2B306A9406C6184FA3A634DB00AA2BCF422C9A4A46BCBADC0F9C49CDD64\n+16D8450930BEF6EB3AC586E4670257675D0642CFBF241390705DB39D91946644\n+375D73069B6A6F4A89EAEB7115E1BE8380C81B6CA75EDFA52F876651475547D7\n+2AF0643E791F8273304EC9A2D73C5477BBD6BF58324D88A6252924ABAAAA0CBC\n+6544F45E8BA7217038109183F26D5AC8661491ED4341A33875255B45D8F72678\n+83AACF023EF5FC0F7939799F45D312EC32AAC7CDEF5AEED55F1F6FEF9252852B\n+E5D0B8052E3EC4C1DEE62C83820E1B1125DE541751FD99945E6CF6205E5C876E\n+3E69B9DEDB983995D6D97DF4011406E165467B588034163FDEDA4C85D2037E2A\n+8C23B987BCE46A246A790A51C1CF614A485E1C3BB75817D033725D64C6722422\n+73225895015841B81C4278645572024E9FF78F035B90E58B02F9312ECC1BB1AF\n+CB95A079C062F365B61863CBC040648C9619E451BA3A65AE7E09C4A3E7ECB50A\n+3E19307C124FE64F7A1CABF5862FFE6A5004C5A23E69FC2A6D5806AD6777EBD5\n+077F8132EC47DDA6B512102F5DE44535BF9E424EE116DFE0C6CEBD669359FD5F\n+88055B40430903B0B9DA19906655FB076A3964E98F7E44B7D765CD7F384A2ACC\n+4E9326ED3E24EF7604FC3A6B46C089EB82FB669A7B330FF2BC76AA6D9AAB7132\n+F9369AC8A64B7C7CB9B63DBA39D6E3A2B25AF4FF76FFBDE0AB570345D926A1CD\n+B3A72724A79DACBB01F60E4AC3A776E8ADF26815D9ADC4FC3D40AC561C403803\n+1769722D5FCA7E1B5C13E8909B8C0ADC8A8CD6B17552FD743112ABC59EC330A9\n+800F0DFAA61C8484082AFA8E0079CC47CAB38C4C24E427FC8BC44AFFEE3A98D3\n+3D9524C11114E376788C81CB59941EACA49C34D36863806A4760DA16D3D24BE2\n+B7253534D6F797019DC4E7ACA585CFB13DE41B4C0C392387EA3878401B6C00E8\n+1C52301798D6EB28EDC3911F599C6329610EC213A9C0D4B77DCFAB59983EFBD2\n+22CD3FC54AF0FA47515291EFF41EB6DF9C1687B17B74FF79CEE357014C06B3AB\n+D6CCB8C8183F5EAE9B34752E06BA65984AEEE849766BE0F3D7F6438FA7456C8D\n+939F1B5D5E25479F38A1DC9B28255FF7AC4D25E1025BB3927991186B4DA14A3B\n+C48EF939C453295479788A0D1F7048797160B44BBF2332EB485E5B302D150042\n+34CBEDD9F2B95890B830669967D210C2D40DD36CCE379B2F43DF2E2CFA1B60C5\n+42782DF3529630B9594AE7A1260A13FFC3BDA2FD8CC9BCADAC374B61F50EF61E\n+F835E5ABE05F22B1125F5CC361D2A9774AB8DEDE2981C97A5AD85A65E29C9175\n+B8A1192C83A44B6DB94B9B81016A3B75A5B9638B325C42B1A3B013181759FEA7\n+A4BD0688AE5B3E8A65CF2C276D3981518E92BFB667B9AE25D4AB2A16F29B8A48\n+0EB50B12F6658A067B403F721814E5B11A80D74E133444F797A84574E21D6397\n+03DE5D55A2ACB3F8F7829CCEC5CF9F39DEC02072D9BE51C234701FEF09D31995\n+367CAA48CEA2E728A57C020E4B1D9BA841409118AC7738585D65DE0684A1A02D\n+FC42A543D005E7CFC016ADC689EFCDB2CDDD7CDBF6C5D4297D8745236CEEF874\n+B64FBACF39F1C9EB6C697CB59EEB2E6A1765668BEE51C268A1FE7AC765735C51\n+4A9BBFF5C763F3BC0EFE04479734C30A5D78936F604956B79E20008F66F1CB7A\n+ABC2AB1AADE9684BC4DA7B3368A701515A0FF4BB636940C54DAC21C52A4DE92F\n+A21676B4895751B024E4A280E5B1013EE131F2919C7D17AF93B1A4BE31E6C1FC\n+0C4F83D692D12089C6EF8176E4A1EB877E85AA152DC0532A9E0C6A6C2D22CD52\n+C96B6A116BBEEE1291A856C8C32BF6ECBD48FBA0664D1D677AC8A027F3060F42\n+5AB72A3290F8FC626E3A0CD86E4047569A13F012F76FFC25E2130CE4B269726D\n+C36D671F280482C71089B87E324D9AE04A358477789AA5CF498F9DEF91EFE0C4\n+EBD4095F819E6350294C166A9DC2BC79BB08FA7B2BB7311B04A33AFDF836DD77\n+249460F49653B91F5BF8A2B7AEFF3D023098EC6F031497B782C0B6AEE6F728C5\n+FCA9A54AB1A08DD2EDF959173638BD42626DA233E3A66C01E7FFE5D88CACF07F\n+0EC1E676549DBC54AE5C2249A214B1203FAB5940EDD8BC0B1A577D59BCDE279D\n+042C72A0B0E07C6E3E73E50E32AC395FA75787986FC6BAD25B8895C30765A533\n+EF3C0A3FF98048CC24549BD9FEEE206208088DACE724FAE144E713FB050F0026\n+2B4D50A9296954D41FF021AEF426FC63822507A3ED30E28173275D8251148CE9\n+48BD7D83014AF29C7339DD16310AF3E16473916116486EA5CDA22AB4E1076991\n+60D01E67079AF1084EC5D701FCFAEEA158646D9DA93FBCDDB4F1380EDD180FE5\n+3593525BA2A09EB9A366C9CC6D496B742EA27A6DF86F50BF58609EB45F9D621B\n+6D8A4B01F5762688F8C080B5F1AE2B87A531664DA6CE7385BD6A923286E4419B\n+D9E1269441C123487A892998C63E4255BDAFD5EB443AC31543F882A3DC455EAC\n+F519F30238BC73CA2B845EE53A5E0F73E399218FF857915EAA955156C27918AC\n+A87C87C85F66DCADF26E6A6734E0C7F32F96408641C9EB515F1C8FC746D63992\n+056EE284A2C58AD50E3320E89EB387B8B3F551A2A6292F0590D6F8D1FF83896B\n+66460AD75D154D7B5E3364F59C2B286880659495AD400B8346FFAA044CDC2590\n+025B6DAB834DDCC84800F7D4738C4AEC932667EE2CE5A0748106431F3E53C681\n+CE4A1D1C07657829F59774E1C46C3533C3E13D1EE8BCD4D4359863664AA031BD\n+B2657F1F3BFE97412FB7C9F1CB81ADE6C3BB669B06565F276849E5DA5114DA1D\n+195734E716A111F3E40B26628F1BB0EDA7990C038075045213912E5440D70C32\n+980CD96C4C61318E403B4D8588B017A14A4624C93FD9851B8F3F2D4F35E4271F\n+8292F40C07537F75AF7D045830CDB31E98D0923C014604CC972D8AE6A4EC6135\n+3FDC76C089175779B4F694E08EB70EA4D0AB70AD23B7AB47F60FD8257D4926F2\n+35D81B47048F5D5A3C3034A16FF20369A79BEE19FE60EE220B007AF8C08DC0F8\n+B7F288987F87B222A914A66C0BFFD72160F52D8B1E1A4F2BF17B5805BBBFB325\n+4804060E779BD495560E63E6D68F4B26A2ADCFC844388BED1383D94597AA7245\n+282E177776418CB4269FFF13D2DD80F469EF7212113A43D151F913B1E71CB314\n+A8AE540C6EF10A968E4FE7B312B4419BF0624528764BCF5800CAAF2A7083A3C8\n+02C52E835A5CE53CC901F0CF209031C6C5C9FF2F960BFD149591BE9666C149E6\n+4CC2AC05091FC602D00776B76A4FACE20E8F18FB1845C290FB39DCF6FDA8DA69\n+771FC2AD957F16E9605C354D5974F274F6EEB1999F8EE3ED628B9967E755EDF3\n+923402837203E8E7F87096BECB6B31F7867848E361A3E148F0DF400892E3450C\n+3964276AAC06BB167F7FBDBB9E6BDC26ED4578BAD1FB6820E13DD22CC41236D7\n+CE2600BEA9CAA7F93465C918C6EE0BFDB58CC5BCA85D57B409798B12F796866D\n+D03185C6C1D43EFDB962DA92D8F6CA090AB1E40A70B08ECF7D1FB9936726104C\n+5A1996142A38B7337D8CEB436C4C7239E4B22A18FF3297303E66DB223B037818\n+FEDA344F8065D0A8F5C2D027A2E5136C07C3A52E89FCBFE8592EA2E38941950D\n+A03FAC1F8C4B6EA5A99D55287E25379BA724F3301ECC323574EDAE03BE7813A5\n+B2AF513EE298C5EE2E9AEC1EF0ECFAD5096AA2B7755C4BCE151D9F15021A592B\n+7242B3E00C7F4A85F50A47BEB9F1D66DC7E622AF0B1E5C7F65FBC96E0DA73167\n+74836657E95F46CFE0FD417DB1F0CF301A772962EED7F28454FC25C4C66B3405\n+537609412A9F6FEBF4673014FDFF4DE50EFC15B95DEBFCB224B23751EACD1743\n+4C9EDBDB8A7473F5C5A0430AD4B11930520C1A59A19275EE16266DC5F21D6E24\n+A20E32A20D620AD35E208029A44A9392EE42D69920199F90DF5B3385A6FEF794\n+2D1E09CACC7024D8FA7EFF616496955790139E9047AE4B4A27430764F29BD0E3\n+1A480FE4050933C1F1C02FAED74DFB4DB8618D30AAABCD4DF713760B0E6C45F9\n+C571183E035917A06C462FD00467CF433574BB1F963EDE65F6227D82C805D1B5\n+6DB2890DD1EED692195291EB3627761DDF713D8C21C46522C8F42391A5D51115\n+5AFF20976ED44090D0CD4832AEB6F1EF87139449D231015A94FF4FB6582E42C4\n+10AFCDB247FC7FB68D01595132BE0AB2B0278A724A14CE15B8189AA17A176E2C\n+C41F29543DE2AD436B75E1FDC1E7CFCD218C0D5A3981F6B92E798A4E12940DB3\n+838AB9A9D7014C865BF42B3FA76B427B74F5DDC5332FE3FD8EF10DDE0128BE2D\n+56A1FABFA1DDBE7E793F0C48944ECA574621E3F5261205BD1B6CCBE3C388334B\n+5BF6EBAF334C9CF67B642948FE9603E414813304997CC072A1E9B84B5F44F815\n+B0E2B5190C4D9C1548337A3196D1917209C7C12FA662D566CE1DF0D32DA30818\n+F0D51AF54BA9783CCF93A930F44DF574B6D1D32BC45C01F3E7411CAB05A63DE2\n+F72101D16DA4891F08C4335538B94EBD48DA81C3BD8A4F89A1AC41D8BA10EEDD\n+13CA532682BC5649C7B03B04CDF9295E231EDB208BF77CDD4DCBDD618505FF28\n+9C1F2B6C538E37E72B1306EAA4FB231005C2BF699F878E97B5BEA174E8FFB57A\n+BDBE15073DEFC098AD6A2E55A044749E430BE11D50D8795B782AD62F740A8732\n+CA2B0C301A390D6E247BBCC7B11482A9844F1AB5FEF6028945A5B12428ADDA99\n+AAD1AC43FD9FF625A0B0C6F8C1B47CEA6E977C87BF8D34F93217C12B213FFB1D\n+14647B1CA9E46BEFA3ADE29F35D11EA4F9ABBCE9D98524F67F4D8CD1331E5B74\n+D5B9EE4ADA8A7E82CD94768B71876608B8B2D7D71C4BBDEB40098890DBCDB814\n+1CE002DA4F5E73AC1075B2A8BAD42CC11BA6B2F137F00B51177262FE0672387A\n+8CC1F8B02763CC27A52840543F024C7893F6E0F19C5AE6307CD8B5832B5CEFDE\n+209D2AC159E0C992F971740E7DEFF2D99AA4D3820593156B7C2436ABA94308A3\n+C5F3D3939C87DFCD5B75BA5F6B50ADC4880168F379B7B8AB56F94E0332CFCAEC\n+59D3D146ADCB7BFBE5932125E29AFF7E2D9040338760575179863449C92DBA5C\n+0A63A73A35E19C21A458A5471B209C2CDF6B5B68B578BF1957A989D89FA6A9B3\n+AB0BA77940826D5501AB296E7D8364A0DEDBF59F050B2692D0F5320D0D3C5CE2\n+30B506895B8BC7D4314CB093CF99283424FF349398D3348577C8DF3F51C3FF18\n+B8E040574F1033D28E273F654A871CC3F6A5CF4383F0E36C61EE471DD6FE182D\n+1A6AA97DC2FDEB0B9C7A22F31703BD55\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n@@ -3091,17 +3096,17 @@\n @start /Fa 136[39 39 1[39 39 39 1[39 39 39 39 39 2[39\n 39 39 39 39 39 39 39 39 32[39 17[39 46[{}21 74.7198 /CMTT9\n rf /Fb 133[34 41 41 55 41 43 30 30 30 1[43 38 43 64 21\n 2[21 43 38 23 34 43 34 43 38 9[79 2[55 43 57 1[52 60\n 1[70 48 2[28 58 3[59 55 54 58 7[38 38 38 38 38 38 38\n 38 38 38 1[21 26 21 44[{}50 74.7198 /CMR9 rf /Fc 205[30\n 30 49[{}2 49.8132 /CMR6 rf /Fd 205[35 35 49[{}2 66.4176\n-/CMR8 rf /Fe 137[51 54 38 38 38 2[49 54 81 27 51 1[27\n-54 49 30 43 1[43 1[49 9[100 6[66 5[50 6[70 69 73 11[49\n-1[49 49 1[49 3[27 44[{}28 99.6264 /CMR12 rf /Ff 165[99\n+/CMR8 rf /Fe 134[51 2[51 54 38 38 38 2[49 54 81 27 51\n+1[27 54 49 30 43 1[43 1[49 9[100 6[66 5[50 6[70 69 73\n+12[49 1[49 49 49 3[27 44[{}29 99.6264 /CMR12 rf /Ff 165[99\n 6[90 2[110 121 126 1[97 6[106 1[117 1[122 65[{}9 143.462\n /CMBX12 rf /Fg 133[58 70 2[70 1[51 52 51 1[73 66 73 1[36\n 70 1[36 73 66 40 58 73 58 73 66 13[73 6[83 2[47 3[90\n 2[94 99 14[66 3[36 43 45[{}29 143.462 /CMR17 rf end\n %%EndProlog\n %%BeginSetup\n %%Feature: *Resolution 600dpi\n@@ -3111,22 +3116,22 @@\n { pop << /PageSize [612 792] >> setpagedevice }\n { /letter where { pop letter } if }\n ifelse\n %%EndPaperSize\n end\n %%EndSetup\n %%Page: 1 1\n-TeXDict begin 1 0 bop 109 1941 a Fg(In)l(tegrating)43\n+TeXDict begin 1 0 bop 109 1940 a Fg(In)l(tegrating)43\n b(the)g Ff(SPOOLES)h Fg(2.2)e(Sparse)i(Linear)f(Algebra)g(Library)326\n 2123 y(in)l(to)g(the)h Ff(LANCZOS)e Fg(Blo)t(c)l(k-shifted)h(Lanczos)g\n (Eigensolv)l(er)950 2513 y Fe(Clev)m(e)35 b(Ashcraft)737\n-2630 y(Bo)s(eing)d(Phan)m(tom)i(W)-8 b(orks)1753 2593\n-y Fd(1)2334 2513 y Fe(Jim)33 b(P)m(atterson)2107 2630\n-y(Bo)s(eing)f(Phan)m(tom)i(W)-8 b(orks)3123 2593 y Fd(2)1629\n-2890 y Fe(August)33 b(3,)f(2025)104 4919 y Fc(1)138 4951\n+2629 y(Bo)s(eing)d(Phan)m(tom)i(W)-8 b(orks)1753 2593\n+y Fd(1)2334 2513 y Fe(Jim)33 b(P)m(atterson)2107 2629\n+y(Bo)s(eing)f(Phan)m(tom)i(W)-8 b(orks)3123 2593 y Fd(2)1691\n+2891 y Fe(July)33 b(1,)f(2024)104 4919 y Fc(1)138 4951\n y Fb(P)-6 b(.)36 b(O.)g(Bo)n(x)g(24346,)41 b(Mail)c(Stop)e(7L-22,)40\n b(Seattle,)f(W)-6 b(ashington)36 b(98124,)k Fa\n (cleve.ashcraft@boeing.com)p Fb(.)71 b(This)36 b(researc)n(h)0\n 5042 y(w)n(as)f(supp)r(orted)e(in)h(part)g(b)n(y)f(the)h(D)n(ARP)-6\n b(A)32 b(Con)n(tract)i(D)n(ABT63-95-C-0122)i(and)e(the)g(DoD)f(High)h\n (P)n(erformance)i(Computing)0 5133 y(Mo)r(dernization)27\n b(Program)g(Common)g(HPC)f(Soft)n(w)n(are)g(Supp)r(ort)f(Initiativ)n\n", "details": [{"source1": "ps2ascii {}", "source2": "ps2ascii {}", "unified_diff": "@@ -1,11 +1,11 @@\n Integrating the SPOOLES 2.2 Sparse Linear Algebra Library\r\n into the LANCZOS Block-shifted Lanczos Eigensolver\r\n Cleve Ashcraft Jim Patterson\r\n Boeing Phantom Works1 Boeing Phantom Works2\r\n- August 3, 2025\r\n+ July 1, 2024\r\n 1P. O. Box 24346, Mail Stop 7L-22, Seattle, Washington 98124, cleve.ashcraft@boeing.com. This research\r\n was supported in part by the DARPA Contract DABT63-95-C-0122 and the DoD High Performance Computing\r\n Modernization Program Common HPC Software Support Initiative.\r\n 2P. O. Box 24346, Mail Stop 7L-22, Seattle, Washington 98124, pattersn@redwood.rt.cs.boeing.com. This re-\r\n search was supportedin part bytheDARPAContractDABT63-95-C-0122 andtheDoDHighPerformanceComputing\r\n Modernization Program Common HPC Software Support Initiative.\r\n"}]}]}, {"source1": "./usr/share/doc/spooles-doc/FrontMtx.ps.gz", "source2": "./usr/share/doc/spooles-doc/FrontMtx.ps.gz", "unified_diff": null, "details": [{"source1": "FrontMtx.ps", "source2": "FrontMtx.ps", "unified_diff": "@@ -11,15 +11,15 @@\n %%EndComments\n %%BeginDefaults\n %%ViewingOrientation: 1 0 0 1\n %%EndDefaults\n %DVIPSWebPage: (www.radicaleye.com)\n %DVIPSCommandLine: dvips main -o FrontMtx.ps\n %DVIPSParameters: dpi=600\n-%DVIPSSource: TeX output 2025.08.03:1317\n+%DVIPSSource: TeX output 2024.07.01:0700\n %%BeginProcSet: tex.pro 0 0\n %!\n /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S\n N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72\n mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0\n 0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{\n landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize\n@@ -1758,23 +1758,22 @@\n /UnderlinePosition -100 def\n /UnderlineThickness 50 def\n end readonly def\n /Encoding 256 array\n 0 1 255 {1 index exch /.notdef put} for\n dup 44 /comma put\n dup 48 /zero put\n+dup 49 /one put\n dup 50 /two put\n-dup 51 /three put\n-dup 53 /five put\n+dup 52 /four put\n dup 58 /colon put\n-dup 65 /A put\n-dup 103 /g put\n-dup 115 /s put\n-dup 116 /t put\n+dup 74 /J put\n+dup 108 /l put\n dup 117 /u put\n+dup 121 /y put\n readonly def\n currentdict end\n currentfile eexec\n D9D66F633B846AB284BCF8B0411B772DE5CE32340DC6F28AF40857E4451976E7\n 5182433CF9F333A38BD841C0D4E68BF9E012EB32A8FFB76B5816306B5EDF7C99\n 8B3A16D9B4BC056662E32C7CD0123DFAEB734C7532E64BBFBF5A60336E646716\n EFB852C877F440D329172C71F1E5D59CE9473C26B8AEF7AD68EF0727B6EC2E0C\n@@ -1955,79 +1954,67 @@\n 7CA1534C4D5B05FC33F83790ECFD7641DF3FB94289E2A1F6E7D29AB1228A867A\n 6E1EF0E9C6F899B491DC18401C2C0A05FFFED46A72C245F7529B8EA55A038082\n 8512307217D2A233C37004085BA3AEE379269F9FA7D0ADB4B19A95CC2AFE686E\n 55D88E47257C1FE6F235FEA295910569FE6DD5995512562359CC821E85A6C7A5\n 79B470A9E340A6985189FF8B6AF914A6B0ECF93F47903221F95DE894A8F05B05\n B7D99CD533EC5F931B18E6B39BECF67FA2D6DD1AEC76772B068BE06335A94C05\n 7A4DDEE77B66101DA855C17AC312600370B34E31F5EC3A01300A8EB60B4C9767\n-1B2FA10DF7E91D3BB34A1B1CE7A0015A57C813E0280D873ADB88440048702D1F\n-77994EE04EC3B4531D6E1888C86A8F0DA6CF1F056F16AB0DD76C862830F89DA4\n-28923B3AA543E0D6E41D3BD283E600BC11F889315EE92C675C109C81065ED1BC\n-82A5583D1B723D50051B0557A367887F5B263014C6E77288B4883C50889473D3\n-3787BAD4BEB88BD1353AFA5B73E61814819537E7FF09F53EF94792BB3DD36ED0\n-002D0E7A6CDAB85A9C17AF5664BCB5A71663B861880F3ECCABC8E7A2FC81A4CC\n-AE7A87503FDC1CE0077BA51ECC7B43B60793FED8E9AAD5BBD03ADD6183DCD26D\n-24A74163611C05562437644EF9B8889FD4F9D311911204FEFD35237486F2D2D0\n-B6783A03BF12EA6D19D6D0F87E4D08515F12F9CBF1961CAA71E0D69FE3C4C4D2\n-7C7FB64ED24F8684C8F00C2BEDEA53EA390CDC0B5BEBD7DD982580B2EA1F1F89\n-CFED5916630DC2BA32BB9180277E1ABC339B3B7DE086717BD93F7FF3681BA5B3\n-FCF671C4B293C2DE4A322F0AA3323A4934444C69F23EF90120B8755482757759\n-C457A435FB8BB4922BD92C5F3D9555D978275C510183E29DFF2FCE4ABBFC18DE\n-76CAD3B486BA12047DD808CD4D521A0FD368E4AE79DE262630983A5D6F0B679D\n-2F005306393C520E1B6987302D029939D94B0178DC55D5264E1FEA468AD4134C\n-8C65B2FBBE8DE8284E8E1F6BFE0B648F44D3DA8E9350D266EDBFD4A7054D9355\n-1E0B185DED37BCF32D3731358F1D707C94109428BAD3CEA456A2A43553E3D2C2\n-F549189201F3D3F715310E3E8C6A2E9AA5141AA9125D203694C7D875C2DD320F\n-C5BCDFC924F6C04DBC7A97349B45ECD0FBD7D2123ED1D3A9F440B1112BE62779\n-47A4592F9285CBD9635EC9091CEC0AFD7E6B6976974081DB9C0E43165BD8584D\n-6CDF08DED287F0883A9FBD351B3F8706BA1E94C7CA487338269482EB8DC1A05D\n-F6632A5D834DE29228C49C5BA65EF7C535A53B380BF4B391F43562147538EE97\n-E799DFC2C40315859F56BBCE9CAE1DF9293F6E2C193ABE7A724EC8F32FA220E7\n-6026877A63E318254F2AF7B1325D63FC4C52B536D3EF354814C2F8F1EEA30569\n-6EF04447DB0F809DF35B4985B9FB4F4BB6087310BE633E76F268B32ABA99CE8E\n-03163DFF4AEDB88E60DD0848C15E90026D7C24D81122EBC07113F9851914A9D5\n-D0E09C2BFDDAF10C5D8208E8329BC0C402F231CD84C95EFDD182AD9756662110\n-274650C7A5BB0D8EFA54EC6C5A49C0EB26701A54779AE8EFBBED824262761602\n-680EDFB38F0FE18C0F501F5AA8BF48A8F0DD3E5E1EBEB872F6F6B23964707B32\n-507FC677B9FDDC990E3828B06420F6F968B2F6AE81E76A2144B1ECE905485616\n-CFB29AC96DDE1F5039935D7E385CC13E34DD7EAF276A2EA3A8BF27FD4205AE13\n-7FE620E42F2CF231C6C8DD8EFC5A6CF081E5660D9ADD730D72D15C02B1E15FF3\n-D741D3B1EB1E666C4E562219033C1E2EF3F96E136998B2E1890395A3637A2C02\n-DE1C46AFCA8D898439F06606A2295D3F7ED6C7DB250C61B6B97A0D5EDDB9657E\n-E790B4E07540BB1026036F4A0D00E7F16FD757AD61D686620C6814B7DCEC43E8\n-FD36D9E75BA554F64548A67D9B0A26E11784E58D4357FC251D71B5D6D8BFDDE0\n-D3BF0E825DA5312C1904AF13C5905C2ADF79C357476183D2EC5A95243235E861\n-2F98D9EE77EF8F8CB3EC6BD358C5ED37DD3AF44D60575E7774BF96F1AE9DFAD1\n-F8646DEDF21D10311854726B8F7D25876BB1EF78E2442B16ED4B851816CF0A27\n-11FDFCE525002A1A7C3E62CD2A3EDE6FAADB026D2F3A46C030ADB22422CA8FF5\n-2545ED58C0D9FB5BDB55FE674301E91A75B005B86BD201D246F7ADACE50419FD\n-AC3312CAC5EB78A36F0E5F62E65AC92129CB574AAC59E0A7C1390DFC61F39D9E\n-D7036742F2F6E64D1EF8157E9CCF65F3EEDC6A8220235978B8E06EB80F649F3E\n-204CFB497F49306EA8E1F7B62305978A28F1E771ED82C6592C71022154E4062A\n-A92335EFC65D6DED9C686899FFD7AA2988740618C03C5E362E1AF352E3BE4602\n-5530C51E5FC8E9082DF79199CC91C50174000D337D86127AC807C5A3C81DDE57\n-7A68AEE7230949B925365C214D77C80E87CEE218ABC94023717EA43BA5D8A7C8\n-8A8B9BD1B767996AE33050E3D922ED0574E3579C57E4BDDAD35883806AFDF260\n-3AB5D83D451583262E580FFDB7A27D82396AF18D92B849A3F7A7E621987D5DF0\n-038F876C6E9CA47FB11AF05F0019191C5DDC5F0177AD421E94BC66D0CCB82F1F\n-93A80836284B095503752C600F72E2C89112ABFA5B76152691264103B268B3E5\n-8816724ADADB38740001A9AACE05C8AF02D72918606DC22EFC8BF0DA0FD12FFE\n-D3A09F8E28057F327BFB633E604B1EAD478637B1D9631650B314CC62D7E0E87F\n-9D3FE1FFA23BB6E3006C3E39BED52F6B0C1C651B5913878F36DA0BF776889165\n-68BA3456B40B8B471CA8FF5238E43D9113E052A2B8D2EAA2433D3F89FCA48AFB\n-5E842913E4ED6DF9623354059CD1F1707B126FED80349787C869883120183EDD\n-249185A55503FAC53898F52170D05CAC62BB742CF9702C0518AED6B27CDC401C\n-932E02143FD916703F360CB31049501B35EF3EDDFED791090D0CFA221FD1DB32\n-7D4759CE07983AE29C258C705D11E7D9481EEAAB9B6BA65CDCF0AA0057BD6FEA\n-ABBFBD3ABF2A7BFB550C3D2A16DC447384A89F3DB6D9C2DBDCA997ABE35A7706\n-633D328AECEDB5BD07070C1B96267FD73B45791DD18194F60D358091FBE88409\n-973529806F3D2C9E6E39091F90A14B560A987E0B9490B9B690FB489B8E253070\n-D7C54447BE0E0A0BFEAEFFB581DC1300E6EC382984673BF0665632404E59B5BF\n-5D5F0A1C956E618C0487751CA5DAE8A95C214F76ED756694EF273679CD2D85CB\n-949DF385BD50491649EFEFDA1574921D7460143D42A100D2C76E55F0BC\n+1B2FA10DF7E91D3BB34A1B1CE7A0015A57C813E0280D873ADB8844004B9BA1CC\n+580D3C6BDA4DC1B80B4365F1C80512453FC5316EC2D928FB731C3D6403E3C18B\n+E8424D644DF5E9A2134229C5C91CA68DB8E85BA2BB40F538F585DA6FA4037718\n+B8053EBBA1E765346BCD5BDAA6C38115D31611D8A87A2238C145F2DA2F92E4DF\n+3987BD9C4D2A3D460E8941A68B125BCD9EE4F9FD262C4C8A71F47A2C81975635\n+F1B981C274C53FA2ACCDE4C9D0A7C62D6C1EFF91CFC6712CA6A9F333C9564FCB\n+2A70F0AD715A79B10A08AB069E2A3C93BC0AED19D0CA10134B8DDDE8AF548DB2\n+3A4AAA9C29682CF135BB767DAA16169A127EB50A7EECEB6480CF56A7D0F8AC56\n+4A5090B3D75A790372886AF568D94C8165975A05BFBFDF1FFBA45F70700BB9E0\n+57F3249EF9E9C8AD9CBCF6E4FD592DC4CDD2CC7C0BC3130C1059096C657BE453\n+A2CBACE93420210E27AF56CA229BD6D982FB68B3FDC6D44478B922C4231C47EE\n+E500232F6C11D92DEB955F66DF52B92B22E7352790CC2DCBAC53965D57AC2920\n+68B7D520DE25047146EFEB06B9AD4E2A94243C7E5239F0BC2FC312B16051D52C\n+0B92C217B6B42997321AE4F8BB066754B7AA3F15069EF59224E8A442CE471AA7\n+E8049A3DD9EDA09CCEE4998998661CF7DB35E952F6C65DAEB3013951C59F3E09\n+157F313B0237876E1C0190F0473819570B8C0205AADF05D787CC00979CFB327A\n+289382B22DDA6F12804ED0ED5B179E36A995A2A59E1B66E75130DBE9109C813B\n+94403E0DEA8314A1E9DB474D7FA83C0BAFD08033E6A6215844C1D26BE15F1251\n+A1605E8DF9A9C601ED37379530BC1C82BE5463C6C711C5652BFD6262485AA9CA\n+B8C4A117593001D08D980041E2A83C190DCE8E6CD3D334E5CC19FC05DB30F7F7\n+24A305C4DBB31F0651392B99D44B4302333BDF7E326FD256DD75D309C6E73F85\n+FA71B35FD1F9BEFF4C7A1076362EEB0A85492933B6006086A7B8C1928CF2D1EE\n+FD4344409257BB802C117E739960821CD3C88BFBA5669FF16F610AD638AF3677\n+8674C985E6767253ED5769F71BEA5E9BB02A751F9E62EE2B18AC19D975FDEAE9\n+8B8822367FF177A7E850766DE99ED3366D46464612926430012212A90F8E85F4\n+4760B40D5B86B90819EE410382D22D8ED82D0B0AB00C93E10CD365F8766D1C87\n+B4A866021FB6F6AC3D250CC601989B1B8FE6B1098A48282D2CF258BF38FEE940\n+CE0141FB1344156DE7712A8F2DBF700174F12616EE17C852210D96D03E5E6635\n+D439EB6E84A383DDD32AD72DADE6F931FDBABBDC726C36081C96018FC95EAE13\n+DA1F8DBC2D8355AC9792649653225393F4A7A88F3B9443FEEB75E2C15BF93F09\n+CCBA7FABC022BE26F4C28152D5DA6D690494AD4EC0DA1B598AE12536BADF88B5\n+5E20EB452546389F57FF55459567B453AE1831C57D22FA6A4FDF441EDAFDB7FB\n+4F4B707C1FF9159C40F7B5DD519FC07815EE91B8D756B6C18500BCF47D0D9E45\n+6A2D51B6AA5AEAAC9AB2DEF7F0FDE957B6C179CBADEECAC7E9CEC248AB135EB4\n+FBF83D002FF859B574EF36C371540EF2BCFCEF5C2E7863AEDD7C3C965103453B\n+023A9CEC1D5C45B88827ADF4AE0C6746F3C7E6A944427DAEC493601019583A16\n+0F846CE00EAE89EEFF9CE68A0E1D6EBB8FDD8A45D1BF399B36A8328EC957CB8B\n+D842A56269C8C9A6B472C9E65BCBC090606B4E8A7EF4ABDEA120C9F9B3969A1C\n+2EB102925F4E155160E58000E1ADB0D19E10EFD96F6C3225EEE8FC24D122C069\n+C11F1A69DC383F7DACD2F3929BD135CE69787C6E7560AC4B683FE5D9AAFD2E89\n+EE6D95E38C9B726B416E28169A11E29559DBA9AECD714CF318FCB78F34A0E562\n+9C00FE0C6D5A848557D9A82EC2BEFCD30B5EDC0B23C5BA9F812C864394C8B9D1\n+B08BAC9CF94E70FF842306ACCFE6E39A56777C712904A3AB29FBD19275E19E06\n+B35B37CFFFCEC81CAF2D85A853663FAFCFFED1EA77064AA28C15BC94910683BC\n+D09513079DE9EE18E97CC2403DD206516D7F652A3459870757F34EEDCEF952C3\n+FE8004F4716B5BD6774E455010B0BB1E61FCD66B9F14F9BBCCF3E55A158EE96E\n+9A05BDFDDC7706D4BC28FDDC4004EF3A430C607EBDF115E0C996454D70C8BB42\n+D7C83A454B116663D648C23CE2B33365810DE2B64D4AE011BC8043BC3E05B94D\n+1700F859C6AFC6515C1C42FA104EE3E8F3FA5F80252C2E79B00ED27F675FFD09\n+B50BF7A3C63CF4856F909DF969D7DD3EA05CABDD1E71A58CFC2AB5F614B4E5E0\n+25CF92E9FB66ACEBE05DF5E033DA8AD3EE32D94C02D98DD7DA99FAB5AEA595C3\n+2987DC122F0242D76B782349E4069DE0CDD6EF4375C680CBFE4C8F24F2AE89BF\n+7785F5EA7435A91500F265022C307E8ADEAAE1C6\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n@@ -4994,20 +4981,20 @@\n 62 50 1[54 11[86 1[62 84 84 77 84 5[42 2[70 3[80 8[56\n 56 56 56 56 56 56 56 56 56 1[31 46[{}40 99.6264 /CMBX12\n rf /Fc 135[62 3[62 1[62 2[62 62 32[62 6[62 1[62 68[{}8\n 119.552 /CMTT12 rf /Fd 134[71 2[71 75 52 53 55 1[75 67\n 75 112 2[41 37 75 67 41 61 75 60 75 65 13[75 2[92 11[103\n 16[67 67 67 2[37 46[{}27 119.552 /CMBX12 rf /Fe 132[52\n 39[58 2[71 79 2[63 6[69 69[{}6 90.9091 /CMBX10 rf /Ff\n-138[51 35 36 11[45 37[68 6[25 4[45 1[45 45 1[45 3[25\n-44[{}11 90.9091 /CMSL10 rf /Fg 148[45 3[45 45 9[61 61\n-31[45 4[0 51[71 1[71{}9 90.9091 /CMSY10 rf /Fh 135[42\n-1[42 49 30 37 38 1[46 46 51 74 23 42 1[28 46 42 28 42\n-46 42 1[46 12[65 1[66 11[59 62 69 2[68 6[28 58[{}27 90.9091\n-/CMTI10 rf\n+134[48 3[51 8[25 33[47 15[25 5[45 1[45 45 45 3[25 44[{}10\n+90.9091 /CMSL10 rf /Fg 148[45 3[45 45 9[61 61 31[45 4[0\n+51[71 1[71{}9 90.9091 /CMSY10 rf /Fh 135[42 1[42 49 30\n+37 38 1[46 46 51 74 23 42 1[28 46 42 28 42 46 42 1[46\n+12[65 1[66 11[59 62 69 2[68 6[28 58[{}27 90.9091 /CMTI10\n+rf\n %DVIPSBitmapFont: Fi tcrm1095 10.95 1\n [/Grave/Acute/Circumflex/Tilde/Dieresis/Hungarumlaut/Ring/Caron/Breve/Macron\n /Dotaccent/cedilla/ogonek/quotesinglbase.ts1 4{/.notdef}repeat\n /quotedblbase.ts1/.notdef/.notdef/twelveudash/threequartersemdash\n /afii61664.cap/arrowleft/arrowright/tieaccentlowercase/tieaccentcapital\n /tieaccentlowercase.new/tieaccentcapital.new/.notdef/afii61664.asc/uni2422 3\n {/.notdef}repeat/dollar/.notdef/.notdef/quotesingle/.notdef/.notdef\n@@ -5139,17 +5126,17 @@\n Fk(P)43 b Fm(and)30 b Fk(Q)g Fm(are)h(the)f(iden)m(tit)m(y)-8\n b(.)111 5294 y(3.)46 b Fk(A)k Fm(=)e Fk(QR)e Fm(for)e(square)g(or)h\n (rectangular)h Fk(A)p Fm(.)84 b Fk(Q)44 b Fm(is)h(an)f(orthogonal)i\n (matrix)f(that)h(is)e(not)h(explicitly)227 5407 y(computed)30\n b(or)h(stored.)41 b Fk(R)31 b Fm(is)f(upp)s(er)e(triangular.)1927\n 5656 y(1)p eop end\n %%Page: 2 2\n-TeXDict begin 2 1 bop 0 100 a Fm(2)p 136 100 1074 4 v\n-1256 w Fl(FrontMtx)28 b Ff(:)41 b Fh(DRAFT)30 b Ff(August)g(3,)h(2025)p\n-2826 100 V 141 399 a Fm(The)44 b(factorization)j(is)d(p)s(erformed)f\n+TeXDict begin 2 1 bop 0 100 a Fm(2)p 136 100 1132 4 v\n+1314 w Fl(FrontMtx)28 b Ff(:)41 b Fh(DRAFT)30 b Ff(July)g(1,)h(2024)p\n+2768 100 V 141 399 a Fm(The)44 b(factorization)j(is)d(p)s(erformed)f\n (using)h(a)g(one)h(dimensional)f(decomp)s(osition)h(of)f(the)h(global)g\n (sparse)0 511 y(matrix.)c(A)31 b(t)m(ypical)h Fh(fr)-5\n b(ont)31 b Fm(of)g(the)f(matrix)h(is)f(found)f(the)i(shaded)f(p)s\n (ortion)g(of)g(the)h(\\014gure)e(b)s(elo)m(w.)1650 1237\n y @beginspecial 0 @llx 0 @lly 100 @urx 100 @ury 720 @rwi\n 720 @rhi @setspecial\n %%BeginDocument: ../../FrontMtx/doc/simple.eps\n@@ -5233,20 +5220,20 @@\n b(ject,)36 b(but)d(it)i(do)s(es)f(not)g(mo)s(dify)f(the)h(ob)5\n b(ject,)37 b(nor)c(do)s(es)h(it)g(o)m(wn)g(the)h(storage)g(for)f(the)g\n Fl(ETree)227 5407 y Fm(ob)5 b(ject.)42 b(Th)m(us)29 b(m)m(ultiple)i\n (fron)m(t)g(matrices)g(can)g(all)g(p)s(oin)m(t)f(to)i(the)e(same)h\n Fl(ETree)e Fm(ob)5 b(ject)31 b(sim)m(ultaneously)-8 b(.)p\n eop end\n %%Page: 3 3\n-TeXDict begin 3 2 bop 91 100 1074 4 v 1256 100 a Fl(FrontMtx)28\n-b Ff(:)41 b Fh(DRAFT)121 b Ff(August)30 b(3,)h(2025)p\n-2779 100 V 1074 w Fm(3)137 399 y Fi(\\210)45 b Fm(An)35\n-b Fl(IVL)g Fm(ob)5 b(ject)36 b(\\()p Fl(I)p Fm(n)m(teger)g\n-Fl(V)p Fm(ector)h Fl(L)p Fm(ist\\),)g(con)m(tains)f(the)g(sym)m(b)s\n-(olic)g(factorization.)58 b(F)-8 b(or)36 b(eac)m(h)g(fron)m(t,)h(it)227\n+TeXDict begin 3 2 bop 91 100 1132 4 v 1313 100 a Fl(FrontMtx)29\n+b Ff(:)40 b Fh(DRAFT)121 b Ff(July)30 b(1,)h(2024)p 2721\n+100 V 1132 w Fm(3)137 399 y Fi(\\210)45 b Fm(An)35 b Fl(IVL)g\n+Fm(ob)5 b(ject)36 b(\\()p Fl(I)p Fm(n)m(teger)g Fl(V)p\n+Fm(ector)h Fl(L)p Fm(ist\\),)g(con)m(tains)f(the)g(sym)m(b)s(olic)g\n+(factorization.)58 b(F)-8 b(or)36 b(eac)m(h)g(fron)m(t,)h(it)227\n 511 y(giv)m(es)31 b(the)g(list)f(of)g(in)m(ternal)h(and)e(external)i\n (ro)m(ws)f(and)f(columns,)h(used)f(to)h(initialize)j(a)d(fron)m(t)g\n (prior)f(to)i(its)227 624 y(factorization.)55 b(F)-8\n b(or)35 b(a)f(factorization)j(without)d(piv)m(oting,)j(this)d(ob)5\n b(ject)35 b(stores)g(the)f(index)g(information)227 737\n y(for)i(the)g(factors,)i(and)d(so)h(is)g(used)f(during)g(the)h(forw)m\n (ard)f(and)g(bac)m(ksolv)m(es.)59 b(F)-8 b(or)37 b(a)f(factorization)i\n@@ -5327,17 +5314,17 @@\n b(After)26 b(the)f(factorization)227 5181 y(is)45 b(complete,)50\n b(the)45 b(data)h(structures)e(are)i(p)s(ostpro)s(cessed)e(to)h(yield)g\n (submatrices)g(that)h(con)m(tain)g(the)227 5294 y(coupling)34\n b(b)s(et)m(w)m(een)g(fron)m(ts.)50 b(The)33 b(w)m(orking)h(storage)h\n (during)d(the)i(solv)m(es)g(is)g(also)g(managed)g(b)m(y)g\n Fl(SubMtx)227 5407 y Fm(ob)5 b(jects.)p eop end\n %%Page: 4 4\n-TeXDict begin 4 3 bop 0 100 a Fm(4)p 136 100 1074 4 v\n-1256 w Fl(FrontMtx)28 b Ff(:)41 b Fh(DRAFT)30 b Ff(August)g(3,)h(2025)p\n-2826 100 V 137 399 a Fi(\\210)45 b Fm(Eac)m(h)25 b(submatrix)f(represen)\n+TeXDict begin 4 3 bop 0 100 a Fm(4)p 136 100 1132 4 v\n+1314 w Fl(FrontMtx)28 b Ff(:)41 b Fh(DRAFT)30 b Ff(July)g(1,)h(2024)p\n+2768 100 V 137 399 a Fi(\\210)45 b Fm(Eac)m(h)25 b(submatrix)f(represen)\n m(ts)h(the)f(coupling)h(b)s(et)m(w)m(een)g(t)m(w)m(o)h(fron)m(ts,)g\n Fk(I)31 b Fm(and)24 b Fk(J)9 b Fm(.)39 b(T)-8 b(o)25\n b(enable)g(rapid)f(random)227 511 y(access)30 b(to)f(these)f\n (submatrices,)h(w)m(e)f(use)g(a)h Fl(I2Ohash)d Fm(ob)5\n b(ject)29 b(that)f(is)h(a)f(hash)f(table)i(whose)f(k)m(eys)h(are)g(t)m\n (w)m(o)227 624 y(in)m(tegers)j(and)e(whose)g(data)h(is)f(a)h\n Fl(void)47 b(*)30 b Fm(p)s(oin)m(ter.)137 808 y Fi(\\210)45\n@@ -5399,17 +5386,17 @@\n (sparsityflag)27 b Fm(:)41 b(\\015ag)31 b(to)g(sp)s(ecify)f(storage)i\n (of)e(factors.)330 5153 y Fe({)45 b Fl(0)30 b Fm(|)h(eac)m(h)g(fron)m\n (t)g(is)f(dense)330 5294 y Fe({)45 b Fl(1)g Fm(|)h(a)g(fron)m(t)f(ma)m\n (y)h(b)s(e)f(sparse)g(due)g(to)h(en)m(tries)h(dropp)s(ed)c(b)s(ecause)j\n (they)f(are)h(b)s(elo)m(w)g(a)g(drop)427 5407 y(tolerance.)p\n eop end\n %%Page: 5 5\n-TeXDict begin 5 4 bop 91 100 1074 4 v 1256 100 a Fl(FrontMtx)28\n-b Ff(:)41 b Fh(DRAFT)121 b Ff(August)30 b(3,)h(2025)p\n-2779 100 V 1074 w Fm(5)137 399 y Fi(\\210)45 b Fl(int)i(dataMode)28\n+TeXDict begin 5 4 bop 91 100 1132 4 v 1313 100 a Fl(FrontMtx)29\n+b Ff(:)40 b Fh(DRAFT)121 b Ff(July)30 b(1,)h(2024)p 2721\n+100 V 1132 w Fm(5)137 399 y Fi(\\210)45 b Fl(int)i(dataMode)28\n b Fm(:)41 b(\\015ag)31 b(to)g(sp)s(ecify)f(data)h(storage.)330\n 583 y Fe({)45 b Fl(1)30 b Fm(|)h(one-dimensional,)g(used)f(during)f\n (the)h(factorization.)330 727 y Fe({)45 b Fl(2)30 b Fm(|)h(t)m(w)m\n (o-dimensional,)h(used)e(during)f(the)h(solv)m(es.)137\n 911 y Fi(\\210)45 b Fl(int)i(nentD)29 b Fm(:)i(n)m(um)m(b)s(er)e(of)h\n (en)m(tries)h(in)f Fk(D)137 1096 y Fi(\\210)45 b Fl(int)i(nentL)29\n b Fm(:)i(n)m(um)m(b)s(er)e(of)h(en)m(tries)h(in)f Fk(L)137\n@@ -5466,17 +5453,17 @@\n (submatrices)g(in)g Fk(L)p Fm(,)i(used)d(during)227 5110\n y(the)c(solv)m(es.)137 5294 y Fi(\\210)45 b Fl(I2Ohash)h(*upperhash)33\n b Fm(:)51 b(p)s(oin)m(ter)35 b(to)i(a)f Fl(I2Ohash)d\n Fm(hash)i(table)h(for)g(submatrices)f(in)g Fk(U)10 b\n Fm(,)37 b(used)e(during)227 5407 y(the)c(solv)m(es.)p\n eop end\n %%Page: 6 6\n-TeXDict begin 6 5 bop 0 100 a Fm(6)p 136 100 1074 4 v\n-1256 w Fl(FrontMtx)28 b Ff(:)41 b Fh(DRAFT)30 b Ff(August)g(3,)h(2025)p\n-2826 100 V 137 399 a Fi(\\210)45 b Fl(SubMtxManager)f(*manager)30\n+TeXDict begin 6 5 bop 0 100 a Fm(6)p 136 100 1132 4 v\n+1314 w Fl(FrontMtx)28 b Ff(:)41 b Fh(DRAFT)30 b Ff(July)g(1,)h(2024)p\n+2768 100 V 137 399 a Fi(\\210)45 b Fl(SubMtxManager)f(*manager)30\n b Fm(:)43 b(p)s(oin)m(ter)31 b(to)h(an)g(ob)5 b(ject)32\n b(that)g(manages)h(the)e(instances)h(of)g(submatrices)227\n 511 y(during)d(the)i(factors)g(and)f(solv)m(es.)137 719\n y Fi(\\210)45 b Fl(Lock)i(*lock)27 b Fm(:)40 b(p)s(oin)m(ter)30\n b(to)f(a)h Fl(Lock)e Fm(lo)s(c)m(k)i(used)e(in)h(a)g(m)m(ultithreaded)g\n (en)m(vironmen)m(t)h(to)g(ensure)e(exlusiv)m(e)227 832\n y(access)i(while)f(allo)s(cating)i(storage)g(in)d(the)h\n@@ -5536,25 +5523,25 @@\n (ost-pro)s(cessed\\),)i(and)f Fl(0)g Fm(otherwise.)0 5057\n y Fd(1.2)135 b(Protot)l(yp)t(es)46 b(and)f(descriptions)g(of)g\n Fc(FrontMtx)c Fd(metho)t(ds)0 5294 y Fm(This)g(section)j(con)m(tains)f\n (brief)f(descriptions)g(including)f(protot)m(yp)s(es)i(of)f(all)h\n (metho)s(ds)f(that)h(b)s(elong)f(to)h(the)0 5407 y Fl(FrontMtx)28\n b Fm(ob)5 b(ject.)p eop end\n %%Page: 7 7\n-TeXDict begin 7 6 bop 91 100 1074 4 v 1256 100 a Fl(FrontMtx)28\n-b Ff(:)41 b Fh(DRAFT)121 b Ff(August)30 b(3,)h(2025)p\n-2779 100 V 1074 w Fm(7)0 399 y Fb(1.2.1)112 b(Basic)38\n-b(metho)s(ds)0 593 y Fm(As)d(usual,)h(there)f(are)g(four)f(basic)h\n-(metho)s(ds)g(to)g(supp)s(ort)e(ob)5 b(ject)36 b(creation,)i(setting)e\n-(default)f(\\014elds,)h(clearing)0 706 y(an)m(y)31 b(allo)s(cated)h\n-(data,)f(and)f(free'ing)h(the)g(ob)5 b(ject.)111 930\n-y(1.)46 b Fl(FrontMtx)g(*)h(FrontMtx_new)e(\\()i(void)g(\\))g(;)227\n-1078 y Fm(This)35 b(metho)s(d)g(simply)g(allo)s(cates)j(storage)f(for)e\n-(the)h Fl(FrontMtx)d Fm(structure)i(and)g(then)g(sets)h(the)g(default)\n-227 1191 y(\\014elds)30 b(b)m(y)g(a)h(call)h(to)f Fl(FrontMtx)p\n+TeXDict begin 7 6 bop 91 100 1132 4 v 1313 100 a Fl(FrontMtx)29\n+b Ff(:)40 b Fh(DRAFT)121 b Ff(July)30 b(1,)h(2024)p 2721\n+100 V 1132 w Fm(7)0 399 y Fb(1.2.1)112 b(Basic)38 b(metho)s(ds)0\n+593 y Fm(As)d(usual,)h(there)f(are)g(four)f(basic)h(metho)s(ds)g(to)g\n+(supp)s(ort)e(ob)5 b(ject)36 b(creation,)i(setting)e(default)f\n+(\\014elds,)h(clearing)0 706 y(an)m(y)31 b(allo)s(cated)h(data,)f(and)f\n+(free'ing)h(the)g(ob)5 b(ject.)111 930 y(1.)46 b Fl(FrontMtx)g(*)h\n+(FrontMtx_new)e(\\()i(void)g(\\))g(;)227 1078 y Fm(This)35\n+b(metho)s(d)g(simply)g(allo)s(cates)j(storage)f(for)e(the)h\n+Fl(FrontMtx)d Fm(structure)i(and)g(then)g(sets)h(the)g(default)227\n+1191 y(\\014elds)30 b(b)m(y)g(a)h(call)h(to)f Fl(FrontMtx)p\n 1330 1191 29 4 v 32 w(setDefaultFields\\(\\))p Fm(.)111\n 1374 y(2.)46 b Fl(void)h(FrontMtx_setDefaultField)o(s)42\n b(\\()47 b(FrontMtx)f(*frontmtx)f(\\))j(;)227 1523 y Fm(The)40\n b(structure's)g(\\014elds)g(are)h(set)g(to)g(default)g(v)-5\n b(alues:)61 b Fl(nfront)p Fm(,)41 b Fl(neqns)p Fm(,)h\n Fl(nentD)p Fm(,)d Fl(nentL)p Fm(,)h Fl(nentU)f Fm(and)227\n 1636 y Fl(nlocks)29 b Fm(are)i(set)g(to)g(zero.)41 b(Fiv)m(e)32\n@@ -5605,17 +5592,17 @@\n (exits.)111 5111 y(2.)46 b Fl(int)h(FrontMtx_neqns)d(\\()k(FrontMtx)d\n (*frontmtx)g(\\))j(;)227 5259 y Fm(This)30 b(metho)s(d)g(returns)f(the)h\n (n)m(um)m(b)s(er)f(of)i(equations)g(in)f(the)h(matrix.)227\n 5407 y Fh(Err)-5 b(or)34 b(che)-5 b(cking:)40 b Fm(If)30\n b Fl(frontmtx)e Fm(is)j Fl(NULL)p Fm(,)e(an)i(error)f(message)h(is)g\n (prin)m(ted)e(and)h(the)h(program)f(exits.)p eop end\n %%Page: 8 8\n-TeXDict begin 8 7 bop 0 100 a Fm(8)p 136 100 1074 4 v\n-1256 w Fl(FrontMtx)28 b Ff(:)41 b Fh(DRAFT)30 b Ff(August)g(3,)h(2025)p\n-2826 100 V 111 399 a Fm(3.)46 b Fl(Tree)h(*)g(FrontMtx_frontTree)c(\\()\n+TeXDict begin 8 7 bop 0 100 a Fm(8)p 136 100 1132 4 v\n+1314 w Fl(FrontMtx)28 b Ff(:)41 b Fh(DRAFT)30 b Ff(July)g(1,)h(2024)p\n+2768 100 V 111 399 a Fm(3.)46 b Fl(Tree)h(*)g(FrontMtx_frontTree)c(\\()\n 48 b(FrontMtx)d(*frontmtx)g(\\))j(;)227 552 y Fm(This)30\n b(metho)s(d)g(returns)f(the)h Fl(Tree)g Fm(ob)5 b(ject)31\n b(for)f(the)h(fron)m(ts.)227 706 y Fh(Err)-5 b(or)34\n b(che)-5 b(cking:)40 b Fm(If)30 b Fl(frontmtx)e Fm(is)j\n Fl(NULL)p Fm(,)e(an)i(error)f(message)h(is)g(prin)m(ted)e(and)h(the)h\n (program)f(exits.)111 900 y(4.)46 b Fl(void)h(FrontMtx_initialFrontDim)\n o(ensi)o(ons)41 b(\\()48 b(FrontMtx)d(*frontmtx,)g(int)i(J,)1468\n@@ -5683,31 +5670,30 @@\n (submatrix)f Fk(D)3073 5155 y Fj(J)n(;J)3179 5141 y Fm(.)227\n 5294 y Fh(Err)-5 b(or)31 b(che)-5 b(cking:)38 b Fm(If)27\n b Fl(frontmtx)d Fm(is)j Fl(NULL)p Fm(,)f(or)h(if)g Fl(J)f\n Fm(is)h(not)g(in)g Fl([0,nfront\\))p Fm(,)d(an)j(error)g(message)h(is)e\n (prin)m(ted)227 5407 y(and)k(the)h(program)f(exits.)p\n eop end\n %%Page: 9 9\n-TeXDict begin 9 8 bop 91 100 1074 4 v 1256 100 a Fl(FrontMtx)28\n-b Ff(:)41 b Fh(DRAFT)121 b Ff(August)30 b(3,)h(2025)p\n-2779 100 V 1074 w Fm(9)66 399 y(10.)46 b Fl(SubMtx)g(*)i\n-(FrontMtx_upperMtx)43 b(\\()k(FrontMtx)f(*frontmtx,)f(int)i(J,)g(int)g\n-(K)g(\\))h(;)227 554 y Fm(This)32 b(metho)s(d)h(returns)e(a)i(p)s(oin)m\n-(ter)g(to)h(the)f(ob)5 b(ject)33 b(that)h(con)m(tains)g(submatrix)e\n-Fk(U)3087 568 y Fj(J)n(;K)3212 554 y Fm(.)48 b(If)32\n-b Fk(K)k Fm(=)29 b Fk(nf)10 b(r)s(ont)p Fm(,)227 667\n-y(then)30 b(the)h(ob)5 b(ject)31 b(con)m(taining)h Fk(U)1370\n-682 y Fj(J)n(;@)t(J)1547 667 y Fm(is)e(returned.)227\n-823 y Fh(Err)-5 b(or)28 b(che)-5 b(cking:)37 b Fm(If)24\n-b Fl(frontmtx)e Fm(is)i Fl(NULL)p Fm(,)f(or)h(if)g Fl(J)f\n-Fm(is)h(not)h(in)e Fl([0,nfront\\))p Fm(,)g(or)h(if)g\n-Fl(K)g Fm(is)g(not)g(in)f Fl([0,nfront])p Fm(,)227 936\n-y(an)31 b(error)f(message)h(is)f(prin)m(ted)g(and)g(the)h(program)f\n-(exits.)66 1134 y(11.)46 b Fl(SubMtx)g(*)i(FrontMtx_lowerMtx)43\n-b(\\()k(FrontMtx)f(*frontmtx,)f(int)i(K,)g(int)g(J)g(\\))h(;)227\n+TeXDict begin 9 8 bop 91 100 1132 4 v 1313 100 a Fl(FrontMtx)29\n+b Ff(:)40 b Fh(DRAFT)121 b Ff(July)30 b(1,)h(2024)p 2721\n+100 V 1132 w Fm(9)66 399 y(10.)46 b Fl(SubMtx)g(*)i(FrontMtx_upperMtx)\n+43 b(\\()k(FrontMtx)f(*frontmtx,)f(int)i(J,)g(int)g(K)g(\\))h(;)227\n+554 y Fm(This)32 b(metho)s(d)h(returns)e(a)i(p)s(oin)m(ter)g(to)h(the)f\n+(ob)5 b(ject)33 b(that)h(con)m(tains)g(submatrix)e Fk(U)3087\n+568 y Fj(J)n(;K)3212 554 y Fm(.)48 b(If)32 b Fk(K)k Fm(=)29\n+b Fk(nf)10 b(r)s(ont)p Fm(,)227 667 y(then)30 b(the)h(ob)5\n+b(ject)31 b(con)m(taining)h Fk(U)1370 682 y Fj(J)n(;@)t(J)1547\n+667 y Fm(is)e(returned.)227 823 y Fh(Err)-5 b(or)28 b(che)-5\n+b(cking:)37 b Fm(If)24 b Fl(frontmtx)e Fm(is)i Fl(NULL)p\n+Fm(,)f(or)h(if)g Fl(J)f Fm(is)h(not)h(in)e Fl([0,nfront\\))p\n+Fm(,)g(or)h(if)g Fl(K)g Fm(is)g(not)g(in)f Fl([0,nfront])p\n+Fm(,)227 936 y(an)31 b(error)f(message)h(is)f(prin)m(ted)g(and)g(the)h\n+(program)f(exits.)66 1134 y(11.)46 b Fl(SubMtx)g(*)i(FrontMtx_lowerMtx)\n+43 b(\\()k(FrontMtx)f(*frontmtx,)f(int)i(K,)g(int)g(J)g(\\))h(;)227\n 1290 y Fm(This)32 b(metho)s(d)g(returns)f(a)i(p)s(oin)m(ter)g(to)g(the)\n g(ob)5 b(ject)34 b(that)f(con)m(tains)h(submatrix)d Fk(L)3084\n 1304 y Fj(K)q(;J)3213 1290 y Fm(.)47 b(If)33 b Fk(K)i\n Fm(=)29 b Fk(nf)10 b(r)s(ont)p Fm(,)227 1403 y(then)30\n b(the)h(ob)5 b(ject)31 b(con)m(taining)h Fk(L)1370 1418\n y Fj(@)t(J)6 b(;J)1555 1403 y Fm(is)30 b(returned.)227\n 1558 y Fh(Err)-5 b(or)28 b(che)-5 b(cking:)37 b Fm(If)24\n@@ -5765,39 +5751,39 @@\n b(metho)s(d)g(returns)f(a)i(p)s(oin)m(ter)f(to)h(the)g\n Fl(IVL)e Fm(ob)5 b(ject)31 b(that)g(holds)f(the)h(lo)m(w)m(er)g(blo)s\n (c)m(ks.)227 5407 y Fh(Err)-5 b(or)34 b(che)-5 b(cking:)40\n b Fm(If)30 b Fl(frontmtx)e Fm(is)j Fl(NULL)p Fm(,)e(an)i(error)f\n (message)h(is)g(prin)m(ted)e(and)h(the)h(program)f(exits.)p\n eop end\n %%Page: 10 10\n-TeXDict begin 10 9 bop 0 100 a Fm(10)p 182 100 1052 4\n-v 1234 w Fl(FrontMtx)28 b Ff(:)41 b Fh(DRAFT)30 b Ff(August)g(3,)h\n-(2025)p 2849 100 V 0 399 a Fb(1.2.3)112 b(Initialization)39\n-b(metho)s(ds)111 604 y Fm(1.)46 b Fl(void)h(FrontMtx_init)d(\\()k\n-(FrontMtx)d(*frontmtx,)g(ETree)h(*frontETree,)705 716\n-y(IVL)g(*symbfacIVL,)f(int)i(type,)f(int)h(symmetryflag,)d(int)j\n-(sparsityflag,)705 829 y(int)f(pivotingflag,)f(int)i(lockflag,)e(int)i\n-(myid,)f(IV)h(*ownersIV,)705 942 y(SubMtxManager)d(*manager,)h(int)i\n-(msglvl,)f(FILE)g(*msgFile)g(\\))h(;)227 1101 y Fm(This)23\n-b(metho)s(d)h(initializes)i(the)e(ob)5 b(ject,)26 b(allo)s(cating)h\n-(and)c(initializing)j(the)e(in)m(ternal)h(ob)5 b(jects)25\n-b(as)f(necessary)-8 b(.)227 1214 y(See)41 b(the)f(previous)g(section)h\n-(on)f(data)h(structures)f(for)g(the)g(meanings)h(of)f(the)g\n-Fl(type)p Fm(,)i Fl(symmetryflag)p Fm(,)227 1327 y Fl(sparsityflag)34\n-b Fm(and)j Fl(pivotingflag)d Fm(parameters.)63 b(The)37\n-b Fl(lockflag)e Fm(parameter)j(has)f(the)g(follo)m(wing)227\n-1440 y(meaning.)337 1645 y Fi(\\210)45 b Fl(0)30 b Fm(|)h(the)f\n-Fl(Lock)f Fm(ob)5 b(ject)32 b(is)e(not)h(allo)s(cated)h(or)e\n-(initialized.)337 1800 y Fi(\\210)45 b Fl(1)d Fm(|)h(the)f\n-Fl(Lock)f Fm(ob)5 b(ject)44 b(is)e(allo)s(cated)j(and)c(initialized)k\n-(to)e(sync)m(hronize)f(only)h(threads)f(in)g(this)427\n-1913 y(pro)s(cess.)337 2068 y Fi(\\210)j Fl(2)27 b Fm(|)g(the)h\n-Fl(Lock)e Fm(ob)5 b(ject)28 b(is)f(allo)s(cated)j(and)c(initialized)j\n-(to)f(sync)m(hronize)g(threads)f(in)g(this)g(and)g(other)427\n-2181 y(pro)s(cesses.)227 2386 y(If)j Fl(lockflag)e Fm(is)j(not)f\n+TeXDict begin 10 9 bop 0 100 a Fm(10)p 182 100 1109 4\n+v 1292 w Fl(FrontMtx)28 b Ff(:)40 b Fh(DRAFT)31 b Ff(July)e(1,)i(2024)p\n+2791 100 V 0 399 a Fb(1.2.3)112 b(Initialization)39 b(metho)s(ds)111\n+604 y Fm(1.)46 b Fl(void)h(FrontMtx_init)d(\\()k(FrontMtx)d(*frontmtx,)g\n+(ETree)h(*frontETree,)705 716 y(IVL)g(*symbfacIVL,)f(int)i(type,)f(int)\n+h(symmetryflag,)d(int)j(sparsityflag,)705 829 y(int)f(pivotingflag,)f\n+(int)i(lockflag,)e(int)i(myid,)f(IV)h(*ownersIV,)705\n+942 y(SubMtxManager)d(*manager,)h(int)i(msglvl,)f(FILE)g(*msgFile)g(\\))\n+h(;)227 1101 y Fm(This)23 b(metho)s(d)h(initializes)i(the)e(ob)5\n+b(ject,)26 b(allo)s(cating)h(and)c(initializing)j(the)e(in)m(ternal)h\n+(ob)5 b(jects)25 b(as)f(necessary)-8 b(.)227 1214 y(See)41\n+b(the)f(previous)g(section)h(on)f(data)h(structures)f(for)g(the)g\n+(meanings)h(of)f(the)g Fl(type)p Fm(,)i Fl(symmetryflag)p\n+Fm(,)227 1327 y Fl(sparsityflag)34 b Fm(and)j Fl(pivotingflag)d\n+Fm(parameters.)63 b(The)37 b Fl(lockflag)e Fm(parameter)j(has)f(the)g\n+(follo)m(wing)227 1440 y(meaning.)337 1645 y Fi(\\210)45\n+b Fl(0)30 b Fm(|)h(the)f Fl(Lock)f Fm(ob)5 b(ject)32\n+b(is)e(not)h(allo)s(cated)h(or)e(initialized.)337 1800\n+y Fi(\\210)45 b Fl(1)d Fm(|)h(the)f Fl(Lock)f Fm(ob)5\n+b(ject)44 b(is)e(allo)s(cated)j(and)c(initialized)k(to)e(sync)m\n+(hronize)f(only)h(threads)f(in)g(this)427 1913 y(pro)s(cess.)337\n+2068 y Fi(\\210)j Fl(2)27 b Fm(|)g(the)h Fl(Lock)e Fm(ob)5\n+b(ject)28 b(is)f(allo)s(cated)j(and)c(initialized)j(to)f(sync)m\n+(hronize)g(threads)f(in)g(this)g(and)g(other)427 2181\n+y(pro)s(cesses.)227 2386 y(If)j Fl(lockflag)e Fm(is)j(not)f\n Fl(0)p Fm(,)h(the)f(lo)s(c)m(k)i(is)e(allo)s(cated)i(and)e\n (initialized.)227 2545 y(This)g(metho)s(d)g(allo)s(cates)k(as)d(m)m(uc)\n m(h)f(storage)j(as)e(p)s(ossible.)41 b(When)31 b(piv)m(oting)h(is)e\n (not)h(enabled)g(and)f(dense)227 2658 y(fron)m(ts)40\n b(are)g(stored)g(the)g(structure)f(of)h(the)g(factor)h(matrix)f(is)g\n (\\014xed)f(and)g(giv)m(en)i(b)m(y)f(the)g Fl(frontETree)227\n 2771 y Fm(ob)5 b(ject.)58 b(The)35 b(diagonal)i Fk(D)1190\n@@ -5843,37 +5829,37 @@\n (indices)g(\\(when)f(nonsymem)m(tric\\))h(are)g(copied.)48\n b(Finally)34 b(the)e(fron)m(t's)h(en)m(tries)227 5248\n y(are)e(zero)s(ed)g(via)g(a)f(call)i(to)f Fl(Chv)p 1317\n 5248 V 34 w(zero\\(\\))p Fm(.)227 5407 y Fh(Err)-5 b(or)34\n b(che)-5 b(cking:)40 b Fm(None)31 b(presen)m(tly)-8 b(.)p\n eop end\n %%Page: 11 11\n-TeXDict begin 11 10 bop 91 100 1052 4 v 1233 100 a Fl(FrontMtx)28\n-b Ff(:)41 b Fh(DRAFT)121 b Ff(August)30 b(3,)h(2025)p\n-2756 100 V 1052 w Fm(11)111 399 y(2.)46 b Fl(char)h\n-(FrontMtx_factorVisit)42 b(\\()48 b(FrontMtx)d(*frontmtx,)g(Pencil)h\n-(*pencil,)g(int)h(J,)370 511 y(int)g(myid,)g(int)g(owners[],)e(Chv)i\n-(*fronts[],)e(int)i(lookahead,)e(double)h(tau,)370 624\n-y(double)h(droptol,)e(char)i(status[],)e(IP)i(*heads[],)e(IV)j\n-(*pivotsizesIV,)c(DV)j(*workDV,)370 737 y(int)g(parent[],)f(ChvList)f\n-(*aggList,)h(ChvList)g(*postList,)f(ChvManager)g(*chvmanager,)370\n-850 y(int)i(stats[],)f(double)g(cpus[],)g(int)h(msglvl,)f(FILE)g\n-(*msgFile)g(\\))h(;)227 996 y Fm(This)32 b(metho)s(d)g(is)h(called)h\n-(during)e(the)h(serial,)h(m)m(ultithreaded)f(and)g(MPI)f\n-(factorizations)k(when)31 b(fron)m(t)i Fl(J)227 1109\n-y Fm(is)e(visited)g(during)e(the)h(b)s(ottom-up)g(tra)m(v)m(ersal)j(of)\n-d(the)h(tree.)227 1254 y Fh(Err)-5 b(or)34 b(che)-5 b(cking:)40\n-b Fm(None)31 b(presen)m(tly)-8 b(.)111 1432 y(3.)46 b\n-Fl(Chv)h(*)h(FrontMtx_setupFront)42 b(\\()48 b(FrontMtx)d(*frontmtx,)g\n-(Pencil)h(*pencil,)g(int)h(J,)1420 1545 y(int)g(myid,)g(int)g\n-(owners[],)e(ChvManager)g(*chvmanager,)1420 1658 y(double)i(cpus[],)e\n-(int)i(msglvl,)f(FILE)h(*msgFile)e(\\))j(;)227 1804 y\n-Fm(This)24 b(metho)s(d)h(is)f(called)i(b)m(y)f Fl(FrontMtx)p\n-1603 1804 29 4 v 32 w(visitFront\\(\\))d Fm(to)j(initialize)i(the)e(fron)\n-m(t's)g Fl(Chv)f Fm(ob)5 b(ject)26 b(and)e(load)227 1917\n+TeXDict begin 11 10 bop 91 100 1109 4 v 1291 100 a Fl(FrontMtx)28\n+b Ff(:)40 b Fh(DRAFT)122 b Ff(July)29 b(1,)i(2024)p 2698\n+100 V 1109 w Fm(11)111 399 y(2.)46 b Fl(char)h(FrontMtx_factorVisit)42\n+b(\\()48 b(FrontMtx)d(*frontmtx,)g(Pencil)h(*pencil,)g(int)h(J,)370\n+511 y(int)g(myid,)g(int)g(owners[],)e(Chv)i(*fronts[],)e(int)i\n+(lookahead,)e(double)h(tau,)370 624 y(double)h(droptol,)e(char)i\n+(status[],)e(IP)i(*heads[],)e(IV)j(*pivotsizesIV,)c(DV)j(*workDV,)370\n+737 y(int)g(parent[],)f(ChvList)f(*aggList,)h(ChvList)g(*postList,)f\n+(ChvManager)g(*chvmanager,)370 850 y(int)i(stats[],)f(double)g(cpus[],)\n+g(int)h(msglvl,)f(FILE)g(*msgFile)g(\\))h(;)227 996 y\n+Fm(This)32 b(metho)s(d)g(is)h(called)h(during)e(the)h(serial,)h(m)m\n+(ultithreaded)f(and)g(MPI)f(factorizations)k(when)31\n+b(fron)m(t)i Fl(J)227 1109 y Fm(is)e(visited)g(during)e(the)h(b)s\n+(ottom-up)g(tra)m(v)m(ersal)j(of)d(the)h(tree.)227 1254\n+y Fh(Err)-5 b(or)34 b(che)-5 b(cking:)40 b Fm(None)31\n+b(presen)m(tly)-8 b(.)111 1432 y(3.)46 b Fl(Chv)h(*)h\n+(FrontMtx_setupFront)42 b(\\()48 b(FrontMtx)d(*frontmtx,)g(Pencil)h\n+(*pencil,)g(int)h(J,)1420 1545 y(int)g(myid,)g(int)g(owners[],)e\n+(ChvManager)g(*chvmanager,)1420 1658 y(double)i(cpus[],)e(int)i\n+(msglvl,)f(FILE)h(*msgFile)e(\\))j(;)227 1804 y Fm(This)24\n+b(metho)s(d)h(is)f(called)i(b)m(y)f Fl(FrontMtx)p 1603\n+1804 29 4 v 32 w(visitFront\\(\\))d Fm(to)j(initialize)i(the)e(fron)m\n+(t's)g Fl(Chv)f Fm(ob)5 b(ject)26 b(and)e(load)227 1917\n y(original)32 b(en)m(tries)f(if)f(applicable.)227 2062\n y Fh(Err)-5 b(or)34 b(che)-5 b(cking:)40 b Fm(None)31\n b(presen)m(tly)-8 b(.)111 2240 y(4.)46 b Fl(IP)h(**)h\n (FrontMtx_factorSetup)42 b(\\()47 b(FrontMtx)f(*frontmtx,)f(IV)i\n (*frontOwnersIV,)1611 2353 y(int)g(myid,)g(int)g(msglvl,)e(FILE)i\n (*msgFile)f(\\))h(;)227 2499 y Fm(This)21 b(metho)s(d)g(is)g(called)i(b)\n m(y)e(the)h(serial,)i(m)m(ultithreaded)e(and)e(MPI)i(factorizations)i\n@@ -5916,17 +5902,17 @@\n (ultithreaded)g(and)f(MPI)h(factor)h(and)e(solv)m(e)i(metho)s(ds)f(to)g\n (load)h(the)227 5262 y(dequeue)30 b(with)g(the)h(activ)m(e)i(lea)m(v)m\n (es)f(in)e(the)h(fron)m(t)f(tree)h(with)f(resp)s(ect)h(to)g(the)f\n (thread)h(or)f(pro)s(cessor.)227 5407 y Fh(Err)-5 b(or)34\n b(che)-5 b(cking:)40 b Fm(None)31 b(presen)m(tly)-8 b(.)p\n eop end\n %%Page: 12 12\n-TeXDict begin 12 11 bop 0 100 a Fm(12)p 182 100 1052\n-4 v 1234 w Fl(FrontMtx)28 b Ff(:)41 b Fh(DRAFT)30 b Ff(August)g(3,)h\n-(2025)p 2849 100 V 111 399 a Fm(8.)46 b Fl(ChvList)g(*)i\n+TeXDict begin 12 11 bop 0 100 a Fm(12)p 182 100 1109\n+4 v 1292 w Fl(FrontMtx)28 b Ff(:)40 b Fh(DRAFT)31 b Ff(July)e(1,)i\n+(2024)p 2791 100 V 111 399 a Fm(8.)46 b Fl(ChvList)g(*)i\n (FrontMtx_postList)43 b(\\()k(FrontMtx)f(*frontmtx,)f(IV)i\n (*frontOwnersIV,)1659 511 y(int)g(lockflag)f(\\))h(;)227\n 666 y Fm(This)31 b(metho)s(d)h(is)g(called)h(b)m(y)e(the)h(m)m\n (ultithreaded)g(and)g(MPI)g(factor)g(metho)s(ds)g(to)g(create)i(and)d\n (return)g(a)227 779 y(list)g(ob)5 b(ject)32 b(to)f(hold)f(p)s(ostp)s\n (oned)f(c)m(hevrons)h(and)g(help)g(sync)m(hronize)g(the)h\n (factorization.)227 933 y Fh(Err)-5 b(or)34 b(che)-5\n@@ -5994,19 +5980,19 @@\n b(.)227 5098 y Fh(Err)j(or)34 b(che)-5 b(cking:)40 b\n Fm(None)31 b(presen)m(tly)-8 b(.)66 5294 y(13.)46 b Fl\n (FrontMtx_storePostponedDa)o(ta)c(\\()47 b(FrontMtx)f(*frontmtx,)f(Chv)i\n (*frontJ,)418 5407 y(int)g(npost,)f(int)h(K,)g(ChvList)f\n (*postponedlist,)e(ChvManager)h(*chvmanager)f(\\))k(;)p\n eop end\n %%Page: 13 13\n-TeXDict begin 13 12 bop 91 100 1052 4 v 1233 100 a Fl(FrontMtx)28\n-b Ff(:)41 b Fh(DRAFT)121 b Ff(August)30 b(3,)h(2025)p\n-2756 100 V 1052 w Fm(13)227 399 y(This)c(metho)s(d)f(is)h(used)g(to)h\n-(store)g(an)m(y)f(p)s(ostp)s(oned)f(ro)m(ws)h(and)f(columns)h(from)g\n-(the)g(curren)m(t)g(fron)m(t)h Fl(frontJ)227 511 y Fm(in)m(to)f(a)g\n+TeXDict begin 13 12 bop 91 100 1109 4 v 1291 100 a Fl(FrontMtx)28\n+b Ff(:)40 b Fh(DRAFT)122 b Ff(July)29 b(1,)i(2024)p 2698\n+100 V 1109 w Fm(13)227 399 y(This)c(metho)s(d)f(is)h(used)g(to)h(store)\n+g(an)m(y)f(p)s(ostp)s(oned)f(ro)m(ws)h(and)f(columns)h(from)g(the)g\n+(curren)m(t)g(fron)m(t)h Fl(frontJ)227 511 y Fm(in)m(to)f(a)g\n Fl(Chv)e Fm(ob)5 b(ject)27 b(obtained)f(from)f(the)i\n Fl(chvmanager)c Fm(ob)5 b(ject)27 b(and)e(place)i(it)f(in)m(to)h(the)g\n (list)f(of)g(p)s(ostp)s(oned)227 624 y(ob)5 b(jects)25\n b(for)e Fl(K)p Fm(,)g(its)h(paren)m(t,)i(found)c(in)h(the)h\n Fl(postponedlist)c Fm(ob)5 b(ject.)39 b(The)23 b Fl(frontJ)f\n Fm(ob)5 b(ject)25 b(is)e(unc)m(hanged)227 737 y(b)m(y)31\n b(this)f(metho)s(d.)227 891 y Fh(Err)-5 b(or)34 b(che)-5\n@@ -6072,17 +6058,17 @@\n (ulating)i(up)s(dates)d(from)h(descenden)m(ts.)337 5107\n y Fi(\\210)45 b Fl(cpus[3])29 b Fm(|)h(time)h(sp)s(en)m(t)f(assem)m\n (bling)h(p)s(ostp)s(oned)e(data.)337 5257 y Fi(\\210)45\n b Fl(cpus[4])29 b Fm(|)h(time)h(sp)s(en)m(t)f(to)h(factor)g(the)g(fron)\n m(ts.)337 5407 y Fi(\\210)45 b Fl(cpus[5])29 b Fm(|)h(time)h(sp)s(en)m\n (t)f(to)h(extract)h(p)s(ostp)s(oned)d(data.)p eop end\n %%Page: 14 14\n-TeXDict begin 14 13 bop 0 100 a Fm(14)p 182 100 1052\n-4 v 1234 w Fl(FrontMtx)28 b Ff(:)41 b Fh(DRAFT)30 b Ff(August)g(3,)h\n-(2025)p 2849 100 V 337 399 a Fi(\\210)45 b Fl(cpus[6])29\n+TeXDict begin 14 13 bop 0 100 a Fm(14)p 182 100 1109\n+4 v 1292 w Fl(FrontMtx)28 b Ff(:)40 b Fh(DRAFT)31 b Ff(July)e(1,)i\n+(2024)p 2791 100 V 337 399 a Fi(\\210)45 b Fl(cpus[6])29\n b Fm(|)h(time)h(sp)s(en)m(t)f(to)h(store)g(the)g(factor)g(en)m(tries.)\n 337 550 y Fi(\\210)45 b Fl(cpus[7])29 b Fm(|)h(miscellaneous)i(time.)337\n 701 y Fi(\\210)45 b Fl(cpus[8])29 b Fm(|)h(total)i(time)f(in)f(the)h\n (metho)s(d.)227 900 y(On)f(return,)f(the)i Fl(stats[])d\n Fm(v)m(ector)k(is)f(\\014lled)f(with)g(the)h(follo)m(wing)g\n (information.)337 1098 y Fi(\\210)45 b Fl(stats[0])28\n b Fm(|)j(n)m(um)m(b)s(er)e(of)h(piv)m(ots.)337 1249 y\n@@ -6144,19 +6130,19 @@\n (*msgFile)e(\\))j(;)227 5294 y Fm(This)37 b(metho)s(d)g(creates)h(an)g\n Fl(A2)e Fm(ob)5 b(ject)39 b(to)f(hold)f(the)g(fron)m(t,)j(assem)m(bles)\n e(an)m(y)g(original)g(ro)m(ws)g(of)f Fk(A)h Fm(and)227\n 5407 y(an)m(y)c(up)s(date)e(matrices)i(from)e(the)i(c)m(hildren)e(in)m\n (to)i(the)g(fron)m(t,)g(and)e(then)h(returns)f(the)h(fron)m(t.)48\n b(The)33 b(ro)m(ws)p eop end\n %%Page: 15 15\n-TeXDict begin 15 14 bop 91 100 1052 4 v 1233 100 a Fl(FrontMtx)28\n-b Ff(:)41 b Fh(DRAFT)121 b Ff(August)30 b(3,)h(2025)p\n-2756 100 V 1052 w Fm(15)227 399 y(and)c(up)s(date)g(matrices)h(are)g\n-(assem)m(bled)g(in)m(to)g(staircase)h(form,)f(so)g(no)f(subsequen)m(t)g\n-(p)s(erm)m(utations)g(of)h(the)227 511 y(ro)m(ws)j(is)f(necessary)-8\n+TeXDict begin 15 14 bop 91 100 1109 4 v 1291 100 a Fl(FrontMtx)28\n+b Ff(:)40 b Fh(DRAFT)122 b Ff(July)29 b(1,)i(2024)p 2698\n+100 V 1109 w Fm(15)227 399 y(and)c(up)s(date)g(matrices)h(are)g(assem)m\n+(bled)g(in)m(to)g(staircase)h(form,)f(so)g(no)f(subsequen)m(t)g(p)s\n+(erm)m(utations)g(of)h(the)227 511 y(ro)m(ws)j(is)f(necessary)-8\n b(.)227 660 y Fh(Err)j(or)28 b(che)-5 b(cking:)36 b Fm(If)23\n b Fl(frontmtx)p Fm(,)f Fl(mtxA)p Fm(,)h Fl(rowsIVL)p\n Fm(,)e Fl(firstnz)p Fm(,)i Fl(colmap)e Fm(or)j Fl(workDV)d\n Fm(is)i Fl(NULL)p Fm(,)f(or)i(if)f Fl(msglvl)227 773\n y(>)48 b(0)30 b Fm(and)g Fl(msgFile)e Fm(is)i Fl(NULL)p\n Fm(,)g(an)g(error)g(message)i(is)e(prin)m(ted)g(and)g(the)g(program)g\n (exits.)111 957 y(4.)46 b Fl(void)h(FrontMtx_QR_storeFront)42\n@@ -6226,17 +6212,17 @@\n h(the)g(factoriza-)227 5146 y(tion.)227 5294 y Fh(Err)-5\n b(or)35 b(che)-5 b(cking:)41 b Fm(If)31 b Fl(frontmtx)p\n Fm(,)e Fl(frontJ)g Fm(or)i Fl(chvmanager)d Fm(is)j Fl(NULL)p\n Fm(,)f(or)h(if)g Fl(msglvl)46 b(>)i(0)31 b Fm(and)f Fl(msgFile)227\n 5407 y Fm(is)h Fl(NULL)p Fm(,)e(an)h(error)g(message)i(is)e(prin)m(ted)\n g(and)g(the)h(program)f(exits.)p eop end\n %%Page: 16 16\n-TeXDict begin 16 15 bop 0 100 a Fm(16)p 182 100 1052\n-4 v 1234 w Fl(FrontMtx)28 b Ff(:)41 b Fh(DRAFT)30 b Ff(August)g(3,)h\n-(2025)p 2849 100 V 0 399 a Fb(1.2.8)112 b(P)m(ostpro)s(cessing)38\n+TeXDict begin 16 15 bop 0 100 a Fm(16)p 182 100 1109\n+4 v 1292 w Fl(FrontMtx)28 b Ff(:)40 b Fh(DRAFT)31 b Ff(July)e(1,)i\n+(2024)p 2791 100 V 0 399 a Fb(1.2.8)112 b(P)m(ostpro)s(cessing)38\n b(metho)s(ds)111 594 y Fm(1.)46 b Fl(void)h(FrontMtx_postProcess)42\n b(\\()48 b(FrontMtx)d(*frontmtx,)g(int)i(msglvl,)f(FILE)h(*msgFile)e(\\))\n j(;)227 743 y Fm(This)31 b(metho)s(d)g(do)s(es)g(p)s(ost-pro)s(cessing)\n g(c)m(hores)i(after)f(the)f(factorization)k(is)c(complete.)46\n b(If)31 b(piv)m(oting)i(w)m(as)227 856 y(enabled,)25\n b(the)f(metho)s(d)f(p)s(erm)m(utes)g(the)h(ro)m(w)g(and)f(column)g\n (adjacency)i(ob)5 b(jects,)26 b(p)s(erm)m(utes)d(the)h(lo)m(w)m(er)h\n@@ -6306,17 +6292,17 @@\n (all)h(the)g(solv)m(e)h(metho)s(ds)d(|)h(serial,)i(m)m(ultithreaded)e\n (and)g(MPI.)111 5181 y(1.)46 b Fl(SubMtx)g(**)i\n (FrontMtx_loadRightHandS)o(ide)41 b(\\()48 b(FrontMtx)d(*frontmtx,)g\n (DenseMtx)h(*mtxB,)1277 5294 y(int)h(owners[],)e(int)i(myid,)g\n (SubMtxManager)d(*mtxmanager,)1277 5407 y(int)j(msglvl,)f(FILE)h\n (*msgFile)e(\\))j(;)p eop end\n %%Page: 17 17\n-TeXDict begin 17 16 bop 91 100 1052 4 v 1233 100 a Fl(FrontMtx)28\n-b Ff(:)41 b Fh(DRAFT)121 b Ff(August)30 b(3,)h(2025)p\n-2756 100 V 1052 w Fm(17)227 399 y(This)d(metho)s(d)g(creates)h(and)f\n+TeXDict begin 17 16 bop 91 100 1109 4 v 1291 100 a Fl(FrontMtx)28\n+b Ff(:)40 b Fh(DRAFT)122 b Ff(July)29 b(1,)i(2024)p 2698\n+100 V 1109 w Fm(17)227 399 y(This)d(metho)s(d)g(creates)h(and)f\n (returns)f(a)i(v)m(ector)h(of)f(p)s(oin)m(ters)f(to)h\n Fl(SubMtx)e Fm(ob)5 b(jects)29 b(that)g(hold)f(p)s(oin)m(ters)g(to)227\n 511 y(the)j(righ)m(t)g(hand)e(side)h(submatrices)h(o)m(wned)f(b)m(y)g\n (the)h(thread)f(or)g(pro)s(cessor.)227 671 y Fh(Err)-5\n b(or)34 b(che)-5 b(cking:)40 b Fm(None)31 b(presen)m(tly)-8\n b(.)111 878 y(2.)46 b Fl(void)h(FrontMtx_forwardVisit)42\n b(\\()47 b(FrontMtx)f(*frontmtx,)f(int)i(J,)g(int)g(nrhs,)370\n@@ -6384,17 +6370,17 @@\n 5261 y Fj(J)578 5247 y Fm(:=)c Fk(Z)762 5261 y Fj(J)831\n 5247 y Fg(\\000)20 b Fk(U)984 5261 y Fj(J)n(;K)1109 5247\n y Fk(X)1184 5261 y Fj(K)1283 5247 y Fm(that)31 b(will)f(b)s(e)g(p)s\n (erformed)f(b)m(y)h(this)g(thread)h(or)f(pro)s(cessor.)227\n 5407 y Fh(Err)-5 b(or)34 b(che)-5 b(cking:)40 b Fm(None)31\n b(presen)m(tly)-8 b(.)p eop end\n %%Page: 18 18\n-TeXDict begin 18 17 bop 0 100 a Fm(18)p 182 100 1052\n-4 v 1234 w Fl(FrontMtx)28 b Ff(:)41 b Fh(DRAFT)30 b Ff(August)g(3,)h\n-(2025)p 2849 100 V 111 399 a Fm(8.)46 b Fl(void)h\n+TeXDict begin 18 17 bop 0 100 a Fm(18)p 182 100 1109\n+4 v 1292 w Fl(FrontMtx)28 b Ff(:)40 b Fh(DRAFT)31 b Ff(July)e(1,)i\n+(2024)p 2791 100 V 111 399 a Fm(8.)46 b Fl(void)h\n (FrontMtx_loadActiveRoots)41 b(\\()48 b(FrontMtx)d(*frontmtx,)g(char)i\n (status[],)1755 511 y(char)f(activeFlag,)f(Ideq)i(*dequeue)e(\\))j(;)227\n 660 y Fm(This)43 b(metho)s(d)f(loads)i(the)g(activ)m(e)h(ro)s(ots)f\n (for)f(a)g(thread)g(or)h(a)f(pro)s(cessor)g(in)m(to)h(the)g(dequeue)f\n (for)g(the)227 773 y(bac)m(kw)m(ard)31 b(solv)m(e.)227\n 921 y Fh(Err)-5 b(or)34 b(che)-5 b(cking:)40 b Fm(None)31\n b(presen)m(tly)-8 b(.)0 1186 y Fb(1.2.10)113 b(Serial)38\n@@ -6467,17 +6453,17 @@\n b Fl(cpus[0])29 b Fm(|)h(set)h(up)e(the)i(solv)m(es)337\n 5123 y Fi(\\210)45 b Fl(cpus[1])29 b Fm(|)h(fetc)m(h)h(righ)m(t)g(hand)e\n (side)i(and)e(store)i(solution)337 5265 y Fi(\\210)45\n b Fl(cpus[2])29 b Fm(|)h(forw)m(ard)g(solv)m(e)337 5407\n y Fi(\\210)45 b Fl(cpus[3])29 b Fm(|)h(diagonal)i(solv)m(e)p\n eop end\n %%Page: 19 19\n-TeXDict begin 19 18 bop 91 100 1052 4 v 1233 100 a Fl(FrontMtx)28\n-b Ff(:)41 b Fh(DRAFT)121 b Ff(August)30 b(3,)h(2025)p\n-2756 100 V 1052 w Fm(19)337 399 y Fi(\\210)45 b Fl(cpus[4])29\n+TeXDict begin 19 18 bop 91 100 1109 4 v 1291 100 a Fl(FrontMtx)28\n+b Ff(:)40 b Fh(DRAFT)122 b Ff(July)29 b(1,)i(2024)p 2698\n+100 V 1109 w Fm(19)337 399 y Fi(\\210)45 b Fl(cpus[4])29\n b Fm(|)h(bac)m(kw)m(ard)h(solv)m(e)337 551 y Fi(\\210)45\n b Fl(cpus[5])29 b Fm(|)h(total)i(time)f(in)f(the)h(solv)m(e)g(metho)s\n (d.)337 704 y Fi(\\210)45 b Fl(cpus[6])29 b Fm(|)h(time)h(to)g(compute)g\n Fk(A)1668 671 y Fj(T)1723 704 y Fk(B)k Fm(or)30 b Fk(A)2006\n 671 y Fj(H)2074 704 y Fk(B)5 b Fm(.)337 856 y Fi(\\210)45\n b Fl(cpus[7])29 b Fm(|)h(total)i(time.)227 1056 y Fh(Err)-5\n b(or)31 b(che)-5 b(cking:)38 b Fm(If)26 b Fl(frontmtx)p\n@@ -6539,17 +6525,17 @@\n b Fl(frontmtx)p Fm(,)g Fl(pnneg)p Fm(,)g Fl(pnzero)f\n Fm(or)h Fl(pnpos)f Fm(is)h Fl(NULL)p Fm(,)g(or)g(if)h\n Fl(symmetryflag)31 b Fg(6)p Fm(=)k(0)i(an)227 5207 y(error)30\n b(message)i(is)e(prin)m(ted)g(and)g(the)g(program)h(exits.)111\n 5407 y(5.)46 b Fl(int)h(FrontMtx_nSolveOps)c(\\()k(FrontMtx)f(*frontmtx)\n f(\\))j(;)p eop end\n %%Page: 20 20\n-TeXDict begin 20 19 bop 0 100 a Fm(20)p 182 100 1052\n-4 v 1234 w Fl(FrontMtx)28 b Ff(:)41 b Fh(DRAFT)30 b Ff(August)g(3,)h\n-(2025)p 2849 100 V 227 399 a Fm(This)e(metho)s(d)g(computes)g(and)g\n+TeXDict begin 20 19 bop 0 100 a Fm(20)p 182 100 1109\n+4 v 1292 w Fl(FrontMtx)28 b Ff(:)40 b Fh(DRAFT)31 b Ff(July)e(1,)i\n+(2024)p 2791 100 V 227 399 a Fm(This)e(metho)s(d)g(computes)g(and)g\n (return)f(the)i(n)m(um)m(b)s(er)e(of)h(\\015oating)i(p)s(oin)m(t)e(op)s\n (erations)h(for)f(a)h(solv)m(e)g(with)g(a)227 511 y(single)h(righ)m(t)g\n (hand)f(side.)227 664 y Fh(Err)-5 b(or)29 b(che)-5 b(cking:)37\n b Fm(If)24 b Fl(frontmtx)e Fm(is)i Fl(NULL)p Fm(,)g(or)g(if)g\n Fl(type)f Fm(or)i Fl(symmetryflag)c Fm(are)j(in)m(v)-5\n b(alid,)27 b(an)d(error)g(message)227 777 y(is)31 b(prin)m(ted)f(and)f\n (the)i(program)f(exits.)0 1053 y Fb(1.2.13)113 b(IO)37\n@@ -6625,17 +6611,17 @@\n b Fl(1)f Fm(is)g(returned.)40 b(If)30 b(an)g(IO)g(error)g(is)g(encoun)m\n (tered)h(from)f Fl(fwrite)p Fm(,)f(zero)i(is)g(returned.)227\n 5407 y Fh(Err)-5 b(or)33 b(che)-5 b(cking:)40 b Fm(If)28\n b Fl(frontmtx)f Fm(or)i Fl(fp)g Fm(are)g Fl(NULL)f Fm(an)h(error)g\n (message)h(is)f(prin)m(ted)f(and)h(zero)h(is)f(returned.)p\n eop end\n %%Page: 21 21\n-TeXDict begin 21 20 bop 91 100 1052 4 v 1233 100 a Fl(FrontMtx)28\n-b Ff(:)41 b Fh(DRAFT)121 b Ff(August)30 b(3,)h(2025)p\n-2756 100 V 1052 w Fm(21)111 399 y(7.)46 b Fl(int)h\n+TeXDict begin 21 20 bop 91 100 1109 4 v 1291 100 a Fl(FrontMtx)28\n+b Ff(:)40 b Fh(DRAFT)122 b Ff(July)29 b(1,)i(2024)p 2698\n+100 V 1109 w Fm(21)111 399 y(7.)46 b Fl(int)h\n (FrontMtx_writeForHumanEye)41 b(\\()48 b(FrontMtx)d(*frontmtx,)g(FILE)i\n (*fp)g(\\))g(;)227 547 y Fm(This)36 b(metho)s(d)g(writes)h(a)g\n Fl(FrontMtx)d Fm(ob)5 b(ject)37 b(to)g(a)g(\\014le)g(in)f(a)h(h)m(uman)f\n (readable)h(format.)59 b(The)36 b(metho)s(d)227 660 y\n Fl(FrontMtx)p 617 660 29 4 v 32 w(writeStats\\(\\))41 b\n Fm(is)i(called)i(to)f(write)g(out)f(the)h(header)f(and)g(statistics.)82\n b(The)43 b(v)-5 b(alue)44 b Fl(1)f Fm(is)227 773 y(returned.)227\n@@ -6698,17 +6684,17 @@\n 4980 y Fm(metho)s(d.)337 5122 y Fi(\\210)45 b Fm(The)30\n b Fl(seed)f Fm(parameter)i(is)g(a)f(random)g(n)m(um)m(b)s(er)f(seed.)\n 337 5265 y Fi(\\210)45 b Fm(The)30 b Fl(type)f Fm(parameter)i(sp)s\n (eci\\014es)f(a)h(real)g(or)f(complex)h(linear)g(system.)500\n 5407 y Fe({)45 b Fl(type)i(=)g(1)h(\\(SPOOLES)p 1417 5407\n V 32 w(REAL\\))29 b Fm(for)h(real,)p eop end\n %%Page: 22 22\n-TeXDict begin 22 21 bop 0 100 a Fm(22)p 182 100 1052\n-4 v 1234 w Fl(FrontMtx)28 b Ff(:)41 b Fh(DRAFT)30 b Ff(August)g(3,)h\n-(2025)p 2849 100 V 500 399 a Fe({)45 b Fl(type)i(=)g(2)h(\\(SPOOLES)p\n+TeXDict begin 22 21 bop 0 100 a Fm(22)p 182 100 1109\n+4 v 1292 w Fl(FrontMtx)28 b Ff(:)40 b Fh(DRAFT)31 b Ff(July)e(1,)i\n+(2024)p 2791 100 V 500 399 a Fe({)45 b Fl(type)i(=)g(2)h(\\(SPOOLES)p\n 1417 399 29 4 v 32 w(COMPLEX\\))28 b Fm(for)i(complex.)337\n 544 y Fi(\\210)45 b Fm(The)30 b Fl(symmetryflag)d Fm(parameter)k(sp)s\n (eci\\014es)f(the)h(symmetry)f(of)g(the)h(matrix.)500\n 690 y Fe({)45 b Fl(type)i(=)g(0)h(\\(SPOOLES)p 1417 690\n V 32 w(SYMMETRIC\\))28 b Fm(for)i Fk(A)g Fm(real)h(or)g(complex)g\n (symmetric,)500 820 y Fe({)45 b Fl(type)i(=)g(1)h(\\(SPOOLES)p\n 1417 820 V 32 w(HERMITIAN\\))28 b Fm(for)i Fk(A)g Fm(complex)h\n@@ -6778,18 +6764,18 @@\n 5115 y Fi(\\210)45 b Fl(n2)30 b Fm(is)g(the)h(n)m(um)m(b)s(er)e(of)i(p)s\n (oin)m(ts)f(in)g(the)g(second)h(grid)f(direction.)337\n 5261 y Fi(\\210)45 b Fl(n3)30 b Fm(is)g(the)h(n)m(um)m(b)s(er)e(of)i(p)s\n (oin)m(ts)f(in)g(the)g(third)g(grid)g(direction.)337\n 5407 y Fi(\\210)45 b Fm(The)30 b Fl(seed)f Fm(parameter)i(is)g(a)f\n (random)g(n)m(um)m(b)s(er)f(seed.)p eop end\n %%Page: 23 23\n-TeXDict begin 23 22 bop 91 100 1052 4 v 1233 100 a Fl(FrontMtx)28\n-b Ff(:)41 b Fh(DRAFT)121 b Ff(August)30 b(3,)h(2025)p\n-2756 100 V 1052 w Fm(23)337 399 y Fi(\\210)45 b Fm(The)30\n-b Fl(nrhs)f Fm(parameter)i(is)g(the)f(n)m(um)m(b)s(er)f(of)i(righ)m(t)g\n+TeXDict begin 23 22 bop 91 100 1109 4 v 1291 100 a Fl(FrontMtx)28\n+b Ff(:)40 b Fh(DRAFT)122 b Ff(July)29 b(1,)i(2024)p 2698\n+100 V 1109 w Fm(23)337 399 y Fi(\\210)45 b Fm(The)30 b\n+Fl(nrhs)f Fm(parameter)i(is)g(the)f(n)m(um)m(b)s(er)f(of)i(righ)m(t)g\n (hand)e(sides)h(to)h(solv)m(e)h(as)f(one)f(blo)s(c)m(k.)337\n 545 y Fi(\\210)45 b Fm(The)30 b Fl(type)f Fm(parameter)i(sp)s(eci\\014es)\n f(a)h(real)g(or)f(complex)h(linear)g(system.)500 691\n y Fe({)45 b Fl(type)i(=)g(1)h(\\(SPOOLES)p 1417 691 29\n 4 v 32 w(REAL\\))29 b Fm(for)h(real,)500 820 y Fe({)45\n b Fl(type)i(=)g(2)h(\\(SPOOLES)p 1417 820 V 32 w(COMPLEX\\))28\n b Fm(for)i(complex.)p eop end\n@@ -6878,16 +6864,16 @@\n Fm(,)i(9)1992 5064 y Fl(FrontMtx)p 2382 5064 V 32 w\n (writeForHumanEye\\(\\))p Fm(,)d(20)1992 5178 y Fl(FrontMtx)p\n 2382 5178 V 32 w(writeStats\\(\\))p Fm(,)i(21)1992 5293\n y Fl(FrontMtx)p 2382 5293 V 32 w(writeToBinaryFile\\(\\))p\n Fm(,)e(20)1992 5407 y Fl(FrontMtx)p 2382 5407 V 32 w(writeToFile\\(\\))p\n Fm(,)i(20)1905 5656 y(24)p eop end\n %%Page: 25 25\n-TeXDict begin 25 24 bop 91 100 1052 4 v 1233 100 a Fl(FrontMtx)28\n-b Ff(:)41 b Fh(DRAFT)121 b Ff(August)30 b(3,)h(2025)p\n-2756 100 V 1052 w Fm(25)0 399 y Fl(FrontMtx)p 390 399\n-29 4 v 32 w(writeToFormattedFile\\(\\))p Fm(,)25 b(20)p\n-eop end\n+TeXDict begin 25 24 bop 91 100 1109 4 v 1291 100 a Fl(FrontMtx)28\n+b Ff(:)40 b Fh(DRAFT)122 b Ff(July)29 b(1,)i(2024)p 2698\n+100 V 1109 w Fm(25)0 399 y Fl(FrontMtx)p 390 399 29 4\n+v 32 w(writeToFormattedFile\\(\\))p Fm(,)25 b(20)p eop\n+end\n %%Trailer\n \n userdict /end-hook known{end-hook}if\n %%EOF\n", "details": [{"source1": "ps2ascii {}", "source2": "ps2ascii {}", "unified_diff": "@@ -23,15 +23,15 @@\n are disjoint. P is a permutation matrix. If pivoting is not used, P is the identity.\r\n 2. (A + \u03c3B) = P(L + I)D(I + U)QT for a square nonsymmetric matrix A with symmetric\r\n structure. D is a diagonal matrix. U is strictly upper triangular. L is strictly lower triangular.\r\n P and Q are permutation matrices. If pivoting is not used, P and Q are the identity.\r\n 3. A = QR for square or rectangular A. Q is an orthogonal matrix that is not explicitly\r\n computed or stored. R is upper triangular.\r\n 1\r\n- 2 FrontMtx : DRAFT August 3, 2025\r\n+ 2 FrontMtx : DRAFT July 1, 2024\r\n The factorization is performed using a one dimensional decomposition of the global sparse\r\n matrix. A typical front of the matrix is found the shaded portion of the \ufb01gure below.\r\n Afront is indivisible, it is found on one processor, and one processor or one thread is responsible\r\n for its internal computations. This is extremely important if we want to support pivoting for\r\n stability, for deciding how to choose the pivot elements in the front requires continuous up-to-\r\n date information about all the entries in the front. If a front were partitioned among threads or\r\n processors, the cost of the communication to select pivot elements would be intolerable.\r\n@@ -56,15 +56,15 @@\n \u2022 The linear combination A+\u03c3B is found in a Pencil object.\r\n \u2022 The ETree object contains the front tree that governs the factorization and solve. Inside\r\n this object are the dimensions of each front (the number of internal and external rows and\r\n columns), the tree connectivity of the fronts, and a map from each vertex to the front that\r\n contains it as an internal row and column. The FrontMtx object contains a pointer to an\r\n ETree object, but it does not modify the object, nor does it own the storage for the ETree\r\n object. Thus multiple front matrices can all point to the same ETree object simultaneously.\r\n- FrontMtx : DRAFT August 3, 2025 3\r\n+ FrontMtx : DRAFT July 1, 2024 3\r\n \u2022 An IVL object (Integer Vector List), contains the symbolic factorization. For each front, it\r\n gives the list of internal and external rows and columns, used to initialize a front prior to its\r\n factorization. For a factorization without pivoting, this object stores the index information\r\n for the factors, and so is used during the forward and backsolves. For a factorization with\r\n pivoting, the index information for a front may change, so this object is not used during the\r\n solves. As for the ETree object, the symbolic factorization is neither modi\ufb01ed or owned by\r\n the front matrix object.\r\n@@ -96,15 +96,15 @@\n postponed data (when pivoting is enabled) or aggregate data (in a parallel factorization), and\r\n the factorization of the fully assembled front, take place within the context of this object.\r\n \u2022 The SubMtx object is used to store a submatrix of the factor matrices D, L and U. Once a\r\n front is factored it is split into one or more of these submatrix objects. After the factorization\r\n is complete, the data structures are postprocessed to yield submatrices that contain the\r\n coupling between fronts. The working storage during the solves is also managed by SubMtx\r\n objects.\r\n- 4 FrontMtx : DRAFT August 3, 2025\r\n+ 4 FrontMtx : DRAFT July 1, 2024\r\n \u2022 Each submatrix represents the coupling between two fronts, I and J. To enable rapid random\r\n access to these submatrices, we use a I2Ohash object that is a hash table whose keys are two\r\n integers and whose data is a void * pointer.\r\n \u2022 The set of nonzero submatrices, i.e., the nonzero couplings between two fronts, is kept in\r\n one or two IVL objects. This information is necessary for the factorization and forward and\r\n backsolves.\r\n \u2022 The factorization and solves require lists of fronts and submatrices to manage assembly of\r\n@@ -131,15 +131,15 @@\n \u2022 int pivotingflag : \ufb02ag to specify pivoting for stability,\r\n \u2013 SPOOLES NO PIVOTING \u2014 pivoting not used\r\n \u2013 SPOOLES PIVOTING \u2014 pivoting used\r\n \u2022 int sparsityflag : \ufb02ag to specify storage of factors.\r\n \u2013 0 \u2014 each front is dense\r\n \u2013 1 \u2014 a front may be sparse due to entries dropped because they are below a drop\r\n tolerance.\r\n- FrontMtx : DRAFT August 3, 2025 5\r\n+ FrontMtx : DRAFT July 1, 2024 5\r\n \u2022 int dataMode : \ufb02ag to specify data storage.\r\n \u2013 1 \u2014 one-dimensional, used during the factorization.\r\n \u2013 2 \u2014 two-dimensional, used during the solves.\r\n \u2022 int nentD : number of entries in D\r\n \u2022 int nentL : number of entries in L\r\n \u2022 int nentU : number of entries in U\r\n \u2022 Tree *tree: Treeobjectthatholdsthetreeoffronts. Note, normallythisisfrontETree->tree,\r\n@@ -165,15 +165,15 @@\n used only during a nonsymmetric factorization.\r\n \u2022 SubMtx **p mtxLNJ : a vector of pointers to submatrices in L that are o\ufb00 the block diagonal,\r\n used only during a nonsymmetric factorization.\r\n \u2022 I2Ohash *lowerhash : pointer to a I2Ohash hash table for submatrices in L, used during\r\n the solves.\r\n \u2022 I2Ohash *upperhash : pointer to a I2Ohash hash table for submatrices in U, used during\r\n the solves.\r\n- 6 FrontMtx : DRAFT August 3, 2025\r\n+ 6 FrontMtx : DRAFT July 1, 2024\r\n \u2022 SubMtxManager *manager : pointer to an object that manages the instances of submatrices\r\n during the factors and solves.\r\n \u2022 Lock *lock : pointer to a Lock lock used in a multithreaded environment to ensure exlusive\r\n access while allocating storage in the IV and IVL objects. This is not used in a serial or MPI\r\n environment.\r\n \u2022 int nlocks : number of times the lock has been locked.\r\n \u2022 PatchAndGo *info : this is a pointer to an object that is used by the Chv object during the\r\n@@ -196,15 +196,15 @@\n \u2022 FRONTMTX IS 1D MODE(frontmtx) is 1 if the factor are still stored as a one-dimensional data\r\n decomposition (i.e., the matrix has not yet been post-processed), and 0 otherwise.\r\n \u2022 FRONTMTX IS 2D MODE(frontmtx) is 1 if the factor are stored as a two-dimensional data\r\n decomposition (i.e., the matrix has been post-processed), and 0 otherwise.\r\n 1.2 Prototypes and descriptions of FrontMtx methods\r\n This section contains brief descriptions including prototypes of all methods that belong to the\r\n FrontMtx object.\r\n- FrontMtx : DRAFT August 3, 2025 7\r\n+ FrontMtx : DRAFT July 1, 2024 7\r\n 1.2.1 Basic methods\r\n As usual, there are four basic methods to support object creation, setting default \ufb01elds, clearing\r\n any allocated data, and free\u2019ing the object.\r\n 1. FrontMtx * FrontMtx_new ( void ) ;\r\n This method simply allocates storage for the FrontMtx structure and then sets the default\r\n \ufb01elds by a call to FrontMtx setDefaultFields().\r\n 2. void FrontMtx_setDefaultFields ( FrontMtx *frontmtx ) ;\r\n@@ -231,15 +231,15 @@\n 1.2.2 Instance methods\r\n 1. int FrontMtx_nfront ( FrontMtx *frontmtx ) ;\r\n This method returns the number of fronts in the matrix.\r\n Error checking: If frontmtx is NULL, an error message is printed and the program exits.\r\n 2. int FrontMtx_neqns ( FrontMtx *frontmtx ) ;\r\n This method returns the number of equations in the matrix.\r\n Error checking: If frontmtx is NULL, an error message is printed and the program exits.\r\n- 8 FrontMtx : DRAFT August 3, 2025\r\n+ 8 FrontMtx : DRAFT July 1, 2024\r\n 3. Tree * FrontMtx_frontTree ( FrontMtx *frontmtx ) ;\r\n This method returns the Tree object for the fronts.\r\n Error checking: If frontmtx is NULL, an error message is printed and the program exits.\r\n 4. void FrontMtx_initialFrontDimensions ( FrontMtx *frontmtx, int J,\r\n int *pnD, int *pnL, int *pnU, int *pnbytes ) ;\r\n This method \ufb01lls the four pointer arguments with the number of internal rows and columns,\r\n number of rows in the lower block, number of columns in the upper block, and number of\r\n@@ -269,15 +269,15 @@\n Error checking: If frontmtx, pnrow or pindices is NULL, or if J is not in [0,nfront), an\r\n error message is printed and the program exits.\r\n 9. SubMtx * FrontMtx_diagMtx ( FrontMtx *frontmtx, int J ) ;\r\n This method returns a pointer to the object that contains submatrix D .\r\n J,J\r\n Error checking: If frontmtx is NULL, or if J is not in [0,nfront), an error message is printed\r\n and the program exits.\r\n- FrontMtx : DRAFT August 3, 2025 9\r\n+ FrontMtx : DRAFT July 1, 2024 9\r\n 10. SubMtx * FrontMtx_upperMtx ( FrontMtx *frontmtx, int J, int K ) ;\r\n This method returns a pointer to the object that contains submatrix UJ,K. If K = nfront,\r\n then the object containing UJ,\u2202J is returned.\r\n Error checking: If frontmtx is NULL, or if J is not in [0,nfront), or if K is not in [0,nfront],\r\n an error message is printed and the program exits.\r\n 11. SubMtx * FrontMtx_lowerMtx ( FrontMtx *frontmtx, int K, int J ) ;\r\n This method returns a pointer to the object that contains submatrix LK,J. If K = nfront,\r\n@@ -304,15 +304,15 @@\n Error checking: If frontmtx is NULL, an error message is printed and the program exits.\r\n 16. IVL * FrontMtx_upperBlockIVL ( FrontMtx *frontmtx ) ;\r\n This method returns a pointer to the IVL object that holds the upper blocks.\r\n Error checking: If frontmtx is NULL, an error message is printed and the program exits.\r\n 17. IVL * FrontMtx_lowerBlockIVL ( FrontMtx *frontmtx ) ;\r\n This method returns a pointer to the IVL object that holds the lower blocks.\r\n Error checking: If frontmtx is NULL, an error message is printed and the program exits.\r\n- 10 FrontMtx : DRAFT August 3, 2025\r\n+ 10 FrontMtx : DRAFT July 1, 2024\r\n 1.2.3 Initialization methods\r\n 1. void FrontMtx_init ( FrontMtx *frontmtx, ETree *frontETree,\r\n IVL *symbfacIVL, int type, int symmetryflag, int sparsityflag,\r\n int pivotingflag, int lockflag, int myid, IV *ownersIV,\r\n SubMtxManager *manager, int msglvl, FILE *msgFile ) ;\r\n This method initializes the object, allocating and initializing the internal objects as necessary.\r\n See the previous section on data structures for the meanings of the type, symmetryflag,\r\n@@ -342,15 +342,15 @@\n 1. void FrontMtx_initializeFront ( FrontMtx *frontmtx, Chv *frontJ, int J ) ;\r\n This method is called to initialize a front. The number of internal rows and columns is found\r\n from the front ETree object and the row and column indices are obtained from the symbolic\r\n factorization IVL object. The front Chv object is initialized via a call to Chv init(), and the\r\n column indices and row indices (when nonsymemtric) are copied. Finally the front\u2019s entries\r\n are zeroed via a call to Chv zero().\r\n Error checking: None presently.\r\n- FrontMtx : DRAFT August 3, 2025 11\r\n+ FrontMtx : DRAFT July 1, 2024 11\r\n 2. char FrontMtx_factorVisit ( FrontMtx *frontmtx, Pencil *pencil, int J,\r\n int myid, int owners[], Chv *fronts[], int lookahead, double tau,\r\n double droptol, char status[], IP *heads[], IV *pivotsizesIV, DV *workDV,\r\n int parent[], ChvList *aggList, ChvList *postList, ChvManager *chvmanager,\r\n int stats[], double cpus[], int msglvl, FILE *msgFile ) ;\r\n This method is called during the serial, multithreaded and MPI factorizations when front J\r\n is visited during the bottom-up traversal of the tree.\r\n@@ -382,15 +382,15 @@\n Error checking: If frontmtx, owners or status is NULL, or if myid < 0, an error message is\r\n printed and the program exits.\r\n 7. void FrontMtx_loadActiveLeaves ( FrontMtx *frontmtx, char status[],\r\n char activeFlag, Ideq *dequeue ) ;\r\n This method is called by the multithreaded and MPI factor and solve methods to load the\r\n dequeue with the active leaves in the front tree with respect to the thread or processor.\r\n Error checking: None presently.\r\n- 12 FrontMtx : DRAFT August 3, 2025\r\n+ 12 FrontMtx : DRAFT July 1, 2024\r\n 8. ChvList * FrontMtx_postList ( FrontMtx *frontmtx, IV *frontOwnersIV,\r\n int lockflag ) ;\r\n This method is called by the multithreaded and MPI factor methods to create and return a\r\n list object to hold postponed chevrons and help synchronize the factorization.\r\n Error checking: None presently.\r\n 9. ChvList * FrontMtx_aggregateList ( FrontMtx *frontmtx,\r\n IV *frontOwnersIV, int lockflag ) ;\r\n@@ -421,15 +421,15 @@\n the list in postponedlist. If this list is empty, a new front is created to hold the aggregate\r\n updates and the postponed data, and the chvmanager object receives the aggregate and\r\n postponed Chv objects. The number of delayed rows and columns is returned in *pndelay \u2014\r\n this is used during the factorization of the front that follows immediately.\r\n Error checking: None presently.\r\n 13. FrontMtx_storePostponedData ( FrontMtx *frontmtx, Chv *frontJ,\r\n int npost, int K, ChvList *postponedlist, ChvManager *chvmanager ) ;\r\n- FrontMtx : DRAFT August 3, 2025 13\r\n+ FrontMtx : DRAFT July 1, 2024 13\r\n This method is used to store any postponed rows and columns from the current front frontJ\r\n into a Chv object obtained from the chvmanager object and place it into the list of postponed\r\n objects for K, its parent, found in the postponedlist object. The frontJ object is unchanged\r\n by this method.\r\n Error checking: None presently.\r\n 14. FrontMtx_storeFront ( FrontMtx *frontmtx, Chv *frontJ, IV *pivotsizesIV,\r\n double droptol, int msglvl, FILE *msgFile ) ;\r\n@@ -459,15 +459,15 @@\n following information.\r\n \u2022 cpus[0] \u2014 time spent initializing the fronts.\r\n \u2022 cpus[1] \u2014 time spent loading the original entries.\r\n \u2022 cpus[2] \u2014 time spent accumulating updates from descendents.\r\n \u2022 cpus[3] \u2014 time spent assembling postponed data.\r\n \u2022 cpus[4] \u2014 time spent to factor the fronts.\r\n \u2022 cpus[5] \u2014 time spent to extract postponed data.\r\n- 14 FrontMtx : DRAFT August 3, 2025\r\n+ 14 FrontMtx : DRAFT July 1, 2024\r\n \u2022 cpus[6] \u2014 time spent to store the factor entries.\r\n \u2022 cpus[7] \u2014 miscellaneous time.\r\n \u2022 cpus[8] \u2014 total time in the method.\r\n Onreturn, the stats[] vector is \ufb01lled with the following information.\r\n \u2022 stats[0] \u2014 number of pivots.\r\n \u2022 stats[1] \u2014 number of pivot tests.\r\n \u2022 stats[2] \u2014 number of delayed rows and columns.\r\n@@ -495,15 +495,15 @@\n workDV, cpus or pfacops is NULL, or if msglvl > 0 and msgFile is NULL, an error message\r\n is printed and the program exits.\r\n 3. A2 * FrontMtx_QR_assembleFront ( FrontMtx *frontmtx, int J, InpMtx *mtxA,\r\n IVL *rowsIVL, int firstnz[], int colmap[], Chv *firstchild,\r\n DV *workDV, int msglvl, FILE *msgFile ) ;\r\n This method creates an A2 object to hold the front, assembles any original rows of A and\r\n any update matrices from the children into the front, and then returns the front. The rows\r\n- FrontMtx : DRAFT August 3, 2025 15\r\n+ FrontMtx : DRAFT July 1, 2024 15\r\n and update matrices are assembled into staircase form, so no subsequent permutations of the\r\n rows is necessary.\r\n Error checking: If frontmtx, mtxA, rowsIVL, firstnz, colmap or workDV is NULL, or if msglvl\r\n > 0 and msgFile is NULL, an error message is printed and the program exits.\r\n 4. void FrontMtx_QR_storeFront ( FrontMtx *frontmtx, int J, A2 *frontJ,\r\n int msglvl, FILE *msgFile ) ;\r\n This method takes as input frontJ, the front in trapezoidal or triangular form. It scales the\r\n@@ -533,15 +533,15 @@\n \u2022 cpus[4] \u2013 time to store the update entries\r\n \u2022 cpus[5] \u2013 miscellaneous time\r\n \u2022 cpus[6] \u2013 total time\r\n Onreturn, *pfacops contains the number of \ufb02oating point operations done by the factoriza-\r\n tion.\r\n Error checking: If frontmtx, frontJ or chvmanager is NULL, or if msglvl > 0 and msgFile\r\n is NULL, an error message is printed and the program exits.\r\n- 16 FrontMtx : DRAFT August 3, 2025\r\n+ 16 FrontMtx : DRAFT July 1, 2024\r\n 1.2.8 Postprocessing methods\r\n 1. void FrontMtx_postProcess ( FrontMtx *frontmtx, int msglvl, FILE *msgFile ) ;\r\n This method does post-processing chores after the factorization is complete. If pivoting was\r\n enabled, the method permutes the row and column adjacency objects, permutes the lower and\r\n upper matrices, and updates the block adjacency objects. The chevron submatrices L\u2202J,J\r\n and UJ,\u2202J are split into LK,J and UJ,K where K \u2229\u2202J 6= \u2205.\r\n Error checking: If frontmtx is NULL, or if msglvl \u00bf 0 and msgFile is NULL, an error message\r\n@@ -572,15 +572,15 @@\n Error checking: If frontmtx is NULL, or if msglvl \u00bf 0 and msgFile is NULL, an error message\r\n is printed and the program exits.\r\n 1.2.9 Utility Solve methods\r\n The following methods are called by all the solve methods \u2014 serial, multithreaded and MPI.\r\n 1. SubMtx ** FrontMtx_loadRightHandSide ( FrontMtx *frontmtx, DenseMtx *mtxB,\r\n int owners[], int myid, SubMtxManager *mtxmanager,\r\n int msglvl, FILE *msgFile ) ;\r\n- FrontMtx : DRAFT August 3, 2025 17\r\n+ FrontMtx : DRAFT July 1, 2024 17\r\n This method creates and returns a vector of pointers to SubMtx objects that hold pointers to\r\n the right hand side submatrices owned by the thread or processor.\r\n Error checking: None presently.\r\n 2. void FrontMtx_forwardVisit ( FrontMtx *frontmtx, int J, int nrhs,\r\n int *owners, int myid, SubMtxManager *mtxmanager, SubMtxList *aggList,\r\n SubMtx *p_mtx[], char frontIsDone[], IP *heads[], SubMtx *p_agg[],\r\n char status[], int msglvl, FILE *msgFile) ;\r\n@@ -610,15 +610,15 @@\n this thread or processor.\r\n Error checking: None presently.\r\n 7. IP ** FrontMtx_backwardSetup ( FrontMtx *frontmtx, int msglvl, FILE *msgFile ) ;\r\n This method is used to set up a data structure of IP objects that hold the updates of the\r\n form Z := Z \u2212U X that will be performed by this thread or processor.\r\n J J J,K K\r\n Error checking: None presently.\r\n- 18 FrontMtx : DRAFT August 3, 2025\r\n+ 18 FrontMtx : DRAFT July 1, 2024\r\n 8. void FrontMtx_loadActiveRoots ( FrontMtx *frontmtx, char status[],\r\n char activeFlag, Ideq *dequeue ) ;\r\n This method loads the active roots for a thread or a processor into the dequeue for the\r\n backward solve.\r\n Error checking: None presently.\r\n 1.2.10 Serial Solve method\r\n 1. void FrontMtx_solve ( FrontMtx *frontmtx, DenseMtx *mtxX, DenseMtx *mtxB,\r\n@@ -648,15 +648,15 @@\n the seminormal equations (U +I)D(I +U)X = A B or (U +I)D(I +U)X = A B for\r\n X. The mtxmanager object manages the working storage used in the solves. On return the\r\n cpus[] vector is \ufb01lled with the following.\r\n \u2022 cpus[0] \u2014 set up the solves\r\n \u2022 cpus[1] \u2014 fetch right hand side and store solution\r\n \u2022 cpus[2] \u2014 forward solve\r\n \u2022 cpus[3] \u2014 diagonal solve\r\n- FrontMtx : DRAFT August 3, 2025 19\r\n+ FrontMtx : DRAFT July 1, 2024 19\r\n \u2022 cpus[4] \u2014 backward solve\r\n \u2022 cpus[5] \u2014 total time in the solve method.\r\n T H\r\n \u2022 cpus[6] \u2014 time to compute A B or A B.\r\n \u2022 cpus[7] \u2014 total time.\r\n Error checking: If frontmtx, mtxA, mtxX, mtxB or cpus is NULL, or if msglvl \u00bf 0 and msgFile\r\n is NULL, an error message is printed and the program exits.\r\n@@ -685,15 +685,15 @@\n This method determines the inertia of a symmetric matrix based on the (UT + I)D(I + U)\r\n factorization. The number of negative eigenvalues is returned in *pnneg, the number of zero\r\n eigenvalues is returned in *pnzero, and the number of positive eigenvalues is returned in\r\n *pnpos.\r\n Error checking: If frontmtx, pnneg, pnzero or pnpos is NULL, or if symmetryflag 6= 0 an\r\n error message is printed and the program exits.\r\n 5. int FrontMtx_nSolveOps ( FrontMtx *frontmtx ) ;\r\n- 20 FrontMtx : DRAFT August 3, 2025\r\n+ 20 FrontMtx : DRAFT July 1, 2024\r\n This method computes and return the number of \ufb02oating point operations for a solve with a\r\n single right hand side.\r\n Error checking: If frontmtx is NULL, or if type or symmetryflag are invalid, an error message\r\n is printed and the program exits.\r\n 1.2.13 IO methods\r\n 1. int FrontMtx_readFromFile ( FrontMtx *frontmtx, char *fn ) ;\r\n This method reads a FrontMtx object from a \ufb01le. It tries to open the \ufb01le and if it is success-\r\n@@ -721,15 +721,15 @@\n This method writes a FrontMtx object to a formatted \ufb01le. If there are no errors in writing the\r\n data, the value 1 is returned. If an IO error is encountered from fprintf, zero is returned.\r\n Error checking: If frontmtx or fp are NULL an error message is printed and zero is returned.\r\n 6. int FrontMtx_writeToBinaryFile ( FrontMtx *frontmtx, FILE *fp ) ;\r\n This method writes a FrontMtx object to a binary \ufb01le. If there are no errors in writing the\r\n data, the value 1 is returned. If an IO error is encountered from fwrite, zero is returned.\r\n Error checking: If frontmtx or fp are NULL an error message is printed and zero is returned.\r\n- FrontMtx : DRAFT August 3, 2025 21\r\n+ FrontMtx : DRAFT July 1, 2024 21\r\n 7. int FrontMtx_writeForHumanEye ( FrontMtx *frontmtx, FILE *fp ) ;\r\n This method writes a FrontMtx object to a \ufb01le in a human readable format. The method\r\n FrontMtx writeStats() is called to write out the header and statistics. The value 1 is\r\n returned.\r\n Error checking: If frontmtx or fp are NULL an error message is printed and zero is returned.\r\n 8. int FrontMtx_writeStats ( FrontMtx *frontmtx, FILE *fp ) ;\r\n The header and statistics are written to a \ufb01le. The value 1 is returned.\r\n@@ -758,15 +758,15 @@\n \u2022 maxzeros is used to merge small fronts together into larger fronts. Look at the ETree\r\n object for the ETree mergeFronts{One,All,Any}() methods.\r\n \u2022 maxsize is used to split large fronts into smaller fronts. See the ETree splitFronts()\r\n method.\r\n \u2022 The seed parameter is a random number seed.\r\n \u2022 The type parameter speci\ufb01es a real or complex linear system.\r\n \u2013 type = 1 (SPOOLES REAL) for real,\r\n- 22 FrontMtx : DRAFT August 3, 2025\r\n+ 22 FrontMtx : DRAFT July 1, 2024\r\n \u2013 type = 2 (SPOOLES COMPLEX) for complex.\r\n \u2022 The symmetryflag parameter speci\ufb01es the symmetry of the matrix.\r\n \u2013 type = 0 (SPOOLES SYMMETRIC) for A real or complex symmetric,\r\n \u2013 type = 1 (SPOOLES HERMITIAN) for A complex Hermitian,\r\n \u2013 type = 2 (SPOOLES NONSYMMETRIC)\r\n for A real or complex nonsymmetric.\r\n \u2022 The sparsityflag parameter signals a direct or approximate factorization.\r\n@@ -798,15 +798,15 @@\n \u2022 The msgFile parameter determines the message \ufb01le \u2014 if msgFile is stdout, then the\r\n message \ufb01le is stdout, otherwise a \ufb01le is opened with append status to receive any output\r\n data.\r\n \u2022 n1 is the number of points in the \ufb01rst grid direction.\r\n \u2022 n2 is the number of points in the second grid direction.\r\n \u2022 n3 is the number of points in the third grid direction.\r\n \u2022 The seed parameter is a random number seed.\r\n- FrontMtx : DRAFT August 3, 2025 23\r\n+ FrontMtx : DRAFT July 1, 2024 23\r\n \u2022 The nrhs parameter is the number of right hand sides to solve as one block.\r\n \u2022 The type parameter speci\ufb01es a real or complex linear system.\r\n \u2013 type = 1 (SPOOLES REAL) for real,\r\n \u2013 type = 2 (SPOOLES COMPLEX) for complex.\r\n Index\r\n FrontMtx aggregateList(), 12 FrontMtx ownedColumns(), 19\r\n FrontMtx assemblePostponedData(), 12 FrontMtx ownedRows(), 19\r\n@@ -842,9 +842,9 @@\n FrontMtx nactiveChild(), 11 FrontMtx upperBlockIVL(), 9\r\n FrontMtx neqns(), 7 FrontMtx upperMtx(), 9\r\n FrontMtx new(), 7 FrontMtx writeForHumanEye(), 20\r\n FrontMtx nfront(), 7 FrontMtx writeStats(), 21\r\n FrontMtx nLowerBlocks(), 9 FrontMtx writeToBinaryFile(), 20\r\n FrontMtx nUpperBlocks(), 9 FrontMtx writeToFile(), 20\r\n 24\r\n- FrontMtx : DRAFT August 3, 2025 25\r\n+ FrontMtx : DRAFT July 1, 2024 25\r\n FrontMtx writeToFormattedFile(), 20\r\n"}]}]}, {"source1": "./usr/share/doc/spooles-doc/FrontTrees.ps.gz", "source2": "./usr/share/doc/spooles-doc/FrontTrees.ps.gz", "unified_diff": null, "details": [{"source1": "FrontTrees.ps", "source2": "FrontTrees.ps", "unified_diff": "@@ -11,15 +11,15 @@\n %%EndComments\n %%BeginDefaults\n %%ViewingOrientation: 1 0 0 1\n %%EndDefaults\n %DVIPSWebPage: (www.radicaleye.com)\n %DVIPSCommandLine: dvips main -o FrontTrees.ps\n %DVIPSParameters: dpi=600\n-%DVIPSSource: TeX output 2025.08.03:1317\n+%DVIPSSource: TeX output 2024.07.01:0659\n %%BeginProcSet: tex.pro 0 0\n %!\n /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S\n N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72\n mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0\n 0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{\n landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize\n@@ -3344,32 +3344,34 @@\n /UnderlinePosition -100 def\n /UnderlineThickness 50 def\n end readonly def\n /Encoding 256 array\n 0 1 255 {1 index exch /.notdef put} for\n dup 44 /comma put\n dup 48 /zero put\n+dup 49 /one put\n dup 50 /two put\n-dup 51 /three put\n-dup 53 /five put\n-dup 65 /A put\n+dup 52 /four put\n dup 70 /F put\n+dup 74 /J put\n dup 79 /O put\n dup 84 /T put\n dup 97 /a put\n dup 100 /d put\n dup 101 /e put\n dup 103 /g put\n dup 105 /i put\n+dup 108 /l put\n dup 110 /n put\n dup 111 /o put\n dup 114 /r put\n dup 115 /s put\n dup 116 /t put\n dup 117 /u put\n+dup 121 /y put\n readonly def\n currentdict end\n currentfile eexec\n D9D66F633B846AB284BCF8B0411B772DE5CE32340DC6F28AF40857E4451976E7\n 5182433CF9F333A38BD841C0D4E68BF9E012EB32A8FFB76B5816306B5EDF7C99\n 8B3A16D9B4BC056662E32C7CD0123DFAEB734C7532E64BBFBF5A60336E646716\n EFB852C877F440D329172C71F1E5D59CE9473C26B8AEF7AD68EF0727B6EC2E0C\n@@ -3546,132 +3548,139 @@\n 60F5C3F629F7BC5A27C207D70DE63FBE0E023452097D5B7AA5B2CAC668D4D075\n 1A0F70683E96AE35A6BA0B59619C215A7012568991AFC0C35789DD0ECE45C649\n F44580845F0FA422868CFCC8029513235C0286B76196E350498845EA934DF289\n 1D0C954B079BD2977384B96D8460B4F50EE635A4C8F7A3B6866F93CA641F3F2C\n C93ECCD6BBCD792189A12FC9366BA7134EFD67A22B4FD62465250E0BA6B7C627\n 73E8F50E379328B7FABA341B0D50F9A2CFB055E01DDF6BBCF6FE4114BC36C10B\n E581D76A84EA12995506C33DAE9035683FBD5F54AA1545992B94B8ED946E5866\n-2F2CF265A67D34469B3FF1541D72B9B0B9AFB330FB72CB4D9444809EE3E5547C\n-80FD855F1733F58FB223DBBE8D1E7E062138E3F3554A7A07EB9C00BB1712A05D\n-624AB5E1D9A596177E566E14EC543AF373D6737BBA050C7478A65B851C2B285C\n-216A86A2C8607B03CEB9DED58C9BB5E9282CBFAA3CC2BA792FB5A4E3054FBFAF\n-8875C1396824B8E12C4B838BB34D41DB2DFC4C96F2237620EFA9C4FDFA969CCA\n-02CBC8203772884CB1652AA46485C52019D47B16F35F548035C0B263BDDB677A\n-A51564759CBE2847EE0835D3BF4D8F63970B594574AE314938F4019D4A350E32\n-AB25DCCD4D43ECC7ABCFA07DBD7BBDFCEB8908AFBFC28E8F7517222B89C453A6\n-89FDF47AC918C44F4AEE7607C5237DBB341B32032BD7B842E3147A09F1D236BF\n-B36493E9849967F12ED58C4CFD280FE501E1B70FC0222A6D4CCAD56EF1C0BA7D\n-4021FEA4EBA2806EF25C397AF9DBE171332A8029FE5C5FF2A99FA9AE577CEDC6\n-6221A4205DF59039F7393F53EA4A871176B5B4C28362293C4D7E83F65055A0B5\n-F4B68C67E93B8E5D620F528409DC57D72616176C70C2DF1DB79A59171F7C8CF5\n-56A7E9DF32C224D2A21920F40CC41C6C40D746C87E43ED4F9E185AFB50CE3B52\n-CB1BC7B1CC62EBE43B473FEC1FB75A8424AFD1546B429E6A37A0033BEFC7AF99\n-0307D1B3F84E3151E1DB1C6E152521758F6548B001D255A3825EF680C50CBC03\n-8C0F3441AA4121F11EAF7FA06D93324FF117A1850928C186B209AB26B65190F2\n-1B024D6A086042E9F972A0EE2EB01E633E74E447F514A1F0D9A16EE1DD435305\n-4CD4B0F1F52FBEFE2B252417471583DC8D8F810F480799A729044024D45E93E6\n-717A1BB3ED6CBC1CD68DF8D9476D07B6B02F1514E28C3DC631657503050A7851\n-6A4D28461578669FFDBE3B2563A304F2704D9367231BC6D1B69EA719B19D2F31\n-DB233778DC3BB1CF6511E346303027DD889D3A545971D70C5CB3B80904ADBBB5\n-244F597FD97F3E7E442D781ABAE1BC8E97B035B543EFAA51C0C7F93B53CE880D\n-CCDB83E55290BD91214700F399448F69BF3E0618C8395CD56C68532EBA0B323E\n-9B63B49E5F7B8F20128631ED4F7B5ACD07C5CB42D353903F358DB7534DEB95AE\n-83F242E6DC77D56C86A5E7C7BEBB82E7101E7403A6AF0E237E2F599363F13AA2\n-840E6B9A8C6E355CEDF374AE721DDFDC271A49F4D658184DDEE23E66A3FC8CE3\n-AFE4C447825E74F20C732302855C3C994978813A5C7EF14FDA1B5F112453ACE6\n-954CC55529C4F0693644948B694DEFE5398B6B5A33D42B3573D54D63F6A25866\n-3856B633D821F01BE8D70D85A517FBE377680DDAE3418F7B30E4835D58DA2641\n-2B3E91E1EECA87A04279DF2469B23A53EDF160E323C04F2A19D7C85DE4165A74\n-A0BEABB6BD3BCACA13CACD14E1A588F00A1C1425EBFD7FD780FA8501B864E4AD\n-7A8CE841F9BE9D4A194722440FA95E55F2D332A5B91A033E3D7A3D3A44E7CBEC\n-6F65F2B31A9989289FE5D1D4DBBD1B69D53F633512033D775DC1467C70A269A1\n-9729A96F98405A21D483750E9A7CA1082F53B5B5AFE92DCD33C7DD73FB08779F\n-5F132E2B80304CD217A5FCB0515CEFAB162A894C4E406E05CABB913EB5C88554\n-9E0FE5FD0808266D8FD4CE741F5DF64BDF61517B7ACBBEFB787F0B00F338D6ED\n-7097A0E40CC22C113A32541A70A68E58D27925C8AA87364F99C22BA8E490E918\n-7E5F740E51636CC2B3074E830B183CE474A4F73AEDFED992999DD01C53C40982\n-13393283BD4960EB2D14721B984919F3E370F2E95E65917D7ED430EAE2027D3A\n-BFA2447B9F8DE4D7D9264893CDBAF4ABB1242143C6AEACC6BA9B18980E247DF0\n-8852568474C617900CEF32769D608E6864BC645E19A2B5F47CE6013DE58081A7\n-AFBCCA210FF25B4479A3AB4393D1576AAE38F08A44B2BCC6740044A6A719AAE3\n-6B3E2311FACA1EDBE52C3FD43EE123CA69C4AA42E29919024E65153C618BC48B\n-FF4EDE18EC80DFD6812608D462D8EA84EBA09B8552F2277F5DBF8C0DE93971D2\n-67286D33A8FB66F89A2C6FAEEF28FCBEBF1A1D3EA128402DB7BEA5609A56F26D\n-2E2741D370A92E96531973843AF1535EBFE87AF8F25F9D10C4DDE99C4D2682CC\n-9F3BBAAA630A669A4D5E42D212069E0D9342D5A66ABEA43E7CEDF06157129F73\n-BC56C884C93169F527DA33826C781FB84FB7E02CCFB7CDCD601E286CF899CB2E\n-4F55D8689DF05A591B1017D1C662B4C3F1CF834BE1117547231EF7DC0AA30765\n-C4458FB6A2AF4AEB4FDADD8174D6FEE81566C5361BFE44A7C610D4691A1A8DB5\n-4D916A7F83454FBFDDC0FF52B8787A27DC1B16D5A2730F8D5DF6A7C983BFCFCF\n-F55447B5197671E21F131D5C022264AC468B1F79A9F1CEF3A28342C1DE8B5F80\n-6DF0463A102E782D1ABC0187C0FBBC9583E38675293446C54CA73A9F68074947\n-4EC81B855E4ED36F5FC1F47DE65114EA647E7D225CB40E1AD8B6A9671584EE34\n-2CC08A31BA6D402221A4E7BD2DC26232EC30182C021C7CCCBFDC7D515C40041D\n-E2ECC296C53D1E46F6F708521C658BD22E7B1022B08C93C37A35EBC4885A0853\n-E76E58E39282C2AA105BD6A0C0AFF78DE5BBC66D3B981E34EBDC0A527E7ABB14\n-2358C55E54B50ECBB8B6B163CED57FEDC3EFA8DC5594BAF1F0BD2E4ADC109843\n-F9F3DBABAD4F35E1D519EB3C51EB85C3FFD23C53ABCD909B76754B5DE3BFDF52\n-A97C64A1C4AA19FE44CC1BA599BA365697BEC0F3D98F1A1F716261F7F24418EA\n-1A4EA7666AD79637B606A47CA66AF80D17C742914ABDABF27A101B4C16A9999F\n-7AA67AFF934DF8CDE9C1C07E8FC2DD2BBD0C514DAFE789EF310A3003178DD424\n-180A11B6004FC3D21A3C6869001EA2C2F893ABF0195A928D8A1259726FC7853B\n-B02491B037D3039D18B106C0B4B70D1D4E573DF60D7611D48F1E40513D86D98E\n-91AD3C05E708CA8B2FD02C15CA920FB33C63623F1F5307EB1831C257ACD1454E\n-E92E67031B18FCC2C75D9DD90A88131882787CBEEA1A1612824C761696B2886A\n-ABFEFCB3A1E1F9BA676CCFA2D2CFA4C6F38A22182DF6E57A7F79BF76C6ABF8F0\n-66A585883BB77C8B855DE7E93B5C61AFE66A663B34D770CD32F99DE8F8080379\n-3666326B74A5DFECFD79A5D495AEE77F658ACF41885602835C23A287C07EE8BF\n-7638884C77C403B16AF0DC2710F80DC541FD58E1D119C7F0E6B441BAEFD3991A\n-3E92686ACFA2B89B62380BF119D6EE58FE3B4845D03FC308AD9201914AAECD15\n-E0B2D5BA2D1F1D25B16BEDF0584408B03EFBC855E56A5FD9FABCBC92BB694E63\n-BE4F98FEFA5264F4818D79F98D727AD0886A739E859AF47B986882B8DF4D7F8C\n-81F2E83D954EF375E6FBC424835129BC97346443B328DE761B6EC7E9D10FB7D6\n-C0670F9ACC52A9E7247129F9D61907762583EE0699E0571654296EF112C4D509\n-3224D118B16F1AC904C338BDD125A8B890F2CCCDC07AFC9C371AB338AE1EF255\n-762C1A5DCF08D19E5DFE165D82203054DA6F3FE02ADDAF5E324347F142E7B0E1\n-BCE2537D65DA7EB4F355959ABAA21053B585F27D57B04C904762EDD755A6D16C\n-180183EA50BA77AAEB66C17423D7A2D189A4D200EDA11F55B040CA29C674A2D9\n-E604B33BCE33ED5DBB5D55924A5F08386886A4002AB68FFAA02D9713B1BBA2D7\n-4BD862F11484D2B8DA231193C04E8DD0213430B00E2A7D2C09C9E70D8416FA3B\n-F2A7517CE5E56B42AB86AEDA900CE0F28D78E283D7ACAB2A538B1E5DC82C9E95\n-26CF5EC1C0D1C6B4E52F5C52EA24F9A022540245669713267E6E5249A74C1095\n-DDF07C0457F796F774E812D570A8D8844122B054FF91C3374AA972544A79DF24\n-0F4F620F0CE990CD7B9DD90C47EA23C591BDBC385B8026F416658656683660A4\n-094E160C42B942635B754BF03A2B16206A5201E974130B0FF2858F255A8014D3\n-196788E5A6BCEA6859D505BC7D8846939502DD5205EFA04E4EF98C41ED940775\n-1F2555A322175BF705D4F7089BE267080B9A1909900727651EB24E59B1BDE0F6\n-3A63DBFFC7FD09C81CAA97524875666E247A80600BE694992393F4603D8982FB\n-2C29AD757F7186DEB7221D25BB478AF6BC92E2407B9BB48D08820EB51ACEAC4B\n-AC7841E038FCCC63382AA3BE6390D7CAC97221F7D5768F8A105EC198D2649821\n-EB7055EABD746E6D7D44AEEA1EB8703ABE3A19EFC02231CC454BC86736876D79\n-C22BE8C45E02E2E73DE0B7D3D93C19704980589C84E1BEAD5D4D9669057E33D2\n-92744EEADA35FC0A4D5FEC4BB98F2EA1181DBBF564E66E16D79FC415BC319A55\n-2E29A5F56512047E0C65B03C3D58678FE903377AB2C94ACDC99D856F722302D8\n-48E50F75B3D461DA5C01D2E90720D44A6C7CCEF64FA7CFF425D65EF1C5ECF0A0\n-A739F5B2CB31FE62631FA17D0861D20FAB51CD3019090C7C4136E29FFCE48649\n-874914892CF60002795B4998C763EC01EE018F5DAD1CA7F31A8C4AD21451408C\n-900DD697BD574943DB9B7E40AEB7A18B264EF25EB66B11C324AE26E950F1587D\n-82C1E23FA7C11301DD7C03FE794860AA300B72D14E933701FD2E83EFA05EF5A1\n-784E18BA5D9E2D02698B7A9F3DA0538CA80560522F266AC243D24C3FE11A4BF7\n-8E17855DD63D9EEBBE3F748D4968447F83F4C2666AFEA59A9F92D2486164DDCB\n-6C6EFC8E3618C965BFD3BF8407FA4C1B003139DA26620667C16F56ADDD7557D3\n-04ABA76552A80EBCB6A4E0BCE9D6EEA2022CCDB5DFA3C75F9FF8360FCB7579FF\n-B0D3C979259A3E62564198F4F738CABCE8CFCD403DF12034E558107C0B001E79\n-AC833F28DA3AADAE073B6DE47E042B124033106CD6A826BB50E9771298A6730A\n-A148373823137B24DD587E0DA50560B8540DA384FCF478442B1A61980986D91B\n-7534BEB1F0774E07FAF5B07962B98D933A9A7FD098518C1E6BA1026201CC0A53\n-5404A6BE1C0F33FBE2163E9A45A63E2405E575723FF1F431B2E1EB7E60DA97DB\n-588C374E25578FD32D9D4CAC22E0EE1AE9F3151D133DD88FF8EA6472E99A6CD8\n-B817378D39984D1C1861893C41CFC7A6B6E0AA77E19B27E0775A133665E44F29\n-FF517162E3B8CB6F8C3FEA46964887BAAAE5CC5CC52A9930D5406E4C81C30179\n-78A3D3B94687661D740A43E06F04B88506C35E56462B6FDEC754676F4D640059\n-B2475B98437D483B82AC49CA061589F9CDB515F0ADED0DD8F889AA07C84A7B2C\n-6837066403080AB7E7A7ACC78C38B1CAE2794A3C9CBDAD93F91195061D82923E\n-9AC21AA4ADBE617D875F5B6730F68AEF8CEA611A6BB710059B7439F684C51CAF\n-79790F822E4AC3F6BC1F778C4FC77065CD47D942\n+2F2CF265A4E094BF8E56BDF529E8FF0649EF03063E72B0BCE9F013141F8D62DA\n+46B729E72BE7790A4CCE76813185B6D9D4D67BFEDF311BB29C4B24C0499FB161\n+13F9F852F2C15C60438216CBE9BC5CBBC068A0CCE222B674F48A8E8B9C1F3980\n+17B9A5EF8BAA5679F7D6212DE7034202A0758FA32010760DD18B75812BE917EB\n+A6D7538AFC9AD9B52D7FB64AFDCBF93E7A259756B6E5B9BF421E829032B0B9B6\n+532327DC0AC3C84CFBC1E7AB62D3113892235AB8C5E06B9ED4DE87619014D121\n+CB93A94E131BE8A5666742BC8A4A55C515831866499CECDC1CD65B310711EC1E\n+16719C4060617CF810EFBD29AD7ED8C600C5A5A514FF63D05CDB79E8B7F3287E\n+364A2088006E82BAC35EE1C95DD39BD16D50C26FA889B879CE56A3E02E6DA6CA\n+2BEA26EE8E974027A8E3CB2BF8524051645414BA621C61A22B83C594C9CFB223\n+B30293D1B7E58F8A33087A504FACA94B6D1E29E30AFA84C3692A64C55A2BCC64\n+08DEDBA3C08C02E68839D7F4BE7FAAA1E02C827318B197877AF9BCCE1672FEA3\n+BE29CF70087D9173BFD000DD4A017C0A2DAECC5AF6087B2BA350D1878A5A28F3\n+69D32483E9313AFFAFBC58467E9060722A237ADE5AB1277AD81CA46F4C961B3F\n+DFA1A6935CE12185CB35ECE23D3E794816EAD5145F477FBE824C0F0897FDEA08\n+11CE02EDDD4B267C2613CED061A00B69BB7DA125058E7ECBD934C7E7BBC86873\n+4631EE83B47CE83A4D156C193C0755D5E91438F660A3DB577C863662EF0841D1\n+939DDC747B7995C76BA103919DE1937DEA40B571C1CA4A48B9D9C7B78DDC6F2E\n+615CF9403DF3BCE321EF1932E2F7EE17FE6F0C402F4DF304B9A1DB46B32FB29E\n+BDCA91097C4A6B30A7396CE684F60FF945E2BB1D7C277B8614CBA0139AB45E6F\n+927B61C01D161B5984340AAF2E39AE87832D7787189C08DF52A1EF478E07CC83\n+1B6FD55FFCF174A35DCF946434FD83CF4C6EFBEB1FBC85D2BE19AB55CB76E017\n+A4F86E18E8F25F8F66F69550C4942FEB82E5664211A2D61B1C543671A33CB08A\n+BA012E3E6DC4EC4AA22BC9A182EF27781B724B85EC1880948EBCEB4218A9B0C8\n+3926E6A6D8696510518CAEF4C6CC3D4B1123B14B1F6CEA2F78EE249B2FC97433\n+2250CCE19BA63AC1931ABAD662A4E17BAC2B72180EFD08E721BB72F050397F12\n+DC9E7A4D1FEB35A36299EE1AB345B4B11803E7B3052B116260AE8FBAF04A65CF\n+320E9C2D5C8FE324A01A179979F672D2D3F076E095391339B962A8321AE21C3A\n+F9DF2D4EDBFA92C32955DF5AA2406E2F30B628D452FF4098D536F92926CB9330\n+8BB3299FD82A117B2DDE88158D78AD290BEDDA342102200F106B8A223F370721\n+5A81AADE85C08CE32DB40F5581A31799C4625D5C8241F9B04449C49DF4D2B754\n+C227FD6CF6656C2CBE5348A8648151E66F386668E61AC392B3251ECF9450E6B6\n+65AA12CAB1802688DA8135DE7C2BAC5C927736C10674453524651902E2465530\n+5453EC69B63D2C993FF545DCE9C34901FD4D35C1F118B557FE0981088781D196\n+1152D0B4FA2A22D246F360DDC10E74C25CFA8FE89428505D44A273EC867156F4\n+A7580714AA9F5B6AF76D6FF8C077F1F4039FF2BC1CB71138FF989FC85487C057\n+1E7540C0F2329FCDE153A79CE25CC01D7A4417945A540EE1A0F33052E215A638\n+0583DB0318377943FF525D0BAB2E97FDAF9BFB8410B58B1CC9DF71E6A969E6F8\n+E4C74A8C52245D49DD1F816FB6868508A7209715C93390C5F82415A6493913B6\n+041814C18D65B7C085699D61C655667BF41B6D65C36A5C54EF2289A44D8DC175\n+DE9186D6E55A0614F61AED068A06F4407BB5E55696612FA7CFB2BED3328D9CDE\n+F43C8A0755816A44106CD8A6E2010F2EE5BFA41C3748A27B31923CFFF43EC1BC\n+DAC15A8B2C3F43E8C92FB7D90199C5DDA7477029CC4A9265A479235B2D570A2B\n+37591088D9545EFECE7B2B0CF94B05008E38C2DC499472947BF06DE62078A522\n+5891314269679EFE74F75BE2AE8441B445547CF2C026EAB66E84C872D0CF1D89\n+A2348D847533FC6876262E6F8DFA880589D07934F3A2C682EAEB10E9C20B1518\n+A29BE9F8EE6EEF1E9FADE7AFB1B3E07ACDD467E4FC860795D21BFFEDF87CCDB0\n+C15FF3A6CB52C8C73FDA50421E334DCDC6326D7CFAD7AA074153979C19A0F210\n+400E680F75BDD37F474BC273A9A459FC5A1AC0933D9385B942A5B657F49DC4A5\n+D348206B06672327B3C06BA702831F4A56BF874B6FEFA7ADC7E218145D0E38D3\n+FC97CC61E1AE693323830F233C557593D423091BC36B1C0FA6E3D7BB6D9DA723\n+9573D979A0544489D5B4B9D56B76F56957C0B1E33FDE3FF14EAC58CF60A44780\n+BB9F52A9BDBDF0E47296EFEF0570CBFD09C9EAC0F9C13BFCD5A015292CFDDC3C\n+63DC970B8FD825CEEB31C353E9BA6E5E81539BFB07FC7E8CFFB7D3B0C7E29957\n+44C0DA752E2753E1FB2A35919D3D38A91738E1CD3CD20DCB043DFF424A164337\n+FE9196DB88EEEBF391F3E91ED8052B2B6FEDC07EBE4740D8BC89AA19399A1C1B\n+64619F0F5946D5B62B32C391633A9B6B826D11E86C028D71F779697B26EA57FF\n+67CB9A43E67D9C91B0910C65F6A23D2488442A358EF02B160AE1308C8C560A29\n+CF366452A63531DD3F225AFBD8CADA1FFA1B1E5CD97E16FAE5B1473FFCCB1A48\n+432A09BC947549BDAE01EE66AC79190C456E02A94101D95F61156415479B0DAE\n+A0BB70AB09F05B352ECA9B46C0C4E49DB09D6B952BB1468FFC86240692633B1D\n+068CE602A553B2686E420B4DDF376773E82F4AB0FAE495081EB2B0373BCB80AC\n+ECE031BFB40F2F92C0711B8A726A1C87F611F1B93D21FF6F3F18D63D72CDA427\n+7846F04F64C3E32766A68BE49F5822546FC1AD360B1482AE7A6A8B0EE49CC180\n+7F7802E2270142FF8B947A88306283DA0001CECC0E66F5DD238BFA1EA66BFD80\n+1AA0F6D9800B0035AAD3FC56DCAFB5C46E75F6E80C6313CDF2F2545634FC4C09\n+42FE615E51C0C4F7BFB70C670A3FA2DD5519325046DB64F01AEE642F08078404\n+632ACC623FEC8AF93AA082F23B0EC4139AE181EED6B7CA93846C44B8992432AA\n+E4FE15C0A44935F326AB0A9E9F8C97F0BCDC43D089B7E10685BD9292E48894A4\n+3549480B910ECD8C5D6D3D39E46B9AF1EE06ECBA18C5E5255E78749965FFD2BA\n+61819B8BA46288CC365927CCB206E3E1A3EA414B6B2870C405E01D400D5FA1B2\n+7B7DA93186DA3FF545392D5840662F7462C79720945F22ECFF97707DD1606376\n+7FD575E13774BA70F3D8C56B45F2F3203088ACC96D3E092AD1F32F8EA75B243B\n+BF8800BB523FE7477F8B1F66E7AF5F2B9FB4CB9383EB4869CF03BFA70A19D10A\n+70BE2FD12691454728EF822C4D4A016B24D9100D5AAFC6FBC6B08DC9BC020609\n+46AC4DED149465F1A7CEAC5EF3B2DB5BC53EBDC3FFA9D581454975A50B58CF37\n+6EB2EAFDAD89D5354363C331F42431ABA947610CBDC07D32B1C21BE0843CD323\n+50EE90CCE6F3EF73384E337444C7D4883B1B75471DAA85A71FDFAECC23D6C43F\n+C55550697C71E49D1CA8AF4594CFC5D73EA90891478464F4E5411C949FEF2B06\n+42489BC20DA4B7719FED370DC908185170A2BCBBA0F6467DB056FAC0297F9AAB\n+CFDAD8A402278F3BBDDF0F342AF32E6EE227105581E20FDBBA93946010615C18\n+4301D72464DA45373BB6905C33CCBF2FD8F5F37158C0EF7153BB8A41DE4FE5D3\n+23259EC63597FC849CE6402B6BCAB7FCD026CAE172F1DF4FDEA75E907E3FCE4A\n+A95EE97D15DFF0551BFB02445AB34C252AF0C140757C2D970BF884F0771C3A15\n+3853602662BA05F8C7A08955A418502DAF301208A5FE0CECA816E18CC61529E5\n+A1CB2F323CC87CAEBCDAA4636898F75D05833EBD025CA4EC43F18F290F1AF727\n+CBA35F3A8D8EDAEC64672D00A7F6FD3DED2FA672C2A44EC8B2C5CE9C1A37DAAE\n+0322528C03C8493A791C6BED3DAA8BB024738B7B93D0E7AC247FC0588D067537\n+2A03F5F0E0E14FE5338B759D1B9B4D5261DB8900A3E3572F65D6E2F6115DC0B7\n+FDE44109124231C5FA742D916FA258CAA9128FE438C3D926E4FC810DEA1B3671\n+5DE4E4856813741CB141ACCA5B73C5A7420ABCCCF8043F2B1A42AC01A9813ED6\n+C4DC4E728BE4FC807AD44A44F108ACDA4EEC6FC2783DC1344EF1FFEFF8F9E1E0\n+B00043E77EF77B476D153D1FB3078D3D33DDE3385F4DF120DD3787CF7306B748\n+8EB6A5E2614FE214104E2A99328A3AC2C23F57F5082EBFEFF0E09D0B782E237E\n+B91C8412DB8FCA2DEDDA7AFF82A039D1967A5472CC6965DE2BE8EA3D83340AE3\n+C62D0F011ADF537FA2116324AD8659395CEFE128D76C795BC1393F78D433D4D6\n+E295D6F539B01D9F6790C9BB890FFB590BB24279B9BE73E475270DDAB3739D54\n+F7D05CB5334626F16871870E99EED3D74C0E7BB8AB4D9F3358F185CCF5CE9F6F\n+E24E2D1D236B53550941F3AA092EF06090123C8B43E4E1AF443835BF0C1AB40D\n+E2AFF9351E24B85326729322088EC8FB09DA46926C6155DA6D612825334BD46C\n+0987C9A7CCCB786392BED971C3C62D4CD16CC00E80D507F0F4AF7D681814176D\n+A2D9AC2B5B743D8DF2568D3E5D7944CB2E03ADFE5F4088B1AB86A2B5758E5894\n+63A8CA8031F6C93E96F57323D209D5B1226C5DD755CBF2BF83C6AD4E90DD5072\n+B5C33EE522E70AA4CC709F04E8A4CFE71D1718CB58363B925355004D1FA70EA7\n+B23B6C460CC40522307709327BEB82BEC7BB6557974CB14391F66231B2223619\n+10AA6E90C50F3ADEC0BE76D976C533774CB7A1CF691DBCAD2A428D99BA228466\n+D21B8A204CCE6D16818B4752ED0C3B199BD3D69502EBEC82498BC16349FA539C\n+5DE495F03B723595DB3543FC254B14400190A8AF82A53347C133C300D32013E9\n+6448C63E4AA8A58808735D23CF0141CFC69B62A9EA6BD5F3D17EC9EB80FFD3E9\n+8D36F7BBA05C1D1D7FEC0134D98AFD9EA270EC9FA2F51809BA75BC5F4388DCED\n+C00871D333CB56789D1B60FFF631B41EA49B21CBF1FA1F81859378BB94859015\n+A05B03D7BD5A8373F8E368C86174A2F41CF06F617F34DB6F283F57CEDE31088E\n+9BA3CB35EEE569D3A58B1D17B7EDC194F700C1939C17C6E4D4F81A0C8929D5D3\n+CD1460383954BAFA1F2B121863C063AF1A170FCFF7A3A78D8374138F1EDB15C5\n+0D7CD14E5EE6834BBC126084404F1A102728CDF409032DA10D54BF312D58B566\n+9C615E94E148FA68B8C68DBD09E064AA22322F417C7724E92BCC6F072FD1D0F6\n+B968646B7AC6673D1E19E4F5D04D45865D0E90B8ACD63692329620CF168F24E6\n+E11A27D039F18BA3FEEA4711713A06008173ADA1A6A957486E8602026A8F8D17\n+0880EB0667AC25F45BA29D8AED4D93D7F4403578DBD66E062BCE09C18293018C\n+C9A2F23E280DE5CE16099FEECE81F232B828AABE86D2C33136B23E746CAFE0A6\n+19039010A7216DB53C152333F4A8E3BCDCCD72477A1ABEB1481573E6436DDCEC\n+AF7C2194B490FBA29DCEC6C2E3655CC4F1473DE39F045EA62EFE338A27B01F14\n+BD2EDEE48BE1AB9258C0800DB63DE9C04482F77E3936976C2FA3F6A345E14C78\n+BA8849EB08FAE6BA5D2D0895BACB3E54F0BC25046FB83F57C265D47860B58177\n+00AC01AF97C76B0C0D5CD24BE6B30B01FC963489A6E719FF91D2\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n@@ -6743,21 +6752,22 @@\n /UnderlinePosition -100 def\n /UnderlineThickness 50 def\n end readonly def\n /Encoding 256 array\n 0 1 255 {1 index exch /.notdef put} for\n dup 44 /comma put\n dup 48 /zero put\n+dup 49 /one put\n dup 50 /two put\n-dup 51 /three put\n-dup 53 /five put\n+dup 52 /four put\n dup 65 /A put\n dup 66 /B put\n dup 67 /C put\n dup 71 /G put\n+dup 74 /J put\n dup 83 /S put\n dup 97 /a put\n dup 99 /c put\n dup 100 /d put\n dup 101 /e put\n dup 102 /f put\n dup 103 /g put\n@@ -6768,14 +6778,15 @@\n dup 111 /o put\n dup 112 /p put\n dup 114 /r put\n dup 115 /s put\n dup 116 /t put\n dup 117 /u put\n dup 118 /v put\n+dup 121 /y put\n readonly def\n currentdict end\n currentfile eexec\n D9D66F633B846AB284BCF8B0411B772DE5CE3DD325E55798292D7BD972BD75FA\n 0E079529AF9C82DF72F64195C9C210DCE34528F540DA1FFD7BEBB9B40787BA93\n 51BBFB7CFC5F9152D1E5BB0AD8D016C6CFA4EB41B3C51D091C2D5440E67CFD71\n 7C56816B03B901BF4A25A07175380E50A213F877C44778B3C5AADBCC86D6E551\n@@ -6949,163 +6960,171 @@\n 82032FBD2FCB6E403D34B85ED4053A8CB619BDD4DE001F4C3007B1F317579651\n E6D6662189CC2D95AB85D7473F65C5D7B4AC63B0FE928F3400035D5A9D443D0D\n F3532B99F3AC26CB25EA3CD64C341159061E02EFBC7C033C05CD919BBD827A6A\n BFCF3BD739E32E7FE909AEE068D50FAC33605FFF98C7D0115FB860178FD03DB9\n 7985B78E0AC21F2EA065FA841F5928FB85163B2E2D8F850DC7EE313912C45C28\n 2783F6762C67882EFEDDC7E7567F91C16B16FD8D5A1ABF35B5586307701B91AD\n 54984598F2AD46FEE3D68A2731BEAA754C8E730FE0E84952EF77930E4118F8D7\n-2F3AD75525E301D173E869C672552C3824E8BDFD208D74EB3389931FE4A65013\n-44B963C2233052C5B2B4DBF324B78ED455310BDC5462CD3A7499638173A4543C\n-6D4EFF6B28094DEA99C0C72A83C0BF0F60B473AC77FB4BABD830033E73781FA4\n-EA6F715812349600C93793913F8D5AC338F961CC3181E4D83F0FF93105094E9D\n-3DC8C5EE5B05D0960B5093EF36859B8D6DBFE4D07327EDACA18BAAE80C1DE33D\n-6A472DCD303B5B19EDB3C84DE6CB429953C8601159E885E8C17CFDEFD230B9AD\n-9434ADD33D46D7B130E01A4F32C39CB42FBF15E58E736FD333D872E1745741FE\n-A32F76CFF60E1E8388781E1C45DFB395BED3118539DEA52C3248BE07F4BED3FA\n-C4639FBFAD8B8455BEDD73697CF94456B87E5874E4728BE10D734588BA1AC259\n-5724246C61245B6D770D43A3EF4C5E6D5BFC44AEFD997B99CDF04F1D5143952B\n-1868C8B0C3250E81B78AE365EFB64149E171160475E47B6EC739F00A797CC63B\n-883EE801DC22333C13B44D720DE4229F83E1CE24D7E86C882162BCCD6CA0B1AB\n-351C6E8AB001C926C768A9016B06EE3F65E1D0D9AADDFC92BDCB1DDD9F6C648F\n-38D5B8772B1B7E40DBAE2E0066D01B2C12051723409C7E920752E2F3568DA3EF\n-1FEC48A5AB655F5949C82E22A99BDD725F94588278AA34B3110A3AF187C72B11\n-9B5A54AFC3B34F9579C93EF999A6C842422CB386E7415B6CC4A966863196F2C4\n-5B432B8AA76A9088656E5DC8002BDDDAA34A555866FF5F278113D95C5BAAF9CA\n-1BF500E8EBC0F4EFC65BE33C403F800CA0E1A0C1930D08BE8DCAD790683508BA\n-75D228CE0424F7708DA3E0B8B2515F354E5BB69B6EED2F89EF47E23274D1B474\n-1B840D082030FE8B797236F6E99B9D55DBB97A7CDF09726722674696477B1D22\n-BD0B454C48836D567462544AD92AEFBD335157120BA08325D2DBEE17991FF989\n-AA8936AAC9BD9A169CAB4F491F6382C03558853CD5B7E519F558DF131A6D6250\n-EE740C7744D8B9A7E474CCBC29D941CF000DA9F5A654491AC8BCCFA5B1D70A57\n-676EF835F0A24164CEE0F7F528C87387E5F965F71CEFC4304B8999C094A535FF\n-1FDBAA1EA7FFEB10220B74FA831D9BC580D4BF190E226DF5448F4641579879D7\n-2BDF8D5996D29D4FE7B3FB1E4A59A709A30D9080361AD12264717A379ACE9DFB\n-C15628D837EF8FAD31543C9F464C0C85B78DB78313B21DD801E677B7DE190C35\n-A227D390CD94F1A2177D713F6C9D6E9D1AFFEF5A0696A5D056B7245BFBEA0064\n-D12122F2C911A04EA83F5ADDED8F087F40AF7B590A7065657F120BEA7DD98CD7\n-E54D419D66F806B8A20948581DD713D661CE6E1580F81102E5F8B1F725BDE603\n-569B22B4A8A5B0D44C005ED850733F7152C792CD5B6FD0E5724331761BEF75E8\n-E5B01154DDC732BE7485A075E13F6B1DDF0E12C47D64E04CFE35A7114B98EC3A\n-EF4ED2EC28C379EBE9DED6EEF860977DA28BF82C5A1B397925E6473713A80E78\n-938F28D191B1AFCD2A304ADE654616AA3481CFC012F931F2CE91CA0C40761382\n-9027F0D395012913031421A36C370E11D42A697038AA72630316D7F6CE39DE62\n-7EFAA5BD0B85545855040612CA45A3790AF286CD3DAD4CC2C2698EFABD6D3333\n-5EC31D84DCC63E319F377BE1D1934FE2ED6EBBC8E908D0882916B7D907F24E44\n-5790263886583EA72DFDCD6DF91D45280F2521437889A0BB50A8CB9EB3E98183\n-45412A2339204FE2ED0792C10D9A2D83811A9327C982A615CEBF2DC0FDCBA1C5\n-70AB8313B0DD23897FD243A5045E95C66E2CEAEF2409D9E0EAA2258A9BDC960B\n-6D51138158E9771D40665F0660A1390B6E325366133BF338CF7AF7A583BA743E\n-464F764111E3048169246198361D6ACF0FB7E08F449DA6FB1B6020DA9E2170E2\n-760680B4C267CC4D6B2E27B88BEFBEEAB8AC009D60448E958BDD1A09CD31F30B\n-445F4061D75C964D2F1ED61B75EBF89FD201C669DEFC93E1B0230FBD6A5322DE\n-3BDC88F411DDB77ECF42DDD43E3A764924CE9C2F3314011CF4A593202D865F68\n-9F9455AEDE19EC94011B5C6B9D6FFB254E98899C23EC8A04B67EC38971ABE826\n-05471E8552501E4012195259B399A592AA37D2B33A479BADB383AEDEE8658B00\n-11044E95ECA62C68D2ED951A4DE531F30D83C3F5B7BE3CE15E59A57E41A39AC7\n-64456B6B5BEAF1BCC2B8C9608342BB4E423275000AC2444119C1F6230C48DA3C\n-060D686E3D49D71C9ADA4ACB1F675DCEFFD7DCACB34282ADF8EC16B7341E3641\n-6C2190B36C3092B660778D697162C4C0B356FAD7171017191AD02A26F003642C\n-FF294F71FCCCFCE90656528ECE7E492CDD42A025C7F5A8370431287AE568833F\n-A7807EEA27CF1D5B562020ADCF0AFB99E4AF21E89864D4634375F5710470478B\n-982CC368D3686680B5404AD39B9AC7385EBCB0D4084C9A13A68FC1938184E525\n-D216127D1B98EABCDCB935A691E97283B586AD31C4B10C2B07AA1DF105851258\n-E5F91B16F5E3B6B45D050C9D11BB75ADCEF625B1BEA4EFE2270AF7754508F843\n-EDCD3910935D7C7CDF9414447BA8546E563F5AC5A6E9C430570142D6849BC50F\n-09D52CA6C5A7D165ACD54762F92503E5B9CCD0FB57F3C2E0BB77699D7373787C\n-A64C79C8F39F50BC4385BD049B7EBE80C84EEC27AE2A29C9CEDA64A794C103CF\n-A10731CC33CAA2576B152DF0D26613FC14698D1DD3F6073D61E01808C5E50557\n-E5237BBFB8F516D8311401F03F7B3031544006A6660A7BDF101089347EA5AE42\n-7C3EAB711D5A61DFB5101006BF18DA3F9C656B612CFDF4F21270A6A2DDA74A95\n-F5C4DF58448178B028CA1BC3EE5EB396342CCD390311357BDA25B935FD5C631D\n-EA10E1ABD1E0EAD12F4440564D116EB061F191D810002F79FCEF78196E21E692\n-891ECC4B4A952C66D97E995FC9E5FC40C3F20C7C7A155D5EBC70DCDAAF879A77\n-D6EDF9A6B320F55161931258AB8BA5955847FD507F33FA06AC4346CF14EDBF89\n-F049E4D9707B7DCB885D6BA1AE2AF4047DDDD80146D3E9C0878DFFA00ADE4CCE\n-39C9212AFE2A5E86EC3E4ED78C5CD4EF6EC6854CF223652243B71C2C0501FFC0\n-6C9D41B6D90D0B48BDBBAEBAAF55A873FCAE8F1011308C1264953D51E8A53764\n-43435A92EAD361B223206E4BEEDDC8AC2114050A63B38E4E4AFF5353B615EC88\n-089F838E6263FCBA571029487AAC85E302402FF949153EA92C54E62069EABEC1\n-4C5256B9940FAAC6AF17E59C82D58CA00E56DBF69AD4DBAE940548F40168216A\n-FEA516CF6129BE1769EA4D5B1B9AA8FF760D90473D191CFC1F4F26A9CAD087E9\n-18E6194867E9DCF9344C1394A00B45BE0D28CDA41C28DC03A899C4E417983C5D\n-42C33D6EF4AE4858265C8CF07650030E56648A2240D57BAF80E243945C846896\n-C782331A46C863795FB6462593739B0C23950F07A31AB44961644825596902AC\n-263795967378894EEFCDF5ABC09813956A5A5282C381A41436CC887799B05B1C\n-55A4B3208571C918E442433F533152B7BB927BEE56EA851F49CE0117E97F5B92\n-AF4A7C4EABE2BB53B6E81DE1F15C42ED3E72EB4A8E86D8E3D61781CF4B29B6A8\n-217D7E5136246A51E383647911647909628D2519E622BE7D567FC4394164082A\n-F8279F23088B48A09E2463A3884E70D51BAAC56C0842324DBB1ECE20324EF95B\n-E50CE75D6E80A8765038C0F35C947F02E1AB238EB3638BBCCFD92093F31A4350\n-1F44CB3B2E261A42460A82474CD80A4242388614ACD7CB4B30154F2353E85BCC\n-68E6414A0D0C5AAA2327D243C1FCE841D171DC0EA7BDA9ABF899B6BFDFE477E3\n-4EF9444ACFB7D79AC2B86195379FDC3E12F5BD471BB5D9755D7E860BFCD11D7E\n-3945D5651BEED89D0CA9230B84391E8DFD78C9585F2F9DE346C412BF6FEFD4AF\n-006864D8CF23FA2911FD1BA1DA03F6843C577C65FB0DD1B72D39878CBEE88A7D\n-29196FC32A04FF79CA0C690A3A60240165E61BE0D84518DDB667547E059B64F1\n-04964E05AB3F155DC08A12C9368FAB5089AFE64CFC4511B35160DC41D936C490\n-D817379760A940F67CC25FBE94F2EBBAD02A8859F51355A530307ADF5A85F8A9\n-02A8C2B92523C4D4D7BA41E28DCE7C46B69D97545CDC2332D9F4F75B686E769B\n-FDC20DA3769395415E0A0D6E1F041C3CF384AFC4D1529E2E8E95CCDB852226F4\n-5D3C73AA253B5D7063C1246FFB9B12132DA1BF776F1830A091AB338D1D20601D\n-C37B740F28131B0942D29F1646B8F64252021F5F0EF08E60FD2765FE2A9C6D74\n-A802A56F19F2050B6EBAE380311B8F536A840E92B3ACB051C8BAC74BA85A58BD\n-12DB82270B372918B5FA5AF75DF9726C108B20164F2D95F55725D13AB2DB1F0E\n-68974156785421E11556CD115DBEA6E924596D073F72B52A018A2BAE7E160F9A\n-7C23312C3288ECB39237FD4AFC95E4AF2C088A9C929E8177D93847A878978457\n-4FA6654F2F627B011A9C71DCB1D9FE039FF0637B578599AABC3BB2013C3C4899\n-1D908D714F2EC66BB58205DBE8CB666FF6F363F8D243A77BA3381535BC32A97D\n-636927C0FEE825B1DBCE083EFA1173380823EEBDB8920C183C662B081E8D1642\n-13C7A3C62966550AAB93D60B6A449CB2419202B2C2149E46CB1F71E37428CA1C\n-70D13012364DC88372957AC722E977FB7A5D306987DCB3122A8197CCDC4B67F4\n-C4E5B3FDF9F23897B42E979A407A8AA92098C8E4162D346EEDC78613799F074B\n-3687D3B50F611747C46B966478BCD15D6F7A6E83D6A02D03D9455E260476B6EE\n-862E6B8DAF8909F4085415C18B82089A158D44FA071F7E4785D18149396DE21E\n-8E8E99A69B0095E992816135567040F3BF16686113FE0002B29853BB7AF15A44\n-C2CD5809463011293CEC1431BFF3477B736A834EA87D6FD7DC7FD58A7BAA0C40\n-B1D136FCBD064D965329652B9F206D665842E209143B41D916ABB1F6F684D30E\n-F86894C1C3F138F262725BBFD8304AFAA0CF89228A33AA24B3BD0030CE8798BA\n-C56D8DD2EDD1BEBD26E2876EC7952162231819AF7B6E575CE083226298DB51C1\n-E9B2BC01C30D096D54B8DB0BE17B8AF89E7140E38A33FC209C0920C70E0B44B2\n-A1B9A2A6742E7445509E90EDB3CCFD91AF738C23C84AD64257E3A06F5963E0DB\n-1787DAE7C846E289EC28F5C799F1F00CA393C512395F7E25CEA03C2A914B93F4\n-DC1C5E0541303F4CB4772C654B2C11D96BEDA842C9B80721FB0282B5FCE61EBF\n-ED437A05700EA59EF42D2BF9C935CB88948A5D62400D078905F561D7AF45F15D\n-76633C5E51896AF9A3817D43E63297390E9CA807B80718F9BDEA9CD35D597ADB\n-917644D25B8E6BADEAF1DD6CC765ED6E576930557900F2F8B666DB6BA2A9E8CC\n-63209F519218D0856761ECE6F34FF419B669FA9AF7AE31AD53BC659C2FE582C2\n-C107681656D5A52DC12692AAB93E7D6F2BD8F0D73366078E873D8412BCB6131E\n-85CD3D8ACCE91A459A46FE43E315E26F0656B39176D2E877C9D1428FA54FA33E\n-4471B430BE498D0B36A13C174A65F2C5E8608A2454491C150BB3F63FDCF270C3\n-5BB71B8DF793F72ECFFA4DBC54855231CD9D668516799E40E62A32F018F18D8B\n-F88D4C9E9EBCBC8206C906D291A900F0B6F0B6BEF1CA9810E324543C9F0D9602\n-4E1437E1647553EA5C8F1637D904466ECBC0718620D94371FFF83F2A35ACDA2C\n-032D9EF365474059E2D2B10F730589DB65B76BBAA04E0C41EB8241AB194CAFCD\n-EBCDB0C07934545517AC03AE52774648105708785E65FB22C27ED6B6F2715384\n-8F80CA8A9BD6A2331C56F33CA138CF899AE64B74A2565FA9641153770460096B\n-60E363137CA934F521DE4F803C2BB941BF60F10C088C6AFBC096170141E55109\n-EB8410DF15FBB8B722A2F638F84E6314578D8479A748810085265A40E8FCB8F7\n-D2259107B11B563A89E33DC6144A4D87E126D882CE38E543972805C860592C1D\n-24D8667D02BC894C3EDA95CD7D1957B64580174E0C361EC999DADA15BDD144C2\n-FDB38BD663996718C19D155AF469ABC0332842C1A85F5D9DB0B866A0956371F7\n-1F252087DC9136F5D8A787BA34787836C2C4E9FA19D48A8C86DA6EC219F981BB\n-A6C136F5AD914EC2DBCA14D576FE2B38B6AEEBDBC97064895017E67C0707BA9D\n-CBEB15BEA908F961771AEED75D8566DB72293A1C5CB6811329E3B427D317C214\n-D519257C77880F07C1FCB9746B1678BCDF3231CA45B52298F7D7C873462B95C0\n-56855963F2A6A0B3F24C250B21B0ED12AFE9557A3B018C33006FA26BBC5D11CF\n-3B74C0B6DC091811AB72F8A377DDA061D3C308F09F80CC87D3F125D0E875E58B\n-EF187A27CD9FF9E1F570C88012436AC49A58DA6AB64CCC92A2278D9A35BEB1DB\n-824F96B971701F7BBE15AD5C14DAFDAE5313713F19D4B7180833FF117939FDEC\n-9AF511A23AB7D46590922B06F216504CC255991721CD6467477B8C94475F7B0F\n-5BE652EBD9F2E81EB4D95EF2ACC4EEC554A1E76C1A0F0B49A4DA090744E094CF\n-330F5A0B31BA29AD967769FDF02741BD8B0D4CB96D629E301E8AD3A1C46FF26A\n-2665042F222CA427E993EE00FA7BC5E710FCD5639222DFCAC5FC6655470A9D84\n-5741F47BF502435286C4BB210C716EC9E2746320DFA450E18F90C777E2825235\n-60E96B2E995F9C31DB966C265A3666FBA3CE81689E8BE6EA9A6D6B6E3D40E07D\n-B91685D0E5D2CF589E2F022E597215531349E7E57B586B6636C21C6D4D90F5D3\n-36EA73\n+2F3AD7547F9B0793E20128D03B122C74288283D9B583378FBA48950DCBDF887D\n+0A4C231FE009050F8A0C02473587E1D076F0BDC5458931FB26937C4EF7A7AB76\n+DF14BDA8C5E27BDD9EC959C6F3FCF0C55E52847705744EE3D80EF426B9760775\n+F4BD72DF213B715BE0AB9CEF5A9038E3EED7AF454E08ACBBD037E6307A04F331\n+224C39B55908AC9FA0B8E560F8E78D5027B8266331C62EDF750CC08C0E2EB573\n+082BB774BD853932B7C0C88BBE5F6E5E9D985792FA21B3180EE9911F823439DE\n+C430774263982682D4B1B76C287D1856702887A9A99B2B5A466FE6CC5B0851DF\n+EFBE62D59C80A0B97E81D0EEF577494C78F03924465B9042C7C6C1FD732CA57D\n+099755095F57ED2389501E3BF0969584ECE08D55FD8D7E95F92B4A0D405E5D61\n+D10A7CF6B540B64594532EF90FA00CF28271462CB7F96D210E554AE285907A38\n+EF66F57A40E2302CA4D3864994EC113AA35017C6D9890D1F4990AED4E5E395BA\n+51A1FED7F0E799614AEEFBD6FA24180F06F18DAC1D48FCC97C637130FF5C49AB\n+65E3E993F2CF6A2ED14A5A5CB71EDDAC41F58897B17750F761C131E1951F0F61\n+1F97660E665F72B8E5106D357D7F673A61FA9399DF549ED13478B0335D7E97DA\n+DB74852BFFEBA827ACFD99EAD434BC753CF4E821275943118CF97A260781E068\n+B184EEDC5879DC8787E93AAF61C0A4D418A86C33B89A2B8AAF6F49094930434D\n+D0C2E3E47E4C849694F27DD241F3BE91C3DB064D79677FE30BB4275A02AB5703\n+C2264DE0968934F25B5A855A153CFC062AA83B31F1C6E8FB1AFEB58A64A14B09\n+67E7B6AF2DA17860B7543EEB6ADCDD16D4B7D4F18E6F194B786485B01BC1A3A9\n+396EE80A882178E4C3644FF8AA702B5464748DFED0976C8BA16C832E799B239B\n+9099F3D4A5A68BDF2E3FE6443946500F31DE839C2A3BBA6577B8CF43DEB27DAB\n+C0A137B4720797D42486BF465D5B985A25E9032899A947682839EFEB2B8C88A4\n+68C6CF3974C05F04622DA67A108D15E6FA0045E7DDB78CCA3D006E29DAFCE011\n+145079AEAE711D809C2E273678FBB776D52D087A2188BC928D1402D701B15092\n+5738B4443E74A65AE02C4003A26A7AB8B47EE43F90F9BF18B2ED0B49C7323D1A\n+B8260E303426756CCD9F58C35EE26DF93E3812B5AC37CE52B4CF91AFD4E35BAB\n+953B82F8605C48210430CF1BB40C08830D363012F6B799CEBD93E0F4471863C8\n+757C7F2B98D93043226E39D08F33F2A4FD0A5ED47C649D4B436975FA06A55C50\n+EF3B08AD7530027A0A39A0DA0100A0FECF5DE027A6A28A96D04B31398B2D83B0\n+DCC54F437F821BD1A7A557E0C57880CCA7272CA5A57904CC4E9928D615251D0B\n+F3531E5E727AD0685FCC56379A638017555F0461CB993D5C1521CDAC0763C532\n+97F184F8970D9684715E8795FA1D524DA2C34CD3A14A6B0040FECD322147BCDA\n+E3B077C05158FFB35462B1F76E0EA38924B4D11D7F1E33A27097C16B18DA9041\n+73F04019FA0D2B8B44A29349DA31CF1623D7B4B2BA93B0EC0A77F6C83E00EA7A\n+068E3AEA228DE76A68DCAD7CE2EF84A1158AF71B91CEC37AA83B8D9475E08577\n+57AC8D901BB47DE5D3C0012733E108B4E5DC9F6A2866288164F49A6A0326F071\n+7CBB886F7926E350F0BC53722D07B13EAB8B2BB7BD45E3B200D263E36CF8B0D8\n+14C0A96F3A7E9469803789D1985C88EC018B5B696AD7F7EF06E0A62E0078E96F\n+0A283CA24D5DAD82B27E2984E30E914AB13CFE88FC213C35EE5C0EBD817B22E5\n+24FB5FBEE871C835A21153C990C6034DDA6E13EEDC75C8890DBE01222968D30B\n+BC331BF66F01120ACD64D6ED3EA805E5301AE6CF826F265ABFFE56E4204C7F06\n+9444E01D00FC487E42A6E362907E919521012F8223C341A9A1E177EB5B7C75EC\n+C8DFEFF27E9C5C9978E2F55B2A637B64FF4AC072340D9B903D7ED33FCDCE4E84\n+E731A78F61D11B8A8943EB40EFBEF64BCE9022BFE6E077AB24E43281A16A7782\n+262D6DF9BB2C70784F7D122D6982AB98C1FFFCBD8809C7875CB4CBE5CC3D60DD\n+727341788798A973A623EFBD052BD7193E31B897F4919812B859038299798548\n+CDE0F6CA767E79FD41A10B04A6B12BC19E64CA06BEA504FE74A850408AD4FF06\n+5359348E111EA689163F3D59BE15DB4AAADB3E0FD19746A97CBF9AB8BA63F411\n+4E73CA16B04AA14BED95AFDFF7E46225C6CF4F87FE08E81B9F669127EDF65D8E\n+9736EEC0E100ED2049A852645C9D927B1D44B8CBEEAFEC8CC63BBFF02A83E0E1\n+FF677A62110BAEDFAC1C1439A6D39FD43349AC9CAE5043580BFEEED28B345196\n+95EAD030B147DF68B86C43AA659D6C2FA5A60E13CF53FDBCAF687C4CB2C78B65\n+6D4F4D2FC2F61C406FC4F5DEAADAF3D15E43F4AABAFC5D23202859F58C47352A\n+569F0590359E03E4FD7AE21247FC0F9069F65C2CE1C948DC3F0F889FAD4E7512\n+B0CACCAEFA437E88EB404C34B9421117ED80A6742A457F77637192503B7A2B5F\n+24F620A890DAC6562AC87628D551D799D6A782B2306E112A87833BAC436A2524\n+8660EC823E23B3249C519798B690E562A6804F09C173DCF9CEDD32AB69621722\n+32B104831AC07F946B53FD0A94C44AB7C2C225AD560C5B437E27E5E435B47D3A\n+10ECB98005F36FBA66DA9B6D30DFF5D66FCD2D4D7CD5CB3BB18F946D409E6B43\n+3C5A09C2E4DE35A06A07F2314D4CC4925F21B3C551E6F3D3395ADE85D25388CC\n+12ECA1FD267B0DF47D0A868791A69E31540432A8614AAD58703A79442484902E\n+1E4CC5B68287D4371FEC4FFB4A98CBB4D6B44577FB4945E04B89A605A9A38489\n+868949D8C1312EAB34C6B271568C0EAC35F8E2AA84EC5B8E0AA4C5729031AE66\n+517239ADCB9E7DAB19B7A2DA5A5FCA26242D13821DDB565CFE10FF9E01BD3919\n+EB66CCC2C1F06D10AA8700480B2CD423F74962CAEEC561FE1265876FC4172689\n+029EA0019BFF0668A0785074A2C906DFB9C78903DD0869D1AD2081B3A4370DD1\n+BE0567C0F3FDF2CC438F9FDDB0E32736D67D1E8110E7EEF39886B8DF97A761BA\n+4FC9EFA3BEE0D63E0D61C446C01F8069833B4FF7F55DF1CD26C70DC46FB56AEE\n+E383B14F2C56B701105612DFE70CA51E14CEBB33204670C6AC3BF42DB8DE8B08\n+1315B8F4FBDA3BAE39A4DCC401D8DB964FA085B3F78A948E4213C6CBF1002910\n+168ED8902B80F87C5942E992CD456FF2E602900889BAF3EB1A16D948B7E2B779\n+F231AA0A25D82FE9685DC36A2816D91FE9F8B25492594AAF69848E09ED4BF3E9\n+29DF288EB9FEFDEAA8D4446F5E71FB86374CD6FAF04AF042269DEA6792103285\n+FFE4687E47C36B19C77EE4797103915BEA50E56A577868795B8CB6CB07652765\n+0AFC1E5FD1D01E1842D344046BBC1E27EACE59B30F70D46284D12E7862B9D082\n+F7B9BE80959139B0DA690A91D8E1C5A9A636B25C41BE0E3BB03425CA7CCF57F5\n+6D75D69ACA3EE34A491DEF1BDC1F8DF485A5AF5642A52C8C3951D6C5B5FAFCEE\n+81154CDFEC88E2B1E31221D85E200B0084D1ACF361A67806DBFE52DD3F589029\n+26973B9C56E930085098EFAF22ABADD55E0935D32FCF7D927EB01FF4039EE3EA\n+020A42FC70E86B7DCF2107BABEA73A99A986EF0A922664765E5D909F9F4F8F42\n+36654F07AC223A75F16E22F11A82795F2753859FE39A271D5E1550E9C3192363\n+DF76A570030B0854D6E51FB6FB4F9127D3D804B5C20FECC859213119244C680D\n+70E99736B668C83ECCC7D923613E937311EE0CD1999FB3E8A7EFABEE6A798C61\n+AA1B447204883B9AC0D2125761BF8D8D5C8F2DC3F6A1E77F3792DE0FCF30561A\n+B80993321476C3CCB3C24771B37F35A5F47C0324289A468D1416382ACDF160C8\n+6B6C04573A88EB2E7BCF81C41212E628D6B0B971C6C6FB92DE45B7300B6787F1\n+70F3472C3190AAE9F9317A1134AA1EB5F0EC3D6E99DA921F25D33EF1B88D1945\n+F928D799CFB517F2F207A9AB18295E64C0DFBF19B2D734BD0A9C5A05837EF182\n+C64050A5F7D38045581227A32ABC42FB8EA6298047F011EBE31507026C55B40D\n+08105F02850B55EEDC4212B26F0EC6DE57FDC5BC537026DCDC89E239B398A872\n+5A856F79D6630182DD9279D4BC40DA22B25DE21C1F1D7D6DD42FD86058EEAFAC\n+456045068C6230A8CE2B09375A8DA3DA8E9EA57300931E62024F00FEC3D67DE2\n+26F132630917A19A699D55819DF39EE3541C8480AC98FBDF8F24AE5A050635A8\n+CC8342DB093DDD9AE0D37A15B62D34B5157F2DA1A22BCA2DD85BDDFE63A1FA69\n+0AD27FB01D24C2FC35C76F83BF29FD79E4877A81ECDFE486CFF96E1C26D7430F\n+EC658BD0952CBBF4D227E2B3DC2C286A098220069868417D812A4200B179562C\n+5401AA7F44270987D60EA7E94D8F0682685DB84767AE4B0E4D63BF187D8A93FE\n+3803110E6FDABE4439578D859C0B445D0A1A6A9800C0DC411C42F42903D4922C\n+165264C5FDC116B4DEF0606A0870E509CABE11886FD58E0D150FAE2B1B751882\n+6A923B15612466E6A03C41C1271331B5600EBEA00BEC65335647081DDE915C9C\n+56452C62980348A94C5B415ED3695B0E9446CDC37911E74C4D17466DED4A252D\n+4EBD46B808969D529740B820EEAC71D31BB618A905BF4DD304F7218F88261965\n+BEC315DB27B61B753B1CA5BD0C68E752746876948FC23BF0CA54A69F73963DCA\n+7D6DF0E7E40B337C02B8CCBC3AE9F285383977E820082B9372A8AA7C4F77027E\n+7A05023D52C41D501EA963C1A318E4D40B9407C3D09FFCAD358250AB781C2378\n+D787B73D3BC96FF29F8CBFA9960F54D51BD1884799BBCC368FFF156E7179581C\n+BEAEE393DA37C311D93DB3CC5E5409E725D4564A7AAF047ACF290DEAB4A00F4F\n+6CA5BE74D95CBFB3ADBF493607758C497391EC5B01676C7F85649BA89105E8E1\n+C4231C20798E0310195E0072BFA3C89A114DA8AFCD86BC1601C1054020009927\n+F6B7CB1A254816DC0B5B6FC98C7F06D1CE14D2A5E4D6FA9169CA278D56FEF498\n+664424B955C4AF522806BC2F3A2D8BE15EC795BA3D80234AA5F3B47FE632C760\n+C1163AF9B1E83CFAB696839CE77606FC48C428DDB473B1F9AFDD4D2E297CF342\n+4E5A88FD8A5F6A046BA2943CF0AAD1716A530C7A1239090A399170EB13F29A6B\n+E15872FE6E48A04EB6705D614A7EEFB9AA976029D4B980AA68C069A3716BB086\n+3FB93CD9DB2190E40345EB409B4D7CFD2AC666139C3336E47D2C264572E7973A\n+691A959D54AF4A474B6243A629F5DF98E3BC006AB8A3D4D7FB3EFAD9F18439D6\n+B2213650433F8EEC946DB42E622CCEB8C15ADA73C1D639203E71071AA3C90F77\n+70FD88BE438B5A3BB391639C8CF3B2B9518682E062B45B592A16A3E63D2E7F0F\n+FFD700C20CCEFA685F30B5D9FBD04C427D101179A910A79AE83D6EF2C20B67DA\n+D2102089B5C2257126115621AD905E037CA6D9A0D40AE8169418C32DA083901E\n+D43B821BEB84DB44A70174FC9F30821E9B05C76FAD2050E1B2BE2B42BF7599D4\n+590166794B7471CFD9EF74586B2EB01B293E24FF4AA72AD911D650628AEE6F13\n+4C7C764D02B6A534EE372A853C97B1928D3A35ADAE609FA3494D90DEA35CCCEF\n+770C59C9AA4CE8BE4C94DED83DA72CD8CDD3370D88DE10499AF312B022E908DE\n+F84EE5BAFA6EFB558F81AEB38103249C3E08DB65BBF69A4E11F0D48412335B76\n+06BE7AAD4794E6D6237200EB8ED7751B52376CECDD79455FF634E3C096316550\n+F0DAAF7B926AADB70D437D59D81BC13FE0E6D16BE46CC1E57DD4B2A825AF1D40\n+B0EFFE303799D38C20D8CBE6E3CB88611F0F15B02ACF86F49261B884971391DB\n+0FA0F93BC817168A864C01013D7BA9E26CAA2D161756311316C490ED1BA9F6CC\n+549783C30DBC99BA012CCB1A658DE955631BB164233AA93F6F8D56F2E3AC92FC\n+1A2E06F6730044FB175A8EAAA49F96006C51C3EBB31106A0E3004EF16BB1EDDB\n+6F566C606FFD698E357CA7653145A791D0ABAF6183AE6E2781426EBA97DE6354\n+598961555217B733D3795D86D180E3181CAABB335AB7A25225A1DC3FC10CA323\n+C685AD84C2E2099F73A27283F4C923FB08ECF62C398F8CA32748ACEAFB2E4AEF\n+42229510614F72AAFD9A72C0AFECE193B53A3394ABF8898BBB00C1EE0A4077E0\n+E7D37E1EF633A47C0AAD68614F5F7F76157ABF1D7308FFAB12D947552911E6AC\n+7AC6DDAC3F837B3776F11DCB71C930949F18A5570EC4A96A29CE4B36A4DDF982\n+9C47CE0ACA120A6622814A3772B35393BD1FB7F6F4342B1527C2D8EE3D87F84D\n+1288D6A217C94BC0FECF54FA69C92323FBA4E6A06D6D91625D0DB85C406B83F9\n+878356BAD72F0F54E76BC7E37175D594999D9EB70D5DFC4E1F90C5DC4E3F45D2\n+0990072F5191C2C721CA9435FB0C64CAF6F49A49A9C202901C2517AE3E436D99\n+D6B86F6DDD02B0F973D60CC0E0C66827FCBBA35C9270E52E1E5F696C00772A33\n+906BEB97F49AA5114CEB0B36E506AD7611A1973EB8A9A1B4D74F3099DF254C21\n+F0BE1A734BC35124DE2A3952B75247C823A863CE5C0D22DE92EDB0A16A51727B\n+7F417BDA5F7A25D6758210CD4D57E3EA3FCBAF5E3A0EE599D05E72D8350F113B\n+E46A6781BA7A392EE5781F2335835397653E5903FDC553EF0097027905A4C55A\n+AB2C51CB5CDC888916DC71F51FFF2CB459AB7EA91A80BD16F57B25A39CB836AE\n+72F7C482355BAF4EE6D10A7ABF33C24CCCCC83D8CC2B61CB618C25DB1845AD37\n+C41B63C9E5DF754C522C7DE15616A9B1C37BFF3067A24A43708FDF734C12590D\n+743863F569708FC98B0E0B0EBA89AC9A592963ECBF8FE728ACA8FD233EE29315\n+F2BC8787994139EB459BB9C9EA1F25EC16B84FB35A02DE4CBF01CDE69A68C19C\n+39544C52B7D71B2D5171975C7C12293A3356BC6873ED7990B695227EB33F9E8B\n+2DC21406ADABEF1BCC68DAA15B429070427D89E516F1B42D12BD9702D2DF0B04\n+CEF50989099AA1B0846CEDD12259EA12E26B351F66F1E7558166E0DBDE983013\n+5160DCA128782495BD34342B1A5667F925F924F323448A2FA9C019A948BCAF01\n+4F113098750A0F5B3AE15C393A5001F4066D765C7E62511996EFF605B9204D88\n+2FFF6FD3968802933DE98C20C1711DBA\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n@@ -7517,21 +7536,22 @@\n 44 44 44 44 44 44 44 44 44 44 44 1[44 1[44 1[44 3[44\n 44 44 44 44 44 1[44 44 44 44 44 2[44 44 44 44 44 44 1[44\n 44 2[44 44 1[44 44 44 44 44 44 44 44 44 44 44 44 44 44\n 44 44 1[44 44 44 2[44 37[{}70 83.022 /CMTT10 rf /Fh 141[51\n 1[51 7[51 6[51 25[51 71[{}5 99.6264 /CMTT12 rf /Fi 135[59\n 2[62 44 44 46 1[62 56 62 93 31 1[34 31 62 56 34 51 62\n 50 62 54 10[85 1[78 62 84 11[70 2[81 1[85 11[56 56 56\n-56 56 2[31 46[{}33 99.6264 /CMBX12 rf /Fj 138[46 32 33\n-33 2[42 46 4[23 1[42 1[37 46 2[42 12[60 4[65 8[54 4[62\n-11[42 1[42 42 1[42 3[23 44[{}20 83.022 /CMSL10 rf /Fk\n-133[31 37 37 51 37 39 27 28 28 1[39 35 39 59 20 2[20\n-39 35 22 31 39 31 39 35 9[72 53 1[51 39 52 1[48 55 1[65\n-44 2[25 53 3[54 51 50 53 3[55 3[35 35 35 35 35 35 35\n-35 35 35 1[20 24 20 31[39 12[{}53 66.4176 /CMR8 rf\n+56 56 2[31 46[{}33 99.6264 /CMBX12 rf /Fj 134[44 3[46\n+32 33 33 2[42 46 1[23 2[23 1[42 1[37 46 2[42 12[60 4[65\n+4[43 3[54 17[42 1[42 42 42 3[23 44[{}22 83.022 /CMSL10\n+rf /Fk 133[31 37 37 51 37 39 27 28 28 1[39 35 39 59 20\n+2[20 39 35 22 31 39 31 39 35 9[72 53 1[51 39 52 1[48\n+55 1[65 44 2[25 53 3[54 51 50 53 3[55 3[35 35 35 35 35\n+35 35 35 35 35 1[20 24 20 31[39 12[{}53 66.4176 /CMR8\n+rf\n %DVIPSBitmapFont: Fl tcrm0600 6 1\n /EN0 load IEn S/IEn X FBB FMat/FMat[0.02 0 0 -0.02 0\n 0]N/FBB[-11 -15 87 40]N\n /Fl 1 43 df<006000007000006000006000406020E06070F861F07E67E01FFF8007FE00\n 00F00007FE001FFF807E67E0F861F0E0607040602000600000600000700000600014157B\n 961E>42 D E\n /Fl load 0 Fl currentfont 50 scalefont put/FMat X/FBB\n@@ -7558,19 +7578,19 @@\n /Ft 1 43 df<000C0000001E0000001E0000001E0000001E0000001E0000601E0180781E\n 0780FC0C0FC07F0C3F803F8C7F0007CCF80001FFE000007F8000001E0000007F800001FF\n E00007CCF8003F8C7F007F0C3F80FC0C0FC0781E0780601E0180001E0000001E0000001E\n 0000001E0000001E0000000C00001A1D7C9E23>42 D E\n /Ft load 0 Ft currentfont 66.6667 scalefont put/FMat\n X/FBB X/IEn X\n %EndDVIPSBitmapFont\n-/Fu 137[51 54 38 38 38 1[54 49 54 1[27 2[27 54 49 30\n-43 54 43 1[49 13[54 11[77 3[70 69 73 11[49 1[49 49 1[49\n-3[27 44[{}27 99.6264 /CMR12 rf /Fv 139[51 52 51 1[73\n-66 73 111 3[36 1[66 40 58 73 58 1[66 12[96 73 3[103 1[122\n-6[86 70[{}19 143.462 /CMR17 rf end\n+/Fu 134[51 2[51 54 38 38 38 1[54 49 54 1[27 2[27 54 49\n+30 43 54 43 1[49 13[54 8[50 2[77 3[70 69 73 12[49 1[49\n+49 49 3[27 44[{}29 99.6264 /CMR12 rf /Fv 139[51 52 51\n+1[73 66 73 111 3[36 1[66 40 58 73 58 1[66 12[96 73 3[103\n+1[122 6[86 70[{}19 143.462 /CMR17 rf end\n %%EndProlog\n %%BeginSetup\n %%Feature: *Resolution 600dpi\n TeXDict begin\n %%BeginPaperSize: Letter\n /setpagedevice where\n { pop << /PageSize [612 792] >> setpagedevice }\n@@ -7579,87 +7599,87 @@\n %%EndPaperSize\n end\n %%EndSetup\n %%Page: 1 1\n TeXDict begin 1 0 bop 333 739 a Fv(Ordering)44 b(Sparse)f(Matrices)g\n (and)h(T)-11 b(ransforming)41 b(F)-11 b(ron)l(t)43 b(T)-11\n b(rees)958 1023 y Fu(Clev)m(e)35 b(Ashcraft,)e(Bo)s(eing)f(Shared)i\n-(Services)g(Group)2942 987 y Ft(*)1629 1261 y Fu(August)f(3,)f(2025)0\n-1923 y Fs(1)135 b(In)l(tro)t(duction)0 2165 y Fr(If)38\n+(Services)g(Group)2942 987 y Ft(*)1691 1262 y Fu(July)f(1,)f(2024)0\n+1924 y Fs(1)135 b(In)l(tro)t(duction)0 2165 y Fr(If)38\n b(the)g(ultimate)g(goal)f(is)g(to)h(solv)n(e)e(linear)h(systems)g(of)h\n (the)g(form)f Fq(AX)46 b Fr(=)40 b Fq(B)t Fr(,)g(one)d(m)n(ust)h\n-(compute)g(an)f Fq(A)j Fr(=)g Fq(LD)r(U)9 b Fr(,)0 2264\n-y Fq(A)25 b Fr(=)e Fq(U)241 2234 y Fp(T)294 2264 y Fq(D)r(U)37\n-b Fr(or)27 b Fq(A)e Fr(=)f Fq(U)803 2234 y Fp(H)865 2264\n+(compute)g(an)f Fq(A)j Fr(=)g Fq(LD)r(U)9 b Fr(,)0 2265\n+y Fq(A)25 b Fr(=)e Fq(U)241 2234 y Fp(T)294 2265 y Fq(D)r(U)37\n+b Fr(or)27 b Fq(A)e Fr(=)f Fq(U)803 2234 y Fp(H)865 2265\n y Fq(D)r(U)38 b Fr(factorization,)27 b(dep)r(ending)i(on)f(whether)g\n (the)h(matrix)e Fq(A)i Fr(is)f(nonsymmetric,)g(symmetric)0\n 2364 y(or)34 b(Hermitian.)57 b Fq(D)37 b Fr(is)d(a)g(diagonal)f(or)g\n (blo)r(c)n(k)h(diagonal)f(matrix,)j Fq(L)e Fr(is)g(unit)i(lo)n(w)n(er)c\n (triangular,)j(and)f Fq(U)43 b Fr(is)35 b(unit)g(upp)r(er)0\n-2463 y(triangular.)54 b Fq(A)34 b Fr(is)g(sparse,)g(but)g(the)g\n+2464 y(triangular.)54 b Fq(A)34 b Fr(is)g(sparse,)g(but)g(the)g\n (sparsit)n(y)f(structure)g(of)h Fq(L)f Fr(and)h Fq(U)43\n b Fr(will)34 b(lik)n(ely)f(b)r(e)h(m)n(uc)n(h)g(larger)e(than)i(that)g\n (of)g Fq(A)p Fr(,)0 2563 y(i.e.,)27 b(they)h(will)f(su\\013er)g\n (\\014ll-in.)37 b(It)27 b(is)g(crucial)f(to)h(\\014nd)h(a)f(p)r(erm)n\n (utation)f(matrix)h(suc)n(h)g(that)g(the)g(factors)f(of)h\n Fq(P)12 b(AP)3555 2533 y Fp(T)3635 2563 y Fr(ha)n(v)n(e)26\n b(as)0 2663 y(mo)r(derate)h(\\014ll-in)h(as)f(can)g(b)r(e)h(reasonably)d\n (exp)r(ected.)125 2806 y(T)-7 b(o)32 b(illustrate,)h(consider)f(a)g\n (27-p)r(oin)n(t)g(\\014nite)h(di\\013erence)f(op)r(erator)f(de\\014ned)i\n (on)g(an)f Fq(n)22 b Fo(\\002)f Fq(n)h Fo(\\002)f Fq(n)32\n-b Fr(grid.)52 b(The)32 b(n)n(um)n(b)r(er)0 2905 y(of)e(ro)n(ws)f(and)i\n-(columns)f(in)h Fq(A)f Fr(is)h Fq(n)1112 2875 y Fn(3)1149\n-2905 y Fr(,)g(as)f(is)g(the)h(n)n(um)n(b)r(er)f(of)h(nonzero)e(en)n\n+b Fr(grid.)52 b(The)32 b(n)n(um)n(b)r(er)0 2906 y(of)e(ro)n(ws)f(and)i\n+(columns)f(in)h Fq(A)f Fr(is)h Fq(n)1112 2876 y Fn(3)1149\n+2906 y Fr(,)g(as)f(is)g(the)h(n)n(um)n(b)r(er)f(of)h(nonzero)e(en)n\n (tries)h(in)g Fq(A)p Fr(.)46 b(Using)31 b(the)f(natural)g(ordering,)g\n-(the)0 3005 y(n)n(um)n(b)r(ers)e(of)g(en)n(tries)g(in)h\n+(the)0 3006 y(n)n(um)n(b)r(ers)e(of)g(en)n(tries)g(in)h\n Fq(L)f Fr(and)g Fq(U)37 b Fr(are)28 b Fq(O)r Fr(\\()p\n-Fq(n)1424 2975 y Fn(5)1462 3005 y Fr(\\),)h(and)f(it)h(tak)n(es)e\n-Fq(O)r Fr(\\()p Fq(n)2152 2975 y Fn(7)2190 3005 y Fr(\\))i(op)r(erations)\n+Fq(n)1424 2975 y Fn(5)1462 3006 y Fr(\\),)h(and)f(it)h(tak)n(es)e\n+Fq(O)r Fr(\\()p Fq(n)2152 2975 y Fn(7)2190 3006 y Fr(\\))i(op)r(erations)\n e(to)i(compute)f(the)h(factorization.)38 b(The)0 3105\n y(banded)28 b(and)f(pro\\014le)g(orderings)f([11)o(])h(ha)n(v)n(e)g(the)\n h(same)f(complexit)n(y)-7 b(.)125 3248 y(Using)30 b(the)h(nested)g\n (dissection)f(ordering,)g([10)o(],)i(the)f(factor)f(storage)e(is)j\n (reduced)f(to)h Fq(O)r Fr(\\()p Fq(n)3017 3218 y Fn(4)3055\n 3248 y Fr(\\))g(and)g(factor)e(op)r(erations)0 3348 y(to)38\n-b Fq(O)r Fr(\\()p Fq(n)259 3317 y Fn(6)297 3348 y Fr(\\).)67\n+b Fq(O)r Fr(\\()p Fq(n)259 3318 y Fn(6)297 3348 y Fr(\\).)67\n b(In)38 b(practice,)h(the)f(minim)n(um)g(degree)f(ordering)f(has)h\n (this)h(same)f(lo)n(w-\\014ll)g(nature,)j(although)d(top)r(ological)0\n-3447 y(coun)n(terexamples)28 b(exist)i([7].)44 b(A)31\n+3448 y(coun)n(terexamples)28 b(exist)i([7].)44 b(A)31\n b(unit)f(cub)r(e)h(is)f(the)g(w)n(orst)f(case)g(comparison)g(b)r(et)n\n (w)n(een)h(banded)g(and)g(pro\\014le)f(orderings)0 3547\n y(and)35 b(the)g(minim)n(um)h(degree)e(and)h(nested)g(dissection)g\n (orderings.)57 b(But,)38 b(there)d(is)g(still)g(a)g(lot)g(to)g(b)r(e)g\n-(gained)g(b)n(y)f(using)0 3646 y(a)e(go)r(o)r(d)g(p)r(erm)n(utation)g\n+(gained)g(b)n(y)f(using)0 3647 y(a)e(go)r(o)r(d)g(p)r(erm)n(utation)g\n (when)g(solving)g(most)g(sparse)f(linear)g(systems,)j(and)e(the)h\n (relativ)n(e)e(gain)g(b)r(ecomes)h(larger)f(as)h(the)0\n-3746 y(problem)27 b(size)g(increases.)125 3889 y(This)37\n+3746 y(problem)27 b(size)g(increases.)125 3890 y(This)37\n b(short)g(pap)r(er)h(is)f(a)h(gen)n(tle)f(in)n(tro)r(duction)h(to)f\n (the)i(ordering)d(metho)r(ds)i(|)g(the)g(bac)n(kground)e(as)h(w)n(ell)h\n (as)f(the)0 3989 y(sp)r(eci\\014c)29 b(function)g(calls.)40\n b(But)29 b(\\014nding)g(a)f(go)r(o)r(d)g(ordering)f(is)i(not)g(enough.)\n 39 b(The)29 b(\\\\c)n(horeograph)n(y\")c(of)j(the)h(factorization)0\n 4089 y(and)h(solv)n(es,)g(i.e.,)h(what)f(data)g(structures)f(and)h\n (computations)g(exist,)h(and)f(in)g(a)g(parallel)f(en)n(vironmen)n(t,)h\n (whic)n(h)h(thread)0 4188 y(or)24 b(pro)r(cessor)f(do)r(es)h(what)h\n (and)g(when,)h(is)e(as)h(crucial.)35 b(The)25 b(structure)f(of)h(the)g\n (factor)f(matrices,)h(as)f(w)n(ell)h(as)f(the)i(structure)0\n 4288 y(of)k(the)g(computations)f(is)h(con)n(trolled)e(b)n(y)i(a)f\n (\\\\fron)n(t)g(tree\".)43 b(This)29 b(ob)5 b(ject)30 b(is)g(constructed)f\n-(directly)g(b)n(y)h(the)g Fm(SPOOLES)0 4387 y Fr(ordering)k(soft)n(w)n\n+(directly)g(b)n(y)h(the)g Fm(SPOOLES)0 4388 y Fr(ordering)k(soft)n(w)n\n (are,)h(or)f(can)h(b)r(e)h(created)e(from)h(the)h(graph)e(of)h(the)h\n (matrix)f(and)g(an)g(outside)g(p)r(erm)n(utation.)59\n b(V)-7 b(arious)0 4487 y(transformations)25 b(on)i(the)h(fron)n(t)e\n (tree)h(can)g(mak)n(e)f(a)h(large)e(di\\013erence)j(in)f(p)r\n (erformance.)36 b(Some)26 b(kno)n(wledge)g(of)h(the)h(linear)0\n 4587 y(system,)f(\\(e.g.,)g(do)r(es)g(it)h(come)f(from)g(a)g(2-D)g(or)f\n (3-D)h(problem?)36 b(is)27 b(it)h(small)f(or)f(large?\\),)h(coupled)g\n-(with)h(some)e(kno)n(wledge)0 4686 y(of)i(ho)n(w)f(to)g(tailor)g(a)g\n+(with)h(some)e(kno)n(wledge)0 4687 y(of)i(ho)n(w)f(to)g(tailor)g(a)g\n (fron)n(t)g(tree,)g(can)h(b)r(e)g(imp)r(ortan)n(t)f(to)g(getting)h(the)\n g(b)r(est)g(p)r(erformance)e(from)h(the)h(library)-7\n-b(.)125 4829 y(Section)38 b(2)g(in)n(tro)r(duces)f(some)h(bac)n\n+b(.)125 4830 y(Section)38 b(2)g(in)n(tro)r(duces)f(some)h(bac)n\n (kground)e(on)i(sparse)f(matrix)h(orderings)e(and)j(describ)r(es)e(the)\n i Fm(SPOOLES)f Fr(or-)0 4929 y(dering)f(soft)n(w)n(are.)64\n b(Section)38 b(3)e(presen)n(ts)h(the)h(fron)n(t)f(tree)g(ob)5\n b(ject)37 b(that)h(con)n(trols)d(the)j(factorization,)h(and)e(its)g(v)\n -5 b(arious)0 5029 y(transformations)26 b(to)h(impro)n(v)n(e)f(p)r\n (erformance.)p 0 5173 1560 4 v 92 5226 a Fl(*)127 5249\n y Fk(P)-6 b(.)33 b(O.)g(Bo)n(x)h(24346,)j(Mail)32 b(Stop)i(7L-21,)i\n@@ -7667,16 +7687,16 @@\n b(researc)n(h)i(w)n(as)g(supp)r(orted)g(in)f(part)h(b)n(y)g(the)g(D)n\n (ARP)-6 b(A)0 5328 y(Con)n(tract)33 b(D)n(ABT63-95-C-0122)f(and)g(the)g\n (DoD)g(High)f(P)n(erformance)h(Computing)g(Mo)r(dernization)g(Program)f\n (Common)h(HPC)f(Soft)n(w)n(are)0 5407 y(Supp)r(ort)25\n b(Initiativ)n(e.)1929 5656 y Fr(1)p eop end\n %%Page: 2 2\n TeXDict begin 2 1 bop 0 100 a Fr(2)327 b Fj(Orderings)26\n-b(and)h(F)-7 b(ron)n(t)27 b(T)-7 b(rees)p 1442 100 1828\n-4 v 2021 w(August)28 b(3,)f(2025)0 390 y Fs(2)135 b(Sparse)45\n+b(and)h(F)-7 b(ron)n(t)27 b(T)-7 b(rees)p 1442 100 1934\n+4 v 2126 w(July)28 b(1,)f(2024)0 390 y Fs(2)135 b(Sparse)45\n b(matrix)h(orderings)0 605 y Fr(The)22 b(past)h(few)f(y)n(ears)f(ha)n\n (v)n(e)g(seen)h(a)g(resurgence)f(of)i(in)n(terest)f(and)g(accompan)n\n (ying)e(impro)n(v)n(emen)n(t)h(in)i(algorithms)e(and)h(soft-)0\n 705 y(w)n(are)27 b(to)i(order)e(sparse)g(matrices.)39\n b(The)29 b(minim)n(um)g(degree)f(algorithm,)f(sp)r(eci\\014cally)h(the)h\n (m)n(ultiple)h(external)d(minim)n(um)0 804 y(degree)c(algorithm)g([19)o\n (],)h(w)n(as)f(the)i(preferred)d(algorithm)h(of)h(c)n(hoice)f(for)g\n@@ -7779,16 +7799,16 @@\n y(matrices\\),)27 b(there)h(is)f(an)g(easier)g(w)n(a)n(y)-7\n b(.)35 b(One)28 b(can)f(create)g(an)g Fg(IVL)f Fr(ob)5\n b(ject)28 b(from)f(the)h Fg(InpMtx)d Fr(ob)5 b(ject,)27\n b(as)g(follo)n(ws.)0 5108 y Fg(InpMtx)128 b(*A)43 b(;)0\n 5208 y(IVL)260 b(*adjIVL)41 b(;)0 5407 y(adjIVL)g(=)i\n (InpMtx_fullAdjace)o(nc)o(y\\(A)o(\\))37 b(;)p eop end\n %%Page: 3 3\n-TeXDict begin 3 2 bop 0 100 a Fj(August)28 b(3,)f(2025)p\n-630 100 1856 4 v 2019 w(Orderings)f(and)i(F)-7 b(ron)n(t)27\n+TeXDict begin 3 2 bop 0 100 a Fj(July)27 b(1,)h(2024)p\n+525 100 1961 4 v 2124 w(Orderings)e(and)i(F)-7 b(ron)n(t)27\n b(T)-7 b(rees)326 b Fr(3)881 448 y(Figure)27 b(1:)36\n b(A)28 b(3)18 b Fo(\\002)g Fr(4)27 b(9-p)r(oin)n(t)g(grid)g(with)h(its)g\n (adjacency)f(structure)p 481 1707 119 4 v 670 1707 V\n 481 1519 V 670 1519 V 481 1330 V 670 1330 V 481 1141\n V 670 1141 V 446 1659 4 95 v 635 1659 V 824 1659 V 446\n 1470 V 635 1470 V 824 1470 V 446 1281 V 635 1281 V 824\n 1281 V 427 1733 a(0)147 b(1)g(2)427 1544 y(3)g(4)g(5)427\n@@ -7841,40 +7861,40 @@\n b(w)n(e)g(ha)n(v)n(e)g(a)g Fg(Graph)f Fr(ob)5 b(ject,)27\n b(w)n(e)g(can)g(construct)h(an)f(ordering.)35 b(There)27\n b(are)g(four)g(c)n(hoices:)125 5407 y Ff(\\210)42 b Fr(minim)n(um)28\n b(degree,)e(\\(actually)i(m)n(ultiple)g(external)f(minim)n(um)h(degree,)\n e(from)i([19)o(]\\),)p eop end\n %%Page: 4 4\n TeXDict begin 4 3 bop 0 100 a Fr(4)327 b Fj(Orderings)26\n-b(and)h(F)-7 b(ron)n(t)27 b(T)-7 b(rees)p 1442 100 1828\n-4 v 2021 w(August)28 b(3,)f(2025)125 390 y Ff(\\210)42\n-b Fr(generalized)26 b(nested)h(dissection,)125 571 y\n-Ff(\\210)42 b Fr(m)n(ultisection,)27 b(and)125 752 y Ff(\\210)42\n-b Fr(the)28 b(b)r(etter)g(of)f(generalized)f(nested)i(dissection)f(and)\n-h(m)n(ultisection.)0 954 y(Minim)n(um)g(degree)f(tak)n(es)f(the)i\n-(least)f(amoun)n(t)h(of)f(CPU)h(time.)37 b(Generalized)27\n-b(nested)g(dissection)h(and)f(m)n(ultisection)h(b)r(oth)0\n-1054 y(require)c(the)i(a)e(partition)h(of)g(the)h(graph,)e(whic)n(h)i\n-(can)e(b)r(e)i(m)n(uc)n(h)f(more)f(exp)r(ensiv)n(e)h(to)g(compute)g\n-(than)h(a)e(minim)n(um)i(degree)0 1153 y(ordering.)34\n-b(By)25 b(and)f(large,)g(for)g(larger)f(graphs)g(nested)i(dissection)f\n-(generates)f(b)r(etter)i(orderings)e(than)i(minim)n(um)g(degree,)0\n-1253 y(and)j(the)g(di\\013erence)f(in)h(qualit)n(y)f(increases)f(as)h\n-(the)i(graph)d(size)h(increases.)36 b(Multisection)28\n-b(is)g(an)f(ordering)f(whic)n(h)i(almost)0 1353 y(all)34\n-b(the)g(time)g(do)r(es)g(ab)r(out)g(as)f(w)n(ell)h(as)f(the)i(b)r\n-(etter)f(of)g(nested)g(dissection)g(and)f(minim)n(um)i(degree.)55\n-b(The)34 b(user)f(should)0 1452 y(kno)n(w)27 b(their)g(problem)g(and)h\n-(c)n(ho)r(ose)e(the)i(ordering.)35 b(Here)28 b(are)e(some)h(rules)g(of)\n-h(th)n(um)n(b.)125 1654 y Ff(\\210)42 b Fr(If)22 b(the)h(matrix)f(size)g\n-(is)g(small)g(to)g(mo)r(derate)f(in)i(size,)g(sa)n(y)e(up)i(to)f\n-(10,000)e(ro)n(ws)h(and)h(columns,)h(use)f(minim)n(um)h(degree.)208\n-1754 y(The)34 b(extra)g(ordering)e(time)j(for)f(nested)h(dissection)f\n-(or)f(m)n(ultisection)i(ma)n(y)e(not)i(mak)n(e)e(up)i(for)f(an)n(y)g\n-(decrease)f(in)208 1854 y(factor)26 b(or)h(solv)n(e)f(time.)125\n+b(and)h(F)-7 b(ron)n(t)27 b(T)-7 b(rees)p 1442 100 1934\n+4 v 2126 w(July)28 b(1,)f(2024)125 390 y Ff(\\210)42 b\n+Fr(generalized)26 b(nested)h(dissection,)125 571 y Ff(\\210)42\n+b Fr(m)n(ultisection,)27 b(and)125 752 y Ff(\\210)42 b\n+Fr(the)28 b(b)r(etter)g(of)f(generalized)f(nested)i(dissection)f(and)h\n+(m)n(ultisection.)0 954 y(Minim)n(um)g(degree)f(tak)n(es)f(the)i(least)\n+f(amoun)n(t)h(of)f(CPU)h(time.)37 b(Generalized)27 b(nested)g\n+(dissection)h(and)f(m)n(ultisection)h(b)r(oth)0 1054\n+y(require)c(the)i(a)e(partition)h(of)g(the)h(graph,)e(whic)n(h)i(can)e\n+(b)r(e)i(m)n(uc)n(h)f(more)f(exp)r(ensiv)n(e)h(to)g(compute)g(than)h(a)\n+e(minim)n(um)i(degree)0 1153 y(ordering.)34 b(By)25 b(and)f(large,)g\n+(for)g(larger)f(graphs)g(nested)i(dissection)f(generates)f(b)r(etter)i\n+(orderings)e(than)i(minim)n(um)g(degree,)0 1253 y(and)j(the)g\n+(di\\013erence)f(in)h(qualit)n(y)f(increases)f(as)h(the)i(graph)d(size)h\n+(increases.)36 b(Multisection)28 b(is)g(an)f(ordering)f(whic)n(h)i\n+(almost)0 1353 y(all)34 b(the)g(time)g(do)r(es)g(ab)r(out)g(as)f(w)n\n+(ell)h(as)f(the)i(b)r(etter)f(of)g(nested)g(dissection)g(and)f(minim)n\n+(um)i(degree.)55 b(The)34 b(user)f(should)0 1452 y(kno)n(w)27\n+b(their)g(problem)g(and)h(c)n(ho)r(ose)e(the)i(ordering.)35\n+b(Here)28 b(are)e(some)h(rules)g(of)h(th)n(um)n(b.)125\n+1654 y Ff(\\210)42 b Fr(If)22 b(the)h(matrix)f(size)g(is)g(small)g(to)g\n+(mo)r(derate)f(in)i(size,)g(sa)n(y)e(up)i(to)f(10,000)e(ro)n(ws)h(and)h\n+(columns,)h(use)f(minim)n(um)h(degree.)208 1754 y(The)34\n+b(extra)g(ordering)e(time)j(for)f(nested)h(dissection)f(or)f(m)n\n+(ultisection)i(ma)n(y)e(not)i(mak)n(e)e(up)i(for)f(an)n(y)g(decrease)f\n+(in)208 1854 y(factor)26 b(or)h(solv)n(e)f(time.)125\n 2035 y Ff(\\210)42 b Fr(If)31 b(the)h(matrix)e(size)h(comes)g(from)g(a)f\n (partial)h(di\\013eren)n(tial)g(equation)f(that)i(has)e(sev)n(eral)g\n (degrees)g(of)h(freedom)f(at)h(a)208 2134 y(grid)26 b(p)r(oin)n(t,)i\n (use)g(m)n(ultisection)f(or)g(nested)h(dissection,)f(no)g(matter)h(the)\n g(size.)125 2315 y Ff(\\210)42 b Fr(If)28 b(the)g(target)e(is)i(a)f\n (parallel)f(factorization,)h(use)g(nested)h(dissection.)125\n 2496 y Ff(\\210)42 b Fr(F)-7 b(or)25 b(2-D)g(problems,)h(minim)n(um)g\n@@ -7921,16 +7941,16 @@\n (great)g(deal)h(of)g(monitoring)g(and)g(debug)g(co)r(de)g(in)g(the)h\n (soft)n(w)n(are.)37 b(Large)26 b(v)-5 b(alues)28 b(of)g\n Fg(msglvl)208 5407 y Fr(ma)n(y)d(result)h(in)g(large)f(message)f\n (\\014les.)37 b(T)-7 b(o)25 b(see)h(the)h(statistics)e(generated)g\n (during)h(the)g(ordering,)f(use)h Fg(msglvl)41 b(=)i(1)p\n Fr(.)p eop end\n %%Page: 5 5\n-TeXDict begin 5 4 bop 0 100 a Fj(August)28 b(3,)f(2025)p\n-630 100 1856 4 v 2019 w(Orderings)f(and)i(F)-7 b(ron)n(t)27\n+TeXDict begin 5 4 bop 0 100 a Fj(July)27 b(1,)h(2024)p\n+525 100 1961 4 v 2124 w(Orderings)e(and)i(F)-7 b(ron)n(t)27\n b(T)-7 b(rees)326 b Fr(5)125 390 y Ff(\\210)42 b Fr(The)19\n b Fg(seed)g Fr(parameter)f(is)i(used)f(as)h(a)f(random)g(n)n(um)n(b)r\n (er)g(seed.)34 b(\\(There)20 b(are)f(man)n(y)g(places)g(in)h(the)g\n (graph)f(partitioning)208 490 y(and)k(minim)n(um)i(degree)d(algorithms)\n h(where)g(randomness)f(pla)n(ys)h(a)g(part.)35 b(Using)24\n b(a)f(random)g(n)n(um)n(b)r(er)g(seed)h(ensures)208 589\n y(rep)r(eatabilit)n(y)-7 b(.\\))125 767 y Ff(\\210)42 b\n@@ -8001,20 +8021,20 @@\n b(=)44 b(100)p Fr(.)d(W)-7 b(e)30 b(see)f(that)h(there)f(is)0\n 5308 y(really)c(little)i(di\\013erence)f(in)h(ordering)d(qualit)n(y)-7\n b(,)27 b(while)f(the)h(minim)n(um)g(degree)e(ordering)f(tak)n(es)i(m)n\n (uc)n(h)g(less)g(time)g(than)h(the)0 5407 y(other)g(orderings.)p\n eop end\n %%Page: 6 6\n TeXDict begin 6 5 bop 0 100 a Fr(6)327 b Fj(Orderings)26\n-b(and)h(F)-7 b(ron)n(t)27 b(T)-7 b(rees)p 1442 100 1828\n-4 v 2021 w(August)28 b(3,)f(2025)125 390 y Fr(Let)33\n-b(us)g(no)n(w)f(lo)r(ok)h(at)g(a)g(random)f(triangulation)g(of)h(a)g\n-(unit)g(cub)r(e.)54 b(This)34 b(matrix)e(has)h(13824)e(ro)n(ws)g(and)i\n-(columns.)0 490 y(Eac)n(h)28 b(face)h(of)g(the)h(cub)r(e)g(has)f(a)g\n-(22)18 b Fo(\\002)h Fr(22)29 b(regular)e(grid)i(of)g(p)r(oin)n(ts.)42\n+b(and)h(F)-7 b(ron)n(t)27 b(T)-7 b(rees)p 1442 100 1934\n+4 v 2126 w(July)28 b(1,)f(2024)125 390 y Fr(Let)33 b(us)g(no)n(w)f(lo)r\n+(ok)h(at)g(a)g(random)f(triangulation)g(of)h(a)g(unit)g(cub)r(e.)54\n+b(This)34 b(matrix)e(has)h(13824)e(ro)n(ws)g(and)i(columns.)0\n+490 y(Eac)n(h)28 b(face)h(of)g(the)h(cub)r(e)g(has)f(a)g(22)18\n+b Fo(\\002)h Fr(22)29 b(regular)e(grid)i(of)g(p)r(oin)n(ts.)42\n b(The)29 b(remainder)g(of)g(the)h(v)n(ertices)e(are)g(placed)h(in)h\n (the)0 589 y(in)n(terior)c(using)i(quasi-random)d(p)r(oin)n(ts,)j(and)f\n (the)h(Delauney)g(triangulation)e(is)i(computed.)1189\n 779 y(minim)n(um)g(degree)620 b(nested)28 b(dissection)673\n 878 y(seed)100 b(CPU)f(#)28 b(en)n(tries)297 b(#)27 b(ops)99\n b(CPU)h(#)28 b(en)n(tries)296 b(#)28 b(ops)618 978 y(10101)170\n b(9.2)143 b(5783892)97 b(6119141542)126 b(27.8)142 b(3410222)96\n@@ -8078,16 +8098,16 @@\n (;)0 5113 y(ETree_initFromGr)o(aph)o(Wi)o(th)o(Per)o(ms)o(\\(ve)o(tr)o\n (ee,)e(graph,)k(newToOld,)f(oldToNew\\))g(;)0 5308 y Fr(The)21\n b Fg(vetree)e Fr(ob)5 b(ject)21 b(in)g(the)h(co)r(de)f(fragmen)n(t)f\n (ab)r(o)n(v)n(e)g(is)h(a)g Fe(vertex)j(elimination)h(tr)l(e)l(e)c\n Fr([20)o(],)h([26],)g(where)f(eac)n(h)f(fron)n(t)h(con)n(tains)0\n 5407 y(one)27 b(v)n(ertex.)p eop end\n %%Page: 7 7\n-TeXDict begin 7 6 bop 0 100 a Fj(August)28 b(3,)f(2025)p\n-630 100 1856 4 v 2019 w(Orderings)f(and)i(F)-7 b(ron)n(t)27\n+TeXDict begin 7 6 bop 0 100 a Fj(July)27 b(1,)h(2024)p\n+525 100 1961 4 v 2124 w(Orderings)e(and)i(F)-7 b(ron)n(t)27\n b(T)-7 b(rees)326 b Fr(7)888 448 y(Figure)27 b(2:)36\n b(R2D100:)g(randomly)26 b(triangulated,)h(100)f(grid)h(p)r(oin)n(ts)109\n 2355 y @beginspecial 0 @llx 0 @lly 300 @urx 300 @ury\n 2160 @rwi 2160 @rhi @setspecial\n %%BeginDocument: R2D100.eps\n %!PS-Adobe-2.0 EPSF-1.2\n %%BoundingBox: 0.0 0.0 300.0 300.0\n@@ -8963,16 +8983,16 @@\n n(k)g(partition)p 0 5330 1560 4 v 92 5384 a Fd(1)127\n 5407 y Fk(V)-6 b(ertex)24 b Fc(j)j Fk(is)c(the)i(paren)n(t)f(of)g\n Fc(i)f Fk(if)g Fc(j)k Fk(is)c(the)h(\\014rst)g(v)n(ertex)h(greater)f\n (than)h Fc(i)e Fk(suc)n(h)h(that)h Fc(L)2434 5417 y Fb(j;i)2524\n 5407 y Fa(6)p Fk(=)20 b(0.)p eop end\n %%Page: 8 8\n TeXDict begin 8 7 bop 0 100 a Fr(8)327 b Fj(Orderings)26\n-b(and)h(F)-7 b(ron)n(t)27 b(T)-7 b(rees)p 1442 100 1828\n-4 v 2021 w(August)28 b(3,)f(2025)701 1332 y Fr(Figure)g(3:)36\n+b(and)h(F)-7 b(ron)n(t)27 b(T)-7 b(rees)p 1442 100 1934\n+4 v 2126 w(July)28 b(1,)f(2024)701 1332 y Fr(Figure)g(3:)36\n b(V)-7 b(ertex)28 b(elimination)f(tree)g(for)h(R2D100,)e(100)g(ro)n(ws)\n g(and)i(columns)450 4440 y @beginspecial 0 @llx 0 @lly\n 600 @urx 600 @ury 3600 @rwi 3600 @rhi @setspecial\n %%BeginDocument: vtree.eps\n %!PS-Adobe-2.0 EPSF-1.2\n %%BoundingBox: 0 0 600 600\n /CSH {\n@@ -9422,16 +9442,16 @@\n grestore\n \n showpage\n \n %%EndDocument\n @endspecial eop end\n %%Page: 9 9\n-TeXDict begin 9 8 bop 0 100 a Fj(August)28 b(3,)f(2025)p\n-630 100 1856 4 v 2019 w(Orderings)f(and)i(F)-7 b(ron)n(t)27\n+TeXDict begin 9 8 bop 0 100 a Fj(July)27 b(1,)h(2024)p\n+525 100 1961 4 v 2124 w(Orderings)e(and)i(F)-7 b(ron)n(t)27\n b(T)-7 b(rees)326 b Fr(9)0 390 y(sup)r(erimp)r(osed)27\n b(on)g(the)h(structure)f(of)g(the)g(factor)g Fq(L)p Fr(.)36\n b(Note)28 b(this)f(one)g(imp)r(ortan)n(t)g(prop)r(ert)n(y:)36\n b(within)28 b(an)n(y)e(blo)r(c)n(k)h(column)0 490 y(and)g(b)r(elo)n(w)h\n (the)g(diagonal)e(blo)r(c)n(k,)h(a)g(ro)n(w)f(is)i(either)f(zero)g(or)g\n (dense.)125 615 y(The)g(co)r(de)h(fragmen)n(t)e(to)i(con)n(v)n(ert)e(a)\n h(tree)g(in)n(to)h(a)f(fundamen)n(tal)h(sup)r(erno)r(de)f(tree)g(is)h\n@@ -9510,21 +9530,21 @@\n Fq(k)22 b Fo(\\002)e Fq(k)i Fo(\\002)e Fq(k)32 b Fr(grid)d(with)h(a)f(27)\n g(p)r(oin)n(t)0 5407 y(\\014nite)22 b(di\\013erence)f(op)r(erator,)g\n (when)g(ordered)f(b)n(y)h(nested)g(dissection,)h(has)f(a)g(ro)r(ot)f\n (sup)r(erno)r(de)h(with)h Fq(k)3182 5377 y Fn(2)3240\n 5407 y Fr(ro)n(ws)e(and)h(columns.)p eop end\n %%Page: 10 10\n TeXDict begin 10 9 bop 0 100 a Fr(10)327 b Fj(Orderings)25\n-b(and)j(F)-7 b(ron)n(t)27 b(T)-7 b(rees)p 1484 100 1787\n-4 v 1979 w(August)28 b(3,)f(2025)0 489 y Fr(Figure)22\n-b(4:)35 b(T)-7 b(op:)34 b(v)n(ertex)22 b(elimination)h(tree)g(with)g\n-(the)h(v)n(ertices)e(mapp)r(ed)h(to)g(the)h(fundamen)n(tal)f(sup)r\n-(erno)r(de)g(that)g(con)n(tains)0 589 y(them.)37 b(Bottom:)g(fundamen)n\n-(tal)28 b(sup)r(erno)r(de)f(tree.)450 3696 y @beginspecial\n-0 @llx 0 @lly 600 @urx 600 @ury 3600 @rwi 3600 @rhi @setspecial\n+b(and)j(F)-7 b(ron)n(t)27 b(T)-7 b(rees)p 1484 100 1892\n+4 v 2084 w(July)28 b(1,)f(2024)0 489 y Fr(Figure)22 b(4:)35\n+b(T)-7 b(op:)34 b(v)n(ertex)22 b(elimination)h(tree)g(with)g(the)h(v)n\n+(ertices)e(mapp)r(ed)h(to)g(the)h(fundamen)n(tal)f(sup)r(erno)r(de)g\n+(that)g(con)n(tains)0 589 y(them.)37 b(Bottom:)g(fundamen)n(tal)28\n+b(sup)r(erno)r(de)f(tree.)450 3696 y @beginspecial 0\n+@llx 0 @lly 600 @urx 600 @ury 3600 @rwi 3600 @rhi @setspecial\n %%BeginDocument: fsvtree.eps\n %!PS-Adobe-2.0 EPSF-1.2\n %%BoundingBox: 0 0 600 600\n /CSH {\n %\n % center show a string\n %\n@@ -10313,16 +10333,16 @@\n grestore\n \n showpage\n \n %%EndDocument\n @endspecial eop end\n %%Page: 11 11\n-TeXDict begin 11 10 bop 0 100 a Fj(August)28 b(3,)f(2025)p\n-630 100 1814 4 v 1978 w(Orderings)f(and)h(F)-7 b(ron)n(t)27\n+TeXDict begin 11 10 bop 0 100 a Fj(July)27 b(1,)h(2024)p\n+525 100 1920 4 v 2083 w(Orderings)e(and)h(F)-7 b(ron)n(t)27\n b(T)-7 b(rees)327 b Fr(11)610 1332 y(Figure)27 b(5:)36\n b(Blo)r(c)n(k)27 b(structure)g(of)h Fq(L)f Fr(with)h(the)g(fundamen)n\n (tal)f(sup)r(erno)r(de)h(partition.)450 4440 y @beginspecial\n 0 @llx 0 @lly 550 @urx 550 @ury 3600 @rwi 3600 @rhi @setspecial\n %%BeginDocument: fsmtx.eps\n %!PS-Adobe-2.0 EPSF-1.2\n %%BoundingBox: 0.000 0.000 550.000 550.000\n@@ -10666,22 +10686,22 @@\n xnw ynw dx dy adjncyL draw_matrix\n xnw ynw dx dy nrow ncol sn_info draw_sn_overlay\n \n %%EndDocument\n @endspecial eop end\n %%Page: 12 12\n TeXDict begin 12 11 bop 0 100 a Fr(12)327 b Fj(Orderings)25\n-b(and)j(F)-7 b(ron)n(t)27 b(T)-7 b(rees)p 1484 100 1787\n-4 v 1979 w(August)28 b(3,)f(2025)0 864 y Fr(Figure)33\n-b(6:)48 b(T)-7 b(op:)49 b(fundamen)n(tal)33 b(sup)r(erno)r(de)g(tree)h\n-(with)g(the)f(sup)r(erno)r(des)g(mapp)r(ed)h(to)g(the)f(amalgamated)f\n-(sup)r(erno)r(de)0 964 y(that)c(con)n(tains)f(them.)37\n-b(Bottom:)g(amalgamated)25 b(sup)r(erno)r(de)j(tree.)450\n-4071 y @beginspecial 0 @llx 0 @lly 600 @urx 600 @ury\n-3600 @rwi 3600 @rhi @setspecial\n+b(and)j(F)-7 b(ron)n(t)27 b(T)-7 b(rees)p 1484 100 1892\n+4 v 2084 w(July)28 b(1,)f(2024)0 864 y Fr(Figure)33 b(6:)48\n+b(T)-7 b(op:)49 b(fundamen)n(tal)33 b(sup)r(erno)r(de)g(tree)h(with)g\n+(the)f(sup)r(erno)r(des)g(mapp)r(ed)h(to)g(the)f(amalgamated)f(sup)r\n+(erno)r(de)0 964 y(that)c(con)n(tains)f(them.)37 b(Bottom:)g\n+(amalgamated)25 b(sup)r(erno)r(de)j(tree.)450 4071 y\n+@beginspecial 0 @llx 0 @lly 600 @urx 600 @ury 3600 @rwi\n+3600 @rhi @setspecial\n %%BeginDocument: amvtree.eps\n %!PS-Adobe-2.0 EPSF-1.2\n %%BoundingBox: 0 0 600 600\n /CSH {\n %\n % center show a string\n %\n@@ -11282,16 +11302,16 @@\n grestore\n \n showpage\n \n %%EndDocument\n @endspecial eop end\n %%Page: 13 13\n-TeXDict begin 13 12 bop 0 100 a Fj(August)28 b(3,)f(2025)p\n-630 100 1814 4 v 1978 w(Orderings)f(and)h(F)-7 b(ron)n(t)27\n+TeXDict begin 13 12 bop 0 100 a Fj(July)27 b(1,)h(2024)p\n+525 100 1920 4 v 2083 w(Orderings)e(and)h(F)-7 b(ron)n(t)27\n b(T)-7 b(rees)327 b Fr(13)594 1332 y(Figure)26 b(7:)37\n b(Blo)r(c)n(k)27 b(structure)g(of)g Fq(L)h Fr(with)g(the)g(amalgamated)\n e(sup)r(erno)r(de)h(partition.)450 4440 y @beginspecial\n 0 @llx 0 @lly 550 @urx 550 @ury 3600 @rwi 3600 @rhi @setspecial\n %%BeginDocument: ammtx.eps\n %!PS-Adobe-2.0 EPSF-1.2\n %%BoundingBox: 0.000 0.000 550.000 550.000\n@@ -11589,17 +11609,17 @@\n xnw ynw dx dy adjncyL draw_matrix\n xnw ynw dx dy nrow ncol sn_info draw_sn_overlay\n \n %%EndDocument\n @endspecial eop end\n %%Page: 14 14\n TeXDict begin 14 13 bop 0 100 a Fr(14)327 b Fj(Orderings)25\n-b(and)j(F)-7 b(ron)n(t)27 b(T)-7 b(rees)p 1484 100 1787\n-4 v 1979 w(August)28 b(3,)f(2025)0 390 y Fr(The)k(data)f(structure)g\n-(for)g(a)h(top)f(lev)n(el)g(sup)r(erno)r(de)h(can)f(b)r(e)h(v)n(ery)f\n+b(and)j(F)-7 b(ron)n(t)27 b(T)-7 b(rees)p 1484 100 1892\n+4 v 2084 w(July)28 b(1,)f(2024)0 390 y Fr(The)k(data)f(structure)g(for)\n+g(a)h(top)f(lev)n(el)g(sup)r(erno)r(de)h(can)f(b)r(e)h(v)n(ery)f\n (large,)g(to)r(o)g(large)g(to)g(\\014t)h(in)n(to)g(memory)-7\n b(.)45 b(In)31 b(a)f(parallel)0 490 y(en)n(vironmen)n(t,)d(w)n(e)h\n (follo)n(w)g(the)g(con)n(v)n(en)n(tion)f(that)h(eac)n(h)g(no)r(de)g(in)\n g(the)h(tree)f(is)g(handled)g(b)n(y)g(one)g(pro)r(cess.)37\n b(Ha)n(ving)27 b(a)h(v)n(ery)0 589 y(large)e(no)r(de)i(at)f(the)h(top)g\n (lev)n(els)f(of)g(the)h(tree)g(will)f(sev)n(erely)f(decrease)h(the)h\n (parallelism)e(a)n(v)-5 b(ailable)26 b(to)i(the)g(computations.)125\n@@ -11688,16 +11708,16 @@\n (an)i(fundamen)n(tal)f(sup)r(erno)r(de)h(tree)f(with)h(a)f(call)h(to)f\n Fg(ETree)p 2994 5208 27 4 v 29 w(mergeFrontsOne\\(\\))17\n b Fr(with)208 5308 y Fg(maxzeros)40 b(=)j(0)p Fr(.)36\n b(W)-7 b(e)26 b(see)g(that)g(the)h(n)n(um)n(b)r(er)e(of)h(fron)n(ts)g\n (decreases)e(b)n(y)i(one)f(and)h(the)g(n)n(um)n(b)r(er)g(of)g(en)n\n (tries)f(do)r(es)h(not)208 5407 y(c)n(hange.)p eop end\n %%Page: 15 15\n-TeXDict begin 15 14 bop 0 100 a Fj(August)28 b(3,)f(2025)p\n-630 100 1814 4 v 1978 w(Orderings)f(and)h(F)-7 b(ron)n(t)27\n+TeXDict begin 15 14 bop 0 100 a Fj(July)27 b(1,)h(2024)p\n+525 100 1920 4 v 2083 w(Orderings)e(and)h(F)-7 b(ron)n(t)27\n b(T)-7 b(rees)327 b Fr(15)0 615 y(Figure)24 b(8:)35 b(Left:)h(tree)24\n b(after)h(the)g(large)e(sup)r(erno)r(des)h(ha)n(v)n(e)g(b)r(een)h\n (split.)36 b(Righ)n(t:)g(tree)24 b(with)h(no)r(des)g(mapp)r(ed)g(bac)n\n (k)f(to)g(their)0 715 y(amalgamated)i(sup)r(erno)r(de.)450\n 3822 y @beginspecial 0 @llx 0 @lly 600 @urx 600 @ury\n 3600 @rwi 3600 @rhi @setspecial\n %%BeginDocument: spvtree.eps\n@@ -12329,16 +12349,16 @@\n \n showpage\n \n %%EndDocument\n @endspecial eop end\n %%Page: 16 16\n TeXDict begin 16 15 bop 0 100 a Fr(16)327 b Fj(Orderings)25\n-b(and)j(F)-7 b(ron)n(t)27 b(T)-7 b(rees)p 1484 100 1787\n-4 v 1979 w(August)28 b(3,)f(2025)420 595 y Fr(Figure)g(9:)37\n+b(and)j(F)-7 b(ron)n(t)27 b(T)-7 b(rees)p 1484 100 1892\n+4 v 2084 w(July)28 b(1,)f(2024)420 595 y Fr(Figure)g(9:)37\n b(Blo)r(c)n(k)27 b(structure)g(of)g Fq(L)g Fr(with)h(the)g(amalgamated)\n e(and)i(split)g(sup)r(erno)r(de)f(partition.)450 3702\n y @beginspecial 0 @llx 0 @lly 550 @urx 550 @ury 3600\n @rwi 3600 @rhi @setspecial\n %%BeginDocument: spmtx.eps\n %!PS-Adobe-2.0 EPSF-1.2\n %%BoundingBox: 0.000 0.000 550.000 550.000\n@@ -12658,16 +12678,16 @@\n b(2021347776)692 4948 y(merge)26 b(an)n(y)p 1114 4978\n V 99 w(0.012)279 b(597)232 b(85366)142 b(3753241)154\n b(2035158539)692 5048 y(split)p 1114 5078 V 316 w(0.043)279\n b(643)190 b(115139)142 b(3753241)154 b(2035158539)692\n 5148 y(\\014nal)p 1114 5177 V 316 w(0.423)279 b(643)190\n b(115128)142 b(3752694)154 b(2034396840)p eop end\n %%Page: 17 17\n-TeXDict begin 17 16 bop 0 100 a Fj(August)28 b(3,)f(2025)p\n-630 100 1814 4 v 1978 w(Orderings)f(and)h(F)-7 b(ron)n(t)27\n+TeXDict begin 17 16 bop 0 100 a Fj(July)27 b(1,)h(2024)p\n+525 100 1920 4 v 2083 w(Orderings)e(and)h(F)-7 b(ron)n(t)27\n b(T)-7 b(rees)327 b Fr(17)125 390 y Ff(\\210)42 b Fr(The)33\n b(second)f(step)i(is)f(also)f(a)h(call)f(to)i Fg(ETree)p\n 1665 390 27 4 v 29 w(mergeFrontsOne\\(\\))o Fr(,)29 b(this)k(time)h(with)\n g Fg(maxzeros)40 b(=)j(1000)p Fr(.)52 b(Here)208 490\n y(w)n(e)30 b(merge)h(fron)n(ts)f(with)i(only)f(one)f(c)n(hild)i(with)f\n (that)h(c)n(hild,)g(in)f(other)g(w)n(ords,)g(only)g(c)n(hains)f(of)h\n (no)r(des)g(can)g(merge)208 589 y(together.)50 b(Note)32\n@@ -12776,16 +12796,16 @@\n Fq(X)32 b Fr(and)26 b Fq(Y)45 b Fr(ha)n(v)n(e)25 b(a)h(single)g\n (column\\))g(or)f(BLAS3)0 5407 y(k)n(ernel)f(\\(when)g\n Fq(X)31 b Fr(and)25 b Fq(Y)43 b Fr(are)23 b(matrices\\).)36\n b(When)25 b(fron)n(ts)e(are)h(small,)h(particularly)e(with)i(one)f(in)n\n (ternal)g(ro)n(w)f(and)h(column,)p eop end\n %%Page: 18 18\n TeXDict begin 18 17 bop 0 100 a Fr(18)327 b Fj(Orderings)25\n-b(and)j(F)-7 b(ron)n(t)27 b(T)-7 b(rees)p 1484 100 1787\n-4 v 1979 w(August)28 b(3,)f(2025)0 390 y Fr(the)g(submatrices)e(that)i\n+b(and)j(F)-7 b(ron)n(t)27 b(T)-7 b(rees)p 1484 100 1892\n+4 v 2084 w(July)28 b(1,)f(2024)0 390 y Fr(the)g(submatrices)e(that)i\n (tak)n(e)f(part)g(are)f(v)n(ery)g(small.)36 b(The)27\n b(o)n(v)n(erhead)d(for)i(the)g(computations)g(tak)n(es)g(far)g(more)f\n (time)i(than)0 490 y(the)h(computations)f(themselv)n(es.)125\n 612 y(This)35 b(m)n(ultistep)h(pro)r(cess)e(of)h(merging,)i(merging)d\n (again,)i(etc,)h(and)f(\\014nally)f(splitting)g(the)h(fron)n(t)f(trees)g\n (is)g(tedious.)0 712 y(There)27 b(are)g(simple)g(metho)r(ds)h(that)g\n (do)f(the)h(pro)r(cess)f(in)h(one)f(step.)0 894 y Fg(ETree)129\n@@ -12880,16 +12900,16 @@\n b(of)f Fg(64)g Fr(is)h(what)f(w)n(e)g(customarily)g(use.)0\n 5103 y Fs(References)42 5308 y Fr([1])41 b(P)-7 b(.)35\n b(Amesto)n(y)-7 b(,)37 b(T.)f(Da)n(vis,)h(and)e(I.)h(Du\\013.)62\n b(An)36 b(appro)n(ximate)e(minim)n(um)i(degree)f(ordering)f(algorithm.)\n 59 b Fe(SIAM)37 b(J.)171 5407 y(Matrix)30 b(A)n(nal.)g(Appl.)p\n Fr(,)f(17:886{905,)23 b(1996.)p eop end\n %%Page: 19 19\n-TeXDict begin 19 18 bop 0 100 a Fj(August)28 b(3,)f(2025)p\n-630 100 1814 4 v 1978 w(Orderings)f(and)h(F)-7 b(ron)n(t)27\n+TeXDict begin 19 18 bop 0 100 a Fj(July)27 b(1,)h(2024)p\n+525 100 1920 4 v 2083 w(Orderings)e(and)h(F)-7 b(ron)n(t)27\n b(T)-7 b(rees)327 b Fr(19)844 448 y(T)-7 b(able)27 b(3:)36\n b(R3D13824:)f(the)28 b(in\\015uence)g(of)f Fg(maxzeros)e\n Fr(and)i Fg(maxsize)p Fr(.)p 1241 639 4 100 v 1674 609\n a(factor)942 b(solv)n(e)276 b(total)440 709 y Fg(maxzeros)96\n b(maxsize)p 1241 738 V 97 w Fr(init)105 b(CPU)g(m\\015ops)99\n b(p)r(ostpro)r(cess)f(CPU)i(m\\015ops)k(CPU)p 390 742\n 3121 4 v 663 811 a(0)294 b Fo(1)p 1241 841 4 100 v 220\n@@ -12969,16 +12989,16 @@\n 5308 y([12])41 b(A.)27 b(Gupta.)37 b(W)n(GPP:)27 b(Watson)g(Graph)g\n (Partitioning)f(and)h(sparse)f(matrix)h(ordering)e(Pac)n(k)-5\n b(age.)34 b(T)-7 b(ec)n(hnical)27 b(Rep)r(ort)171 5407\n y(Users)g(Man)n(ual,)f(IBM)i(T.J.)f(W)-7 b(atson)28 b(Researc)n(h)e\n (Cen)n(ter,)h(New)h(Y)-7 b(ork,)27 b(1996.)p eop end\n %%Page: 20 20\n TeXDict begin 20 19 bop 0 100 a Fr(20)327 b Fj(Orderings)25\n-b(and)j(F)-7 b(ron)n(t)27 b(T)-7 b(rees)p 1484 100 1787\n-4 v 1979 w(August)28 b(3,)f(2025)0 390 y Fr([13])41 b(B.)24\n+b(and)j(F)-7 b(ron)n(t)27 b(T)-7 b(rees)p 1484 100 1892\n+4 v 2084 w(July)28 b(1,)f(2024)0 390 y Fr([13])41 b(B.)24\n b(Hendric)n(kson)e(and)i(R.)g(Leland.)31 b(An)24 b(impro)n(v)n(ed)f(sp)\n r(ectral)g(graph)g(partitioning)g(algorithm)g(for)h(mapping)f(parallel)\n 171 490 y(computations.)28 b(T)-7 b(ec)n(hnical)23 b(Rep)r(ort)f\n (SAND92-1460,)g(Sandia)h(National)f(Lab)r(oratories,)g(Albuquerque,)h\n (NM,)h(1992.)0 656 y([14])41 b(B.)f(Hendric)n(kson)f(and)h(R.)g\n (Leland.)74 b(The)40 b(Chaco)f(user's)g(guide.)74 b(T)-7\n b(ec)n(hnical)39 b(Rep)r(ort)h(SAND93-2339,)i(Sandia)171\n", "details": [{"source1": "ps2ascii {}", "source2": "ps2ascii {}", "unified_diff": "@@ -1,11 +1,11 @@\n Ordering Sparse Matrices and Transforming Front Trees\r\n \u2217\r\n Cleve Ashcraft, Boeing Shared Services Group\r\n- August 3, 2025\r\n+ July 1, 2024\r\n 1 Introduction\r\n If the ultimate goal is to solve linear systems of the form AX = B, one must compute an A = LDU,\r\n A=UTDU orA=UHDU factorization, depending on whether the matrix A is nonsymmetric, symmetric\r\n or Hermitian. D is a diagonal or block diagonal matrix, L is unit lower triangular, and U is unit upper\r\n triangular. A is sparse, but the sparsity structure of L and U will likely be much larger than that of A,\r\n i.e., they will su\ufb00er \ufb01ll-in. It is crucial to \ufb01nd a permutation matrix such that the factors of PAPT have as\r\n moderate \ufb01ll-in as can be reasonably expected.\r\n@@ -35,15 +35,15 @@\n Section 2 introduces some background on sparse matrix orderings and describes the SPOOLES or-\r\n dering software. Section 3 presents the front tree object that controls the factorization, and its various\r\n transformations to improve performance.\r\n \u2217P. O. Box 24346, Mail Stop 7L-21, Seattle, Washington 98124. This research was supported in part by the DARPA\r\n Contract DABT63-95-C-0122 and the DoD High Performance Computing Modernization Program Common HPC Software\r\n Support Initiative.\r\n 1\r\n- 2 Orderings and Front Trees August 3, 2025\r\n+ 2 Orderings and Front Trees July 1, 2024\r\n 2 Sparse matrix orderings\r\n Thepast few years have seen a resurgence of interest and accompanying improvement in algorithms and soft-\r\n ware to order sparse matrices. The minimum degree algorithm, speci\ufb01cally the multiple external minimum\r\n degree algorithm [19], was the preferred algorithm of choice for the better part of a decade. Alternative min-\r\n imum priority codes have recently pushed multiple minimum degree aside, including approximate minimum\r\n degree [1] and approximate de\ufb01ciency [21], [25]. They o\ufb00er improved quality or improved run time, and on\r\n occasion, both.\r\n@@ -81,15 +81,15 @@\n One can construct the IVL object directly. There are methods to set the number of lists, to set the size\r\n of a list, to copy entries in a list into the object. It resizes itself as necessary. However, if one already has\r\n the matrix entries of A stored in an InpMtx object (which is the way that SPOOLES deals with sparse\r\n matrices), there is an easier way. One can create an IVL object from the InpMtx object, as follows.\r\n InpMtx *A ;\r\n IVL *adjIVL ;\r\n adjIVL = InpMtx_fullAdjacency(A) ;\r\n- August 3, 2025 Orderings and Front Trees 3\r\n+ July 1, 2024 Orderings and Front Trees 3\r\n Figure 1: A 3\u00d74 9-point grid with its adjacency structure\r\n IVL : integer vector list object :\r\n type 1, chunked storage\r\n 12 lists, 12 maximum lists, 70 tsize, 4240 total bytes\r\n 1 chunks, 70 active entries, 1024 allocated, 6.84 % used\r\n 0 : 0 1 3 4\r\n 9 10 11 1 : 0 1 2 3 4 5\r\n@@ -121,15 +121,15 @@\n This is an initializer for the Graph object, one that takes as input a complete IVL adjacency object. The\r\n 0 and NULL \ufb01elds are not applicable here. (The Graph object is sophisticated \u2014 it can have weighted or\r\n unweighted vertices, weighted or unweighted edges, or both, and it can have boundary vertices. Neither is\r\n relevant now.)\r\n 2.2 Constructing an ordering\r\n Once we have a Graph object, we can construct an ordering. There are four choices:\r\n \u2022 minimum degree, (actually multiple external minimum degree, from [19]),\r\n- 4 Orderings and Front Trees August 3, 2025\r\n+ 4 Orderings and Front Trees July 1, 2024\r\n \u2022 generalized nested dissection,\r\n \u2022 multisection, and\r\n \u2022 the better of generalized nested dissection and multisection.\r\n Minimum degree takes the least amount of CPU time. Generalized nested dissection and multisection both\r\n require the a partition of the graph, which can be much more expensive to compute than a minimum degree\r\n ordering. By and large, for larger graphs nested dissection generates better orderings than minimum degree,\r\n and the di\ufb00erence in quality increases as the graph size increases. Multisection is an ordering which almost\r\n@@ -161,15 +161,15 @@\n etree = orderViaBestOfNDandMS(graph, maxdomainsize, maxzeros,\r\n maxsize, seed, msglvl, msgFile) ;\r\n Now let us describe the di\ufb00erent parameters.\r\n \u2022 The msglvl and msgFile parameters are used to control output. When msglvl = 0, there is no\r\n output. When msglvl > 0, output goes to the msgFile \ufb01le. The SPOOLES library is a research\r\n code, we have left a great deal of monitoring and debug code in the software. Large values of msglvl\r\n mayresult in large message \ufb01les. To see the statistics generated during the ordering, use msglvl = 1.\r\n- August 3, 2025 Orderings and Front Trees 5\r\n+ July 1, 2024 Orderings and Front Trees 5\r\n \u2022 Theseedparameterisusedasarandomnumberseed. (Therearemanyplacesinthegraphpartitioning\r\n and minimum degree algorithms where randomness plays a part. Using a random number seed ensures\r\n repeatability.)\r\n \u2022 maxdomainsize is used for the nested dissection and multisection orderings. This parameter is used\r\n during the graph partition. Any subgraph that is larger than maxdomainsize is split. We recommend\r\n using a value of neqns/16 or neqns/32. Note: maxdomainsize must be greater than zero.\r\n \u2022 maxzeros and maxsize are used to transform the front tree. In e\ufb00ect, we have placed the ordering\r\n@@ -203,15 +203,15 @@\n 10102 4.6 210364 10651916 6.2 211089 10722231\r\n 10103 4.6 215795 11760095 6.4 217141 11606103\r\n 10104 4.6 210989 10842091 6.1 212828 11168728\r\n 10105 4.8 209201 10335761 6.1 210468 10582750\r\n For the nested dissection and multisection orderings, we used maxdomainsize = 100. We see that there is\r\n really little di\ufb00erence in ordering quality, while the minimum degree ordering takes much less time than the\r\n other orderings.\r\n- 6 Orderings and Front Trees August 3, 2025\r\n+ 6 Orderings and Front Trees July 1, 2024\r\n Let us now look at a random triangulation of a unit cube. This matrix has 13824 rows and columns.\r\n Each face of the cube has a 22\u00d722 regular grid of points. The remainder of the vertices are placed in the\r\n interior using quasi-random points, and the Delauney triangulation is computed.\r\n minimum degree nested dissection\r\n seed CPU #entries #ops CPU #entries #ops\r\n 10101 9.2 5783892 6119141542 27.8 3410222 1921402246\r\n 10102 8.8 5651678 5959584620 31.4 3470063 1998795621\r\n@@ -245,15 +245,15 @@\n ETree *vetree ;\r\n int *newToOld, *oldToNew ;\r\n Graph *graph ;\r\n vetree = ETree_new() ;\r\n ETree_initFromGraphWithPerms(vetree, graph, newToOld, oldToNew) ;\r\n Thevetreeobjectinthecodefragmentaboveisavertex elimination tree [20], [26], where each front contains\r\n one vertex.\r\n- August 3, 2025 Orderings and Front Trees 7\r\n+ July 1, 2024 Orderings and Front Trees 7\r\n Figure 2: R2D100: randomly triangulated, 100 grid points\r\n 48 49 51 50 55 91 8 11 10 9\r\n 52\r\n 53 69 54 17 18\r\n 67 95\r\n 70 19\r\n 66 68 5 3\r\n@@ -300,15 +300,15 @@\n tree [2] has these property: any node in the tree is\r\n \u2022 either a leaf,\r\n \u2022 or has two or more children,\r\n \u2022 or its nonzero structure is not contained in that of its one child.\r\n The top tree in Figure 4 shows the vertex elimination tree with the \u201cfront\u201d number of each vertex superim-\r\n posed on the vertex. The bottom tree is the fundamental supernode tree. Figure 5 shows the block partition\r\n 1Vertex j is the parent of i if j is the \ufb01rst vertex greater than i such that Lj,i 6= 0.\r\n- 8 Orderings and Front Trees August 3, 2025\r\n+ 8 Orderings and Front Trees July 1, 2024\r\n Figure 3: Vertex elimination tree for R2D100, 100 rows and columns\r\n 99\r\n 98\r\n 97\r\n 96\r\n 95\r\n 94\r\n@@ -327,15 +327,15 @@\n 7 17 31 39 55 65 71 78 81\r\n 6 11 16 27 30 38 53 54 64 75 77 80\r\n 2 5 8 10 13 15 22 26 29 37 52 59 63 76 79\r\n 1 4 9 12 14 25 28 36 51 58 62\r\n 0 3 24 35 49 50 57 60 61\r\n 23 34 48 56\r\n 33\r\n- August 3, 2025 Orderings and Front Trees 9\r\n+ July 1, 2024 Orderings and Front Trees 9\r\n superimposed on the structure of the factor L. Note this one important property: within any block column\r\n and below the diagonal block, a row is either zero or dense.\r\n The code fragment to convert a tree into a fundamental supernode tree is given below.\r\n ETree *fsetree, *vetree ;\r\n int maxzeros ;\r\n IV *nzerosIV ;\r\n nzerosIV = IV_new() ;\r\n@@ -368,15 +368,15 @@\n This method will merge a node with all of its children if it will not result in more than maxzeros zeros inside\r\n the new block. On input, nzerosIV object keeps count of the number of zeroes already in the blocks of\r\n fsetree, and on return it will contain the number of zeros in the blocks of ametree.\r\n 3.4 Splitting large fronts\r\n There is one \ufb01nal step to constructing the tree that governs the factorization and solve. Large matrices will\r\n generate large supernodes at the topmost levels of the tree. For example, a k \u00d7 k \u00d7 k grid with a 27 point\r\n \ufb01nite di\ufb00erence operator, when ordered by nested dissection, has a root supernode with k2 rows and columns.\r\n- 10 Orderings and Front Trees August 3, 2025\r\n+ 10 Orderings and Front Trees July 1, 2024\r\n Figure 4: Top: vertex elimination tree with the vertices mapped to the fundamental supernode that contains\r\n them. Bottom: fundamental supernode tree.\r\n 71\r\n 71\r\n 71\r\n 71\r\n 71\r\n@@ -407,17 +407,17 @@\n 2 5 10 15 23 26 34 43 44 49 53 57 58 67\r\n 1 4 7 9 12 14 18 22 25 33 42 48 52 56 63 66\r\n 0 3 8 11 13 21 24 32 41 47 50 51 60 62 65\r\n 20 31 39 40 46 61 64\r\n 19 30 38\r\n 29\r\n 28\r\n- August 3, 2025 Orderings and Front Trees 11\r\n+ July 1, 2024 Orderings and Front Trees 11\r\n Figure 5: Block structure of L with the fundamental supernode partition.\r\n- 12 Orderings and Front Trees August 3, 2025\r\n+ 12 Orderings and Front Trees July 1, 2024\r\n Figure 6: Top: fundamental supernode tree with the supernodes mapped to the amalgamated supernode\r\n that contains them. Bottom: amalgamated supernode tree.\r\n 24\r\n 24\r\n 24\r\n 24\r\n 24\r\n@@ -442,17 +442,17 @@\n 6 10 13 15\r\n 10\r\n 24\r\n 4 12 18 23\r\n 0 1 2 3 9 11 14 17 19 22\r\n 7 8 10 13 15 16 20 21\r\n 5 6\r\n- August 3, 2025 Orderings and Front Trees 13\r\n+ July 1, 2024 Orderings and Front Trees 13\r\n Figure 7: Block structure of L with the amalgamated supernode partition.\r\n- 14 Orderings and Front Trees August 3, 2025\r\n+ 14 Orderings and Front Trees July 1, 2024\r\n The data structure for a top level supernode can be very large, too large to \ufb01t into memory. In a parallel\r\n environment, we follow the convention that each node in the tree is handled by one process. Having a very\r\n large node at the top levels of the tree will severely decrease the parallelism available to the computations.\r\n The solution to both problems, large data structures and limited parallelism, is to split large supernodes\r\n into pieces. We can specify a maximum size for the nodes in the tree, and split the large supernode into pieces\r\n no larger than this maximum size. This will keep the data structures to a manageable size and increase the\r\n available parallelism. We call the resulting tree the front tree because it represents the \ufb01nal computational\r\n@@ -488,15 +488,15 @@\n of front trees. The original front tree came from our nested dissection ordering.\r\n There are 13824 rows and columns in the matrix, and 6001 fronts in the nested dissection tree. While\r\n there is an average of two rows and columns per front, most of the fronts are singleton fronts at the lower\r\n levels of the tree. The top level front has 750 internal rows and columns.\r\n \u2022 In the \ufb01rst step we create an fundamental supernode tree with a call to ETree mergeFrontsOne()with\r\n maxzeros = 0. We see that the number of fronts decreases by one and the number of entries does not\r\n change.\r\n- August 3, 2025 Orderings and Front Trees 15\r\n+ July 1, 2024 Orderings and Front Trees 15\r\n Figure 8: Left: tree after the large supernodes have been split. Right: tree with nodes mapped back to their\r\n amalgamated supernode.\r\n 26\r\n 26\r\n 26\r\n 26\r\n 27\r\n@@ -525,26 +525,26 @@\n 28\r\n 27\r\n 26\r\n 5 13 20 25\r\n 4 10 12 19 21 24\r\n 0 1 2 3 8 9 11 15 18 22 23\r\n 6 7 14 16 17\r\n- 16 Orderings and Front Trees August 3, 2025\r\n+ 16 Orderings and Front Trees July 1, 2024\r\n Figure 9: Block structure of L with the amalgamated and split supernode partition.\r\n Table 1: R3D13824: front tree transformations\r\n CPU #fronts #indices # entries #operations\r\n original 6001 326858 3459359 1981403337\r\n fs tree 0.040 6000 326103 3459359 1981403337\r\n merge one 0.032 3477 158834 3497139 2000297117\r\n merge all 0.020 748 95306 3690546 2021347776\r\n merge any 0.012 597 85366 3753241 2035158539\r\n split 0.043 643 115139 3753241 2035158539\r\n \ufb01nal 0.423 643 115128 3752694 2034396840\r\n- August 3, 2025 Orderings and Front Trees 17\r\n+ July 1, 2024 Orderings and Front Trees 17\r\n \u2022 The second step is also a call to ETree mergeFrontsOne(), this time with maxzeros = 1000. Here\r\n we merge fronts with only one child with that child, in other words, only chains of nodes can merge\r\n together. Note how the number of fronts is decreased by almost one half, and the number of factor\r\n entries and operations increase by 1%.\r\n \u2022 The third step is a call to ETree mergeFrontsAll()with maxzeros = 1000, where we try to merge a\r\n node with all of its children if possible. The number of fronts decreases again by a factor of \ufb01ve, while\r\n the number of factor entries and operations increases by 7% and 2%, respectively, when compared with\r\n@@ -582,15 +582,15 @@\n the \ufb01nal front tree, for the intra-front computations are a small fraction of the total number of operations.\r\n The solve time improves dramatically when small fronts are merged together into larger fronts. Our\r\n solves are submatrix algorithms, where the fundamental kernel is an operation Y := B \u2212L X and\r\n J J J,I I\r\n X :=Y \u2212U Y ,andisdesigned to be a BLAS2 kernel (when X and Y have a single column) or BLAS3\r\n J J I,J J\r\n kernel (when X and Y are matrices). When fronts are small, particularly with one internal row and column,\r\n- 18 Orderings and Front Trees August 3, 2025\r\n+ 18 Orderings and Front Trees July 1, 2024\r\n the submatrices that take part are very small. The overhead for the computations takes far more time than\r\n the computations themselves.\r\n This multistep process of merging, merging again, etc, and \ufb01nally splitting the front trees is tedious.\r\n There are simple methods that do the process in one step.\r\n ETree *etree, *etree2, *etree3 ;\r\n int maxfrontsize, maxzeros, seed ;\r\n etree2 = ETree_transform(etree, NULL, maxzeros, maxfrontsize, seed) ;\r\n@@ -624,15 +624,15 @@\n computations in the factorization and solve. If maxsize is too large, then too much of the computations in\r\n the factorization is done inside a front, which uses a slow kernel. If maxsize is too small, then the fronts are\r\n too small to get much computational e\ufb03ciency. We recommend using a value between 32 and 96. Luckily,\r\n the factor and solve times are fairly \ufb02at within this range. A value of 64 is what we customarily use.\r\n References\r\n [1] P. Amestoy, T. Davis, and I. Du\ufb00. An approximate minimum degree ordering algorithm. SIAM J.\r\n Matrix Anal. Appl., 17:886\u2013905, 1996.\r\n- August 3, 2025 Orderings and Front Trees 19\r\n+ July 1, 2024 Orderings and Front Trees 19\r\n Table 3: R3D13824: the in\ufb02uence of maxzeros and maxsize.\r\n factor solve total\r\n maxzeros maxsize init CPU m\ufb02ops postprocess CPU m\ufb02ops CPU\r\n 0 \u221e 3.3 129.8 15.3 5.3 7.8 7.1 146.2\r\n 10 \u221e 3.5 129.2 15.3 3.3 5.3 10.5 141.3\r\n 100 \u221e 3.0 119.3 16.7 2.0 3.9 14.4 128.2\r\n 1000 \u221e 3.0 121.8 16.7 1.4 3.5 17.0 129.7\r\n@@ -665,15 +665,15 @@\n Trans. Math. Software, 6:302\u2013325, 1983.\r\n [10] J. A. George. Nested dissection of a regular \ufb01nite element mesh. SIAM J. Numer. Anal., 10:345\u2013363,\r\n 1973.\r\n [11] J. A. George and J. W. H. Liu. Computer Solution of Large Sparse Positive De\ufb01nite Systems. Prentice-\r\n Hall, Englewood Cli\ufb00s, NJ, 1981.\r\n [12] A. Gupta. WGPP: Watson Graph Partitioning and sparse matrix ordering Package. Technical Report\r\n Users Manual, IBM T.J. Watson Research Center, New York, 1996.\r\n- 20 Orderings and Front Trees August 3, 2025\r\n+ 20 Orderings and Front Trees July 1, 2024\r\n [13] B. Hendrickson and R. Leland. An improved spectral graph partitioning algorithm for mapping parallel\r\n computations. Technical Report SAND92-1460, Sandia National Laboratories, Albuquerque, NM, 1992.\r\n [14] B. Hendrickson and R. Leland. The Chaco user\u2019s guide. Technical Report SAND93-2339, Sandia\r\n National Laboratories, Albuquerque, NM, 1993.\r\n [15] B. Hendrickson and E. Rothberg. Improving the runtime and quality of nested dissection ordering.\r\n SIAM J. Sci. Comput., 20:468\u2013489, 1998.\r\n [16] G. Karypis and V. Kumar. A fast and high quality multilevel scheme for partitioning irregular graphs.\r\n"}]}]}, {"source1": "./usr/share/doc/spooles-doc/GPart.ps.gz", "source2": "./usr/share/doc/spooles-doc/GPart.ps.gz", "unified_diff": null, "details": [{"source1": "GPart.ps", "source2": "GPart.ps", "unified_diff": "@@ -11,15 +11,15 @@\n %%EndComments\n %%BeginDefaults\n %%ViewingOrientation: 1 0 0 1\n %%EndDefaults\n %DVIPSWebPage: (www.radicaleye.com)\n %DVIPSCommandLine: dvips main -o GPart.ps\n %DVIPSParameters: dpi=600\n-%DVIPSSource: TeX output 2025.08.03:1317\n+%DVIPSSource: TeX output 2024.07.01:0700\n %%BeginProcSet: tex.pro 0 0\n %!\n /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S\n N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72\n mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0\n 0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{\n landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize\n@@ -1788,23 +1788,22 @@\n /UnderlinePosition -100 def\n /UnderlineThickness 50 def\n end readonly def\n /Encoding 256 array\n 0 1 255 {1 index exch /.notdef put} for\n dup 44 /comma put\n dup 48 /zero put\n+dup 49 /one put\n dup 50 /two put\n-dup 51 /three put\n-dup 53 /five put\n+dup 52 /four put\n dup 58 /colon put\n-dup 65 /A put\n-dup 103 /g put\n-dup 115 /s put\n-dup 116 /t put\n+dup 74 /J put\n+dup 108 /l put\n dup 117 /u put\n+dup 121 /y put\n readonly def\n currentdict end\n currentfile eexec\n D9D66F633B846AB284BCF8B0411B772DE5CE32340DC6F28AF40857E4451976E7\n 5182433CF9F333A38BD841C0D4E68BF9E012EB32A8FFB76B5816306B5EDF7C99\n 8B3A16D9B4BC056662E32C7CD0123DFAEB734C7532E64BBFBF5A60336E646716\n EFB852C877F440D329172C71F1E5D59CE9473C26B8AEF7AD68EF0727B6EC2E0C\n@@ -1985,79 +1984,67 @@\n 7CA1534C4D5B05FC33F83790ECFD7641DF3FB94289E2A1F6E7D29AB1228A867A\n 6E1EF0E9C6F899B491DC18401C2C0A05FFFED46A72C245F7529B8EA55A038082\n 8512307217D2A233C37004085BA3AEE379269F9FA7D0ADB4B19A95CC2AFE686E\n 55D88E47257C1FE6F235FEA295910569FE6DD5995512562359CC821E85A6C7A5\n 79B470A9E340A6985189FF8B6AF914A6B0ECF93F47903221F95DE894A8F05B05\n B7D99CD533EC5F931B18E6B39BECF67FA2D6DD1AEC76772B068BE06335A94C05\n 7A4DDEE77B66101DA855C17AC312600370B34E31F5EC3A01300A8EB60B4C9767\n-1B2FA10DF7E91D3BB34A1B1CE7A0015A57C813E0280D873ADB88440048702D1F\n-77994EE04EC3B4531D6E1888C86A8F0DA6CF1F056F16AB0DD76C862830F89DA4\n-28923B3AA543E0D6E41D3BD283E600BC11F889315EE92C675C109C81065ED1BC\n-82A5583D1B723D50051B0557A367887F5B263014C6E77288B4883C50889473D3\n-3787BAD4BEB88BD1353AFA5B73E61814819537E7FF09F53EF94792BB3DD36ED0\n-002D0E7A6CDAB85A9C17AF5664BCB5A71663B861880F3ECCABC8E7A2FC81A4CC\n-AE7A87503FDC1CE0077BA51ECC7B43B60793FED8E9AAD5BBD03ADD6183DCD26D\n-24A74163611C05562437644EF9B8889FD4F9D311911204FEFD35237486F2D2D0\n-B6783A03BF12EA6D19D6D0F87E4D08515F12F9CBF1961CAA71E0D69FE3C4C4D2\n-7C7FB64ED24F8684C8F00C2BEDEA53EA390CDC0B5BEBD7DD982580B2EA1F1F89\n-CFED5916630DC2BA32BB9180277E1ABC339B3B7DE086717BD93F7FF3681BA5B3\n-FCF671C4B293C2DE4A322F0AA3323A4934444C69F23EF90120B8755482757759\n-C457A435FB8BB4922BD92C5F3D9555D978275C510183E29DFF2FCE4ABBFC18DE\n-76CAD3B486BA12047DD808CD4D521A0FD368E4AE79DE262630983A5D6F0B679D\n-2F005306393C520E1B6987302D029939D94B0178DC55D5264E1FEA468AD4134C\n-8C65B2FBBE8DE8284E8E1F6BFE0B648F44D3DA8E9350D266EDBFD4A7054D9355\n-1E0B185DED37BCF32D3731358F1D707C94109428BAD3CEA456A2A43553E3D2C2\n-F549189201F3D3F715310E3E8C6A2E9AA5141AA9125D203694C7D875C2DD320F\n-C5BCDFC924F6C04DBC7A97349B45ECD0FBD7D2123ED1D3A9F440B1112BE62779\n-47A4592F9285CBD9635EC9091CEC0AFD7E6B6976974081DB9C0E43165BD8584D\n-6CDF08DED287F0883A9FBD351B3F8706BA1E94C7CA487338269482EB8DC1A05D\n-F6632A5D834DE29228C49C5BA65EF7C535A53B380BF4B391F43562147538EE97\n-E799DFC2C40315859F56BBCE9CAE1DF9293F6E2C193ABE7A724EC8F32FA220E7\n-6026877A63E318254F2AF7B1325D63FC4C52B536D3EF354814C2F8F1EEA30569\n-6EF04447DB0F809DF35B4985B9FB4F4BB6087310BE633E76F268B32ABA99CE8E\n-03163DFF4AEDB88E60DD0848C15E90026D7C24D81122EBC07113F9851914A9D5\n-D0E09C2BFDDAF10C5D8208E8329BC0C402F231CD84C95EFDD182AD9756662110\n-274650C7A5BB0D8EFA54EC6C5A49C0EB26701A54779AE8EFBBED824262761602\n-680EDFB38F0FE18C0F501F5AA8BF48A8F0DD3E5E1EBEB872F6F6B23964707B32\n-507FC677B9FDDC990E3828B06420F6F968B2F6AE81E76A2144B1ECE905485616\n-CFB29AC96DDE1F5039935D7E385CC13E34DD7EAF276A2EA3A8BF27FD4205AE13\n-7FE620E42F2CF231C6C8DD8EFC5A6CF081E5660D9ADD730D72D15C02B1E15FF3\n-D741D3B1EB1E666C4E562219033C1E2EF3F96E136998B2E1890395A3637A2C02\n-DE1C46AFCA8D898439F06606A2295D3F7ED6C7DB250C61B6B97A0D5EDDB9657E\n-E790B4E07540BB1026036F4A0D00E7F16FD757AD61D686620C6814B7DCEC43E8\n-FD36D9E75BA554F64548A67D9B0A26E11784E58D4357FC251D71B5D6D8BFDDE0\n-D3BF0E825DA5312C1904AF13C5905C2ADF79C357476183D2EC5A95243235E861\n-2F98D9EE77EF8F8CB3EC6BD358C5ED37DD3AF44D60575E7774BF96F1AE9DFAD1\n-F8646DEDF21D10311854726B8F7D25876BB1EF78E2442B16ED4B851816CF0A27\n-11FDFCE525002A1A7C3E62CD2A3EDE6FAADB026D2F3A46C030ADB22422CA8FF5\n-2545ED58C0D9FB5BDB55FE674301E91A75B005B86BD201D246F7ADACE50419FD\n-AC3312CAC5EB78A36F0E5F62E65AC92129CB574AAC59E0A7C1390DFC61F39D9E\n-D7036742F2F6E64D1EF8157E9CCF65F3EEDC6A8220235978B8E06EB80F649F3E\n-204CFB497F49306EA8E1F7B62305978A28F1E771ED82C6592C71022154E4062A\n-A92335EFC65D6DED9C686899FFD7AA2988740618C03C5E362E1AF352E3BE4602\n-5530C51E5FC8E9082DF79199CC91C50174000D337D86127AC807C5A3C81DDE57\n-7A68AEE7230949B925365C214D77C80E87CEE218ABC94023717EA43BA5D8A7C8\n-8A8B9BD1B767996AE33050E3D922ED0574E3579C57E4BDDAD35883806AFDF260\n-3AB5D83D451583262E580FFDB7A27D82396AF18D92B849A3F7A7E621987D5DF0\n-038F876C6E9CA47FB11AF05F0019191C5DDC5F0177AD421E94BC66D0CCB82F1F\n-93A80836284B095503752C600F72E2C89112ABFA5B76152691264103B268B3E5\n-8816724ADADB38740001A9AACE05C8AF02D72918606DC22EFC8BF0DA0FD12FFE\n-D3A09F8E28057F327BFB633E604B1EAD478637B1D9631650B314CC62D7E0E87F\n-9D3FE1FFA23BB6E3006C3E39BED52F6B0C1C651B5913878F36DA0BF776889165\n-68BA3456B40B8B471CA8FF5238E43D9113E052A2B8D2EAA2433D3F89FCA48AFB\n-5E842913E4ED6DF9623354059CD1F1707B126FED80349787C869883120183EDD\n-249185A55503FAC53898F52170D05CAC62BB742CF9702C0518AED6B27CDC401C\n-932E02143FD916703F360CB31049501B35EF3EDDFED791090D0CFA221FD1DB32\n-7D4759CE07983AE29C258C705D11E7D9481EEAAB9B6BA65CDCF0AA0057BD6FEA\n-ABBFBD3ABF2A7BFB550C3D2A16DC447384A89F3DB6D9C2DBDCA997ABE35A7706\n-633D328AECEDB5BD07070C1B96267FD73B45791DD18194F60D358091FBE88409\n-973529806F3D2C9E6E39091F90A14B560A987E0B9490B9B690FB489B8E253070\n-D7C54447BE0E0A0BFEAEFFB581DC1300E6EC382984673BF0665632404E59B5BF\n-5D5F0A1C956E618C0487751CA5DAE8A95C214F76ED756694EF273679CD2D85CB\n-949DF385BD50491649EFEFDA1574921D7460143D42A100D2C76E55F0BC\n+1B2FA10DF7E91D3BB34A1B1CE7A0015A57C813E0280D873ADB8844004B9BA1CC\n+580D3C6BDA4DC1B80B4365F1C80512453FC5316EC2D928FB731C3D6403E3C18B\n+E8424D644DF5E9A2134229C5C91CA68DB8E85BA2BB40F538F585DA6FA4037718\n+B8053EBBA1E765346BCD5BDAA6C38115D31611D8A87A2238C145F2DA2F92E4DF\n+3987BD9C4D2A3D460E8941A68B125BCD9EE4F9FD262C4C8A71F47A2C81975635\n+F1B981C274C53FA2ACCDE4C9D0A7C62D6C1EFF91CFC6712CA6A9F333C9564FCB\n+2A70F0AD715A79B10A08AB069E2A3C93BC0AED19D0CA10134B8DDDE8AF548DB2\n+3A4AAA9C29682CF135BB767DAA16169A127EB50A7EECEB6480CF56A7D0F8AC56\n+4A5090B3D75A790372886AF568D94C8165975A05BFBFDF1FFBA45F70700BB9E0\n+57F3249EF9E9C8AD9CBCF6E4FD592DC4CDD2CC7C0BC3130C1059096C657BE453\n+A2CBACE93420210E27AF56CA229BD6D982FB68B3FDC6D44478B922C4231C47EE\n+E500232F6C11D92DEB955F66DF52B92B22E7352790CC2DCBAC53965D57AC2920\n+68B7D520DE25047146EFEB06B9AD4E2A94243C7E5239F0BC2FC312B16051D52C\n+0B92C217B6B42997321AE4F8BB066754B7AA3F15069EF59224E8A442CE471AA7\n+E8049A3DD9EDA09CCEE4998998661CF7DB35E952F6C65DAEB3013951C59F3E09\n+157F313B0237876E1C0190F0473819570B8C0205AADF05D787CC00979CFB327A\n+289382B22DDA6F12804ED0ED5B179E36A995A2A59E1B66E75130DBE9109C813B\n+94403E0DEA8314A1E9DB474D7FA83C0BAFD08033E6A6215844C1D26BE15F1251\n+A1605E8DF9A9C601ED37379530BC1C82BE5463C6C711C5652BFD6262485AA9CA\n+B8C4A117593001D08D980041E2A83C190DCE8E6CD3D334E5CC19FC05DB30F7F7\n+24A305C4DBB31F0651392B99D44B4302333BDF7E326FD256DD75D309C6E73F85\n+FA71B35FD1F9BEFF4C7A1076362EEB0A85492933B6006086A7B8C1928CF2D1EE\n+FD4344409257BB802C117E739960821CD3C88BFBA5669FF16F610AD638AF3677\n+8674C985E6767253ED5769F71BEA5E9BB02A751F9E62EE2B18AC19D975FDEAE9\n+8B8822367FF177A7E850766DE99ED3366D46464612926430012212A90F8E85F4\n+4760B40D5B86B90819EE410382D22D8ED82D0B0AB00C93E10CD365F8766D1C87\n+B4A866021FB6F6AC3D250CC601989B1B8FE6B1098A48282D2CF258BF38FEE940\n+CE0141FB1344156DE7712A8F2DBF700174F12616EE17C852210D96D03E5E6635\n+D439EB6E84A383DDD32AD72DADE6F931FDBABBDC726C36081C96018FC95EAE13\n+DA1F8DBC2D8355AC9792649653225393F4A7A88F3B9443FEEB75E2C15BF93F09\n+CCBA7FABC022BE26F4C28152D5DA6D690494AD4EC0DA1B598AE12536BADF88B5\n+5E20EB452546389F57FF55459567B453AE1831C57D22FA6A4FDF441EDAFDB7FB\n+4F4B707C1FF9159C40F7B5DD519FC07815EE91B8D756B6C18500BCF47D0D9E45\n+6A2D51B6AA5AEAAC9AB2DEF7F0FDE957B6C179CBADEECAC7E9CEC248AB135EB4\n+FBF83D002FF859B574EF36C371540EF2BCFCEF5C2E7863AEDD7C3C965103453B\n+023A9CEC1D5C45B88827ADF4AE0C6746F3C7E6A944427DAEC493601019583A16\n+0F846CE00EAE89EEFF9CE68A0E1D6EBB8FDD8A45D1BF399B36A8328EC957CB8B\n+D842A56269C8C9A6B472C9E65BCBC090606B4E8A7EF4ABDEA120C9F9B3969A1C\n+2EB102925F4E155160E58000E1ADB0D19E10EFD96F6C3225EEE8FC24D122C069\n+C11F1A69DC383F7DACD2F3929BD135CE69787C6E7560AC4B683FE5D9AAFD2E89\n+EE6D95E38C9B726B416E28169A11E29559DBA9AECD714CF318FCB78F34A0E562\n+9C00FE0C6D5A848557D9A82EC2BEFCD30B5EDC0B23C5BA9F812C864394C8B9D1\n+B08BAC9CF94E70FF842306ACCFE6E39A56777C712904A3AB29FBD19275E19E06\n+B35B37CFFFCEC81CAF2D85A853663FAFCFFED1EA77064AA28C15BC94910683BC\n+D09513079DE9EE18E97CC2403DD206516D7F652A3459870757F34EEDCEF952C3\n+FE8004F4716B5BD6774E455010B0BB1E61FCD66B9F14F9BBCCF3E55A158EE96E\n+9A05BDFDDC7706D4BC28FDDC4004EF3A430C607EBDF115E0C996454D70C8BB42\n+D7C83A454B116663D648C23CE2B33365810DE2B64D4AE011BC8043BC3E05B94D\n+1700F859C6AFC6515C1C42FA104EE3E8F3FA5F80252C2E79B00ED27F675FFD09\n+B50BF7A3C63CF4856F909DF969D7DD3EA05CABDD1E71A58CFC2AB5F614B4E5E0\n+25CF92E9FB66ACEBE05DF5E033DA8AD3EE32D94C02D98DD7DA99FAB5AEA595C3\n+2987DC122F0242D76B782349E4069DE0CDD6EF4375C680CBFE4C8F24F2AE89BF\n+7785F5EA7435A91500F265022C307E8ADEAAE1C6\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n@@ -5494,16 +5481,16 @@\n 56 62 93 31 2[31 62 56 1[51 62 50 1[54 11[86 2[84 4[106\n 3[42 4[86 1[80 9[56 56 56 56 56 56 56 56 2[31 37 45[{}35\n 99.6264 /CMBX12 rf /Fc 139[62 1[62 16[62 16[62 8[62 71[{}5\n 119.552 /CMTT12 rf /Fd 255[55{}1 66.4176 /CMSY8 rf /Fe\n 134[71 2[71 75 52 53 55 1[75 67 75 112 2[41 37 75 67\n 41 61 75 60 75 65 13[75 2[92 11[103 16[67 67 67 2[37\n 46[{}27 119.552 /CMBX12 rf /Ff 132[52 6[41 4[52 58 46[49\n-63[{}5 90.9091 /CMBX10 rf /Fg 138[51 35 36 11[45 37[68\n-6[25 4[45 1[45 45 1[45 3[25 44[{}11 90.9091 /CMSL10 rf\n+63[{}5 90.9091 /CMBX10 rf /Fg 134[48 3[51 8[25 33[47\n+15[25 5[45 1[45 45 45 3[25 44[{}10 90.9091 /CMSL10 rf\n /Fh 156[83 46 78[61 61 18[{}4 83.022 /CMEX10 rf /Fi 145[45\n 3[25 35 35 45 45 9[61 61 31[45 4[0 3[61 28[71 71 1[71\n 17[71{}15 90.9091 /CMSY10 rf /Fj 146[62 1[37 1[24 17[67\n 20[53 66[{}5 66.4176 /CMMI8 rf /Fk 204[35 35 35 35 4[55\n 43[{}5 66.4176 /CMR8 rf /Fl 134[45 14[37 5[47 10[53 1[86\n 53 2[56 16[69 68 2[71 45 71 25 25 46[58 11[{}15 90.9091\n /CMMI10 rf /Fm 136[60 1[49 30 37 38 1[46 46 51 74 23\n@@ -5653,17 +5640,17 @@\n b Fl(Y)55 b Fp(that)35 b(has)g(minimal)g(w)m(eigh)m(t.)56\n b(W)-8 b(e)36 b(examine)g(t)m(w)m(o)227 5294 y(\\(p)s(ossibly\\))j\n (di\\013eren)m(t)h(min-cuts)g(and)e(ev)-5 b(aluate)41\n b(the)f(partitions)g(induced)e(via)i(their)g(minimal)f(w)m(eigh)m(t)227\n 5407 y(separators,)31 b(and)f(accept)i(a)f(b)s(etter)f(partition)h(if)g\n (presen)m(t.)1927 5656 y(1)p eop end\n %%Page: 2 2\n-TeXDict begin 2 1 bop 0 100 a Fp(2)p 136 100 1146 4 v\n-1328 w Fo(GPart)29 b Fg(:)40 b Fm(DRAFT)31 b Fg(August)f(3,)h(2025)p\n-2754 100 V 0 399 a Fp(This)e(pro)s(cess)h(w)m(e)g(call)i\n+TeXDict begin 2 1 bop 0 100 a Fp(2)p 136 100 1204 4 v\n+1385 w Fo(GPart)29 b Fg(:)41 b Fm(DRAFT)30 b Fg(July)g(1,)h(2024)p\n+2697 100 V 0 399 a Fp(This)e(pro)s(cess)h(w)m(e)g(call)i\n Fo(DDSEP)p Fp(,)d(whic)m(h)h(is)g(short)f(for)h Fo(D)p\n Fm(omain)k Fo(D)p Fm(e)-5 b(c)g(omp)g(osition)35 b Fo(SEP)p\n Fm(ar)-5 b(ator)p Fp(,)32 b(explained)e(in)g(more)0 511\n y(detail)i(in)e([)p Ff(?)p Fp(])h(and)f([)p Ff(?)p Fp(].)0\n 827 y Fe(1.1)135 b(Data)46 b(Structures)0 1056 y Fp(The)40\n b Fo(GPart)e Fp(structure)i(has)f(a)i(p)s(oin)m(ter)f(to)h(a)f\n Fo(Graph)f Fp(ob)5 b(ject)40 b(and)g(other)g(\\014elds)g(that)g(con)m\n@@ -5718,17 +5705,17 @@\n b(It)32 b(con)m(tains)0 5053 y(input)g(parameters)h(for)f(the)h\n (di\\013eren)m(t)g(stages)h(of)f(the)g Fo(DDSEP)e Fp(algorithm,)k(and)d\n (collects)j(statistics)f(ab)s(out)f(the)0 5166 y(CPU)d(time)h(sp)s(en)m\n (t)f(in)g(eac)m(h)i(stage.)137 5407 y Fn(\\210)45 b Fp(These)30\n b(parameters)h(are)g(used)e(to)j(generate)f(the)g(domain)f(decomp)s\n (osition.)p eop end\n %%Page: 3 3\n-TeXDict begin 3 2 bop 91 100 1146 4 v 1327 100 a Fo(GPart)29\n-b Fg(:)41 b Fm(DRAFT)121 b Fg(August)30 b(3,)h(2025)p\n-2707 100 V 1146 w Fp(3)330 399 y Ff({)45 b Fo(int)i(minweight)p\n+TeXDict begin 3 2 bop 91 100 1204 4 v 1385 100 a Fo(GPart)29\n+b Fg(:)41 b Fm(DRAFT)121 b Fg(July)30 b(1,)h(2024)p 2650\n+100 V 1204 w Fp(3)330 399 y Ff({)45 b Fo(int)i(minweight)p\n Fp(:)38 b(minim)m(um)30 b(target)i(w)m(eigh)m(t)g(for)e(a)h(domain)330\n 541 y Ff({)45 b Fo(int)i(maxweight)p Fp(:)38 b(maxim)m(um)31\n b(target)h(w)m(eigh)m(t)f(for)g(a)f(domain)330 683 y\n Ff({)45 b Fo(double)h(freeze)p Fp(:)51 b(m)m(ultiplier)37\n b(used)e(to)i(freeze)g(v)m(ertices)h(of)e(high)g(degree)h(in)m(to)g\n (the)f(m)m(ultisector.)427 796 y(If)h(the)h(degree)g(of)g\n Fo(v)f Fp(is)h(more)g(than)f Fo(freeze)f Fp(times)i(the)g(median)f\n@@ -5792,17 +5779,17 @@\n (ter)0 5068 y Fe(1.2)135 b(Protot)l(yp)t(es)46 b(and)f(descriptions)g\n (of)g Fc(GPart)e Fe(metho)t(ds)0 5294 y Fp(This)e(section)j(con)m\n (tains)f(brief)f(descriptions)g(including)f(protot)m(yp)s(es)i(of)f\n (all)h(metho)s(ds)f(that)h(b)s(elong)f(to)h(the)0 5407\n y Fo(GPart)29 b Fp(ob)5 b(ject.)42 b(There)29 b(are)i(no)f(IO)g(metho)s\n (ds.)p eop end\n %%Page: 4 4\n-TeXDict begin 4 3 bop 0 100 a Fp(4)p 136 100 1146 4 v\n-1328 w Fo(GPart)29 b Fg(:)40 b Fm(DRAFT)31 b Fg(August)f(3,)h(2025)p\n-2754 100 V 0 399 a Fb(1.2.1)112 b(Basic)38 b(metho)s(ds)0\n+TeXDict begin 4 3 bop 0 100 a Fp(4)p 136 100 1204 4 v\n+1385 w Fo(GPart)29 b Fg(:)41 b Fm(DRAFT)30 b Fg(July)g(1,)h(2024)p\n+2697 100 V 0 399 a Fb(1.2.1)112 b(Basic)38 b(metho)s(ds)0\n 599 y Fp(As)d(usual,)h(there)f(are)g(four)f(basic)h(metho)s(ds)g(to)g\n (supp)s(ort)e(ob)5 b(ject)36 b(creation,)i(setting)e(default)f\n (\\014elds,)h(clearing)0 712 y(an)m(y)31 b(allo)s(cated)h(data,)f(and)f\n (free'ing)h(the)g(ob)5 b(ject.)111 959 y(1.)46 b Fo(GPart)h(*)g\n (GPart_new)e(\\()j(void)e(\\))i(;)227 1113 y Fp(This)28\n b(metho)s(d)g(simply)h(allo)s(cates)i(storage)f(for)e(the)h\n Fo(GPart)f Fp(structure)g(and)g(then)g(sets)i(the)f(default)f(\\014elds)\n@@ -5862,17 +5849,17 @@\n b(GPart)e(*gpart,)g(int)h(msglvl,)f(FILE)g(*msgFile)g(\\))h(;)227\n 5253 y Fp(This)30 b(metho)s(d)g(sets)g(the)h Fo(msglvl)e\n Fp(and)g Fo(msgFile)g Fp(\\014elds.)227 5407 y Fm(Err)-5\n b(or)34 b(che)-5 b(cking:)40 b Fp(If)30 b Fo(gpart)f\n Fp(is)i Fo(NULL)p Fp(,)e(an)h(error)g(message)i(is)e(prin)m(ted)g(and)g\n (the)h(program)f(exits.)p eop end\n %%Page: 5 5\n-TeXDict begin 5 4 bop 91 100 1146 4 v 1327 100 a Fo(GPart)29\n-b Fg(:)41 b Fm(DRAFT)121 b Fg(August)30 b(3,)h(2025)p\n-2707 100 V 1146 w Fp(5)0 399 y Fb(1.2.3)112 b(Utilit)m(y)38\n+TeXDict begin 5 4 bop 91 100 1204 4 v 1385 100 a Fo(GPart)29\n+b Fg(:)41 b Fm(DRAFT)121 b Fg(July)30 b(1,)h(2024)p 2650\n+100 V 1204 w Fp(5)0 399 y Fb(1.2.3)112 b(Utilit)m(y)38\n b(metho)s(ds)111 599 y Fp(1.)46 b Fo(void)h(GPart_setCweights)c(\\()k\n (GPart)g(*gpart)f(\\))h(;)227 753 y Fp(This)26 b(metho)s(d)g(sets)g(the)\n h(comp)s(onen)m(t)g(w)m(eigh)m(ts)g(v)m(ector)h Fo(cweightsIV)p\n Fp(.)c(W)-8 b(e)28 b(assume)e(that)h(the)f Fo(compidsIV)227\n 866 y Fp(v)m(ector)33 b(has)f(b)s(een)e(set)i(prior)f(to)i(en)m(tering)\n f(this)f(metho)s(d.)44 b(The)31 b(w)m(eigh)m(t)i(of)e(a)h(comp)s(onen)m\n (t)g(is)g(not)f(simply)227 979 y(the)g(sum)f(of)g(the)h(w)m(eigh)m(ts)h\n@@ -5952,17 +5939,17 @@\n g(domain.)227 5294 y Fm(Err)-5 b(or)33 b(che)-5 b(cking:)40\n b Fp(If)29 b Fo(gpart)p Fp(,)f Fo(g)h Fp(or)h Fo(domid)e\n Fp(is)h Fo(NULL)p Fp(,)f(or)i(if)f Fo(v)g Fp(is)g(out)h(of)g(range)f\n (\\(i.e.,)j Fo(v)25 b Fl(<)f Fp(0)30 b(or)g Fo(nvtx)24\n b Fi(\\024)h Fo(v)p Fp(\\),)227 5407 y(an)31 b(error)f(message)h(is)f\n (prin)m(ted)g(and)g(the)h(program)f(exits.)p eop end\n %%Page: 6 6\n-TeXDict begin 6 5 bop 0 100 a Fp(6)p 136 100 1146 4 v\n-1328 w Fo(GPart)29 b Fg(:)40 b Fm(DRAFT)31 b Fg(August)f(3,)h(2025)p\n-2754 100 V 111 399 a Fp(6.)46 b Fo(IV)h(*)h(GPart_bndWeightsIV)43\n+TeXDict begin 6 5 bop 0 100 a Fp(6)p 136 100 1204 4 v\n+1385 w Fo(GPart)29 b Fg(:)41 b Fm(DRAFT)30 b Fg(July)g(1,)h(2024)p\n+2697 100 V 111 399 a Fp(6.)46 b Fo(IV)h(*)h(GPart_bndWeightsIV)43\n b(\\()k(GPart)g(*gpart)f(\\))h(;)227 549 y Fp(This)27 b(metho)s(d)g\n (returns)f(an)h Fo(IV)g Fp(ob)5 b(ject)28 b(that)g(con)m(tains)g(the)g\n (w)m(eigh)m(ts)h(of)e(the)h(v)m(ertices)h(on)e(the)g(b)s(oundaries)227\n 661 y(of)k(the)f(comp)s(onen)m(ts.)227 811 y Fm(Err)-5\n b(or)34 b(che)-5 b(cking:)40 b Fp(If)30 b Fo(gpart)f\n Fp(or)i Fo(g)f Fp(is)g Fo(NULL)p Fp(,)g(an)g(error)g(message)h(is)g\n (prin)m(ted)f(and)f(the)i(program)f(exits.)0 1079 y Fb(1.2.4)112\n@@ -6033,21 +6020,21 @@\n b(W)-8 b(e)27 b(then)g(construct)g(the)227 5294 y(bipartite)j(graph)e\n (that)h(represen)m(ts)f(the)h(connectivit)m(y)i(of)e(the)g(domains)f\n (and)g(segmen)m(ts.)41 b(Eac)m(h)30 b(segmen)m(t)227\n 5407 y(is)36 b(an)f(\\\\edge\")i(that)g(connects)f(t)m(w)m(o)h(\\\\adjacen)m\n (t\")h(domains.)56 b(This)34 b(allo)m(ws)j(us)e(to)h(use)g(a)g(v)-5\n b(arian)m(t)36 b(of)g(the)p eop end\n %%Page: 7 7\n-TeXDict begin 7 6 bop 91 100 1146 4 v 1327 100 a Fo(GPart)29\n-b Fg(:)41 b Fm(DRAFT)121 b Fg(August)30 b(3,)h(2025)p\n-2707 100 V 1146 w Fp(7)227 399 y(Kernighan-Lin)k(algorithm)h(to)g\n-(\\014nd)e(an)h(\\\\edge\")i(separator)e(formed)g(of)g(segmen)m(ts,)j(whic)\n-m(h)d(is)g(really)i(a)227 511 y(v)m(ertex)30 b(separator,)h(a)e(subset)\n-f(of)h(\\010.)40 b(The)29 b Fo(alpha)e Fp(parameter)j(is)f(used)f(in)h\n-(the)g(cost)h(function)e(ev)-5 b(aluation)227 670 y(for)33\n+TeXDict begin 7 6 bop 91 100 1204 4 v 1385 100 a Fo(GPart)29\n+b Fg(:)41 b Fm(DRAFT)121 b Fg(July)30 b(1,)h(2024)p 2650\n+100 V 1204 w Fp(7)227 399 y(Kernighan-Lin)k(algorithm)h(to)g(\\014nd)e\n+(an)h(\\\\edge\")i(separator)e(formed)g(of)g(segmen)m(ts,)j(whic)m(h)d(is)\n+g(really)i(a)227 511 y(v)m(ertex)30 b(separator,)h(a)e(subset)f(of)h\n+(\\010.)40 b(The)29 b Fo(alpha)e Fp(parameter)j(is)f(used)f(in)h(the)g\n+(cost)h(function)e(ev)-5 b(aluation)227 670 y(for)33\n b(the)f(partition,)i(cost)q(\\([)p Fl(S;)15 b(B)5 b(;)15\n b(W)e Fp(]\\))30 b(=)f Fi(j)p Fl(S)5 b Fi(j)1776 551 y\n Fh(\\022)1838 670 y Fp(1)20 b(+)g Fl(\\013)2062 608 y Fp(max)q\n Fi(fj)p Fl(B)5 b Fi(j)p Fl(;)15 b Fi(j)p Fl(W)e Fi(jg)p\n 2062 649 574 4 v 2071 732 a Fp(min)p Fi(fj)p Fl(B)5 b\n Fi(j)p Fl(;)15 b Fi(j)p Fl(W)e Fi(jg)2646 551 y Fh(\\023)2707\n 670 y Fp(.)48 b(The)32 b Fo(seed)f Fp(parameter)i(is)g(used)227\n@@ -6142,17 +6129,17 @@\n Fp(\\))p Fi(g)969 5407 y Fl(Y)1022 5421 y Fk(3)1144 5407\n y Fp(=)83 b Fi(f)p Fl(y)28 b Fi(2)d Fl(Y)50 b Fi(j)31\n b Fl(y)d Fi(2)d Fl(Ad)-10 b(j)5 b Fp(\\()p Fl(B)26 b Fi(n)21\n b Fl(Y)f Fp(\\))30 b(and)g Fl(y)e Fi(2)d Fl(Ad)-10 b(j)5\n b Fp(\\()p Fl(W)34 b Fi(n)21 b Fl(Y)f Fp(\\))p Fi(g)p eop\n end\n %%Page: 8 8\n-TeXDict begin 8 7 bop 0 100 a Fp(8)p 136 100 1146 4 v\n-1328 w Fo(GPart)29 b Fg(:)40 b Fm(DRAFT)31 b Fg(August)f(3,)h(2025)p\n-2754 100 V 227 399 a Fp(The)e Fo(YVmapIV)e Fp(ob)5 b(ject)30\n+TeXDict begin 8 7 bop 0 100 a Fp(8)p 136 100 1204 4 v\n+1385 w Fo(GPart)29 b Fg(:)41 b Fm(DRAFT)30 b Fg(July)g(1,)h(2024)p\n+2697 100 V 227 399 a Fp(The)e Fo(YVmapIV)e Fp(ob)5 b(ject)30\n b(con)m(tains)g(the)g(list)f(of)h(v)m(ertices)g(in)f(the)g(wide)g\n (separator)h Fl(Y)20 b Fp(.)40 b(The)29 b Fo(IV)f Fp(ob)5\n b(ject)30 b(that)227 511 y(is)i(returned,)g(\\(called)h\n Fo(YCmapIV)d Fp(in)i(the)g(calling)i(metho)s(d\\))e(con)m(tains)h(the)f\n (subscripts)f(of)h(the)g Fl(Y)3561 525 y Fk(0)3600 511\n y Fp(,)h Fl(Y)3711 525 y Fk(1)3750 511 y Fp(,)g Fl(Y)3861\n 525 y Fk(2)227 624 y Fp(or)e Fl(Y)392 638 y Fk(3)461\n@@ -6263,17 +6250,17 @@\n 5135 29 4 v 33 w(smoothYSep\\(\\))p Fp(.)227 5294 y Fm(Err)-5\n b(or)40 b(che)-5 b(cking:)52 b Fp(If)36 b Fo(gpart)e\n Fp(is)j Fo(NULL)p Fp(,)e(or)h(if)h Fo(nlevel)c Fl(<)i\n Fp(0,)j(or)f(if)f Fo(alpha)e Fl(<)g Fp(0)p Fl(:)p Fp(0,)39\n b(an)e(error)e(message)j(is)227 5407 y(prin)m(ted)30\n b(and)g(the)h(program)f(exits.)p eop end\n %%Page: 9 9\n-TeXDict begin 9 8 bop 91 100 1146 4 v 1327 100 a Fo(GPart)29\n-b Fg(:)41 b Fm(DRAFT)121 b Fg(August)30 b(3,)h(2025)p\n-2707 100 V 1146 w Fp(9)0 399 y Fb(1.2.7)112 b(Recursiv)m(e)38\n+TeXDict begin 9 8 bop 91 100 1204 4 v 1385 100 a Fo(GPart)29\n+b Fg(:)41 b Fm(DRAFT)121 b Fg(July)30 b(1,)h(2024)p 2650\n+100 V 1204 w Fp(9)0 399 y Fb(1.2.7)112 b(Recursiv)m(e)38\n b(Bisection)f(metho)s(d)0 589 y Fp(There)30 b(is)g(presen)m(tly)h(one)g\n (metho)s(d)e(to)j(construct)e(the)h(domain/separator)g(tree.)111\n 787 y(1.)46 b Fo(DSTree)g(*)i(GPart_RBviaDDsep)43 b(\\()48\n b(GPart)e(*gpart,)g(DDsepInfo)f(*info)h(\\))i(;)227 932\n y Fp(This)c(metho)s(d)f(p)s(erforms)f(a)j(recursiv)m(e)f(bisection)h\n (of)f(the)h(graph)e(using)h(the)g Fo(DDSEP)e Fp(algorithm)k(and)227\n 1045 y(returns)25 b(a)h Fo(DSTree)e Fp(ob)5 b(ject)27\n@@ -6336,17 +6323,17 @@\n (whether)e Fo(info)f Fp(is)i Fo(NULL)p Fp(.)f Fo(DDsepInfo)p\n 2663 5150 V 32 w(setDefaultFields\\(\\))c Fp(is)32 b(called)227\n 5263 y(to)f(set)g(the)g(default)f(v)-5 b(alues.)227 5407\n y Fm(Err)g(or)34 b(che)-5 b(cking:)40 b Fp(If)30 b Fo(info)g\n Fp(is)g Fo(NULL)p Fp(,)f(an)i(error)f(message)h(is)g(prin)m(ted)f(and)f\n (the)i(program)f(exits.)p eop end\n %%Page: 10 10\n-TeXDict begin 10 9 bop 0 100 a Fp(10)p 182 100 1123 4\n-v 1306 w Fo(GPart)28 b Fg(:)41 b Fm(DRAFT)30 b Fg(August)g(3,)h(2025)p\n-2777 100 V 111 399 a Fp(4.)46 b Fo(void)h(DDsepInfo_free)d(\\()j\n+TeXDict begin 10 9 bop 0 100 a Fp(10)p 182 100 1181 4\n+v 1363 w Fo(GPart)29 b Fg(:)41 b Fm(DRAFT)30 b Fg(July)g(1,)h(2024)p\n+2720 100 V 111 399 a Fp(4.)46 b Fo(void)h(DDsepInfo_free)d(\\()j\n (DDsepInfo)f(*info)g(\\))h(;)227 545 y Fp(This)33 b(metho)s(d)g(c)m(hec)\n m(ks)h(to)g(see)g(whether)f Fo(info)f Fp(is)h Fo(NULL)p\n Fp(.)g(If)g(so,)h(an)f(error)g(message)i(is)e(prin)m(ted)g(and)g(the)\n 227 658 y(program)f(exits.)46 b(Otherwise,)32 b(it)g(releases)h(an)m(y)\n g(storage)g(b)m(y)f(a)g(call)h(to)g Fo(DDsepInfo)p 3141\n 658 29 4 v 31 w(clearData\\(\\))c Fp(then)227 771 y(free's)i(the)f\n (storage)i(for)e(the)h(structure)f(with)g(a)h(call)g(to)h\n@@ -6399,19 +6386,19 @@\n y Fn(\\210)45 b Fp(The)29 b Fo(freeze)e Fp(parameter)j(is)f(used)f(to)i\n (place)g(no)s(des)e(of)h(high)g(degree)h(in)m(to)g(the)f(m)m\n (ultisector.)42 b(If)29 b(the)427 5294 y(external)34\n b(degree)f(of)g(a)g(v)m(ertex)h(is)f Fo(freeze)d Fp(times)k(the)f(a)m\n (v)m(erage)i(degree,)f(then)e(it)i(is)e(placed)h(in)g(the)427\n 5407 y(m)m(ultisector.)p eop end\n %%Page: 11 11\n-TeXDict begin 11 10 bop 91 100 1123 4 v 1305 100 a Fo(GPart)29\n-b Fg(:)40 b Fm(DRAFT)121 b Fg(August)30 b(3,)h(2025)p\n-2684 100 V 1123 w Fp(11)337 399 y Fn(\\210)45 b Fp(The)30\n-b Fm(tar)-5 b(get)32 b Fp(minim)m(um)d(w)m(eigh)m(t)j(for)e(a)h(domain)\n-f(is)h Fo(minweight)p Fp(.)337 551 y Fn(\\210)45 b Fp(The)30\n+TeXDict begin 11 10 bop 91 100 1181 4 v 1362 100 a Fo(GPart)29\n+b Fg(:)41 b Fm(DRAFT)121 b Fg(July)30 b(1,)h(2024)p 2627\n+100 V 1181 w Fp(11)337 399 y Fn(\\210)45 b Fp(The)30 b\n+Fm(tar)-5 b(get)32 b Fp(minim)m(um)d(w)m(eigh)m(t)j(for)e(a)h(domain)f\n+(is)h Fo(minweight)p Fp(.)337 551 y Fn(\\210)45 b Fp(The)30\n b Fm(tar)-5 b(get)32 b Fp(maxim)m(um)e(w)m(eigh)m(t)i(for)e(a)h(domain)\n f(is)g Fo(maxweight)p Fp(.)337 703 y Fn(\\210)45 b Fp(The)30\n b Fo(seed)f Fp(parameter)i(is)g(a)f(random)g(n)m(um)m(b)s(er)f(seed.)\n 337 856 y Fn(\\210)45 b Fp(The)39 b Fo(outIVfile)d Fp(parameter)k(is)f\n (the)g(output)f(\\014le)h(for)g(the)g Fo(IV)g Fp(ob)5\n b(ject)39 b(that)h(con)m(tains)g(the)f(map)427 969 y(from)25\n b(v)m(ertices)j(to)e(comp)s(onen)m(ts.)39 b(If)25 b Fo(outIVfile)e\n@@ -6478,17 +6465,17 @@\n 5181 y Fn(\\210)45 b Fp(The)37 b Fo(msgFile)e Fp(parameter)j(determines)\n f(the)g(output)g(\\014le)g(|)g(if)g Fo(msgFile)e Fp(is)j\n Fo(stdout)p Fp(,)f(then)g(the)427 5294 y(output)29 b(\\014le)h(is)f\n Fm(stdout)p Fp(,)i(otherwise)f(a)f(\\014le)h(is)f(op)s(ened)g(with)g\n Fm(app)-5 b(end)31 b Fp(status)e(to)i(receiv)m(e)g(an)m(y)e(output)427\n 5407 y(data.)p eop end\n %%Page: 12 12\n-TeXDict begin 12 11 bop 0 100 a Fp(12)p 182 100 1123\n-4 v 1306 w Fo(GPart)28 b Fg(:)41 b Fm(DRAFT)30 b Fg(August)g(3,)h(2025)\n-p 2777 100 V 337 399 a Fn(\\210)45 b Fp(The)23 b Fo(inGraphFile)d\n+TeXDict begin 12 11 bop 0 100 a Fp(12)p 182 100 1181\n+4 v 1363 w Fo(GPart)29 b Fg(:)41 b Fm(DRAFT)30 b Fg(July)g(1,)h(2024)p\n+2720 100 V 337 399 a Fn(\\210)45 b Fp(The)23 b Fo(inGraphFile)d\n Fp(parameter)k(is)f(the)h(input)e(\\014le)i(for)f(the)g\n Fo(Graph)f Fp(ob)5 b(ject.)39 b(It)24 b(m)m(ust)f(b)s(e)f(of)i(the)f\n (form)427 511 y Fo(*.graphf)18 b Fp(or)j Fo(*.graphb)p\n Fp(.)35 b(The)19 b Fo(Graph)g Fp(ob)5 b(ject)21 b(is)g(read)f(from)g\n (the)g(\\014le)h(via)f(the)h Fo(Graph)p 3368 511 29 4\n v 33 w(readFromFile\\(\\))427 624 y Fp(metho)s(d.)337 770\n y Fn(\\210)45 b Fp(The)31 b Fo(inIVfile)d Fp(parameter)k(is)f(the)g\n@@ -6559,31 +6546,30 @@\n y Fn(\\210)45 b Fp(The)30 b Fo(alpha)f Fp(parameter)i(con)m(trols)h(the)\n e(partition)h(ev)-5 b(aluation)32 b(function.)337 5294\n y Fn(\\210)45 b Fp(The)i Fo(maxdomweight)e Fp(parameter)j(con)m(trols)g\n (the)g(recursiv)m(e)g(bisection)h(|)e(no)g(subgraph)f(with)427\n 5407 y(w)m(eigh)m(t)32 b(less)f(than)f Fo(maxdomweight)d\n Fp(is)j(further)f(split.)p eop end\n %%Page: 13 13\n-TeXDict begin 13 12 bop 91 100 1123 4 v 1305 100 a Fo(GPart)29\n-b Fg(:)40 b Fm(DRAFT)121 b Fg(August)30 b(3,)h(2025)p\n-2684 100 V 1123 w Fp(13)337 399 y Fn(\\210)45 b Fp(The)c\n-Fo(DDoption)e Fp(parameter)j(con)m(trols)h(the)f(initial)h\n-(domain/segmen)m(t)g(partition)f(on)f(eac)m(h)i(sub-)427\n-511 y(graph.)60 b(When)37 b Fo(DDDoption)45 b(=)j(1)37\n-b Fp(w)m(e)g(use)g(the)g(\\014shnet)f(algorithm)i(for)f(eac)m(h)h\n-(subgraph.)59 b(When)427 624 y Fo(DDDoption)46 b(=)h(1)32\n-b Fp(w)m(e)h(use)f(the)h(\\014shnet)e(algorithm)j(once)f(for)f(the)g(en)\n-m(tire)i(graph)e(and)f(this)i(is)f(then)427 737 y(pro)5\n-b(jected)31 b(do)m(wn)f(on)m(to)h(eac)m(h)h(subgraph.)337\n-888 y Fn(\\210)45 b Fp(The)27 b Fo(nlayer)f Fp(parameter)h(go)m(v)m\n-(erns)i(the)e(smo)s(othing)h(pro)s(cess)e(b)m(y)i(sp)s(ecifying)f(the)g\n-(t)m(yp)s(e)h(of)f(net)m(w)m(ork)427 1001 y(optimization)33\n-b(problem)c(that)i(will)g(b)s(e)f(solv)m(ed.)500 1152\n-y Ff({)45 b Fo(nlayer)h(=)i(1)30 b Fp(|)g(eac)m(h)i(net)m(w)m(ork)f\n-(has)f(t)m(w)m(o)i(la)m(y)m(ers)f(and)f(is)h(bipartite.)500\n+TeXDict begin 13 12 bop 91 100 1181 4 v 1362 100 a Fo(GPart)29\n+b Fg(:)41 b Fm(DRAFT)121 b Fg(July)30 b(1,)h(2024)p 2627\n+100 V 1181 w Fp(13)337 399 y Fn(\\210)45 b Fp(The)c Fo(DDoption)e\n+Fp(parameter)j(con)m(trols)h(the)f(initial)h(domain/segmen)m(t)g\n+(partition)f(on)f(eac)m(h)i(sub-)427 511 y(graph.)60\n+b(When)37 b Fo(DDDoption)45 b(=)j(1)37 b Fp(w)m(e)g(use)g(the)g\n+(\\014shnet)f(algorithm)i(for)f(eac)m(h)h(subgraph.)59\n+b(When)427 624 y Fo(DDDoption)46 b(=)h(1)32 b Fp(w)m(e)h(use)f(the)h\n+(\\014shnet)e(algorithm)j(once)f(for)f(the)g(en)m(tire)i(graph)e(and)f\n+(this)i(is)f(then)427 737 y(pro)5 b(jected)31 b(do)m(wn)f(on)m(to)h\n+(eac)m(h)h(subgraph.)337 888 y Fn(\\210)45 b Fp(The)27\n+b Fo(nlayer)f Fp(parameter)h(go)m(v)m(erns)i(the)e(smo)s(othing)h(pro)s\n+(cess)e(b)m(y)i(sp)s(ecifying)f(the)g(t)m(yp)s(e)h(of)f(net)m(w)m(ork)\n+427 1001 y(optimization)33 b(problem)c(that)i(will)g(b)s(e)f(solv)m\n+(ed.)500 1152 y Ff({)45 b Fo(nlayer)h(=)i(1)30 b Fp(|)g(eac)m(h)i(net)m\n+(w)m(ork)f(has)f(t)m(w)m(o)i(la)m(y)m(ers)f(and)f(is)h(bipartite.)500\n 1283 y Ff({)45 b Fo(nlayer)h(=)i(2)30 b Fp(|)g(eac)m(h)i(net)m(w)m(ork)\n f(has)f(t)m(w)m(o)i(la)m(y)m(ers)f(but)f(need)g(not)h(b)s(e)f\n (bipartite.)500 1415 y Ff({)45 b Fo(nlayer)h(>)i(2)30\n b Fp(|)g(eac)m(h)i(net)m(w)m(ork)f(has)f Fo(option/2)e\n Fp(la)m(y)m(ers)k(on)e(eac)m(h)i(side)e(of)h(the)f(separator.)111\n 1639 y(5.)46 b Fo(mkDSTree)g(msglvl)g(msgFile)g(inGraphFile)e(seed)j\n (minweight)e(maxweight)657 1752 y(freeze)h(alpha)g(maxdomweight)f\n@@ -6639,17 +6625,17 @@\n 5275 y Ff({)45 b Fo(nlayer)h(=)i(2)30 b Fp(|)g(eac)m(h)i(net)m(w)m(ork)\n f(has)f(t)m(w)m(o)i(la)m(y)m(ers)f(but)f(need)g(not)h(b)s(e)f\n (bipartite.)500 5407 y Ff({)45 b Fo(nlayer)h(>)i(2)30\n b Fp(|)g(eac)m(h)i(net)m(w)m(ork)f(has)f Fo(option/2)e\n Fp(la)m(y)m(ers)k(on)e(eac)m(h)i(side)e(of)h(the)f(separator.)p\n eop end\n %%Page: 14 14\n-TeXDict begin 14 13 bop 0 100 a Fp(14)p 182 100 1123\n-4 v 1306 w Fo(GPart)28 b Fg(:)41 b Fm(DRAFT)30 b Fg(August)g(3,)h(2025)\n-p 2777 100 V 337 399 a Fn(\\210)45 b Fp(The)34 b Fo(outDSTreeFile)d\n+TeXDict begin 14 13 bop 0 100 a Fp(14)p 182 100 1181\n+4 v 1363 w Fo(GPart)29 b Fg(:)41 b Fm(DRAFT)30 b Fg(July)g(1,)h(2024)p\n+2720 100 V 337 399 a Fn(\\210)45 b Fp(The)34 b Fo(outDSTreeFile)d\n Fp(parameter)k(is)f(the)h(output)f(\\014le)g(for)g(the)h\n Fo(DSTree)e Fp(ob)5 b(ject.)53 b(It)35 b(m)m(ust)f(b)s(e)g(of)427\n 511 y(the)29 b(form)f Fo(*.dstreef)e Fp(or)j Fo(*.dstreeb)p\n Fp(.)37 b(If)29 b Fo(outDSTreeFile)24 b Fp(is)29 b(not)g\n Fo(\"none\")p Fp(,)e(the)i Fo(DSTree)e Fp(ob)5 b(ject)427\n 624 y(is)31 b(written)f(to)h(the)g(\\014le)f(via)h(the)g\n Fo(DSTree)p 1851 624 29 4 v 33 w(writeToFile\\(\\))26 b\n", "details": [{"source1": "ps2ascii {}", "source2": "ps2ascii {}", "unified_diff": "@@ -30,15 +30,15 @@\n condensed into the source while the nodes in W \\Y are condensed into the sink. The rest of\r\n the network is formed using the structure of the subgraph induced by Y. Given a min-cut of\r\n b\r\n the network we can identify a separator S \u2286 Y that has minimal weight. We examine two\r\n (possibly) di\ufb00erent min-cuts and evaluate the partitions induced via their minimal weight\r\n separators, and accept a better partition if present.\r\n 1\r\n- 2 GPart : DRAFT August 3, 2025\r\n+ 2 GPart : DRAFT July 1, 2024\r\n This process we call DDSEP, which is short for Domain Decomposition SEParator, explained in more\r\n detail in [?] and [?].\r\n 1.1 Data Structures\r\n The GPart structure has a pointer to a Graph object and other \ufb01elds that contain information\r\n about the partition of the graph.\r\n The following \ufb01elds are always active.\r\n \u2022 Graph *graph : pointer to the Graph object\r\n@@ -61,15 +61,15 @@\n \u2022 GPart *sib : pointer to a sibling GPart object\r\n \u2022 IV vtxMapIV : an IV object of size nvtx + nvbnd, contains a map from the vertices of the\r\n graph to either the vertices of its parent or to the vertices of the root graph\r\n The DDsepInfo helper-object is used during the DDSEP recursive bisection process. It contains\r\n input parameters for the di\ufb00erent stages of the DDSEP algorithm, and collects statistics about the\r\n CPUtime spent in each stage.\r\n \u2022 These parameters are used to generate the domain decomposition.\r\n- GPart : DRAFT August 3, 2025 3\r\n+ GPart : DRAFT July 1, 2024 3\r\n \u2013 int minweight: minimum target weight for a domain\r\n \u2013 int maxweight: maximum target weight for a domain\r\n \u2013 double freeze: multiplier used to freeze vertices of high degree into the multisector.\r\n If the degree of v is more than freeze times the median degree, v is placed into the\r\n multisector.\r\n \u2013 int seed: random number seed\r\n \u2013 int DDoption: If 1, a new domain decomposition is constructed for each subgraph. If\r\n@@ -98,15 +98,15 @@\n \u2013 int ntreeobj: number of tree objects in the tree, used to set gpart->id and used to\r\n initialize the DSTree object.\r\n \u2013 int msglvl : message level\r\n \u2013 FILE *msgFile : message \ufb01le pointer\r\n 1.2 Prototypes and descriptions of GPart methods\r\n This section contains brief descriptions including prototypes of all methods that belong to the\r\n GPart object. There are no IO methods.\r\n- 4 GPart : DRAFT August 3, 2025\r\n+ 4 GPart : DRAFT July 1, 2024\r\n 1.2.1 Basic methods\r\n As usual, there are four basic methods to support object creation, setting default \ufb01elds, clearing\r\n any allocated data, and free\u2019ing the object.\r\n 1. GPart * GPart_new ( void ) ;\r\n This method simply allocates storage for the GPart structure and then sets the default \ufb01elds\r\n by a call to GPart setDefaultFields().\r\n 2. void GPart_setDefaultFields ( GPart *gpart ) ;\r\n@@ -132,15 +132,15 @@\n compidsIV and cweightsIV IV objects are initialized. The remaining \ufb01elds are not changed\r\n from their default values.\r\n Error checking: If gpart or g is NULL, or if g->nvtx \u2264 0, an error message is printed and the\r\n program exits.\r\n 2. void GPart_setMessageInfo ( GPart *gpart, int msglvl, FILE *msgFile ) ;\r\n This method sets the msglvl and msgFile \ufb01elds.\r\n Error checking: If gpart is NULL, an error message is printed and the program exits.\r\n- GPart : DRAFT August 3, 2025 5\r\n+ GPart : DRAFT July 1, 2024 5\r\n 1.2.3 Utility methods\r\n 1. void GPart_setCweights ( GPart *gpart ) ;\r\n This method sets the component weights vector cweightsIV. We assume that the compidsIV\r\n vector has been set prior to entering this method. The weight of a component is not simply\r\n the sum of the weights of the vertices with that component\u2019s id. We accept the separator or\r\n multisector vertices (those v with compids[v] == 0) but then \ufb01nd the connected components\r\n of the remaining vertices, renumbering the compidsIV vector where necessary. Thus, ncomp\r\n@@ -171,15 +171,15 @@\n This method determines whether the vertex v is adjacent to just one domain or not. We use\r\n this method to make a separator or multisector minimal. If the vertex is adjacent to only one\r\n domain, the return value is 1 and *pdomid is set to the domain\u2019s id. If a vertex is adjacent\r\n to zero or two or more domains, the return value is zero. If a vertex belongs to a domain, it\r\n is considered adjacent to that domain.\r\n Error checking: If gpart, g or domid is NULL, or if v is out of range (i.e., v < 0 or nvtx \u2264 v),\r\n an error message is printed and the program exits.\r\n- 6 GPart : DRAFT August 3, 2025\r\n+ 6 GPart : DRAFT July 1, 2024\r\n 6. IV * GPart_bndWeightsIV ( GPart *gpart ) ;\r\n This method returns an IV object that contains the weights of the vertices on the boundaries\r\n of the components.\r\n Error checking: If gpart or g is NULL, an error message is printed and the program exits.\r\n 1.2.4 Domain decomposition methods\r\n There are presently two methods that create a domain decomposition of a graph or a subgraph.\r\n 1. void GPart_DDviaFishnet ( GPart *gpart, double frac, int minweight,\r\n@@ -209,15 +209,15 @@\n double cpus[] ) ;\r\n This method takes a domain decomposition {\u03a6,\u2126 ,...,\u2126 } de\ufb01ned by the compidsIV vector\r\n 1 m\r\n and generates a two set partition [S,B,W]. We \ufb01rst compute the map from vertices to\r\n domains and segments (the segments partition the interface nodes \u03a6). We then construct the\r\n bipartite graph that represents the connectivity of the domains and segments. Each segment\r\n is an \u201cedge\u201d that connects two \u201cadjacent\u201d domains. This allows us to use a variant of the\r\n- GPart : DRAFT August 3, 2025 7\r\n+ GPart : DRAFT July 1, 2024 7\r\n Kernighan-Lin algorithm to \ufb01nd an \u201cedge\u201d separator formed of segments, which is really a\r\n vertex separator, a subset of \u03a6. The alpha parameter is used in the cost function evaluation\r\n for the partition, cost([S,B,W]) = |S|\u00121+\u03b1max{|B|,|W|}\u0013. The seed parameter is used\r\n min{|B|,|W|}\r\n to randomize the algorithm. One can make several runswith di\ufb00erent seeds and chose the best\r\n partition. The cpus[] array is used to store execution times for segments of the algorithm:\r\n cpus[0] stores the time to compute the domain/segment map; cpus[2] stores the time to\r\n@@ -253,15 +253,15 @@\n 0\r\n Y = {y\u2208Y | y\u2208Adj(B\\Y) and y \u2208/ Adj(W \\Y)}\r\n 1\r\n Y = {y\u2208Y | y\u2208/ Adj(B \\Y) and y \u2208 Adj(W \\Y)}\r\n 2\r\n Y = {y\u2208Y | y\u2208Adj(B\\Y) and y \u2208Adj(W \\Y)}\r\n 3\r\n- 8 GPart : DRAFT August 3, 2025\r\n+ 8 GPart : DRAFT July 1, 2024\r\n The YVmapIV object contains the list of vertices in the wide separator Y . The IV object that\r\n is returned, (called YCmapIV in the calling method) contains the subscripts of the Y , Y , Y\r\n 0 1 2\r\n or Y sets that contains each vertex.\r\n 3\r\n Error checking: If gpart, g or YVmapIV is NULL, or if nvtx \u2264 0, or if YVmapIV is empty, an\r\n error message is printed and the program exits.\r\n@@ -303,15 +303,15 @@\n improves it (if possible). The methods returns the cost of a (possibly) new two-set partition\r\n b b c\r\n [S,B,W] de\ufb01ned by the compidsIV vector. The wide separator Y that is constructed is\r\n centered around S, i.e., Y includes all nodes in B and W that are nlayer distance or less\r\n from S. This method calls GPart smoothYSep().\r\n Error checking: If gpart is NULL, or if nlevel < 0, or if alpha < 0.0, an error message is\r\n printed and the program exits.\r\n- GPart : DRAFT August 3, 2025 9\r\n+ GPart : DRAFT July 1, 2024 9\r\n 1.2.7 Recursive Bisection method\r\n There is presently one method to construct the domain/separator tree.\r\n 1. DSTree * GPart_RBviaDDsep ( GPart *gpart, DDsepInfo *info ) ;\r\n This method performs a recursive bisection of the graph using the DDSEP algorithm and\r\n returns a DSTree object that represents the domain/separator tree and the map from vertices\r\n to domains and separators. The DDsepInfo structure contains all the parameters to the\r\n di\ufb00erent steps of the DDSEP algorithm (the \ufb01shnet method to \ufb01nd the domain decomposition,\r\n@@ -341,15 +341,15 @@\n info->DDoption = 1 ; info->msglvl = 0 ;\r\n info->nlayer = 3 ; info->msgFile = stdout ;\r\n Error checking: If info is NULL, an error message is printed and the program exits.\r\n 3. void DDsepInfo_clearData ( DDsepInfo *info ) ;\r\n This method checks to see whether info is NULL. DDsepInfo setDefaultFields() is called\r\n to set the default values.\r\n Error checking: If info is NULL, an error message is printed and the program exits.\r\n- 10 GPart : DRAFT August 3, 2025\r\n+ 10 GPart : DRAFT July 1, 2024\r\n 4. void DDsepInfo_free ( DDsepInfo *info ) ;\r\n This method checks to see whether info is NULL. If so, an error message is printed and the\r\n program exits. Otherwise, it releases any storage by a call to DDsepInfo clearData() then\r\n free\u2019s the storage for the structure with a call to free().\r\n Error checking: If info is NULL, an error message is printed and the program exits.\r\n 5. void DDsepInfo_writeCpuTimes ( DDsepInfo *info, FILE *msgFile ) ;\r\n This method writes a breakdown of the CPU times in a meaningful format. Here is sample\r\n@@ -379,15 +379,15 @@\n data.\r\n \u2022 TheinGraphFileparameteristheinput\ufb01lefortheGraphobject. It mustbeof theform\r\n *.graphfor*.graphb. TheGraphobjectisreadfromthe\ufb01leviatheGraph readFromFile()\r\n method.\r\n \u2022 The freeze parameter is used to place nodes of high degree into the multisector. If the\r\n external degree of a vertex is freeze times the average degree, then it is placed in the\r\n multisector.\r\n- GPart : DRAFT August 3, 2025 11\r\n+ GPart : DRAFT July 1, 2024 11\r\n \u2022 The target minimum weight for a domain is minweight.\r\n \u2022 The target maximum weight for a domain is maxweight.\r\n \u2022 The seed parameter is a random number seed.\r\n \u2022 The outIVfile parameter is the output \ufb01le for the IV object that contains the map\r\n from vertices to components. If outIVfile is \"none\", then there is no output, otherwise\r\n outIVfile must be of the form *.ivf or *.ivb.\r\n 2. testTwoSetViaBKL msglvl msgFile inGraphFile inIVfile\r\n@@ -417,15 +417,15 @@\n problems. It reads in a Graph object and an IV object that holds the map from vertices to\r\n components (e.g., the output from the driver program testTwoSetViaBKL) from two \ufb01les,\r\n smooths the separator and then optionally writes out the new component ids map to a \ufb01le.\r\n \u2022 The msglvl parameter determines the amount of output.\r\n \u2022 The msgFile parameter determines the output \ufb01le \u2014 if msgFile is stdout, then the\r\n output \ufb01le is stdout, otherwise a \ufb01le is opened with append status to receive any output\r\n data.\r\n- 12 GPart : DRAFT August 3, 2025\r\n+ 12 GPart : DRAFT July 1, 2024\r\n \u2022 TheinGraphFileparameteristheinput\ufb01lefortheGraphobject. It mustbeof theform\r\n *.graphfor*.graphb. TheGraphobjectisreadfromthe\ufb01leviatheGraph readFromFile()\r\n method.\r\n \u2022 The inIVfile parameter is the input \ufb01le for the IV object that contains the map from\r\n vertices to domains and multisector. It inIVfile must be of the form *.ivf or *.ivb.\r\n \u2022 The option parameter speci\ufb01es the type of network optimization problem that will be\r\n solved.\r\n@@ -457,15 +457,15 @@\n \u2022 The target maximum weight for a domain is maxweight.\r\n \u2022 The freeze parameter is used to place nodes of high degree into the multisector. If the\r\n external degree of a vertex is freeze times the average degree, then it is placed in the\r\n multisector.\r\n \u2022 The alpha parameter controls the partition evaluation function.\r\n \u2022 The maxdomweight parameter controls the recursive bisection \u2014 no subgraph with\r\n weight less than maxdomweight is further split.\r\n- GPart : DRAFT August 3, 2025 13\r\n+ GPart : DRAFT July 1, 2024 13\r\n \u2022 The DDoption parameter controls the initial domain/segment partition on each sub-\r\n graph. When DDDoption = 1 we use the \ufb01shnet algorithm for each subgraph. When\r\n DDDoption = 1 we use the \ufb01shnet algorithm once for the entire graph and this is then\r\n projected down onto each subgraph.\r\n \u2022 The nlayer parameter governs the smoothing process by specifying the type of network\r\n optimization problem that will be solved.\r\n \u2013 nlayer = 1 \u2014 each network has two layers and is bipartite.\r\n@@ -496,15 +496,15 @@\n DDDoption = 1 we use the \ufb01shnet algorithm once for the entire graph and this is then\r\n projected down onto each subgraph.\r\n \u2022 The nlayer parameter governs the smoothing process by specifying the type of network\r\n optimization problem that will be solved.\r\n \u2013 nlayer = 1 \u2014 each network has two layers and is bipartite.\r\n \u2013 nlayer = 2 \u2014 each network has two layers but need not be bipartite.\r\n \u2013 nlayer > 2 \u2014 each network has option/2 layers on each side of the separator.\r\n- 14 GPart : DRAFT August 3, 2025\r\n+ 14 GPart : DRAFT July 1, 2024\r\n \u2022 The outDSTreeFile parameter is the output \ufb01le for the DSTree object. It must be of\r\n the form *.dstreef or *.dstreeb. If outDSTreeFile is not \"none\", the DSTree object\r\n is written to the \ufb01le via the DSTree writeToFile() method.\r\n Index\r\n DDsepInfo clearData(), 9\r\n DDsepInfo free(), 10\r\n DDsepInfo new(), 9\r\n"}]}]}, {"source1": "./usr/share/doc/spooles-doc/Graph.ps.gz", "source2": "./usr/share/doc/spooles-doc/Graph.ps.gz", "unified_diff": null, "details": [{"source1": "Graph.ps", "source2": "Graph.ps", "unified_diff": "@@ -11,15 +11,15 @@\n %%EndComments\n %%BeginDefaults\n %%ViewingOrientation: 1 0 0 1\n %%EndDefaults\n %DVIPSWebPage: (www.radicaleye.com)\n %DVIPSCommandLine: dvips main -o Graph.ps\n %DVIPSParameters: dpi=600\n-%DVIPSSource: TeX output 2025.08.03:1317\n+%DVIPSSource: TeX output 2024.07.01:0700\n %%BeginProcSet: tex.pro 0 0\n %!\n /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S\n N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72\n mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0\n 0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{\n landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize\n@@ -1202,23 +1202,22 @@\n /UnderlinePosition -100 def\n /UnderlineThickness 50 def\n end readonly def\n /Encoding 256 array\n 0 1 255 {1 index exch /.notdef put} for\n dup 44 /comma put\n dup 48 /zero put\n+dup 49 /one put\n dup 50 /two put\n-dup 51 /three put\n-dup 53 /five put\n+dup 52 /four put\n dup 58 /colon put\n-dup 65 /A put\n-dup 103 /g put\n-dup 115 /s put\n-dup 116 /t put\n+dup 74 /J put\n+dup 108 /l put\n dup 117 /u put\n+dup 121 /y put\n readonly def\n currentdict end\n currentfile eexec\n D9D66F633B846AB284BCF8B0411B772DE5CE32340DC6F28AF40857E4451976E7\n 5182433CF9F333A38BD841C0D4E68BF9E012EB32A8FFB76B5816306B5EDF7C99\n 8B3A16D9B4BC056662E32C7CD0123DFAEB734C7532E64BBFBF5A60336E646716\n EFB852C877F440D329172C71F1E5D59CE9473C26B8AEF7AD68EF0727B6EC2E0C\n@@ -1399,79 +1398,67 @@\n 7CA1534C4D5B05FC33F83790ECFD7641DF3FB94289E2A1F6E7D29AB1228A867A\n 6E1EF0E9C6F899B491DC18401C2C0A05FFFED46A72C245F7529B8EA55A038082\n 8512307217D2A233C37004085BA3AEE379269F9FA7D0ADB4B19A95CC2AFE686E\n 55D88E47257C1FE6F235FEA295910569FE6DD5995512562359CC821E85A6C7A5\n 79B470A9E340A6985189FF8B6AF914A6B0ECF93F47903221F95DE894A8F05B05\n B7D99CD533EC5F931B18E6B39BECF67FA2D6DD1AEC76772B068BE06335A94C05\n 7A4DDEE77B66101DA855C17AC312600370B34E31F5EC3A01300A8EB60B4C9767\n-1B2FA10DF7E91D3BB34A1B1CE7A0015A57C813E0280D873ADB88440048702D1F\n-77994EE04EC3B4531D6E1888C86A8F0DA6CF1F056F16AB0DD76C862830F89DA4\n-28923B3AA543E0D6E41D3BD283E600BC11F889315EE92C675C109C81065ED1BC\n-82A5583D1B723D50051B0557A367887F5B263014C6E77288B4883C50889473D3\n-3787BAD4BEB88BD1353AFA5B73E61814819537E7FF09F53EF94792BB3DD36ED0\n-002D0E7A6CDAB85A9C17AF5664BCB5A71663B861880F3ECCABC8E7A2FC81A4CC\n-AE7A87503FDC1CE0077BA51ECC7B43B60793FED8E9AAD5BBD03ADD6183DCD26D\n-24A74163611C05562437644EF9B8889FD4F9D311911204FEFD35237486F2D2D0\n-B6783A03BF12EA6D19D6D0F87E4D08515F12F9CBF1961CAA71E0D69FE3C4C4D2\n-7C7FB64ED24F8684C8F00C2BEDEA53EA390CDC0B5BEBD7DD982580B2EA1F1F89\n-CFED5916630DC2BA32BB9180277E1ABC339B3B7DE086717BD93F7FF3681BA5B3\n-FCF671C4B293C2DE4A322F0AA3323A4934444C69F23EF90120B8755482757759\n-C457A435FB8BB4922BD92C5F3D9555D978275C510183E29DFF2FCE4ABBFC18DE\n-76CAD3B486BA12047DD808CD4D521A0FD368E4AE79DE262630983A5D6F0B679D\n-2F005306393C520E1B6987302D029939D94B0178DC55D5264E1FEA468AD4134C\n-8C65B2FBBE8DE8284E8E1F6BFE0B648F44D3DA8E9350D266EDBFD4A7054D9355\n-1E0B185DED37BCF32D3731358F1D707C94109428BAD3CEA456A2A43553E3D2C2\n-F549189201F3D3F715310E3E8C6A2E9AA5141AA9125D203694C7D875C2DD320F\n-C5BCDFC924F6C04DBC7A97349B45ECD0FBD7D2123ED1D3A9F440B1112BE62779\n-47A4592F9285CBD9635EC9091CEC0AFD7E6B6976974081DB9C0E43165BD8584D\n-6CDF08DED287F0883A9FBD351B3F8706BA1E94C7CA487338269482EB8DC1A05D\n-F6632A5D834DE29228C49C5BA65EF7C535A53B380BF4B391F43562147538EE97\n-E799DFC2C40315859F56BBCE9CAE1DF9293F6E2C193ABE7A724EC8F32FA220E7\n-6026877A63E318254F2AF7B1325D63FC4C52B536D3EF354814C2F8F1EEA30569\n-6EF04447DB0F809DF35B4985B9FB4F4BB6087310BE633E76F268B32ABA99CE8E\n-03163DFF4AEDB88E60DD0848C15E90026D7C24D81122EBC07113F9851914A9D5\n-D0E09C2BFDDAF10C5D8208E8329BC0C402F231CD84C95EFDD182AD9756662110\n-274650C7A5BB0D8EFA54EC6C5A49C0EB26701A54779AE8EFBBED824262761602\n-680EDFB38F0FE18C0F501F5AA8BF48A8F0DD3E5E1EBEB872F6F6B23964707B32\n-507FC677B9FDDC990E3828B06420F6F968B2F6AE81E76A2144B1ECE905485616\n-CFB29AC96DDE1F5039935D7E385CC13E34DD7EAF276A2EA3A8BF27FD4205AE13\n-7FE620E42F2CF231C6C8DD8EFC5A6CF081E5660D9ADD730D72D15C02B1E15FF3\n-D741D3B1EB1E666C4E562219033C1E2EF3F96E136998B2E1890395A3637A2C02\n-DE1C46AFCA8D898439F06606A2295D3F7ED6C7DB250C61B6B97A0D5EDDB9657E\n-E790B4E07540BB1026036F4A0D00E7F16FD757AD61D686620C6814B7DCEC43E8\n-FD36D9E75BA554F64548A67D9B0A26E11784E58D4357FC251D71B5D6D8BFDDE0\n-D3BF0E825DA5312C1904AF13C5905C2ADF79C357476183D2EC5A95243235E861\n-2F98D9EE77EF8F8CB3EC6BD358C5ED37DD3AF44D60575E7774BF96F1AE9DFAD1\n-F8646DEDF21D10311854726B8F7D25876BB1EF78E2442B16ED4B851816CF0A27\n-11FDFCE525002A1A7C3E62CD2A3EDE6FAADB026D2F3A46C030ADB22422CA8FF5\n-2545ED58C0D9FB5BDB55FE674301E91A75B005B86BD201D246F7ADACE50419FD\n-AC3312CAC5EB78A36F0E5F62E65AC92129CB574AAC59E0A7C1390DFC61F39D9E\n-D7036742F2F6E64D1EF8157E9CCF65F3EEDC6A8220235978B8E06EB80F649F3E\n-204CFB497F49306EA8E1F7B62305978A28F1E771ED82C6592C71022154E4062A\n-A92335EFC65D6DED9C686899FFD7AA2988740618C03C5E362E1AF352E3BE4602\n-5530C51E5FC8E9082DF79199CC91C50174000D337D86127AC807C5A3C81DDE57\n-7A68AEE7230949B925365C214D77C80E87CEE218ABC94023717EA43BA5D8A7C8\n-8A8B9BD1B767996AE33050E3D922ED0574E3579C57E4BDDAD35883806AFDF260\n-3AB5D83D451583262E580FFDB7A27D82396AF18D92B849A3F7A7E621987D5DF0\n-038F876C6E9CA47FB11AF05F0019191C5DDC5F0177AD421E94BC66D0CCB82F1F\n-93A80836284B095503752C600F72E2C89112ABFA5B76152691264103B268B3E5\n-8816724ADADB38740001A9AACE05C8AF02D72918606DC22EFC8BF0DA0FD12FFE\n-D3A09F8E28057F327BFB633E604B1EAD478637B1D9631650B314CC62D7E0E87F\n-9D3FE1FFA23BB6E3006C3E39BED52F6B0C1C651B5913878F36DA0BF776889165\n-68BA3456B40B8B471CA8FF5238E43D9113E052A2B8D2EAA2433D3F89FCA48AFB\n-5E842913E4ED6DF9623354059CD1F1707B126FED80349787C869883120183EDD\n-249185A55503FAC53898F52170D05CAC62BB742CF9702C0518AED6B27CDC401C\n-932E02143FD916703F360CB31049501B35EF3EDDFED791090D0CFA221FD1DB32\n-7D4759CE07983AE29C258C705D11E7D9481EEAAB9B6BA65CDCF0AA0057BD6FEA\n-ABBFBD3ABF2A7BFB550C3D2A16DC447384A89F3DB6D9C2DBDCA997ABE35A7706\n-633D328AECEDB5BD07070C1B96267FD73B45791DD18194F60D358091FBE88409\n-973529806F3D2C9E6E39091F90A14B560A987E0B9490B9B690FB489B8E253070\n-D7C54447BE0E0A0BFEAEFFB581DC1300E6EC382984673BF0665632404E59B5BF\n-5D5F0A1C956E618C0487751CA5DAE8A95C214F76ED756694EF273679CD2D85CB\n-949DF385BD50491649EFEFDA1574921D7460143D42A100D2C76E55F0BC\n+1B2FA10DF7E91D3BB34A1B1CE7A0015A57C813E0280D873ADB8844004B9BA1CC\n+580D3C6BDA4DC1B80B4365F1C80512453FC5316EC2D928FB731C3D6403E3C18B\n+E8424D644DF5E9A2134229C5C91CA68DB8E85BA2BB40F538F585DA6FA4037718\n+B8053EBBA1E765346BCD5BDAA6C38115D31611D8A87A2238C145F2DA2F92E4DF\n+3987BD9C4D2A3D460E8941A68B125BCD9EE4F9FD262C4C8A71F47A2C81975635\n+F1B981C274C53FA2ACCDE4C9D0A7C62D6C1EFF91CFC6712CA6A9F333C9564FCB\n+2A70F0AD715A79B10A08AB069E2A3C93BC0AED19D0CA10134B8DDDE8AF548DB2\n+3A4AAA9C29682CF135BB767DAA16169A127EB50A7EECEB6480CF56A7D0F8AC56\n+4A5090B3D75A790372886AF568D94C8165975A05BFBFDF1FFBA45F70700BB9E0\n+57F3249EF9E9C8AD9CBCF6E4FD592DC4CDD2CC7C0BC3130C1059096C657BE453\n+A2CBACE93420210E27AF56CA229BD6D982FB68B3FDC6D44478B922C4231C47EE\n+E500232F6C11D92DEB955F66DF52B92B22E7352790CC2DCBAC53965D57AC2920\n+68B7D520DE25047146EFEB06B9AD4E2A94243C7E5239F0BC2FC312B16051D52C\n+0B92C217B6B42997321AE4F8BB066754B7AA3F15069EF59224E8A442CE471AA7\n+E8049A3DD9EDA09CCEE4998998661CF7DB35E952F6C65DAEB3013951C59F3E09\n+157F313B0237876E1C0190F0473819570B8C0205AADF05D787CC00979CFB327A\n+289382B22DDA6F12804ED0ED5B179E36A995A2A59E1B66E75130DBE9109C813B\n+94403E0DEA8314A1E9DB474D7FA83C0BAFD08033E6A6215844C1D26BE15F1251\n+A1605E8DF9A9C601ED37379530BC1C82BE5463C6C711C5652BFD6262485AA9CA\n+B8C4A117593001D08D980041E2A83C190DCE8E6CD3D334E5CC19FC05DB30F7F7\n+24A305C4DBB31F0651392B99D44B4302333BDF7E326FD256DD75D309C6E73F85\n+FA71B35FD1F9BEFF4C7A1076362EEB0A85492933B6006086A7B8C1928CF2D1EE\n+FD4344409257BB802C117E739960821CD3C88BFBA5669FF16F610AD638AF3677\n+8674C985E6767253ED5769F71BEA5E9BB02A751F9E62EE2B18AC19D975FDEAE9\n+8B8822367FF177A7E850766DE99ED3366D46464612926430012212A90F8E85F4\n+4760B40D5B86B90819EE410382D22D8ED82D0B0AB00C93E10CD365F8766D1C87\n+B4A866021FB6F6AC3D250CC601989B1B8FE6B1098A48282D2CF258BF38FEE940\n+CE0141FB1344156DE7712A8F2DBF700174F12616EE17C852210D96D03E5E6635\n+D439EB6E84A383DDD32AD72DADE6F931FDBABBDC726C36081C96018FC95EAE13\n+DA1F8DBC2D8355AC9792649653225393F4A7A88F3B9443FEEB75E2C15BF93F09\n+CCBA7FABC022BE26F4C28152D5DA6D690494AD4EC0DA1B598AE12536BADF88B5\n+5E20EB452546389F57FF55459567B453AE1831C57D22FA6A4FDF441EDAFDB7FB\n+4F4B707C1FF9159C40F7B5DD519FC07815EE91B8D756B6C18500BCF47D0D9E45\n+6A2D51B6AA5AEAAC9AB2DEF7F0FDE957B6C179CBADEECAC7E9CEC248AB135EB4\n+FBF83D002FF859B574EF36C371540EF2BCFCEF5C2E7863AEDD7C3C965103453B\n+023A9CEC1D5C45B88827ADF4AE0C6746F3C7E6A944427DAEC493601019583A16\n+0F846CE00EAE89EEFF9CE68A0E1D6EBB8FDD8A45D1BF399B36A8328EC957CB8B\n+D842A56269C8C9A6B472C9E65BCBC090606B4E8A7EF4ABDEA120C9F9B3969A1C\n+2EB102925F4E155160E58000E1ADB0D19E10EFD96F6C3225EEE8FC24D122C069\n+C11F1A69DC383F7DACD2F3929BD135CE69787C6E7560AC4B683FE5D9AAFD2E89\n+EE6D95E38C9B726B416E28169A11E29559DBA9AECD714CF318FCB78F34A0E562\n+9C00FE0C6D5A848557D9A82EC2BEFCD30B5EDC0B23C5BA9F812C864394C8B9D1\n+B08BAC9CF94E70FF842306ACCFE6E39A56777C712904A3AB29FBD19275E19E06\n+B35B37CFFFCEC81CAF2D85A853663FAFCFFED1EA77064AA28C15BC94910683BC\n+D09513079DE9EE18E97CC2403DD206516D7F652A3459870757F34EEDCEF952C3\n+FE8004F4716B5BD6774E455010B0BB1E61FCD66B9F14F9BBCCF3E55A158EE96E\n+9A05BDFDDC7706D4BC28FDDC4004EF3A430C607EBDF115E0C996454D70C8BB42\n+D7C83A454B116663D648C23CE2B33365810DE2B64D4AE011BC8043BC3E05B94D\n+1700F859C6AFC6515C1C42FA104EE3E8F3FA5F80252C2E79B00ED27F675FFD09\n+B50BF7A3C63CF4856F909DF969D7DD3EA05CABDD1E71A58CFC2AB5F614B4E5E0\n+25CF92E9FB66ACEBE05DF5E033DA8AD3EE32D94C02D98DD7DA99FAB5AEA595C3\n+2987DC122F0242D76B782349E4069DE0CDD6EF4375C680CBFE4C8F24F2AE89BF\n+7785F5EA7435A91500F265022C307E8ADEAAE1C6\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n@@ -5625,16 +5612,16 @@\n FFFE000FFFFFFC0007FFFFF80003FFFFF00000FFFFC000003FFF0000000FFC000022227B\n A72D>136 D E\n /Fc load 0 Fc currentfont 91.25 scalefont put/FMat X/FBB\n X/IEn X\n %EndDVIPSBitmapFont\n /Fd 134[71 2[71 75 52 53 55 1[75 67 75 112 2[41 37 75\n 67 41 61 75 60 75 65 13[75 2[92 11[103 16[67 67 67 2[37\n-46[{}27 119.552 /CMBX12 rf /Fe 138[51 35 36 11[45 37[68\n-6[25 4[45 1[45 45 1[45 3[25 44[{}11 90.9091 /CMSL10 rf\n+46[{}27 119.552 /CMBX12 rf /Fe 134[48 3[51 8[25 33[47\n+15[25 5[45 1[45 45 45 3[25 44[{}10 90.9091 /CMSL10 rf\n /Ff 141[39 1[39 7[39 6[39 10[39 9[39 2[39 1[39 1[39 69[{}9\n 74.7198 /CMTT9 rf /Fg 135[41 1[41 43 30 30 30 41 43 38\n 43 64 21 1[23 21 43 38 23 34 1[34 43 38 12[55 37[21 1[21\n 44[{}24 74.7198 /CMR9 rf /Fh 206[30 49[{}1 49.8132 /CMR6\n rf /Fi 145[45 3[25 50[0 4[61 16[91 6[71 4[71 71 17[71\n 25 1[{}10 90.9091 /CMSY10 rf /Fj 136[65 44 52 30[53 2[56\n 3[69 7[71 1[67 6[71 1[71 25 28[54 30[{}12 90.9091 /CMMI10\n@@ -5754,17 +5741,17 @@\n b(=)d Fj(w)r Fo(\\()p Fk(u)p Fo(\\))c Fi(\\001)g Fj(w)r\n Fo(\\()p Fk(v)q Fo(\\))p 0 5322 1560 4 v 104 5375 a Fh(1)138\n 5407 y Fg(The)26 b Ff(EGraph)h Fg(ob)t(ject)g(represen)n(ts)e(a)h\n (graph)g(of)h(the)e(matrix,)h(but)f(stores)h(a)g(list)h(of)f(co)n(v)n\n (ering)g(cliques)g(in)g(an)g Ff(IVL)g Fg(ob)t(ject.)1927\n 5656 y Fo(1)p eop end\n %%Page: 2 2\n-TeXDict begin 2 1 bop 0 100 a Fo(2)p 136 100 1146 4 v\n-1328 w Fn(Graph)29 b Fe(:)40 b Fl(DRAFT)31 b Fe(August)f(3,)h(2025)p\n-2754 100 V 0 399 a Fo(and)36 b(it)i(is)f(the)g(smallest)h(graph)e(with)\n+TeXDict begin 2 1 bop 0 100 a Fo(2)p 136 100 1204 4 v\n+1385 w Fn(Graph)29 b Fe(:)41 b Fl(DRAFT)30 b Fe(July)g(1,)h(2024)p\n+2697 100 V 0 399 a Fo(and)36 b(it)i(is)f(the)g(smallest)h(graph)e(with)\n h(this)g(prop)s(ert)m(y)-8 b(.)60 b(The)36 b(compression)h(is)g\n Fl(loss-less)p Fo(,)j(for)d(giv)m(en)h Fk(G)p Fo(\\()p\n Fk(V)q Fj(;)15 b Fk(E)p Fo(\\))0 511 y(and)30 b Fj(\\036)p\n Fo(,)i(w)m(e)f(can)g(reconstruct)h(the)f(unit)f(w)m(eigh)m(t)j(graph)d\n Fj(G)p Fo(\\()p Fj(V)5 b(;)15 b(E)5 b Fo(\\).)44 b(In)31\n b(e\\013ect,)h(w)m(e)g(can)f(w)m(ork)g(with)g(the)g(natural)0\n 624 y(compressed)j(graph)g(to)i(\\014nd)d(separators)i(and)f(orderings)g\n@@ -5820,42 +5807,42 @@\n (non-)p Fn(NULL)e Fo(if)h Fn(type)46 b(/)i(2)f(==)g(1)0\n 5049 y Fd(1.2)135 b(Protot)l(yp)t(es)46 b(and)f(descriptions)g(of)g\n Fb(Graph)e Fd(metho)t(ds)0 5294 y Fo(This)e(section)j(con)m(tains)f\n (brief)f(descriptions)g(including)f(protot)m(yp)s(es)i(of)f(all)h\n (metho)s(ds)f(that)h(b)s(elong)f(to)h(the)0 5407 y Fn(Graph)29\n b Fo(ob)5 b(ject.)p eop end\n %%Page: 3 3\n-TeXDict begin 3 2 bop 91 100 1146 4 v 1327 100 a Fn(Graph)29\n-b Fe(:)41 b Fl(DRAFT)121 b Fe(August)30 b(3,)h(2025)p\n-2707 100 V 1146 w Fo(3)0 399 y Fa(1.2.1)112 b(Basic)38\n-b(metho)s(ds)0 605 y Fo(As)d(usual,)h(there)f(are)g(four)f(basic)h\n-(metho)s(ds)g(to)g(supp)s(ort)e(ob)5 b(ject)36 b(creation,)i(setting)e\n-(default)f(\\014elds,)h(clearing)0 718 y(an)m(y)31 b(allo)s(cated)h\n-(data,)f(and)f(free'ing)h(the)g(ob)5 b(ject.)111 982\n-y(1.)46 b Fn(Graph)h(*)g(Graph_new)e(\\()j(void)e(\\))i(;)227\n-1143 y Fo(This)28 b(metho)s(d)g(simply)h(allo)s(cates)i(storage)f(for)e\n-(the)h Fn(Graph)f Fo(structure)g(and)g(then)g(sets)i(the)f(default)f\n-(\\014elds)227 1256 y(b)m(y)j(a)f(call)i(to)f Fn(Graph)p\n-953 1256 29 4 v 33 w(setDefaultFields\\(\\))p Fo(.)111\n-1465 y(2.)46 b Fn(void)h(Graph_setDefaultFields)42 b(\\()47\n-b(Graph)f(*graph)h(\\))g(;)227 1626 y Fo(This)24 b(metho)s(d)g(sets)h\n-(the)f(structure's)g(\\014elds)g(to)h(default)g(v)-5 b(alues:)38\n-b Fn(type)p Fo(,)25 b Fn(nvtx)p Fo(,)f Fn(nvbnd)p Fo(,)h\n-Fn(nedges)p Fo(,)f Fn(totwght)227 1739 y Fo(and)30 b\n-Fn(totewght)e Fo(are)j(all)g(zero,)h(and)d Fn(adjIVL)p\n-Fo(,)g Fn(vwghts)g Fo(and)h Fn(ewghtIVL)e Fo(are)j(all)g\n-Fn(NULL)p Fo(.)227 1900 y Fl(Err)-5 b(or)34 b(che)-5\n-b(cking:)40 b Fo(If)30 b Fn(graph)f Fo(is)i Fn(NULL)p\n-Fo(,)e(an)h(error)g(message)i(is)e(prin)m(ted)g(and)g(the)h(program)f\n-(exits.)111 2109 y(3.)46 b Fn(void)h(Graph_clearData)d(\\()j(Graph)f\n-(*graph)g(\\))i(;)227 2269 y Fo(This)33 b(metho)s(d)f(clears)j(the)e\n-(data)h(for)f(the)h(ob)5 b(ject.)50 b(If)33 b Fn(adjIVL)e\n-Fo(is)j(not)f Fn(NULL)p Fo(,)g(then)g Fn(IVL)p 3300 2269\n-V 33 w(free\\(adjIVL\\))227 2382 y Fo(is)46 b(called)i(to)e(free)h(the)f\n-Fn(IVL)f Fo(ob)5 b(ject.)89 b(If)45 b Fn(ewghtIVL)f Fo(is)i(not)g\n+TeXDict begin 3 2 bop 91 100 1204 4 v 1385 100 a Fn(Graph)29\n+b Fe(:)41 b Fl(DRAFT)121 b Fe(July)30 b(1,)h(2024)p 2650\n+100 V 1204 w Fo(3)0 399 y Fa(1.2.1)112 b(Basic)38 b(metho)s(ds)0\n+605 y Fo(As)d(usual,)h(there)f(are)g(four)f(basic)h(metho)s(ds)g(to)g\n+(supp)s(ort)e(ob)5 b(ject)36 b(creation,)i(setting)e(default)f\n+(\\014elds,)h(clearing)0 718 y(an)m(y)31 b(allo)s(cated)h(data,)f(and)f\n+(free'ing)h(the)g(ob)5 b(ject.)111 982 y(1.)46 b Fn(Graph)h(*)g\n+(Graph_new)e(\\()j(void)e(\\))i(;)227 1143 y Fo(This)28\n+b(metho)s(d)g(simply)h(allo)s(cates)i(storage)f(for)e(the)h\n+Fn(Graph)f Fo(structure)g(and)g(then)g(sets)i(the)f(default)f(\\014elds)\n+227 1256 y(b)m(y)j(a)f(call)i(to)f Fn(Graph)p 953 1256\n+29 4 v 33 w(setDefaultFields\\(\\))p Fo(.)111 1465 y(2.)46\n+b Fn(void)h(Graph_setDefaultFields)42 b(\\()47 b(Graph)f(*graph)h(\\))g\n+(;)227 1626 y Fo(This)24 b(metho)s(d)g(sets)h(the)f(structure's)g\n+(\\014elds)g(to)h(default)g(v)-5 b(alues:)38 b Fn(type)p\n+Fo(,)25 b Fn(nvtx)p Fo(,)f Fn(nvbnd)p Fo(,)h Fn(nedges)p\n+Fo(,)f Fn(totwght)227 1739 y Fo(and)30 b Fn(totewght)e\n+Fo(are)j(all)g(zero,)h(and)d Fn(adjIVL)p Fo(,)g Fn(vwghts)g\n+Fo(and)h Fn(ewghtIVL)e Fo(are)j(all)g Fn(NULL)p Fo(.)227\n+1900 y Fl(Err)-5 b(or)34 b(che)-5 b(cking:)40 b Fo(If)30\n+b Fn(graph)f Fo(is)i Fn(NULL)p Fo(,)e(an)h(error)g(message)i(is)e(prin)\n+m(ted)g(and)g(the)h(program)f(exits.)111 2109 y(3.)46\n+b Fn(void)h(Graph_clearData)d(\\()j(Graph)f(*graph)g(\\))i(;)227\n+2269 y Fo(This)33 b(metho)s(d)f(clears)j(the)e(data)h(for)f(the)h(ob)5\n+b(ject.)50 b(If)33 b Fn(adjIVL)e Fo(is)j(not)f Fn(NULL)p\n+Fo(,)g(then)g Fn(IVL)p 3300 2269 V 33 w(free\\(adjIVL\\))227\n+2382 y Fo(is)46 b(called)i(to)e(free)h(the)f Fn(IVL)f\n+Fo(ob)5 b(ject.)89 b(If)45 b Fn(ewghtIVL)f Fo(is)i(not)g\n Fn(NULL)p Fo(,)f(then)h Fn(IVL)p 3097 2382 V 34 w(free\\(ewghtIVL\\))c\n Fo(is)227 2495 y(called)k(to)g(free)f(the)g Fn(IVL)f\n Fo(ob)5 b(ject.)85 b(If)45 b Fn(vwghts)e Fo(is)i(not)g\n Fn(NULL)p Fo(,)f(then)g Fn(IVfree\\(vwghts\\))d Fo(is)k(called)h(to)227\n 2608 y(free)34 b(the)f Fn(int)f Fo(v)m(ector.)51 b(The)33\n b(structure's)f(\\014elds)h(are)h(then)f(set)g(to)h(their)f(default)h(v)\n -5 b(alues)33 b(with)g(a)h(call)g(to)227 2721 y Fn(Graph)p\n@@ -5897,17 +5884,17 @@\n b(or)c Fn(adjType)d Fo(of)i Fn(ewghtType)e Fo(is)i(in)m(v)-5\n b(alid)42 b(\\(they)f(m)m(ust)h(b)s(e)227 5407 y Fn(IVL)p\n 377 5407 V 34 w(CHUNKED)p Fo(,)27 b Fn(IVL)p 943 5407\n V 33 w(SOLO)h Fo(or)g Fn(IVL)p 1449 5407 V 34 w(UNKNOWN)p\n Fo(\\).)f(an)i(error)f(message)i(is)e(prin)m(ted)h(and)f(the)g(program)h\n (exits.)p eop end\n %%Page: 4 4\n-TeXDict begin 4 3 bop 0 100 a Fo(4)p 136 100 1146 4 v\n-1328 w Fn(Graph)29 b Fe(:)40 b Fl(DRAFT)31 b Fe(August)f(3,)h(2025)p\n-2754 100 V 111 399 a Fo(2.)46 b Fn(void)h(Graph_init2)e(\\()i(Graph)f\n+TeXDict begin 4 3 bop 0 100 a Fo(4)p 136 100 1204 4 v\n+1385 w Fn(Graph)29 b Fe(:)41 b Fl(DRAFT)30 b Fe(July)g(1,)h(2024)p\n+2697 100 V 111 399 a Fo(2.)46 b Fn(void)h(Graph_init2)e(\\()i(Graph)f\n (*graph,)g(int)h(type,)g(int)f(nvtx,)h(int)g(nvbnd,)f(int)h(nedges,)466\n 511 y(int)g(totvwght,)e(int)i(totewght,)e(IVL)i(*adjIVL,)f(int)h\n (*vwghts,)e(IVL)i(*ewghtIVL\\))227 665 y Fo(This)41 b(metho)s(d)f(is)h\n (used)f(b)m(y)h(the)h(IO)e(read)h(metho)s(ds.)72 b(When)41\n b(a)h Fn(Graph)d Fo(ob)5 b(ject)42 b(is)g(read)f(from)f(a)i(\\014le,)227\n 778 y(the)35 b Fn(IVL)e Fo(ob)5 b(ject\\(s\\))35 b(m)m(ust)f(b)s(e)g\n (initialized)i(and)d(then)h(read)g(in)g(from)f(the)i(\\014le.)52\n@@ -5987,17 +5974,17 @@\n b(alence)27 b(map)e(from)h(the)g(graph)f(to)i(its)f(natural)g\n (compressed)f(graph.)227 5294 y(The)33 b(map)f Fj(\\036)e\n Fo(:)g Fj(V)49 b Fi(7!)30 b Fk(V)k Fo(is)f(then)g(constructed)g(\\(see)h\n (the)f(In)m(tro)s(duction)g(in)f(this)h(section\\))h(and)f(put)f(in)m\n (to)227 5407 y(an)f Fn(IV)e Fo(ob)5 b(ject)32 b(that)f(is)f(then)g\n (returned.)p eop end\n %%Page: 5 5\n-TeXDict begin 5 4 bop 91 100 1146 4 v 1327 100 a Fn(Graph)29\n-b Fe(:)41 b Fl(DRAFT)121 b Fe(August)30 b(3,)h(2025)p\n-2707 100 V 1146 w Fo(5)227 399 y Fl(Err)-5 b(or)33 b(che)-5\n+TeXDict begin 5 4 bop 91 100 1204 4 v 1385 100 a Fn(Graph)29\n+b Fe(:)41 b Fl(DRAFT)121 b Fe(July)30 b(1,)h(2024)p 2650\n+100 V 1204 w Fo(5)227 399 y Fl(Err)-5 b(or)33 b(che)-5\n b(cking:)40 b Fo(If)28 b Fn(graph)g Fo(is)h Fn(NULL)f\n Fo(or)h Fn(nvtx)47 b(<=)g(0)p Fo(,)29 b(an)g(error)g(message)h(is)f\n (prin)m(ted)f(and)h(the)g(program)227 511 y(exits.)111\n 726 y(2.)46 b Fn(Graph)h(*)g(Graph_compress)92 b(\\()47\n b(Graph)g(*graph,)e(int)i(map[],)f(int)h(coarseType)e(\\))j(;)227\n 839 y(Graph)f(*)g(Graph_compress2)d(\\()j(Graph)g(*graph,)e(IV)j\n (*mapIV,)d(int)i(coarseType)e(\\))j(;)227 1003 y Fo(This)c\n@@ -6057,17 +6044,17 @@\n 5130 y Fo(This)30 b(metho)s(d)g(returns)f(the)h(w)m(eigh)m(t)i(of)f\n (adj\\()p Fn(v)p Fo(\\).)227 5294 y Fl(Err)-5 b(or)39 b(che)-5\n b(cking:)50 b Fo(If)35 b Fn(graph)f Fo(is)i Fn(NULL)p\n Fo(,)e(or)i Fn(v)f Fo(is)h(out)f(of)h(range,)h(an)f(error)f(message)h\n (is)g(prin)m(ted)f(and)g(the)227 5407 y(program)30 b(exits.)p\n eop end\n %%Page: 6 6\n-TeXDict begin 6 5 bop 0 100 a Fo(6)p 136 100 1146 4 v\n-1328 w Fn(Graph)29 b Fe(:)40 b Fl(DRAFT)31 b Fe(August)f(3,)h(2025)p\n-2754 100 V 111 399 a Fo(3.)46 b Fn(int)h(Graph_adjAndSize)d(\\()j(Graph)\n+TeXDict begin 6 5 bop 0 100 a Fo(6)p 136 100 1204 4 v\n+1385 w Fn(Graph)29 b Fe(:)41 b Fl(DRAFT)30 b Fe(July)g(1,)h(2024)p\n+2697 100 V 111 399 a Fo(3.)46 b Fn(int)h(Graph_adjAndSize)d(\\()j(Graph)\n f(*graph,)g(int)h(u,)g(int)g(*pusize,)f(int)h(**puadj\\))e(;)227\n 545 y Fo(This)31 b(metho)s(d)f(\\014lls)h Fn(*pusize)f\n Fo(with)h(the)g(size)h(of)f(the)h(adjacency)g(list)g(for)f\n Fn(u)g Fo(and)f Fn(*puadj)g Fo(p)s(oin)m(ts)h(to)h(the)227\n 658 y(start)f(of)g(the)f(list)h(v)m(ector.)227 804 y\n Fl(Err)-5 b(or)32 b(che)-5 b(cking:)40 b Fo(If)28 b Fn(graph)f\n Fo(is)h Fn(NULL)p Fo(,)f(or)i(if)f Fn(u)48 b(<)f(0)28\n@@ -6153,17 +6140,17 @@\n Fn(map[])f Fo(v)m(ector.)42 b(This)28 b(renders)g(the)i(graph)e(ob)5\n b(ject)30 b(in)m(v)-5 b(alid.)227 5294 y(The)38 b(graph)g(partitioning)\n h(metho)s(ds)e(map)h(the)h(v)m(ertices)g(bac)m(k)g(to)g(their)g\n (original)g(v)-5 b(alues.)65 b(Presen)m(tly)-8 b(,)227\n 5407 y(only)31 b(graphs)e(with)i(unit)e(edge)j(w)m(eigh)m(ts)f(are)g\n (allo)m(w)m(ed)h(as)f(input.)p eop end\n %%Page: 7 7\n-TeXDict begin 7 6 bop 91 100 1146 4 v 1327 100 a Fn(Graph)29\n-b Fe(:)41 b Fl(DRAFT)121 b Fe(August)30 b(3,)h(2025)p\n-2707 100 V 1146 w Fo(7)227 399 y Fl(Err)-5 b(or)32 b(che)-5\n+TeXDict begin 7 6 bop 91 100 1204 4 v 1385 100 a Fn(Graph)29\n+b Fe(:)41 b Fl(DRAFT)121 b Fe(July)30 b(1,)h(2024)p 2650\n+100 V 1204 w Fo(7)227 399 y Fl(Err)-5 b(or)32 b(che)-5\n b(cking:)39 b Fo(If)28 b Fn(graph)f Fo(is)h Fn(NULL)f\n Fo(or)h Fn(icomp)46 b(<)i(0)27 b Fo(or)i Fn(compids)d\n Fo(or)i Fn(pmap)f Fo(is)h Fn(NULL)p Fo(,)f(an)h(error)g(message)227\n 511 y(is)j(prin)m(ted)f(and)f(the)i(program)f(exits.)111\n 691 y(8.)46 b Fn(int)h(Graph_isSymmetric)c(\\()48 b(Graph)e(*graph)g(\\))\n i(;)227 837 y Fo(This)36 b(metho)s(d)g(returns)f Fn(1)i\n Fo(if)f(the)h(graph)f(is)h(symmetric)f(\\(i.e.,)k(edge)d\n@@ -6245,17 +6232,17 @@\n b Fn(1)f Fo(is)g(returned.)40 b(If)30 b(an)g(IO)g(error)g(is)g(encoun)m\n (tered)h(from)f Fn(fprintf)p Fo(,)f(zero)i(is)f(returned.)227\n 5407 y Fl(Err)-5 b(or)34 b(che)-5 b(cking:)40 b Fo(If)30\n b Fn(graph)f Fo(or)i Fn(fp)e Fo(are)i Fn(NULL)e Fo(an)i(error)f\n (message)h(is)g(prin)m(ted)e(and)h(zero)h(is)g(returned.)p\n eop end\n %%Page: 8 8\n-TeXDict begin 8 7 bop 0 100 a Fo(8)p 136 100 1146 4 v\n-1328 w Fn(Graph)29 b Fe(:)40 b Fl(DRAFT)31 b Fe(August)f(3,)h(2025)p\n-2754 100 V 111 399 a Fo(6.)46 b Fn(int)h(Graph_writeToBinaryFile)42\n+TeXDict begin 8 7 bop 0 100 a Fo(8)p 136 100 1204 4 v\n+1385 w Fn(Graph)29 b Fe(:)41 b Fl(DRAFT)30 b Fe(July)g(1,)h(2024)p\n+2697 100 V 111 399 a Fo(6.)46 b Fn(int)h(Graph_writeToBinaryFile)42\n b(\\()47 b(Graph)f(*graph,)g(FILE)h(*fp)g(\\))g(;)227 554\n y Fo(This)27 b(metho)s(d)g(writes)h(a)g Fn(Graph)e Fo(ob)5\n b(ject)29 b(to)f(a)g(binary)f(\\014le.)40 b(If)27 b(there)h(are)g(no)g\n (errors)f(in)g(writing)h(the)g(data,)227 667 y(the)j(v)-5\n b(alue)31 b Fn(1)f Fo(is)g(returned.)40 b(If)30 b(an)g(IO)g(error)g(is)\n g(encoun)m(tered)h(from)f Fn(fwrite)p Fo(,)f(zero)i(is)f(returned.)227\n 822 y Fl(Err)-5 b(or)34 b(che)-5 b(cking:)40 b Fo(If)30\n@@ -6318,19 +6305,19 @@\n b(alence)37 b(map)f(to)227 5181 y(its)g(natural)g(compressed)f(graph)g\n (\\(the)i(\\014rst)d(graph)h(need)h(not)g(b)s(e)f(unit)g(w)m(eigh)m(t\\),)\n k(and)c(constructs)h(the)227 5294 y(natural)24 b(compressed)f(graph.)38\n b(The)23 b(equiv)-5 b(alence)25 b(map)e(and)g(compressed)g(graph)g(are)\n h(optionally)h(written)227 5407 y(out)31 b(to)g(\\014les.)p\n eop end\n %%Page: 9 9\n-TeXDict begin 9 8 bop 91 100 1146 4 v 1327 100 a Fn(Graph)29\n-b Fe(:)41 b Fl(DRAFT)121 b Fe(August)30 b(3,)h(2025)p\n-2707 100 V 1146 w Fo(9)337 399 y Fc(\\210)45 b Fo(The)28\n-b Fn(msglvl)f Fo(parameter)i(determines)g(the)g(amoun)m(t)g(of)f\n-(output)h(|)f(taking)i Fn(msglvl)46 b(>=)h(3)28 b Fo(means)427\n+TeXDict begin 9 8 bop 91 100 1204 4 v 1385 100 a Fn(Graph)29\n+b Fe(:)41 b Fl(DRAFT)121 b Fe(July)30 b(1,)h(2024)p 2650\n+100 V 1204 w Fo(9)337 399 y Fc(\\210)45 b Fo(The)28 b\n+Fn(msglvl)f Fo(parameter)i(determines)g(the)g(amoun)m(t)g(of)f(output)h\n+(|)f(taking)i Fn(msglvl)46 b(>=)h(3)28 b Fo(means)427\n 511 y(that)j(all)h(ob)5 b(jects)31 b(are)f(written)h(to)g(the)f\n (message)i(\\014le.)337 660 y Fc(\\210)45 b Fo(The)33 b\n Fn(msgFile)e Fo(parameter)j(determines)f(the)h(message)g(\\014le)f(|)h\n (if)f Fn(msgFile)e Fo(is)i Fn(stdout)p Fo(,)g(then)g(the)427\n 773 y(message)27 b(\\014le)f(is)g Fl(stdout)p Fo(,)i(otherwise)e(a)h\n (\\014le)f(is)f(op)s(ened)g(with)h Fl(app)-5 b(end)28\n b Fo(status)e(to)g(receiv)m(e)i(an)m(y)e(output)427 886\n@@ -6411,17 +6398,17 @@\n g(graph)f(to)i(a)f(formatted)h(\\014le)f(\\(if)427 5101\n y Fn(outGraphFile)24 b Fo(is)j(of)h(the)f(form)g Fn(*.graphf)p\n Fo(\\),)f(or)h(a)h(binary)f(\\014le)g(\\(if)g Fn(outGraphFile)d\n Fo(is)k(of)f(the)g(form)427 5214 y Fn(*.graphb)p Fo(\\).)111\n 5407 y(4.)46 b Fn(mkGridGraph)f(msglvl)h(msgFile)g(stencil)g(n1)h(n2)g\n (n3)g(outFile)p eop end\n %%Page: 10 10\n-TeXDict begin 10 9 bop 0 100 a Fo(10)p 182 100 1123 4\n-v 1306 w Fn(Graph)28 b Fe(:)41 b Fl(DRAFT)30 b Fe(August)g(3,)h(2025)p\n-2777 100 V 227 399 a Fo(This)d(driv)m(er)h(program)g(creates)h(a)f\n+TeXDict begin 10 9 bop 0 100 a Fo(10)p 182 100 1181 4\n+v 1363 w Fn(Graph)29 b Fe(:)41 b Fl(DRAFT)30 b Fe(July)g(1,)h(2024)p\n+2720 100 V 227 399 a Fo(This)d(driv)m(er)h(program)g(creates)h(a)f\n (Graph)g(ob)5 b(ject)29 b(for)g(a)g(\\014nite)g(di\\013erence)h(op)s\n (erator)f(on)g(a)g Fn(n1)17 b Fi(\\002)g Fn(n2)g Fi(\\002)g\n Fn(n3)227 511 y Fo(regular)31 b(grid.)337 707 y Fc(\\210)45\n b Fo(The)28 b Fn(msglvl)f Fo(parameter)i(determines)g(the)g(amoun)m(t)g\n (of)f(output)h(|)f(taking)i Fn(msglvl)46 b(>=)h(3)28\n b Fo(means)427 820 y(that)j(all)h(ob)5 b(jects)31 b(are)f(written)h(to)\n g(the)f(message)i(\\014le.)337 969 y Fc(\\210)45 b Fo(The)33\n@@ -6490,18 +6477,18 @@\n Fo(parameter)j(determines)f(the)h(message)g(\\014le)f(|)h(if)f\n Fn(msgFile)e Fo(is)i Fn(stdout)p Fo(,)g(then)g(the)427\n 5294 y(message)27 b(\\014le)f(is)g Fl(stdout)p Fo(,)i(otherwise)e(a)h\n (\\014le)f(is)f(op)s(ened)g(with)h Fl(app)-5 b(end)28\n b Fo(status)e(to)g(receiv)m(e)i(an)m(y)e(output)427 5407\n y(data.)p eop end\n %%Page: 11 11\n-TeXDict begin 11 10 bop 91 100 1123 4 v 1305 100 a Fn(Graph)29\n-b Fe(:)40 b Fl(DRAFT)121 b Fe(August)30 b(3,)h(2025)p\n-2684 100 V 1123 w Fo(11)337 399 y Fc(\\210)45 b Fo(The)37\n-b Fn(inFile)f Fo(parameter)i(is)g(the)g(input)e(\\014le)i(for)f(the)h\n+TeXDict begin 11 10 bop 91 100 1181 4 v 1362 100 a Fn(Graph)29\n+b Fe(:)41 b Fl(DRAFT)121 b Fe(July)30 b(1,)h(2024)p 2627\n+100 V 1181 w Fo(11)337 399 y Fc(\\210)45 b Fo(The)37 b\n+Fn(inFile)f Fo(parameter)i(is)g(the)g(input)e(\\014le)i(for)f(the)h\n Fn(Graph)e Fo(ob)5 b(ject.)64 b(It)37 b(m)m(ust)h(b)s(e)f(of)h(the)f\n (form)427 511 y Fn(*.graphf)18 b Fo(or)j Fn(*.graphb)p\n Fo(.)35 b(The)19 b Fn(Graph)g Fo(ob)5 b(ject)21 b(is)g(read)f(from)g\n (the)g(\\014le)h(via)f(the)h Fn(Graph)p 3368 511 29 4\n v 33 w(readFromFile\\(\\))427 624 y Fo(metho)s(d.)111 1065\n y(7.)46 b Fn(testWirebasket)e(msglvl)i(msgFile)g(inGraphFile)f\n (inStagesFile)943 1178 y(outStagesFile)f(radius)227 1419\n@@ -6557,17 +6544,17 @@\n Fo(15)29 b(grid.)40 b(They)27 b(sho)m(w)h(the)h(stages)227\n 5294 y(for)36 b Fn(radius)46 b(=)i(1)36 b Fo(on)g(the)g(left)h(and)f\n Fn(radius)46 b(=)i(2)35 b Fo(on)i(the)f(righ)m(t.)59\n b(The)36 b(domains)g(are)g(3)25 b Fi(\\002)f Fo(3)36 b(subgrids)227\n 5407 y(whose)30 b(v)m(ertices)i(ha)m(v)m(e)g(lab)s(els)f(equal)g(to)g\n (zero.)p eop end\n %%Page: 12 12\n-TeXDict begin 12 11 bop 0 100 a Fo(12)p 182 100 1123\n-4 v 1306 w Fn(Graph)28 b Fe(:)41 b Fl(DRAFT)30 b Fe(August)g(3,)h(2025)\n-p 2777 100 V 429 1927 a @beginspecial 0 @llx 0 @lly 600\n+TeXDict begin 12 11 bop 0 100 a Fo(12)p 182 100 1181\n+4 v 1363 w Fn(Graph)29 b Fe(:)41 b Fl(DRAFT)30 b Fe(July)g(1,)h(2024)p\n+2720 100 V 429 1927 a @beginspecial 0 @llx 0 @lly 600\n @urx 600 @ury 1943 @rwi 1943 @rhi @setspecial\n %%BeginDocument: ../../Graph/doc/rad1.eps\n %!PS-Adobe-2.0 EPSF-1.2\n %%BoundingBox: 0.0 0.0 600.0 600.0\n /radius 15 def\n /Helvetica findfont 18.75 scalefont setfont\n /M {moveto} def\n", "details": [{"source1": "ps2ascii {}", "source2": "ps2ascii {}", "unified_diff": "@@ -27,15 +27,15 @@\n weight vertices in the weighted vertex. The weight of an edge is w(u,v), the number of (u,v) edges\r\n in the unit weight graph where u \u2208 u and v \u2208 v.\r\n Thenaturalcompressedgraph[?],[?]isveryimportantformanymatricesfromstructralanalysis\r\n and computational \ufb02uid mechanics. This type of graph has one special property:\r\n w(u,v) = w(u)\u00b7w(v)\r\n 1The EGraph object represents a graph of the matrix, but stores a list of covering cliques in an IVL object.\r\n 1\r\n- 2 Graph : DRAFT August 3, 2025\r\n+ 2 Graph : DRAFT July 1, 2024\r\n and it is the smallest graph with this property. The compression is loss-less, for given G(V,E)\r\n and \u03c6, we can reconstruct the unit weight graph G(V,E). In e\ufb00ect, we can work with the natural\r\n compressed graph to \ufb01nd separators and orderings and map back to the unit weight graph. The\r\n savings in time and space can be considerable.\r\n The Graph object has a method to \ufb01nd the \u03c6 map for the natural compressed graph; it requires\r\n O(|V|) space and O(|E|) time. There is a method to compress a graph (i.e., given G(V,E) and\r\n an arbitrary \u03c6, construct G(V,E)) and a method to expand a graph (i.e., given G(V,E) and an\r\n@@ -57,15 +57,15 @@\n \u2022 int totewght : total edge weight\r\n \u2022 IVL *adjIVL : pointer to IVL object to hold adjacency lists\r\n \u2022 int *vwghts : pointer to a vertex to hold vertex weights non-NULL if type % 2 == 1\r\n \u2022 IVL *ewghtIVL : pointer to IVL object to hold edge weight lists, non-NULL if type / 2 == 1\r\n 1.2 Prototypes and descriptions of Graph methods\r\n This section contains brief descriptions including prototypes of all methods that belong to the\r\n Graph object.\r\n- Graph : DRAFT August 3, 2025 3\r\n+ Graph : DRAFT July 1, 2024 3\r\n 1.2.1 Basic methods\r\n As usual, there are four basic methods to support object creation, setting default \ufb01elds, clearing\r\n any allocated data, and free\u2019ing the object.\r\n 1. Graph * Graph_new ( void ) ;\r\n This method simply allocates storage for the Graph structure and then sets the default \ufb01elds\r\n by a call to Graph setDefaultFields().\r\n 2. void Graph_setDefaultFields ( Graph *graph ) ;\r\n@@ -91,15 +91,15 @@\n int adjType, int ewghtType ) ;\r\n Thisisthebasicinitializer method. Anypreviousdataisclearedwithacall toGraph clearData().\r\n Thenthescalar \ufb01elds are set and the adjIVL object is initialized. If type is 1 or 3, the vwghts\r\n vector is initialized to zeros. If type is 2 or 3, the ewghtIVL object is initialized.\r\n Error checking: If graph is NULL, type is invalid (type must be in [0,3]), nvtx is non-\r\n positive, nvbnd or nedges is negative, or adjType of ewghtType is invalid (they must be\r\n IVL CHUNKED, IVL SOLO or IVL UNKNOWN). an error message is printed and the program exits.\r\n- 4 Graph : DRAFT August 3, 2025\r\n+ 4 Graph : DRAFT July 1, 2024\r\n 2. void Graph_init2 ( Graph *graph, int type, int nvtx, int nvbnd, int nedges,\r\n int totvwght, int totewght, IVL *adjIVL, int *vwghts, IVL *ewghtIVL)\r\n This method is used by the IO read methods. When a Graph object is read from a \ufb01le,\r\n the IVL object(s) must be initialized and then read in from the \ufb01le. Therefore, we need an\r\n initialization method that allows us to set pointers to the IVL objects and the vwghts vector.\r\n Note, adjIVL, vwghts and ewghtIVL are owned by the Graph object and will be free\u2019d when\r\n the Graph object is free\u2019d.\r\n@@ -130,15 +130,15 @@\n 1.2.3 Compress and Expand methods\r\n These three methods \ufb01nd an equivalence map for the natural compressed graph, compress a graph,\r\n and expand a graph.\r\n 1. IV * Graph_equivMap ( Graph *graph ) ;\r\n This method constructs the equivalence map from the graph to its natural compressed graph.\r\n The map \u03c6 : V 7\u2192 V is then constructed (see the Introduction in this section) and put into\r\n an IV object that is then returned.\r\n- Graph : DRAFT August 3, 2025 5\r\n+ Graph : DRAFT July 1, 2024 5\r\n Error checking: If graph is NULL or nvtx <= 0, an error message is printed and the program\r\n exits.\r\n 2. Graph * Graph_compress ( Graph *graph, int map[], int coarseType ) ;\r\n Graph * Graph_compress2 ( Graph *graph, IV *mapIV, int coarseType ) ;\r\n This Graph and map objects (map[] or mapIV) are checked and if any errors are found,\r\n the appropriate message is printed and the program exits. The compressed graph object\r\n is constructed and returned. Note, the compressed graph does not have a boundary, even\r\n@@ -164,15 +164,15 @@\n 1. int Graph_sizeOf ( Graph *graph ) ;\r\n This method returns the number of bytes taken by this object.\r\n Error checking: If graph is NULL, an error message is printed and the program exits.\r\n 2. Graph_externalDegree ( Graph *graph, int v ) ;\r\n This method returns the weight of adj(v).\r\n Error checking: If graph is NULL, or v is out of range, an error message is printed and the\r\n program exits.\r\n- 6 Graph : DRAFT August 3, 2025\r\n+ 6 Graph : DRAFT July 1, 2024\r\n 3. int Graph_adjAndSize ( Graph *graph, int u, int *pusize, int **puadj) ;\r\n This method \ufb01lls *pusize with the size of the adjacency list for u and *puadj points to the\r\n start of the list vector.\r\n Error checking: If graph is NULL, or if u < 0 or u >= nvtx or if pusize or puadj is NULL, an\r\n error message is printed and the program exits.\r\n 4. int Graph_adjAndEweights ( Graph *graph, int u, int *pusize,\r\n int **puadj, int **puewghts) ;\r\n@@ -205,15 +205,15 @@\n list for the vertex in the parent graph. Each adjacency list for a boundary vertex of the\r\n subgraph is new storage, and only these lists are free\u2019d when the subgraph is free\u2019d. A map\r\n vector is created that maps the subgraphs\u2019s vertices (both internal and boundary) into the\r\n parent graph\u2019s vertices; the address of the map vector is put into *pmap. The adjacency lists\r\n for the subgraph are overwritten by the map[] vector. This renders the graph object invalid.\r\n The graph partitioning methods map the vertices back to their original values. Presently,\r\n only graphs with unit edge weights are allowed as input.\r\n- Graph : DRAFT August 3, 2025 7\r\n+ Graph : DRAFT July 1, 2024 7\r\n Error checking: If graph is NULL or icomp < 0 or compids or pmap is NULL, an error message\r\n is printed and the program exits.\r\n 8. int Graph_isSymmetric ( Graph *graph ) ;\r\n This method returns 1 if the graph is symmetric (i.e., edge (i,j) is present if and only if\r\n edge (j,i) is present) and 0 otherwise.\r\n Error checking: If graph is NULL, an error message is printed and the program exits.\r\n 1.2.6 IO methods\r\n@@ -242,15 +242,15 @@\n \ufb01le and returns the value returned from the called routine.\r\n Error checking: If graph or fn are NULL, or if fn is not of the form *.graphf (for a formatted\r\n \ufb01le) or *.graphb (for a binary \ufb01le), an error message is printed and the method returns zero.\r\n 5. int Graph_writeToFormattedFile ( Graph *graph, FILE *fp ) ;\r\n This method writes a Graph object to a formatted \ufb01le. If there are no errors in writing the\r\n data, the value 1 is returned. If an IO error is encountered from fprintf, zero is returned.\r\n Error checking: If graph or fp are NULL an error message is printed and zero is returned.\r\n- 8 Graph : DRAFT August 3, 2025\r\n+ 8 Graph : DRAFT July 1, 2024\r\n 6. int Graph_writeToBinaryFile ( Graph *graph, FILE *fp ) ;\r\n This method writes a Graph object to a binary \ufb01le. If there are no errors in writing the data,\r\n the value 1 is returned. If an IO error is encountered from fwrite, zero is returned.\r\n Error checking: If graph or fp are NULL an error message is printed and zero is returned.\r\n 7. int Graph_writeForHumanEye ( Graph *graph, FILE *fp ) ;\r\n This method writes a Graph object to a \ufb01le in a human readable format. The method\r\n Graph writeStats()is called to write out the header and statistics. The value 1 is returned.\r\n@@ -276,15 +276,15 @@\n *.graphfor*.graphb. TheGraphobjectisreadfromthe\ufb01leviatheGraph readFromFile()\r\n method.\r\n 2. compressGraph msglvl msgFile inGraphFile coarseType outMapFile outGraphFile\r\n This driver program reads in a Graph object from a \ufb01le, computes the equivalence map to\r\n its natural compressed graph (the \ufb01rst graph need not be unit weight), and constructs the\r\n natural compressed graph. The equivalence map and compressed graph are optionally written\r\n out to \ufb01les.\r\n- Graph : DRAFT August 3, 2025 9\r\n+ Graph : DRAFT July 1, 2024 9\r\n \u2022 The msglvl parameter determines the amount of output \u2014 taking msglvl >= 3 means\r\n that all objects are written to the message \ufb01le.\r\n \u2022 The msgFile parameter determines the message \ufb01le \u2014 if msgFile is stdout, then the\r\n message \ufb01le is stdout, otherwise a \ufb01le is opened with append status to receive any output\r\n data.\r\n \u2022 TheinGraphFileparameteristheinput\ufb01lefortheGraphobject. It mustbeof theform\r\n *.graphfor*.graphb. TheGraphobjectisreadfromthe\ufb01leviatheGraph readFromFile()\r\n@@ -317,15 +317,15 @@\n (if inMapFile is of the form *.ivf), or a binary \ufb01le (if inMapFile is of the form *.ivb).\r\n \u2022 The outGraphFile parameter is the output \ufb01le for the compressed Graph object. If\r\n outGraphFile is none then the Graph object is not written to a \ufb01le. Otherwise,\r\n the Graph writeToFile() method is called to write the graph to a formatted \ufb01le (if\r\n outGraphFile is of the form *.graphf), or a binary \ufb01le (if outGraphFile is of the form\r\n *.graphb).\r\n 4. mkGridGraph msglvl msgFile stencil n1 n2 n3 outFile\r\n- 10 Graph : DRAFT August 3, 2025\r\n+ 10 Graph : DRAFT July 1, 2024\r\n This driver program creates a Graph object for a \ufb01nite di\ufb00erence operator on a n1\u00d7n2\u00d7n3\r\n regular grid.\r\n \u2022 The msglvl parameter determines the amount of output \u2014 taking msglvl >= 3 means\r\n that all objects are written to the message \ufb01le.\r\n \u2022 The msgFile parameter determines the message \ufb01le \u2014 if msgFile is stdout, then the\r\n message \ufb01le is stdout, otherwise a \ufb01le is opened with append status to receive any output\r\n data.\r\n@@ -355,15 +355,15 @@\n Graph isSymmetric() method. This was useful in one application where the Graph object\r\n was constructed improperly.\r\n \u2022 The msglvl parameter determines the amount of output \u2014 taking msglvl >= 3 means\r\n the Graph object is written to the message \ufb01le.\r\n \u2022 The msgFile parameter determines the message \ufb01le \u2014 if msgFile is stdout, then the\r\n message \ufb01le is stdout, otherwise a \ufb01le is opened with append status to receive any output\r\n data.\r\n- Graph : DRAFT August 3, 2025 11\r\n+ Graph : DRAFT July 1, 2024 11\r\n \u2022 The inFile parameter is the input \ufb01le for the Graph object. It must be of the form\r\n *.graphfor*.graphb. TheGraphobjectisreadfromthe\ufb01leviatheGraph readFromFile()\r\n method.\r\n 7. testWirebasket msglvl msgFile inGraphFile inStagesFile\r\n outStagesFile radius\r\n This driver program reads in a Graph object and and a \ufb01le that contains the stages ids of the\r\n vertices, (stage equal to zero means the vertex is in the Schur complement), and overwrites the\r\n@@ -386,15 +386,15 @@\n the form *.ivf or *.ivb. The IV object is written to the \ufb01le via the IV writeToFile()\r\n method.\r\n \u2022 The radius parameter is used to de\ufb01ne the stage of a Schur complement vertex, namely\r\n the stage is the number of domains that are found within radius edges of the vertex.\r\n The two plots below illustrate the wirebasket stages for a 15\u00d715 grid. They show the stages\r\n for radius = 1 on the left and radius = 2 on the right. The domains are 3 \u00d7 3 subgrids\r\n whose vertices have labels equal to zero.\r\n- 12 Graph : DRAFT August 3, 2025\r\n+ 12 Graph : DRAFT July 1, 2024\r\n 0 0 0 2 0 0 0 2 0 0 0 2 0 0 0 0 0 0 2 0 0 0 2 0 0 0 2 0 0 0\r\n 0 0 0 2 0 0 0 2 0 0 0 2 0 0 0 0 0 0 2 0 0 0 2 0 0 0 2 0 0 0\r\n 0 0 0 2 0 0 0 2 0 0 0 2 0 0 0 0 0 0 4 0 0 0 4 0 0 0 4 0 0 0\r\n 2 2 2 4 2 2 2 4 2 2 2 4 2 2 2 2 2 4 4 4 2 4 4 4 2 4 4 4 2 2\r\n 0 0 0 2 0 0 0 2 0 0 0 2 0 0 0 0 0 0 4 0 0 0 4 0 0 0 4 0 0 0\r\n 0 0 0 2 0 0 0 2 0 0 0 2 0 0 0 0 0 0 2 0 0 0 2 0 0 0 2 0 0 0\r\n 0 0 0 2 0 0 0 2 0 0 0 2 0 0 0 0 0 0 4 0 0 0 4 0 0 0 4 0 0 0\r\n"}]}]}, {"source1": "./usr/share/doc/spooles-doc/I2Ohash.ps.gz", "source2": "./usr/share/doc/spooles-doc/I2Ohash.ps.gz", "unified_diff": null, "details": [{"source1": "I2Ohash.ps", "source2": "I2Ohash.ps", "unified_diff": "@@ -11,15 +11,15 @@\n %%EndComments\n %%BeginDefaults\n %%ViewingOrientation: 1 0 0 1\n %%EndDefaults\n %DVIPSWebPage: (www.radicaleye.com)\n %DVIPSCommandLine: dvips main -o I2Ohash.ps\n %DVIPSParameters: dpi=600\n-%DVIPSSource: TeX output 2025.08.03:1317\n+%DVIPSSource: TeX output 2024.07.01:0700\n %%BeginProcSet: tex.pro 0 0\n %!\n /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S\n N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72\n mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0\n 0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{\n landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize\n@@ -2423,23 +2423,22 @@\n /UnderlinePosition -100 def\n /UnderlineThickness 50 def\n end readonly def\n /Encoding 256 array\n 0 1 255 {1 index exch /.notdef put} for\n dup 44 /comma put\n dup 48 /zero put\n+dup 49 /one put\n dup 50 /two put\n-dup 51 /three put\n-dup 53 /five put\n+dup 52 /four put\n dup 58 /colon put\n-dup 65 /A put\n-dup 103 /g put\n-dup 115 /s put\n-dup 116 /t put\n+dup 74 /J put\n+dup 108 /l put\n dup 117 /u put\n+dup 121 /y put\n readonly def\n currentdict end\n currentfile eexec\n D9D66F633B846AB284BCF8B0411B772DE5CE32340DC6F28AF40857E4451976E7\n 5182433CF9F333A38BD841C0D4E68BF9E012EB32A8FFB76B5816306B5EDF7C99\n 8B3A16D9B4BC056662E32C7CD0123DFAEB734C7532E64BBFBF5A60336E646716\n EFB852C877F440D329172C71F1E5D59CE9473C26B8AEF7AD68EF0727B6EC2E0C\n@@ -2620,79 +2619,67 @@\n 7CA1534C4D5B05FC33F83790ECFD7641DF3FB94289E2A1F6E7D29AB1228A867A\n 6E1EF0E9C6F899B491DC18401C2C0A05FFFED46A72C245F7529B8EA55A038082\n 8512307217D2A233C37004085BA3AEE379269F9FA7D0ADB4B19A95CC2AFE686E\n 55D88E47257C1FE6F235FEA295910569FE6DD5995512562359CC821E85A6C7A5\n 79B470A9E340A6985189FF8B6AF914A6B0ECF93F47903221F95DE894A8F05B05\n B7D99CD533EC5F931B18E6B39BECF67FA2D6DD1AEC76772B068BE06335A94C05\n 7A4DDEE77B66101DA855C17AC312600370B34E31F5EC3A01300A8EB60B4C9767\n-1B2FA10DF7E91D3BB34A1B1CE7A0015A57C813E0280D873ADB88440048702D1F\n-77994EE04EC3B4531D6E1888C86A8F0DA6CF1F056F16AB0DD76C862830F89DA4\n-28923B3AA543E0D6E41D3BD283E600BC11F889315EE92C675C109C81065ED1BC\n-82A5583D1B723D50051B0557A367887F5B263014C6E77288B4883C50889473D3\n-3787BAD4BEB88BD1353AFA5B73E61814819537E7FF09F53EF94792BB3DD36ED0\n-002D0E7A6CDAB85A9C17AF5664BCB5A71663B861880F3ECCABC8E7A2FC81A4CC\n-AE7A87503FDC1CE0077BA51ECC7B43B60793FED8E9AAD5BBD03ADD6183DCD26D\n-24A74163611C05562437644EF9B8889FD4F9D311911204FEFD35237486F2D2D0\n-B6783A03BF12EA6D19D6D0F87E4D08515F12F9CBF1961CAA71E0D69FE3C4C4D2\n-7C7FB64ED24F8684C8F00C2BEDEA53EA390CDC0B5BEBD7DD982580B2EA1F1F89\n-CFED5916630DC2BA32BB9180277E1ABC339B3B7DE086717BD93F7FF3681BA5B3\n-FCF671C4B293C2DE4A322F0AA3323A4934444C69F23EF90120B8755482757759\n-C457A435FB8BB4922BD92C5F3D9555D978275C510183E29DFF2FCE4ABBFC18DE\n-76CAD3B486BA12047DD808CD4D521A0FD368E4AE79DE262630983A5D6F0B679D\n-2F005306393C520E1B6987302D029939D94B0178DC55D5264E1FEA468AD4134C\n-8C65B2FBBE8DE8284E8E1F6BFE0B648F44D3DA8E9350D266EDBFD4A7054D9355\n-1E0B185DED37BCF32D3731358F1D707C94109428BAD3CEA456A2A43553E3D2C2\n-F549189201F3D3F715310E3E8C6A2E9AA5141AA9125D203694C7D875C2DD320F\n-C5BCDFC924F6C04DBC7A97349B45ECD0FBD7D2123ED1D3A9F440B1112BE62779\n-47A4592F9285CBD9635EC9091CEC0AFD7E6B6976974081DB9C0E43165BD8584D\n-6CDF08DED287F0883A9FBD351B3F8706BA1E94C7CA487338269482EB8DC1A05D\n-F6632A5D834DE29228C49C5BA65EF7C535A53B380BF4B391F43562147538EE97\n-E799DFC2C40315859F56BBCE9CAE1DF9293F6E2C193ABE7A724EC8F32FA220E7\n-6026877A63E318254F2AF7B1325D63FC4C52B536D3EF354814C2F8F1EEA30569\n-6EF04447DB0F809DF35B4985B9FB4F4BB6087310BE633E76F268B32ABA99CE8E\n-03163DFF4AEDB88E60DD0848C15E90026D7C24D81122EBC07113F9851914A9D5\n-D0E09C2BFDDAF10C5D8208E8329BC0C402F231CD84C95EFDD182AD9756662110\n-274650C7A5BB0D8EFA54EC6C5A49C0EB26701A54779AE8EFBBED824262761602\n-680EDFB38F0FE18C0F501F5AA8BF48A8F0DD3E5E1EBEB872F6F6B23964707B32\n-507FC677B9FDDC990E3828B06420F6F968B2F6AE81E76A2144B1ECE905485616\n-CFB29AC96DDE1F5039935D7E385CC13E34DD7EAF276A2EA3A8BF27FD4205AE13\n-7FE620E42F2CF231C6C8DD8EFC5A6CF081E5660D9ADD730D72D15C02B1E15FF3\n-D741D3B1EB1E666C4E562219033C1E2EF3F96E136998B2E1890395A3637A2C02\n-DE1C46AFCA8D898439F06606A2295D3F7ED6C7DB250C61B6B97A0D5EDDB9657E\n-E790B4E07540BB1026036F4A0D00E7F16FD757AD61D686620C6814B7DCEC43E8\n-FD36D9E75BA554F64548A67D9B0A26E11784E58D4357FC251D71B5D6D8BFDDE0\n-D3BF0E825DA5312C1904AF13C5905C2ADF79C357476183D2EC5A95243235E861\n-2F98D9EE77EF8F8CB3EC6BD358C5ED37DD3AF44D60575E7774BF96F1AE9DFAD1\n-F8646DEDF21D10311854726B8F7D25876BB1EF78E2442B16ED4B851816CF0A27\n-11FDFCE525002A1A7C3E62CD2A3EDE6FAADB026D2F3A46C030ADB22422CA8FF5\n-2545ED58C0D9FB5BDB55FE674301E91A75B005B86BD201D246F7ADACE50419FD\n-AC3312CAC5EB78A36F0E5F62E65AC92129CB574AAC59E0A7C1390DFC61F39D9E\n-D7036742F2F6E64D1EF8157E9CCF65F3EEDC6A8220235978B8E06EB80F649F3E\n-204CFB497F49306EA8E1F7B62305978A28F1E771ED82C6592C71022154E4062A\n-A92335EFC65D6DED9C686899FFD7AA2988740618C03C5E362E1AF352E3BE4602\n-5530C51E5FC8E9082DF79199CC91C50174000D337D86127AC807C5A3C81DDE57\n-7A68AEE7230949B925365C214D77C80E87CEE218ABC94023717EA43BA5D8A7C8\n-8A8B9BD1B767996AE33050E3D922ED0574E3579C57E4BDDAD35883806AFDF260\n-3AB5D83D451583262E580FFDB7A27D82396AF18D92B849A3F7A7E621987D5DF0\n-038F876C6E9CA47FB11AF05F0019191C5DDC5F0177AD421E94BC66D0CCB82F1F\n-93A80836284B095503752C600F72E2C89112ABFA5B76152691264103B268B3E5\n-8816724ADADB38740001A9AACE05C8AF02D72918606DC22EFC8BF0DA0FD12FFE\n-D3A09F8E28057F327BFB633E604B1EAD478637B1D9631650B314CC62D7E0E87F\n-9D3FE1FFA23BB6E3006C3E39BED52F6B0C1C651B5913878F36DA0BF776889165\n-68BA3456B40B8B471CA8FF5238E43D9113E052A2B8D2EAA2433D3F89FCA48AFB\n-5E842913E4ED6DF9623354059CD1F1707B126FED80349787C869883120183EDD\n-249185A55503FAC53898F52170D05CAC62BB742CF9702C0518AED6B27CDC401C\n-932E02143FD916703F360CB31049501B35EF3EDDFED791090D0CFA221FD1DB32\n-7D4759CE07983AE29C258C705D11E7D9481EEAAB9B6BA65CDCF0AA0057BD6FEA\n-ABBFBD3ABF2A7BFB550C3D2A16DC447384A89F3DB6D9C2DBDCA997ABE35A7706\n-633D328AECEDB5BD07070C1B96267FD73B45791DD18194F60D358091FBE88409\n-973529806F3D2C9E6E39091F90A14B560A987E0B9490B9B690FB489B8E253070\n-D7C54447BE0E0A0BFEAEFFB581DC1300E6EC382984673BF0665632404E59B5BF\n-5D5F0A1C956E618C0487751CA5DAE8A95C214F76ED756694EF273679CD2D85CB\n-949DF385BD50491649EFEFDA1574921D7460143D42A100D2C76E55F0BC\n+1B2FA10DF7E91D3BB34A1B1CE7A0015A57C813E0280D873ADB8844004B9BA1CC\n+580D3C6BDA4DC1B80B4365F1C80512453FC5316EC2D928FB731C3D6403E3C18B\n+E8424D644DF5E9A2134229C5C91CA68DB8E85BA2BB40F538F585DA6FA4037718\n+B8053EBBA1E765346BCD5BDAA6C38115D31611D8A87A2238C145F2DA2F92E4DF\n+3987BD9C4D2A3D460E8941A68B125BCD9EE4F9FD262C4C8A71F47A2C81975635\n+F1B981C274C53FA2ACCDE4C9D0A7C62D6C1EFF91CFC6712CA6A9F333C9564FCB\n+2A70F0AD715A79B10A08AB069E2A3C93BC0AED19D0CA10134B8DDDE8AF548DB2\n+3A4AAA9C29682CF135BB767DAA16169A127EB50A7EECEB6480CF56A7D0F8AC56\n+4A5090B3D75A790372886AF568D94C8165975A05BFBFDF1FFBA45F70700BB9E0\n+57F3249EF9E9C8AD9CBCF6E4FD592DC4CDD2CC7C0BC3130C1059096C657BE453\n+A2CBACE93420210E27AF56CA229BD6D982FB68B3FDC6D44478B922C4231C47EE\n+E500232F6C11D92DEB955F66DF52B92B22E7352790CC2DCBAC53965D57AC2920\n+68B7D520DE25047146EFEB06B9AD4E2A94243C7E5239F0BC2FC312B16051D52C\n+0B92C217B6B42997321AE4F8BB066754B7AA3F15069EF59224E8A442CE471AA7\n+E8049A3DD9EDA09CCEE4998998661CF7DB35E952F6C65DAEB3013951C59F3E09\n+157F313B0237876E1C0190F0473819570B8C0205AADF05D787CC00979CFB327A\n+289382B22DDA6F12804ED0ED5B179E36A995A2A59E1B66E75130DBE9109C813B\n+94403E0DEA8314A1E9DB474D7FA83C0BAFD08033E6A6215844C1D26BE15F1251\n+A1605E8DF9A9C601ED37379530BC1C82BE5463C6C711C5652BFD6262485AA9CA\n+B8C4A117593001D08D980041E2A83C190DCE8E6CD3D334E5CC19FC05DB30F7F7\n+24A305C4DBB31F0651392B99D44B4302333BDF7E326FD256DD75D309C6E73F85\n+FA71B35FD1F9BEFF4C7A1076362EEB0A85492933B6006086A7B8C1928CF2D1EE\n+FD4344409257BB802C117E739960821CD3C88BFBA5669FF16F610AD638AF3677\n+8674C985E6767253ED5769F71BEA5E9BB02A751F9E62EE2B18AC19D975FDEAE9\n+8B8822367FF177A7E850766DE99ED3366D46464612926430012212A90F8E85F4\n+4760B40D5B86B90819EE410382D22D8ED82D0B0AB00C93E10CD365F8766D1C87\n+B4A866021FB6F6AC3D250CC601989B1B8FE6B1098A48282D2CF258BF38FEE940\n+CE0141FB1344156DE7712A8F2DBF700174F12616EE17C852210D96D03E5E6635\n+D439EB6E84A383DDD32AD72DADE6F931FDBABBDC726C36081C96018FC95EAE13\n+DA1F8DBC2D8355AC9792649653225393F4A7A88F3B9443FEEB75E2C15BF93F09\n+CCBA7FABC022BE26F4C28152D5DA6D690494AD4EC0DA1B598AE12536BADF88B5\n+5E20EB452546389F57FF55459567B453AE1831C57D22FA6A4FDF441EDAFDB7FB\n+4F4B707C1FF9159C40F7B5DD519FC07815EE91B8D756B6C18500BCF47D0D9E45\n+6A2D51B6AA5AEAAC9AB2DEF7F0FDE957B6C179CBADEECAC7E9CEC248AB135EB4\n+FBF83D002FF859B574EF36C371540EF2BCFCEF5C2E7863AEDD7C3C965103453B\n+023A9CEC1D5C45B88827ADF4AE0C6746F3C7E6A944427DAEC493601019583A16\n+0F846CE00EAE89EEFF9CE68A0E1D6EBB8FDD8A45D1BF399B36A8328EC957CB8B\n+D842A56269C8C9A6B472C9E65BCBC090606B4E8A7EF4ABDEA120C9F9B3969A1C\n+2EB102925F4E155160E58000E1ADB0D19E10EFD96F6C3225EEE8FC24D122C069\n+C11F1A69DC383F7DACD2F3929BD135CE69787C6E7560AC4B683FE5D9AAFD2E89\n+EE6D95E38C9B726B416E28169A11E29559DBA9AECD714CF318FCB78F34A0E562\n+9C00FE0C6D5A848557D9A82EC2BEFCD30B5EDC0B23C5BA9F812C864394C8B9D1\n+B08BAC9CF94E70FF842306ACCFE6E39A56777C712904A3AB29FBD19275E19E06\n+B35B37CFFFCEC81CAF2D85A853663FAFCFFED1EA77064AA28C15BC94910683BC\n+D09513079DE9EE18E97CC2403DD206516D7F652A3459870757F34EEDCEF952C3\n+FE8004F4716B5BD6774E455010B0BB1E61FCD66B9F14F9BBCCF3E55A158EE96E\n+9A05BDFDDC7706D4BC28FDDC4004EF3A430C607EBDF115E0C996454D70C8BB42\n+D7C83A454B116663D648C23CE2B33365810DE2B64D4AE011BC8043BC3E05B94D\n+1700F859C6AFC6515C1C42FA104EE3E8F3FA5F80252C2E79B00ED27F675FFD09\n+B50BF7A3C63CF4856F909DF969D7DD3EA05CABDD1E71A58CFC2AB5F614B4E5E0\n+25CF92E9FB66ACEBE05DF5E033DA8AD3EE32D94C02D98DD7DA99FAB5AEA595C3\n+2987DC122F0242D76B782349E4069DE0CDD6EF4375C680CBFE4C8F24F2AE89BF\n+7785F5EA7435A91500F265022C307E8ADEAAE1C6\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n@@ -4336,16 +4323,16 @@\n @start /Fa 150[31 43[45 61[{}2 90.9091 /CMMI10 rf /Fb\n 205[35 50[{}1 66.4176 /CMR8 rf /Fc 150[24 105[{}1 66.4176\n /CMMI8 rf /Fd 142[83 32[88 80[{}2 83.022 /CMEX10 rf /Fe\n 143[76 91[71 20[{}2 90.9091 /CMSY10 rf /Ff 133[50 59\n 4[44 44 46 2[56 62 93 31 2[31 62 2[51 62 50 1[54 11[86\n 5[84 5[42 6[80 13[56 56 56 56 2[31 46[{}24 99.6264 /CMBX12\n rf /Fg 139[62 62 3[62 4[62 1[62 2[62 1[62 62 62 17[62\n-5[62 22[62 50[{}12 119.552 /CMTT12 rf /Fh 138[51 35 36\n-11[45 37[68 6[25 4[45 1[45 45 1[45 3[25 44[{}11 90.9091\n+5[62 22[62 50[{}12 119.552 /CMTT12 rf /Fh 134[48 3[51\n+8[25 33[47 15[25 5[45 1[45 45 45 3[25 44[{}10 90.9091\n /CMSL10 rf /Fi 134[44 3[49 30 37 38 1[46 46 51 2[42 1[28\n 46 42 1[42 46 42 1[46 12[65 1[66 11[59 62 69 2[68 6[28\n 58[{}23 90.9091 /CMTI10 rf /Fj 134[71 2[71 75 52 53 55\n 1[75 67 75 112 3[37 75 67 41 61 75 60 1[65 13[75 2[92\n 11[103 16[67 67 67 2[37 46[{}25 119.552 /CMBX12 rf\n %DVIPSBitmapFont: Fk tcrm1095 10.95 1\n [/Grave/Acute/Circumflex/Tilde/Dieresis/Hungarumlaut/Ring/Caron/Breve/Macron\n@@ -4458,17 +4445,17 @@\n b(n)m(um)m(b)s(er)29 b(of)h(items)h(in)f(the)h(hash)f(table.)137\n 5294 y Fk(\\210)45 b Fl(I2OP)i(*baseI2OP)35 b Fm(:)j(p)s(oin)m(ter)g(to)\n h(an)f Fl(I2OP)f Fm(ob)5 b(ject)39 b(that)f(k)m(eeps)h(trac)m(k)g(of)f\n (all)h(the)f Fl(I2OP)f Fm(ob)5 b(jects)38 b(that)227\n 5407 y(ha)m(v)m(e)32 b(b)s(een)e(allo)s(cated)i(b)m(y)e(the)h(hash)e\n (table.)1927 5656 y(1)p eop end\n %%Page: 2 2\n-TeXDict begin 2 1 bop 0 100 a Fm(2)p 136 100 1098 4 v\n-1280 w Fl(I2Ohash)28 b Fh(:)41 b Fi(DRAFT)30 b Fh(August)g(3,)h(2025)p\n-2802 100 V 137 399 a Fk(\\210)45 b Fl(I2OP)i(*freeI2OP)28\n+TeXDict begin 2 1 bop 0 100 a Fm(2)p 136 100 1156 4 v\n+1338 w Fl(I2Ohash)28 b Fh(:)41 b Fi(DRAFT)30 b Fh(July)g(1,)h(2024)p\n+2745 100 V 137 399 a Fk(\\210)45 b Fl(I2OP)i(*freeI2OP)28\n b Fm(:)i(p)s(oin)m(ter)h(to)g(the)f(\\014rst)g Fl(I2OP)f\n Fm(ob)5 b(ject)31 b(on)g(the)f(free)h(list.)137 604 y\n Fk(\\210)45 b Fl(I2OP)i(**heads)26 b Fm(:)39 b(p)s(oin)m(ter)29\n b(to)f(a)h(v)m(ector)g(of)g(p)s(oin)m(ters)f(to)g Fl(I2OP)f\n Fm(ob)5 b(jects,)30 b(used)d(to)i(hold)e(a)i(p)s(oin)m(ter)f(to)h(the)\n 227 717 y(\\014rst)h Fl(I2OP)f Fm(ob)5 b(ject)31 b(in)f(eac)m(h)i(list.)\n 141 947 y(A)g(correctly)g(initialized)h(and)e(non)m(trivial)h\n@@ -4518,17 +4505,17 @@\n Fl(free\\(\\))p Fm(.)227 4909 y Fi(Err)-5 b(or)34 b(che)-5\n b(cking:)40 b Fm(If)30 b Fl(hashtable)e Fm(is)j Fl(NULL)p\n Fm(,)e(an)h(error)g(message)i(is)e(prin)m(ted)g(and)g(the)g(program)h\n (exits.)0 5202 y Ff(1.2.2)112 b(Initializer)38 b(metho)s(ds)0\n 5407 y Fm(There)30 b(is)g(one)h(initializer)h(metho)s(d.)p\n eop end\n %%Page: 3 3\n-TeXDict begin 3 2 bop 91 100 1098 4 v 1280 100 a Fl(I2Ohash)28\n-b Fh(:)41 b Fi(DRAFT)121 b Fh(August)30 b(3,)h(2025)p\n-2755 100 V 1098 w Fm(3)111 399 y(1.)46 b Fl(void)h(I2Ohash_init)d(\\()k\n+TeXDict begin 3 2 bop 91 100 1156 4 v 1337 100 a Fl(I2Ohash)29\n+b Fh(:)40 b Fi(DRAFT)121 b Fh(July)30 b(1,)h(2024)p 2697\n+100 V 1156 w Fm(3)111 399 y(1.)46 b Fl(void)h(I2Ohash_init)d(\\()k\n (I2Ohash)e(*hashtable,)e(int)j(nlist,)f(int)h(nobj,)g(int)g(grow)f(\\))i\n (;)227 542 y Fm(This)d(metho)s(d)h(is)g(the)g(basic)g(initializer)i\n (metho)s(d.)87 b(It)46 b(clears)h(an)m(y)g(previous)e(data)i(with)f(a)g\n (call)h(to)227 655 y Fl(I2Ohash)p 569 655 29 4 v 33 w(clearData\\(\\))p\n Fm(.)36 b(It)27 b(allo)s(cates)i(storage)f(for)e Fl(nlist)f\n Fm(lists)i(and)f(if)g Fl(nobj)g Fm(is)g(p)s(ositiv)m(e,)j(it)e(loads)g\n (the)227 768 y(free)k(list)g(with)f Fl(nobj)f(I2OP)g\n@@ -4604,17 +4591,17 @@\n (*hashtable,)g(FILE)i(*fp)g(\\))g(;)227 5151 y Fm(This)30\n b(metho)s(d)g(prin)m(ts)g(the)g(hash)g(table)h(in)f(a)h(h)m\n (uman-readable)f(format.)227 5294 y Fi(Err)-5 b(or)41\n b(che)-5 b(cking:)56 b Fm(If)38 b Fl(hashtable)e Fm(or)i\n Fl(fp)f Fm(is)i Fl(NULL)p Fm(,)e(an)h(error)g(message)h(is)f(prin)m\n (ted)g(and)g(the)g(program)227 5407 y(exits.)p eop end\n %%Page: 4 4\n-TeXDict begin 4 3 bop 0 100 a Fm(4)p 136 100 1098 4 v\n-1280 w Fl(I2Ohash)28 b Fh(:)41 b Fi(DRAFT)30 b Fh(August)g(3,)h(2025)p\n-2802 100 V 0 399 a Fj(1.3)135 b(Driv)l(er)46 b(programs)g(for)f(the)g\n+TeXDict begin 4 3 bop 0 100 a Fm(4)p 136 100 1156 4 v\n+1338 w Fl(I2Ohash)28 b Fh(:)41 b Fi(DRAFT)30 b Fh(July)g(1,)h(2024)p\n+2745 100 V 0 399 a Fj(1.3)135 b(Driv)l(er)46 b(programs)g(for)f(the)g\n Fg(I2Ohash)58 b(object)111 626 y Fm(1.)46 b Fl(test_hash)g(msglvl)g\n (msgFile)f(size)i(grow)g(maxkey)f(nent)g(seed)227 777\n y Fm(This)34 b(driv)m(er)h(program)g(tests)h(the)f Fl(I2Ohash)e\n Fm(insert)i(metho)s(d.)54 b(It)35 b(inserts)f(a)i(n)m(um)m(b)s(er)d(of)\n i(triples)h(in)m(to)g(a)227 890 y(hash)d(table)h(and)e(prin)m(ts)h(out)\n g(the)h(\\\\measure\")g(of)f(ho)m(w)g(w)m(ell)h(distributed)f(the)g(en)m\n (tries)h(are)f(in)g(the)h(hash)227 1002 y(table.)337\n", "details": [{"source1": "ps2ascii {}", "source2": "ps2ascii {}", "unified_diff": "@@ -21,15 +21,15 @@\n \u2022 int nlist : number of lists in the hash table\r\n \u2022 int grow : when no I2OP objects are available to insert a new triple,\r\n the object can allocate grow more I2OP objects and put them on the free list.\r\n \u2022 nitem : number of items in the hash table.\r\n \u2022 I2OP *baseI2OP : pointer to an I2OP object that keeps track of all the I2OP objects that\r\n have been allocated by the hash table.\r\n 1\r\n- 2 I2Ohash : DRAFT August 3, 2025\r\n+ 2 I2Ohash : DRAFT July 1, 2024\r\n \u2022 I2OP *freeI2OP : pointer to the \ufb01rst I2OP object on the free list.\r\n \u2022 I2OP **heads : pointer to a vector of pointers to I2OP objects, used to hold a pointer to the\r\n \ufb01rst I2OP object in each list.\r\n Acorrectly initialized and nontrivial I2Ohash object will have nlist > 0. If grow is zero and\r\n a new triple is given to the hash table to be inserted, a fatal error occurs.\r\n 1.2 Prototypes and descriptions of I2Ohash methods\r\n This section contains brief descriptions including prototypes of all methods that belong to the\r\n@@ -51,15 +51,15 @@\n Error checking: If hashtable is NULL, an error message is printed and the program exits.\r\n 4. void I2Ohash_free ( I2Ohash *hashtable ) ;\r\n This method releases any storage by a call to I2Ohash clearData() then free\u2019s the storage\r\n for the structure with a call to free().\r\n Error checking: If hashtable is NULL, an error message is printed and the program exits.\r\n 1.2.2 Initializer methods\r\n There is one initializer method.\r\n- I2Ohash : DRAFT August 3, 2025 3\r\n+ I2Ohash : DRAFT July 1, 2024 3\r\n 1. void I2Ohash_init ( I2Ohash *hashtable, int nlist, int nobj, int grow ) ;\r\n This method is the basic initializer method. It clears any previous data with a call to\r\n I2Ohash clearData(). It allocates storage for nlist lists and if nobj is positive, it loads the\r\n free list with nobj I2OP objects.\r\n Error checking: If hashtable is NULL, or if nlist \u2264 0, or if nobj and grow are both zero, an\r\n error message is printed and the program exits.\r\n 1.2.3 Utility methods\r\n@@ -92,15 +92,15 @@\n the triples are evenly distributed among nlist/k lists, the value is \u221ak.\r\n Error checking: If hashtable is NULL, an error message is printed and the program exits.\r\n 1.2.4 IO methods\r\n 1. void I2Ohash_writeForHumanEye ( I2Ohash *hashtable, FILE *fp ) ;\r\n This method prints the hash table in a human-readable format.\r\n Error checking: If hashtable or fp is NULL, an error message is printed and the program\r\n exits.\r\n- 4 I2Ohash : DRAFT August 3, 2025\r\n+ 4 I2Ohash : DRAFT July 1, 2024\r\n 1.3 Driver programs for the I2Ohash object\r\n 1. test_hash msglvl msgFile size grow maxkey nent seed\r\n This driver program tests the I2Ohash insert method. It inserts a number of triples into a\r\n hash table and prints out the \u201cmeasure\u201d of how well distributed the entries are in the hash\r\n table.\r\n \u2022 The msglvl parameter determines the amount of output. Use msglvl = 1 for just\r\n timing output.\r\n"}]}]}, {"source1": "./usr/share/doc/spooles-doc/IIheap.ps.gz", "source2": "./usr/share/doc/spooles-doc/IIheap.ps.gz", "unified_diff": null, "details": [{"source1": "IIheap.ps", "source2": "IIheap.ps", "unified_diff": "@@ -11,15 +11,15 @@\n %%EndComments\n %%BeginDefaults\n %%ViewingOrientation: 1 0 0 1\n %%EndDefaults\n %DVIPSWebPage: (www.radicaleye.com)\n %DVIPSCommandLine: dvips main -o IIheap.ps\n %DVIPSParameters: dpi=600\n-%DVIPSSource: TeX output 2025.08.03:1317\n+%DVIPSSource: TeX output 2024.07.01:0700\n %%BeginProcSet: tex.pro 0 0\n %!\n /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S\n N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72\n mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0\n 0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{\n landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize\n@@ -1276,23 +1276,22 @@\n /UnderlinePosition -100 def\n /UnderlineThickness 50 def\n end readonly def\n /Encoding 256 array\n 0 1 255 {1 index exch /.notdef put} for\n dup 44 /comma put\n dup 48 /zero put\n+dup 49 /one put\n dup 50 /two put\n-dup 51 /three put\n-dup 53 /five put\n+dup 52 /four put\n dup 58 /colon put\n-dup 65 /A put\n-dup 103 /g put\n-dup 115 /s put\n-dup 116 /t put\n+dup 74 /J put\n+dup 108 /l put\n dup 117 /u put\n+dup 121 /y put\n readonly def\n currentdict end\n currentfile eexec\n D9D66F633B846AB284BCF8B0411B772DE5CE32340DC6F28AF40857E4451976E7\n 5182433CF9F333A38BD841C0D4E68BF9E012EB32A8FFB76B5816306B5EDF7C99\n 8B3A16D9B4BC056662E32C7CD0123DFAEB734C7532E64BBFBF5A60336E646716\n EFB852C877F440D329172C71F1E5D59CE9473C26B8AEF7AD68EF0727B6EC2E0C\n@@ -1473,79 +1472,67 @@\n 7CA1534C4D5B05FC33F83790ECFD7641DF3FB94289E2A1F6E7D29AB1228A867A\n 6E1EF0E9C6F899B491DC18401C2C0A05FFFED46A72C245F7529B8EA55A038082\n 8512307217D2A233C37004085BA3AEE379269F9FA7D0ADB4B19A95CC2AFE686E\n 55D88E47257C1FE6F235FEA295910569FE6DD5995512562359CC821E85A6C7A5\n 79B470A9E340A6985189FF8B6AF914A6B0ECF93F47903221F95DE894A8F05B05\n B7D99CD533EC5F931B18E6B39BECF67FA2D6DD1AEC76772B068BE06335A94C05\n 7A4DDEE77B66101DA855C17AC312600370B34E31F5EC3A01300A8EB60B4C9767\n-1B2FA10DF7E91D3BB34A1B1CE7A0015A57C813E0280D873ADB88440048702D1F\n-77994EE04EC3B4531D6E1888C86A8F0DA6CF1F056F16AB0DD76C862830F89DA4\n-28923B3AA543E0D6E41D3BD283E600BC11F889315EE92C675C109C81065ED1BC\n-82A5583D1B723D50051B0557A367887F5B263014C6E77288B4883C50889473D3\n-3787BAD4BEB88BD1353AFA5B73E61814819537E7FF09F53EF94792BB3DD36ED0\n-002D0E7A6CDAB85A9C17AF5664BCB5A71663B861880F3ECCABC8E7A2FC81A4CC\n-AE7A87503FDC1CE0077BA51ECC7B43B60793FED8E9AAD5BBD03ADD6183DCD26D\n-24A74163611C05562437644EF9B8889FD4F9D311911204FEFD35237486F2D2D0\n-B6783A03BF12EA6D19D6D0F87E4D08515F12F9CBF1961CAA71E0D69FE3C4C4D2\n-7C7FB64ED24F8684C8F00C2BEDEA53EA390CDC0B5BEBD7DD982580B2EA1F1F89\n-CFED5916630DC2BA32BB9180277E1ABC339B3B7DE086717BD93F7FF3681BA5B3\n-FCF671C4B293C2DE4A322F0AA3323A4934444C69F23EF90120B8755482757759\n-C457A435FB8BB4922BD92C5F3D9555D978275C510183E29DFF2FCE4ABBFC18DE\n-76CAD3B486BA12047DD808CD4D521A0FD368E4AE79DE262630983A5D6F0B679D\n-2F005306393C520E1B6987302D029939D94B0178DC55D5264E1FEA468AD4134C\n-8C65B2FBBE8DE8284E8E1F6BFE0B648F44D3DA8E9350D266EDBFD4A7054D9355\n-1E0B185DED37BCF32D3731358F1D707C94109428BAD3CEA456A2A43553E3D2C2\n-F549189201F3D3F715310E3E8C6A2E9AA5141AA9125D203694C7D875C2DD320F\n-C5BCDFC924F6C04DBC7A97349B45ECD0FBD7D2123ED1D3A9F440B1112BE62779\n-47A4592F9285CBD9635EC9091CEC0AFD7E6B6976974081DB9C0E43165BD8584D\n-6CDF08DED287F0883A9FBD351B3F8706BA1E94C7CA487338269482EB8DC1A05D\n-F6632A5D834DE29228C49C5BA65EF7C535A53B380BF4B391F43562147538EE97\n-E799DFC2C40315859F56BBCE9CAE1DF9293F6E2C193ABE7A724EC8F32FA220E7\n-6026877A63E318254F2AF7B1325D63FC4C52B536D3EF354814C2F8F1EEA30569\n-6EF04447DB0F809DF35B4985B9FB4F4BB6087310BE633E76F268B32ABA99CE8E\n-03163DFF4AEDB88E60DD0848C15E90026D7C24D81122EBC07113F9851914A9D5\n-D0E09C2BFDDAF10C5D8208E8329BC0C402F231CD84C95EFDD182AD9756662110\n-274650C7A5BB0D8EFA54EC6C5A49C0EB26701A54779AE8EFBBED824262761602\n-680EDFB38F0FE18C0F501F5AA8BF48A8F0DD3E5E1EBEB872F6F6B23964707B32\n-507FC677B9FDDC990E3828B06420F6F968B2F6AE81E76A2144B1ECE905485616\n-CFB29AC96DDE1F5039935D7E385CC13E34DD7EAF276A2EA3A8BF27FD4205AE13\n-7FE620E42F2CF231C6C8DD8EFC5A6CF081E5660D9ADD730D72D15C02B1E15FF3\n-D741D3B1EB1E666C4E562219033C1E2EF3F96E136998B2E1890395A3637A2C02\n-DE1C46AFCA8D898439F06606A2295D3F7ED6C7DB250C61B6B97A0D5EDDB9657E\n-E790B4E07540BB1026036F4A0D00E7F16FD757AD61D686620C6814B7DCEC43E8\n-FD36D9E75BA554F64548A67D9B0A26E11784E58D4357FC251D71B5D6D8BFDDE0\n-D3BF0E825DA5312C1904AF13C5905C2ADF79C357476183D2EC5A95243235E861\n-2F98D9EE77EF8F8CB3EC6BD358C5ED37DD3AF44D60575E7774BF96F1AE9DFAD1\n-F8646DEDF21D10311854726B8F7D25876BB1EF78E2442B16ED4B851816CF0A27\n-11FDFCE525002A1A7C3E62CD2A3EDE6FAADB026D2F3A46C030ADB22422CA8FF5\n-2545ED58C0D9FB5BDB55FE674301E91A75B005B86BD201D246F7ADACE50419FD\n-AC3312CAC5EB78A36F0E5F62E65AC92129CB574AAC59E0A7C1390DFC61F39D9E\n-D7036742F2F6E64D1EF8157E9CCF65F3EEDC6A8220235978B8E06EB80F649F3E\n-204CFB497F49306EA8E1F7B62305978A28F1E771ED82C6592C71022154E4062A\n-A92335EFC65D6DED9C686899FFD7AA2988740618C03C5E362E1AF352E3BE4602\n-5530C51E5FC8E9082DF79199CC91C50174000D337D86127AC807C5A3C81DDE57\n-7A68AEE7230949B925365C214D77C80E87CEE218ABC94023717EA43BA5D8A7C8\n-8A8B9BD1B767996AE33050E3D922ED0574E3579C57E4BDDAD35883806AFDF260\n-3AB5D83D451583262E580FFDB7A27D82396AF18D92B849A3F7A7E621987D5DF0\n-038F876C6E9CA47FB11AF05F0019191C5DDC5F0177AD421E94BC66D0CCB82F1F\n-93A80836284B095503752C600F72E2C89112ABFA5B76152691264103B268B3E5\n-8816724ADADB38740001A9AACE05C8AF02D72918606DC22EFC8BF0DA0FD12FFE\n-D3A09F8E28057F327BFB633E604B1EAD478637B1D9631650B314CC62D7E0E87F\n-9D3FE1FFA23BB6E3006C3E39BED52F6B0C1C651B5913878F36DA0BF776889165\n-68BA3456B40B8B471CA8FF5238E43D9113E052A2B8D2EAA2433D3F89FCA48AFB\n-5E842913E4ED6DF9623354059CD1F1707B126FED80349787C869883120183EDD\n-249185A55503FAC53898F52170D05CAC62BB742CF9702C0518AED6B27CDC401C\n-932E02143FD916703F360CB31049501B35EF3EDDFED791090D0CFA221FD1DB32\n-7D4759CE07983AE29C258C705D11E7D9481EEAAB9B6BA65CDCF0AA0057BD6FEA\n-ABBFBD3ABF2A7BFB550C3D2A16DC447384A89F3DB6D9C2DBDCA997ABE35A7706\n-633D328AECEDB5BD07070C1B96267FD73B45791DD18194F60D358091FBE88409\n-973529806F3D2C9E6E39091F90A14B560A987E0B9490B9B690FB489B8E253070\n-D7C54447BE0E0A0BFEAEFFB581DC1300E6EC382984673BF0665632404E59B5BF\n-5D5F0A1C956E618C0487751CA5DAE8A95C214F76ED756694EF273679CD2D85CB\n-949DF385BD50491649EFEFDA1574921D7460143D42A100D2C76E55F0BC\n+1B2FA10DF7E91D3BB34A1B1CE7A0015A57C813E0280D873ADB8844004B9BA1CC\n+580D3C6BDA4DC1B80B4365F1C80512453FC5316EC2D928FB731C3D6403E3C18B\n+E8424D644DF5E9A2134229C5C91CA68DB8E85BA2BB40F538F585DA6FA4037718\n+B8053EBBA1E765346BCD5BDAA6C38115D31611D8A87A2238C145F2DA2F92E4DF\n+3987BD9C4D2A3D460E8941A68B125BCD9EE4F9FD262C4C8A71F47A2C81975635\n+F1B981C274C53FA2ACCDE4C9D0A7C62D6C1EFF91CFC6712CA6A9F333C9564FCB\n+2A70F0AD715A79B10A08AB069E2A3C93BC0AED19D0CA10134B8DDDE8AF548DB2\n+3A4AAA9C29682CF135BB767DAA16169A127EB50A7EECEB6480CF56A7D0F8AC56\n+4A5090B3D75A790372886AF568D94C8165975A05BFBFDF1FFBA45F70700BB9E0\n+57F3249EF9E9C8AD9CBCF6E4FD592DC4CDD2CC7C0BC3130C1059096C657BE453\n+A2CBACE93420210E27AF56CA229BD6D982FB68B3FDC6D44478B922C4231C47EE\n+E500232F6C11D92DEB955F66DF52B92B22E7352790CC2DCBAC53965D57AC2920\n+68B7D520DE25047146EFEB06B9AD4E2A94243C7E5239F0BC2FC312B16051D52C\n+0B92C217B6B42997321AE4F8BB066754B7AA3F15069EF59224E8A442CE471AA7\n+E8049A3DD9EDA09CCEE4998998661CF7DB35E952F6C65DAEB3013951C59F3E09\n+157F313B0237876E1C0190F0473819570B8C0205AADF05D787CC00979CFB327A\n+289382B22DDA6F12804ED0ED5B179E36A995A2A59E1B66E75130DBE9109C813B\n+94403E0DEA8314A1E9DB474D7FA83C0BAFD08033E6A6215844C1D26BE15F1251\n+A1605E8DF9A9C601ED37379530BC1C82BE5463C6C711C5652BFD6262485AA9CA\n+B8C4A117593001D08D980041E2A83C190DCE8E6CD3D334E5CC19FC05DB30F7F7\n+24A305C4DBB31F0651392B99D44B4302333BDF7E326FD256DD75D309C6E73F85\n+FA71B35FD1F9BEFF4C7A1076362EEB0A85492933B6006086A7B8C1928CF2D1EE\n+FD4344409257BB802C117E739960821CD3C88BFBA5669FF16F610AD638AF3677\n+8674C985E6767253ED5769F71BEA5E9BB02A751F9E62EE2B18AC19D975FDEAE9\n+8B8822367FF177A7E850766DE99ED3366D46464612926430012212A90F8E85F4\n+4760B40D5B86B90819EE410382D22D8ED82D0B0AB00C93E10CD365F8766D1C87\n+B4A866021FB6F6AC3D250CC601989B1B8FE6B1098A48282D2CF258BF38FEE940\n+CE0141FB1344156DE7712A8F2DBF700174F12616EE17C852210D96D03E5E6635\n+D439EB6E84A383DDD32AD72DADE6F931FDBABBDC726C36081C96018FC95EAE13\n+DA1F8DBC2D8355AC9792649653225393F4A7A88F3B9443FEEB75E2C15BF93F09\n+CCBA7FABC022BE26F4C28152D5DA6D690494AD4EC0DA1B598AE12536BADF88B5\n+5E20EB452546389F57FF55459567B453AE1831C57D22FA6A4FDF441EDAFDB7FB\n+4F4B707C1FF9159C40F7B5DD519FC07815EE91B8D756B6C18500BCF47D0D9E45\n+6A2D51B6AA5AEAAC9AB2DEF7F0FDE957B6C179CBADEECAC7E9CEC248AB135EB4\n+FBF83D002FF859B574EF36C371540EF2BCFCEF5C2E7863AEDD7C3C965103453B\n+023A9CEC1D5C45B88827ADF4AE0C6746F3C7E6A944427DAEC493601019583A16\n+0F846CE00EAE89EEFF9CE68A0E1D6EBB8FDD8A45D1BF399B36A8328EC957CB8B\n+D842A56269C8C9A6B472C9E65BCBC090606B4E8A7EF4ABDEA120C9F9B3969A1C\n+2EB102925F4E155160E58000E1ADB0D19E10EFD96F6C3225EEE8FC24D122C069\n+C11F1A69DC383F7DACD2F3929BD135CE69787C6E7560AC4B683FE5D9AAFD2E89\n+EE6D95E38C9B726B416E28169A11E29559DBA9AECD714CF318FCB78F34A0E562\n+9C00FE0C6D5A848557D9A82EC2BEFCD30B5EDC0B23C5BA9F812C864394C8B9D1\n+B08BAC9CF94E70FF842306ACCFE6E39A56777C712904A3AB29FBD19275E19E06\n+B35B37CFFFCEC81CAF2D85A853663FAFCFFED1EA77064AA28C15BC94910683BC\n+D09513079DE9EE18E97CC2403DD206516D7F652A3459870757F34EEDCEF952C3\n+FE8004F4716B5BD6774E455010B0BB1E61FCD66B9F14F9BBCCF3E55A158EE96E\n+9A05BDFDDC7706D4BC28FDDC4004EF3A430C607EBDF115E0C996454D70C8BB42\n+D7C83A454B116663D648C23CE2B33365810DE2B64D4AE011BC8043BC3E05B94D\n+1700F859C6AFC6515C1C42FA104EE3E8F3FA5F80252C2E79B00ED27F675FFD09\n+B50BF7A3C63CF4856F909DF969D7DD3EA05CABDD1E71A58CFC2AB5F614B4E5E0\n+25CF92E9FB66ACEBE05DF5E033DA8AD3EE32D94C02D98DD7DA99FAB5AEA595C3\n+2987DC122F0242D76B782349E4069DE0CDD6EF4375C680CBFE4C8F24F2AE89BF\n+7785F5EA7435A91500F265022C307E8ADEAAE1C6\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n@@ -3715,16 +3702,16 @@\n cleartomark\n {restore}if\n %%EndFont \n TeXDict begin 39158280 55380996 1000 600 600 (main.dvi)\n @start /Fa 235[71 20[{}1 90.9091 /CMSY10 rf /Fb 133[50\n 59 4[44 44 46 2[56 62 93 31 2[31 62 2[51 62 50 1[54 11[86\n 11[42 6[80 14[56 56 56 2[31 46[{}22 99.6264 /CMBX12 rf\n-/Fc 138[51 35 36 11[45 37[68 6[25 4[45 1[45 45 1[45 3[25\n-44[{}11 90.9091 /CMSL10 rf /Fd 143[62 7[62 2[62 3[62\n+/Fc 134[48 3[51 8[25 33[47 15[25 5[45 1[45 45 45 3[25\n+44[{}10 90.9091 /CMSL10 rf /Fd 143[62 7[62 2[62 3[62\n 23[62 73[{}5 119.552 /CMTT12 rf\n %DVIPSBitmapFont: Fe tcrm1095 10.95 1\n [/Grave/Acute/Circumflex/Tilde/Dieresis/Hungarumlaut/Ring/Caron/Breve/Macron\n /Dotaccent/cedilla/ogonek/quotesinglbase.ts1 4{/.notdef}repeat\n /quotedblbase.ts1/.notdef/.notdef/twelveudash/threequartersemdash\n /afii61664.cap/arrowleft/arrowright/tieaccentlowercase/tieaccentcapital\n /tieaccentlowercase.new/tieaccentcapital.new/.notdef/afii61664.asc/uni2422 3\n@@ -3831,17 +3818,17 @@\n 4724 y(maxsize)p Fk(.)0 5059 y Ff(1.2)135 b(Protot)l(yp)t(es)46\n b(and)f(descriptions)g(of)g Fd(IIheap)d Ff(metho)t(ds)0\n 5294 y Fk(This)f(section)j(con)m(tains)f(brief)f(descriptions)g\n (including)f(protot)m(yp)s(es)i(of)f(all)h(metho)s(ds)f(that)h(b)s\n (elong)f(to)h(the)0 5407 y Fj(IIheap)29 b Fk(ob)5 b(ject.)1927\n 5656 y(1)p eop end\n %%Page: 2 2\n-TeXDict begin 2 1 bop 0 100 a Fk(2)p 136 100 1122 4 v\n-1304 w Fj(IIheap)29 b Fc(:)40 b Fi(DRAFT)30 b Fc(August)h(3,)g(2025)p\n-2778 100 V 0 399 a Fb(1.2.1)112 b(Basic)38 b(metho)s(ds)0\n+TeXDict begin 2 1 bop 0 100 a Fk(2)p 136 100 1180 4 v\n+1362 w Fj(IIheap)28 b Fc(:)41 b Fi(DRAFT)30 b Fc(July)g(1,)h(2024)p\n+2721 100 V 0 399 a Fb(1.2.1)112 b(Basic)38 b(metho)s(ds)0\n 601 y Fk(As)d(usual,)h(there)f(are)g(four)f(basic)h(metho)s(ds)g(to)g\n (supp)s(ort)e(ob)5 b(ject)36 b(creation,)i(setting)e(default)f\n (\\014elds,)h(clearing)0 714 y(an)m(y)31 b(allo)s(cated)h(data,)f(and)f\n (free'ing)h(the)g(ob)5 b(ject.)111 965 y(1.)46 b Fj(IIheap)g(*)i\n (IIheap_new)d(\\()i(void)g(\\))g(;)227 1121 y Fk(This)25\n b(metho)s(d)g(simply)f(allo)s(cates)k(storage)f(for)e(the)h\n Fj(IIheap)d Fk(structure)i(and)g(then)g(sets)g(the)h(default)f\n@@ -3891,17 +3878,17 @@\n 5095 y Fk(1.)46 b Fj(int)h(IIheap_sizeOf)d(\\()k(IIheap)e(*heap)g(\\))i\n (;)227 5251 y Fk(This)30 b(metho)s(d)g(returns)f(the)h(n)m(um)m(b)s(er)\n f(of)i(b)m(ytes)g(tak)m(en)g(b)m(y)g(this)f(ob)5 b(ject.)227\n 5407 y Fi(Err)-5 b(or)34 b(che)-5 b(cking:)40 b Fk(If)30\n b Fj(heap)g Fk(is)g Fj(NULL)p Fk(,)f(an)i(error)f(message)h(is)g(prin)m\n (ted)f(and)f(the)i(program)f(exits.)p eop end\n %%Page: 3 3\n-TeXDict begin 3 2 bop 91 100 1122 4 v 1303 100 a Fj(IIheap)29\n-b Fc(:)41 b Fi(DRAFT)121 b Fc(August)30 b(3,)h(2025)p\n-2731 100 V 1122 w Fk(3)111 399 y(2.)46 b Fj(void)h(IIheap_root)e(\\()i\n+TeXDict begin 3 2 bop 91 100 1180 4 v 1361 100 a Fj(IIheap)29\n+b Fc(:)40 b Fi(DRAFT)122 b Fc(July)29 b(1,)i(2024)p 2673\n+100 V 1180 w Fk(3)111 399 y(2.)46 b Fj(void)h(IIheap_root)e(\\()i\n (IIheap)f(*heap,)g(int)h(*pkey,)f(int)h(*pvalue)f(\\))h(;)227\n 549 y Fk(This)32 b(metho)s(d)g(\\014lls)h Fj(*pid)e Fk(and)i\n Fj(*pkey)e Fk(with)h(the)h(k)m(ey)h(and)e(v)-5 b(alue,)34\n b(resp)s(ectiv)m(ely)-8 b(,)35 b(of)e(the)g(ro)s(ot)g(elemen)m(t,)227\n 662 y(an)e(elemen)m(t)g(with)f(minim)m(um)g(v)-5 b(alue.)41\n b(If)30 b Fj(size)47 b(==)g(0)30 b Fk(then)g Fj(-1)g\n Fk(is)g(returned.)227 812 y Fi(Err)-5 b(or)30 b(che)-5\n", "details": [{"source1": "ps2ascii {}", "source2": "ps2ascii {}", "unified_diff": "@@ -17,15 +17,15 @@\n location loc\r\n A correctly initialized and nontrivial IIheap object will have maxsize > 0 and 0 <= size <\r\n maxsize.\r\n 1.2 Prototypes and descriptions of IIheap methods\r\n This section contains brief descriptions including prototypes of all methods that belong to the\r\n IIheap object.\r\n 1\r\n- 2 IIheap : DRAFT August 3, 2025\r\n+ 2 IIheap : DRAFT July 1, 2024\r\n 1.2.1 Basic methods\r\n As usual, there are four basic methods to support object creation, setting default \ufb01elds, clearing\r\n any allocated data, and free\u2019ing the object.\r\n 1. IIheap * IIheap_new ( void ) ;\r\n This method simply allocates storage for the IIheap structure and then sets the default \ufb01elds\r\n by a call to IIheap setDefaultFields().\r\n 2. void IIheap_setDefaultFields ( IIheap *heap ) ;\r\n@@ -49,15 +49,15 @@\n IVinit(). The entries in the three vectors are set to -1.\r\n Error checking: If heap is NULL, or if maxsize \u2264 0, an error message is printed and the\r\n program exits.\r\n 1.2.3 Utility methods\r\n 1. int IIheap_sizeOf ( IIheap *heap ) ;\r\n This method returns the number of bytes taken by this object.\r\n Error checking: If heap is NULL, an error message is printed and the program exits.\r\n- IIheap : DRAFT August 3, 2025 3\r\n+ IIheap : DRAFT July 1, 2024 3\r\n 2. void IIheap_root ( IIheap *heap, int *pkey, int *pvalue ) ;\r\n This method \ufb01lls *pid and *pkey with the key and value, respectively, of the root element,\r\n an element with minimum value. If size == 0 then -1 is returned.\r\n Error checking: If heap, pkey or pvalue is NULL, an error message is printed and the program\r\n exits.\r\n 3. void IIheap_insert ( IIheap *heap, int key, int value ) ;\r\n This method inserts the pair (key,value) into the heap.\r\n"}]}]}, {"source1": "./usr/share/doc/spooles-doc/IV.ps.gz", "source2": "./usr/share/doc/spooles-doc/IV.ps.gz", "unified_diff": null, "details": [{"source1": "IV.ps", "source2": "IV.ps", "unified_diff": "@@ -10,15 +10,15 @@\n %%EndComments\n %%BeginDefaults\n %%ViewingOrientation: 1 0 0 1\n %%EndDefaults\n %DVIPSWebPage: (www.radicaleye.com)\n %DVIPSCommandLine: dvips main -o IV.ps\n %DVIPSParameters: dpi=600\n-%DVIPSSource: TeX output 2025.08.03:1317\n+%DVIPSSource: TeX output 2024.07.01:0700\n %%BeginProcSet: tex.pro 0 0\n %!\n /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S\n N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72\n mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0\n 0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{\n landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize\n@@ -1608,23 +1608,22 @@\n /UnderlinePosition -100 def\n /UnderlineThickness 50 def\n end readonly def\n /Encoding 256 array\n 0 1 255 {1 index exch /.notdef put} for\n dup 44 /comma put\n dup 48 /zero put\n+dup 49 /one put\n dup 50 /two put\n-dup 51 /three put\n-dup 53 /five put\n+dup 52 /four put\n dup 58 /colon put\n-dup 65 /A put\n-dup 103 /g put\n-dup 115 /s put\n-dup 116 /t put\n+dup 74 /J put\n+dup 108 /l put\n dup 117 /u put\n+dup 121 /y put\n readonly def\n currentdict end\n currentfile eexec\n D9D66F633B846AB284BCF8B0411B772DE5CE32340DC6F28AF40857E4451976E7\n 5182433CF9F333A38BD841C0D4E68BF9E012EB32A8FFB76B5816306B5EDF7C99\n 8B3A16D9B4BC056662E32C7CD0123DFAEB734C7532E64BBFBF5A60336E646716\n EFB852C877F440D329172C71F1E5D59CE9473C26B8AEF7AD68EF0727B6EC2E0C\n@@ -1805,79 +1804,67 @@\n 7CA1534C4D5B05FC33F83790ECFD7641DF3FB94289E2A1F6E7D29AB1228A867A\n 6E1EF0E9C6F899B491DC18401C2C0A05FFFED46A72C245F7529B8EA55A038082\n 8512307217D2A233C37004085BA3AEE379269F9FA7D0ADB4B19A95CC2AFE686E\n 55D88E47257C1FE6F235FEA295910569FE6DD5995512562359CC821E85A6C7A5\n 79B470A9E340A6985189FF8B6AF914A6B0ECF93F47903221F95DE894A8F05B05\n B7D99CD533EC5F931B18E6B39BECF67FA2D6DD1AEC76772B068BE06335A94C05\n 7A4DDEE77B66101DA855C17AC312600370B34E31F5EC3A01300A8EB60B4C9767\n-1B2FA10DF7E91D3BB34A1B1CE7A0015A57C813E0280D873ADB88440048702D1F\n-77994EE04EC3B4531D6E1888C86A8F0DA6CF1F056F16AB0DD76C862830F89DA4\n-28923B3AA543E0D6E41D3BD283E600BC11F889315EE92C675C109C81065ED1BC\n-82A5583D1B723D50051B0557A367887F5B263014C6E77288B4883C50889473D3\n-3787BAD4BEB88BD1353AFA5B73E61814819537E7FF09F53EF94792BB3DD36ED0\n-002D0E7A6CDAB85A9C17AF5664BCB5A71663B861880F3ECCABC8E7A2FC81A4CC\n-AE7A87503FDC1CE0077BA51ECC7B43B60793FED8E9AAD5BBD03ADD6183DCD26D\n-24A74163611C05562437644EF9B8889FD4F9D311911204FEFD35237486F2D2D0\n-B6783A03BF12EA6D19D6D0F87E4D08515F12F9CBF1961CAA71E0D69FE3C4C4D2\n-7C7FB64ED24F8684C8F00C2BEDEA53EA390CDC0B5BEBD7DD982580B2EA1F1F89\n-CFED5916630DC2BA32BB9180277E1ABC339B3B7DE086717BD93F7FF3681BA5B3\n-FCF671C4B293C2DE4A322F0AA3323A4934444C69F23EF90120B8755482757759\n-C457A435FB8BB4922BD92C5F3D9555D978275C510183E29DFF2FCE4ABBFC18DE\n-76CAD3B486BA12047DD808CD4D521A0FD368E4AE79DE262630983A5D6F0B679D\n-2F005306393C520E1B6987302D029939D94B0178DC55D5264E1FEA468AD4134C\n-8C65B2FBBE8DE8284E8E1F6BFE0B648F44D3DA8E9350D266EDBFD4A7054D9355\n-1E0B185DED37BCF32D3731358F1D707C94109428BAD3CEA456A2A43553E3D2C2\n-F549189201F3D3F715310E3E8C6A2E9AA5141AA9125D203694C7D875C2DD320F\n-C5BCDFC924F6C04DBC7A97349B45ECD0FBD7D2123ED1D3A9F440B1112BE62779\n-47A4592F9285CBD9635EC9091CEC0AFD7E6B6976974081DB9C0E43165BD8584D\n-6CDF08DED287F0883A9FBD351B3F8706BA1E94C7CA487338269482EB8DC1A05D\n-F6632A5D834DE29228C49C5BA65EF7C535A53B380BF4B391F43562147538EE97\n-E799DFC2C40315859F56BBCE9CAE1DF9293F6E2C193ABE7A724EC8F32FA220E7\n-6026877A63E318254F2AF7B1325D63FC4C52B536D3EF354814C2F8F1EEA30569\n-6EF04447DB0F809DF35B4985B9FB4F4BB6087310BE633E76F268B32ABA99CE8E\n-03163DFF4AEDB88E60DD0848C15E90026D7C24D81122EBC07113F9851914A9D5\n-D0E09C2BFDDAF10C5D8208E8329BC0C402F231CD84C95EFDD182AD9756662110\n-274650C7A5BB0D8EFA54EC6C5A49C0EB26701A54779AE8EFBBED824262761602\n-680EDFB38F0FE18C0F501F5AA8BF48A8F0DD3E5E1EBEB872F6F6B23964707B32\n-507FC677B9FDDC990E3828B06420F6F968B2F6AE81E76A2144B1ECE905485616\n-CFB29AC96DDE1F5039935D7E385CC13E34DD7EAF276A2EA3A8BF27FD4205AE13\n-7FE620E42F2CF231C6C8DD8EFC5A6CF081E5660D9ADD730D72D15C02B1E15FF3\n-D741D3B1EB1E666C4E562219033C1E2EF3F96E136998B2E1890395A3637A2C02\n-DE1C46AFCA8D898439F06606A2295D3F7ED6C7DB250C61B6B97A0D5EDDB9657E\n-E790B4E07540BB1026036F4A0D00E7F16FD757AD61D686620C6814B7DCEC43E8\n-FD36D9E75BA554F64548A67D9B0A26E11784E58D4357FC251D71B5D6D8BFDDE0\n-D3BF0E825DA5312C1904AF13C5905C2ADF79C357476183D2EC5A95243235E861\n-2F98D9EE77EF8F8CB3EC6BD358C5ED37DD3AF44D60575E7774BF96F1AE9DFAD1\n-F8646DEDF21D10311854726B8F7D25876BB1EF78E2442B16ED4B851816CF0A27\n-11FDFCE525002A1A7C3E62CD2A3EDE6FAADB026D2F3A46C030ADB22422CA8FF5\n-2545ED58C0D9FB5BDB55FE674301E91A75B005B86BD201D246F7ADACE50419FD\n-AC3312CAC5EB78A36F0E5F62E65AC92129CB574AAC59E0A7C1390DFC61F39D9E\n-D7036742F2F6E64D1EF8157E9CCF65F3EEDC6A8220235978B8E06EB80F649F3E\n-204CFB497F49306EA8E1F7B62305978A28F1E771ED82C6592C71022154E4062A\n-A92335EFC65D6DED9C686899FFD7AA2988740618C03C5E362E1AF352E3BE4602\n-5530C51E5FC8E9082DF79199CC91C50174000D337D86127AC807C5A3C81DDE57\n-7A68AEE7230949B925365C214D77C80E87CEE218ABC94023717EA43BA5D8A7C8\n-8A8B9BD1B767996AE33050E3D922ED0574E3579C57E4BDDAD35883806AFDF260\n-3AB5D83D451583262E580FFDB7A27D82396AF18D92B849A3F7A7E621987D5DF0\n-038F876C6E9CA47FB11AF05F0019191C5DDC5F0177AD421E94BC66D0CCB82F1F\n-93A80836284B095503752C600F72E2C89112ABFA5B76152691264103B268B3E5\n-8816724ADADB38740001A9AACE05C8AF02D72918606DC22EFC8BF0DA0FD12FFE\n-D3A09F8E28057F327BFB633E604B1EAD478637B1D9631650B314CC62D7E0E87F\n-9D3FE1FFA23BB6E3006C3E39BED52F6B0C1C651B5913878F36DA0BF776889165\n-68BA3456B40B8B471CA8FF5238E43D9113E052A2B8D2EAA2433D3F89FCA48AFB\n-5E842913E4ED6DF9623354059CD1F1707B126FED80349787C869883120183EDD\n-249185A55503FAC53898F52170D05CAC62BB742CF9702C0518AED6B27CDC401C\n-932E02143FD916703F360CB31049501B35EF3EDDFED791090D0CFA221FD1DB32\n-7D4759CE07983AE29C258C705D11E7D9481EEAAB9B6BA65CDCF0AA0057BD6FEA\n-ABBFBD3ABF2A7BFB550C3D2A16DC447384A89F3DB6D9C2DBDCA997ABE35A7706\n-633D328AECEDB5BD07070C1B96267FD73B45791DD18194F60D358091FBE88409\n-973529806F3D2C9E6E39091F90A14B560A987E0B9490B9B690FB489B8E253070\n-D7C54447BE0E0A0BFEAEFFB581DC1300E6EC382984673BF0665632404E59B5BF\n-5D5F0A1C956E618C0487751CA5DAE8A95C214F76ED756694EF273679CD2D85CB\n-949DF385BD50491649EFEFDA1574921D7460143D42A100D2C76E55F0BC\n+1B2FA10DF7E91D3BB34A1B1CE7A0015A57C813E0280D873ADB8844004B9BA1CC\n+580D3C6BDA4DC1B80B4365F1C80512453FC5316EC2D928FB731C3D6403E3C18B\n+E8424D644DF5E9A2134229C5C91CA68DB8E85BA2BB40F538F585DA6FA4037718\n+B8053EBBA1E765346BCD5BDAA6C38115D31611D8A87A2238C145F2DA2F92E4DF\n+3987BD9C4D2A3D460E8941A68B125BCD9EE4F9FD262C4C8A71F47A2C81975635\n+F1B981C274C53FA2ACCDE4C9D0A7C62D6C1EFF91CFC6712CA6A9F333C9564FCB\n+2A70F0AD715A79B10A08AB069E2A3C93BC0AED19D0CA10134B8DDDE8AF548DB2\n+3A4AAA9C29682CF135BB767DAA16169A127EB50A7EECEB6480CF56A7D0F8AC56\n+4A5090B3D75A790372886AF568D94C8165975A05BFBFDF1FFBA45F70700BB9E0\n+57F3249EF9E9C8AD9CBCF6E4FD592DC4CDD2CC7C0BC3130C1059096C657BE453\n+A2CBACE93420210E27AF56CA229BD6D982FB68B3FDC6D44478B922C4231C47EE\n+E500232F6C11D92DEB955F66DF52B92B22E7352790CC2DCBAC53965D57AC2920\n+68B7D520DE25047146EFEB06B9AD4E2A94243C7E5239F0BC2FC312B16051D52C\n+0B92C217B6B42997321AE4F8BB066754B7AA3F15069EF59224E8A442CE471AA7\n+E8049A3DD9EDA09CCEE4998998661CF7DB35E952F6C65DAEB3013951C59F3E09\n+157F313B0237876E1C0190F0473819570B8C0205AADF05D787CC00979CFB327A\n+289382B22DDA6F12804ED0ED5B179E36A995A2A59E1B66E75130DBE9109C813B\n+94403E0DEA8314A1E9DB474D7FA83C0BAFD08033E6A6215844C1D26BE15F1251\n+A1605E8DF9A9C601ED37379530BC1C82BE5463C6C711C5652BFD6262485AA9CA\n+B8C4A117593001D08D980041E2A83C190DCE8E6CD3D334E5CC19FC05DB30F7F7\n+24A305C4DBB31F0651392B99D44B4302333BDF7E326FD256DD75D309C6E73F85\n+FA71B35FD1F9BEFF4C7A1076362EEB0A85492933B6006086A7B8C1928CF2D1EE\n+FD4344409257BB802C117E739960821CD3C88BFBA5669FF16F610AD638AF3677\n+8674C985E6767253ED5769F71BEA5E9BB02A751F9E62EE2B18AC19D975FDEAE9\n+8B8822367FF177A7E850766DE99ED3366D46464612926430012212A90F8E85F4\n+4760B40D5B86B90819EE410382D22D8ED82D0B0AB00C93E10CD365F8766D1C87\n+B4A866021FB6F6AC3D250CC601989B1B8FE6B1098A48282D2CF258BF38FEE940\n+CE0141FB1344156DE7712A8F2DBF700174F12616EE17C852210D96D03E5E6635\n+D439EB6E84A383DDD32AD72DADE6F931FDBABBDC726C36081C96018FC95EAE13\n+DA1F8DBC2D8355AC9792649653225393F4A7A88F3B9443FEEB75E2C15BF93F09\n+CCBA7FABC022BE26F4C28152D5DA6D690494AD4EC0DA1B598AE12536BADF88B5\n+5E20EB452546389F57FF55459567B453AE1831C57D22FA6A4FDF441EDAFDB7FB\n+4F4B707C1FF9159C40F7B5DD519FC07815EE91B8D756B6C18500BCF47D0D9E45\n+6A2D51B6AA5AEAAC9AB2DEF7F0FDE957B6C179CBADEECAC7E9CEC248AB135EB4\n+FBF83D002FF859B574EF36C371540EF2BCFCEF5C2E7863AEDD7C3C965103453B\n+023A9CEC1D5C45B88827ADF4AE0C6746F3C7E6A944427DAEC493601019583A16\n+0F846CE00EAE89EEFF9CE68A0E1D6EBB8FDD8A45D1BF399B36A8328EC957CB8B\n+D842A56269C8C9A6B472C9E65BCBC090606B4E8A7EF4ABDEA120C9F9B3969A1C\n+2EB102925F4E155160E58000E1ADB0D19E10EFD96F6C3225EEE8FC24D122C069\n+C11F1A69DC383F7DACD2F3929BD135CE69787C6E7560AC4B683FE5D9AAFD2E89\n+EE6D95E38C9B726B416E28169A11E29559DBA9AECD714CF318FCB78F34A0E562\n+9C00FE0C6D5A848557D9A82EC2BEFCD30B5EDC0B23C5BA9F812C864394C8B9D1\n+B08BAC9CF94E70FF842306ACCFE6E39A56777C712904A3AB29FBD19275E19E06\n+B35B37CFFFCEC81CAF2D85A853663FAFCFFED1EA77064AA28C15BC94910683BC\n+D09513079DE9EE18E97CC2403DD206516D7F652A3459870757F34EEDCEF952C3\n+FE8004F4716B5BD6774E455010B0BB1E61FCD66B9F14F9BBCCF3E55A158EE96E\n+9A05BDFDDC7706D4BC28FDDC4004EF3A430C607EBDF115E0C996454D70C8BB42\n+D7C83A454B116663D648C23CE2B33365810DE2B64D4AE011BC8043BC3E05B94D\n+1700F859C6AFC6515C1C42FA104EE3E8F3FA5F80252C2E79B00ED27F675FFD09\n+B50BF7A3C63CF4856F909DF969D7DD3EA05CABDD1E71A58CFC2AB5F614B4E5E0\n+25CF92E9FB66ACEBE05DF5E033DA8AD3EE32D94C02D98DD7DA99FAB5AEA595C3\n+2987DC122F0242D76B782349E4069DE0CDD6EF4375C680CBFE4C8F24F2AE89BF\n+7785F5EA7435A91500F265022C307E8ADEAAE1C6\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n@@ -3750,16 +3737,16 @@\n 2[51 62 50 1[54 11[86 5[84 5[42 6[80 12[56 56 56 56 56\n 2[31 46[{}25 99.6264 /CMBX12 rf /Fb 139[62 4[62 4[62\n 4[62 1[62 62 11[62 12[62 73[{}8 119.552 /CMTT12 rf /Fc\n 134[71 2[71 75 52 53 55 1[75 67 75 112 3[37 75 67 41\n 61 75 60 1[65 13[75 2[92 11[103 16[67 67 67 2[37 46[{}25\n 119.552 /CMBX12 rf /Fd 138[49 30 37 38 1[46 46 51 74\n 1[42 1[28 46 42 1[42 46 42 1[46 12[65 1[66 11[59 62 69\n-2[68 6[28 58[{}23 90.9091 /CMTI10 rf /Fe 138[51 35 36\n-11[45 37[68 6[25 4[45 1[45 45 1[45 3[25 44[{}11 90.9091\n+2[68 6[28 58[{}23 90.9091 /CMTI10 rf /Fe 134[48 3[51\n+8[25 33[47 15[25 5[45 1[45 45 45 3[25 44[{}10 90.9091\n /CMSL10 rf /Ff 152[45 45 102[{}2 90.9091 /CMSY10 rf\n %DVIPSBitmapFont: Fg tcrm1095 10.95 1\n [/Grave/Acute/Circumflex/Tilde/Dieresis/Hungarumlaut/Ring/Caron/Breve/Macron\n /Dotaccent/cedilla/ogonek/quotesinglbase.ts1 4{/.notdef}repeat\n /quotedblbase.ts1/.notdef/.notdef/twelveudash/threequartersemdash\n /afii61664.cap/arrowleft/arrowright/tieaccentlowercase/tieaccentcapital\n /tieaccentlowercase.new/tieaccentcapital.new/.notdef/afii61664.asc/uni2422 3\n@@ -3886,17 +3873,17 @@\n (v)m(enience)0 5294 y(mak)m(es)i(it)g(a)g(widely)f(used)g(ob)5\n b(ject.)44 b(Originally)32 b(its)g(use)f(w)m(as)g(restricted)h(to)h\n (reading)e(and)g(writing)g Fi(*.iv)p Ff(f)p Fi(f,b)p\n Ff(g)0 5407 y Fj(\\014les,)g(but)e(no)m(w)i Fi(IV)e Fj(ob)5\n b(jects)32 b(app)s(ear)d(m)m(uc)m(h)i(more)f(frequen)m(tly)h(in)f(new)g\n (dev)m(elopmen)m(t.)1927 5656 y(1)p eop end\n %%Page: 2 2\n-TeXDict begin 2 1 bop 0 100 a Fj(2)p 136 100 1223 4 v\n-1404 w Fi(IV)30 b Fe(:)h Fd(DRAFT)f Fe(August)g(3,)h(2025)p\n-2678 100 V 0 399 a Fc(1.1)135 b(Data)46 b(Structure)0\n+TeXDict begin 2 1 bop 0 100 a Fj(2)p 136 100 1280 4 v\n+1462 w Fi(IV)30 b Fe(:)g Fd(DRAFT)h Fe(July)e(1,)i(2024)p\n+2620 100 V 0 399 a Fc(1.1)135 b(Data)46 b(Structure)0\n 620 y Fj(The)30 b Fi(IV)g Fj(structure)g(has)g(four)f(\\014elds.)137\n 791 y Fg(\\210)45 b Fi(int)i(size)29 b Fj(:)41 b(presen)m(t)30\n b(size)i(of)e(the)h(v)m(ector.)137 965 y Fg(\\210)45 b\n Fi(int)i(maxsize)29 b Fj(:)40 b(maxim)m(um)30 b(size)i(of)e(the)h(v)m\n (ector.)137 1139 y Fg(\\210)45 b Fi(int)i(owned)30 b Fj(:)44\n b(o)m(wner)32 b(\\015ag)g(for)f(the)h(data.)46 b(When)31\n b Fi(owned)46 b(=)i(1)p Fj(,)32 b(storage)h(for)f Fi(maxsize)d(int)p\n@@ -3954,17 +3941,17 @@\n (call)g(to)f Fi(IV)p 2148 5151 V 34 w(clearData\\(\\))d\n Fj(then)i(free's)h(the)g(storage)h(for)f(the)227 5264\n y(structure)h(with)g(a)h(call)h(to)f Fi(free\\(\\))p Fj(.)227\n 5407 y Fd(Err)-5 b(or)34 b(che)-5 b(cking:)40 b Fj(If)30\n b Fi(iv)g Fj(is)h Fi(NULL)p Fj(,)e(an)h(error)g(message)i(is)e(prin)m\n (ted)g(and)g(the)g(program)h(exits.)p eop end\n %%Page: 3 3\n-TeXDict begin 3 2 bop 91 100 1223 4 v 1404 100 a Fi(IV)30\n-b Fe(:)g Fd(DRAFT)121 b Fe(August)31 b(3,)g(2025)p 2631\n-100 V 1223 w Fj(3)0 399 y Fa(1.2.2)112 b(Instance)38\n+TeXDict begin 3 2 bop 91 100 1280 4 v 1462 100 a Fi(IV)29\n+b Fe(:)i Fd(DRAFT)121 b Fe(July)30 b(1,)h(2024)p 2573\n+100 V 1280 w Fj(3)0 399 y Fa(1.2.2)112 b(Instance)38\n b(metho)s(ds)0 606 y Fj(These)33 b(metho)s(d)f(allo)m(w)j(access)g(to)e\n (information)h(in)f(the)g(data)h(\\014elds)e(without)i(explicitly)g\n (follo)m(wing)h(p)s(oin)m(ters.)0 719 y(There)g(is)h(o)m(v)m(erhead)h\n (in)m(v)m(olv)m(ed)h(with)d(these)h(metho)s(d)g(due)f(to)h(the)g\n (function)g(call)h(and)e(error)h(c)m(hec)m(king)h(inside)0\n 832 y(the)31 b(metho)s(ds.)111 1097 y(1.)46 b Fi(int)h(IV_owned)f(\\()h\n (IV)g(*iv)g(\\))h(;)227 1258 y Fj(This)24 b(metho)s(d)g(returns)g(the)g\n@@ -4020,17 +4007,17 @@\n Fi(loc)p Fj('th)f(en)m(try)g(of)h(the)f(v)m(ector)i(to)f\n Fi(value)p Fj(.)227 5294 y Fd(Err)-5 b(or)32 b(che)-5\n b(cking:)40 b Fj(If)27 b Fi(iv)p Fj(,)i Fi(loc)47 b(<)g(0)28\n b Fj(or)g Fi(loc)47 b(>=)g(size)p Fj(,)28 b(or)g(if)h\n Fi(vec)e Fj(is)h Fi(NULL)g Fj(an)g(error)g(message)h(is)f(prin)m(ted)\n 227 5407 y(and)i(the)h(program)f(exits.)p eop end\n %%Page: 4 4\n-TeXDict begin 4 3 bop 0 100 a Fj(4)p 136 100 1223 4 v\n-1404 w Fi(IV)30 b Fe(:)h Fd(DRAFT)f Fe(August)g(3,)h(2025)p\n-2678 100 V 0 399 a Fa(1.2.3)112 b(Initializer)38 b(metho)s(ds)111\n+TeXDict begin 4 3 bop 0 100 a Fj(4)p 136 100 1280 4 v\n+1462 w Fi(IV)30 b Fe(:)g Fd(DRAFT)h Fe(July)e(1,)i(2024)p\n+2620 100 V 0 399 a Fa(1.2.3)112 b(Initializer)38 b(metho)s(ds)111\n 596 y Fj(1.)46 b Fi(void)h(IV_init)f(\\()h(IV)g(*iv,)g(int)g(size,)f\n (int)h(*entries)f(\\))h(;)227 747 y Fj(This)36 b(metho)s(d)g\n (initializes)j(the)d(ob)5 b(ject)38 b(giv)m(en)f(a)g(size)h(for)e(the)h\n (v)m(ector)h(and)e(a)h(p)s(ossible)f(p)s(oin)m(ter)g(to)i(the)227\n 860 y(v)m(ectors)28 b(storage.)41 b(An)m(y)26 b(previous)g(data)h(with)\n f(a)h(call)g(to)g Fi(IV)p 2277 860 29 4 v 34 w(clearData\\(\\))p\n Fj(.)36 b(If)26 b Fi(entries)46 b(!=)h(NULL)25 b Fj(then)227\n@@ -4109,17 +4096,17 @@\n (v)m(ector)j(b)m(y)d Fi(offset)p Fj(.)46 b(This)31 b(is)i(a)g\n (dangerous)f(metho)s(d)g(to)h(use)g(b)s(ecause)f(the)h(state)h(of)227\n 5407 y(the)j(v)m(ector)h(is)e(lost,)j(namely)e Fi(vec)p\n Fj(,)g(the)g(base)f(of)h(the)f(en)m(tries,)j(is)e(corrupted.)58\n b(If)35 b(the)i(ob)5 b(ject)37 b(o)m(wns)g(its)p eop\n end\n %%Page: 5 5\n-TeXDict begin 5 4 bop 91 100 1223 4 v 1404 100 a Fi(IV)30\n-b Fe(:)g Fd(DRAFT)121 b Fe(August)31 b(3,)g(2025)p 2631\n-100 V 1223 w Fj(5)227 399 y(en)m(tries)e(and)e Fi(IV)p\n+TeXDict begin 5 4 bop 91 100 1280 4 v 1462 100 a Fi(IV)29\n+b Fe(:)i Fd(DRAFT)121 b Fe(July)30 b(1,)h(2024)p 2573\n+100 V 1280 w Fj(5)227 399 y(en)m(tries)e(and)e Fi(IV)p\n 792 399 29 4 v 34 w(free\\(\\))p Fj(,)g Fi(IV)p 1262 399\n V 34 w(setSize\\(\\))e Fj(or)j Fi(IV)p 1958 399 V 34 w(setMaxsize\\(\\))d\n Fj(is)j(called)h(b)s(efore)f(the)g(base)g(has)g(b)s(een)227\n 511 y(shifted)h(bac)m(k)g(to)g(its)h(original)f(p)s(osition,)h(a)f\n (segmen)m(tation)i(violation)f(will)f(lik)m(ely)i(result.)40\n b(This)28 b(is)g(a)i(v)m(ery)227 624 y(useful)g(metho)s(d,)g(but)g(use)\n g(with)g(caution.)227 779 y Fd(Err)-5 b(or)34 b(che)-5\n@@ -4180,17 +4167,17 @@\n (;)227 5294 y Fj(This)24 b(metho)s(d)f(examines)i(the)g(en)m(tries)g\n (in)f(the)g(v)m(ector.)40 b(Let)25 b Fi(k)f Fj(b)s(e)g(en)m(try)g\n Fi(i)g Fj(in)g(the)h(v)m(ector.)40 b(If)24 b Fi(tags[k])46\n b(!=)227 5407 y(keepTag)p Fj(,)28 b(the)i(en)m(try)g(is)g(mo)m(v)m(ed)g\n (to)h(the)f(end)f(of)g(the)h(v)m(ector,)i(otherwise)e(it)g(is)g(mo)m(v)\n m(ed)g(to)h(the)f(b)s(eginning)p eop end\n %%Page: 6 6\n-TeXDict begin 6 5 bop 0 100 a Fj(6)p 136 100 1223 4 v\n-1404 w Fi(IV)30 b Fe(:)h Fd(DRAFT)f Fe(August)g(3,)h(2025)p\n-2678 100 V 227 399 a Fj(of)f(the)g(v)m(ector.)42 b(The)29\n+TeXDict begin 6 5 bop 0 100 a Fj(6)p 136 100 1280 4 v\n+1462 w Fi(IV)30 b Fe(:)g Fd(DRAFT)h Fe(July)e(1,)i(2024)p\n+2620 100 V 227 399 a Fj(of)f(the)g(v)m(ector.)42 b(The)29\n b(size)h(of)g(the)g(v)m(ector)h(is)e(reset)i(to)f(b)s(e)f(the)g(n)m(um)\n m(b)s(er)g(of)g(tagged)i(en)m(tries)g(that)f(are)g(no)m(w)227\n 511 y(in)g(the)h(leading)g(lo)s(cations.)227 660 y Fd(Err)-5\n b(or)34 b(che)-5 b(cking:)40 b Fj(If)30 b Fi(iv)g Fj(of)h\n Fi(tags)e Fj(is)h Fi(NULL)f Fj(an)i(error)f(message)h(is)g(prin)m(ted)f\n (and)f(the)i(program)f(exits.)111 844 y(9.)46 b Fi(void)h\n (IV_filterPurge)d(\\()j(IV)g(*iv,)g(int)g(tags[],)f(int)h(purgeTag)e(\\))\n@@ -4249,17 +4236,17 @@\n Fi(loc)p Fj('th)g(lo)s(cation)h(of)g(the)f Fi(iv)f Fj(ob)5\n b(ject)39 b(b)m(y)f(one)h(and)e(returns)g(the)h(new)227\n 5146 y(v)-5 b(alue.)227 5294 y Fd(Err)g(or)38 b(che)-5\n b(cking:)49 b Fj(If)34 b Fi(iv)g Fj(is)h Fi(NULL)f Fj(or)g(if)h\n Fi(loc)f Fj(is)h(out)g(of)f(range,)j(an)d(error)h(message)h(is)e(prin)m\n (ted)h(and)f(the)227 5407 y(program)c(exits.)p eop end\n %%Page: 7 7\n-TeXDict begin 7 6 bop 91 100 1223 4 v 1404 100 a Fi(IV)30\n-b Fe(:)g Fd(DRAFT)121 b Fe(August)31 b(3,)g(2025)p 2631\n-100 V 1223 w Fj(7)66 399 y(15.)46 b Fi(int)h(IV_findValue)e(\\()i(IV)g\n+TeXDict begin 7 6 bop 91 100 1280 4 v 1462 100 a Fi(IV)29\n+b Fe(:)i Fd(DRAFT)121 b Fe(July)30 b(1,)h(2024)p 2573\n+100 V 1280 w Fj(7)66 399 y(15.)46 b Fi(int)h(IV_findValue)e(\\()i(IV)g\n (*iv,)g(int)g(value)f(\\))i(;)227 547 y Fj(This)30 b(metho)s(d)f(lo)s\n (oks)i(for)e Fi(value)g Fj(in)h(its)g(en)m(tries.)42\n b(If)29 b Fi(value)g Fj(is)h(presen)m(t,)g(the)h(\\014rst)e(lo)s(cation)\n j(is)e(returned,)227 660 y(otherwise)h Fi(-1)f Fj(is)g(returned.)40\n b(The)30 b(cost)h(is)f(linear)h(in)f(the)h(n)m(um)m(b)s(er)e(of)h(en)m\n (tries.)227 808 y Fd(Err)-5 b(or)34 b(che)-5 b(cking:)40\n b Fj(If)30 b Fi(iv)g Fj(is)h Fi(NULL)p Fj(,)e(an)h(error)g(message)i\n@@ -4330,17 +4317,17 @@\n 5294 y Fd(Err)-5 b(or)36 b(che)-5 b(cking:)43 b Fj(If)31\n b Fi(iv)g Fj(or)h Fi(fn)f Fj(are)i Fi(NULL)p Fj(,)d(or)i(if)g\n Fi(fn)f Fj(is)h(not)g(of)g(the)g(form)g Fi(*.ivf)e Fj(\\(for)i(a)g\n (formatted)g(\\014le\\))227 5407 y(or)f Fi(*.ivb)e Fj(\\(for)h(a)h(binary)\n e(\\014le\\),)j(an)e(error)g(message)h(is)g(prin)m(ted)f(and)f(the)i\n (metho)s(d)f(returns)f(zero.)p eop end\n %%Page: 8 8\n-TeXDict begin 8 7 bop 0 100 a Fj(8)p 136 100 1223 4 v\n-1404 w Fi(IV)30 b Fe(:)h Fd(DRAFT)f Fe(August)g(3,)h(2025)p\n-2678 100 V 111 399 a Fj(2.)46 b Fi(int)h(IV_readFromFormattedFile)41\n+TeXDict begin 8 7 bop 0 100 a Fj(8)p 136 100 1280 4 v\n+1462 w Fi(IV)30 b Fe(:)g Fd(DRAFT)h Fe(July)e(1,)i(2024)p\n+2620 100 V 111 399 a Fj(2.)46 b Fi(int)h(IV_readFromFormattedFile)41\n b(\\()48 b(IV)f(*iv,)g(FILE)f(*fp)h(\\))h(;)227 550 y Fj(This)27\n b(metho)s(d)g(reads)h(in)f(an)g Fi(IV)g Fj(ob)5 b(ject)29\n b(from)e(a)h(formatted)g(\\014le.)40 b(If)27 b(there)h(are)g(no)g\n (errors)f(in)g(reading)h(the)227 663 y(data,)k(the)e(v)-5\n b(alue)31 b Fi(1)f Fj(is)g(returned.)40 b(If)30 b(an)g(IO)g(error)g(is)\n g(encoun)m(tered)h(from)f Fi(fscanf)p Fj(,)f(zero)i(is)g(returned.)227\n 815 y Fd(Err)-5 b(or)34 b(che)-5 b(cking:)40 b Fj(If)30\n@@ -4418,17 +4405,17 @@\n h(separated)g(b)m(y)g(a)g(whitespace.)40 b(The)227 5255\n y(v)-5 b(alue)31 b Fi(1)f Fj(is)h(returned.)227 5407\n y Fd(Err)-5 b(or)27 b(che)-5 b(cking:)36 b Fj(If)22 b\n Fi(iv)g Fj(or)g Fi(fp)g Fj(or)g Fi(pierr)f Fj(are)i Fi(NULL)p\n Fj(,)e(an)i(error)f(message)h(is)g(prin)m(ted)e(and)h(zero)h(is)g\n (returned.)p eop end\n %%Page: 9 9\n-TeXDict begin 9 8 bop 91 100 1223 4 v 1404 100 a Fi(IV)30\n-b Fe(:)g Fd(DRAFT)121 b Fe(August)31 b(3,)g(2025)p 2631\n-100 V 1223 w Fj(9)66 399 y(10.)46 b Fi(int)h(IV_writeForMatlab)c(\\()48\n+TeXDict begin 9 8 bop 91 100 1280 4 v 1462 100 a Fi(IV)29\n+b Fe(:)i Fd(DRAFT)121 b Fe(July)30 b(1,)h(2024)p 2573\n+100 V 1280 w Fj(9)66 399 y(10.)46 b Fi(int)h(IV_writeForMatlab)c(\\()48\n b(IV)f(*iv,)g(char)f(*name,)g(FILE)h(*fp)g(\\))g(;)227\n 549 y Fj(This)37 b(metho)s(d)h(writes)f(the)i(en)m(tries)f(of)g(the)g\n (v)m(ector)i(to)e(a)g(\\014le)g(suitable)h(to)f(b)s(e)g(read)f(b)m(y)h\n (Matlab.)64 b(The)227 662 y(c)m(haracter)31 b(string)e\n Fi(name)f Fj(is)h(the)g(name)g(of)g(the)g(v)m(ector,)i(e.g,)g(if)e\n Fi(name)46 b(=)i(\"A\")p Fj(,)28 b(then)h(w)m(e)g(ha)m(v)m(e)h(lines)g\n (of)f(the)227 775 y(form)227 1000 y Fi(A\\(1\\))47 b(=)g(32)h(;)227\n", "details": [{"source1": "ps2ascii {}", "source2": "ps2ascii {}", "unified_diff": "@@ -24,15 +24,15 @@\n IV setMaxsize() methods) than it is to duplicate code to work on an int vector.\r\n Onemustchoose where to use this object. There is a substantial performance penalty for doing the\r\n simplest operations, and so when we need to manipulate an int vector inside a loop, we extract\r\n out the size and pointer to the base array from the IV object. On the other hand, the convenience\r\n makes it a widely used object. Originally its use was restricted to reading and writing *.iv{f,b}\r\n \ufb01les, but now IV objects appear much more frequently in new development.\r\n 1\r\n- 2 IV : DRAFT August 3, 2025\r\n+ 2 IV : DRAFT July 1, 2024\r\n 1.1 Data Structure\r\n The IV structure has four \ufb01elds.\r\n \u2022 int size : present size of the vector.\r\n \u2022 int maxsize : maximum size of the vector.\r\n \u2022 int owned : owner \ufb02ag for the data. When owned = 1, storage for maxsize int\u2019s has been\r\n allocated by this object and can be free\u2019d by the object. When nowned = 0 but maxsize >\r\n 0, this object points to entries that have been allocated elsewhere, and these entries will not\r\n@@ -58,15 +58,15 @@\n the storage for vec is free\u2019d by a call to IVfree(). The structure\u2019s default \ufb01elds are then set\r\n with a call to IV setDefaultFields().\r\n Error checking: If iv is NULL, an error message is printed and the program exits.\r\n 4. void IV_free ( IV *iv ) ;\r\n This method releases any storage by a call to IV clearData() then free\u2019s the storage for the\r\n structure with a call to free().\r\n Error checking: If iv is NULL, an error message is printed and the program exits.\r\n- IV : DRAFT August 3, 2025 3\r\n+ IV : DRAFT July 1, 2024 3\r\n 1.2.2 Instance methods\r\n These method allow access to information in the data \ufb01elds without explicitly following pointers.\r\n There is overhead involved with these method due to the function call and error checking inside\r\n the methods.\r\n 1. int IV_owned ( IV *iv ) ;\r\n This method returns the value of owned. If owned = 1, then the object owns the data pointed\r\n to by vec and will free this data with a call to IVfree() when its data is cleared by a call to\r\n@@ -91,15 +91,15 @@\n the vector.\r\n Error checking: If iv, psize or pentries is NULL an error message is printed and the program\r\n exits.\r\n 7. void IV_setEntry ( IV *iv, int loc, int value ) ;\r\n This method sets the loc\u2019th entry of the vector to value.\r\n Error checking: If iv, loc < 0 or loc >= size, or if vec is NULL an error message is printed\r\n and the program exits.\r\n- 4 IV : DRAFT August 3, 2025\r\n+ 4 IV : DRAFT July 1, 2024\r\n 1.2.3 Initializer methods\r\n 1. void IV_init ( IV *iv, int size, int *entries ) ;\r\n This method initializes the object given a size for the vector and a possible pointer to the\r\n vectors storage. Any previous data with a call to IV clearData(). If entries != NULL then\r\n the vec \ufb01eld is set to entries, the size and maxsize \ufb01elds are set to size , and owned is\r\n set to zero because the object does not own the entries. If entries is NULL and if size > 0\r\n then a vector is allocated by the object, and the object owns this storage.\r\n@@ -128,15 +128,15 @@\n Error checking: If iv is NULL or newsize < 0, or if 0 < maxsize < newsize and owned ==\r\n 0, an error message is printed and the program exits.\r\n 1.2.4 Utility methods\r\n 1. void IV_shiftBase ( IV *iv, int offset ) ;\r\n This method shifts the base entries of the vector and decrements the present size and max-\r\n imum size of the vector by offset. This is a dangerous method to use because the state of\r\n the vector is lost, namely vec, the base of the entries, is corrupted. If the object owns its\r\n- IV : DRAFT August 3, 2025 5\r\n+ IV : DRAFT July 1, 2024 5\r\n entries and IV free(), IV setSize() or IV setMaxsize() is called before the base has been\r\n shifted back to its original position, a segmentation violation will likely result. This is a very\r\n useful method, but use with caution.\r\n Error checking: If iv is NULL, an error message is printed and the program exits.\r\n 2. void IV_push ( IV *iv, int val ) ;\r\n This method pushes an entry onto the vector. If the vector is full, i.e., if size = maxsize\r\n - 1, then the size of the vector is doubled if possible. If the storage cannot grow, i.e., if the\r\n@@ -164,15 +164,15 @@\n the program exits.\r\n 7. int IV_sizeOf ( IV *iv ) ;\r\n This method returns the number of bytes taken by the object.\r\n Error checking: If iv is NULL an error message is printed and the program exits.\r\n 8. void IV_filterKeep ( IV *iv, int tags[], int keepTag ) ;\r\n This method examines the entries in the vector. Let k be entry i in the vector. If tags[k] !=\r\n keepTag, the entry is moved to the end of the vector, otherwise it is moved to the beginning\r\n- 6 IV : DRAFT August 3, 2025\r\n+ 6 IV : DRAFT July 1, 2024\r\n of the vector. The size of the vector is reset to be the number of tagged entries that are now\r\n in the leading locations.\r\n Error checking: If iv of tags is NULL an error message is printed and the program exits.\r\n 9. void IV_filterPurge ( IV *iv, int tags[], int purgeTag ) ;\r\n This method examines the entries in the vector. Let k be entry i in the vector. If tags[k] ==\r\n purgeTag, the entry is moved to the end of the vector, otherwise it is moved to the beginning\r\n of the vector. The size of the vector is reset to be the number of untagged entries that are\r\n@@ -201,15 +201,15 @@\n Error checking: If iv is NULL or if loc is out of range, an error message is printed and the\r\n program exits.\r\n 14. int IV_decrement ( IV *iv, int loc ) ;\r\n This method decrements the loc\u2019th location of the iv object by one and returns the new\r\n value.\r\n Error checking: If iv is NULL or if loc is out of range, an error message is printed and the\r\n program exits.\r\n- IV : DRAFT August 3, 2025 7\r\n+ IV : DRAFT July 1, 2024 7\r\n 15. int IV_findValue ( IV *iv, int value ) ;\r\n This method looks for value in its entries. If value is present, the \ufb01rst location is returned,\r\n otherwise -1 is returned. The cost is linear in the number of entries.\r\n Error checking: If iv is NULL, an error message is printed and the program exits.\r\n 16. int IV_findValueAscending ( IV *iv, int value ) ;\r\n Thismethodlooksforvalueinitsentries. Ifvalueispresent, alocation isreturned, otherwise\r\n -1 is returned. This method assumes that the entries are sorted in ascending order. The cost\r\n@@ -238,15 +238,15 @@\n is size, followed by the size entries found in vec[].\r\n 1. int IV_readFromFile ( IV *iv, char *fn ) ;\r\n This method reads an IV object from a formatted \ufb01le. It tries to open the \ufb01le and if it is\r\n successful, it then calls IV readFromFormattedFile() or IV readFromBinaryFile(), closes\r\n the \ufb01le and returns the value returned from the called routine.\r\n Error checking: If iv or fn are NULL, or if fn is not of the form *.ivf (for a formatted \ufb01le)\r\n or *.ivb (for a binary \ufb01le), an error message is printed and the method returns zero.\r\n- 8 IV : DRAFT August 3, 2025\r\n+ 8 IV : DRAFT July 1, 2024\r\n 2. int IV_readFromFormattedFile ( IV *iv, FILE *fp ) ;\r\n This method reads in an IV object from a formatted \ufb01le. If there are no errors in reading the\r\n data, the value 1 is returned. If an IO error is encountered from fscanf, zero is returned.\r\n Error checking: If iv or fp are NULL an error message is printed and zero is returned.\r\n 3. int IV_readFromBinaryFile ( IV *iv, FILE *fp ) ;\r\n This method reads in an IV object from a binary \ufb01le. If there are no errors in reading the\r\n data, the value 1 is returned. If an IO error is encountered from fread, zero is returned.\r\n@@ -274,15 +274,15 @@\n This method writes the header and statistics to a \ufb01le. The value 1 is returned.\r\n Error checking: If iv or fp are NULL an error message is printed and zero is returned.\r\n 9. int IV_fp80 ( IV *iv, FILE *fp, int column, int *pierr ) ;\r\n This method is just a wrapper around the IVfp80() method for an int method. The entries\r\n in the vector are found on lines with eighty columns and are separated by a whitespace. The\r\n value 1 is returned.\r\n Error checking: If iv or fp or pierr are NULL, an error message is printed and zero is returned.\r\n- IV : DRAFT August 3, 2025 9\r\n+ IV : DRAFT July 1, 2024 9\r\n 10. int IV_writeForMatlab ( IV *iv, char *name, FILE *fp ) ;\r\n This method writes the entries of the vector to a \ufb01le suitable to be read by Matlab. The\r\n character string name is the name of the vector, e.g, if name = \"A\", then we have lines of the\r\n form\r\n A(1) = 32 ;\r\n A(2) = -433 ;\r\n ...\r\n"}]}]}, {"source1": "./usr/share/doc/spooles-doc/IVL.ps.gz", "source2": "./usr/share/doc/spooles-doc/IVL.ps.gz", "unified_diff": null, "details": [{"source1": "IVL.ps", "source2": "IVL.ps", "unified_diff": "@@ -10,15 +10,15 @@\n %%EndComments\n %%BeginDefaults\n %%ViewingOrientation: 1 0 0 1\n %%EndDefaults\n %DVIPSWebPage: (www.radicaleye.com)\n %DVIPSCommandLine: dvips main -o IVL.ps\n %DVIPSParameters: dpi=600\n-%DVIPSSource: TeX output 2025.08.03:1317\n+%DVIPSSource: TeX output 2024.07.01:0700\n %%BeginProcSet: tex.pro 0 0\n %!\n /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S\n N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72\n mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0\n 0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{\n landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize\n@@ -1855,23 +1855,22 @@\n /UnderlinePosition -100 def\n /UnderlineThickness 50 def\n end readonly def\n /Encoding 256 array\n 0 1 255 {1 index exch /.notdef put} for\n dup 44 /comma put\n dup 48 /zero put\n+dup 49 /one put\n dup 50 /two put\n-dup 51 /three put\n-dup 53 /five put\n+dup 52 /four put\n dup 58 /colon put\n-dup 65 /A put\n-dup 103 /g put\n-dup 115 /s put\n-dup 116 /t put\n+dup 74 /J put\n+dup 108 /l put\n dup 117 /u put\n+dup 121 /y put\n readonly def\n currentdict end\n currentfile eexec\n D9D66F633B846AB284BCF8B0411B772DE5CE32340DC6F28AF40857E4451976E7\n 5182433CF9F333A38BD841C0D4E68BF9E012EB32A8FFB76B5816306B5EDF7C99\n 8B3A16D9B4BC056662E32C7CD0123DFAEB734C7532E64BBFBF5A60336E646716\n EFB852C877F440D329172C71F1E5D59CE9473C26B8AEF7AD68EF0727B6EC2E0C\n@@ -2052,79 +2051,67 @@\n 7CA1534C4D5B05FC33F83790ECFD7641DF3FB94289E2A1F6E7D29AB1228A867A\n 6E1EF0E9C6F899B491DC18401C2C0A05FFFED46A72C245F7529B8EA55A038082\n 8512307217D2A233C37004085BA3AEE379269F9FA7D0ADB4B19A95CC2AFE686E\n 55D88E47257C1FE6F235FEA295910569FE6DD5995512562359CC821E85A6C7A5\n 79B470A9E340A6985189FF8B6AF914A6B0ECF93F47903221F95DE894A8F05B05\n B7D99CD533EC5F931B18E6B39BECF67FA2D6DD1AEC76772B068BE06335A94C05\n 7A4DDEE77B66101DA855C17AC312600370B34E31F5EC3A01300A8EB60B4C9767\n-1B2FA10DF7E91D3BB34A1B1CE7A0015A57C813E0280D873ADB88440048702D1F\n-77994EE04EC3B4531D6E1888C86A8F0DA6CF1F056F16AB0DD76C862830F89DA4\n-28923B3AA543E0D6E41D3BD283E600BC11F889315EE92C675C109C81065ED1BC\n-82A5583D1B723D50051B0557A367887F5B263014C6E77288B4883C50889473D3\n-3787BAD4BEB88BD1353AFA5B73E61814819537E7FF09F53EF94792BB3DD36ED0\n-002D0E7A6CDAB85A9C17AF5664BCB5A71663B861880F3ECCABC8E7A2FC81A4CC\n-AE7A87503FDC1CE0077BA51ECC7B43B60793FED8E9AAD5BBD03ADD6183DCD26D\n-24A74163611C05562437644EF9B8889FD4F9D311911204FEFD35237486F2D2D0\n-B6783A03BF12EA6D19D6D0F87E4D08515F12F9CBF1961CAA71E0D69FE3C4C4D2\n-7C7FB64ED24F8684C8F00C2BEDEA53EA390CDC0B5BEBD7DD982580B2EA1F1F89\n-CFED5916630DC2BA32BB9180277E1ABC339B3B7DE086717BD93F7FF3681BA5B3\n-FCF671C4B293C2DE4A322F0AA3323A4934444C69F23EF90120B8755482757759\n-C457A435FB8BB4922BD92C5F3D9555D978275C510183E29DFF2FCE4ABBFC18DE\n-76CAD3B486BA12047DD808CD4D521A0FD368E4AE79DE262630983A5D6F0B679D\n-2F005306393C520E1B6987302D029939D94B0178DC55D5264E1FEA468AD4134C\n-8C65B2FBBE8DE8284E8E1F6BFE0B648F44D3DA8E9350D266EDBFD4A7054D9355\n-1E0B185DED37BCF32D3731358F1D707C94109428BAD3CEA456A2A43553E3D2C2\n-F549189201F3D3F715310E3E8C6A2E9AA5141AA9125D203694C7D875C2DD320F\n-C5BCDFC924F6C04DBC7A97349B45ECD0FBD7D2123ED1D3A9F440B1112BE62779\n-47A4592F9285CBD9635EC9091CEC0AFD7E6B6976974081DB9C0E43165BD8584D\n-6CDF08DED287F0883A9FBD351B3F8706BA1E94C7CA487338269482EB8DC1A05D\n-F6632A5D834DE29228C49C5BA65EF7C535A53B380BF4B391F43562147538EE97\n-E799DFC2C40315859F56BBCE9CAE1DF9293F6E2C193ABE7A724EC8F32FA220E7\n-6026877A63E318254F2AF7B1325D63FC4C52B536D3EF354814C2F8F1EEA30569\n-6EF04447DB0F809DF35B4985B9FB4F4BB6087310BE633E76F268B32ABA99CE8E\n-03163DFF4AEDB88E60DD0848C15E90026D7C24D81122EBC07113F9851914A9D5\n-D0E09C2BFDDAF10C5D8208E8329BC0C402F231CD84C95EFDD182AD9756662110\n-274650C7A5BB0D8EFA54EC6C5A49C0EB26701A54779AE8EFBBED824262761602\n-680EDFB38F0FE18C0F501F5AA8BF48A8F0DD3E5E1EBEB872F6F6B23964707B32\n-507FC677B9FDDC990E3828B06420F6F968B2F6AE81E76A2144B1ECE905485616\n-CFB29AC96DDE1F5039935D7E385CC13E34DD7EAF276A2EA3A8BF27FD4205AE13\n-7FE620E42F2CF231C6C8DD8EFC5A6CF081E5660D9ADD730D72D15C02B1E15FF3\n-D741D3B1EB1E666C4E562219033C1E2EF3F96E136998B2E1890395A3637A2C02\n-DE1C46AFCA8D898439F06606A2295D3F7ED6C7DB250C61B6B97A0D5EDDB9657E\n-E790B4E07540BB1026036F4A0D00E7F16FD757AD61D686620C6814B7DCEC43E8\n-FD36D9E75BA554F64548A67D9B0A26E11784E58D4357FC251D71B5D6D8BFDDE0\n-D3BF0E825DA5312C1904AF13C5905C2ADF79C357476183D2EC5A95243235E861\n-2F98D9EE77EF8F8CB3EC6BD358C5ED37DD3AF44D60575E7774BF96F1AE9DFAD1\n-F8646DEDF21D10311854726B8F7D25876BB1EF78E2442B16ED4B851816CF0A27\n-11FDFCE525002A1A7C3E62CD2A3EDE6FAADB026D2F3A46C030ADB22422CA8FF5\n-2545ED58C0D9FB5BDB55FE674301E91A75B005B86BD201D246F7ADACE50419FD\n-AC3312CAC5EB78A36F0E5F62E65AC92129CB574AAC59E0A7C1390DFC61F39D9E\n-D7036742F2F6E64D1EF8157E9CCF65F3EEDC6A8220235978B8E06EB80F649F3E\n-204CFB497F49306EA8E1F7B62305978A28F1E771ED82C6592C71022154E4062A\n-A92335EFC65D6DED9C686899FFD7AA2988740618C03C5E362E1AF352E3BE4602\n-5530C51E5FC8E9082DF79199CC91C50174000D337D86127AC807C5A3C81DDE57\n-7A68AEE7230949B925365C214D77C80E87CEE218ABC94023717EA43BA5D8A7C8\n-8A8B9BD1B767996AE33050E3D922ED0574E3579C57E4BDDAD35883806AFDF260\n-3AB5D83D451583262E580FFDB7A27D82396AF18D92B849A3F7A7E621987D5DF0\n-038F876C6E9CA47FB11AF05F0019191C5DDC5F0177AD421E94BC66D0CCB82F1F\n-93A80836284B095503752C600F72E2C89112ABFA5B76152691264103B268B3E5\n-8816724ADADB38740001A9AACE05C8AF02D72918606DC22EFC8BF0DA0FD12FFE\n-D3A09F8E28057F327BFB633E604B1EAD478637B1D9631650B314CC62D7E0E87F\n-9D3FE1FFA23BB6E3006C3E39BED52F6B0C1C651B5913878F36DA0BF776889165\n-68BA3456B40B8B471CA8FF5238E43D9113E052A2B8D2EAA2433D3F89FCA48AFB\n-5E842913E4ED6DF9623354059CD1F1707B126FED80349787C869883120183EDD\n-249185A55503FAC53898F52170D05CAC62BB742CF9702C0518AED6B27CDC401C\n-932E02143FD916703F360CB31049501B35EF3EDDFED791090D0CFA221FD1DB32\n-7D4759CE07983AE29C258C705D11E7D9481EEAAB9B6BA65CDCF0AA0057BD6FEA\n-ABBFBD3ABF2A7BFB550C3D2A16DC447384A89F3DB6D9C2DBDCA997ABE35A7706\n-633D328AECEDB5BD07070C1B96267FD73B45791DD18194F60D358091FBE88409\n-973529806F3D2C9E6E39091F90A14B560A987E0B9490B9B690FB489B8E253070\n-D7C54447BE0E0A0BFEAEFFB581DC1300E6EC382984673BF0665632404E59B5BF\n-5D5F0A1C956E618C0487751CA5DAE8A95C214F76ED756694EF273679CD2D85CB\n-949DF385BD50491649EFEFDA1574921D7460143D42A100D2C76E55F0BC\n+1B2FA10DF7E91D3BB34A1B1CE7A0015A57C813E0280D873ADB8844004B9BA1CC\n+580D3C6BDA4DC1B80B4365F1C80512453FC5316EC2D928FB731C3D6403E3C18B\n+E8424D644DF5E9A2134229C5C91CA68DB8E85BA2BB40F538F585DA6FA4037718\n+B8053EBBA1E765346BCD5BDAA6C38115D31611D8A87A2238C145F2DA2F92E4DF\n+3987BD9C4D2A3D460E8941A68B125BCD9EE4F9FD262C4C8A71F47A2C81975635\n+F1B981C274C53FA2ACCDE4C9D0A7C62D6C1EFF91CFC6712CA6A9F333C9564FCB\n+2A70F0AD715A79B10A08AB069E2A3C93BC0AED19D0CA10134B8DDDE8AF548DB2\n+3A4AAA9C29682CF135BB767DAA16169A127EB50A7EECEB6480CF56A7D0F8AC56\n+4A5090B3D75A790372886AF568D94C8165975A05BFBFDF1FFBA45F70700BB9E0\n+57F3249EF9E9C8AD9CBCF6E4FD592DC4CDD2CC7C0BC3130C1059096C657BE453\n+A2CBACE93420210E27AF56CA229BD6D982FB68B3FDC6D44478B922C4231C47EE\n+E500232F6C11D92DEB955F66DF52B92B22E7352790CC2DCBAC53965D57AC2920\n+68B7D520DE25047146EFEB06B9AD4E2A94243C7E5239F0BC2FC312B16051D52C\n+0B92C217B6B42997321AE4F8BB066754B7AA3F15069EF59224E8A442CE471AA7\n+E8049A3DD9EDA09CCEE4998998661CF7DB35E952F6C65DAEB3013951C59F3E09\n+157F313B0237876E1C0190F0473819570B8C0205AADF05D787CC00979CFB327A\n+289382B22DDA6F12804ED0ED5B179E36A995A2A59E1B66E75130DBE9109C813B\n+94403E0DEA8314A1E9DB474D7FA83C0BAFD08033E6A6215844C1D26BE15F1251\n+A1605E8DF9A9C601ED37379530BC1C82BE5463C6C711C5652BFD6262485AA9CA\n+B8C4A117593001D08D980041E2A83C190DCE8E6CD3D334E5CC19FC05DB30F7F7\n+24A305C4DBB31F0651392B99D44B4302333BDF7E326FD256DD75D309C6E73F85\n+FA71B35FD1F9BEFF4C7A1076362EEB0A85492933B6006086A7B8C1928CF2D1EE\n+FD4344409257BB802C117E739960821CD3C88BFBA5669FF16F610AD638AF3677\n+8674C985E6767253ED5769F71BEA5E9BB02A751F9E62EE2B18AC19D975FDEAE9\n+8B8822367FF177A7E850766DE99ED3366D46464612926430012212A90F8E85F4\n+4760B40D5B86B90819EE410382D22D8ED82D0B0AB00C93E10CD365F8766D1C87\n+B4A866021FB6F6AC3D250CC601989B1B8FE6B1098A48282D2CF258BF38FEE940\n+CE0141FB1344156DE7712A8F2DBF700174F12616EE17C852210D96D03E5E6635\n+D439EB6E84A383DDD32AD72DADE6F931FDBABBDC726C36081C96018FC95EAE13\n+DA1F8DBC2D8355AC9792649653225393F4A7A88F3B9443FEEB75E2C15BF93F09\n+CCBA7FABC022BE26F4C28152D5DA6D690494AD4EC0DA1B598AE12536BADF88B5\n+5E20EB452546389F57FF55459567B453AE1831C57D22FA6A4FDF441EDAFDB7FB\n+4F4B707C1FF9159C40F7B5DD519FC07815EE91B8D756B6C18500BCF47D0D9E45\n+6A2D51B6AA5AEAAC9AB2DEF7F0FDE957B6C179CBADEECAC7E9CEC248AB135EB4\n+FBF83D002FF859B574EF36C371540EF2BCFCEF5C2E7863AEDD7C3C965103453B\n+023A9CEC1D5C45B88827ADF4AE0C6746F3C7E6A944427DAEC493601019583A16\n+0F846CE00EAE89EEFF9CE68A0E1D6EBB8FDD8A45D1BF399B36A8328EC957CB8B\n+D842A56269C8C9A6B472C9E65BCBC090606B4E8A7EF4ABDEA120C9F9B3969A1C\n+2EB102925F4E155160E58000E1ADB0D19E10EFD96F6C3225EEE8FC24D122C069\n+C11F1A69DC383F7DACD2F3929BD135CE69787C6E7560AC4B683FE5D9AAFD2E89\n+EE6D95E38C9B726B416E28169A11E29559DBA9AECD714CF318FCB78F34A0E562\n+9C00FE0C6D5A848557D9A82EC2BEFCD30B5EDC0B23C5BA9F812C864394C8B9D1\n+B08BAC9CF94E70FF842306ACCFE6E39A56777C712904A3AB29FBD19275E19E06\n+B35B37CFFFCEC81CAF2D85A853663FAFCFFED1EA77064AA28C15BC94910683BC\n+D09513079DE9EE18E97CC2403DD206516D7F652A3459870757F34EEDCEF952C3\n+FE8004F4716B5BD6774E455010B0BB1E61FCD66B9F14F9BBCCF3E55A158EE96E\n+9A05BDFDDC7706D4BC28FDDC4004EF3A430C607EBDF115E0C996454D70C8BB42\n+D7C83A454B116663D648C23CE2B33365810DE2B64D4AE011BC8043BC3E05B94D\n+1700F859C6AFC6515C1C42FA104EE3E8F3FA5F80252C2E79B00ED27F675FFD09\n+B50BF7A3C63CF4856F909DF969D7DD3EA05CABDD1E71A58CFC2AB5F614B4E5E0\n+25CF92E9FB66ACEBE05DF5E033DA8AD3EE32D94C02D98DD7DA99FAB5AEA595C3\n+2987DC122F0242D76B782349E4069DE0CDD6EF4375C680CBFE4C8F24F2AE89BF\n+7785F5EA7435A91500F265022C307E8ADEAAE1C6\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n@@ -3812,16 +3799,16 @@\n @start /Fa 133[50 59 3[62 44 44 46 1[62 56 62 93 31 2[31\n 62 56 1[51 62 50 1[54 11[86 5[84 1[106 67 2[42 6[80 10[56\n 56 56 56 56 56 56 2[31 46[{}32 99.6264 /CMBX12 rf /Fb\n 169[62 9[62 2[62 73[{}3 119.552 /CMTT12 rf /Fc 152[45\n 45 99[71 2[{}3 90.9091 /CMSY10 rf /Fd 137[42 49 30 37\n 38 1[46 46 51 1[23 42 1[28 46 42 1[42 46 42 1[46 12[65\n 1[66 11[59 62 69 2[68 6[28 58[{}24 90.9091 /CMTI10 rf\n-/Fe 138[51 35 36 11[45 37[68 6[25 4[45 1[45 45 1[45 3[25\n-44[{}11 90.9091 /CMSL10 rf\n+/Fe 134[48 3[51 8[25 33[47 15[25 5[45 1[45 45 45 3[25\n+44[{}10 90.9091 /CMSL10 rf\n %DVIPSBitmapFont: Ff tcrm1095 10.95 1\n [/Grave/Acute/Circumflex/Tilde/Dieresis/Hungarumlaut/Ring/Caron/Breve/Macron\n /Dotaccent/cedilla/ogonek/quotesinglbase.ts1 4{/.notdef}repeat\n /quotedblbase.ts1/.notdef/.notdef/twelveudash/threequartersemdash\n /afii61664.cap/arrowleft/arrowright/tieaccentlowercase/tieaccentcapital\n /tieaccentlowercase.new/tieaccentcapital.new/.notdef/afii61664.asc/uni2422 3\n {/.notdef}repeat/dollar/.notdef/.notdef/quotesingle/.notdef/.notdef\n@@ -3937,17 +3924,17 @@\n b(Absolutely)31 b(no)f(free'ing)h(of)f(data)h(is)g(done)f(when)f(the)i\n Fi(IVL)e Fj(ob)5 b(ject)32 b(is)e(free'd.)227 5407 y(The)g(storage)i\n (managemen)m(t)g(is)e(handled)g(b)m(y)g Fi(IVL)p 1972\n 5407 V 34 w(setList\\(\\))d Fj(and)j Fi(IVL)p 2786 5407\n V 34 w(setPointerToList\\(\\))p Fj(.)1927 5656 y(1)p eop\n end\n %%Page: 2 2\n-TeXDict begin 2 1 bop 0 100 a Fj(2)p 136 100 1199 4 v\n-1381 w Fi(IVL)29 b Fe(:)i Fd(DRAFT)f Fe(August)g(3,)h(2025)p\n-2702 100 V 137 399 a Ff(\\210)45 b Fi(int)i(maxnlist)28\n+TeXDict begin 2 1 bop 0 100 a Fj(2)p 136 100 1256 4 v\n+1438 w Fi(IVL)30 b Fe(:)g Fd(DRAFT)h Fe(July)e(1,)i(2024)p\n+2644 100 V 137 399 a Ff(\\210)45 b Fi(int)i(maxnlist)28\n b Fj(:)41 b(maxim)m(um)30 b(n)m(um)m(b)s(er)f(of)i(lists.)227\n 543 y Fi(int)47 b(nlist)29 b Fj(:)41 b(n)m(um)m(b)s(er)29\n b(of)h(lists.)227 688 y(W)-8 b(e)33 b(ma)m(y)g(not)f(kno)m(w)g(ho)m(w)g\n (man)m(y)g(lists)g(w)m(e)h(will)f(need)g(for)f(the)h(ob)5\n b(ject)33 b(|)f Fi(maxnlist)d Fj(is)j(the)h(dimension)227\n 801 y(of)j(the)f Fi(sizes[])e Fj(and)i Fi(p)p 1102 801\n 29 4 v 34 w(vec[])e Fj(arra)m(ys)j(and)f Fi(nlist)e Fj(is)i(the)h\n@@ -4014,17 +4001,17 @@\n b Fi(tsize)f Fj(are)i(zero,)g Fi(incr)e Fj(is)i Fi(1024)p\n Fj(,)e(and)h Fi(sizes)p Fj(,)f Fi(p)p 2126 5262 V 34\n w(vec)h Fj(and)g Fi(chunk)e Fj(are)j Fi(NULL)p Fj(.)227\n 5407 y Fd(Err)-5 b(or)34 b(che)-5 b(cking:)40 b Fj(If)30\n b Fi(ivl)g Fj(is)g Fi(NULL)p Fj(,)g(an)g(error)g(message)h(is)g(prin)m\n (ted)f(and)g(the)g(program)g(exits.)p eop end\n %%Page: 3 3\n-TeXDict begin 3 2 bop 91 100 1199 4 v 1380 100 a Fi(IVL)30\n-b Fe(:)g Fd(DRAFT)121 b Fe(August)30 b(3,)h(2025)p 2654\n-100 V 1199 w Fj(3)111 399 y(3.)46 b Fi(void)h(IVL_clearData)d(\\()k(IVL)\n+TeXDict begin 3 2 bop 91 100 1256 4 v 1438 100 a Fi(IVL)29\n+b Fe(:)i Fd(DRAFT)121 b Fe(July)30 b(1,)h(2024)p 2597\n+100 V 1256 w Fj(3)111 399 y(3.)46 b Fi(void)h(IVL_clearData)d(\\()k(IVL)\n e(*ivl)h(\\))h(;)227 566 y Fj(This)32 b(metho)s(d)f(clears)i(an)m(y)g\n (data)f(allo)s(cated)j(b)m(y)d(this)g(ob)5 b(ject)33\n b(and)e(then)h(sets)h(the)f(default)g(\\014elds)g(with)g(a)227\n 679 y(call)j(to)g Fi(IVL)p 662 679 29 4 v 33 w(setDefaultFields\\(\\))p\n Fj(.)46 b(An)m(y)34 b(storage)i(held)d(b)m(y)h(the)g\n Fi(Ichunk)e Fj(structures)h(is)h(free'd,)h(and)227 792\n y(if)c Fi(sizes)e Fj(or)h Fi(p)p 745 792 V 34 w(vec)f\n@@ -4072,17 +4059,17 @@\n (int)g(incr)f(\\))i(;)227 5126 y Fj(This)30 b(metho)s(d)g(sets)g(the)h\n (storage)h(incremen)m(t)f(to)g Fi(incr)p Fj(.)227 5294\n y Fd(Err)-5 b(or)27 b(che)-5 b(cking:)36 b Fj(If)21 b\n Fi(ivl)g Fj(is)i Fi(NULL)e Fj(or)h Fi(incr)f Fj(is)h(negativ)m(e,)k(an)\n c(error)f(message)j(is)e(prin)m(ted)f(and)h(the)g(program)227\n 5407 y(exits.)p eop end\n %%Page: 4 4\n-TeXDict begin 4 3 bop 0 100 a Fj(4)p 136 100 1199 4 v\n-1381 w Fi(IVL)29 b Fe(:)i Fd(DRAFT)f Fe(August)g(3,)h(2025)p\n-2702 100 V 0 399 a Fa(1.2.3)112 b(Initialization)39 b(and)f(resizing)g\n+TeXDict begin 4 3 bop 0 100 a Fj(4)p 136 100 1256 4 v\n+1438 w Fi(IVL)30 b Fe(:)g Fd(DRAFT)h Fe(July)e(1,)i(2024)p\n+2644 100 V 0 399 a Fa(1.2.3)112 b(Initialization)39 b(and)f(resizing)g\n (metho)s(ds)111 606 y Fj(1.)46 b Fi(void)h(IVL_init1)e(\\()j(IVL)f\n (*ivl,)f(int)h(type,)f(int)h(maxnlist)f(\\))h(;)227 767\n y Fj(This)34 b(metho)s(d)g(is)g(used)g(when)f(only)i(the)f(n)m(um)m(b)s\n (er)f(of)i(lists)g(is)f(kno)m(wn.)52 b(An)m(y)35 b(previous)e(data)j\n (is)e(cleared)227 879 y(with)c(a)f(call)i(to)g Fi(IVL)p\n 935 879 29 4 v 33 w(clearData\\(\\))p Fj(.)37 b(The)30\n b Fi(type)e Fj(\\014eld)h(is)h(set.)41 b(If)29 b Fi(maxnlist)45\n@@ -4161,17 +4148,17 @@\n 5085 y Fd(Err)-5 b(or)32 b(che)-5 b(cking:)40 b Fj(If)27\n b Fi(ivl)h Fj(is)g Fi(NULL)f Fj(or)i(if)f Fi(newmaxnlist)d\n Fj(is)k(negativ)m(e,)i(an)d(error)g(message)h(is)g(prin)m(ted)f(and)227\n 5198 y(the)j(program)f(exits.)111 5407 y(6.)46 b Fi(void)h\n (IVL_setNlist)d(\\()k(IVL)f(*ivl,)f(int)h(newnlist)f(\\))h(;)p\n eop end\n %%Page: 5 5\n-TeXDict begin 5 4 bop 91 100 1199 4 v 1380 100 a Fi(IVL)30\n-b Fe(:)g Fd(DRAFT)121 b Fe(August)30 b(3,)h(2025)p 2654\n-100 V 1199 w Fj(5)227 399 y(This)39 b(metho)s(d)f(is)h(used)g(to)g(c)m\n+TeXDict begin 5 4 bop 91 100 1256 4 v 1438 100 a Fi(IVL)29\n+b Fe(:)i Fd(DRAFT)121 b Fe(July)30 b(1,)h(2024)p 2597\n+100 V 1256 w Fj(5)227 399 y(This)39 b(metho)s(d)f(is)h(used)g(to)g(c)m\n (hange)i(the)e(n)m(um)m(b)s(er)f(of)h(lists.)68 b(If)38\n b Fi(newnlist)46 b(>)h(maxnlist)p Fj(,)40 b(storage)g(for)227\n 511 y(the)h(lists)g(is)f(increased)g(via)h(a)g(call)g(to)g(the)g\n Fi(IVL)p 1956 511 29 4 v 33 w(setMaxnlist\\(\\))c Fj(metho)s(d.)70\n b(Then)39 b Fi(nlist)g Fj(is)h(set)h(to)227 624 y Fi(newnlist)p\n Fj(.)227 852 y Fd(Err)-5 b(or)39 b(che)-5 b(cking:)50\n b Fj(If)35 b Fi(ivl)g Fj(is)g Fi(NULL)p Fj(,)g(or)g(if)g\n@@ -4214,17 +4201,17 @@\n 5294 y Fj(This)39 b(metho)s(d)f(sets)i(the)g(size)g(and)e(\\(p)s\n (ossibly\\))i(p)s(oin)m(ter)f(to)h(a)g(list)f(of)h(en)m(tries.)68\n b(The)39 b(b)s(eha)m(vior)g(of)h(the)227 5407 y(metho)s(d)30\n b(dep)s(ends)f(on)h(the)g(t)m(yp)s(e)h(of)g(the)f Fi(ivl)g\n Fj(ob)5 b(ject.)41 b(Here)31 b(is)f(the)h(\\015o)m(w)f(c)m(hart:)p\n eop end\n %%Page: 6 6\n-TeXDict begin 6 5 bop 0 100 a Fj(6)p 136 100 1199 4 v\n-1381 w Fi(IVL)29 b Fe(:)i Fd(DRAFT)f Fe(August)g(3,)h(2025)p\n-2702 100 V 605 311 2918 4 v 605 2506 4 2196 v 663 414\n+TeXDict begin 6 5 bop 0 100 a Fj(6)p 136 100 1256 4 v\n+1438 w Fi(IVL)30 b Fe(:)g Fd(DRAFT)h Fe(July)e(1,)i(2024)p\n+2644 100 V 605 311 2918 4 v 605 2506 4 2196 v 663 414\n a Fj(if)g Fi(ilist)46 b(>=)h(maxnlist)28 b Fj(then)898\n 527 y(the)j(n)m(um)m(b)s(er)e(of)h(lists)h(is)g(increased)f(via)h(a)g\n (call)h(to)f Fi(IVL)p 2816 527 29 4 v 33 w(setMaxnlist\\(\\))663\n 640 y Fj(endif)663 753 y(if)g Fi(ilist)46 b(>=)h(nlist)29\n b Fj(then)898 866 y Fi(nlist)g Fj(is)i(increased)663\n 979 y(endif)663 1092 y(if)g Fi(isize)46 b(=)i(0)30 b\n Fj(then)898 1205 y(release)i(the)e(storage)i(for)f(that)f(list,)i\n@@ -4267,17 +4254,17 @@\n y(int)g(IVL_sum)f(\\()h(IVL)g(*ivl)g(\\))g(;)227 5246 y\n Fj(These)30 b(metho)s(ds)g(return)f(some)i(simple)f(information)h(ab)s\n (out)f(the)h(ob)5 b(ject.)227 5407 y Fd(Err)-5 b(or)34\n b(che)-5 b(cking:)40 b Fj(If)30 b Fi(ivl)g Fj(is)g Fi(NULL)f\n Fj(then)i(an)f(error)g(message)h(is)g(prin)m(ted)f(and)f(the)i(program)\n f(exits.)p eop end\n %%Page: 7 7\n-TeXDict begin 7 6 bop 91 100 1199 4 v 1380 100 a Fi(IVL)30\n-b Fe(:)g Fd(DRAFT)121 b Fe(August)30 b(3,)h(2025)p 2654\n-100 V 1199 w Fj(7)111 399 y(3.)46 b Fi(int)h(IVL_sortUp)e(\\()j(IVL)f\n+TeXDict begin 7 6 bop 91 100 1256 4 v 1438 100 a Fi(IVL)29\n+b Fe(:)i Fd(DRAFT)121 b Fe(July)30 b(1,)h(2024)p 2597\n+100 V 1256 w Fj(7)111 399 y(3.)46 b Fi(int)h(IVL_sortUp)e(\\()j(IVL)f\n (*ivl)f(\\))i(;)227 559 y Fj(This)30 b(metho)s(d)g(sorts)g(eac)m(h)i\n (list)f(in)m(to)g(ascending)g(order.)227 720 y Fd(Err)-5\n b(or)28 b(che)-5 b(cking:)37 b Fj(If)23 b Fi(ivl)g Fj(is)g\n Fi(NULL)g Fj(or)g Fi(nlist)46 b(<)i(0)23 b Fj(then)g(an)h(error)f\n (message)i(is)e(prin)m(ted)g(and)g(the)h(program)227\n 833 y(exits.)111 1042 y(4.)46 b Fi(int)h(*)h(IVL_equivMap1)c(\\()j(IVL)g\n (*ivl)g(\\))g(;)227 1155 y(IV)95 b(*)48 b(IVL_equivMap2)c(\\()j(IVL)g\n@@ -4345,17 +4332,17 @@\n b(so)227 5246 y(w)m(e)31 b(create)h(and)e(return)f(a)i(new)f\n Fi(IVL)f Fj(ob)5 b(ject)31 b(that)g(con)m(tains)h(en)m(tries)f(for)f\n (the)h(uncompressed)e(graph.)227 5407 y Fd(Err)-5 b(or)30\n b(che)-5 b(cking:)38 b Fj(If)26 b Fi(ivl)f Fj(or)h Fi(eqmapIV)e\n Fj(is)i Fi(NULL)p Fj(,)f(an)h(error)f(message)i(is)f(prin)m(ted)g(and)f\n (the)h(program)g(exits.)p eop end\n %%Page: 8 8\n-TeXDict begin 8 7 bop 0 100 a Fj(8)p 136 100 1199 4 v\n-1381 w Fi(IVL)29 b Fe(:)i Fd(DRAFT)f Fe(August)g(3,)h(2025)p\n-2702 100 V 0 399 a Fa(1.2.6)112 b(Miscellaneous)40 b(metho)s(ds)111\n+TeXDict begin 8 7 bop 0 100 a Fj(8)p 136 100 1256 4 v\n+1438 w Fi(IVL)30 b Fe(:)g Fd(DRAFT)h Fe(July)e(1,)i(2024)p\n+2644 100 V 0 399 a Fa(1.2.6)112 b(Miscellaneous)40 b(metho)s(ds)111\n 598 y Fj(1.)46 b Fi(IVL)h(*)h(IVL_make9P)d(\\()i(int)g(n1,)g(int)g(n2,)g\n (int)g(ncomp)f(\\))h(;)227 752 y Fj(This)35 b(metho)s(d)g(returns)f(an)h\n Fi(IVL)f Fj(ob)5 b(ject)36 b(that)g(con)m(tains)h(the)e(full)g\n (adjacency)i(structure)d(for)h(a)h(9-p)s(oin)m(t)227\n 865 y(op)s(erator)31 b(on)f(a)h Fi(n1)20 b Fc(\\002)g\n Fi(n2)29 b Fj(grid)h(with)g Fi(ncomp)f Fj(comp)s(onen)m(ts)i(at)g(eac)m\n (h)h(grid)e(p)s(oin)m(t.)227 1018 y Fd(Err)-5 b(or)37\n@@ -4419,17 +4406,17 @@\n 5254 y(data,)h(the)e(v)-5 b(alue)31 b Fi(1)f Fj(is)g(returned.)40\n b(If)30 b(an)g(IO)g(error)g(is)g(encoun)m(tered)h(from)f\n Fi(fscanf)p Fj(,)f(zero)i(is)g(returned.)227 5407 y Fd(Err)-5\n b(or)34 b(che)-5 b(cking:)40 b Fj(If)30 b Fi(ivl)g Fj(or)g\n Fi(fp)g Fj(are)h Fi(NULL)e Fj(an)h(error)g(message)i(is)e(prin)m(ted)g\n (and)g(zero)h(is)f(returned.)p eop end\n %%Page: 9 9\n-TeXDict begin 9 8 bop 91 100 1199 4 v 1380 100 a Fi(IVL)30\n-b Fe(:)g Fd(DRAFT)121 b Fe(August)30 b(3,)h(2025)p 2654\n-100 V 1199 w Fj(9)111 399 y(3.)46 b Fi(int)h(IVL_readFromBinaryFile)42\n+TeXDict begin 9 8 bop 91 100 1256 4 v 1438 100 a Fi(IVL)29\n+b Fe(:)i Fd(DRAFT)121 b Fe(July)30 b(1,)h(2024)p 2597\n+100 V 1256 w Fj(9)111 399 y(3.)46 b Fi(int)h(IVL_readFromBinaryFile)42\n b(\\()47 b(IVL)g(*ivl,)g(FILE)f(*fp)h(\\))h(;)227 556 y\n Fj(This)25 b(metho)s(d)g(reads)g(an)g Fi(IVL)g Fj(ob)5\n b(ject)26 b(from)f(a)h(binary)f(\\014le.)39 b(If)25 b(there)h(are)f(no)h\n (errors)f(in)g(reading)g(the)h(data,)227 669 y(the)31\n b(v)-5 b(alue)31 b Fi(1)f Fj(is)g(returned.)40 b(If)30\n b(an)g(IO)g(error)g(is)g(encoun)m(tered)h(from)f Fi(fread)p\n Fj(,)f(zero)i(is)g(returned.)227 826 y Fd(Err)-5 b(or)34\n@@ -4495,17 +4482,17 @@\n Fi(IVL)e Fj(ob)5 b(ject)29 b(from)e Fi(inFile)e Fj(and)i(writes)h(out)g\n (the)f(ob)5 b(ject)29 b(to)f Fi(outFile)337 5294 y Ff(\\210)45\n b Fj(The)28 b Fi(msglvl)f Fj(parameter)i(determines)g(the)g(amoun)m(t)g\n (of)f(output)h(|)f(taking)i Fi(msglvl)46 b(>=)h(3)28\n b Fj(means)427 5407 y(the)j Fi(IVL)e Fj(ob)5 b(ject)32\n b(is)e(written)g(to)i(the)e(message)i(\\014le.)p eop end\n %%Page: 10 10\n-TeXDict begin 10 9 bop 0 100 a Fj(10)p 182 100 1176 4\n-v 1358 w Fi(IVL)30 b Fe(:)g Fd(DRAFT)h Fe(August)f(3,)h(2025)p\n-2724 100 V 337 399 a Ff(\\210)45 b Fj(The)33 b Fi(msgFile)e\n+TeXDict begin 10 9 bop 0 100 a Fj(10)p 182 100 1234 4\n+v 1416 w Fi(IVL)29 b Fe(:)i Fd(DRAFT)f Fe(July)g(1,)h(2024)p\n+2667 100 V 337 399 a Ff(\\210)45 b Fj(The)33 b Fi(msgFile)e\n Fj(parameter)j(determines)f(the)h(message)g(\\014le)f(|)h(if)f\n Fi(msgFile)e Fj(is)i Fi(stdout)p Fj(,)g(then)g(the)427\n 511 y(message)27 b(\\014le)f(is)g Fd(stdout)p Fj(,)i(otherwise)e(a)h\n (\\014le)f(is)f(op)s(ened)g(with)h Fd(app)-5 b(end)28\n b Fj(status)e(to)g(receiv)m(e)i(an)m(y)e(output)427 624\n y(data.)337 770 y Ff(\\210)45 b Fj(The)25 b Fi(inFile)e\n Fj(parameter)i(is)g(the)g(input)f(\\014le)g(for)h(the)g\n", "details": [{"source1": "ps2ascii {}", "source2": "ps2ascii {}", "unified_diff": "@@ -22,15 +22,15 @@\n Each list is allocated separately using the IVinit() function. When the IVL object is\r\n free\u2019d, each list is free\u2019d separately using the IVfree() function.\r\n \u2013 IVL UNKNOWN\r\n This storage mode is available for the cases where storage for a list is aliased to another\r\n location. Absolutely no free\u2019ing of data is done when the IVL object is free\u2019d.\r\n The storage management is handled by IVL setList() and IVL setPointerToList().\r\n 1\r\n- 2 IVL : DRAFT August 3, 2025\r\n+ 2 IVL : DRAFT July 1, 2024\r\n \u2022 int maxnlist : maximum number of lists.\r\n int nlist : number of lists.\r\n We may not know how many lists we will need for the object \u2014 maxnlist is the dimension\r\n of the sizes[] and p vec[] arrays and nlist is the present number of active lists. When\r\n we initialize the object using one of the IVL init{1,2,3}() methods, we set nlist equal to\r\n maxnlist. We resize the object using IVL setMaxnlist().\r\n \u2022 int tsize : total number of list entries.\r\n@@ -57,15 +57,15 @@\n 1. IVL * IVL_new ( void ) ;\r\n This method simply allocates storage for the IVL structure and then sets the default \ufb01elds by\r\n a call to IVL setDefaultFields().\r\n 2. void IVL_setDefaultFields ( IVL *ivl ) ;\r\n This method sets the default \ufb01elds of the object \u2014 type = IVL NOTYPE, maxnlist, nlist\r\n and tsize are zero, incr is 1024, and sizes, p vec and chunk are NULL.\r\n Error checking: If ivl is NULL, an error message is printed and the program exits.\r\n- IVL : DRAFT August 3, 2025 3\r\n+ IVL : DRAFT July 1, 2024 3\r\n 3. void IVL_clearData ( IVL *ivl ) ;\r\n This method clears any data allocated by this object and then sets the default \ufb01elds with a\r\n call to IVL setDefaultFields(). Any storage held by the Ichunk structures is free\u2019d, and\r\n if sizes or p vec are not NULL, they are free\u2019d.\r\n Error checking: If ivl is NULL, an error message is printed and the program exits.\r\n 4. void IVL_free ( IVL *ivl ) ;\r\n This method releases any storage by a call to IVL clearData() then free\u2019s the storage for\r\n@@ -87,15 +87,15 @@\n 5. int IVL_incr ( IVL *ivl ) ;\r\n This method returns incr, the storage increment.\r\n Error checking: If ivl is NULL, an error message is printed and the program exits.\r\n 6. int IVL_setincr ( IVL *ivl, int incr ) ;\r\n This method sets the storage increment to incr.\r\n Error checking: If ivl is NULL or incr is negative, an error message is printed and the program\r\n exits.\r\n- 4 IVL : DRAFT August 3, 2025\r\n+ 4 IVL : DRAFT July 1, 2024\r\n 1.2.3 Initialization and resizing methods\r\n 1. void IVL_init1 ( IVL *ivl, int type, int maxnlist ) ;\r\n This method is used when only the number of lists is known. Any previous data is cleared\r\n with a call to IVL clearData(). The type \ufb01eld is set. If maxnlist > 0, storage is allocated\r\n for the sizes[] and p vec[] arrays and nlist is set to maxnlist.\r\n Error checking: If ivl is NULL or type is invalid or maxnlist is negative, an error message is\r\n printed and the program exits.\r\n@@ -124,15 +124,15 @@\n newmaxnlist == maxnlist,nothingisdone. Otherwise,newstorageforsizes[]andp vec[]\r\n is allocated, the information for the \ufb01rst nlist lists is copied over, and the old storage\r\n free\u2019d. Note, maxnlist is set to newmaxnlist and nlist is set to the minimum of nlist and\r\n newmaxnlist.\r\n Error checking: If ivl is NULL or if newmaxnlist is negative, an error message is printed and\r\n the program exits.\r\n 6. void IVL_setNlist ( IVL *ivl, int newnlist ) ;\r\n- IVL : DRAFT August 3, 2025 5\r\n+ IVL : DRAFT July 1, 2024 5\r\n This method is used to change the number of lists. If newnlist > maxnlist, storage for\r\n the lists is increased via a call to the IVL setMaxnlist() method. Then nlist is set to\r\n newnlist.\r\n Error checking: If ivl is NULL, or if newnlist is negative, an error message is printed and\r\n the program exits.\r\n 1.2.4 List manipulation methods\r\n 1. void IVL_listAndSize ( IVL *ivl, int ilist, int *psize, int **pivec) ;\r\n@@ -151,15 +151,15 @@\n if so an error message is printed and the program exits. In method IVL firstInList(), if\r\n sizes[ilist] > 0 and p vec[ilist] = NULL, an error message is printed and the program\r\n exits. In method IVL nextInList(), if pi is not in the valid range for list ilist, an error\r\n message is printed and the program exits.\r\n 3. void IVL_setList ( IVL *ivl, int ilist, int isize, int ivec[] ) ;\r\n This method sets the size and (possibly) pointer to a list of entries. The behavior of the\r\n method depends on the type of the ivl object. Here is the \ufb02ow chart:\r\n- 6 IVL : DRAFT August 3, 2025\r\n+ 6 IVL : DRAFT July 1, 2024\r\n if ilist >= maxnlist then\r\n the number of lists is increased via a call to IVL setMaxnlist()\r\n endif\r\n if ilist >= nlist then\r\n nlist is increased\r\n endif\r\n if isize = 0 then\r\n@@ -189,15 +189,15 @@\n Error checking: If ivl is NULL, an error message is printed and the program exits.\r\n 2. int IVL_min ( IVL *ivl ) ;\r\n int IVL_max ( IVL *ivl ) ;\r\n int IVL_maxListSize ( IVL *ivl ) ;\r\n int IVL_sum ( IVL *ivl ) ;\r\n These methods return some simple information about the object.\r\n Error checking: If ivl is NULL then an error message is printed and the program exits.\r\n- IVL : DRAFT August 3, 2025 7\r\n+ IVL : DRAFT July 1, 2024 7\r\n 3. int IVL_sortUp ( IVL *ivl ) ;\r\n This method sorts each list into ascending order.\r\n Error checking: If ivl is NULL or nlist < 0 then an error message is printed and the program\r\n exits.\r\n 4. int * IVL_equivMap1 ( IVL *ivl ) ;\r\n IV * IVL_equivMap2 ( IVL *ivl ) ;\r\n Two lists are equivalent if their contents are identical. These methods are used to \ufb01nd the\r\n@@ -226,15 +226,15 @@\n and the program exits.\r\n 8. IVL * IVL_expand ( IVL *ivl, IV *eqmapIV ) ;\r\n This method was created in support of a symbolic factorization. An IVL object is constructed\r\n using a compressed graph. it must be expanded to re\ufb02ect the compressed graph. The number\r\n of lists does not change (there is one list per front) but the size of each list may change. so\r\n we create and return a new IVL object that contains entries for the uncompressed graph.\r\n Error checking: If ivl or eqmapIV is NULL, an error message is printed and the program exits.\r\n- 8 IVL : DRAFT August 3, 2025\r\n+ 8 IVL : DRAFT July 1, 2024\r\n 1.2.6 Miscellaneous methods\r\n 1. IVL * IVL_make9P ( int n1, int n2, int ncomp ) ;\r\n This method returns an IVL object that contains the full adjacency structure for a 9-point\r\n operator on a n1\u00d7n2 grid with ncomp components at each grid point.\r\n Error checking: If n1, n2 or ncomp is less than or equal to zero, an error message is printed\r\n and the program exits.\r\n 2. IVL * IVL_make13P ( int n1, int n2 ) ;\r\n@@ -261,15 +261,15 @@\n and returns the value returned from the called routine.\r\n Error checking: If ivl or fn are NULL, or if fn is not of the form *.ivlf (for a formatted \ufb01le)\r\n or *.ivlb (for a binary \ufb01le), an error message is printed and the method returns zero.\r\n 2. int IVL_readFromFormattedFile ( IVL *ivl, FILE *fp ) ;\r\n This method reads an IVL object from a formatted \ufb01le. If there are no errors in reading the\r\n data, the value 1 is returned. If an IO error is encountered from fscanf, zero is returned.\r\n Error checking: If ivl or fp are NULL an error message is printed and zero is returned.\r\n- IVL : DRAFT August 3, 2025 9\r\n+ IVL : DRAFT July 1, 2024 9\r\n 3. int IVL_readFromBinaryFile ( IVL *ivl, FILE *fp ) ;\r\n This method reads an IVL object from a binary \ufb01le. If there are no errors in reading the data,\r\n the value 1 is returned. If an IO error is encountered from fread, zero is returned.\r\n Error checking: If ivl or fp are NULL an error message is printed and zero is returned.\r\n 4. int IVL_writeToFile ( IVL *ivl, char *fn ) ;\r\n This method writes an IVL object to a \ufb01le. If the the \ufb01le can be opened successfully, the\r\n method calls IVL writeFromFormattedFile() or IVL writeFromBinaryFile(), closes the\r\n@@ -293,15 +293,15 @@\n Error checking: If ivl or fp are NULL, an error message is printed and zero is returned.\r\n 1.3 Driver programs for the IVL object\r\n This section contains brief descriptions of six driver programs.\r\n 1. testIO msglvl msgFile inFile outFile\r\n This driver program reads in a IVL object from inFile and writes out the object to outFile\r\n \u2022 The msglvl parameter determines the amount of output \u2014 taking msglvl >= 3 means\r\n the IVL object is written to the message \ufb01le.\r\n- 10 IVL : DRAFT August 3, 2025\r\n+ 10 IVL : DRAFT July 1, 2024\r\n \u2022 The msgFile parameter determines the message \ufb01le \u2014 if msgFile is stdout, then the\r\n message \ufb01le is stdout, otherwise a \ufb01le is opened with append status to receive any output\r\n data.\r\n \u2022 The inFileparameter is the input \ufb01le for the IVL object. It must be of the form *.ivlf\r\n or *.ivlb. The IVL object is read from the \ufb01le via the IVL readFromFile() method.\r\n \u2022 The outFile parameter is the output \ufb01le for the IVL object. It must be of the form\r\n *.ivlf or *.ivlb. The IVL object is written to the \ufb01le via the IVL writeToFile()\r\n"}]}]}, {"source1": "./usr/share/doc/spooles-doc/Ideq.ps.gz", "source2": "./usr/share/doc/spooles-doc/Ideq.ps.gz", "unified_diff": null, "details": [{"source1": "Ideq.ps", "source2": "Ideq.ps", "unified_diff": "@@ -10,15 +10,15 @@\n %%EndComments\n %%BeginDefaults\n %%ViewingOrientation: 1 0 0 1\n %%EndDefaults\n %DVIPSWebPage: (www.radicaleye.com)\n %DVIPSCommandLine: dvips main -o Ideq.ps\n %DVIPSParameters: dpi=600\n-%DVIPSSource: TeX output 2025.08.03:1317\n+%DVIPSSource: TeX output 2024.07.01:0700\n %%BeginProcSet: tex.pro 0 0\n %!\n /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S\n N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72\n mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0\n 0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{\n landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize\n@@ -1255,23 +1255,22 @@\n /UnderlinePosition -100 def\n /UnderlineThickness 50 def\n end readonly def\n /Encoding 256 array\n 0 1 255 {1 index exch /.notdef put} for\n dup 44 /comma put\n dup 48 /zero put\n+dup 49 /one put\n dup 50 /two put\n-dup 51 /three put\n-dup 53 /five put\n+dup 52 /four put\n dup 58 /colon put\n-dup 65 /A put\n-dup 103 /g put\n-dup 115 /s put\n-dup 116 /t put\n+dup 74 /J put\n+dup 108 /l put\n dup 117 /u put\n+dup 121 /y put\n readonly def\n currentdict end\n currentfile eexec\n D9D66F633B846AB284BCF8B0411B772DE5CE32340DC6F28AF40857E4451976E7\n 5182433CF9F333A38BD841C0D4E68BF9E012EB32A8FFB76B5816306B5EDF7C99\n 8B3A16D9B4BC056662E32C7CD0123DFAEB734C7532E64BBFBF5A60336E646716\n EFB852C877F440D329172C71F1E5D59CE9473C26B8AEF7AD68EF0727B6EC2E0C\n@@ -1452,79 +1451,67 @@\n 7CA1534C4D5B05FC33F83790ECFD7641DF3FB94289E2A1F6E7D29AB1228A867A\n 6E1EF0E9C6F899B491DC18401C2C0A05FFFED46A72C245F7529B8EA55A038082\n 8512307217D2A233C37004085BA3AEE379269F9FA7D0ADB4B19A95CC2AFE686E\n 55D88E47257C1FE6F235FEA295910569FE6DD5995512562359CC821E85A6C7A5\n 79B470A9E340A6985189FF8B6AF914A6B0ECF93F47903221F95DE894A8F05B05\n B7D99CD533EC5F931B18E6B39BECF67FA2D6DD1AEC76772B068BE06335A94C05\n 7A4DDEE77B66101DA855C17AC312600370B34E31F5EC3A01300A8EB60B4C9767\n-1B2FA10DF7E91D3BB34A1B1CE7A0015A57C813E0280D873ADB88440048702D1F\n-77994EE04EC3B4531D6E1888C86A8F0DA6CF1F056F16AB0DD76C862830F89DA4\n-28923B3AA543E0D6E41D3BD283E600BC11F889315EE92C675C109C81065ED1BC\n-82A5583D1B723D50051B0557A367887F5B263014C6E77288B4883C50889473D3\n-3787BAD4BEB88BD1353AFA5B73E61814819537E7FF09F53EF94792BB3DD36ED0\n-002D0E7A6CDAB85A9C17AF5664BCB5A71663B861880F3ECCABC8E7A2FC81A4CC\n-AE7A87503FDC1CE0077BA51ECC7B43B60793FED8E9AAD5BBD03ADD6183DCD26D\n-24A74163611C05562437644EF9B8889FD4F9D311911204FEFD35237486F2D2D0\n-B6783A03BF12EA6D19D6D0F87E4D08515F12F9CBF1961CAA71E0D69FE3C4C4D2\n-7C7FB64ED24F8684C8F00C2BEDEA53EA390CDC0B5BEBD7DD982580B2EA1F1F89\n-CFED5916630DC2BA32BB9180277E1ABC339B3B7DE086717BD93F7FF3681BA5B3\n-FCF671C4B293C2DE4A322F0AA3323A4934444C69F23EF90120B8755482757759\n-C457A435FB8BB4922BD92C5F3D9555D978275C510183E29DFF2FCE4ABBFC18DE\n-76CAD3B486BA12047DD808CD4D521A0FD368E4AE79DE262630983A5D6F0B679D\n-2F005306393C520E1B6987302D029939D94B0178DC55D5264E1FEA468AD4134C\n-8C65B2FBBE8DE8284E8E1F6BFE0B648F44D3DA8E9350D266EDBFD4A7054D9355\n-1E0B185DED37BCF32D3731358F1D707C94109428BAD3CEA456A2A43553E3D2C2\n-F549189201F3D3F715310E3E8C6A2E9AA5141AA9125D203694C7D875C2DD320F\n-C5BCDFC924F6C04DBC7A97349B45ECD0FBD7D2123ED1D3A9F440B1112BE62779\n-47A4592F9285CBD9635EC9091CEC0AFD7E6B6976974081DB9C0E43165BD8584D\n-6CDF08DED287F0883A9FBD351B3F8706BA1E94C7CA487338269482EB8DC1A05D\n-F6632A5D834DE29228C49C5BA65EF7C535A53B380BF4B391F43562147538EE97\n-E799DFC2C40315859F56BBCE9CAE1DF9293F6E2C193ABE7A724EC8F32FA220E7\n-6026877A63E318254F2AF7B1325D63FC4C52B536D3EF354814C2F8F1EEA30569\n-6EF04447DB0F809DF35B4985B9FB4F4BB6087310BE633E76F268B32ABA99CE8E\n-03163DFF4AEDB88E60DD0848C15E90026D7C24D81122EBC07113F9851914A9D5\n-D0E09C2BFDDAF10C5D8208E8329BC0C402F231CD84C95EFDD182AD9756662110\n-274650C7A5BB0D8EFA54EC6C5A49C0EB26701A54779AE8EFBBED824262761602\n-680EDFB38F0FE18C0F501F5AA8BF48A8F0DD3E5E1EBEB872F6F6B23964707B32\n-507FC677B9FDDC990E3828B06420F6F968B2F6AE81E76A2144B1ECE905485616\n-CFB29AC96DDE1F5039935D7E385CC13E34DD7EAF276A2EA3A8BF27FD4205AE13\n-7FE620E42F2CF231C6C8DD8EFC5A6CF081E5660D9ADD730D72D15C02B1E15FF3\n-D741D3B1EB1E666C4E562219033C1E2EF3F96E136998B2E1890395A3637A2C02\n-DE1C46AFCA8D898439F06606A2295D3F7ED6C7DB250C61B6B97A0D5EDDB9657E\n-E790B4E07540BB1026036F4A0D00E7F16FD757AD61D686620C6814B7DCEC43E8\n-FD36D9E75BA554F64548A67D9B0A26E11784E58D4357FC251D71B5D6D8BFDDE0\n-D3BF0E825DA5312C1904AF13C5905C2ADF79C357476183D2EC5A95243235E861\n-2F98D9EE77EF8F8CB3EC6BD358C5ED37DD3AF44D60575E7774BF96F1AE9DFAD1\n-F8646DEDF21D10311854726B8F7D25876BB1EF78E2442B16ED4B851816CF0A27\n-11FDFCE525002A1A7C3E62CD2A3EDE6FAADB026D2F3A46C030ADB22422CA8FF5\n-2545ED58C0D9FB5BDB55FE674301E91A75B005B86BD201D246F7ADACE50419FD\n-AC3312CAC5EB78A36F0E5F62E65AC92129CB574AAC59E0A7C1390DFC61F39D9E\n-D7036742F2F6E64D1EF8157E9CCF65F3EEDC6A8220235978B8E06EB80F649F3E\n-204CFB497F49306EA8E1F7B62305978A28F1E771ED82C6592C71022154E4062A\n-A92335EFC65D6DED9C686899FFD7AA2988740618C03C5E362E1AF352E3BE4602\n-5530C51E5FC8E9082DF79199CC91C50174000D337D86127AC807C5A3C81DDE57\n-7A68AEE7230949B925365C214D77C80E87CEE218ABC94023717EA43BA5D8A7C8\n-8A8B9BD1B767996AE33050E3D922ED0574E3579C57E4BDDAD35883806AFDF260\n-3AB5D83D451583262E580FFDB7A27D82396AF18D92B849A3F7A7E621987D5DF0\n-038F876C6E9CA47FB11AF05F0019191C5DDC5F0177AD421E94BC66D0CCB82F1F\n-93A80836284B095503752C600F72E2C89112ABFA5B76152691264103B268B3E5\n-8816724ADADB38740001A9AACE05C8AF02D72918606DC22EFC8BF0DA0FD12FFE\n-D3A09F8E28057F327BFB633E604B1EAD478637B1D9631650B314CC62D7E0E87F\n-9D3FE1FFA23BB6E3006C3E39BED52F6B0C1C651B5913878F36DA0BF776889165\n-68BA3456B40B8B471CA8FF5238E43D9113E052A2B8D2EAA2433D3F89FCA48AFB\n-5E842913E4ED6DF9623354059CD1F1707B126FED80349787C869883120183EDD\n-249185A55503FAC53898F52170D05CAC62BB742CF9702C0518AED6B27CDC401C\n-932E02143FD916703F360CB31049501B35EF3EDDFED791090D0CFA221FD1DB32\n-7D4759CE07983AE29C258C705D11E7D9481EEAAB9B6BA65CDCF0AA0057BD6FEA\n-ABBFBD3ABF2A7BFB550C3D2A16DC447384A89F3DB6D9C2DBDCA997ABE35A7706\n-633D328AECEDB5BD07070C1B96267FD73B45791DD18194F60D358091FBE88409\n-973529806F3D2C9E6E39091F90A14B560A987E0B9490B9B690FB489B8E253070\n-D7C54447BE0E0A0BFEAEFFB581DC1300E6EC382984673BF0665632404E59B5BF\n-5D5F0A1C956E618C0487751CA5DAE8A95C214F76ED756694EF273679CD2D85CB\n-949DF385BD50491649EFEFDA1574921D7460143D42A100D2C76E55F0BC\n+1B2FA10DF7E91D3BB34A1B1CE7A0015A57C813E0280D873ADB8844004B9BA1CC\n+580D3C6BDA4DC1B80B4365F1C80512453FC5316EC2D928FB731C3D6403E3C18B\n+E8424D644DF5E9A2134229C5C91CA68DB8E85BA2BB40F538F585DA6FA4037718\n+B8053EBBA1E765346BCD5BDAA6C38115D31611D8A87A2238C145F2DA2F92E4DF\n+3987BD9C4D2A3D460E8941A68B125BCD9EE4F9FD262C4C8A71F47A2C81975635\n+F1B981C274C53FA2ACCDE4C9D0A7C62D6C1EFF91CFC6712CA6A9F333C9564FCB\n+2A70F0AD715A79B10A08AB069E2A3C93BC0AED19D0CA10134B8DDDE8AF548DB2\n+3A4AAA9C29682CF135BB767DAA16169A127EB50A7EECEB6480CF56A7D0F8AC56\n+4A5090B3D75A790372886AF568D94C8165975A05BFBFDF1FFBA45F70700BB9E0\n+57F3249EF9E9C8AD9CBCF6E4FD592DC4CDD2CC7C0BC3130C1059096C657BE453\n+A2CBACE93420210E27AF56CA229BD6D982FB68B3FDC6D44478B922C4231C47EE\n+E500232F6C11D92DEB955F66DF52B92B22E7352790CC2DCBAC53965D57AC2920\n+68B7D520DE25047146EFEB06B9AD4E2A94243C7E5239F0BC2FC312B16051D52C\n+0B92C217B6B42997321AE4F8BB066754B7AA3F15069EF59224E8A442CE471AA7\n+E8049A3DD9EDA09CCEE4998998661CF7DB35E952F6C65DAEB3013951C59F3E09\n+157F313B0237876E1C0190F0473819570B8C0205AADF05D787CC00979CFB327A\n+289382B22DDA6F12804ED0ED5B179E36A995A2A59E1B66E75130DBE9109C813B\n+94403E0DEA8314A1E9DB474D7FA83C0BAFD08033E6A6215844C1D26BE15F1251\n+A1605E8DF9A9C601ED37379530BC1C82BE5463C6C711C5652BFD6262485AA9CA\n+B8C4A117593001D08D980041E2A83C190DCE8E6CD3D334E5CC19FC05DB30F7F7\n+24A305C4DBB31F0651392B99D44B4302333BDF7E326FD256DD75D309C6E73F85\n+FA71B35FD1F9BEFF4C7A1076362EEB0A85492933B6006086A7B8C1928CF2D1EE\n+FD4344409257BB802C117E739960821CD3C88BFBA5669FF16F610AD638AF3677\n+8674C985E6767253ED5769F71BEA5E9BB02A751F9E62EE2B18AC19D975FDEAE9\n+8B8822367FF177A7E850766DE99ED3366D46464612926430012212A90F8E85F4\n+4760B40D5B86B90819EE410382D22D8ED82D0B0AB00C93E10CD365F8766D1C87\n+B4A866021FB6F6AC3D250CC601989B1B8FE6B1098A48282D2CF258BF38FEE940\n+CE0141FB1344156DE7712A8F2DBF700174F12616EE17C852210D96D03E5E6635\n+D439EB6E84A383DDD32AD72DADE6F931FDBABBDC726C36081C96018FC95EAE13\n+DA1F8DBC2D8355AC9792649653225393F4A7A88F3B9443FEEB75E2C15BF93F09\n+CCBA7FABC022BE26F4C28152D5DA6D690494AD4EC0DA1B598AE12536BADF88B5\n+5E20EB452546389F57FF55459567B453AE1831C57D22FA6A4FDF441EDAFDB7FB\n+4F4B707C1FF9159C40F7B5DD519FC07815EE91B8D756B6C18500BCF47D0D9E45\n+6A2D51B6AA5AEAAC9AB2DEF7F0FDE957B6C179CBADEECAC7E9CEC248AB135EB4\n+FBF83D002FF859B574EF36C371540EF2BCFCEF5C2E7863AEDD7C3C965103453B\n+023A9CEC1D5C45B88827ADF4AE0C6746F3C7E6A944427DAEC493601019583A16\n+0F846CE00EAE89EEFF9CE68A0E1D6EBB8FDD8A45D1BF399B36A8328EC957CB8B\n+D842A56269C8C9A6B472C9E65BCBC090606B4E8A7EF4ABDEA120C9F9B3969A1C\n+2EB102925F4E155160E58000E1ADB0D19E10EFD96F6C3225EEE8FC24D122C069\n+C11F1A69DC383F7DACD2F3929BD135CE69787C6E7560AC4B683FE5D9AAFD2E89\n+EE6D95E38C9B726B416E28169A11E29559DBA9AECD714CF318FCB78F34A0E562\n+9C00FE0C6D5A848557D9A82EC2BEFCD30B5EDC0B23C5BA9F812C864394C8B9D1\n+B08BAC9CF94E70FF842306ACCFE6E39A56777C712904A3AB29FBD19275E19E06\n+B35B37CFFFCEC81CAF2D85A853663FAFCFFED1EA77064AA28C15BC94910683BC\n+D09513079DE9EE18E97CC2403DD206516D7F652A3459870757F34EEDCEF952C3\n+FE8004F4716B5BD6774E455010B0BB1E61FCD66B9F14F9BBCCF3E55A158EE96E\n+9A05BDFDDC7706D4BC28FDDC4004EF3A430C607EBDF115E0C996454D70C8BB42\n+D7C83A454B116663D648C23CE2B33365810DE2B64D4AE011BC8043BC3E05B94D\n+1700F859C6AFC6515C1C42FA104EE3E8F3FA5F80252C2E79B00ED27F675FFD09\n+B50BF7A3C63CF4856F909DF969D7DD3EA05CABDD1E71A58CFC2AB5F614B4E5E0\n+25CF92E9FB66ACEBE05DF5E033DA8AD3EE32D94C02D98DD7DA99FAB5AEA595C3\n+2987DC122F0242D76B782349E4069DE0CDD6EF4375C680CBFE4C8F24F2AE89BF\n+7785F5EA7435A91500F265022C307E8ADEAAE1C6\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n@@ -3204,16 +3191,16 @@\n cleartomark\n {restore}if\n %%EndFont \n TeXDict begin 39158280 55380996 1000 600 600 (main.dvi)\n @start /Fa 195[71 60[{}1 90.9091 /CMMI10 rf /Fb 133[50\n 59 4[44 44 46 2[56 62 93 31 2[31 62 2[51 62 50 1[54 11[86\n 5[84 5[42 6[80 13[56 56 56 56 2[31 46[{}24 99.6264 /CMBX12\n-rf /Fc 138[51 35 36 11[45 37[68 6[25 4[45 1[45 45 1[45\n-3[25 44[{}11 90.9091 /CMSL10 rf /Fd 142[62 11[62 62 26[62\n+rf /Fc 134[48 3[51 8[25 33[47 15[25 5[45 1[45 45 45 3[25\n+44[{}10 90.9091 /CMSL10 rf /Fd 142[62 11[62 62 26[62\n 73[{}4 119.552 /CMTT12 rf\n %DVIPSBitmapFont: Fe tcrm1095 10.95 1\n [/Grave/Acute/Circumflex/Tilde/Dieresis/Hungarumlaut/Ring/Caron/Breve/Macron\n /Dotaccent/cedilla/ogonek/quotesinglbase.ts1 4{/.notdef}repeat\n /quotedblbase.ts1/.notdef/.notdef/twelveudash/threequartersemdash\n /afii61664.cap/arrowleft/arrowright/tieaccentlowercase/tieaccentcapital\n /tieaccentlowercase.new/tieaccentcapital.new/.notdef/afii61664.asc/uni2422 3\n@@ -3313,17 +3300,17 @@\n b(,)31 b Fh(head)47 b(=)h(tail)e(=)i(-1)p Fi(.)0 5049\n y Ff(1.2)135 b(Protot)l(yp)t(es)46 b(and)f(descriptions)g(of)g\n Fd(Ideq)e Ff(metho)t(ds)0 5294 y Fi(This)25 b(section)h(con)m(tains)h\n (brief)e(descriptions)h(including)f(protot)m(yp)s(es)h(of)f(all)i\n (metho)s(ds)d(that)j(b)s(elong)e(to)h(the)g Fh(Ideq)0\n 5407 y Fi(ob)5 b(ject.)1927 5656 y(1)p eop end\n %%Page: 2 2\n-TeXDict begin 2 1 bop 0 100 a Fi(2)p 136 100 1170 4 v\n-1352 w Fh(Ideq)29 b Fc(:)41 b Fg(DRAFT)30 b Fc(August)g(3,)h(2025)p\n-2731 100 V 0 399 a Fb(1.2.1)112 b(Basic)38 b(metho)s(ds)0\n+TeXDict begin 2 1 bop 0 100 a Fi(2)p 136 100 1228 4 v\n+1409 w Fh(Ideq)30 b Fc(:)40 b Fg(DRAFT)30 b Fc(July)g(1,)h(2024)p\n+2673 100 V 0 399 a Fb(1.2.1)112 b(Basic)38 b(metho)s(ds)0\n 616 y Fi(As)d(usual,)h(there)f(are)g(four)f(basic)h(metho)s(ds)g(to)g\n (supp)s(ort)e(ob)5 b(ject)36 b(creation,)i(setting)e(default)f\n (\\014elds,)h(clearing)0 729 y(an)m(y)31 b(allo)s(cated)h(data,)f(and)f\n (free'ing)h(the)g(ob)5 b(ject.)111 1021 y(1.)46 b Fh(Ideq)h(*)g\n (Ideq_new)f(\\()h(void)g(\\))g(;)227 1194 y Fi(This)32\n b(metho)s(d)f(simply)h(allo)s(cates)i(storage)g(for)e(the)g\n Fh(Ideq)f Fi(structure)h(and)f(then)h(sets)h(the)f(default)g(\\014elds)\n@@ -3378,17 +3365,17 @@\n Fi(and)h Fh(maxsize)e Fi(\\014elds)i(are)h(set.)41 b(The)30\n b(metho)s(d)f(then)i(returns)e Fh(1)p Fi(.)227 5294 y\n Fg(Err)-5 b(or)28 b(che)-5 b(cking:)37 b Fi(If)23 b Fh(deq)g\n Fi(is)g Fh(NULL)p Fi(,)g(or)h(if)f Fh(newsize)h Fa(<)h\n Fi(0,)g(an)f(error)f(message)i(is)e(prin)m(ted)g(and)g(the)h(program)\n 227 5407 y(exits.)p eop end\n %%Page: 3 3\n-TeXDict begin 3 2 bop 91 100 1170 4 v 1351 100 a Fh(Ideq)29\n-b Fc(:)41 b Fg(DRAFT)121 b Fc(August)30 b(3,)h(2025)p\n-2683 100 V 1170 w Fi(3)0 399 y Fb(1.2.3)112 b(Utilit)m(y)38\n+TeXDict begin 3 2 bop 91 100 1228 4 v 1409 100 a Fh(Ideq)29\n+b Fc(:)41 b Fg(DRAFT)121 b Fc(July)30 b(1,)h(2024)p 2626\n+100 V 1228 w Fi(3)0 399 y Fb(1.2.3)112 b(Utilit)m(y)38\n b(metho)s(ds)111 603 y Fi(1.)46 b Fh(void)h(Ideq_clear)e(\\()i(Ideq)g\n (*deq)g(\\))g(;)227 762 y Fi(This)30 b(metho)s(d)g(clears)h(the)g\n (dequeue.)40 b(The)30 b Fh(head)f Fi(and)h Fh(tail)f\n Fi(\\014elds)h(are)h(set)f(to)i Fh(-1)p Fi(.)227 921 y\n Fg(Err)-5 b(or)34 b(che)-5 b(cking:)40 b Fi(If)30 b Fh(deq)g\n Fi(is)g Fh(NULL)p Fi(,)g(an)g(error)g(message)h(is)g(prin)m(ted)f(and)g\n (the)g(program)g(exits.)111 1125 y(2.)46 b Fh(int)h(Ideq_head)e(\\()j\n@@ -3457,17 +3444,17 @@\n 3130 5136 V 34 w(resize\\(\\))d Fi(metho)s(d.)227 5248\n y(Otherwise,)f(the)f(item)h(is)g(placed)f(in)m(to)i(the)e(list)h(and)f\n Fh(1)g Fi(is)h(returned.)227 5407 y Fg(Err)-5 b(or)34\n b(che)-5 b(cking:)40 b Fi(If)30 b Fh(deq)g Fi(is)g Fh(NULL)p\n Fi(,)g(an)g(error)g(message)h(is)g(prin)m(ted)f(and)g(the)g(program)g\n (exits.)p eop end\n %%Page: 4 4\n-TeXDict begin 4 3 bop 0 100 a Fi(4)p 136 100 1170 4 v\n-1352 w Fh(Ideq)29 b Fc(:)41 b Fg(DRAFT)30 b Fc(August)g(3,)h(2025)p\n-2731 100 V 0 399 a Fb(1.2.4)112 b(IO)38 b(metho)s(ds)111\n+TeXDict begin 4 3 bop 0 100 a Fi(4)p 136 100 1228 4 v\n+1409 w Fh(Ideq)30 b Fc(:)40 b Fg(DRAFT)30 b Fc(July)g(1,)h(2024)p\n+2673 100 V 0 399 a Fb(1.2.4)112 b(IO)38 b(metho)s(ds)111\n 595 y Fi(1.)46 b Fh(void)h(Ideq_writeForHumanEye)42 b(\\()47\n b(Ideq)g(*deq)g(\\))g(;)227 745 y Fi(This)31 b(metho)s(d)g(write)h(the)f\n (state)i(of)f(the)f(ob)5 b(ject,)33 b(\\(the)f(size,)h(head)f(and)e\n (tail\\))k(and)c(the)i(list)g(of)g(en)m(tries)g(to)227\n 858 y(a)f(\\014le.)227 1008 y Fg(Err)-5 b(or)34 b(che)-5\n b(cking:)40 b Fi(If)30 b Fh(deq)g Fi(or)g Fh(fp)g Fi(is)g\n Fh(NULL)p Fi(,)g(an)g(error)g(message)i(is)e(prin)m(ted)g(and)g(the)g\n", "details": [{"source1": "ps2ascii {}", "source2": "ps2ascii {}", "unified_diff": "@@ -16,15 +16,15 @@\n \u2022 IV iv : an IV object to hold the list vector.\r\n A correctly initialized and nontrivial Ideq object will have maxsize > 0. When the dequeue is\r\n empty, head = tail = -1.\r\n 1.2 Prototypes and descriptions of Ideq methods\r\n This section contains brief descriptions including prototypes of all methods that belong to the Ideq\r\n object.\r\n 1\r\n- 2 Ideq : DRAFT August 3, 2025\r\n+ 2 Ideq : DRAFT July 1, 2024\r\n 1.2.1 Basic methods\r\n As usual, there are four basic methods to support object creation, setting default \ufb01elds, clearing\r\n any allocated data, and free\u2019ing the object.\r\n 1. Ideq * Ideq_new ( void ) ;\r\n This method simply allocates storage for the Ideq structure and then sets the default \ufb01elds\r\n by a call to Ideq setDefaultFields().\r\n 2. void Ideq_setDefaultFields ( Ideq *deq ) ;\r\n@@ -47,15 +47,15 @@\n initializer.\r\n If the present size of the list (the number of entries between head and tail inclusive) is larger\r\n than newsize, the method returns -1. Otherwise, a new int vector is allocated and \ufb01lled\r\n with the entries in the list. The old int vector is free\u2019d, the new vector is spliced into the IV\r\n object, and the head, tail and maxsize \ufb01elds are set. The method then returns 1.\r\n Error checking: If deq is NULL, or if newsize < 0, an error message is printed and the program\r\n exits.\r\n- Ideq : DRAFT August 3, 2025 3\r\n+ Ideq : DRAFT July 1, 2024 3\r\n 1.2.3 Utility methods\r\n 1. void Ideq_clear ( Ideq *deq ) ;\r\n This method clears the dequeue. The head and tail \ufb01elds are set to -1.\r\n Error checking: If deq is NULL, an error message is printed and the program exits.\r\n 2. int Ideq_head ( Ideq *deq ) ;\r\n This method returns the value at the head of the list without removing that value. If head\r\n == -1 then -1 is returned. Note, the list may be nonempty and the \ufb01rst value may be -1, so\r\n@@ -82,15 +82,15 @@\n may signal an empty list or a terminating element.\r\n Error checking: If deq is NULL, an error message is printed and the program exits.\r\n 7. int Ideq_insertAtTail ( Ideq *deq, int val ) ;\r\n This method inserts a value val into the list at the tail of the list. If there is no room in\r\n the list, -1 is returned and the dequeue must be resized using the Ideq resize() method.\r\n Otherwise, the item is placed into the list and 1 is returned.\r\n Error checking: If deq is NULL, an error message is printed and the program exits.\r\n- 4 Ideq : DRAFT August 3, 2025\r\n+ 4 Ideq : DRAFT July 1, 2024\r\n 1.2.4 IO methods\r\n 1. void Ideq_writeForHumanEye ( Ideq *deq ) ;\r\n This method write the state of the object, (the size, head and tail) and the list of entries to\r\n a \ufb01le.\r\n Error checking: If deq or fp is NULL, an error message is printed and the program exits.\r\n Index\r\n Ideq clear(), 3\r\n"}]}]}, {"source1": "./usr/share/doc/spooles-doc/InpMtx.ps.gz", "source2": "./usr/share/doc/spooles-doc/InpMtx.ps.gz", "unified_diff": null, "details": [{"source1": "InpMtx.ps", "source2": "InpMtx.ps", "unified_diff": "@@ -11,15 +11,15 @@\n %%EndComments\n %%BeginDefaults\n %%ViewingOrientation: 1 0 0 1\n %%EndDefaults\n %DVIPSWebPage: (www.radicaleye.com)\n %DVIPSCommandLine: dvips main -o InpMtx.ps\n %DVIPSParameters: dpi=600\n-%DVIPSSource: TeX output 2025.08.03:1317\n+%DVIPSSource: TeX output 2024.07.01:0700\n %%BeginProcSet: tex.pro 0 0\n %!\n /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S\n N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72\n mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0\n 0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{\n landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize\n@@ -2762,23 +2762,22 @@\n /UnderlinePosition -100 def\n /UnderlineThickness 50 def\n end readonly def\n /Encoding 256 array\n 0 1 255 {1 index exch /.notdef put} for\n dup 44 /comma put\n dup 48 /zero put\n+dup 49 /one put\n dup 50 /two put\n-dup 51 /three put\n-dup 53 /five put\n+dup 52 /four put\n dup 58 /colon put\n-dup 65 /A put\n-dup 103 /g put\n-dup 115 /s put\n-dup 116 /t put\n+dup 74 /J put\n+dup 108 /l put\n dup 117 /u put\n+dup 121 /y put\n readonly def\n currentdict end\n currentfile eexec\n D9D66F633B846AB284BCF8B0411B772DE5CE32340DC6F28AF40857E4451976E7\n 5182433CF9F333A38BD841C0D4E68BF9E012EB32A8FFB76B5816306B5EDF7C99\n 8B3A16D9B4BC056662E32C7CD0123DFAEB734C7532E64BBFBF5A60336E646716\n EFB852C877F440D329172C71F1E5D59CE9473C26B8AEF7AD68EF0727B6EC2E0C\n@@ -2959,79 +2958,67 @@\n 7CA1534C4D5B05FC33F83790ECFD7641DF3FB94289E2A1F6E7D29AB1228A867A\n 6E1EF0E9C6F899B491DC18401C2C0A05FFFED46A72C245F7529B8EA55A038082\n 8512307217D2A233C37004085BA3AEE379269F9FA7D0ADB4B19A95CC2AFE686E\n 55D88E47257C1FE6F235FEA295910569FE6DD5995512562359CC821E85A6C7A5\n 79B470A9E340A6985189FF8B6AF914A6B0ECF93F47903221F95DE894A8F05B05\n B7D99CD533EC5F931B18E6B39BECF67FA2D6DD1AEC76772B068BE06335A94C05\n 7A4DDEE77B66101DA855C17AC312600370B34E31F5EC3A01300A8EB60B4C9767\n-1B2FA10DF7E91D3BB34A1B1CE7A0015A57C813E0280D873ADB88440048702D1F\n-77994EE04EC3B4531D6E1888C86A8F0DA6CF1F056F16AB0DD76C862830F89DA4\n-28923B3AA543E0D6E41D3BD283E600BC11F889315EE92C675C109C81065ED1BC\n-82A5583D1B723D50051B0557A367887F5B263014C6E77288B4883C50889473D3\n-3787BAD4BEB88BD1353AFA5B73E61814819537E7FF09F53EF94792BB3DD36ED0\n-002D0E7A6CDAB85A9C17AF5664BCB5A71663B861880F3ECCABC8E7A2FC81A4CC\n-AE7A87503FDC1CE0077BA51ECC7B43B60793FED8E9AAD5BBD03ADD6183DCD26D\n-24A74163611C05562437644EF9B8889FD4F9D311911204FEFD35237486F2D2D0\n-B6783A03BF12EA6D19D6D0F87E4D08515F12F9CBF1961CAA71E0D69FE3C4C4D2\n-7C7FB64ED24F8684C8F00C2BEDEA53EA390CDC0B5BEBD7DD982580B2EA1F1F89\n-CFED5916630DC2BA32BB9180277E1ABC339B3B7DE086717BD93F7FF3681BA5B3\n-FCF671C4B293C2DE4A322F0AA3323A4934444C69F23EF90120B8755482757759\n-C457A435FB8BB4922BD92C5F3D9555D978275C510183E29DFF2FCE4ABBFC18DE\n-76CAD3B486BA12047DD808CD4D521A0FD368E4AE79DE262630983A5D6F0B679D\n-2F005306393C520E1B6987302D029939D94B0178DC55D5264E1FEA468AD4134C\n-8C65B2FBBE8DE8284E8E1F6BFE0B648F44D3DA8E9350D266EDBFD4A7054D9355\n-1E0B185DED37BCF32D3731358F1D707C94109428BAD3CEA456A2A43553E3D2C2\n-F549189201F3D3F715310E3E8C6A2E9AA5141AA9125D203694C7D875C2DD320F\n-C5BCDFC924F6C04DBC7A97349B45ECD0FBD7D2123ED1D3A9F440B1112BE62779\n-47A4592F9285CBD9635EC9091CEC0AFD7E6B6976974081DB9C0E43165BD8584D\n-6CDF08DED287F0883A9FBD351B3F8706BA1E94C7CA487338269482EB8DC1A05D\n-F6632A5D834DE29228C49C5BA65EF7C535A53B380BF4B391F43562147538EE97\n-E799DFC2C40315859F56BBCE9CAE1DF9293F6E2C193ABE7A724EC8F32FA220E7\n-6026877A63E318254F2AF7B1325D63FC4C52B536D3EF354814C2F8F1EEA30569\n-6EF04447DB0F809DF35B4985B9FB4F4BB6087310BE633E76F268B32ABA99CE8E\n-03163DFF4AEDB88E60DD0848C15E90026D7C24D81122EBC07113F9851914A9D5\n-D0E09C2BFDDAF10C5D8208E8329BC0C402F231CD84C95EFDD182AD9756662110\n-274650C7A5BB0D8EFA54EC6C5A49C0EB26701A54779AE8EFBBED824262761602\n-680EDFB38F0FE18C0F501F5AA8BF48A8F0DD3E5E1EBEB872F6F6B23964707B32\n-507FC677B9FDDC990E3828B06420F6F968B2F6AE81E76A2144B1ECE905485616\n-CFB29AC96DDE1F5039935D7E385CC13E34DD7EAF276A2EA3A8BF27FD4205AE13\n-7FE620E42F2CF231C6C8DD8EFC5A6CF081E5660D9ADD730D72D15C02B1E15FF3\n-D741D3B1EB1E666C4E562219033C1E2EF3F96E136998B2E1890395A3637A2C02\n-DE1C46AFCA8D898439F06606A2295D3F7ED6C7DB250C61B6B97A0D5EDDB9657E\n-E790B4E07540BB1026036F4A0D00E7F16FD757AD61D686620C6814B7DCEC43E8\n-FD36D9E75BA554F64548A67D9B0A26E11784E58D4357FC251D71B5D6D8BFDDE0\n-D3BF0E825DA5312C1904AF13C5905C2ADF79C357476183D2EC5A95243235E861\n-2F98D9EE77EF8F8CB3EC6BD358C5ED37DD3AF44D60575E7774BF96F1AE9DFAD1\n-F8646DEDF21D10311854726B8F7D25876BB1EF78E2442B16ED4B851816CF0A27\n-11FDFCE525002A1A7C3E62CD2A3EDE6FAADB026D2F3A46C030ADB22422CA8FF5\n-2545ED58C0D9FB5BDB55FE674301E91A75B005B86BD201D246F7ADACE50419FD\n-AC3312CAC5EB78A36F0E5F62E65AC92129CB574AAC59E0A7C1390DFC61F39D9E\n-D7036742F2F6E64D1EF8157E9CCF65F3EEDC6A8220235978B8E06EB80F649F3E\n-204CFB497F49306EA8E1F7B62305978A28F1E771ED82C6592C71022154E4062A\n-A92335EFC65D6DED9C686899FFD7AA2988740618C03C5E362E1AF352E3BE4602\n-5530C51E5FC8E9082DF79199CC91C50174000D337D86127AC807C5A3C81DDE57\n-7A68AEE7230949B925365C214D77C80E87CEE218ABC94023717EA43BA5D8A7C8\n-8A8B9BD1B767996AE33050E3D922ED0574E3579C57E4BDDAD35883806AFDF260\n-3AB5D83D451583262E580FFDB7A27D82396AF18D92B849A3F7A7E621987D5DF0\n-038F876C6E9CA47FB11AF05F0019191C5DDC5F0177AD421E94BC66D0CCB82F1F\n-93A80836284B095503752C600F72E2C89112ABFA5B76152691264103B268B3E5\n-8816724ADADB38740001A9AACE05C8AF02D72918606DC22EFC8BF0DA0FD12FFE\n-D3A09F8E28057F327BFB633E604B1EAD478637B1D9631650B314CC62D7E0E87F\n-9D3FE1FFA23BB6E3006C3E39BED52F6B0C1C651B5913878F36DA0BF776889165\n-68BA3456B40B8B471CA8FF5238E43D9113E052A2B8D2EAA2433D3F89FCA48AFB\n-5E842913E4ED6DF9623354059CD1F1707B126FED80349787C869883120183EDD\n-249185A55503FAC53898F52170D05CAC62BB742CF9702C0518AED6B27CDC401C\n-932E02143FD916703F360CB31049501B35EF3EDDFED791090D0CFA221FD1DB32\n-7D4759CE07983AE29C258C705D11E7D9481EEAAB9B6BA65CDCF0AA0057BD6FEA\n-ABBFBD3ABF2A7BFB550C3D2A16DC447384A89F3DB6D9C2DBDCA997ABE35A7706\n-633D328AECEDB5BD07070C1B96267FD73B45791DD18194F60D358091FBE88409\n-973529806F3D2C9E6E39091F90A14B560A987E0B9490B9B690FB489B8E253070\n-D7C54447BE0E0A0BFEAEFFB581DC1300E6EC382984673BF0665632404E59B5BF\n-5D5F0A1C956E618C0487751CA5DAE8A95C214F76ED756694EF273679CD2D85CB\n-949DF385BD50491649EFEFDA1574921D7460143D42A100D2C76E55F0BC\n+1B2FA10DF7E91D3BB34A1B1CE7A0015A57C813E0280D873ADB8844004B9BA1CC\n+580D3C6BDA4DC1B80B4365F1C80512453FC5316EC2D928FB731C3D6403E3C18B\n+E8424D644DF5E9A2134229C5C91CA68DB8E85BA2BB40F538F585DA6FA4037718\n+B8053EBBA1E765346BCD5BDAA6C38115D31611D8A87A2238C145F2DA2F92E4DF\n+3987BD9C4D2A3D460E8941A68B125BCD9EE4F9FD262C4C8A71F47A2C81975635\n+F1B981C274C53FA2ACCDE4C9D0A7C62D6C1EFF91CFC6712CA6A9F333C9564FCB\n+2A70F0AD715A79B10A08AB069E2A3C93BC0AED19D0CA10134B8DDDE8AF548DB2\n+3A4AAA9C29682CF135BB767DAA16169A127EB50A7EECEB6480CF56A7D0F8AC56\n+4A5090B3D75A790372886AF568D94C8165975A05BFBFDF1FFBA45F70700BB9E0\n+57F3249EF9E9C8AD9CBCF6E4FD592DC4CDD2CC7C0BC3130C1059096C657BE453\n+A2CBACE93420210E27AF56CA229BD6D982FB68B3FDC6D44478B922C4231C47EE\n+E500232F6C11D92DEB955F66DF52B92B22E7352790CC2DCBAC53965D57AC2920\n+68B7D520DE25047146EFEB06B9AD4E2A94243C7E5239F0BC2FC312B16051D52C\n+0B92C217B6B42997321AE4F8BB066754B7AA3F15069EF59224E8A442CE471AA7\n+E8049A3DD9EDA09CCEE4998998661CF7DB35E952F6C65DAEB3013951C59F3E09\n+157F313B0237876E1C0190F0473819570B8C0205AADF05D787CC00979CFB327A\n+289382B22DDA6F12804ED0ED5B179E36A995A2A59E1B66E75130DBE9109C813B\n+94403E0DEA8314A1E9DB474D7FA83C0BAFD08033E6A6215844C1D26BE15F1251\n+A1605E8DF9A9C601ED37379530BC1C82BE5463C6C711C5652BFD6262485AA9CA\n+B8C4A117593001D08D980041E2A83C190DCE8E6CD3D334E5CC19FC05DB30F7F7\n+24A305C4DBB31F0651392B99D44B4302333BDF7E326FD256DD75D309C6E73F85\n+FA71B35FD1F9BEFF4C7A1076362EEB0A85492933B6006086A7B8C1928CF2D1EE\n+FD4344409257BB802C117E739960821CD3C88BFBA5669FF16F610AD638AF3677\n+8674C985E6767253ED5769F71BEA5E9BB02A751F9E62EE2B18AC19D975FDEAE9\n+8B8822367FF177A7E850766DE99ED3366D46464612926430012212A90F8E85F4\n+4760B40D5B86B90819EE410382D22D8ED82D0B0AB00C93E10CD365F8766D1C87\n+B4A866021FB6F6AC3D250CC601989B1B8FE6B1098A48282D2CF258BF38FEE940\n+CE0141FB1344156DE7712A8F2DBF700174F12616EE17C852210D96D03E5E6635\n+D439EB6E84A383DDD32AD72DADE6F931FDBABBDC726C36081C96018FC95EAE13\n+DA1F8DBC2D8355AC9792649653225393F4A7A88F3B9443FEEB75E2C15BF93F09\n+CCBA7FABC022BE26F4C28152D5DA6D690494AD4EC0DA1B598AE12536BADF88B5\n+5E20EB452546389F57FF55459567B453AE1831C57D22FA6A4FDF441EDAFDB7FB\n+4F4B707C1FF9159C40F7B5DD519FC07815EE91B8D756B6C18500BCF47D0D9E45\n+6A2D51B6AA5AEAAC9AB2DEF7F0FDE957B6C179CBADEECAC7E9CEC248AB135EB4\n+FBF83D002FF859B574EF36C371540EF2BCFCEF5C2E7863AEDD7C3C965103453B\n+023A9CEC1D5C45B88827ADF4AE0C6746F3C7E6A944427DAEC493601019583A16\n+0F846CE00EAE89EEFF9CE68A0E1D6EBB8FDD8A45D1BF399B36A8328EC957CB8B\n+D842A56269C8C9A6B472C9E65BCBC090606B4E8A7EF4ABDEA120C9F9B3969A1C\n+2EB102925F4E155160E58000E1ADB0D19E10EFD96F6C3225EEE8FC24D122C069\n+C11F1A69DC383F7DACD2F3929BD135CE69787C6E7560AC4B683FE5D9AAFD2E89\n+EE6D95E38C9B726B416E28169A11E29559DBA9AECD714CF318FCB78F34A0E562\n+9C00FE0C6D5A848557D9A82EC2BEFCD30B5EDC0B23C5BA9F812C864394C8B9D1\n+B08BAC9CF94E70FF842306ACCFE6E39A56777C712904A3AB29FBD19275E19E06\n+B35B37CFFFCEC81CAF2D85A853663FAFCFFED1EA77064AA28C15BC94910683BC\n+D09513079DE9EE18E97CC2403DD206516D7F652A3459870757F34EEDCEF952C3\n+FE8004F4716B5BD6774E455010B0BB1E61FCD66B9F14F9BBCCF3E55A158EE96E\n+9A05BDFDDC7706D4BC28FDDC4004EF3A430C607EBDF115E0C996454D70C8BB42\n+D7C83A454B116663D648C23CE2B33365810DE2B64D4AE011BC8043BC3E05B94D\n+1700F859C6AFC6515C1C42FA104EE3E8F3FA5F80252C2E79B00ED27F675FFD09\n+B50BF7A3C63CF4856F909DF969D7DD3EA05CABDD1E71A58CFC2AB5F614B4E5E0\n+25CF92E9FB66ACEBE05DF5E033DA8AD3EE32D94C02D98DD7DA99FAB5AEA595C3\n+2987DC122F0242D76B782349E4069DE0CDD6EF4375C680CBFE4C8F24F2AE89BF\n+7785F5EA7435A91500F265022C307E8ADEAAE1C6\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n@@ -5599,22 +5586,22 @@\n 62 50 62 54 11[86 1[62 2[77 84 1[106 3[42 1[88 4[80 8[56\n 56 56 56 56 56 56 56 56 56 1[31 37 31 44[{}41 99.6264\n /CMBX12 rf /Ff 135[62 3[62 3[62 1[62 32[62 3[62 73[{}6\n 119.552 /CMTT12 rf /Fg 201[0 32[65 65 17[65 1[65{}5 83.022\n /CMSY10 rf /Fh 134[71 2[71 75 52 53 55 1[75 67 75 112\n 2[41 37 75 67 41 61 75 60 75 65 13[75 2[92 11[103 16[67\n 67 67 2[37 46[{}27 119.552 /CMBX12 rf /Fi 132[48 38[66\n-4[72 75 8[63 10[27 58[{}6 83.022 /CMBX10 rf /Fj 138[46\n-32 33 11[42 37[62 6[23 4[42 1[42 42 1[42 3[23 44[{}11\n-83.022 /CMSL10 rf /Fk 148[35 27 23 20[39 11[54 12[20\n-59[{}6 58.1154 /CMMI7 rf /Fl 134[41 47 1[40 10[43 34\n-29 7[44 7[48 69 21[63 62 2[65 1[65 23 46[47 53 11[{}16\n-83.022 /CMMI10 rf /Fm 137[38 45 28 34 35 1[42 42 47 1[21\n-38 1[25 42 38 1[38 42 38 1[42 12[59 1[61 11[54 56 63\n-2[62 6[25 12[30 45[{}25 83.022 /CMTI10 rf\n+4[72 75 8[63 10[27 58[{}6 83.022 /CMBX10 rf /Fj 134[44\n+3[46 8[23 33[43 15[23 5[42 1[42 42 42 3[23 44[{}10 83.022\n+/CMSL10 rf /Fk 148[35 27 23 20[39 11[54 12[20 59[{}6\n+58.1154 /CMMI7 rf /Fl 134[41 47 1[40 10[43 34 29 7[44\n+7[48 69 21[63 62 2[65 1[65 23 46[47 53 11[{}16 83.022\n+/CMMI10 rf /Fm 137[38 45 28 34 35 1[42 42 47 1[21 38\n+1[25 42 38 1[38 42 38 1[42 12[59 1[61 11[54 56 63 2[62\n+6[25 12[30 45[{}25 83.022 /CMTI10 rf\n %DVIPSBitmapFont: Fn tcrm1000 10 1\n [/Grave/Acute/Circumflex/Tilde/Dieresis/Hungarumlaut/Ring/Caron/Breve/Macron\n /Dotaccent/cedilla/ogonek/quotesinglbase.ts1 4{/.notdef}repeat\n /quotedblbase.ts1/.notdef/.notdef/twelveudash/threequartersemdash\n /afii61664.cap/arrowleft/arrowright/tieaccentlowercase/tieaccentcapital\n /tieaccentlowercase.new/tieaccentcapital.new/.notdef/afii61664.asc/uni2422 3\n {/.notdef}repeat/dollar/.notdef/.notdef/quotesingle/.notdef/.notdef\n@@ -5747,17 +5734,17 @@\n Fo(InpMtx)p 1881 5140 V 28 w(changeStorageMode)o(\\(\\))p\n Fp(.)101 5308 y(5.)42 b(Create)18 b(an)h Fo(IVL)g Fp(ob)5\n b(ject)19 b(that)h(con)n(tains)e(the)i(full)h(adjacency)d(of)i\n Fl(A)r Fp(+)r Fl(A)2384 5277 y Fk(T)2456 5308 y Fp(b)n(y)g(calling)e\n (the)i Fo(InpMtx)p 3222 5308 V 29 w(fullAdjacency\\(\\))208\n 5407 y Fp(metho)r(d.)1929 5656 y(1)p eop end\n %%Page: 2 2\n-TeXDict begin 2 1 bop 0 100 a Fp(2)p 125 100 1194 4 v\n-1359 w Fo(InpMtx)25 b Fj(:)37 b Fm(DRAFT)27 b Fj(August)h(3,)f(2025)p\n-2706 100 V 101 390 a Fp(6.)42 b(Create)26 b(a)h Fo(Graph)f\n+TeXDict begin 2 1 bop 0 100 a Fp(2)p 125 100 1247 4 v\n+1412 w Fo(InpMtx)25 b Fj(:)37 b Fm(DRAFT)27 b Fj(July)g(1,)h(2024)p\n+2654 100 V 101 390 a Fp(6.)42 b(Create)26 b(a)h Fo(Graph)f\n Fp(ob)5 b(ject)27 b(using)h(the)g Fo(Graph)p 1627 390\n 27 4 v 29 w(init2\\(\\))d Fp(metho)r(d)j(and)f(the)h Fo(IVL)f\n Fp(ob)5 b(ject)27 b(as)g(an)g(input)i(argumen)n(t.)0\n 591 y(A)i(similar)e(functionalit)n(y)i(exists)f(for)f(creating)h(a)f\n Fo(Graph)g Fp(ob)5 b(ject)30 b(from)g(a)g(linear)f(com)n(bination)h(of)\n g(t)n(w)n(o)g Fo(InpMtx)e Fp(ob)5 b(jects)0 691 y(that)33\n b(con)n(tains)e(the)i(matrices)e Fl(A)i Fp(and)f Fl(B)t\n@@ -5847,33 +5834,32 @@\n (or)g(t)n(w)n(o)390 5168 y(double)28 b(precision)e(v)-5\n b(alues.)301 5308 y Fi({)41 b Fo(INPMTX)p 659 5308 V\n 29 w(SORTED)25 b Fp(|)j(data)f(is)h(sorted)f(and)g(distinct)i(triples,)\n e(the)h(primary)f(k)n(ey)g(is)h(the)g(\\014rst)f(co)r(ordinate,)g(the)\n 390 5407 y(secondary)f(k)n(ey)h(is)g(the)h(second)f(co)r(ordinate.)p\n eop end\n %%Page: 3 3\n-TeXDict begin 3 2 bop 83 100 1194 4 v 1360 100 a Fo(InpMtx)25\n-b Fj(:)37 b Fm(DRAFT)110 b Fj(August)28 b(3,)f(2025)p\n-2667 100 V 1194 w Fp(3)301 390 y Fi({)41 b Fo(INPMTX)p\n-659 390 27 4 v 29 w(BY)p 776 390 V 31 w(VECTORS)32 b\n-Fp(|)i(data)h(is)f(sorted)g(and)h(distinct)g(v)n(ectors.)57\n-b(All)35 b(en)n(tries)f(in)h(a)f(v)n(ector)f(share)h(some-)390\n-490 y(thing)41 b(in)g(common.)75 b(F)-7 b(or)40 b(example,)k(when)d\n-Fo(coordType)c Fp(is)j Fo(INPMTX)p 2688 490 V 29 w(BY)p\n-2805 490 V 31 w(ROWS)p Fp(,)f Fo(INPMTX)p 3338 490 V\n-29 w(BY)p 3455 490 V 30 w(COLUMNS)f Fp(or)390 589 y Fo(INPMTX)p\n-659 589 V 29 w(BY)p 776 589 V 31 w(CHEVRONS)p Fp(,)33\n-b(ro)n(w)i(v)n(ectors,)i(column)f(v)n(ectors,)h(or)e(c)n(hevron)g(v)n\n-(ectors)g(are)g(stored,)j(resp)r(ectiv)n(ely)-7 b(.)390\n-689 y(When)26 b Fo(coordType)c Fp(is)k Fo(INPMTX)p 1399\n-689 V 29 w(CUSTOM)p Fp(,)d(a)i(custom)h(t)n(yp)r(e,)g(en)n(tries)f(in)h\n-(the)g(same)f(v)n(ector)f(ha)n(v)n(e)h(something)g(in)390\n-789 y(common)i(but)h(it)h(need)e(not)h(b)r(e)g(a)f(common)g(ro)n(w,)g\n-(column)g(or)g(c)n(hevron)f(co)r(ordinate.)125 954 y\n-Fn(\\210)42 b Fo(int)g(inputMode)24 b Fp(:)37 b(mo)r(de)28\n+TeXDict begin 3 2 bop 83 100 1247 4 v 1412 100 a Fo(InpMtx)25\n+b Fj(:)37 b Fm(DRAFT)111 b Fj(July)27 b(1,)g(2024)p 2614\n+100 V 1247 w Fp(3)301 390 y Fi({)41 b Fo(INPMTX)p 659\n+390 27 4 v 29 w(BY)p 776 390 V 31 w(VECTORS)32 b Fp(|)i(data)h(is)f\n+(sorted)g(and)h(distinct)g(v)n(ectors.)57 b(All)35 b(en)n(tries)f(in)h\n+(a)f(v)n(ector)f(share)h(some-)390 490 y(thing)41 b(in)g(common.)75\n+b(F)-7 b(or)40 b(example,)k(when)d Fo(coordType)c Fp(is)j\n+Fo(INPMTX)p 2688 490 V 29 w(BY)p 2805 490 V 31 w(ROWS)p\n+Fp(,)f Fo(INPMTX)p 3338 490 V 29 w(BY)p 3455 490 V 30\n+w(COLUMNS)f Fp(or)390 589 y Fo(INPMTX)p 659 589 V 29\n+w(BY)p 776 589 V 31 w(CHEVRONS)p Fp(,)33 b(ro)n(w)i(v)n(ectors,)i\n+(column)f(v)n(ectors,)h(or)e(c)n(hevron)g(v)n(ectors)g(are)g(stored,)j\n+(resp)r(ectiv)n(ely)-7 b(.)390 689 y(When)26 b Fo(coordType)c\n+Fp(is)k Fo(INPMTX)p 1399 689 V 29 w(CUSTOM)p Fp(,)d(a)i(custom)h(t)n\n+(yp)r(e,)g(en)n(tries)f(in)h(the)g(same)f(v)n(ector)f(ha)n(v)n(e)h\n+(something)g(in)390 789 y(common)i(but)h(it)h(need)e(not)h(b)r(e)g(a)f\n+(common)g(ro)n(w,)g(column)g(or)g(c)n(hevron)f(co)r(ordinate.)125\n+954 y Fn(\\210)42 b Fo(int)g(inputMode)24 b Fp(:)37 b(mo)r(de)28\n b(of)f(data)g(input)301 1120 y Fi({)41 b Fo(INPMTX)p\n 659 1120 V 29 w(INDICES)p 996 1120 V 29 w(ONLY)26 b Fp(|)h(only)g\n (indices)h(are)f(stored,)g(not)g(en)n(tries.)301 1252\n y Fi({)41 b Fo(SPOOLES)p 703 1252 V 29 w(REAL)26 b Fp(|)h(indices)h\n (and)f(real)g(en)n(tries)g(are)g(stored.)301 1384 y Fi({)41\n b Fo(SPOOLES)p 703 1384 V 29 w(COMPLEX)24 b Fp(|)k(indices)g(and)f\n (complex)g(en)n(tries)g(are)g(stored.)125 1550 y Fn(\\210)42\n@@ -5953,17 +5939,17 @@\n (stored)g(as)g(unsorted)g(pairs)g(or)h(triples,)g(and)f\n Fo(0)h Fp(other-)208 5242 y(wise.)125 5407 y Fn(\\210)42\n b Fo(INPMTX)p 477 5407 V 28 w(IS)p 593 5407 V 31 w(SORTED\\(mtx\\))23\n b Fp(returns)k Fo(1)g Fp(if)h(the)g(en)n(tries)f(are)g(stored)g(as)g\n (sorted)f(pairs)h(or)g(triples,)g(and)h Fo(0)f Fp(otherwise.)p\n eop end\n %%Page: 4 4\n-TeXDict begin 4 3 bop 0 100 a Fp(4)p 125 100 1194 4 v\n-1359 w Fo(InpMtx)25 b Fj(:)37 b Fm(DRAFT)27 b Fj(August)h(3,)f(2025)p\n-2706 100 V 125 390 a Fn(\\210)42 b Fo(INPMTX)p 477 390\n+TeXDict begin 4 3 bop 0 100 a Fp(4)p 125 100 1247 4 v\n+1412 w Fo(InpMtx)25 b Fj(:)37 b Fm(DRAFT)27 b Fj(July)g(1,)h(2024)p\n+2654 100 V 125 390 a Fn(\\210)42 b Fo(INPMTX)p 477 390\n 27 4 v 28 w(IS)p 593 390 V 31 w(BY)p 712 390 V 31 w(VECTORS\\(mtx\\))22\n b Fp(returns)27 b Fo(1)g Fp(if)i(the)f(en)n(tries)e(are)h(stored)g(as)g\n (v)n(ectors,)f(and)h Fo(0)g Fp(otherwise.)125 560 y Fn(\\210)42\n b Fo(INPMTX)p 477 560 V 28 w(IS)p 593 560 V 31 w(INDICES)p\n 932 560 V 28 w(ONLY\\(mtx\\))24 b Fp(returns)j Fo(1)h Fp(if)g(the)g(en)n\n (tries)f(are)f(not)i(stored,)f(and)g Fo(0)g Fp(otherwise.)125\n 730 y Fn(\\210)42 b Fo(INPMTX)p 477 730 V 28 w(IS)p 593\n@@ -6028,17 +6014,17 @@\n 5137 y Fn(\\210)42 b Fo(INPMTX)p 659 5137 V 29 w(BY)p\n 776 5137 V 31 w(COLUMNS)24 b Fp({)k(storage)d(b)n(y)j(column)f(triples)\n 307 5272 y Fn(\\210)42 b Fo(INPMTX)p 659 5272 V 29 w(BY)p\n 776 5272 V 31 w(CHEVRONS)24 b Fp({)j(storage)f(b)n(y)h(c)n(hevron)f\n (triples)307 5407 y Fn(\\210)42 b Fo(INPMTX)p 659 5407\n V 29 w(CUSTOM)25 b Fp({)i(custom)h(t)n(yp)r(e)p eop end\n %%Page: 5 5\n-TeXDict begin 5 4 bop 83 100 1194 4 v 1360 100 a Fo(InpMtx)25\n-b Fj(:)37 b Fm(DRAFT)110 b Fj(August)28 b(3,)f(2025)p\n-2667 100 V 1194 w Fp(5)208 390 y Fm(Err)l(or)j(che)l(cking:)38\n+TeXDict begin 5 4 bop 83 100 1247 4 v 1412 100 a Fo(InpMtx)25\n+b Fj(:)37 b Fm(DRAFT)111 b Fj(July)27 b(1,)g(2024)p 2614\n+100 V 1247 w Fp(5)208 390 y Fm(Err)l(or)j(che)l(cking:)38\n b Fp(If)28 b Fo(inpmtx)e Fp(is)h Fo(NULL)p Fp(,)f(an)i(error)d(message)\n h(is)i(prin)n(ted)f(and)h(the)g(program)d(exits.)101\n 559 y(2.)42 b Fo(int)g(InpMtx_storageMo)o(de)37 b(\\()43\n b(InpMtx)e(*inpmtx)g(\\))i(;)208 693 y Fp(This)27 b(metho)r(d)h(returns)\n f(the)h(storage)e(mo)r(de.)307 862 y Fn(\\210)42 b Fo(INPMTX)p\n 659 862 27 4 v 29 w(NO)p 776 862 V 31 w(MODE)26 b Fp({)h(none)g(sp)r\n (eci\\014ed)307 997 y Fn(\\210)42 b Fo(INPMTX)p 659 997\n@@ -6096,17 +6082,17 @@\n (exits.)60 5139 y(10.)41 b Fo(int)h(*)h(InpMtx_ivec2)c(\\()k(InpMtx)e\n (*inpmtx)g(\\))i(;)208 5273 y Fp(This)27 b(metho)r(d)h(returns)f(the)h\n (base)f(address)f(of)i(the)g Fo(ivec2[])d Fp(v)n(ector.)208\n 5407 y Fm(Err)l(or)30 b(che)l(cking:)38 b Fp(If)28 b\n Fo(inpmtx)e Fp(is)h Fo(NULL)p Fp(,)f(an)i(error)d(message)h(is)i(prin)n\n (ted)f(and)h(the)g(program)d(exits.)p eop end\n %%Page: 6 6\n-TeXDict begin 6 5 bop 0 100 a Fp(6)p 125 100 1194 4 v\n-1359 w Fo(InpMtx)25 b Fj(:)37 b Fm(DRAFT)27 b Fj(August)h(3,)f(2025)p\n-2706 100 V 60 390 a Fp(11.)41 b Fo(double)g(*)i(InpMtx_dvec)c(\\()k\n+TeXDict begin 6 5 bop 0 100 a Fp(6)p 125 100 1247 4 v\n+1412 w Fo(InpMtx)25 b Fj(:)37 b Fm(DRAFT)27 b Fj(July)g(1,)h(2024)p\n+2654 100 V 60 390 a Fp(11.)41 b Fo(double)g(*)i(InpMtx_dvec)c(\\()k\n (InpMtx)e(*inpmtx)g(\\))i(;)208 524 y Fp(This)27 b(metho)r(d)h(returns)f\n (the)h(base)f(address)f(of)i(the)g Fo(dvec[])d Fp(v)n(ector.)208\n 658 y Fm(Err)l(or)30 b(che)l(cking:)38 b Fp(If)28 b Fo(inpmtx)e\n Fp(is)h Fo(NULL)p Fp(,)f(an)i(error)d(message)h(is)i(prin)n(ted)f(and)h\n (the)g(program)d(exits.)60 825 y(12.)41 b Fo(int)h(*)h(InpMtx_vecids)38\n b(\\()43 b(InpMtx)f(*inpmtx)e(\\))j(;)208 959 y Fp(This)27\n b(metho)r(d)h(returns)f(the)h(base)f(address)f(of)i(the)g\n@@ -6175,20 +6161,20 @@\n 208 5174 y Fp(This)27 b(metho)r(d)h(sets)g(the)g(presen)n(t)f(n)n(um)n\n (b)r(er)g(of)g(en)n(tries)g(in)h(the)g(indices)g(and)f(en)n(tries)g(v)n\n (ectors.)208 5308 y Fm(Err)l(or)35 b(che)l(cking:)50\n b Fp(If)33 b Fo(inpmtx)e Fp(is)i Fo(NULL)p Fp(,)f(or)g(if)h\n Fo(newnent)d Fl(<)i Fp(0,)i(an)f(error)e(message)h(is)h(prin)n(ted)g\n (and)g(the)g(program)208 5407 y(exits.)p eop end\n %%Page: 7 7\n-TeXDict begin 7 6 bop 83 100 1194 4 v 1360 100 a Fo(InpMtx)25\n-b Fj(:)37 b Fm(DRAFT)110 b Fj(August)28 b(3,)f(2025)p\n-2667 100 V 1194 w Fp(7)60 390 y(19.)41 b Fo(void)g(InpMtx_setMaxnvec)o\n-(tor)c(\\()43 b(InpMtx)e(*inpmtx,)f(int)j(newmaxnvector)38\n-b(\\))43 b(;)208 516 y Fp(This)27 b(metho)r(d)h(sets)g(the)g(maxin)n(um)\n-f(n)n(um)n(b)r(er)g(of)h(v)n(ectors.)208 641 y Fm(Err)l(or)38\n+TeXDict begin 7 6 bop 83 100 1247 4 v 1412 100 a Fo(InpMtx)25\n+b Fj(:)37 b Fm(DRAFT)111 b Fj(July)27 b(1,)g(2024)p 2614\n+100 V 1247 w Fp(7)60 390 y(19.)41 b Fo(void)g(InpMtx_setMaxnvec)o(tor)c\n+(\\()43 b(InpMtx)e(*inpmtx,)f(int)j(newmaxnvector)38 b(\\))43\n+b(;)208 516 y Fp(This)27 b(metho)r(d)h(sets)g(the)g(maxin)n(um)f(n)n\n+(um)n(b)r(er)g(of)h(v)n(ectors.)208 641 y Fm(Err)l(or)38\n b(che)l(cking:)58 b Fp(If)38 b Fo(inpmtx)c Fp(is)j Fo(NULL)p\n Fp(,)f(or)g(if)h Fo(newmaxnvector)d Fl(<)k Fp(0,)h(an)e(error)e\n (message)h(is)h(prin)n(ted)g(and)g(the)208 741 y(program)25\n b(exits.)60 892 y(20.)41 b Fo(void)g(InpMtx_setNvector)c(\\()43\n b(InpMtx)e(*inpmtx,)g(int)h(newnvector)d(\\))44 b(;)208\n 1017 y Fp(This)27 b(metho)r(d)h(sets)g(the)g(presen)n(t)f(n)n(um)n(b)r\n (er)g(of)g(v)n(ectors.)208 1142 y Fm(Err)l(or)i(che)l(cking:)38\n@@ -6270,17 +6256,17 @@\n b Fp(and)23 b Fo(InpMtx)p 2609 5083 V 29 w(convertToVectors\\()o(\\))p\n Fp(,)18 b(as)23 b(appropri-)208 5182 y(ate.)208 5308\n y Fm(Err)l(or)30 b(che)l(cking:)41 b Fp(If)28 b Fo(inpmtx)e\n Fp(is)j Fo(NULL)d Fp(or)i Fo(newMode)d Fp(is)k(in)n(v)-5\n b(alid,)28 b(an)g(error)f(message)g(is)h(prin)n(ted)g(and)g(the)h\n (program)208 5407 y(exits.)p eop end\n %%Page: 8 8\n-TeXDict begin 8 7 bop 0 100 a Fp(8)p 125 100 1194 4 v\n-1359 w Fo(InpMtx)25 b Fj(:)37 b Fm(DRAFT)27 b Fj(August)h(3,)f(2025)p\n-2706 100 V 0 390 a Fe(1.2.4)112 b(Input)38 b(metho)s(ds)101\n+TeXDict begin 8 7 bop 0 100 a Fp(8)p 125 100 1247 4 v\n+1412 w Fo(InpMtx)25 b Fj(:)37 b Fm(DRAFT)27 b Fj(July)g(1,)h(2024)p\n+2654 100 V 0 390 a Fe(1.2.4)112 b(Input)38 b(metho)s(ds)101\n 570 y Fp(1.)k Fo(void)f(InpMtx_inputEntry)c(\\()43 b(InpMtx)e(*inpmtx,)g\n (int)h(row,)g(int)g(col)h(\\))g(;)208 669 y(void)e(InpMtx_inputRealE)o\n (ntr)o(y)c(\\()44 b(InpMtx)d(*inpmtx,)f(int)i(row,)g(int)h(col,)e\n (double)h(value)f(\\))i(;)208 769 y(void)e(InpMtx_inputCompl)o(exE)o(nt)\n o(ry)c(\\()43 b(InpMtx)e(*inpmtx,)g(int)h(row,)g(int)g(col,)1602\n 869 y(double)f(real,)h(double)f(imag)h(\\))h(;)208 1003\n y Fp(This)29 b(metho)r(d)g(places)g(a)f(single)h(en)n(try)f(in)n(to)h\n@@ -6369,45 +6355,45 @@\n (colind[])f(\\))i(;)208 5208 y(void)e(InpMtx_inputRealM)o(atr)o(ix)c(\\()\n 43 b(InpMtx)e(*inpmtx,)g(int)h(nrow,)f(int)i(col,)338\n 5308 y(int)g(rowstride,)c(int)j(colstride,)e(int)i(rowind[],)e(int)i\n (colind[],)e(double)h(mtxent[])g(\\))i(;)208 5407 y(void)e\n (InpMtx_inputCompl)o(exM)o(at)o(rix)c(\\()43 b(InpMtx)e(*inpmtx,)f(int)j\n (nrow,)e(int)h(col,)p eop end\n %%Page: 9 9\n-TeXDict begin 9 8 bop 83 100 1194 4 v 1360 100 a Fo(InpMtx)25\n-b Fj(:)37 b Fm(DRAFT)110 b Fj(August)28 b(3,)f(2025)p\n-2667 100 V 1194 w Fp(9)338 390 y Fo(int)43 b(rowstride,)c(int)j\n-(colstride,)e(int)i(rowind[],)e(int)i(colind[],)e(double)h(mtxent[])g\n-(\\))i(;)208 526 y Fp(This)25 b(metho)r(d)h(places)f(a)g(dense)g\n-(submatrix)g(in)n(to)g(the)h(matrix)f(ob)5 b(ject.)36\n-b(The)25 b(co)r(ordinate)g(t)n(yp)r(e)g(of)h(the)g(ob)5\n-b(ject)25 b(m)n(ust)208 625 y(b)r(e)h Fo(INPMTX)p 588\n-625 27 4 v 28 w(BY)p 704 625 V 31 w(ROWS)p Fp(,)e Fo(INPMTX)p\n-1222 625 V 29 w(BY)p 1339 625 V 31 w(COLUMNS)e Fp(or)j\n-Fo(INPMTX)p 2064 625 V 29 w(BY)p 2181 625 V 30 w(CHEVRONS)p\n-Fp(.)e(The)i(individual)h(en)n(tries)f(of)h(the)g(matrix)208\n-725 y(are)g(placed)h(in)n(to)h(the)g(v)n(ector)e(storage)g(as)h\n-(triples,)g(and)h(the)g(v)n(ectors)e(are)g(resized)h(if)h(necessary)-7\n-b(.)208 860 y Fm(Err)l(or)35 b(che)l(cking:)50 b Fp(If)33\n-b Fo(inpmtx)e Fp(is)i Fo(NULL)p Fp(,)f(or)g Fo(col)g\n-Fp(or)h Fo(row)f Fp(are)g(negativ)n(e,)i(or)e Fo(rowstride)d\n-Fp(or)k Fo(colstride)c Fp(are)k(less)208 960 y(than)27\n-b Fo(1)p Fp(,)h(or)e Fo(rowind)p Fp(,)g Fo(colind)f Fp(or)h\n-Fo(mtxent)g Fp(are)g Fo(NULL)p Fp(,)g(an)i(error)d(message)h(is)i(prin)\n-n(ted)f(and)h(the)g(program)d(exits.)101 1131 y(6.)42\n-b Fo(void)f(InpMtx_inputTripl)o(es)c(\\()43 b(InpMtx)e(*inpmtx,)g(int)h\n-(ntriples,)861 1231 y(int)h(rowids[],)d(int)i(colids[]\\))e(;)208\n-1331 y(void)h(InpMtx_inputRealT)o(rip)o(le)o(s)d(\\()43\n-b(InpMtx)e(*inpmtx,)f(int)i(ntriples,)861 1430 y(int)h(rowids[],)d(int)\n-i(colids[],)e(double)h(entries[])f(\\))j(;)208 1530 y(void)e\n-(InpMtx_inputCompl)o(exT)o(ri)o(ple)o(s)c(\\()43 b(InpMtx)f(*inpmtx,)e\n-(int)i(ntriples,)861 1629 y(int)h(rowids[],)d(int)i(colids[],)e(double)\n-h(entries[])f(\\))j(;)208 1765 y Fp(This)24 b(metho)r(d)i(places)e(a)g\n-(v)n(ector)g(of)g(\\(ro)n(w,column,en)n(try\\))g(triples)h(in)n(to)f(the)\n-h(matrix)g(ob)5 b(ject.)35 b(The)25 b(co)r(ordinate)f(t)n(yp)r(e)208\n+TeXDict begin 9 8 bop 83 100 1247 4 v 1412 100 a Fo(InpMtx)25\n+b Fj(:)37 b Fm(DRAFT)111 b Fj(July)27 b(1,)g(2024)p 2614\n+100 V 1247 w Fp(9)338 390 y Fo(int)43 b(rowstride,)c(int)j(colstride,)e\n+(int)i(rowind[],)e(int)i(colind[],)e(double)h(mtxent[])g(\\))i(;)208\n+526 y Fp(This)25 b(metho)r(d)h(places)f(a)g(dense)g(submatrix)g(in)n\n+(to)g(the)h(matrix)f(ob)5 b(ject.)36 b(The)25 b(co)r(ordinate)g(t)n(yp)\n+r(e)g(of)h(the)g(ob)5 b(ject)25 b(m)n(ust)208 625 y(b)r(e)h\n+Fo(INPMTX)p 588 625 27 4 v 28 w(BY)p 704 625 V 31 w(ROWS)p\n+Fp(,)e Fo(INPMTX)p 1222 625 V 29 w(BY)p 1339 625 V 31\n+w(COLUMNS)e Fp(or)j Fo(INPMTX)p 2064 625 V 29 w(BY)p\n+2181 625 V 30 w(CHEVRONS)p Fp(.)e(The)i(individual)h(en)n(tries)f(of)h\n+(the)g(matrix)208 725 y(are)g(placed)h(in)n(to)h(the)g(v)n(ector)e\n+(storage)g(as)h(triples,)g(and)h(the)g(v)n(ectors)e(are)g(resized)h(if)\n+h(necessary)-7 b(.)208 860 y Fm(Err)l(or)35 b(che)l(cking:)50\n+b Fp(If)33 b Fo(inpmtx)e Fp(is)i Fo(NULL)p Fp(,)f(or)g\n+Fo(col)g Fp(or)h Fo(row)f Fp(are)g(negativ)n(e,)i(or)e\n+Fo(rowstride)d Fp(or)k Fo(colstride)c Fp(are)k(less)208\n+960 y(than)27 b Fo(1)p Fp(,)h(or)e Fo(rowind)p Fp(,)g\n+Fo(colind)f Fp(or)h Fo(mtxent)g Fp(are)g Fo(NULL)p Fp(,)g(an)i(error)d\n+(message)h(is)i(prin)n(ted)f(and)h(the)g(program)d(exits.)101\n+1131 y(6.)42 b Fo(void)f(InpMtx_inputTripl)o(es)c(\\()43\n+b(InpMtx)e(*inpmtx,)g(int)h(ntriples,)861 1231 y(int)h(rowids[],)d(int)\n+i(colids[]\\))e(;)208 1331 y(void)h(InpMtx_inputRealT)o(rip)o(le)o(s)d\n+(\\()43 b(InpMtx)e(*inpmtx,)f(int)i(ntriples,)861 1430\n+y(int)h(rowids[],)d(int)i(colids[],)e(double)h(entries[])f(\\))j(;)208\n+1530 y(void)e(InpMtx_inputCompl)o(exT)o(ri)o(ple)o(s)c(\\()43\n+b(InpMtx)f(*inpmtx,)e(int)i(ntriples,)861 1629 y(int)h(rowids[],)d(int)\n+i(colids[],)e(double)h(entries[])f(\\))j(;)208 1765 y\n+Fp(This)24 b(metho)r(d)i(places)e(a)g(v)n(ector)g(of)g(\\(ro)n\n+(w,column,en)n(try\\))g(triples)h(in)n(to)f(the)h(matrix)g(ob)5\n+b(ject.)35 b(The)25 b(co)r(ordinate)f(t)n(yp)r(e)208\n 1865 y(of)j(the)h(ob)5 b(ject)27 b(m)n(ust)h(b)r(e)g\n Fo(INPMTX)p 1284 1865 V 29 w(BY)p 1401 1865 V 31 w(ROWS)p\n Fp(,)e Fo(INPMTX)p 1921 1865 V 29 w(BY)p 2038 1865 V\n 30 w(COLUMNS)f Fp(or)i Fo(INPMTX)p 2767 1865 V 29 w(BY)p\n 2884 1865 V 30 w(CHEVRONS)p Fp(.)208 2000 y Fm(Err)l(or)35\n b(che)l(cking:)49 b Fp(If)33 b Fo(inpmtx)p Fp(,)f Fo(rowids)p\n Fp(,)g Fo(colids)e Fp(is)j Fo(NULL)p Fp(,)e(or)h Fo(ntriples)e\n@@ -6477,17 +6463,17 @@\n (map)f(a)g(part)g(of)h(a)f(distributed)h(matrix)f(b)r(et)n(w)n(een)h\n (the)g(global)e(and)i(lo)r(cal)f(n)n(um)n(b)r(erings.)208\n 5407 y Fm(Err)l(or)e(che)l(cking:)37 b Fp(If)23 b Fo(A)p\n Fp(,)f Fo(rowmapIV)e Fp(or)i Fo(colmapIV)d Fp(is)k Fo(NULL)p\n Fp(,)e(an)h(error)f(message)g(is)i(prin)n(ted)g(and)f(the)h(program)e\n (exits.)p eop end\n %%Page: 10 10\n-TeXDict begin 10 9 bop 0 100 a Fp(10)p 166 100 1173 4\n-v 1338 w Fo(InpMtx)25 b Fj(:)37 b Fm(DRAFT)27 b Fj(August)h(3,)f(2025)p\n-2727 100 V 101 390 a Fp(4.)42 b Fo(void)f(InpMtx_permute)d(\\()43\n+TeXDict begin 10 9 bop 0 100 a Fp(10)p 166 100 1226 4\n+v 1391 w Fo(InpMtx)25 b Fj(:)37 b Fm(DRAFT)27 b Fj(July)g(1,)g(2024)p\n+2675 100 V 101 390 a Fp(4.)42 b Fo(void)f(InpMtx_permute)d(\\()43\n b(InpMtx)f(*inpmtx,)e(int)i(rowOldToNew[],)c(int)k(colOldToNew[])d(\\))k\n (;)208 528 y Fp(This)28 b(metho)r(d)g(p)r(erm)n(utes)g(the)h(ro)n(ws)d\n (and)i(or)g(columns)g(of)g(the)g(matrix.)38 b(If)29 b\n Fo(rowOldToNew)23 b Fp(and)28 b Fo(colOldToNew)c Fp(are)208\n 628 y(b)r(oth)29 b Fo(NULL)p Fp(,)e(or)h(if)h(there)g(are)f(no)g(en)n\n (tries)g(in)i(the)f(matrix,)f(the)i(metho)r(d)f(returns.)40\n b(Note,)29 b(either)g Fo(rowOldToNew)24 b Fp(or)208 727\n@@ -6589,25 +6575,25 @@\n 5208 V 29 w(SORTED)f Fp(or)i Fo(INPMTX)p 3713 5208 V\n 29 w(BY)p 3830 5208 V 30 w(VECTORS)p Fp(,)208 5308 y(or)i(if)j\n Fo(inputMode)18 b Fp(is)j(not)h Fo(SPOOLES)p 1320 5308\n V 28 w(REAL)f Fp(or)f Fo(SPOOLES)p 1948 5308 V 29 w(COMPLEX)p\n Fp(,)f(an)i(error)f(message)g(is)i(prin)n(ted)f(and)h(the)g(program)208\n 5407 y(exits.)p eop end\n %%Page: 11 11\n-TeXDict begin 11 10 bop 83 100 1173 4 v 1339 100 a Fo(InpMtx)25\n-b Fj(:)37 b Fm(DRAFT)110 b Fj(August)28 b(3,)f(2025)p\n-2646 100 V 1173 w Fp(11)101 390 y(2.)42 b Fo(void)f(InpMtx_nonsym_mmm)o\n-(Vec)o(to)o(r)d(\\()43 b(InpMtx)e(*A,)h(DenseMtx)e(*Y,)j(double)e\n-(alpha[],)f(DenseMtx)g(*X)j(\\))g(;)208 490 y(void)e(InpMtx_sym_mmmVec)o\n-(tor)c(\\()43 b(InpMtx)e(*A,)h(DenseMtx)f(*Y,)h(double)f(alpha[],)f\n-(DenseMtx)h(*X)h(\\))i(;)208 589 y(void)d(InpMtx_herm_mmmVe)o(cto)o(r)c\n-(\\()44 b(InpMtx)d(*A,)h(DenseMtx)e(*Y,)j(double)e(alpha[],)f(DenseMtx)g\n-(*X)j(\\))g(;)208 689 y(void)e(InpMtx_nonsym_mmm)o(Vec)o(to)o(r_T)c(\\()\n+TeXDict begin 11 10 bop 83 100 1226 4 v 1391 100 a Fo(InpMtx)26\n+b Fj(:)37 b Fm(DRAFT)110 b Fj(July)27 b(1,)g(2024)p 2593\n+100 V 1226 w Fp(11)101 390 y(2.)42 b Fo(void)f(InpMtx_nonsym_mmm)o(Vec)\n+o(to)o(r)d(\\()43 b(InpMtx)e(*A,)h(DenseMtx)e(*Y,)j(double)e(alpha[],)f\n+(DenseMtx)g(*X)j(\\))g(;)208 490 y(void)e(InpMtx_sym_mmmVec)o(tor)c(\\()\n 43 b(InpMtx)e(*A,)h(DenseMtx)f(*Y,)h(double)f(alpha[],)f(DenseMtx)h(*X)\n-h(\\))i(;)208 789 y(void)d(InpMtx_nonsym_mmm)o(Vec)o(to)o(r_H)c(\\()43\n+h(\\))i(;)208 589 y(void)d(InpMtx_herm_mmmVe)o(cto)o(r)c(\\()44\n+b(InpMtx)d(*A,)h(DenseMtx)e(*Y,)j(double)e(alpha[],)f(DenseMtx)g(*X)j\n+(\\))g(;)208 689 y(void)e(InpMtx_nonsym_mmm)o(Vec)o(to)o(r_T)c(\\()43\n+b(InpMtx)e(*A,)h(DenseMtx)f(*Y,)h(double)f(alpha[],)f(DenseMtx)h(*X)h\n+(\\))i(;)208 789 y(void)d(InpMtx_nonsym_mmm)o(Vec)o(to)o(r_H)c(\\()43\n b(InpMtx)e(*A,)h(DenseMtx)f(*Y,)h(double)f(alpha[],)f(DenseMtx)h(*X)h\n (\\))i(;)208 920 y Fp(These)27 b(\\014v)n(e)g(metho)r(ds)h(p)r(erform)f\n (the)h(follo)n(wing)f(computations.)655 1109 y Fo(InpMtx)p\n 924 1109 27 4 v 29 w(nonsym)p 1217 1109 V 29 w(mmm\\(\\))172\n b Fl(y)26 b Fp(:=)d Fl(y)e Fp(+)d Fl(\\013Ax)164 b Fp(nonsymmetric)99\n b(real)26 b(or)h(complex)655 1208 y Fo(InpMtx)p 924 1208\n V 29 w(sym)p 1085 1208 V 30 w(mmm\\(\\))303 b Fl(y)26 b\n@@ -6701,20 +6687,20 @@\n b(dimensions)f(and)g(strides)g(for)g Fo(X)1889 5220 y\n Fp(-13)98 b(en)n(tries)27 b(of)h Fo(X)f Fp(are)f Fo(NULL)1889\n 5319 y Fp(-14)98 b(t)n(yp)r(es)28 b(of)f Fo(A)p Fp(,)h\n Fo(X)f Fp(and)g Fo(Y)g Fp(are)g(not)h(iden)n(tical)1889\n 5419 y(-15)98 b(n)n(um)n(b)r(er)27 b(of)h(columns)f(in)h\n Fo(X)f Fp(and)h Fo(Y)f Fp(are)g(not)g(equal)p eop end\n %%Page: 12 12\n-TeXDict begin 12 11 bop 0 100 a Fp(12)p 166 100 1173\n-4 v 1338 w Fo(InpMtx)25 b Fj(:)37 b Fm(DRAFT)27 b Fj(August)h(3,)f\n-(2025)p 2727 100 V 101 390 a Fp(4.)42 b Fo(int)g(InpMtx_nonsym_gm)o(vm)\n-37 b(\\()43 b(InpMtx)e(*A,)i(double)e(beta[],)f(int)j(ny,)f(double)f\n-(y[],)1297 490 y(double)g(alpha[],)g(int)h(nx,)g(double)f(x[])i(\\))g(;)\n-208 589 y(int)f(InpMtx_sym_gmvm)37 b(\\()43 b(InpMtx)f(*A,)g(double)f\n+TeXDict begin 12 11 bop 0 100 a Fp(12)p 166 100 1226\n+4 v 1391 w Fo(InpMtx)25 b Fj(:)37 b Fm(DRAFT)27 b Fj(July)g(1,)g(2024)p\n+2675 100 V 101 390 a Fp(4.)42 b Fo(int)g(InpMtx_nonsym_gm)o(vm)37\n+b(\\()43 b(InpMtx)e(*A,)i(double)e(beta[],)f(int)j(ny,)f(double)f(y[],)\n+1297 490 y(double)g(alpha[],)g(int)h(nx,)g(double)f(x[])i(\\))g(;)208\n+589 y(int)f(InpMtx_sym_gmvm)37 b(\\()43 b(InpMtx)f(*A,)g(double)f\n (beta[],)g(int)h(ny,)g(double)f(y[],)1166 689 y(double)h(alpha[],)e\n (int)i(nx,)h(double)e(x[])h(\\))h(;)208 789 y(int)f(InpMtx_herm_gmvm)37\n b(\\()43 b(InpMtx)e(*A,)h(double)g(beta[],)e(int)j(ny,)f(double)f(y[],)\n 1210 888 y(double)g(alpha[],)f(int)j(nx,)f(double)f(x[])i(\\))g(;)208\n 988 y(int)f(InpMtx_nonsym_gm)o(vm)o(_T)37 b(\\()43 b(InpMtx)e(*A,)i\n (double)e(beta[],)g(int)h(ny,)g(double)f(y[],)1384 1088\n y(double)g(alpha[],)g(int)h(nx,)g(double)g(x[])g(\\))h(;)208\n@@ -6803,17 +6789,17 @@\n (of)h Fl(A)3522 5150 y Fk(T)3575 5180 y Fl(A)p Fp(,)h(where)208\n 5280 y Fo(inpmtxA)c Fp(con)n(tains)j(the)h(en)n(tries)f(in)h\n Fl(A)p Fp(.)208 5407 y Fm(Err)l(or)i(che)l(cking:)38\n b Fp(If)28 b Fo(inpmtxA)d Fp(is)j Fo(NULL)p Fp(,)e(an)h(error)f\n (message)g(is)h(prin)n(ted)h(and)f(the)h(program)e(exits.)p\n eop end\n %%Page: 13 13\n-TeXDict begin 13 12 bop 83 100 1173 4 v 1339 100 a Fo(InpMtx)25\n-b Fj(:)37 b Fm(DRAFT)110 b Fj(August)28 b(3,)f(2025)p\n-2646 100 V 1173 w Fp(13)0 390 y Fe(1.2.8)112 b(Submatrix)39\n+TeXDict begin 13 12 bop 83 100 1226 4 v 1391 100 a Fo(InpMtx)26\n+b Fj(:)37 b Fm(DRAFT)110 b Fj(July)27 b(1,)g(2024)p 2593\n+100 V 1226 w Fp(13)0 390 y Fe(1.2.8)112 b(Submatrix)39\n b(extraction)e(metho)s(d)101 569 y Fp(1.)42 b Fo(int)g\n (InpMtx_initFromS)o(ub)o(mat)o(ri)o(x)c(\\()43 b(InpMtx)e(*B,)h(InpMtx)f\n (*A,)i(IV)f(*BrowsIV,)731 669 y(IV)g(*BcolsIV,)e(int)j(symmetryflag,)38\n b(int)k(msglvl,)f(FILE)h(*msgFile)e(\\))j(;)208 802 y\n Fp(This)27 b(metho)r(d)g(\\014lls)h Fo(B)e Fp(with)i(the)g(submatrix)e\n (formed)h(from)g(the)g(ro)n(ws)f(and)h(columns)g(of)g\n Fo(A)g Fp(found)g(in)h Fo(BrowsIV)c Fp(and)208 902 y\n@@ -6901,17 +6887,17 @@\n Fp(to)29 b Fl(a)2795 5320 y Fk(j;i)2869 5308 y Fp(.)43\n b(The)29 b(second)g(metho)r(d)g(mo)n(v)n(es)208 5407\n y Fl(a)252 5419 y Fk(i;j)353 5407 y Fp(for)22 b Fl(i)h(>)g(j)28\n b Fp(to)23 b Fl(a)818 5419 y Fk(j;i)892 5407 y Fp(,)i(\\(If)f(the)f\n (matrix)g(is)g(Hermitian,)h(the)f(sign)g(of)g(the)h(imaginary)d(part)i\n (of)g(an)g(en)n(try)f(is)h(dealt)h(with)p eop end\n %%Page: 14 14\n-TeXDict begin 14 13 bop 0 100 a Fp(14)p 166 100 1173\n-4 v 1338 w Fo(InpMtx)25 b Fj(:)37 b Fm(DRAFT)27 b Fj(August)h(3,)f\n-(2025)p 2727 100 V 208 390 a Fp(in)g(the)g(correct)f(fashion.\\))36\n+TeXDict begin 14 13 bop 0 100 a Fp(14)p 166 100 1226\n+4 v 1391 w Fo(InpMtx)25 b Fj(:)37 b Fm(DRAFT)27 b Fj(July)g(1,)g(2024)p\n+2675 100 V 208 390 a Fp(in)g(the)g(correct)f(fashion.\\))36\n b(In)27 b(other)g(w)n(ords,)e(using)i(these)g(metho)r(ds)g(will)g\n (restore)f(the)h(lo)n(w)n(er)f(or)g(upp)r(er)h(triangular)208\n 490 y(structure)g(after)g(a)g(p)r(erm)n(utation.)208\n 641 y Fm(Err)l(or)38 b(che)l(cking:)56 b Fp(If)37 b Fo(inpmtx)d\n Fp(is)i Fo(NULL)p Fp(,)f(or)h(if)h Fo(coordType)32 b\n Fp(is)37 b(in)n(v)-5 b(alid,)38 b(an)e(error)f(message)g(is)h(prin)n\n (ted)g(and)h(the)208 741 y(program)25 b(exits.)101 945\n@@ -7004,28 +6990,28 @@\n 5020 y(-5)98 b Fo(nrow)26 b Fp(or)h Fo(ncol)f Fp(negativ)n(e)1985\n 5120 y(-6)98 b Fo(symflag)25 b Fp(is)j(in)n(v)-5 b(alid)1985\n 5220 y(-7)98 b Fo(\\(symflag,inputMod)o(e\\))21 b Fp(in)n(v)-5\n b(alid)1985 5319 y(-8)98 b Fo(\\(symflag,nrow,nco)o(l\\))21\n b Fp(in)n(v)-5 b(alid)1985 5419 y(-9)98 b Fo(nitem)26\n b Fp(negativ)n(e)p eop end\n %%Page: 15 15\n-TeXDict begin 15 14 bop 83 100 1173 4 v 1339 100 a Fo(InpMtx)25\n-b Fj(:)37 b Fm(DRAFT)110 b Fj(August)28 b(3,)f(2025)p\n-2646 100 V 1173 w Fp(15)0 390 y Fe(1.2.10)113 b(IO)37\n-b(metho)s(ds)0 568 y Fp(There)k(are)f(the)i(usual)f(eigh)n(t)g(IO)g\n-(routines.)78 b(The)42 b(\\014le)f(structure)g(of)g(a)g\n-Fo(InpMtx)e Fp(ob)5 b(ject)42 b(is)f(simple:)65 b(The)41\n-b(\\014rst)g(en-)0 667 y(tries)i(in)h(the)g(\\014le)g(are)e\n-Fo(coordType)p Fp(,)i Fo(storageMode)p Fp(,)f Fo(inputMode)p\n-Fp(,)h Fo(nent)e Fp(and)h Fo(nvector)p Fp(.)82 b(If)44\n-b Fo(nent)e(>)h(0)p Fp(,)48 b(then)c(the)0 767 y Fo(ivec1IV)33\n-b Fp(and)i Fo(ivec2IV)d Fp(v)n(ectors)i(follo)n(w,)j(If)e\n-Fo(nent)42 b(>)h(0)35 b Fp(and)h Fo(inputMode)j(=)44\n-b(SPOOLES)p 2893 767 27 4 v 28 w(REAL)34 b Fp(or)g Fo(SPOOLES)p\n-3548 767 V 29 w(COMPLEX)p Fp(,)0 867 y(the)21 b Fo(dvecDV)d\n+TeXDict begin 15 14 bop 83 100 1226 4 v 1391 100 a Fo(InpMtx)26\n+b Fj(:)37 b Fm(DRAFT)110 b Fj(July)27 b(1,)g(2024)p 2593\n+100 V 1226 w Fp(15)0 390 y Fe(1.2.10)113 b(IO)37 b(metho)s(ds)0\n+568 y Fp(There)k(are)f(the)i(usual)f(eigh)n(t)g(IO)g(routines.)78\n+b(The)42 b(\\014le)f(structure)g(of)g(a)g Fo(InpMtx)e\n+Fp(ob)5 b(ject)42 b(is)f(simple:)65 b(The)41 b(\\014rst)g(en-)0\n+667 y(tries)i(in)h(the)g(\\014le)g(are)e Fo(coordType)p\n+Fp(,)i Fo(storageMode)p Fp(,)f Fo(inputMode)p Fp(,)h\n+Fo(nent)e Fp(and)h Fo(nvector)p Fp(.)82 b(If)44 b Fo(nent)e(>)h(0)p\n+Fp(,)48 b(then)c(the)0 767 y Fo(ivec1IV)33 b Fp(and)i\n+Fo(ivec2IV)d Fp(v)n(ectors)i(follo)n(w,)j(If)e Fo(nent)42\n+b(>)h(0)35 b Fp(and)h Fo(inputMode)j(=)44 b(SPOOLES)p\n+2893 767 27 4 v 28 w(REAL)34 b Fp(or)g Fo(SPOOLES)p 3548\n+767 V 29 w(COMPLEX)p Fp(,)0 867 y(the)21 b Fo(dvecDV)d\n Fp(v)n(ector)i(follo)n(ws.)33 b(If)22 b Fo(storageMode)39\n b(=)k(INPMTX)p 1919 867 V 29 w(BY)p 2036 867 V 30 w(VECTORS)18\n b Fp(and)j Fo(nvector)40 b(>)j(0)p Fp(,)22 b(the)f Fo(vecidsIV)p\n Fp(,)d Fo(sizesIV)0 966 y Fp(and)27 b Fo(offsetsIV)d\n Fp(v)n(ectors)i(follo)n(w.)101 1171 y(1.)42 b Fo(int)g\n (InpMtx_readFromF)o(il)o(e)c(\\()43 b(InpMtx)e(*inpmtx,)f(char)i(*fn)g\n (\\))i(;)208 1303 y Fp(This)24 b(metho)r(d)h(reads)f(the)h(ob)5\n@@ -7111,18 +7097,18 @@\n y(the)h(storage)d(mo)r(de)j(is)f(b)n(y)h(triples,)f(triples)g(are)g\n (written)h(out.)37 b(The)27 b(v)-5 b(alue)28 b Fo(1)f\n Fp(is)h(returned.)208 5407 y Fm(Err)l(or)i(che)l(cking:)38\n b Fp(If)28 b Fo(inpmtx)e Fp(or)g Fo(fp)h Fp(are)g Fo(NULL)p\n Fp(,)f(an)h(error)f(message)g(is)h(prin)n(ted)h(and)f(zero)g(is)g\n (returned.)p eop end\n %%Page: 16 16\n-TeXDict begin 16 15 bop 0 100 a Fp(16)p 166 100 1173\n-4 v 1338 w Fo(InpMtx)25 b Fj(:)37 b Fm(DRAFT)27 b Fj(August)h(3,)f\n-(2025)p 2727 100 V 101 390 a Fp(8.)42 b Fo(int)g(InpMtx_writeStat)o(s)\n-37 b(\\()44 b(InpMtx)d(*inpmtx,)f(FILE)i(*fp)g(\\))h(;)208\n+TeXDict begin 16 15 bop 0 100 a Fp(16)p 166 100 1226\n+4 v 1391 w Fo(InpMtx)25 b Fj(:)37 b Fm(DRAFT)27 b Fj(July)g(1,)g(2024)p\n+2675 100 V 101 390 a Fp(8.)42 b Fo(int)g(InpMtx_writeStat)o(s)37\n+b(\\()44 b(InpMtx)d(*inpmtx,)f(FILE)i(*fp)g(\\))h(;)208\n 520 y Fp(This)27 b(metho)r(d)h(writes)f(the)h(statistics)g(ab)r(out)f\n (the)h(ob)5 b(ject)28 b(to)f(a)g(\\014le.)37 b(h)n(uman.)g(The)28\n b(v)-5 b(alue)27 b Fo(1)g Fp(is)h(returned.)208 649 y\n Fm(Err)l(or)i(che)l(cking:)38 b Fp(If)28 b Fo(inpmtx)e\n Fp(or)g Fo(fp)h Fp(are)g Fo(NULL)p Fp(,)f(an)h(error)f(message)g(is)h\n (prin)n(ted)h(and)f(zero)g(is)g(returned.)101 808 y(9.)42\n b Fo(void)f(InpMtx_writeForMa)o(tla)o(b)c(\\()44 b(InpMtx)d(*mtx,)g\n@@ -7201,19 +7187,19 @@\n b(structure)h(of)h Fl(A)19 b Fp(+)f Fl(A)1267 5238 y\n Fk(T)1319 5268 y Fp(,)28 b(diagonal)e(edges)h(included.)p\n 0 5330 1560 4 v 92 5384 a Fc(1)127 5407 y Fb(http://math.nist.gov/mc)q\n (sd/S)q(taf)q(f/KR)q(emi)q(ngto)q(n/h)q(arwe)q(ll)p 1890\n 5407 22 4 v 32 w(io/harwell)p 2271 5407 V 28 w(io.html)p\n eop end\n %%Page: 17 17\n-TeXDict begin 17 16 bop 83 100 1173 4 v 1339 100 a Fo(InpMtx)25\n-b Fj(:)37 b Fm(DRAFT)110 b Fj(August)28 b(3,)f(2025)p\n-2646 100 V 1173 w Fp(17)307 390 y Fn(\\210)42 b Fp(The)19\n-b Fo(msglvl)e Fp(parameter)g(determines)i(the)h(amoun)n(t)e(of)h\n-(output)h(|)f(taking)f Fo(msglvl)41 b(>=)i(3)19 b Fp(means)f(the)h\n+TeXDict begin 17 16 bop 83 100 1226 4 v 1391 100 a Fo(InpMtx)26\n+b Fj(:)37 b Fm(DRAFT)110 b Fj(July)27 b(1,)g(2024)p 2593\n+100 V 1226 w Fp(17)307 390 y Fn(\\210)42 b Fp(The)19 b\n+Fo(msglvl)e Fp(parameter)g(determines)i(the)h(amoun)n(t)e(of)h(output)h\n+(|)f(taking)f Fo(msglvl)41 b(>=)i(3)19 b Fp(means)f(the)h\n Fo(InpMtx)390 490 y Fp(ob)5 b(ject)28 b(is)f(written)h(to)f(the)h\n (message)e(\\014le.)307 627 y Fn(\\210)42 b Fp(The)32 b\n Fo(msgFile)c Fp(parameter)i(determines)h(the)h(message)e(\\014le)i(|)f\n (if)h Fo(msgFile)d Fp(is)i Fo(stdout)p Fp(,)f(then)i(the)g(message)390\n 727 y(\\014le)c(is)f Fm(stdout)p Fp(,)h(otherwise)e(a)i(\\014le)f(is)h\n (op)r(ened)f(with)i Fm(app)l(end)g Fp(status)e(to)g(receiv)n(e)g(an)n\n (y)g(output)h(data.)307 864 y Fn(\\210)42 b Fp(The)28\n@@ -7307,27 +7293,27 @@\n b(driv)n(er)f(program)f(reads)h(in)i Fo(InpMtx)d Fp(ob)5\n b(ject)23 b(from)g(the)g(\\014le)h Fo(inFile)d Fp(that)i(holds)g(a)g\n (matrix)g Fl(A)p Fp(.)36 b(It)23 b(then)h(creates)208\n 5407 y(a)j Fo(Graph)e Fp(ob)5 b(ject)28 b(for)f Fl(B)g\n Fp(=)c Fl(A)1141 5377 y Fk(T)1193 5407 y Fl(A)28 b Fp(and)g(writes)f\n (it)h(to)f(the)h(\\014le)g Fo(outFile)p Fp(.)p eop end\n %%Page: 18 18\n-TeXDict begin 18 17 bop 0 100 a Fp(18)p 166 100 1173\n-4 v 1338 w Fo(InpMtx)25 b Fj(:)37 b Fm(DRAFT)27 b Fj(August)h(3,)f\n-(2025)p 2727 100 V 307 390 a Fn(\\210)42 b Fp(The)19 b\n-Fo(msglvl)e Fp(parameter)g(determines)i(the)h(amoun)n(t)e(of)h(output)h\n-(|)f(taking)f Fo(msglvl)41 b(>=)i(3)19 b Fp(means)f(the)h\n-Fo(InpMtx)390 490 y Fp(ob)5 b(ject)28 b(is)f(written)h(to)f(the)h\n-(message)e(\\014le.)307 618 y Fn(\\210)42 b Fp(The)32 b\n-Fo(msgFile)c Fp(parameter)i(determines)h(the)h(message)e(\\014le)i(|)f\n-(if)h Fo(msgFile)d Fp(is)i Fo(stdout)p Fp(,)f(then)i(the)g(message)390\n-718 y(\\014le)c(is)f Fm(stdout)p Fp(,)h(otherwise)e(a)i(\\014le)f(is)h\n-(op)r(ened)f(with)i Fm(app)l(end)g Fp(status)e(to)g(receiv)n(e)g(an)n\n-(y)g(output)h(data.)307 846 y Fn(\\210)42 b Fp(The)27\n-b Fo(inFile)e Fp(parameter)h(is)h(the)h(input)g(\\014le)f(for)g(the)g\n+TeXDict begin 18 17 bop 0 100 a Fp(18)p 166 100 1226\n+4 v 1391 w Fo(InpMtx)25 b Fj(:)37 b Fm(DRAFT)27 b Fj(July)g(1,)g(2024)p\n+2675 100 V 307 390 a Fn(\\210)42 b Fp(The)19 b Fo(msglvl)e\n+Fp(parameter)g(determines)i(the)h(amoun)n(t)e(of)h(output)h(|)f(taking)\n+f Fo(msglvl)41 b(>=)i(3)19 b Fp(means)f(the)h Fo(InpMtx)390\n+490 y Fp(ob)5 b(ject)28 b(is)f(written)h(to)f(the)h(message)e(\\014le.)\n+307 618 y Fn(\\210)42 b Fp(The)32 b Fo(msgFile)c Fp(parameter)i\n+(determines)h(the)h(message)e(\\014le)i(|)f(if)h Fo(msgFile)d\n+Fp(is)i Fo(stdout)p Fp(,)f(then)i(the)g(message)390 718\n+y(\\014le)c(is)f Fm(stdout)p Fp(,)h(otherwise)e(a)i(\\014le)f(is)h(op)r\n+(ened)f(with)i Fm(app)l(end)g Fp(status)e(to)g(receiv)n(e)g(an)n(y)g\n+(output)h(data.)307 846 y Fn(\\210)42 b Fp(The)27 b Fo(inFile)e\n+Fp(parameter)h(is)h(the)h(input)g(\\014le)f(for)g(the)g\n Fo(InpMtx)e Fp(ob)5 b(ject.)37 b(It)27 b(m)n(ust)h(b)r(e)f(of)g(the)h\n (form)f Fo(*.inpmtxf)390 946 y Fp(or)g Fo(*.inpmtxb)p\n Fp(.)33 b(The)27 b Fo(InpMtx)e Fp(ob)5 b(ject)27 b(is)g(read)g(from)g\n (the)g(\\014le)h(via)e(the)i Fo(InpMtx)p 2941 946 27 4\n v 29 w(readFromFile\\(\\))22 b Fp(metho)r(d.)307 1075 y\n Fn(\\210)42 b Fp(The)35 b Fo(outFile)d Fp(parameter)h(is)i(the)g(output)\n g(\\014le)g(for)f(the)h Fo(InpMtx)e Fp(ob)5 b(ject.)58\n@@ -7410,22 +7396,22 @@\n 5308 y Fp(This)22 b(driv)n(er)f(program)g(w)n(as)g(used)i(to)f\n (generate)g(a)g Fo(type)42 b(1)22 b(Graph)e Fp(ob)5 b(ject)23\n b(\\(w)n(eigh)n(ted)f(v)n(ertices,)g(unit)i(w)n(eigh)n(t)e(edges\\))208\n 5407 y(from)27 b(a)g(\\014le)h(that)g(con)n(tained)f(the)h(adjacency)e\n (structure)h(of)h(a)f(matrix)g(in)h(the)g(follo)n(wing)f(form.)p\n eop end\n %%Page: 19 19\n-TeXDict begin 19 18 bop 83 100 1173 4 v 1339 100 a Fo(InpMtx)25\n-b Fj(:)37 b Fm(DRAFT)110 b Fj(August)28 b(3,)f(2025)p\n-2646 100 V 1173 w Fp(19)469 390 y Fo(nvtx)42 b(nadj)469\n-490 y(vwghts[nvtx])469 589 y(offsets[nvtx+1])469 689\n-y(indices[nadj])208 878 y Fp(There)33 b(are)g Fo(nvtx)f\n-Fp(v)n(ertices)h(in)h(the)g(graph)f(and)g(the)i(adjacency)e(v)n(ector)f\n-(has)i Fo(nadj)e Fp(en)n(tries.)55 b(It)34 b(w)n(as)f(not)h(kno)n(wn)\n-208 978 y(whether)27 b(the)h(adjacency)f(structure)h(con)n(tained)f\n+TeXDict begin 19 18 bop 83 100 1226 4 v 1391 100 a Fo(InpMtx)26\n+b Fj(:)37 b Fm(DRAFT)110 b Fj(July)27 b(1,)g(2024)p 2593\n+100 V 1226 w Fp(19)469 390 y Fo(nvtx)42 b(nadj)469 490\n+y(vwghts[nvtx])469 589 y(offsets[nvtx+1])469 689 y(indices[nadj])208\n+878 y Fp(There)33 b(are)g Fo(nvtx)f Fp(v)n(ertices)h(in)h(the)g(graph)f\n+(and)g(the)i(adjacency)e(v)n(ector)f(has)i Fo(nadj)e\n+Fp(en)n(tries.)55 b(It)34 b(w)n(as)f(not)h(kno)n(wn)208\n+978 y(whether)27 b(the)h(adjacency)f(structure)h(con)n(tained)f\n Fo(\\(v,v\\))e Fp(en)n(tries)i(or)g(if)i(it)f(w)n(as)f(only)g(the)h(upp)r\n (er)g(or)f(lo)n(w)n(er)f(triangle.)208 1078 y(Our)k Fo(Graph)f\n Fp(ob)5 b(ject)31 b(is)g(symmetric)f(with)i(lo)r(ops,)f(i.e.,)h\n Fo(\\(u,v\\))d Fp(is)i(presen)n(t)f(if)i(and)f(only)f(if)i\n Fo(\\(v,u\\))d Fp(is)i(presen)n(t,)g(and)208 1177 y Fo(\\(v,v\\))25\n b Fp(is)j(presen)n(t.)208 1308 y(This)22 b(program)f(reads)h(in)h(the)g\n (adjacency)f(structure,)h(decremen)n(ts)f(the)h(o\\013sets)g(and)f\n@@ -7510,18 +7496,18 @@\n Fp(is)j(the)g(\\014le)g(that)h(holds)f(the)g Fo(Coords)e\n Fp(ob)5 b(ject)32 b(|)g(m)n(ust)g(b)r(e)h(of)f(the)h(form)e\n Fo(*.coordsf)e Fp(or)390 5278 y Fo(*.coordsb)p Fp(.)307\n 5407 y Fn(\\210)42 b Fp(The)28 b Fo(coordType)c Fp(determines)j(the)h\n (co)r(ordinate)f(t)n(yp)r(e)g(for)g(the)h Fo(InpMtx)e\n Fp(ob)5 b(ject.)p eop end\n %%Page: 20 20\n-TeXDict begin 20 19 bop 0 100 a Fp(20)p 166 100 1173\n-4 v 1338 w Fo(InpMtx)25 b Fj(:)37 b Fm(DRAFT)27 b Fj(August)h(3,)f\n-(2025)p 2727 100 V 456 390 a Fi({)41 b Fo(1)28 b Fp(|)f(storage)f(of)i\n-(en)n(tries)f(b)n(y)g(ro)n(ws)456 516 y Fi({)41 b Fo(2)28\n+TeXDict begin 20 19 bop 0 100 a Fp(20)p 166 100 1226\n+4 v 1391 w Fo(InpMtx)25 b Fj(:)37 b Fm(DRAFT)27 b Fj(July)g(1,)g(2024)p\n+2675 100 V 456 390 a Fi({)41 b Fo(1)28 b Fp(|)f(storage)f(of)i(en)n\n+(tries)f(b)n(y)g(ro)n(ws)456 516 y Fi({)41 b Fo(2)28\n b Fp(|)f(storage)f(of)i(en)n(tries)f(b)n(y)g(columns)456\n 642 y Fi({)41 b Fo(3)28 b Fp(|)f(storage)f(of)i(en)n(tries)f(b)n(y)g(c)\n n(hevrons)307 795 y Fn(\\210)42 b Fp(The)28 b Fo(seed)f\n Fp(parameter)f(is)i(used)g(as)f(a)h(random)f(n)n(um)n(b)r(er)h(seed)g\n (to)f(determine)i(the)f(ro)n(w)f(and)g(column)h(p)r(erm)n(u-)390\n 895 y(tations)f(for)g(the)h(matrix-v)n(ector)e(m)n(ultiply)-7\n b(.)307 1047 y Fn(\\210)42 b Fp(The)23 b Fo(outInpMtxFile)18\n@@ -7587,18 +7573,18 @@\n 4969 y(...)556 5069 y(xnpts)42 b(ynpts)f(])i(;)208 5308\n y Fp(whic)n(h)24 b(can)h(b)r(e)g(used)g(to)g(generate)e(the)i(follo)n\n (wing)f(matlab)h(plot.)36 b(An)25 b(example)f(is)h(giv)n(en)f(b)r(elo)n\n (w)h(for)f(the)h Fa(bcsstk23)208 5407 y Fp(matrix,)i(where)g\n Fo(npts)42 b(=)h(200)p Fp(,)26 b Fo(tausmall)41 b(=)i(1.e-10)25\n b Fp(and)i Fo(taubig)42 b(=)h(1.e100)p Fp(.)p eop end\n %%Page: 21 21\n-TeXDict begin 21 20 bop 83 100 1173 4 v 1339 100 a Fo(InpMtx)25\n-b Fj(:)37 b Fm(DRAFT)110 b Fj(August)28 b(3,)f(2025)p\n-2646 100 V 1173 w Fp(21)1154 1747 y @beginspecial 47\n-@llx 197 @lly 550 @urx 604 @ury 2160 @rwi 1728 @rhi @setspecial\n+TeXDict begin 21 20 bop 83 100 1226 4 v 1391 100 a Fo(InpMtx)26\n+b Fj(:)37 b Fm(DRAFT)110 b Fj(July)27 b(1,)g(2024)p 2593\n+100 V 1226 w Fp(21)1154 1747 y @beginspecial 47 @llx\n+197 @lly 550 @urx 604 @ury 2160 @rwi 1728 @rhi @setspecial\n %%BeginDocument: ../../InpMtx/doc/BCSSTK23.eps\n %!PS-Adobe-2.0 EPSF-1.2\n %%Creator: MATLAB, The Mathworks, Inc.\n %%Title: profile.eps\n %%CreationDate: 03/13/97 09:20:11\n %%DocumentNeededFonts: Helvetica\n %%DocumentProcessColors: Cyan Magenta Yellow Black\n@@ -8002,17 +7988,17 @@\n Fo(InpMtx)c Fp(ob)5 b(ject)43 b(that)g(holds)g(the)g(matrix.)83\n b(It)390 5308 y(m)n(ust)40 b(b)r(e)f(of)h(the)f(form)g\n Fo(*.inpmtxf)d Fp(or)j Fo(*.inpmtxb)p Fp(.)68 b(The)39\n b Fo(InpMtx)e Fp(ob)5 b(ject)39 b(is)h(written)f(to)g(the)h(\\014le)g\n (via)390 5407 y(the)28 b Fo(InpMtx)p 802 5407 V 29 w(writeToFile\\(\\))22\n b Fp(metho)r(d.)p eop end\n %%Page: 22 22\n-TeXDict begin 22 21 bop 0 100 a Fp(22)p 166 100 1173\n-4 v 1338 w Fo(InpMtx)25 b Fj(:)37 b Fm(DRAFT)27 b Fj(August)h(3,)f\n-(2025)p 2727 100 V 60 390 a Fp(12.)41 b Fo(testMMM)f(msglvl)h(msgFile)g\n+TeXDict begin 22 21 bop 0 100 a Fp(22)p 166 100 1226\n+4 v 1391 w Fo(InpMtx)25 b Fj(:)37 b Fm(DRAFT)27 b Fj(July)g(1,)g(2024)p\n+2675 100 V 60 390 a Fp(12.)41 b Fo(testMMM)f(msglvl)h(msgFile)g\n (dataType)f(symflag)h(coordType)f(transpose)556 490 y(nrow)i(ncol)g\n (nitem)g(nrhs)g(seed)f(alphaReal)f(alphaImag)208 623\n y Fp(This)32 b(driv)n(er)f(program)f(tests)i(the)h(matrix-matrix)e(m)n\n (ultiply)h(metho)r(ds.)52 b(This)32 b(driv)n(er)f(program)f(generates)h\n Fl(A)p Fp(,)i(a)208 723 y Fo(nrow)14 b Fg(\\002)i Fo(ncol)25\n b Fp(matrix)h(using)g Fo(nitem)f Fp(input)i(en)n(tries,)f\n Fl(X)33 b Fp(and)26 b Fl(Y)19 b Fp(,)27 b Fo(nrow)15\n@@ -8112,17 +8098,17 @@\n (the)g(matrix.)307 5274 y Fn(\\210)42 b Fo(nrhs)26 b Fp(is)i(the)g(n)n\n (um)n(b)r(er)f(of)h(columns)f(in)h Fl(X)34 b Fp(and)27\n b Fl(Y)19 b Fp(.)307 5407 y Fn(\\210)42 b Fp(The)21 b\n Fo(seed)e Fp(parameter)g(is)h(a)g(random)g(n)n(um)n(b)r(er)g(seed)g\n (used)g(to)h(\\014ll)f(the)h(matrix)f(en)n(tries)g(with)h(random)f(n)n\n (um)n(b)r(ers.)p eop end\n %%Page: 23 23\n-TeXDict begin 23 22 bop 83 100 1173 4 v 1339 100 a Fo(InpMtx)25\n-b Fj(:)37 b Fm(DRAFT)110 b Fj(August)28 b(3,)f(2025)p\n-2646 100 V 1173 w Fp(23)307 390 y Fn(\\210)42 b Fo(alphaReal)24\n+TeXDict begin 23 22 bop 83 100 1226 4 v 1391 100 a Fo(InpMtx)26\n+b Fj(:)37 b Fm(DRAFT)110 b Fj(July)27 b(1,)g(2024)p 2593\n+100 V 1226 w Fp(23)307 390 y Fn(\\210)42 b Fo(alphaReal)24\n b Fp(and)k Fo(alphaImag)c Fp(form)j(the)h Fl(\\013)g Fp(scalar)e(in)i\n (the)g(m)n(ultiply)-7 b(.)307 523 y Fn(\\210)42 b Fo(betaReal)25\n b Fp(and)i Fo(betaImag)d Fp(form)k(the)g Fl(\\014)k Fp(scalar)26\n b(in)h(the)h(m)n(ultiply)-7 b(.)60 706 y(14.)41 b Fo(testGMVM)f(msglvl)\n h(msgFile)g(dataType)f(symflag)h(coordType)e(transpose)600\n 805 y(nrow)j(ncol)g(nitem)f(seed)h(alphaReal)e(alphaImag)g(betaReal)g\n (betaImag)208 938 y Fp(This)18 b(driv)n(er)g(program)e(tests)j(the)g\n@@ -8303,18 +8289,18 @@\n y Fo(InpMtx)p 2261 5005 V 28 w(storageMode\\(\\))p Fp(,)h(5)1992\n 5105 y Fo(InpMtx)p 2261 5105 V 28 w(supportNonsym\\(\\))p\n Fp(,)f(9)1992 5206 y Fo(InpMtx)p 2261 5206 V 28 w(supportNonsymH\\(\\))p\n Fp(,)g(9)1992 5307 y Fo(InpMtx)p 2261 5307 V 28 w(supportNonsymT\\(\\))p\n Fp(,)g(9)1992 5407 y Fo(InpMtx)p 2261 5407 V 28 w(supportSym\\(\\))p\n Fp(,)h(9)1908 5656 y(24)p eop end\n %%Page: 25 25\n-TeXDict begin 25 24 bop 83 100 1173 4 v 1339 100 a Fo(InpMtx)25\n-b Fj(:)37 b Fm(DRAFT)110 b Fj(August)28 b(3,)f(2025)p\n-2646 100 V 1173 w Fp(25)0 390 y Fo(InpMtx)p 269 390 27\n-4 v 29 w(supportSymH\\(\\))p Fp(,)22 b(9)0 490 y Fo(InpMtx)p\n+TeXDict begin 25 24 bop 83 100 1226 4 v 1391 100 a Fo(InpMtx)26\n+b Fj(:)37 b Fm(DRAFT)110 b Fj(July)27 b(1,)g(2024)p 2593\n+100 V 1226 w Fp(25)0 390 y Fo(InpMtx)p 269 390 27 4 v\n+29 w(supportSymH\\(\\))p Fp(,)22 b(9)0 490 y Fo(InpMtx)p\n 269 490 V 29 w(sym)p 430 490 V 30 w(gmmm\\(\\))p Fp(,)j(11)0\n 589 y Fo(InpMtx)p 269 589 V 29 w(sym)p 430 589 V 30 w(gmvm\\(\\))p\n Fp(,)g(11)0 689 y Fo(InpMtx)p 269 689 V 29 w(sym)p 430\n 689 V 30 w(mmm\\(\\))p Fp(,)h(10)0 789 y Fo(InpMtx)p 269\n 789 V 29 w(vecids\\(\\))p Fp(,)e(6)0 888 y Fo(InpMtx)p\n 269 888 V 29 w(vector\\(\\))p Fp(,)g(6)0 988 y Fo(InpMtx)p\n 269 988 V 29 w(writeForHumanEye)o(\\(\\))o Fp(,)e(15)0\n", "details": [{"source1": "ps2ascii {}", "source2": "ps2ascii {}", "unified_diff": "@@ -28,15 +28,15 @@\n be e\ufb03cient to have su\ufb03cient elbow room to minimize the number of sorts and compressions. In this\r\n case, a tight upper bound on the necessary storage is the sum of the sizes of the elemental matrices.\r\n The entries are assembled by a call to InpMtx changeStorageMode().\r\n T\r\n 5. CreateanIVLobjectthatcontainsthefull adjacencyofA+A bycallingtheInpMtx fullAdjacency()\r\n method.\r\n 1\r\n- 2 InpMtx : DRAFT August 3, 2025\r\n+ 2 InpMtx : DRAFT July 1, 2024\r\n 6. Create a Graph object using the Graph init2() method and the IVL object as an input argument.\r\n A similar functionality exists for creating a Graph object from a linear combination of two InpMtx objects\r\n that contains the matrices A and B. The InpMtx fullAdjacency2() method returns an IVL object with\r\n the full adjacency of (A+B)+(A+B)T. These two methods are called by the DPencil fullAdjacency()\r\n methods to return the full adjacency of a matrix pencil.\r\n Here is a common sequence of events to use this object when we want to assemble the entries of a sparse\r\n matrix.\r\n@@ -68,15 +68,15 @@\n j,j j,k k,j\r\n \u2013 INPMTX CUSTOM \u2014 custom coordinates.\r\n \u2022 int storageMode : mode of storage\r\n \u2013 INPMTX RAW DATA \u2014 data is raw pairs or triples, two coordinates and (optionally) one or two\r\n double precision values.\r\n \u2013 INPMTX SORTED \u2014 data is sorted and distinct triples, the primary key is the \ufb01rst coordinate, the\r\n secondary key is the second coordinate.\r\n- InpMtx : DRAFT August 3, 2025 3\r\n+ InpMtx : DRAFT July 1, 2024 3\r\n \u2013 INPMTX BY VECTORS \u2014 data is sorted and distinct vectors. All entries in a vector share some-\r\n thing in common. For example, when coordType is INPMTX BY ROWS, INPMTX BY COLUMNS or\r\n INPMTX BY CHEVRONS, row vectors, column vectors, or chevron vectors are stored, respectively.\r\n WhencoordTypeis INPMTX CUSTOM, a custom type, entries in the same vector have something in\r\n common but it need not be a common row, column or chevron coordinate.\r\n \u2022 int inputMode : mode of data input\r\n \u2013 INPMTX INDICES ONLY \u2014 only indices are stored, not entries.\r\n@@ -106,15 +106,15 @@\n \u2022 INPMTX IS BY COLUMNS(mtx) returns 1 if the entries are stored by columns, and 0 otherwise.\r\n \u2022 INPMTX IS BY CHEVRONS(mtx) returns 1 if the entries are stored by chevrons, and 0 otherwise.\r\n \u2022 INPMTX IS BY CUSTOM(mtx) returns 1 if the entries are stored by some custom coordinate, and 0\r\n otherwise.\r\n \u2022 INPMTX IS RAW DATA(mtx) returns 1 if the entries are stored as unsorted pairs or triples, and 0 other-\r\n wise.\r\n \u2022 INPMTX IS SORTED(mtx) returns 1 if the entries are stored as sorted pairs or triples, and 0 otherwise.\r\n- 4 InpMtx : DRAFT August 3, 2025\r\n+ 4 InpMtx : DRAFT July 1, 2024\r\n \u2022 INPMTX IS BY VECTORS(mtx) returns 1 if the entries are stored as vectors, and 0 otherwise.\r\n \u2022 INPMTX IS INDICES ONLY(mtx) returns 1 if the entries are not stored, and 0 otherwise.\r\n \u2022 INPMTX IS REAL ENTRIES(mtx) returns 1 if the entries are real, and 0 otherwise.\r\n \u2022 INPMTX IS COMPLEX ENTRIES(mtx) returns 1 if the entries are complex, and 0 otherwise.\r\n 1.2 Prototypes and descriptions of InpMtx methods\r\n This section contains brief descriptions including prototypes of all methods that belong to the InpMtx object.\r\n 1.2.1 Basic methods\r\n@@ -140,15 +140,15 @@\n 1. int InpMtx_coordType ( InpMtx *inpmtx ) ;\r\n This method returns the coordinate type.\r\n \u2022 INPMTX NO TYPE \u2013 none speci\ufb01ed\r\n \u2022 INPMTX BY ROWS \u2013 storage by row triples\r\n \u2022 INPMTX BY COLUMNS \u2013 storage by column triples\r\n \u2022 INPMTX BY CHEVRONS \u2013 storage by chevron triples\r\n \u2022 INPMTX CUSTOM \u2013 custom type\r\n- InpMtx : DRAFT August 3, 2025 5\r\n+ InpMtx : DRAFT July 1, 2024 5\r\n Error checking: If inpmtx is NULL, an error message is printed and the program exits.\r\n 2. int InpMtx_storageMode ( InpMtx *inpmtx ) ;\r\n This method returns the storage mode.\r\n \u2022 INPMTX NO MODE \u2013 none speci\ufb01ed\r\n \u2022 INPMTX RAW DATA \u2013 raw triples\r\n \u2022 INPMTX SORTED \u2013 sorted and distinct triples\r\n \u2022 INPMTX BY VECTORS \u2013 vectors by the \ufb01rst coordinate\r\n@@ -176,15 +176,15 @@\n Error checking: If inpmtx is NULL, an error message is printed and the program exits.\r\n 9. int * InpMtx_ivec1 ( InpMtx *inpmtx ) ;\r\n This method returns the base address of the ivec1[] vector.\r\n Error checking: If inpmtx is NULL, an error message is printed and the program exits.\r\n 10. int * InpMtx_ivec2 ( InpMtx *inpmtx ) ;\r\n This method returns the base address of the ivec2[] vector.\r\n Error checking: If inpmtx is NULL, an error message is printed and the program exits.\r\n- 6 InpMtx : DRAFT August 3, 2025\r\n+ 6 InpMtx : DRAFT July 1, 2024\r\n 11. double * InpMtx_dvec ( InpMtx *inpmtx ) ;\r\n This method returns the base address of the dvec[] vector.\r\n Error checking: If inpmtx is NULL, an error message is printed and the program exits.\r\n 12. int * InpMtx_vecids ( InpMtx *inpmtx ) ;\r\n This method returns the base address of the vecids[] vector.\r\n Error checking: If inpmtx is NULL, an error message is printed and the program exits.\r\n 13. int * InpMtx_sizes ( InpMtx *inpmtx ) ;\r\n@@ -217,15 +217,15 @@\n This method sets the maxinum number of entries in the indices and entries vectors.\r\n Error checking: If inpmtx is NULL, or if newmaxnent < 0, an error message is printed and the program\r\n exits.\r\n 18. void InpMtx_setNent ( InpMtx *inpmtx, int newnent ) ;\r\n This method sets the present number of entries in the indices and entries vectors.\r\n Error checking: If inpmtx is NULL, or if newnent < 0, an error message is printed and the program\r\n exits.\r\n- InpMtx : DRAFT August 3, 2025 7\r\n+ InpMtx : DRAFT July 1, 2024 7\r\n 19. void InpMtx_setMaxnvector ( InpMtx *inpmtx, int newmaxnvector ) ;\r\n This method sets the maxinum number of vectors.\r\n Error checking: If inpmtx is NULL, or if newmaxnvector < 0, an error message is printed and the\r\n program exits.\r\n 20. void InpMtx_setNvector ( InpMtx *inpmtx, int newnvector ) ;\r\n This method sets the present number of vectors.\r\n Error checking: If inpmtx is NULL, or if newnvector < 0, an error message is printed and the program\r\n@@ -261,15 +261,15 @@\n exits.\r\n 3. void InpMtx_changeStorageMode ( InpMtx *inpmtx, int newMode ) ;\r\n If storageMode = newMode, the method returns. Otherwise, a translation between the three valid\r\n modes is made by calling InpMtx sortAndCompress()and InpMtx convertToVectors(),as appropri-\r\n ate.\r\n Error checking: If inpmtx is NULL or newMode is invalid, an error message is printed and the program\r\n exits.\r\n- 8 InpMtx : DRAFT August 3, 2025\r\n+ 8 InpMtx : DRAFT July 1, 2024\r\n 1.2.4 Input methods\r\n 1. void InpMtx_inputEntry ( InpMtx *inpmtx, int row, int col ) ;\r\n void InpMtx_inputRealEntry ( InpMtx *inpmtx, int row, int col, double value ) ;\r\n void InpMtx_inputComplexEntry ( InpMtx *inpmtx, int row, int col,\r\n double real, double imag ) ;\r\n This method places a single entry into the matrix object. The coordinate type of the object must be\r\n INPMTX BY ROWS, INPMTX BY COLUMNS or INPMTX BY CHEVRONS. The triple is formed and inserted into\r\n@@ -307,15 +307,15 @@\n Error checking: If inpmtx is NULL, or chv or chvsize are negative, or chvind or chvent are NULL, an\r\n error message is printed and the program exits.\r\n 5. void InpMtx_inputMatrix ( InpMtx *inpmtx, int nrow, int col,\r\n int rowstride, int colstride, int rowind[], int colind[] ) ;\r\n void InpMtx_inputRealMatrix ( InpMtx *inpmtx, int nrow, int col,\r\n int rowstride, int colstride, int rowind[], int colind[], double mtxent[] ) ;\r\n void InpMtx_inputComplexMatrix ( InpMtx *inpmtx, int nrow, int col,\r\n- InpMtx : DRAFT August 3, 2025 9\r\n+ InpMtx : DRAFT July 1, 2024 9\r\n int rowstride, int colstride, int rowind[], int colind[], double mtxent[] ) ;\r\n This method places a dense submatrix into the matrix object. The coordinate type of the object must\r\n be INPMTX BY ROWS, INPMTX BY COLUMNS or INPMTX BY CHEVRONS. The individual entries of the matrix\r\n are placed into the vector storage as triples, and the vectors are resized if necessary.\r\n Error checking: If inpmtx is NULL, or col or row are negative, or rowstride or colstride are less\r\n than 1, or rowind, colind or mtxent are NULL, an error message is printed and the program exits.\r\n 6. void InpMtx_inputTriples ( InpMtx *inpmtx, int ntriples,\r\n@@ -351,15 +351,15 @@\n and A will contain only part of the larger global matrix A. Finding the row an column support enables\r\n one to construct local data structures for X and the product \u03b1AX.\r\n Error checking: If A or supIV is NULL, an error message is printed and the program exits.\r\n 3. void InpMtx_mapEntries ( InpMtx *A, IV *rowmapIV, IV *colmapIV ) ;\r\n These methods are used to map a matrix from one numbering system to another. The primary use of\r\n this method is to map a part of a distributed matrix between the global and local numberings.\r\n Error checking: If A, rowmapIV or colmapIV is NULL, an error message is printed and the program exits.\r\n- 10 InpMtx : DRAFT August 3, 2025\r\n+ 10 InpMtx : DRAFT July 1, 2024\r\n 4. void InpMtx_permute ( InpMtx *inpmtx, int rowOldToNew[], int colOldToNew[] ) ;\r\n This method permutes the rows and or columns of the matrix. If rowOldToNew and colOldToNew are\r\n both NULL, or if there are no entries in the matrix, the method returns. Note, either rowOldToNew or\r\n colOldToNew can be NULL. If coordType == INPMTX BY CHEVRONS, then the coordinates are changed\r\n to row coordinates. The coordinates are then mapped to their new values. The storageMode is set to\r\n 1, (raw triples).\r\n Error checking: If inpmtx is NULL, an error message is printed and the program exits.\r\n@@ -395,15 +395,15 @@\n InpMtx nonsym mmm H() Y := Y +\u03b1A X nonsymmetric complex\r\n A, X and Y must all be real or all be complex. When A is real, then \u03b1 = alpha[0]. When A is complex,\r\n then \u03b1 = alpha[0] + i* alpha[1]. The values of \u03b1 must be loaded into an array of length 1 or 2.\r\n Error checking: If A, Y or X are NULL, or if coordType is not INPMTX BY ROWS, INPMTX BY COLUMNS or\r\n INPMTX BY CHEVRONS,orifstorageModeisnotoneofINPMTX RAW DATA,INPMTX SORTEDorINPMTX BY VECTORS,\r\n or if inputModeis not SPOOLES REAL or SPOOLES COMPLEX,an error message is printed and the program\r\n exits.\r\n- InpMtx : DRAFT August 3, 2025 11\r\n+ InpMtx : DRAFT July 1, 2024 11\r\n 2. void InpMtx_nonsym_mmmVector ( InpMtx *A, DenseMtx *Y, double alpha[], DenseMtx *X ) ;\r\n void InpMtx_sym_mmmVector ( InpMtx *A, DenseMtx *Y, double alpha[], DenseMtx *X ) ;\r\n void InpMtx_herm_mmmVector ( InpMtx *A, DenseMtx *Y, double alpha[], DenseMtx *X ) ;\r\n void InpMtx_nonsym_mmmVector_T ( InpMtx *A, DenseMtx *Y, double alpha[], DenseMtx *X ) ;\r\n void InpMtx_nonsym_mmmVector_H ( InpMtx *A, DenseMtx *Y, double alpha[], DenseMtx *X ) ;\r\n These \ufb01ve methods perform the following computations.\r\n InpMtx nonsym mmm() y := y +\u03b1Ax nonsymmetric real or complex\r\n@@ -443,15 +443,15 @@\n -1 A is NULL -9 alpha is NULL\r\n -2 type of A is invalid -10 X is NULL\r\n -3 indices of entries of A are NULL -11 type of X is invalid\r\n -4 beta is NULL -12 bad dimensions and strides for X\r\n -5 Y is NULL -13 entries of X are NULL\r\n -6 type of Y is invalid -14 types of A, X and Y are not identical\r\n -7 bad dimensions and strides for Y -15 number of columns in X and Y are not equal\r\n- 12 InpMtx : DRAFT August 3, 2025\r\n+ 12 InpMtx : DRAFT July 1, 2024\r\n 4. int InpMtx_nonsym_gmvm ( InpMtx *A, double beta[], int ny, double y[],\r\n double alpha[], int nx, double x[] ) ;\r\n int InpMtx_sym_gmvm ( InpMtx *A, double beta[], int ny, double y[],\r\n double alpha[], int nx, double x[] ) ;\r\n int InpMtx_herm_gmvm ( InpMtx *A, double beta[], int ny, double y[],\r\n double alpha[], int nx, double x[] ) ;\r\n int InpMtx_nonsym_gmvm_T ( InpMtx *A, double beta[], int ny, double y[],\r\n@@ -492,15 +492,15 @@\n Error checking: If inpmtxAisNULL,orifthecoordinatetypeisnotINPMTX BY ROWSorINPMTX BY COLUMNS,\r\n or if the storage mode is not INPMTX BY VECTORS, an error message is printed and the program exits.\r\n 3. IVL * InpMtx_adjForATA ( InpMtx *inpmtxA ) ;\r\n T\r\n This method creates and returns an IVL object that holds the full adjacency structure of A A, where\r\n inpmtxA contains the entries in A.\r\n Error checking: If inpmtxA is NULL, an error message is printed and the program exits.\r\n- InpMtx : DRAFT August 3, 2025 13\r\n+ InpMtx : DRAFT July 1, 2024 13\r\n 1.2.8 Submatrix extraction method\r\n 1. int InpMtx_initFromSubmatrix ( InpMtx *B, InpMtx *A, IV *BrowsIV,\r\n IV *BcolsIV, int symmetryflag, int msglvl, FILE *msgFile ) ;\r\n This method \ufb01lls B with the submatrix formed from the rows and columns of A found in BrowsIV and\r\n BcolsIV. The row and column indices in B are local with respect to BrowsIV and BcolsIV.\r\n Whensymmetryflagis SPOOLES SYMMETRICor SPOOLES HERMITIAN, then we assume that when i 6= j,\r\n A orA isstored, but not both. (A could be stored by rows of its upper triangle, or by columns of\r\n@@ -538,15 +538,15 @@\n void InpMtx_mapToUpperTriangleH ( InpMtx *inpmtx ) ;\r\n If the InpMtxobject holds only the loweror upper triangle of a matrix (as when the matrix is symmetric\r\n or Hermitian), and is then permuted, it is not likely that the permuted object will only have entries in\r\n the lower or upper triangle. The \ufb01rst method moves a for i < j to a . The second method moves\r\n i,j j,i\r\n a for i > j to a , (If the matrix is Hermitian, the sign of the imaginary part of an entry is dealt with\r\n i,j j,i\r\n- 14 InpMtx : DRAFT August 3, 2025\r\n+ 14 InpMtx : DRAFT July 1, 2024\r\n in the correct fashion.) In other words, using these methods will restore the lower or upper triangular\r\n structure after a permutation.\r\n Error checking: If inpmtx is NULL, or if coordType is invalid, an error message is printed and the\r\n program exits.\r\n 5. void InpMtx_log10profile ( InpMtx *inpmtx, int npts, DV *xDV, DV *yDV,\r\n double tausmall, double taubig,\r\n int *pnzero, int *pnsmall, int *pnbig ) ;\r\n@@ -582,15 +582,15 @@\n returned. If nitem is not positive, -9 is returned. Otherwise, 1 is returned.\r\n Return codes:\r\n 1 normal return -5 nrow or ncol negative\r\n -1 inpmtx is NULL -6 symflag is invalid\r\n -2 inputMode invalid -7 (symflag,inputMode)invalid\r\n -3 coordType invalid -8 (symflag,nrow,ncol)invalid\r\n -4 storageMode invalid -9 nitem negative\r\n- InpMtx : DRAFT August 3, 2025 15\r\n+ InpMtx : DRAFT July 1, 2024 15\r\n 1.2.10 IO methods\r\n There are the usual eight IO routines. The \ufb01le structure of a InpMtx object is simple: The \ufb01rst en-\r\n tries in the \ufb01le are coordType, storageMode, inputMode, nent and nvector. If nent > 0, then the\r\n ivec1IV and ivec2IV vectors follow, If nent > 0 and inputMode = SPOOLES REAL or SPOOLES COMPLEX,\r\n the dvecDVvectorfollows. If storageMode = INPMTX BY VECTORSand nvector > 0, the vecidsIV,sizesIV\r\n and offsetsIV vectors follow.\r\n 1. int InpMtx_readFromFile ( InpMtx *inpmtx, char *fn ) ;\r\n@@ -624,15 +624,15 @@\n is returned. If an IO error is encountered from fwrite, zero is returned.\r\n Error checking: If inpmtx or fp is NULL, an error message is printed and the method returns zero.\r\n 7. int InpMtx_writeForHumanEye ( InpMtx *inpmtx, FILE *fp ) ;\r\n Thismethodwritestheobjecttoa\ufb01lesuitableforreadingbyahuman. ThemethodInpMtx writeStats()\r\n is called to write out the header and statistics. The data is written out in the appropriate way, e.g., if\r\n the storage mode is by triples, triples are written out. The value 1 is returned.\r\n Error checking: If inpmtx or fp are NULL, an error message is printed and zero is returned.\r\n- 16 InpMtx : DRAFT August 3, 2025\r\n+ 16 InpMtx : DRAFT July 1, 2024\r\n 8. int InpMtx_writeStats ( InpMtx *inpmtx, FILE *fp ) ;\r\n This method writes the statistics about the object to a \ufb01le. human. The value 1 is returned.\r\n Error checking: If inpmtx or fp are NULL, an error message is printed and zero is returned.\r\n 9. void InpMtx_writeForMatlab ( InpMtx *mtx, char *mtxname, FILE *fp ) ;\r\n This method writes out a InpMtx object to a \ufb01le in a Matlab format. A sample line is\r\n a(10,5) = -1.550328201511e-01 + 1.848033378871e+00*i ;\r\n for complex matrices, or\r\n@@ -663,15 +663,15 @@\n to write the object to a formatted \ufb01le (if outFile is of the form *.inpmtxf), or a binary \ufb01le (if\r\n outFile is of the form *.inpmtxb).\r\n 2. testFullAdj msglvl msgFile nvtx nent seed\r\n This driver program tests the InpMtx fullAdjacency() method. If \ufb01rst generates a InpMtx object\r\n \ufb01lled with random entries of a matrix A and then constructs an IVL object that contains the full\r\n adjacency structure of A +AT, diagonal edges included.\r\n 1http://math.nist.gov/mcsd/Staff/KRemington/harwell io/harwell io.html\r\n- InpMtx : DRAFT August 3, 2025 17\r\n+ InpMtx : DRAFT July 1, 2024 17\r\n \u2022 Themsglvlparameterdeterminestheamountofoutput\u2014takingmsglvl >= 3meanstheInpMtx\r\n object is written to the message \ufb01le.\r\n \u2022 The msgFile parameter determines the message \ufb01le \u2014 if msgFile is stdout, then the message\r\n \ufb01le is stdout, otherwise a \ufb01le is opened with append status to receive any output data.\r\n \u2022 The nvtx parameter is the number of rows and columns in A.\r\n \u2022 The nent parameter is an upper bound on the number of entries in A. (Since the locations of the\r\n entries are generated via random numbers, there may be duplicate entries.)\r\n@@ -707,15 +707,15 @@\n \u2022 The outFile parameter is the output \ufb01le for the InpMtx object. If outFile is none then the\r\n InpMtx object is not written to a \ufb01le. Otherwise, the InpMtx writeToFile() method is called\r\n to write the object to a formatted \ufb01le (if outFile is of the form *.inpmtxf), or a binary \ufb01le (if\r\n outFile is of the form *.inpmtxb).\r\n 5. createGraphForATA msglvl msgFile inFile outFile\r\n This driver program reads in InpMtx object from the \ufb01le inFile that holds a matrix A. It then creates\r\n a Graph object for B = ATA and writes it to the \ufb01le outFile.\r\n- 18 InpMtx : DRAFT August 3, 2025\r\n+ 18 InpMtx : DRAFT July 1, 2024\r\n \u2022 Themsglvlparameterdeterminestheamountofoutput\u2014takingmsglvl >= 3meanstheInpMtx\r\n object is written to the message \ufb01le.\r\n \u2022 The msgFile parameter determines the message \ufb01le \u2014 if msgFile is stdout, then the message\r\n \ufb01le is stdout, otherwise a \ufb01le is opened with append status to receive any output data.\r\n \u2022 The inFile parameter is the input \ufb01le for the InpMtx object. It must be of the form *.inpmtxf\r\n or *.inpmtxb. The InpMtx object is read from the \ufb01le via the InpMtx readFromFile() method.\r\n \u2022 The outFile parameter is the output \ufb01le for the InpMtx object. If outFile is none then the\r\n@@ -752,15 +752,15 @@\n binary \ufb01le (if outGraphFile is of the form *.graphb).\r\n \u2022 The flag parameter is used to specify whether the o\ufb00sets and indices are 0-indexed (as in C) or\r\n 1-indexed (as in Fortran). If they are 1-indexed, the o\ufb00sets and indices are decremented prior to\r\n loading into the InpMtx object.\r\n 7. weightedAdjToGraph msglvl msgFile inAdjacencyFile outGraphFile flag\r\n This driver program was used to generate a type 1 Graph object (weighted vertices, unit weight edges)\r\n from a \ufb01le that contained the adjacency structure of a matrix in the following form.\r\n- InpMtx : DRAFT August 3, 2025 19\r\n+ InpMtx : DRAFT July 1, 2024 19\r\n nvtx nadj\r\n vwghts[nvtx]\r\n offsets[nvtx+1]\r\n indices[nadj]\r\n There are nvtx vertices in the graph and the adjacency vector has nadj entries. It was not known\r\n whether the adjacency structure contained (v,v) entries or if it was only the upper or lower triangle.\r\n Our Graph object is symmetric with loops, i.e., (u,v) is present if and only if (v,u) is present, and\r\n@@ -798,15 +798,15 @@\n \u2022 The msgFile parameter determines the message \ufb01le \u2014 if msgFile is stdout, then the message\r\n \ufb01le is stdout, otherwise a \ufb01le is opened with append status to receive any message data.\r\n \u2022 The EGraphFile is the \ufb01le that holds the EGraph object \u2014 must be of the form *.egraphf or\r\n *.egraphb.\r\n \u2022 The CoordsFile is the \ufb01le that holds the Coords object \u2014 must be of the form *.coordsf or\r\n *.coordsb.\r\n \u2022 The coordType determines the coordinate type for the InpMtx object.\r\n- 20 InpMtx : DRAFT August 3, 2025\r\n+ 20 InpMtx : DRAFT July 1, 2024\r\n \u2013 1 \u2014 storage of entries by rows\r\n \u2013 2 \u2014 storage of entries by columns\r\n \u2013 3 \u2014 storage of entries by chevrons\r\n \u2022 The seed parameter is used as a random number seed to determine the row and column permu-\r\n tations for the matrix-vector multiply.\r\n \u2022 The outInpMtxFileparameteris the output \ufb01le for the InpMtx object. If outInpMtxFileis none\r\n then the InpMtx object is not written to a \ufb01le. Otherwise, the InpMtx writeToFile() method is\r\n@@ -839,15 +839,15 @@\n pro\ufb01le plot. The message \ufb01le will contain line of the form.\r\n data = [ ...\r\n x1 y1\r\n ...\r\n xnpts ynpts ] ;\r\n which can be used to generate the following matlab plot. An example is given below for the bcsstk23\r\n matrix, where npts = 200, tausmall = 1.e-10 and taubig = 1.e100.\r\n- InpMtx : DRAFT August 3, 2025 21\r\n+ InpMtx : DRAFT July 1, 2024 21\r\n BCSSTK23: profile of magnitudes of matrix entries\r\n 1600\r\n 1400\r\n 1200\r\n 1000\r\n 800\r\n # of entries\r\n@@ -883,15 +883,15 @@\n \u2022 n1 is the number of points in the \ufb01rst direction.\r\n \u2022 n2 is the number of points in the second direction.\r\n \u2022 n3 is the number of points in the third direction.\r\n \u2022 Theseedparameterisarandomnumberseedusedto\ufb01llthematrixentrieswithrandomnumbers.\r\n \u2022 The outFile parameter is the output \ufb01le for the InpMtx object that holds the matrix. It\r\n must be of the form *.inpmtxf or *.inpmtxb. The InpMtx object is written to the \ufb01le via\r\n the InpMtx writeToFile() method.\r\n- 22 InpMtx : DRAFT August 3, 2025\r\n+ 22 InpMtx : DRAFT July 1, 2024\r\n 12. testMMM msglvl msgFile dataType symflag coordType transpose\r\n nrow ncol nitem nrhs seed alphaReal alphaImag\r\n This driver program tests the matrix-matrix multiply methods. This driver program generates A, a\r\n nrow\u00d7ncol matrix using nitem input entries, X and Y, nrow\u00d7nrhs matrices, and all are \ufb01lled with\r\n T H\r\n random numbers. It then computes Y := Y + \u03b1AX, Y := Y + \u03b1A X or Y := Y + \u03b1A X. The\r\n program\u2019s output is a \ufb01le which when sent into Matlab, outputs the error in the computation.\r\n@@ -930,15 +930,15 @@\n T\r\n Y := \u03b2Y +\u03b1A X.\r\n \u2022 nrowA is the number of rows in A\r\n \u2022 ncolA is the number of columns in A\r\n \u2022 nitem is the number of matrix entries that are assembled into the matrix.\r\n \u2022 nrhs is the number of columns in X and Y.\r\n \u2022 Theseedparameterisarandomnumberseedusedto\ufb01llthematrixentrieswithrandomnumbers.\r\n- InpMtx : DRAFT August 3, 2025 23\r\n+ InpMtx : DRAFT July 1, 2024 23\r\n \u2022 alphaReal and alphaImag form the \u03b1 scalar in the multiply.\r\n \u2022 betaReal and betaImag form the \u03b2 scalar in the multiply.\r\n 14. testGMVM msglvl msgFile dataType symflag coordType transpose\r\n nrow ncol nitem seed alphaReal alphaImag betaReal betaImag\r\n Thisdriverprogramteststhegeneralizedmatrix-vectormultiplymethods. ItgeneratesA, anrow\u00d7ncol\r\n matrix using nitem input entries, x and y, and \ufb01lls the matrices with random numbers. It then\r\n T H\r\n@@ -1013,15 +1013,15 @@\n InpMtx inputRealTriples(), 9 InpMtx sortAndCompress(), 13\r\n InpMtx inputRow(), 8 InpMtx storageMode(), 5\r\n InpMtx inputTriples(), 9 InpMtx supportNonsym(), 9\r\n InpMtx ivec1(), 5 InpMtx supportNonsymH(), 9\r\n InpMtx ivec2(), 5 InpMtx supportNonsymT(), 9\r\n InpMtx log10profile(), 13 InpMtx supportSym(), 9\r\n 24\r\n- InpMtx : DRAFT August 3, 2025 25\r\n+ InpMtx : DRAFT July 1, 2024 25\r\n InpMtx supportSymH(), 9\r\n InpMtx sym gmmm(), 11\r\n InpMtx sym gmvm(), 11\r\n InpMtx sym mmm(), 10\r\n InpMtx vecids(), 6\r\n InpMtx vector(), 6\r\n InpMtx writeForHumanEye(), 15\r\n"}]}]}, {"source1": "./usr/share/doc/spooles-doc/LinSol.ps.gz", "source2": "./usr/share/doc/spooles-doc/LinSol.ps.gz", "unified_diff": null, "details": [{"source1": "LinSol.ps", "source2": "LinSol.ps", "unified_diff": "@@ -7,15 +7,15 @@\n %%BoundingBox: 0 0 612 792\n %%DocumentFonts: CMR17 CMBX12 CMR12 CMR8 CMR6 CMR9 CMBX10 CMR10 CMTT10\n %%DocumentPaperSizes: Letter\n %%EndComments\n %DVIPSWebPage: (www.radicaleye.com)\n %DVIPSCommandLine: dvips main -o LinSol.ps\n %DVIPSParameters: dpi=600\n-%DVIPSSource: TeX output 2025.08.03:1317\n+%DVIPSSource: TeX output 2024.07.01:0700\n %%BeginProcSet: tex.pro 0 0\n %!\n /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S\n N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72\n mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0\n 0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{\n landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize\n@@ -3429,21 +3429,22 @@\n /UnderlinePosition -100 def\n /UnderlineThickness 50 def\n end readonly def\n /Encoding 256 array\n 0 1 255 {1 index exch /.notdef put} for\n dup 44 /comma put\n dup 48 /zero put\n+dup 49 /one put\n dup 50 /two put\n-dup 51 /three put\n-dup 53 /five put\n+dup 52 /four put\n dup 65 /A put\n dup 66 /B put\n dup 67 /C put\n dup 71 /G put\n+dup 74 /J put\n dup 80 /P put\n dup 82 /R put\n dup 83 /S put\n dup 97 /a put\n dup 99 /c put\n dup 100 /d put\n dup 101 /e put\n@@ -3456,14 +3457,15 @@\n dup 111 /o put\n dup 112 /p put\n dup 114 /r put\n dup 115 /s put\n dup 116 /t put\n dup 117 /u put\n dup 118 /v put\n+dup 121 /y put\n dup 122 /z put\n readonly def\n currentdict end\n currentfile eexec\n D9D66F633B846AB284BCF8B0411B772DE5CE3DD325E55798292D7BD972BD75FA\n 0E079529AF9C82DF72F64195C9C210DCE34528F540DA1FFD7BEBB9B40787BA93\n 51BBFB7CFC5F9152D1E5BB0AD8D016C6CFA4EB41B3C51D091C2D5440E67CFD71\n@@ -3638,179 +3640,188 @@\n 82032FBD2FCB6E403D34B85ED4053A8CB619BDD4DE001F4C3007B1F317579651\n E6D6662189CC2D95AB85D7473F65C5D7B4AC63B0FE928F3400035D5A9D443D0D\n F3532B99F3AC26CB25EA3CD64C341159061E02EFBC7C033C05CD919BBD827A6A\n BFCF3BD739E32E7FE909AEE068D50FAC33605FFF98C7D0115FB860178FD03DB9\n 7985B78E0AC21F2EA065FA841F5928FB85163B2E2D8F850DC7EE313912C45C28\n 2783F6762C67882EFEDDC7E7567F91C16B16FD8D5A1ABF35B5586307701B91AD\n 54984598F2AD46FEE3D68A2731BEAA754C8E730FE0E84952EF77930E4118F8D7\n-2F3AD7547ECD7EB31108291A22BBC656F4D968DF891E4F87EF8FFE711A48FFD9\n-94762E9918C42251D75772AC97BC15A4FF63D911D96AADA1CFAACE8D7001935C\n-9D7A0E6B35E1522780C2629D74057738FCE1BD41CD81D97BFD99D19FE03B2EFF\n-7B80B18DA5538D06A810DD315F31DE1331EDB82DAC760E6D8A855FCA3C8DD9E3\n-61164D1386FCA2A0E7735AD69D7D9C6335F02064419B2296ADA17DC51A1E2195\n-45FA3A158E075213ACD6607B07385F0D9F5F3C5C385624B43B10016D497FA569\n-103C0A7CC701BF1558C587B15A8094D8E4524D74DC263BE9C5D1C96970A7324F\n-5514ED0576D79D5A7C8CC2859C832B0C5869166DA1DB8CAC589AC9EB48379CBB\n-33B840FDDADDDA5FFFC54678E901A33854A703C01C16945C99655BF1BEA74EDA\n-723B5FC176D9693ACA831C563CDB35C96C69575A510E33D5BB62701CC6CF52B6\n-0DC2562927C51CEE40731A968C796BBD399BFD4CF070FCA8E806F693E20AF9BF\n-64FECE20D4E0C6CA2A65F219F242989DAF5EF91F938A2DEEA46C955E8CA1B9C5\n-8009E9BD1BFF6AF50E0EA9BAA0869F4377633A88B45E0213ECC54844CCEA9D84\n-1F6977C49C4A8B7534547FD77218695D18B20D2DE3AB9E395FF3CFAF16B68567\n-1CDD1815897177510547D05A6DBECB4051985D71CBA7D7486719AC8D529BF3F2\n-FF71FD16C7E621C18A643CFA82B2A462D5EA0FDD2B5149ED8D1EEAD8B8A74AE0\n-6F3138DE44A1833680CEEBECC159CAC0997898A81FBACBAD4B7B797933DBEF5C\n-416468DA708793552317CF129C48A6FA0CBE0DFD2780E76E6749BBF857A92ADB\n-685FDBE24718C25E87A8E0EACDC1BDA6D1F69B21CCFF2B74DD42A929D88B944A\n-12BF9C5E41810E3AD68857283BB09C6CFE3B11BD05B6BB11F772DDDCE5FFD3A9\n-0132A1884B102D6352248A628F03C07BCA5ACF67F6A51E38D992F1779CE5766C\n-1F618D0523C575E82A0F50574B8E7F5F8733F6E3CF19F6BF337263C374D1EADA\n-EBFAD895A23D1C77F3812F1DCA594066DBF4979CEE75F0CF9A6B22284D67BD8D\n-B39CA86EB5379788382E6221B62365B0A892F17A0C676ABEA4933D2776429E00\n-1C0E0484BE14D2D86756C35B0C27C25C98519ADD10483794A365F84E7AA3A3B7\n-C9894D826325EB45AF6F0EF531C5641090ECCF938B4A87EAEA9A3ABA4F308A94\n-A4F90125CDD17AD643561AFD837F170B66E7CCD576170E95F2F67A88B9F008D9\n-A85225B04CCD9C0C1EFD3262B711994EE7202B2400E962570CC99BE6C223D5BC\n-84ECAE286931AFD5E6D9333D03FB66591B2425D031419BCF0212A8045E32C60B\n-110A9F5A65CDB4B7123111E73B10E0EEE7E6A88484B2C9FC43123F4525AB4E7B\n-6271723030525F487F8EA072AF3578CFE5E2A8682EE415C218E161333EF17941\n-D90EED41CB16D913332A7CC76AEF0520ADC7751427FE5AFACA68CCA927142A05\n-2B49C71055D5002BFC0AA91E44555FE5267D65023585CD68E8DE71FDF80DB6FC\n-7EDF30B1DC7C42B53B44D1DBC3F2B22E3CD493C928D686371A64394A6E0FA482\n-E546CE627809FB8B2F24322A0EA96053885A8B16ABB8A811F06E790648704DE2\n-A7EA1BE90DD86EDE76C9419BA1D340827CFD8A9952CF9104BB614D38CB517D80\n-5E094D5E2182863DAC6BB3DA75D834D21A517982242A87879A03BFCFAE1644A2\n-E678F9AD1F4C368DE18CE224E8AB6B64F3477059707BD68FB95CC9797F5CD1C5\n-554E36A34C7B6CA89942A5E573EAEF9CCA187F2E22A6A55F5B8BA4A2F4EAB6C4\n-248C9EA01B26F54552BD8C5936B1F73834E474DE20DF8045CFB1C6532152E454\n-FD1A08F6683DF945CD16F9547E8683704ABA94558CFB25700B3957D1920CAA74\n-3CA145CA9D33603B96D5DB6EE1AAA18F12A9C2126F951C4C5804D96CD467843A\n-B51E53D0F8EE38EC0336854A4C0D67A7B1B47F45A9EA2D5B47EADAA84CCC3B96\n-476338AB99FA963B600CDD53397B02197B6F629E553517DE1BDBBA20848CAB37\n-308B963E6F6828682012FAEACE5BDE430F3C9E9236C55A4BC2963F63D9777AA7\n-2B0B2E4093518614C75CA146C86E8DC2AAC4C853D9FBCD2A5F05A8E042C9976E\n-8882DB05480D763720F9C7593CC97ECB1D36B19563C5049AA8626F310F27169E\n-ED01181F810CDF6B70A7EE2E0D591E9D47AC3D978338266CB05801434ABEF153\n-FB5CE1DE8A91C4FD883E294EBD3E8690871008BD1055A8656A2779E0DEFCF9AD\n-D9E92509C6FC76BD6E4F9AE7005E0E8DE20EAF2ECE64BFE25054AB1123D57EC3\n-3F36A5E3BE297E43FE0A94D0E7BD00E5B36FD80311C895A2031D7CCDCFCF7CAD\n-90A9000ADB26473A4D02C7A600029CAF8793CE11BDD838E626616B6ECC7F9880\n-D29B3E7CF215B1125DEC354E78EBF46210C423D772A484BFFD4B3826411455E2\n-37075609FEA84F4FF82B6AACB014DED3EAB3BA4BFBE72CB0D67EA5248FCBEDFF\n-CC37F4E82DB8BC9F3C5006B37459791904A085643EFFCAC9F6B248EFAD22BB4C\n-476D0CE50B8662131619AD3A45F6089AFC5CF96C81EB6013D60034D1FB956C50\n-687C015A7E068948612FC0AF45B9E4DD15DCBB75ABA5C43476629F48D0233B5E\n-969036E8F1CEFC867DE082AB318DE6ED19F05070E3F9A28F7F5814E7ADD9280C\n-ABCF5444B2692CD42645704D5881301D7DDCEDB7D5E4FD9B41348DBB2BC0853D\n-0B9881FAF356331725CFB95BAA7E48E8FC6CC1153EE34A036C42B65FFEFFFAB3\n-9B1E360DC8713988A85808FB3E29DC2453344E62978065C62B9AB3BE4F9CEC87\n-4A7E816B239543747BBE5A79E14210629606623C8B2B9D14B4A899BA9539E7B0\n-1E8D2B2EF482CA945B9DD2616739AA198A766ECFD6F3D5CFEA808111B189FEFE\n-50FDC368B7FE45DC82AED9B40F1A59C3E9AC5BF0F6B25AF98EF04FD9A4EC88AA\n-51D9FB2178DDCF3B5F09C2FACF1129CC19F9FC7E5829323458C4D574F02D97C8\n-E44B6A2F9FAAD968F62A5F6945C3808B5CBB933E19A12B8CD535D87ED43389B8\n-FB8A40D602DF2094DFF6141BDBB6E5DFAECB9BC14637B77E8A83678CE0BB0670\n-0650F5DE688238837E3613941985B6ADBFC0313BC258EEB65412EAAA3A8CAFC8\n-3FBF5C5EFE7A181A49884DBFD4C528B14D01C5936D33158BFF94A9BC36D66330\n-D0217CC5AE8554399CD1F359044C9AE711CAB6E67178D3DE3B35D15B96AF8F22\n-5CAA7BAF381DBAF9241BEB35026225CEEEED76D6190C2F0F515E1F6882CE2DD6\n-2994C2FA11D38BF1E3CDA72598B10230ED0B94E44C237680D10A4B8443EC56BF\n-979B4ACB6E0CBEECC5E7FF2CF4D112042893F5AD5F319019C169C3C1076311C4\n-F753B23C7C0D1023487348926D6E5A007D5D22BFEF1894727A9C6B063586D578\n-74C0246CD6627472F8E109F1361BC0F645A8AB624875731843B7C6A6C03C53CF\n-7863567D397CAD5127A71D62803D6D751150D6F0452224C293F9FADBAE549A9D\n-225505D675F142CB1F93CE882807237F1D31B21259DFE71855244AC0361A2B92\n-7E3B931643BA89FD45D0635E999D1FACE4E236D64B3F0EB17D7697D8169FFE90\n-03CCD901DC25341C086593D4D14FC214428A3A08756DDD969CAA94FDB006F9D3\n-1A2DC3C1CFB4BFED962D8BDD5F910038B6FE2C5050CAF15EE48060DB989AF3F5\n-386A8A2F0A0E8BBD423A5924B7F657ED5BD1B814C5004E79399737106F4E5ACE\n-CB1ED85E11124ADEDD81C46BE3A99A413FE154D537ED4BC4ABD41C7BFC2EC549\n-851431CDA27B2B44184E3A5563674CC0CF701EC643ABF91C2CA1A0D9BAF63986\n-10F77033FDCD66A95DEF8335FD1DC0DB99C39BCFFE00B92BE22E912DEE4A15C4\n-60772E550B943725A43F900DEB0B771FD35E57D55AE8CAA031125B6114FAC31A\n-057A66C86E70DF56C6DEA97266164F64BC97E2ABD04CDDB5EEF5A1E65F7586BB\n-F4505785B595CBAF7842B1B617A81F89303C36822EEE3209F78E814D0126D1EC\n-79CFE9D3D6BA4E311B472735CE21CD1C941662AF9566F207E6F3C53A42C9B144\n-D12C6551274388B0110994E23DDB0A7632236DDB0942D1DC868D0FC3AE2D49CA\n-2378060DEE0F05FD7AD56CCCE74B384179821F43AF6B51E1F2EFC3D87F3B007F\n-B11F324C37E7996E69D16C42E8A1FE0A4A7704A49698CA3CD97C3DB38A8CE905\n-2B64BB10A87555DD3D9A277403642C96513827DA276AAB615485FACD03CA4BA7\n-F934771B4C2F6EE64E984F47991F9D08D947D5D3D51C6F17C829F7CD8736A93F\n-381DF7683AF2B112221C885BD3A5E04ABC55BA750F16AD6A2C861C4E6D6FFE6B\n-E239104A9A3AD86E76D5BCD87CD8203A901B80CC5144CC1859F97C0AE05DA776\n-60B4072E8F080191C1E1103E9A8659A0C643247C06C6306CCB976613FED82189\n-FA05B6B78188C124CE7377A3A4CF41133C4D920D570E5319C3B6A58CEC887620\n-0A5059534B677D987CED4C790F75847C4390E7599923101EA25A4F36F48FD9E6\n-F8E74187F44AC49EED4E184A3172CEF29FD55CB24E1C55FC1876B2C8BFE8705D\n-8BA0364C9820EFBFDDD9E17DD2990806E017D1C7B241E161CCBC5EB26BA9B2EA\n-EE5C3C4206E430CE7543D57A79B3E49411D39A3A869930B5FCE5D04B323D4CB3\n-97A76F5C11ADCE2B3F3F114FA8F83DC5B100D54582A39BB0423BDCDF7F8ED0D0\n-19294F6DA5E1F8893384DF0957BCFCAA4CFE0E6ACF3DD244C32A9EE6A64268AC\n-9E5FFA9C0BEF8A495F323FD7F420F3E3F52894BC8027C69A46F3CEE7EDC7D1D9\n-2C380C2CE227DF74852AD1695D59E4A1F929F4AA0EAA17BCE5CEA923E055B9D6\n-2FDD54BC56E0CAC5988A7F5FF4FA16AC135F96D62601C1C528D7762B78D37A2A\n-C2DC3AEF2C66D59789D22A45D0BF5100557192734AC7EF1D47207A4FC40BC0F9\n-FD5B6C7474C1044D01C6C4EE6E9636C4196CC9ADDD57381A6926402B3899E50C\n-0B81B6C8D71F5B35B71712256F207503A653A8ADA873E388EBDB12A06C66E7E1\n-B43C65C2CAF02A4133CF7C2ABF4F7177E02A43FDBC78E462D9C52550FF278E39\n-8C2A63685CB7D03AD7406ADAEEA627E42E045426D39008F109DD80DD2BDC6B9A\n-C042E499239B75CDAB4BF7EE5CDCD312A5BD5E5375B6F8663A04AED1A65CAE2E\n-1C4BD07B2CB1FDFADE5EAB632B87F7D5F5E7E0375ECC2B253CE99926212BF384\n-8281B37E7462FA0EB1EB2BC29FDB4C2FCE328B1B4F947DD84F8215E0E968F153\n-DC6179C7580BD994565C923C1B65D03EFC558138040E0E75777A7655A6CF878A\n-D9E3C45E27516C8043E1A8F80E7A62A32273D70AF1985362BBAFF8C09C864A9E\n-FA83F4562819D0548833F5F0D2FD22CBD6F04B5F308313D2F6950B67F6FE2A67\n-86723AD54A851A4DE6754336416227A62E64D92DA9F6D10DAF16AD2E756A8C80\n-4D6C35DFFE970B8DA8B584DE0E5AF824797F96B4CB270E5D5E6F8009A533A090\n-D44EBD064B9412C7F9D23A571D9E43000ABA8B9397494826B459FB7950897D7F\n-F2D8BB757AC5B2F1E5C2AA5D6F71F4DD11481B713D0336F594BE76EE76BD8C03\n-D8D9DC545F670204AFB569C60BE60EA24EEDDFDE97F56892D030D53492C0B41E\n-3D9F5ED37950663B55F785AC58D6D419E8F4121C571FF2C68B6463C427AF72A2\n-9DF66F364174DBBD8622267FC1DB4312B5FD43A06B43CF901CBB1025D6CCEF76\n-D26CDC5AE2850EF1AC2BAEA14AD18EB8A39493CE4D8A475EA7530E4FA3160DC1\n-DB4B77724198D9FED481830B494C35C81FC3D95810C753DF901BF9A71FBFA040\n-DDF6A96452F923DB770D1776349F17D1FED3ABA10BD822F7B88F956C3E1414BD\n-7D6A8A92D0F1365EC0B6CEB45692D86BFCC7CEB405A9DD007C4B37AE381DF783\n-F74A983777C728F23CDA310161C7DFE4D88B3828CC2582519F348BD6DFAE2F49\n-5155A886188C4CBDBA561FA25EE4D3B183D4D3935FA3E35B126D7F0BCA2CB8B8\n-A8D3807A9EEA7940148268272FBF6BF913216AE798194C8EFE78DABF0D93D7BA\n-9A0B9533748DD882D172FD0D10BAFFDF5107E65891D9B58DC03937889D2EFB32\n-AD32775CA68AFE880BA1CAE1D8C3DC0AAA0F701B88253A7F9F3550FCDFD7B833\n-162A02C2339D3850929C69F8B28A0BA2B979BCC58121710D074D1859B304F47A\n-4BF5FBFA40FFA3C2CE3268A567C4A1BCCD5C87569A327F6747D0007A94017F70\n-5FB75549A00E6C797963E79050D298D34E6FD38BA1F81AEA167762AB9C37E200\n-275EBC70F66284DF3906D64CEE71B06354C2430495535D9995C5DA43F0DD6B00\n-5A83FC8BC0E0336539128214DBE8B1D82D9661DEC1586745A448D28B2984F28E\n-F63EA601269DD64CA845529590C8A0DC29B18A15ED79DCB5DB3CFE211AD49795\n-18426B70D0416144417F4B8E1629DFA901540377F1895D55066C183054E458C3\n-1C5D7B01FB2D4E98EE02E08B9528B12954989454EB445571257A080D56B16FBD\n-165673B2B55CACD96BA5B94C6AB8EB1E6474C00BFEDAED0F61820B0DFAE23264\n-871368E6A358ACAA537AAB82788CA2781957E9E808A165AE3B0393BE469F77E5\n-70F21DD82947F4E2D1B2B876D81E48C51B5B1518A0B4644AE1E3FCDF8C4B5076\n-DD3C05B91DCA22D57E3A0198251EE9E44D717C3D475C2E50636A7697874B0748\n-C625D809EA15D3F85B335E3A69EA4838EB021CF67A075FCEF79BEEE0CAF3C1BD\n-D39D8A352C49D724989020726C3515FBDB7EE4725C4B6098CA97E3CE3FCC20E2\n-6D17793F476A9EBC1FFCBBF5C7588427EA4148A0AC6422A7C08F54F8B6A97724\n-332F6B5E428F5501EEF1B316BD4291750B8292FA4836C0D29DFACBF4CE5118A5\n-8803170DB43BA1ACC06595C2337C57A989F77AF0ACB5AF2DEF6519ABF8DC048D\n-4F54B753BCDF394E908E3C1AF4C67F89AF47213933C5B84A06590FECE3C24DEF\n-C1EF2486EDC97A65DDEEF888CE47DDC9925620C0ECBDC9A9C16304DC552AEB84\n-D95481C118085135EA3B500C6536C781B1A0CBB78C129D51144949CD82E68912\n-24A561DD565437072FACE46F32435FB43BD72321B96EE354443E199F537464AD\n-FACFD1B7376B1D8376C610922ABC84F10A7A45D267C8AA8D244293F584C775ED\n-45EE0AB3219590F404286335A76BD76A6A8DEBB95570F80D92B7ECAB74773884\n-EF40440464B7DFEF94B9F65B654E73BC4F70674F8C45309917C8F9BB006769FA\n-CD4AEAC5D559F6D613C65C69ABAC03D8DBC7438437595C2B191A1C8BCB8F2A3F\n-798C788CD94F171D672445FBB2BC0D0F21E1815A65AA0BAE80CA1BC565BB7FB9\n-AB9D771D954F61B3289BC269D69FB8C2E454CD0A63FBC9E504CD0E8C578A8738\n-70CBB02455370B4B4584C38C3E39665DA0D41A9236A18E1F7BFE361935208314\n-941AFCFB5947EA8BECCBB66171CBCB4A2D8251E553C2C49A65294EFFFB06A356\n-5E54EB2D02E4F6E2EB2A972C1B7411F9A5BFC74BE61B9CA84FD9E3B63788DE98\n-9B3FDADF763A6A14F24CA9826EB6BF69D1F06FA7C24D0227CC0BA1F3C9655D91\n-72DD43E93BA7D801A00D39626B9577934D9712529DF2C4CFA117C35DA693DA\n+2F3AD7547C7083385FD3871F7D9D6AB0715C16A94E4064BAD18DE77DC47979ED\n+9ACBD9A9F110703EE62CB30935404C97B62408A2F6B8250BFC3E5BEF8D7B9424\n+447E2145DFB3AA7C4D6665A67B4B1D771BE08109076CE86E7C4FF00B11C3750D\n+FDAD6EC03035CAE67CFE15E076F3005E035FDD653336D840574B6B04525D3FA1\n+94630463A7A0A8200642283D1F10FA639022F74C4DDE6148069D909F3DA0A9D5\n+93462CF91CA2CAB590EAF2310184A7866D593E5CEEE3E18CD95BADEFC0132F8A\n+A65AD5D3DE74250539F5CE66ECDD43CC7BB7CA82394752376DEBC71F860BE388\n+EFA679BCE3CCACE2753F2D6E0E664F2EC078DCADC02A0358EB040A84E62C7334\n+4205A796FE3B45DA1473F334D7B1F23B9C9FEA91AD3805BF4499CDB6790D84ED\n+9BC544829DC4B1ABD23F75A3823CA2B822E174659432CA5E4CBA59E6C2B1B312\n+F675D5D68DAD6C1C9A9D92D41C28C8DB9532C89B689F6E1800FE946E4881A8A1\n+F3923680FC9E9F1B2E0B69A5D608CB47181110FFE733E55494200F328DE47AAC\n+09E16DB5B2136E07E7F80C4235848AE8C2AADA5E78120A759C28583A386032ED\n+AC2B00BC90D22FFDAFF70DD031C649C52F0BC1444DFDC712742F52F7E59EBC9B\n+BE5E7CB184EA233D08DDBCB12F26FB0CEFBCDAD03FE844DE2E81B2994A0E082F\n+B66F9485940B6610E19624F236A567E5E4E7B6151592560305F5476DB1E8B9D9\n+0C73675FED457770AB0AF092D834764757403C4AD653AAAFBB9075C7C7A3A8D6\n+2D993EB4295772265D5388692E2280DD50595BDC1F2FC0D687D78B0E0DC83B0E\n+F0D98A3D077906829248F04E0CA4369D5CE37222CC4ACFD392A762669DCA948F\n+183413066E7A85137FC15A89173631BC6939D3A9F0BFF56CB8C6C0D44CC23F0B\n+816C1A9B48D9CB0418EF65FAD15150D0165A837505731EBFA220C90CD366C666\n+DABC13D4103EBBB6EA21BB2FF802B5209C8DCEA1027F07D91763458B1763ECB5\n+825713C297FF83BA4503B528309F593A63DA5A52A1BA99CC4C3DDC8F12D15FA6\n+7D9A95386E9B115F63C1609BF3061F0B02F03C0CD7781B4461A3836EE122721E\n+378E9817F5A5A8E863A323EE7B7D776BC78E58A07432300E8B1C2B3A49746071\n+43655F86D7AF6CC54552FCF562354949D43E2B67D3D4DEA02A7C80A30117812C\n+69731A5C52835AF9EC1673BD4D7F283E77B7F396F2998EBD6C097D7394F0D253\n+86B788690C6E8EFE2CA3C29013B4C1CB18832202B9BDD497302C9DDA5C080F5F\n+0B405108985E93FB662DE82FB0604BC18E40B53EA86FA49C7BEDD5429A8F3D3D\n+36340BF02F5F04252152C751CC337DB8308146274BE0C8A28EFE5795906916E8\n+CE5B6F2D95B7466D53F7020E3E8832BAA635ED3FDFADE2AD942D782FBCE91752\n+7E237FA0042A81DDD5102B9E70B8F2B39EE9860291B6ADE7E64CF0F4B773EC93\n+F703A3C1C07FD46AA329D1CA66C9E94C76453243A39B8FC7BAEE8FF4CF8D4FB7\n+824FBF8CA849B4B2128CF57FCFAA2F0616D60D60ED37893D3ED71D2FA6E72094\n+EB8C0EFA557BCAE4BF1D8954D0F7971AF4BE50508418EA997FD536EF1B0F54D6\n+C15A8B28BE162717CB62DFA6723463E675E2E6D1B2C16F0844DD2E9FEBC77806\n+769993EE501BD432C97496E5AED2AFFF3C961216F5792022333F1292C40A9A9C\n+5B45900573A75E1D33AF986C6B26A2B405FD2644831040B336E87C91C051E696\n+D3D84516515FC8170865A14A6C069363775DB24AAFC8A3304726F819A11E5A51\n+79BF24360D4D33255302227CE569E10AA354675E2578A9CD6E1C267AB7036B65\n+C564BC1168AB7792F9B3C2B21CA7B8798D3EADC49EE861FED86A69B48FE240D9\n+1161F973ED7592E10E1C0A0D5A8F21C6F0640A4AE37F310AA0D6FA094D858982\n+04699728D3C55AE5D6A0A6D4928E49F016081541C2559A923A25865D1341CE8C\n+45AF66E05E940CEE3B19797ADF2E53276D9673393D09CD61F3CD9E556E04A931\n+47C88EDEA8D2B5FE22F1A8C06C772C08C7B7E203E99881865CB4797AE36D5BB3\n+6B6B09AB981ACB1B3CFA58CDDB1C387CA3161C4805B9981A6667A14872404F21\n+FE84118B2E3A38C9A08A0BAE8904A55E52A547A4C881CC6AD21775B2341C8EDB\n+FBE65C3481DC4AA3C1CA0A9D97B369ACFDC18EAC42A1721A90514260CB6CB287\n+99084DF3F7D6561320F84DA46D7157ECC47B6DE7227B0E6F3E8F8A0EB6BDAFC8\n+5000C206EA20F39FDE083C0A6C8C992BA214802795C9AC60F2B9B75DBFB8CF8D\n+6353B05E69D2C331417D749E20A92B73541703949328E013DD317E43FF059F99\n+6B83FBD151ACA57376D83992C34B513A9004523C9FE48EF2C00F9D1F278E8803\n+09105243A71B2B55152B519D9723B57D368775295E4BB9E43F69A2871205472E\n+8292568CCCABFEC8541D329B3B17D99229AA194EDA7F99E8C955F3C84FF64A5A\n+5642F438A80BF39F64F580439F6679811E9D5D8596C6BAD85F96F8F8CA342296\n+5AF73BAA0EAEC8800FA1BE61E93A43ED1DD461B0C0147F61BCF9030AF9BB5B66\n+296971C5A53490D061C2FDBFDA958AA73BD13445925E93448645E00348FD61A2\n+5462F37A8D94706D591B38E84F5012499B630DFBFFCC1681030D246F47297B58\n+0C9B2180264FCB804C22DA39C7E14B273406EDCCF6BFD030DEA8C1073F1DBFC2\n+0067955E797F237005C0FF34AE9CBA358B5755571C9D104924CA6EB75874F661\n+2F6202870DC5E1B72356BF0B4C57D6519825E0AEFD29636C1C6B267843AAF089\n+F6F06B06F18DDFFC38D81C156EBED028FA66CEF3A698B36BECD872E830664AC6\n+5955A79297560B815CC18984E5121CAF9B1CC0F53DDA636E665B04009D1B724D\n+6E2A7C9FB8809650E6C02AF4A33BF1D3EDCCF9C5CBA7BBB0E189FB94EE7B1552\n+38DD8E5C7CEF59FB5B5ED0E7BE86A2435B9A74D652227EB88E2799D8799B6DA2\n+7FAE1D382FED587C6A7D52B7BE45058E52DAA80D2412238B27B201B8D23F0903\n+1AD6C55D9AD98B91EBC5D67EB7ED892829752DCFBDCA157197B0AC2CE6733F21\n+0D7534413325DDB1BD6A9FD4F467FF27E2ACA3B5A17BC570E7F1F13D86B86B57\n+0FB38D045554CEFB4FCB79FA71FFD6EAD77BE8A9C07526B5524186248D81DB4B\n+55F852ECC12C4C13019A78BAB9B66D910E1FC04BF0921CDDCF74F3D3A887DA8C\n+08D1A07C29CF7447832E9E4596236C61B9ED623BE676F38C353AE73F068FC05E\n+7FD236339FFB20A03AFCDBD24F62FEDCE93A173D5FBB6AC14F7C3CEFC90ACF54\n+AC4E816AAACCB452B0E5EE0E2EC3FAB22F0A6A1D42B07FCC0A94E92EA361B8A0\n+48D68D36767EE7B99B85CC3DC377B7EC69740A08971D0E96F0F55157A6436A75\n+A34A225A9B5311BAE977303F1AE793BFEDC831005753418B2516AE2EAF17A815\n+5E883F6F58216D59957F0538118EE9B64501547E731C3863422563628A28BB0E\n+B09D44589F88031640C1D224A2A0715D19CDF68E1915C4E5C18C4EE6544EEE1B\n+5F33411AB1FE9F460CDE7C33F144CD09E850098B385ECE4B03A9FD329E4BA796\n+F476DD1CA345AC76D615B9A0B3F2ECED1E1DBC10DE07F751F25BAF2704164032\n+79A50870D9363F5374622C4DA26A192D573A6AA9A9DE79889D63D29653C3DBD8\n+08285F28BBC4A469CEF37D9834A4832848112945228FC845C985F9C4EE95BC97\n+6CA98A77E948F34E9791EC7EE88B2A1B1FBEF4F982C86692652B338D5D063799\n+9784A1BD54B823E237DD782546633D34DA2B746A204E055A5DDF86BEE003836D\n+22E0B80B9253B38101D2C3BE0FD5C88B68A30322364A3411A60EB5DBE933452D\n+ACA4346D29F088142645C9108040A777DF998C0B8E7D16D3AD58A485266E0FFD\n+4FFB2B95D432D194C844EFF0B75F07E17978B00B7026D3CAE5BC71B67F2A858B\n+BF46381FCA168E922E0BF3AD211B6AB686ADBBCEBF85A60695CD98081CD700C0\n+F4F4D5E14C3900C22EAB9BBDD8820DB5ECA8482DD19DC99667492A927AAF004C\n+158211935CD28E0EEEEA50A4ED4F887AAA413ED6C7CBE2F247402B73CD2B81F1\n+F1D8D1DDEC11045211063A5D204F81F2C3C4563F802F8C21160FCFD28E3F4C1D\n+E8E1F5A63584CB948B3F514278002399B275E075AC77551B4DE4FD809F73AC4F\n+62AE7111BC217BC577D46E11998272748A596A2BEDDFE533ED0C8D0A082644EE\n+F5BF7A224ABC11F7FA10CD27DF5325CBBF80CDFFDEFC44529944F9353D1F4CC1\n+163DE884DE859166EC2F7507CAE6AA3F26FFD57E44EDE523EF687A9A05B28D91\n+7AB7A2B22D0738EE2B885B6E5E5BFD9D0673410623C5765EF2C3B79341CD06E9\n+830AF7F428F5640E2F18F647EBCB0AE746CF2D066287427CCD4DB341E62A2C22\n+B36E028A1A6C47D24F30EFC2D40811F11367D65FC6618E4DF14833844F08099D\n+C201B44AF9B3B9A3C2A411289A2DBFDB6176423D395EA1B92FE5A1E016C45985\n+E6984B4D122F95630F748B8034563CB1F8A48F370FDF20049A80821E37D143A2\n+671AFA888101F944C631E1E91EB2AEA511FF6F404753AB6DF3F41C8B15737114\n+A5EDD17FD8CE703CDC00B2D521D1E039ED6E1AC04F17BA2482919367FCDD3319\n+892C51CCD7EFE924786E7B4AF3780EB29575B759B111D35B4868D67432AEC52D\n+426A41395CBF8CCB183CF66F83221BACD3FCE2EF5B3528932EAC7F0CCC3C43A6\n+AC884EDB0E9B1478AEB0A83E4BE04629EFCC834FEEC5B1894EF333FBA8802F84\n+6A99D767F2D8364B20E0A11EFEFDBBD4BECE4D867554A27ADD04FB0AB15A4DEA\n+D41FC5F90679493BD5C90ECD5F28E3535A941E768EA6FFE31BA644AB00ABABA9\n+A34AE5DF98DCAE3D4A9272019E20DB3E5162965FCD523C701A46D9DAF8241F78\n+0387A1403D813AF55BF5D076F5767D656413AD2E10120C1D36DB0A6FA7287FE8\n+B07A84D3ABD61E93AC0CB9DE5E09C9B3D12B1F60DCC15A99D3F45C510C4D3C9A\n+4C66360F17D672F8422ADB52B139B9ABE2C214B6709E06936FAA53E4A8B5163F\n+25FABDF259B90336C48CAB9E360C9B5E98CA5A520D17D7F5B3E5B207FB329934\n+7E2279DB3FB01946E4BB70EDA239323A48B165583FAC26AAE73F67E2E7F45D96\n+FE3D1047C50A5E4383BFA278DB155C5E17EC0A8D33721A04A2853AF90E396D33\n+A145972BD2CA465E210A4D2669365007CE9C80507B3F486096FEC2CC036BC544\n+4F4A11663F8C4090BED12F1248A872C904D1180E993D6A032C519339F0002D2F\n+77F0856B6649BC419CCE783BA235FE612742BCC7C01F1A0CA478A6C563E57AF7\n+4F988C5760519449980C4CC58B66BDAEAF4C18941BD434BEFD139C67E19C2FB4\n+BCE0A0EE651689DAB2C5F51E6983A8E28BE9C3876236E50C1C84EAF87637444B\n+A197EFD600375B894723028E052966B4470BEF6DE574FE0DB3E378A286D6FDFC\n+6FE5974A24C56E098AAA370B5FFA1637CC5D436A6207C945DF11CF46B642963E\n+7DAAD9EDC4DF8F735B7450F2371464FA37ABBB0D45A4E17CAD4DDD3835043F3C\n+5409394EB1280C26DE912C887B41F945887A85830C86E713877CC9E5776729B1\n+EE580DDE3ED906447D67C92355EA4CA038CFED2C371290FB9E679A5DB867B4AF\n+0782B98571C0F449703FCC8A5D5457DA4DA0FE1248C5EA42EA89DF5A52F0E2FE\n+931FB67569CC8DFBD5F377BA618A698143C296DA598349EB8955E0FB3280BEC2\n+E6CF74853B9316982A83643493B8B7CBB88230B836A494B3DBDCB883756A1018\n+4EBA1934E9AC8B46F247DB451217EE0F2E3AC8E9D0B2CDB8CD05C55C47DD319A\n+F98F2F92BB0B1D4FB9DD4E5B48664B576275C9648753BD7C83580E73558AE61D\n+1799245BFA2C6E311AEC110EF7D5332A22E30B7142F913DE43F0F35CCEE85D36\n+35044E9A088196A877CFF488AD6297C78CFADED7192E2942BE799CBC07FDBF35\n+17714D9A65EC4EC05688AB06EDA3ECFCB3A739334EEF0F50A18D43FA2D60434D\n+4ABFF8EC8D9ACAB75059EA1C6EA63BED43D66AFD2BACF5D971C2C451603DDE55\n+DE372B94F5C3F3055D386CEBD7F2322F8569BEF0840040DF305E10A019A02628\n+A615753291D256DE3F9A279B9C015132F9F5F3A38C7C28F8DF2A0C625669ABC8\n+AC4E64701905AD1C02E80AB665DD21BA5EE5C4958457E02A5F6AFB28FD6C06FD\n+D9C02E326B3B8F0C4C8235DA5F8C16138408A3DBFBA1E5BA1DA1D4F13EB93B53\n+12CA0A071FCCF07F4B95E3DA23E12BD9C8A2C5582557A98FAF4D959327209818\n+374D1DE0DC4A48A2A75AEC5B1A3B9C3F61B9713438B9E41A417FEB12B0CDC87E\n+A5196FDD0B637759CC88FB6D41ED36AB83E7427B69C479B5572F0516A20ABC33\n+32D67E85EAC3723EB7F2CCC98832F6D15A242FA66E6153B2D1DB8B3607C98F9D\n+9A7057CFAF8A8AA5547863BADE1A9212BDB1A6CE06957761AD337D074F1711EB\n+7032E051E598AAD33E0EE4AA7611963473847FFA6D8E74F1AFC49F9362B21879\n+CFB8F9DCF35EA66188FBEEC9083809CF03F5EBF922166133EF529EB0F255560F\n+9519E51DA1289411DFACEE0173B9136698F66939A4DB995FF0F0F2ED0E696374\n+C78ADC38077271BBBDF831DA50B2A90707321D007D58170E9739C9539659DE1C\n+9453779B834FFBB3A91A412067A4506818051137E2E9E98EAEEACD694BD3FE71\n+0D7FD666D02A1ECA84F22B8F3E8EECAF738BA6824A329AFBC661672919A4E352\n+33F2AE1FC74C2D3A573E2DC58C615C95BC08BF9ADAD56A7CCF957F9EDF045560\n+DA94BFDE0C26C988A20D0E11CBE746BA2455A1EE037952C805555275180A3E6B\n+0ACF246245F7585D3E4CA563CFA70126D14E5E14BBD78390B1CF2802A9DC545F\n+5E9508298632F271A0486750499882AC6E033B343C167E273A61028657472E07\n+D9037D82CF0D2560E8069856FFBBFA1BDD0BFCED06A9D90B1937EBF9C80AACC8\n+9F24A77E18F717DE14C4308F713AD2F3CC1A4D8CC7C49F94597E9D14BB595000\n+D1C88C25D947624E8813D004DACA8A81CF24BD89AE26ACEE347253B0851D0ADE\n+A6ABA853951810B49E4B523CD92E41753A7AE19CA7816ED94B4A69BA8C452F7D\n+88A65548815EC37D89E257E0A782C56A488B6755256FD5FC3A50874470E701BD\n+B052267DE09C10B3F5F75E203EBB4ADFD57E52DB2724F40A2BCEF3B468D62D63\n+1591146541E2A49AA41581A5659D4F2613D5169BB8AD70114BD0BDD67BD41F00\n+3ABA99F5416097309DEC6F80A843A5DE999CCEFAB63FC3E034CC62A9BBC2717B\n+1F2DDE2949C5449A3D8FB6D495915DA414B0C5E489D92FE5D718EE9BA7A62A51\n+28AFC1AAE7AB25DF8A37E9924EE9EEA1323FF237D030CD7434C7554EEBAEC586\n+EF52C057AF9A0448171482921FCB97401A02045059771BBA6F93FDFCE0E63B9A\n+60D895B7ED48F8BFA31EC9416B6AA21177B170CEA075B2A26B4C6403C59D0788\n+4D07DCB3AB2EF006F10697A1B5613152B491E36C557EF55612F3F1BC7105593B\n+3BD18250DD8322D6B3A8765977BB657967452AAAFB0B50F637F1DF08D84195F7\n+1F1DADC5BFDAFC453678B780211F2F4273AC17BF4EC63F368733972EB0853CFF\n+6EB60A6309BCD3609A8FC0765ED75DD37D726CD0674257E52C8C943BCACCAEBC\n+F698E36D4526F0DAC677811254402BB428575ADDF0821009F5684B9BE56E6499\n+41DCD32C6645072D435EF175D02C87710B381BD1DD36EDDEF7DBC3938D72EE60\n+926F067418091DDFA7D5BBD9F3BCBD1FB187F0A2396AF24024CE8C14641B6D3A\n+98C66CE43CAEB8A3A6406D4FBB28A7F35CF59101D55791CB0BDA645C45DB35D2\n+3BAA1AD84D8E151C6CD72F76D6CDD0D4B50C609FB56DC300FFC57E294BCAB100\n+97AA2A2E871B559AF7749FB64D766B1CA85091E1F7A613CC73928F090C04BE5A\n+32B73CA23C7B89BAF756F1E0\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n@@ -4235,17 +4246,17 @@\n 83.022 /CMR10 rf /Fd 138[53 37 38 39 2[48 53 4[27 4[53\n 42 53 46 13[53 2[65 72 2[57 2[36 3[63 3[72 13[48 1[48\n 49[{}20 83.022 /CMBX10 rf /Fe 133[34 41 41 55 41 43 30\n 30 30 1[43 38 43 64 21 2[21 43 38 23 34 43 34 43 38 9[79\n 2[55 43 57 1[52 60 1[70 48 2[28 58 3[59 55 54 58 7[38\n 38 38 38 38 38 38 38 38 38 1[21 26 21 44[{}50 74.7198\n /CMR9 rf /Ff 205[30 30 49[{}2 49.8132 /CMR6 rf /Fg 205[35\n-35 49[{}2 66.4176 /CMR8 rf /Fh 133[43 3[51 54 38 38 38\n-1[54 49 54 1[27 2[27 54 49 30 43 54 43 1[49 13[54 72\n-1[66 8[77 3[70 69 73 11[49 1[49 49 1[49 3[27 44[{}30\n+35 49[{}2 66.4176 /CMR8 rf /Fh 133[43 51 2[51 54 38 38\n+38 1[54 49 54 1[27 2[27 54 49 30 43 54 43 1[49 13[54\n+72 1[66 5[50 2[77 3[70 69 73 12[49 1[49 49 49 3[27 44[{}32\n 99.6264 /CMR12 rf /Fi 172[90 2[110 121 2[97 6[106 69[{}5\n 143.462 /CMBX12 rf /Fj 134[70 2[70 73 51 52 51 70 73\n 66 73 111 36 1[40 36 1[66 40 58 1[58 73 66 9[137 3[73\n 3[103 2[83 6[90 18[66 3[36 46[{}27 143.462 /CMR17 rf\n end\n %%EndProlog\n %%BeginSetup\n@@ -4256,21 +4267,21 @@\n { pop << /PageSize [612 792] >> setpagedevice }\n { /letter where { pop letter } if }\n ifelse\n %%EndPaperSize\n end\n %%EndSetup\n %%Page: 1 1\n-TeXDict begin 1 0 bop 1103 1880 a Fj(W)-11 b(rapp)t(er)44\n+TeXDict begin 1 0 bop 1103 1879 a Fj(W)-11 b(rapp)t(er)44\n b(Ob)7 b(jects)43 b(for)g(Solving)1099 2062 y(a)g(Linear)g(System)g(of)\n g(Equations)1306 2245 y(using)g Fi(SPOOLES)g Fj(2.2)1052\n 2635 y Fh(Clev)m(e)35 b(Ashcraft)699 2751 y(Bo)s(eing)e(Shared)g\n (Services)i(Group)1995 2715 y Fg(1)2483 2635 y Fh(P)m(eter)f(Sc)m\n (hartz)2342 2751 y(CSAR)f(Corp)s(oration)3162 2715 y\n-Fg(2)1629 3012 y Fh(August)g(3,)f(2025)104 4919 y Ff(1)138\n+Fg(2)1691 3013 y Fh(July)g(1,)f(2024)104 4919 y Ff(1)138\n 4951 y Fe(P)-6 b(.)35 b(O.)g(Bo)n(x)f(24346,)39 b(Mail)d(Stop)e(7L-21,)\n k(Seattle,)g(W)-6 b(ashington)34 b(98124.)64 b(This)35\n b(researc)n(h)g(w)n(as)h(supp)r(orted)e(in)g(part)h(b)n(y)e(the)0\n 5042 y(D)n(ARP)-6 b(A)20 b(Con)n(tract)j(D)n(ABT63-95-C-0122)i(and)d\n (the)f(DoD)h(High)g(P)n(erformance)i(Computing)f(Mo)r(dernization)g\n (Program)h(Common)0 5133 y(HPC)i(Soft)n(w)n(are)h(Supp)r(ort)d\n (Initiativ)n(e.)104 5193 y Ff(2)138 5224 y Fe(28035)32\n", "details": [{"source1": "ps2ascii {}", "source2": "ps2ascii {}", "unified_diff": "@@ -1,13 +1,13 @@\n Wrapper Objects for Solving\r\n a Linear System of Equations\r\n using SPOOLES 2.2\r\n Cleve Ashcraft Peter Schartz\r\n Boeing Shared Services Group1 CSARCorporation2\r\n- August 3, 2025\r\n+ July 1, 2024\r\n 1P. O. Box 24346, Mail Stop 7L-21, Seattle, Washington 98124. This research was supported in part by the\r\n DARPAContract DABT63-95-C-0122 and the DoD High Performance Computing Modernization Program Common\r\n HPCSoftware Support Initiative.\r\n 228035 Dorothy Drive, Agoura Hills, CA 91301. This research was supported in part by the DARPA Contract\r\n DABT63-95-C-0122 and the DoD High Performance Computing Modernization Program Common HPC Software\r\n Support Initiative.\r\n Abstract\r\n"}]}]}, {"source1": "./usr/share/doc/spooles-doc/Lock.ps.gz", "source2": "./usr/share/doc/spooles-doc/Lock.ps.gz", "unified_diff": null, "details": [{"source1": "Lock.ps", "source2": "Lock.ps", "unified_diff": "@@ -10,15 +10,15 @@\n %%EndComments\n %%BeginDefaults\n %%ViewingOrientation: 1 0 0 1\n %%EndDefaults\n %DVIPSWebPage: (www.radicaleye.com)\n %DVIPSCommandLine: dvips main -o Lock.ps\n %DVIPSParameters: dpi=600\n-%DVIPSSource: TeX output 2025.08.03:1317\n+%DVIPSSource: TeX output 2024.07.01:0700\n %%BeginProcSet: tex.pro 0 0\n %!\n /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S\n N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72\n mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0\n 0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{\n landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize\n@@ -1513,23 +1513,22 @@\n /UnderlinePosition -100 def\n /UnderlineThickness 50 def\n end readonly def\n /Encoding 256 array\n 0 1 255 {1 index exch /.notdef put} for\n dup 44 /comma put\n dup 48 /zero put\n+dup 49 /one put\n dup 50 /two put\n-dup 51 /three put\n-dup 53 /five put\n+dup 52 /four put\n dup 58 /colon put\n-dup 65 /A put\n-dup 103 /g put\n-dup 115 /s put\n-dup 116 /t put\n+dup 74 /J put\n+dup 108 /l put\n dup 117 /u put\n+dup 121 /y put\n readonly def\n currentdict end\n currentfile eexec\n D9D66F633B846AB284BCF8B0411B772DE5CE32340DC6F28AF40857E4451976E7\n 5182433CF9F333A38BD841C0D4E68BF9E012EB32A8FFB76B5816306B5EDF7C99\n 8B3A16D9B4BC056662E32C7CD0123DFAEB734C7532E64BBFBF5A60336E646716\n EFB852C877F440D329172C71F1E5D59CE9473C26B8AEF7AD68EF0727B6EC2E0C\n@@ -1710,79 +1709,67 @@\n 7CA1534C4D5B05FC33F83790ECFD7641DF3FB94289E2A1F6E7D29AB1228A867A\n 6E1EF0E9C6F899B491DC18401C2C0A05FFFED46A72C245F7529B8EA55A038082\n 8512307217D2A233C37004085BA3AEE379269F9FA7D0ADB4B19A95CC2AFE686E\n 55D88E47257C1FE6F235FEA295910569FE6DD5995512562359CC821E85A6C7A5\n 79B470A9E340A6985189FF8B6AF914A6B0ECF93F47903221F95DE894A8F05B05\n B7D99CD533EC5F931B18E6B39BECF67FA2D6DD1AEC76772B068BE06335A94C05\n 7A4DDEE77B66101DA855C17AC312600370B34E31F5EC3A01300A8EB60B4C9767\n-1B2FA10DF7E91D3BB34A1B1CE7A0015A57C813E0280D873ADB88440048702D1F\n-77994EE04EC3B4531D6E1888C86A8F0DA6CF1F056F16AB0DD76C862830F89DA4\n-28923B3AA543E0D6E41D3BD283E600BC11F889315EE92C675C109C81065ED1BC\n-82A5583D1B723D50051B0557A367887F5B263014C6E77288B4883C50889473D3\n-3787BAD4BEB88BD1353AFA5B73E61814819537E7FF09F53EF94792BB3DD36ED0\n-002D0E7A6CDAB85A9C17AF5664BCB5A71663B861880F3ECCABC8E7A2FC81A4CC\n-AE7A87503FDC1CE0077BA51ECC7B43B60793FED8E9AAD5BBD03ADD6183DCD26D\n-24A74163611C05562437644EF9B8889FD4F9D311911204FEFD35237486F2D2D0\n-B6783A03BF12EA6D19D6D0F87E4D08515F12F9CBF1961CAA71E0D69FE3C4C4D2\n-7C7FB64ED24F8684C8F00C2BEDEA53EA390CDC0B5BEBD7DD982580B2EA1F1F89\n-CFED5916630DC2BA32BB9180277E1ABC339B3B7DE086717BD93F7FF3681BA5B3\n-FCF671C4B293C2DE4A322F0AA3323A4934444C69F23EF90120B8755482757759\n-C457A435FB8BB4922BD92C5F3D9555D978275C510183E29DFF2FCE4ABBFC18DE\n-76CAD3B486BA12047DD808CD4D521A0FD368E4AE79DE262630983A5D6F0B679D\n-2F005306393C520E1B6987302D029939D94B0178DC55D5264E1FEA468AD4134C\n-8C65B2FBBE8DE8284E8E1F6BFE0B648F44D3DA8E9350D266EDBFD4A7054D9355\n-1E0B185DED37BCF32D3731358F1D707C94109428BAD3CEA456A2A43553E3D2C2\n-F549189201F3D3F715310E3E8C6A2E9AA5141AA9125D203694C7D875C2DD320F\n-C5BCDFC924F6C04DBC7A97349B45ECD0FBD7D2123ED1D3A9F440B1112BE62779\n-47A4592F9285CBD9635EC9091CEC0AFD7E6B6976974081DB9C0E43165BD8584D\n-6CDF08DED287F0883A9FBD351B3F8706BA1E94C7CA487338269482EB8DC1A05D\n-F6632A5D834DE29228C49C5BA65EF7C535A53B380BF4B391F43562147538EE97\n-E799DFC2C40315859F56BBCE9CAE1DF9293F6E2C193ABE7A724EC8F32FA220E7\n-6026877A63E318254F2AF7B1325D63FC4C52B536D3EF354814C2F8F1EEA30569\n-6EF04447DB0F809DF35B4985B9FB4F4BB6087310BE633E76F268B32ABA99CE8E\n-03163DFF4AEDB88E60DD0848C15E90026D7C24D81122EBC07113F9851914A9D5\n-D0E09C2BFDDAF10C5D8208E8329BC0C402F231CD84C95EFDD182AD9756662110\n-274650C7A5BB0D8EFA54EC6C5A49C0EB26701A54779AE8EFBBED824262761602\n-680EDFB38F0FE18C0F501F5AA8BF48A8F0DD3E5E1EBEB872F6F6B23964707B32\n-507FC677B9FDDC990E3828B06420F6F968B2F6AE81E76A2144B1ECE905485616\n-CFB29AC96DDE1F5039935D7E385CC13E34DD7EAF276A2EA3A8BF27FD4205AE13\n-7FE620E42F2CF231C6C8DD8EFC5A6CF081E5660D9ADD730D72D15C02B1E15FF3\n-D741D3B1EB1E666C4E562219033C1E2EF3F96E136998B2E1890395A3637A2C02\n-DE1C46AFCA8D898439F06606A2295D3F7ED6C7DB250C61B6B97A0D5EDDB9657E\n-E790B4E07540BB1026036F4A0D00E7F16FD757AD61D686620C6814B7DCEC43E8\n-FD36D9E75BA554F64548A67D9B0A26E11784E58D4357FC251D71B5D6D8BFDDE0\n-D3BF0E825DA5312C1904AF13C5905C2ADF79C357476183D2EC5A95243235E861\n-2F98D9EE77EF8F8CB3EC6BD358C5ED37DD3AF44D60575E7774BF96F1AE9DFAD1\n-F8646DEDF21D10311854726B8F7D25876BB1EF78E2442B16ED4B851816CF0A27\n-11FDFCE525002A1A7C3E62CD2A3EDE6FAADB026D2F3A46C030ADB22422CA8FF5\n-2545ED58C0D9FB5BDB55FE674301E91A75B005B86BD201D246F7ADACE50419FD\n-AC3312CAC5EB78A36F0E5F62E65AC92129CB574AAC59E0A7C1390DFC61F39D9E\n-D7036742F2F6E64D1EF8157E9CCF65F3EEDC6A8220235978B8E06EB80F649F3E\n-204CFB497F49306EA8E1F7B62305978A28F1E771ED82C6592C71022154E4062A\n-A92335EFC65D6DED9C686899FFD7AA2988740618C03C5E362E1AF352E3BE4602\n-5530C51E5FC8E9082DF79199CC91C50174000D337D86127AC807C5A3C81DDE57\n-7A68AEE7230949B925365C214D77C80E87CEE218ABC94023717EA43BA5D8A7C8\n-8A8B9BD1B767996AE33050E3D922ED0574E3579C57E4BDDAD35883806AFDF260\n-3AB5D83D451583262E580FFDB7A27D82396AF18D92B849A3F7A7E621987D5DF0\n-038F876C6E9CA47FB11AF05F0019191C5DDC5F0177AD421E94BC66D0CCB82F1F\n-93A80836284B095503752C600F72E2C89112ABFA5B76152691264103B268B3E5\n-8816724ADADB38740001A9AACE05C8AF02D72918606DC22EFC8BF0DA0FD12FFE\n-D3A09F8E28057F327BFB633E604B1EAD478637B1D9631650B314CC62D7E0E87F\n-9D3FE1FFA23BB6E3006C3E39BED52F6B0C1C651B5913878F36DA0BF776889165\n-68BA3456B40B8B471CA8FF5238E43D9113E052A2B8D2EAA2433D3F89FCA48AFB\n-5E842913E4ED6DF9623354059CD1F1707B126FED80349787C869883120183EDD\n-249185A55503FAC53898F52170D05CAC62BB742CF9702C0518AED6B27CDC401C\n-932E02143FD916703F360CB31049501B35EF3EDDFED791090D0CFA221FD1DB32\n-7D4759CE07983AE29C258C705D11E7D9481EEAAB9B6BA65CDCF0AA0057BD6FEA\n-ABBFBD3ABF2A7BFB550C3D2A16DC447384A89F3DB6D9C2DBDCA997ABE35A7706\n-633D328AECEDB5BD07070C1B96267FD73B45791DD18194F60D358091FBE88409\n-973529806F3D2C9E6E39091F90A14B560A987E0B9490B9B690FB489B8E253070\n-D7C54447BE0E0A0BFEAEFFB581DC1300E6EC382984673BF0665632404E59B5BF\n-5D5F0A1C956E618C0487751CA5DAE8A95C214F76ED756694EF273679CD2D85CB\n-949DF385BD50491649EFEFDA1574921D7460143D42A100D2C76E55F0BC\n+1B2FA10DF7E91D3BB34A1B1CE7A0015A57C813E0280D873ADB8844004B9BA1CC\n+580D3C6BDA4DC1B80B4365F1C80512453FC5316EC2D928FB731C3D6403E3C18B\n+E8424D644DF5E9A2134229C5C91CA68DB8E85BA2BB40F538F585DA6FA4037718\n+B8053EBBA1E765346BCD5BDAA6C38115D31611D8A87A2238C145F2DA2F92E4DF\n+3987BD9C4D2A3D460E8941A68B125BCD9EE4F9FD262C4C8A71F47A2C81975635\n+F1B981C274C53FA2ACCDE4C9D0A7C62D6C1EFF91CFC6712CA6A9F333C9564FCB\n+2A70F0AD715A79B10A08AB069E2A3C93BC0AED19D0CA10134B8DDDE8AF548DB2\n+3A4AAA9C29682CF135BB767DAA16169A127EB50A7EECEB6480CF56A7D0F8AC56\n+4A5090B3D75A790372886AF568D94C8165975A05BFBFDF1FFBA45F70700BB9E0\n+57F3249EF9E9C8AD9CBCF6E4FD592DC4CDD2CC7C0BC3130C1059096C657BE453\n+A2CBACE93420210E27AF56CA229BD6D982FB68B3FDC6D44478B922C4231C47EE\n+E500232F6C11D92DEB955F66DF52B92B22E7352790CC2DCBAC53965D57AC2920\n+68B7D520DE25047146EFEB06B9AD4E2A94243C7E5239F0BC2FC312B16051D52C\n+0B92C217B6B42997321AE4F8BB066754B7AA3F15069EF59224E8A442CE471AA7\n+E8049A3DD9EDA09CCEE4998998661CF7DB35E952F6C65DAEB3013951C59F3E09\n+157F313B0237876E1C0190F0473819570B8C0205AADF05D787CC00979CFB327A\n+289382B22DDA6F12804ED0ED5B179E36A995A2A59E1B66E75130DBE9109C813B\n+94403E0DEA8314A1E9DB474D7FA83C0BAFD08033E6A6215844C1D26BE15F1251\n+A1605E8DF9A9C601ED37379530BC1C82BE5463C6C711C5652BFD6262485AA9CA\n+B8C4A117593001D08D980041E2A83C190DCE8E6CD3D334E5CC19FC05DB30F7F7\n+24A305C4DBB31F0651392B99D44B4302333BDF7E326FD256DD75D309C6E73F85\n+FA71B35FD1F9BEFF4C7A1076362EEB0A85492933B6006086A7B8C1928CF2D1EE\n+FD4344409257BB802C117E739960821CD3C88BFBA5669FF16F610AD638AF3677\n+8674C985E6767253ED5769F71BEA5E9BB02A751F9E62EE2B18AC19D975FDEAE9\n+8B8822367FF177A7E850766DE99ED3366D46464612926430012212A90F8E85F4\n+4760B40D5B86B90819EE410382D22D8ED82D0B0AB00C93E10CD365F8766D1C87\n+B4A866021FB6F6AC3D250CC601989B1B8FE6B1098A48282D2CF258BF38FEE940\n+CE0141FB1344156DE7712A8F2DBF700174F12616EE17C852210D96D03E5E6635\n+D439EB6E84A383DDD32AD72DADE6F931FDBABBDC726C36081C96018FC95EAE13\n+DA1F8DBC2D8355AC9792649653225393F4A7A88F3B9443FEEB75E2C15BF93F09\n+CCBA7FABC022BE26F4C28152D5DA6D690494AD4EC0DA1B598AE12536BADF88B5\n+5E20EB452546389F57FF55459567B453AE1831C57D22FA6A4FDF441EDAFDB7FB\n+4F4B707C1FF9159C40F7B5DD519FC07815EE91B8D756B6C18500BCF47D0D9E45\n+6A2D51B6AA5AEAAC9AB2DEF7F0FDE957B6C179CBADEECAC7E9CEC248AB135EB4\n+FBF83D002FF859B574EF36C371540EF2BCFCEF5C2E7863AEDD7C3C965103453B\n+023A9CEC1D5C45B88827ADF4AE0C6746F3C7E6A944427DAEC493601019583A16\n+0F846CE00EAE89EEFF9CE68A0E1D6EBB8FDD8A45D1BF399B36A8328EC957CB8B\n+D842A56269C8C9A6B472C9E65BCBC090606B4E8A7EF4ABDEA120C9F9B3969A1C\n+2EB102925F4E155160E58000E1ADB0D19E10EFD96F6C3225EEE8FC24D122C069\n+C11F1A69DC383F7DACD2F3929BD135CE69787C6E7560AC4B683FE5D9AAFD2E89\n+EE6D95E38C9B726B416E28169A11E29559DBA9AECD714CF318FCB78F34A0E562\n+9C00FE0C6D5A848557D9A82EC2BEFCD30B5EDC0B23C5BA9F812C864394C8B9D1\n+B08BAC9CF94E70FF842306ACCFE6E39A56777C712904A3AB29FBD19275E19E06\n+B35B37CFFFCEC81CAF2D85A853663FAFCFFED1EA77064AA28C15BC94910683BC\n+D09513079DE9EE18E97CC2403DD206516D7F652A3459870757F34EEDCEF952C3\n+FE8004F4716B5BD6774E455010B0BB1E61FCD66B9F14F9BBCCF3E55A158EE96E\n+9A05BDFDDC7706D4BC28FDDC4004EF3A430C607EBDF115E0C996454D70C8BB42\n+D7C83A454B116663D648C23CE2B33365810DE2B64D4AE011BC8043BC3E05B94D\n+1700F859C6AFC6515C1C42FA104EE3E8F3FA5F80252C2E79B00ED27F675FFD09\n+B50BF7A3C63CF4856F909DF969D7DD3EA05CABDD1E71A58CFC2AB5F614B4E5E0\n+25CF92E9FB66ACEBE05DF5E033DA8AD3EE32D94C02D98DD7DA99FAB5AEA595C3\n+2987DC122F0242D76B782349E4069DE0CDD6EF4375C680CBFE4C8F24F2AE89BF\n+7785F5EA7435A91500F265022C307E8ADEAAE1C6\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n@@ -2994,16 +2981,16 @@\n %%EndFont \n TeXDict begin 40258437 52099151 1000 600 600 (main.dvi)\n @start /Fa 133[50 59 4[44 44 46 2[56 62 93 31 2[31 62\n 2[51 62 50 1[54 11[86 11[42 6[80 14[56 56 56 2[31 46[{}22\n 99.6264 /CMBX12 rf /Fb 144[62 3[62 7[62 22[62 76[{}4\n 119.552 /CMTT12 rf /Fc 141[38 2[46 51 2[42 1[28 46 42\n 1[42 1[42 14[65 1[66 11[59 62 69 2[68 6[28 58[{}16 90.9091\n-/CMTI10 rf /Fd 138[51 35 36 11[45 37[68 6[25 4[45 1[45\n-45 1[45 3[25 44[{}11 90.9091 /CMSL10 rf\n+/CMTI10 rf /Fd 134[48 3[51 8[25 33[47 15[25 5[45 1[45\n+45 45 3[25 44[{}10 90.9091 /CMSL10 rf\n %DVIPSBitmapFont: Fe tcrm1095 10.95 1\n [/Grave/Acute/Circumflex/Tilde/Dieresis/Hungarumlaut/Ring/Caron/Breve/Macron\n /Dotaccent/cedilla/ogonek/quotesinglbase.ts1 4{/.notdef}repeat\n /quotedblbase.ts1/.notdef/.notdef/twelveudash/threequartersemdash\n /afii61664.cap/arrowleft/arrowright/tieaccentlowercase/tieaccentcapital\n /tieaccentlowercase.new/tieaccentcapital.new/.notdef/afii61664.asc/uni2422 3\n {/.notdef}repeat/dollar/.notdef/.notdef/quotesingle/.notdef/.notdef\n@@ -3111,17 +3098,17 @@\n Fg(mutex)p 1598 5055 V 33 w(t)47 b(*mutex)p Fh(.)227\n 5231 y(F)-8 b(or)31 b(POSIX)f(threads)g(w)m(e)h(ha)m(v)m(e)g\n Fg(pthread)p 1714 5231 V 33 w(mutex)p 1987 5231 V 33\n w(t)47 b(*mutex)p Fh(.)227 5407 y(F)-8 b(or)31 b(no)g(threads)f(w)m(e)g\n (ha)m(v)m(e)i Fg(void)47 b(*mutex)p Fh(.)1927 5656 y(1)p\n eop end\n %%Page: 2 2\n-TeXDict begin 2 1 bop 0 100 a Fh(2)p 136 100 1170 4 v\n-1352 w Fg(Lock)29 b Fd(:)41 b Fc(DRAFT)30 b Fd(August)g(3,)h(2025)p\n-2731 100 V 0 399 a Ff(1.2)135 b(Protot)l(yp)t(es)46 b(and)f\n+TeXDict begin 2 1 bop 0 100 a Fh(2)p 136 100 1228 4 v\n+1409 w Fg(Lock)30 b Fd(:)40 b Fc(DRAFT)30 b Fd(July)g(1,)h(2024)p\n+2673 100 V 0 399 a Ff(1.2)135 b(Protot)l(yp)t(es)46 b(and)f\n (descriptions)g(of)g Fb(Lock)e Ff(metho)t(ds)0 628 y\n Fa(1.2.1)112 b(Basic)38 b(metho)s(ds)0 823 y Fh(As)d(usual,)h(there)f\n (are)g(four)f(basic)h(metho)s(ds)g(to)g(supp)s(ort)e(ob)5\n b(ject)36 b(creation,)i(setting)e(default)f(\\014elds,)h(clearing)0\n 936 y(an)m(y)31 b(allo)s(cated)h(data,)f(and)f(free'ing)h(the)g(ob)5\n b(ject.)111 1164 y(1.)46 b Fg(Lock)h(*)g(Lock_new)f(\\()h(void)g(\\))g(;)\n 227 1313 y Fh(This)32 b(metho)s(d)f(simply)h(allo)s(cates)i(storage)g\n@@ -3179,22 +3166,22 @@\n b(metho)s(ds)111 5109 y Fh(1.)46 b Fg(void)h(Lock_lock)e(\\()j(Lock)e\n (*lock)h(\\))g(;)227 5258 y Fh(This)30 b(metho)s(d)g(lo)s(c)m(ks)h(the)f\n (lo)s(c)m(k.)227 5407 y Fc(Err)-5 b(or)34 b(che)-5 b(cking:)40\n b Fh(If)30 b Fg(lock)g Fh(is)g Fg(NULL)p Fh(,)f(an)i(error)f(message)h\n (is)g(prin)m(ted)f(and)f(the)i(program)f(exits.)p eop\n end\n %%Page: 3 3\n-TeXDict begin 3 2 bop 91 100 1170 4 v 1351 100 a Fg(Lock)29\n-b Fd(:)41 b Fc(DRAFT)121 b Fd(August)30 b(3,)h(2025)p\n-2683 100 V 1170 w Fh(3)111 399 y(2.)46 b Fg(void)h(Lock_unlock)e(\\()i\n-(Lock)g(*lock)f(\\))i(;)227 549 y Fh(This)30 b(metho)s(d)g(unlo)s(c)m\n-(ks)g(the)g(lo)s(c)m(k.)227 699 y Fc(Err)-5 b(or)34 b(che)-5\n-b(cking:)40 b Fh(If)30 b Fg(lock)g Fh(is)g Fg(NULL)p\n-Fh(,)f(an)i(error)f(message)h(is)g(prin)m(ted)f(and)f(the)i(program)f\n-(exits.)p eop end\n+TeXDict begin 3 2 bop 91 100 1228 4 v 1409 100 a Fg(Lock)29\n+b Fd(:)41 b Fc(DRAFT)121 b Fd(July)30 b(1,)h(2024)p 2626\n+100 V 1228 w Fh(3)111 399 y(2.)46 b Fg(void)h(Lock_unlock)e(\\()i(Lock)g\n+(*lock)f(\\))i(;)227 549 y Fh(This)30 b(metho)s(d)g(unlo)s(c)m(ks)g(the)\n+g(lo)s(c)m(k.)227 699 y Fc(Err)-5 b(or)34 b(che)-5 b(cking:)40\n+b Fh(If)30 b Fg(lock)g Fh(is)g Fg(NULL)p Fh(,)f(an)i(error)f(message)h\n+(is)g(prin)m(ted)f(and)f(the)i(program)f(exits.)p eop\n+end\n %%Page: 4 4\n TeXDict begin 4 3 bop 0 866 a Fi(Index)0 1289 y Fg(Lock)p\n 198 1289 29 4 v 33 w(clearData\\(\\))p Fh(,)28 b(2)0 1402\n y Fg(Lock)p 198 1402 V 33 w(free\\(\\))p Fh(,)h(2)0 1515\n y Fg(Lock)p 198 1515 V 33 w(init\\(\\))p Fh(,)g(2)0 1628\n y Fg(Lock)p 198 1628 V 33 w(lock\\(\\))p Fh(,)g(2)0 1741\n y Fg(Lock)p 198 1741 V 33 w(new\\(\\))p Fh(,)g(2)0 1854\n", "details": [{"source1": "ps2ascii {}", "source2": "ps2ascii {}", "unified_diff": "@@ -19,15 +19,15 @@\n \u2022 int nlocks : number of locks made.\r\n \u2022 int nunlocks : number of unlocks made.\r\n \u2022 the mutual exclusion lock\r\n For Solaris threads we have mutex t *mutex.\r\n For POSIX threads we have pthread mutex t *mutex.\r\n For no threads we have void *mutex.\r\n 1\r\n- 2 Lock : DRAFT August 3, 2025\r\n+ 2 Lock : DRAFT July 1, 2024\r\n 1.2 Prototypes and descriptions of Lock methods\r\n 1.2.1 Basic methods\r\n As usual, there are four basic methods to support object creation, setting default \ufb01elds, clearing\r\n any allocated data, and free\u2019ing the object.\r\n 1. Lock * Lock_new ( void ) ;\r\n This method simply allocates storage for the Lock structure and then sets the default \ufb01elds\r\n by a call to Lock setDefaultFields().\r\n@@ -53,15 +53,15 @@\n thread package, lockflag != 0 means the lock will be initialized to synchronize only threads\r\n in this process.\r\n Error checking: If lock is NULL, an error message is printed and the program exits.\r\n 1.2.3 Utility methods\r\n 1. void Lock_lock ( Lock *lock ) ;\r\n This method locks the lock.\r\n Error checking: If lock is NULL, an error message is printed and the program exits.\r\n- Lock : DRAFT August 3, 2025 3\r\n+ Lock : DRAFT July 1, 2024 3\r\n 2. void Lock_unlock ( Lock *lock ) ;\r\n This method unlocks the lock.\r\n Error checking: If lock is NULL, an error message is printed and the program exits.\r\n Index\r\n Lock clearData(), 2\r\n Lock free(), 2\r\n Lock init(), 2\r\n"}]}]}, {"source1": "./usr/share/doc/spooles-doc/MPI.ps.gz", "source2": "./usr/share/doc/spooles-doc/MPI.ps.gz", "unified_diff": null, "details": [{"source1": "MPI.ps", "source2": "MPI.ps", "unified_diff": "@@ -11,15 +11,15 @@\n %%EndComments\n %%BeginDefaults\n %%ViewingOrientation: 1 0 0 1\n %%EndDefaults\n %DVIPSWebPage: (www.radicaleye.com)\n %DVIPSCommandLine: dvips main -o MPI.ps\n %DVIPSParameters: dpi=600\n-%DVIPSSource: TeX output 2025.08.03:1317\n+%DVIPSSource: TeX output 2024.07.01:0700\n %%BeginProcSet: tex.pro 0 0\n %!\n /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S\n N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72\n mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0\n 0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{\n landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize\n@@ -1204,23 +1204,22 @@\n /UnderlinePosition -100 def\n /UnderlineThickness 50 def\n end readonly def\n /Encoding 256 array\n 0 1 255 {1 index exch /.notdef put} for\n dup 44 /comma put\n dup 48 /zero put\n+dup 49 /one put\n dup 50 /two put\n-dup 51 /three put\n-dup 53 /five put\n+dup 52 /four put\n dup 58 /colon put\n-dup 65 /A put\n-dup 103 /g put\n-dup 115 /s put\n-dup 116 /t put\n+dup 74 /J put\n+dup 108 /l put\n dup 117 /u put\n+dup 121 /y put\n readonly def\n currentdict end\n currentfile eexec\n D9D66F633B846AB284BCF8B0411B772DE5CE32340DC6F28AF40857E4451976E7\n 5182433CF9F333A38BD841C0D4E68BF9E012EB32A8FFB76B5816306B5EDF7C99\n 8B3A16D9B4BC056662E32C7CD0123DFAEB734C7532E64BBFBF5A60336E646716\n EFB852C877F440D329172C71F1E5D59CE9473C26B8AEF7AD68EF0727B6EC2E0C\n@@ -1401,79 +1400,67 @@\n 7CA1534C4D5B05FC33F83790ECFD7641DF3FB94289E2A1F6E7D29AB1228A867A\n 6E1EF0E9C6F899B491DC18401C2C0A05FFFED46A72C245F7529B8EA55A038082\n 8512307217D2A233C37004085BA3AEE379269F9FA7D0ADB4B19A95CC2AFE686E\n 55D88E47257C1FE6F235FEA295910569FE6DD5995512562359CC821E85A6C7A5\n 79B470A9E340A6985189FF8B6AF914A6B0ECF93F47903221F95DE894A8F05B05\n B7D99CD533EC5F931B18E6B39BECF67FA2D6DD1AEC76772B068BE06335A94C05\n 7A4DDEE77B66101DA855C17AC312600370B34E31F5EC3A01300A8EB60B4C9767\n-1B2FA10DF7E91D3BB34A1B1CE7A0015A57C813E0280D873ADB88440048702D1F\n-77994EE04EC3B4531D6E1888C86A8F0DA6CF1F056F16AB0DD76C862830F89DA4\n-28923B3AA543E0D6E41D3BD283E600BC11F889315EE92C675C109C81065ED1BC\n-82A5583D1B723D50051B0557A367887F5B263014C6E77288B4883C50889473D3\n-3787BAD4BEB88BD1353AFA5B73E61814819537E7FF09F53EF94792BB3DD36ED0\n-002D0E7A6CDAB85A9C17AF5664BCB5A71663B861880F3ECCABC8E7A2FC81A4CC\n-AE7A87503FDC1CE0077BA51ECC7B43B60793FED8E9AAD5BBD03ADD6183DCD26D\n-24A74163611C05562437644EF9B8889FD4F9D311911204FEFD35237486F2D2D0\n-B6783A03BF12EA6D19D6D0F87E4D08515F12F9CBF1961CAA71E0D69FE3C4C4D2\n-7C7FB64ED24F8684C8F00C2BEDEA53EA390CDC0B5BEBD7DD982580B2EA1F1F89\n-CFED5916630DC2BA32BB9180277E1ABC339B3B7DE086717BD93F7FF3681BA5B3\n-FCF671C4B293C2DE4A322F0AA3323A4934444C69F23EF90120B8755482757759\n-C457A435FB8BB4922BD92C5F3D9555D978275C510183E29DFF2FCE4ABBFC18DE\n-76CAD3B486BA12047DD808CD4D521A0FD368E4AE79DE262630983A5D6F0B679D\n-2F005306393C520E1B6987302D029939D94B0178DC55D5264E1FEA468AD4134C\n-8C65B2FBBE8DE8284E8E1F6BFE0B648F44D3DA8E9350D266EDBFD4A7054D9355\n-1E0B185DED37BCF32D3731358F1D707C94109428BAD3CEA456A2A43553E3D2C2\n-F549189201F3D3F715310E3E8C6A2E9AA5141AA9125D203694C7D875C2DD320F\n-C5BCDFC924F6C04DBC7A97349B45ECD0FBD7D2123ED1D3A9F440B1112BE62779\n-47A4592F9285CBD9635EC9091CEC0AFD7E6B6976974081DB9C0E43165BD8584D\n-6CDF08DED287F0883A9FBD351B3F8706BA1E94C7CA487338269482EB8DC1A05D\n-F6632A5D834DE29228C49C5BA65EF7C535A53B380BF4B391F43562147538EE97\n-E799DFC2C40315859F56BBCE9CAE1DF9293F6E2C193ABE7A724EC8F32FA220E7\n-6026877A63E318254F2AF7B1325D63FC4C52B536D3EF354814C2F8F1EEA30569\n-6EF04447DB0F809DF35B4985B9FB4F4BB6087310BE633E76F268B32ABA99CE8E\n-03163DFF4AEDB88E60DD0848C15E90026D7C24D81122EBC07113F9851914A9D5\n-D0E09C2BFDDAF10C5D8208E8329BC0C402F231CD84C95EFDD182AD9756662110\n-274650C7A5BB0D8EFA54EC6C5A49C0EB26701A54779AE8EFBBED824262761602\n-680EDFB38F0FE18C0F501F5AA8BF48A8F0DD3E5E1EBEB872F6F6B23964707B32\n-507FC677B9FDDC990E3828B06420F6F968B2F6AE81E76A2144B1ECE905485616\n-CFB29AC96DDE1F5039935D7E385CC13E34DD7EAF276A2EA3A8BF27FD4205AE13\n-7FE620E42F2CF231C6C8DD8EFC5A6CF081E5660D9ADD730D72D15C02B1E15FF3\n-D741D3B1EB1E666C4E562219033C1E2EF3F96E136998B2E1890395A3637A2C02\n-DE1C46AFCA8D898439F06606A2295D3F7ED6C7DB250C61B6B97A0D5EDDB9657E\n-E790B4E07540BB1026036F4A0D00E7F16FD757AD61D686620C6814B7DCEC43E8\n-FD36D9E75BA554F64548A67D9B0A26E11784E58D4357FC251D71B5D6D8BFDDE0\n-D3BF0E825DA5312C1904AF13C5905C2ADF79C357476183D2EC5A95243235E861\n-2F98D9EE77EF8F8CB3EC6BD358C5ED37DD3AF44D60575E7774BF96F1AE9DFAD1\n-F8646DEDF21D10311854726B8F7D25876BB1EF78E2442B16ED4B851816CF0A27\n-11FDFCE525002A1A7C3E62CD2A3EDE6FAADB026D2F3A46C030ADB22422CA8FF5\n-2545ED58C0D9FB5BDB55FE674301E91A75B005B86BD201D246F7ADACE50419FD\n-AC3312CAC5EB78A36F0E5F62E65AC92129CB574AAC59E0A7C1390DFC61F39D9E\n-D7036742F2F6E64D1EF8157E9CCF65F3EEDC6A8220235978B8E06EB80F649F3E\n-204CFB497F49306EA8E1F7B62305978A28F1E771ED82C6592C71022154E4062A\n-A92335EFC65D6DED9C686899FFD7AA2988740618C03C5E362E1AF352E3BE4602\n-5530C51E5FC8E9082DF79199CC91C50174000D337D86127AC807C5A3C81DDE57\n-7A68AEE7230949B925365C214D77C80E87CEE218ABC94023717EA43BA5D8A7C8\n-8A8B9BD1B767996AE33050E3D922ED0574E3579C57E4BDDAD35883806AFDF260\n-3AB5D83D451583262E580FFDB7A27D82396AF18D92B849A3F7A7E621987D5DF0\n-038F876C6E9CA47FB11AF05F0019191C5DDC5F0177AD421E94BC66D0CCB82F1F\n-93A80836284B095503752C600F72E2C89112ABFA5B76152691264103B268B3E5\n-8816724ADADB38740001A9AACE05C8AF02D72918606DC22EFC8BF0DA0FD12FFE\n-D3A09F8E28057F327BFB633E604B1EAD478637B1D9631650B314CC62D7E0E87F\n-9D3FE1FFA23BB6E3006C3E39BED52F6B0C1C651B5913878F36DA0BF776889165\n-68BA3456B40B8B471CA8FF5238E43D9113E052A2B8D2EAA2433D3F89FCA48AFB\n-5E842913E4ED6DF9623354059CD1F1707B126FED80349787C869883120183EDD\n-249185A55503FAC53898F52170D05CAC62BB742CF9702C0518AED6B27CDC401C\n-932E02143FD916703F360CB31049501B35EF3EDDFED791090D0CFA221FD1DB32\n-7D4759CE07983AE29C258C705D11E7D9481EEAAB9B6BA65CDCF0AA0057BD6FEA\n-ABBFBD3ABF2A7BFB550C3D2A16DC447384A89F3DB6D9C2DBDCA997ABE35A7706\n-633D328AECEDB5BD07070C1B96267FD73B45791DD18194F60D358091FBE88409\n-973529806F3D2C9E6E39091F90A14B560A987E0B9490B9B690FB489B8E253070\n-D7C54447BE0E0A0BFEAEFFB581DC1300E6EC382984673BF0665632404E59B5BF\n-5D5F0A1C956E618C0487751CA5DAE8A95C214F76ED756694EF273679CD2D85CB\n-949DF385BD50491649EFEFDA1574921D7460143D42A100D2C76E55F0BC\n+1B2FA10DF7E91D3BB34A1B1CE7A0015A57C813E0280D873ADB8844004B9BA1CC\n+580D3C6BDA4DC1B80B4365F1C80512453FC5316EC2D928FB731C3D6403E3C18B\n+E8424D644DF5E9A2134229C5C91CA68DB8E85BA2BB40F538F585DA6FA4037718\n+B8053EBBA1E765346BCD5BDAA6C38115D31611D8A87A2238C145F2DA2F92E4DF\n+3987BD9C4D2A3D460E8941A68B125BCD9EE4F9FD262C4C8A71F47A2C81975635\n+F1B981C274C53FA2ACCDE4C9D0A7C62D6C1EFF91CFC6712CA6A9F333C9564FCB\n+2A70F0AD715A79B10A08AB069E2A3C93BC0AED19D0CA10134B8DDDE8AF548DB2\n+3A4AAA9C29682CF135BB767DAA16169A127EB50A7EECEB6480CF56A7D0F8AC56\n+4A5090B3D75A790372886AF568D94C8165975A05BFBFDF1FFBA45F70700BB9E0\n+57F3249EF9E9C8AD9CBCF6E4FD592DC4CDD2CC7C0BC3130C1059096C657BE453\n+A2CBACE93420210E27AF56CA229BD6D982FB68B3FDC6D44478B922C4231C47EE\n+E500232F6C11D92DEB955F66DF52B92B22E7352790CC2DCBAC53965D57AC2920\n+68B7D520DE25047146EFEB06B9AD4E2A94243C7E5239F0BC2FC312B16051D52C\n+0B92C217B6B42997321AE4F8BB066754B7AA3F15069EF59224E8A442CE471AA7\n+E8049A3DD9EDA09CCEE4998998661CF7DB35E952F6C65DAEB3013951C59F3E09\n+157F313B0237876E1C0190F0473819570B8C0205AADF05D787CC00979CFB327A\n+289382B22DDA6F12804ED0ED5B179E36A995A2A59E1B66E75130DBE9109C813B\n+94403E0DEA8314A1E9DB474D7FA83C0BAFD08033E6A6215844C1D26BE15F1251\n+A1605E8DF9A9C601ED37379530BC1C82BE5463C6C711C5652BFD6262485AA9CA\n+B8C4A117593001D08D980041E2A83C190DCE8E6CD3D334E5CC19FC05DB30F7F7\n+24A305C4DBB31F0651392B99D44B4302333BDF7E326FD256DD75D309C6E73F85\n+FA71B35FD1F9BEFF4C7A1076362EEB0A85492933B6006086A7B8C1928CF2D1EE\n+FD4344409257BB802C117E739960821CD3C88BFBA5669FF16F610AD638AF3677\n+8674C985E6767253ED5769F71BEA5E9BB02A751F9E62EE2B18AC19D975FDEAE9\n+8B8822367FF177A7E850766DE99ED3366D46464612926430012212A90F8E85F4\n+4760B40D5B86B90819EE410382D22D8ED82D0B0AB00C93E10CD365F8766D1C87\n+B4A866021FB6F6AC3D250CC601989B1B8FE6B1098A48282D2CF258BF38FEE940\n+CE0141FB1344156DE7712A8F2DBF700174F12616EE17C852210D96D03E5E6635\n+D439EB6E84A383DDD32AD72DADE6F931FDBABBDC726C36081C96018FC95EAE13\n+DA1F8DBC2D8355AC9792649653225393F4A7A88F3B9443FEEB75E2C15BF93F09\n+CCBA7FABC022BE26F4C28152D5DA6D690494AD4EC0DA1B598AE12536BADF88B5\n+5E20EB452546389F57FF55459567B453AE1831C57D22FA6A4FDF441EDAFDB7FB\n+4F4B707C1FF9159C40F7B5DD519FC07815EE91B8D756B6C18500BCF47D0D9E45\n+6A2D51B6AA5AEAAC9AB2DEF7F0FDE957B6C179CBADEECAC7E9CEC248AB135EB4\n+FBF83D002FF859B574EF36C371540EF2BCFCEF5C2E7863AEDD7C3C965103453B\n+023A9CEC1D5C45B88827ADF4AE0C6746F3C7E6A944427DAEC493601019583A16\n+0F846CE00EAE89EEFF9CE68A0E1D6EBB8FDD8A45D1BF399B36A8328EC957CB8B\n+D842A56269C8C9A6B472C9E65BCBC090606B4E8A7EF4ABDEA120C9F9B3969A1C\n+2EB102925F4E155160E58000E1ADB0D19E10EFD96F6C3225EEE8FC24D122C069\n+C11F1A69DC383F7DACD2F3929BD135CE69787C6E7560AC4B683FE5D9AAFD2E89\n+EE6D95E38C9B726B416E28169A11E29559DBA9AECD714CF318FCB78F34A0E562\n+9C00FE0C6D5A848557D9A82EC2BEFCD30B5EDC0B23C5BA9F812C864394C8B9D1\n+B08BAC9CF94E70FF842306ACCFE6E39A56777C712904A3AB29FBD19275E19E06\n+B35B37CFFFCEC81CAF2D85A853663FAFCFFED1EA77064AA28C15BC94910683BC\n+D09513079DE9EE18E97CC2403DD206516D7F652A3459870757F34EEDCEF952C3\n+FE8004F4716B5BD6774E455010B0BB1E61FCD66B9F14F9BBCCF3E55A158EE96E\n+9A05BDFDDC7706D4BC28FDDC4004EF3A430C607EBDF115E0C996454D70C8BB42\n+D7C83A454B116663D648C23CE2B33365810DE2B64D4AE011BC8043BC3E05B94D\n+1700F859C6AFC6515C1C42FA104EE3E8F3FA5F80252C2E79B00ED27F675FFD09\n+B50BF7A3C63CF4856F909DF969D7DD3EA05CABDD1E71A58CFC2AB5F614B4E5E0\n+25CF92E9FB66ACEBE05DF5E033DA8AD3EE32D94C02D98DD7DA99FAB5AEA595C3\n+2987DC122F0242D76B782349E4069DE0CDD6EF4375C680CBFE4C8F24F2AE89BF\n+7785F5EA7435A91500F265022C307E8ADEAAE1C6\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n@@ -4889,17 +4876,17 @@\n 0000000000000000000000000000000000000000000000000000000000000000\n cleartomark\n {restore}if\n %%EndFont \n TeXDict begin 39158280 55380996 1000 600 600 (main.dvi)\n @start /Fa 175[88 80[{}1 83.022 /CMEX10 rf /Fb 152[42\n 42 69[83 28[42 65 2[{}5 83.022 /CMSY10 rf /Fc 175[62\n-2[62 3[62 73[{}3 119.552 /CMTT12 rf /Fd 138[46 32 33\n-11[42 37[62 6[23 4[42 1[42 42 1[42 3[23 44[{}11 83.022\n-/CMSL10 rf /Fe 132[48 59[45 63[{}2 83.022 /CMBX10 rf\n+2[62 3[62 73[{}3 119.552 /CMTT12 rf /Fd 134[44 3[46 8[23\n+33[43 15[23 5[42 1[42 42 42 3[23 44[{}10 83.022 /CMSL10\n+rf /Fe 132[48 59[45 63[{}2 83.022 /CMBX10 rf\n %DVIPSBitmapFont: Ff tcrm1000 10 1\n [/Grave/Acute/Circumflex/Tilde/Dieresis/Hungarumlaut/Ring/Caron/Breve/Macron\n /Dotaccent/cedilla/ogonek/quotesinglbase.ts1 4{/.notdef}repeat\n /quotedblbase.ts1/.notdef/.notdef/twelveudash/threequartersemdash\n /afii61664.cap/arrowleft/arrowright/tieaccentlowercase/tieaccentcapital\n /tieaccentlowercase.new/tieaccentcapital.new/.notdef/afii61664.asc/uni2422 3\n {/.notdef}repeat/dollar/.notdef/.notdef/quotesingle/.notdef/.notdef\n@@ -5047,17 +5034,17 @@\n y Ff(\\210)42 b Fl(symflag)24 b Fn(|)k(symmetry)f(\\015ag)g(for)g\n Fh(A)301 5278 y Fe({)41 b Fn(0)27 b(\\()p Fl(SPOOLES)p\n 804 5278 V 29 w(SYMMETRIC)p Fn(\\))d({)k(symmetric)f(matrix)301\n 5407 y Fe({)41 b Fn(1)27 b(\\()p Fl(SPOOLES)p 804 5407\n V 29 w(HERMITIAN)p Fn(\\))d({)k(hermitian)f(matrix)1929\n 5656 y(1)p eop end\n %%Page: 2 2\n-TeXDict begin 2 1 bop 0 100 a Fn(2)p 125 100 1264 4 v\n-1429 w Fl(MPI)26 b Fd(:)i Fm(DRAFT)f Fd(August)h(3,)f(2025)p\n-2636 100 V 301 390 a Fe({)41 b Fn(2)27 b(\\()p Fl(SPOOLES)p\n+TeXDict begin 2 1 bop 0 100 a Fn(2)p 125 100 1317 4 v\n+1482 w Fl(MPI)26 b Fd(:)i Fm(DRAFT)f Fd(July)g(1,)h(2024)p\n+2584 100 V 301 390 a Fe({)41 b Fn(2)27 b(\\()p Fl(SPOOLES)p\n 804 390 27 4 v 29 w(NONSYMMETRIC)p Fn(\\))c({)k(nonsymmetric)g(matrix)\n 125 559 y Ff(\\210)42 b Fl(opflag)25 b Fn(|)i(op)r(eration)g(\\015ag)g\n (for)g(the)h(m)n(ultiply)301 728 y Fe({)41 b Fn(0)27\n b(\\()p Fl(MMM)p 628 728 V 31 w(WITH)p 835 728 V 30 w(A)p\n Fn(\\))g(|)h(p)r(erform)f Fh(Y)42 b Fn(:=)22 b Fh(Y)37\n b Fn(+)18 b Fh(\\013AX)301 862 y Fe({)41 b Fn(1)27 b(\\()p\n Fl(MMM)p 628 862 V 31 w(WITH)p 835 862 V 30 w(AT)p Fn(\\))g(|)g(p)r\n@@ -5137,17 +5124,17 @@\n b(based)h(on)f(the)h Fl(mapIV)d Fn(ob)5 b(ject)23 b(that)g(maps)f(ro)n\n (ws)f(to)208 5308 y(pro)r(cesses.)35 b(The)27 b(messages)f(that)h(will)\n h(b)r(e)f(sen)n(t)h(require)e Fl(nproc)f Fn(consecutiv)n(e)h(tags)h(|)g\n (the)h(\\014rst)f(is)g(the)h(parameter)208 5407 y Fl(firsttag)p\n Fn(.)33 b(On)28 b(return,)f(the)h Fl(stats[])d Fn(v)n(ector)h(con)n\n (tains)g(the)i(follo)n(wing)f(information.)p eop end\n %%Page: 3 3\n-TeXDict begin 3 2 bop 83 100 1264 4 v 1430 100 a Fl(MPI)26\n-b Fd(:)i Fm(DRAFT)110 b Fd(August)28 b(3,)f(2025)p 2597\n-100 V 1264 w Fn(3)556 377 y Fl(stats[0])97 b Fn(|)i(#)28\n+TeXDict begin 3 2 bop 83 100 1317 4 v 1482 100 a Fl(MPI)27\n+b Fd(:)g Fm(DRAFT)111 b Fd(July)27 b(1,)g(2024)p 2544\n+100 V 1317 w Fn(3)556 377 y Fl(stats[0])97 b Fn(|)i(#)28\n b(of)g(messages)e(sen)n(t)344 b Fl(stats[1])96 b Fn(|)k(#)28\n b(of)f(b)n(ytes)g(sen)n(t)556 477 y Fl(stats[2])97 b\n Fn(|)i(#)28 b(of)g(messages)e(receiv)n(ed)198 b Fl(stats[3])96\n b Fn(|)k(#)28 b(of)f(b)n(ytes)g(receiv)n(ed)208 711 y(Note,)g(the)h(v)\n -5 b(alues)27 b(in)h Fl(stats[])c Fn(are)j Fm(incr)l(emente)l(d)p\n Fn(,)g(i.e.,)h(the)g Fl(stats[])c Fn(v)n(ector)i(is)h(not)h(zero)r(ed)e\n (at)i(the)g(start)e(of)i(the)208 810 y(metho)r(d,)g(and)f(so)g(can)g(b)\n@@ -5245,17 +5232,17 @@\n Fn(v)n(ector)j(con)n(tains)f(the)i(follo)n(wing)f(information.)556\n 5319 y Fl(stats[0])97 b Fn(|)i(#)28 b(of)g(messages)e(sen)n(t)344\n b Fl(stats[1])96 b Fn(|)k(#)28 b(of)f(b)n(ytes)g(sen)n(t)556\n 5419 y Fl(stats[2])97 b Fn(|)i(#)28 b(of)g(messages)e(receiv)n(ed)198\n b Fl(stats[3])96 b Fn(|)k(#)28 b(of)f(b)n(ytes)g(receiv)n(ed)p\n eop end\n %%Page: 4 4\n-TeXDict begin 4 3 bop 0 100 a Fn(4)p 125 100 1264 4 v\n-1429 w Fl(MPI)26 b Fd(:)i Fm(DRAFT)f Fd(August)h(3,)f(2025)p\n-2636 100 V 208 390 a Fn(Note,)g(the)h(v)-5 b(alues)27\n+TeXDict begin 4 3 bop 0 100 a Fn(4)p 125 100 1317 4 v\n+1482 w Fl(MPI)26 b Fd(:)i Fm(DRAFT)f Fd(July)g(1,)h(2024)p\n+2584 100 V 208 390 a Fn(Note,)f(the)h(v)-5 b(alues)27\n b(in)h Fl(stats[])c Fn(are)j Fm(incr)l(emente)l(d)p Fn(,)g(i.e.,)h(the)\n g Fl(stats[])c Fn(v)n(ector)i(is)h(not)h(zero)r(ed)e(at)i(the)g(start)e\n (of)i(the)208 490 y(metho)r(d,)g(and)f(so)g(can)g(b)r(e)h(used)g(to)f\n (accum)n(ulated)g(information)g(with)h(m)n(ultiple)h(calls.)208\n 632 y Fm(Err)l(or)38 b(che)l(cking:)55 b Fn(If)37 b Fl(firsttag)j(<)j\n (0)36 b Fn(or)f Fl(firsttag)40 b(+)j(nproc)35 b Fn(is)g(larger)g(than)h\n (the)g(largest)f(a)n(v)-5 b(ailable)35 b(tag,)i(an)208\n@@ -5343,17 +5330,17 @@\n Fn(or)f Fl(rowmapIV)e Fn(is)j Fl(NULL)p Fn(,)f(or)h(if)h\n Fl(msglvl)41 b(>)i(0)28 b Fn(and)g Fl(msgFile)e Fn(is)i\n Fl(NULL)p Fn(,)f(or)g(if)i Fl(firsttag)40 b(<)208 5407\n y(0)27 b Fn(is)g(larger)f(than)i(the)g(largest)e(a)n(v)-5\n b(ailable)26 b(tag,)h(an)h(error)d(message)h(is)i(prin)n(ted)f(and)h\n (the)g(program)d(exits.)p eop end\n %%Page: 5 5\n-TeXDict begin 5 4 bop 83 100 1264 4 v 1430 100 a Fl(MPI)26\n-b Fd(:)i Fm(DRAFT)110 b Fd(August)28 b(3,)f(2025)p 2597\n-100 V 1264 w Fn(5)0 390 y Fj(1.2.2)112 b(Gather)38 b(and)h(scatter)e\n+TeXDict begin 5 4 bop 83 100 1317 4 v 1482 100 a Fl(MPI)27\n+b Fd(:)g Fm(DRAFT)111 b Fd(July)27 b(1,)g(2024)p 2544\n+100 V 1317 w Fn(5)0 390 y Fj(1.2.2)112 b(Gather)38 b(and)h(scatter)e\n (metho)s(ds)0 568 y Fn(These)24 b(metho)r(d)g(gather)f(and)h\n (scatter/add)e(ro)n(ws)h(of)h Fl(DenseMtx)c Fn(ob)5 b(jects.)35\n b(These)24 b(op)r(erations)f(are)g(p)r(erformed)g(during)h(the)0\n 668 y(distributed)19 b(matrix-matrix)e(m)n(ultiply)-7\n b(.)34 b(The)18 b(gather)g(op)r(eration)f Fh(X)2150 638\n y Fg(q)2143 688 y(supp)2309 668 y Fb( )23 b Fh(X)i Fn(is)18\n b(p)r(erformed)g(b)n(y)g Fl(DenseMtx)p 3434 668 27 4\n@@ -5435,17 +5422,17 @@\n 5108 y(FILE)g(*msgFile,)e(int)i(firsttag,)e(MPI_Comm)g(comm)i(\\))h(;)\n 208 5208 y(IVL)f(*)h(SymbFac_MPI_init)o(Fro)o(mP)o(enc)o(il)37\n b(\\()43 b(ETree)f(*etree,)e(IV)j(*frontOwnersIV,)1733\n 5308 y(Pencil)e(*pencil,)f(int)j(stats[],)d(int)i(msglvl,)1733\n 5407 y(FILE)g(*msgFile,)e(int)i(firsttag,)e(MPI_Comm)g(comm)i(\\))h(;)p\n eop end\n %%Page: 6 6\n-TeXDict begin 6 5 bop 0 100 a Fn(6)p 125 100 1264 4 v\n-1429 w Fl(MPI)26 b Fd(:)i Fm(DRAFT)f Fd(August)h(3,)f(2025)p\n-2636 100 V 208 390 a Fn(These)19 b(metho)r(ds)h(are)e(used)i(in)g\n+TeXDict begin 6 5 bop 0 100 a Fn(6)p 125 100 1317 4 v\n+1482 w Fl(MPI)26 b Fd(:)i Fm(DRAFT)f Fd(July)g(1,)h(2024)p\n+2584 100 V 208 390 a Fn(These)19 b(metho)r(ds)h(are)e(used)i(in)g\n (place)f(of)h(the)g Fl(Symbfac)p 1907 390 27 4 v 28 w(initFrom)p\n Fb(f)p Fl(InpMtx,P)o(en)o(cil)o Fb(g)p Fl(\\()o(\\))14\n b Fn(metho)r(ds)19 b(to)h(compute)g(the)208 490 y(sym)n(b)r(olic)27\n b(factorization.)37 b(The)28 b Fl(ETree)e Fn(ob)5 b(ject)28\n b(is)g(assumed)f(to)h(b)r(e)h(replicated)e(o)n(v)n(er)f(the)j(pro)r\n (cesses.)36 b(The)28 b Fl(InpMtx)208 589 y Fn(and)i Fl(Pencil)e\n Fn(ob)5 b(jects)30 b(are)f(partitioned)h(among)f(the)i(pro)r(cesses.)44\n@@ -5533,17 +5520,17 @@\n 2075 5070 y Fl(cpus[9])118 b Fn({)99 b(p)r(ost)28 b(initial)g(receiv)n\n (es)2053 5170 y Fl(cpus[10])96 b Fn({)j(c)n(hec)n(k)27\n b(for)g(receiv)n(ed)f(messages)2053 5269 y Fl(cpus[11])96\n b Fn({)j(p)r(ost)28 b(initial)g(sends)2053 5369 y Fl(cpus[12])96\n b Fn({)j(c)n(hec)n(k)27 b(for)g(sen)n(t)g(messages)p\n eop end\n %%Page: 7 7\n-TeXDict begin 7 6 bop 83 100 1264 4 v 1430 100 a Fl(MPI)26\n-b Fd(:)i Fm(DRAFT)110 b Fd(August)28 b(3,)f(2025)p 2597\n-100 V 1264 w Fn(7)208 390 y(On)g(return,)g(the)h Fl(stats[])d\n+TeXDict begin 7 6 bop 83 100 1317 4 v 1482 100 a Fl(MPI)27\n+b Fd(:)g Fm(DRAFT)111 b Fd(July)27 b(1,)g(2024)p 2544\n+100 V 1317 w Fn(7)208 390 y(On)g(return,)g(the)h Fl(stats[])d\n Fn(v)n(ector)h(has)h(the)h(follo)n(wing)f(information.)963\n 563 y Fl(stats[0])118 b Fn(|)100 b(#)28 b(of)f(piv)n(ots)963\n 663 y Fl(stats[1])118 b Fn(|)100 b(#)28 b(of)f(piv)n(ot)h(tests)963\n 762 y Fl(stats[2])118 b Fn(|)100 b(#)28 b(of)f(dela)n(y)n(ed)g(ro)n(ws)\n f(and)i(columns)963 862 y Fl(stats[3])118 b Fn(|)100\n b(#)28 b(of)f(en)n(tries)g(in)h(D)963 962 y Fl(stats[4])118\n b Fn(|)100 b(#)28 b(of)f(en)n(tries)g(in)h(L)963 1061\n@@ -5625,17 +5612,17 @@\n 5308 y Fn(After)19 b(a)g(factorization)f(with)i(piv)n(oting,)g(the)f\n Fl(frontsizesIV)c Fn(ob)5 b(ject)19 b(needs)g(to)g(b)r(e)h(made)f\n (global)f(on)h(eac)n(h)f(pro)r(cessor.)208 5407 y(This)26\n b(metho)r(ds)h(tak)n(es)e(the)i(individual)f(en)n(tries)g(of)g(an)g\n Fl(IV)g Fn(ob)5 b(ject)26 b(whose)g(o)n(wners)f(are)g(sp)r(eci\\014ed)h\n (b)n(y)h(the)f Fl(ownersIV)p eop end\n %%Page: 8 8\n-TeXDict begin 8 7 bop 0 100 a Fn(8)p 125 100 1264 4 v\n-1429 w Fl(MPI)26 b Fd(:)i Fm(DRAFT)f Fd(August)h(3,)f(2025)p\n-2636 100 V 208 390 a Fn(ob)5 b(ject,)33 b(and)g(comm)n(unicates)f(the)h\n+TeXDict begin 8 7 bop 0 100 a Fn(8)p 125 100 1317 4 v\n+1482 w Fl(MPI)26 b Fd(:)i Fm(DRAFT)f Fd(July)g(1,)h(2024)p\n+2584 100 V 208 390 a Fn(ob)5 b(ject,)33 b(and)g(comm)n(unicates)f(the)h\n (en)n(tries)f(around)g(the)h(pro)r(cessors)e(un)n(til)i(the)g(global)f\n Fl(IV)g Fn(ob)5 b(ject)33 b(is)f(presen)n(t)g(on)208\n 490 y(eac)n(h.)h(The)20 b(messages)e(that)i(will)g(b)r(e)g(sen)n(t)f\n (require)g(at)g(most)h Fl(nproc)d Fn(consecutiv)n(e)i(tags)g(|)h(the)g\n (\\014rst)f(is)h(the)g(parameter)208 589 y Fl(firsttag)p\n Fn(.)208 740 y Fm(Err)l(or)28 b(che)l(cking:)38 b Fn(If)26\n b Fl(iv)p Fn(,)g Fl(ownersIV)d Fn(or)i Fl(stats)f Fn(is)h\n@@ -5711,17 +5698,17 @@\n Fl(firsttag)208 5308 y(<)43 b(0)30 b Fn(or)f Fl(firsttag)40\n b(+)j(2*nfront)27 b Fn(is)j(larger)f(than)h(the)h(largest)d(a)n(v)-5\n b(ailable)29 b(tag,)i(or)e(if)i Fl(msglvl)41 b(>)i(0)30\n b Fn(and)g Fl(msgFile)208 5407 y Fn(is)d Fl(NULL)p Fn(,)f(an)h(error)f\n (message)g(is)i(prin)n(ted)f(and)h(the)g(program)d(exits.)p\n eop end\n %%Page: 9 9\n-TeXDict begin 9 8 bop 83 100 1264 4 v 1430 100 a Fl(MPI)26\n-b Fd(:)i Fm(DRAFT)110 b Fd(August)28 b(3,)f(2025)p 2597\n-100 V 1264 w Fn(9)0 390 y Fj(1.2.7)112 b(Matrix-matrix)39\n+TeXDict begin 9 8 bop 83 100 1317 4 v 1482 100 a Fl(MPI)27\n+b Fd(:)g Fm(DRAFT)111 b Fd(July)27 b(1,)g(2024)p 2544\n+100 V 1317 w Fn(9)0 390 y Fj(1.2.7)112 b(Matrix-matrix)39\n b(m)m(ultiply)f(metho)s(ds)0 573 y Fn(The)28 b(usual)f(sequence)g(of)h\n (ev)n(en)n(ts)e(is)i(as)f(follo)n(ws.)125 771 y Ff(\\210)42\n b Fn(Set)28 b(up)f(the)h(data)g(structure)f(via)g(a)g(call)g(to)h\n Fl(MatMul)p 1887 771 27 4 v 28 w(MPI)p 2047 771 V 31\n w(setup\\(\\))p Fn(.)125 946 y Ff(\\210)42 b Fn(Con)n(v)n(ert)26\n b(the)i(lo)r(cal)f Fh(A)925 916 y Fg(q)989 946 y Fn(matrix)g(to)h(lo)r\n (cal)f(indices)g(via)h(a)f(call)g(to)g Fl(MatMul)p 2557\n@@ -5796,17 +5783,17 @@\n (in)g(the)h Fl(info)e Fn(ob)5 b(ject.)50 b(These)32 b(are)f(serial)208\n 5270 y(metho)r(ds,)c(p)r(erformed)h(indep)r(enden)n(tly)g(on)f(eac)n(h)\n g(pro)r(cessor.)208 5407 y Fm(Err)l(or)j(che)l(cking:)38\n b Fn(If)28 b Fl(info)e Fn(or)h Fl(A)g Fn(is)h Fl(NULL)p\n Fn(,)e(an)h(error)f(message)g(is)i(prin)n(ted)f(and)h(the)g(program)d\n (exits.)p eop end\n %%Page: 10 10\n-TeXDict begin 10 9 bop 0 100 a Fn(10)p 166 100 1243 4\n-v 1408 w Fl(MPI)26 b Fd(:)i Fm(DRAFT)f Fd(August)h(3,)f(2025)p\n-2657 100 V 101 390 a Fn(3.)42 b Fl(void)f(MatMul_MPI_mmm)d(\\()43\n+TeXDict begin 10 9 bop 0 100 a Fn(10)p 166 100 1296 4\n+v 1461 w Fl(MPI)26 b Fd(:)i Fm(DRAFT)f Fd(July)g(1,)g(2024)p\n+2605 100 V 101 390 a Fn(3.)42 b Fl(void)f(MatMul_MPI_mmm)d(\\()43\n b(MatMulInfo)d(*info,)h(DenseMtx)f(*Yloc,)h(double)g(alpha[],)g(InpMtx)\n g(*A,)600 490 y(DenseMtx)f(*Xloc,)h(int)i(stats[],)d(int)i(msglvl,)f\n (FILE)h(*msgFile,)e(MPI_Comm)g(comm\\))h(;)208 623 y Fn(This)35\n b(metho)r(d)g(computes)g(a)g(distributed)h(matrix-matrix)e(m)n(ultiply)\n h Fh(Y)55 b Fn(:=)35 b Fh(Y)42 b Fn(+)23 b Fh(\\013AX)7\n b Fn(,)37 b Fh(Y)55 b Fn(:=)35 b Fh(Y)42 b Fn(+)23 b\n Fh(\\013A)3662 593 y Fg(T)3715 623 y Fh(X)42 b Fn(or)208\n@@ -5886,17 +5873,17 @@\n (p)r(oin)n(ter)f(to)h(its)g Fl(IV)f Fn(ob)5 b(ject.)37\n b(A)28 b(no)r(de)g(other)f(than)h Fl(root)p Fn(,)f(clears)f(the)j(data)\n e(in)h(its)208 5274 y(IV)f(ob)5 b(ject,)28 b(receiv)n(es)e(the)i(IV)g\n (ob)5 b(ject)27 b(from)h(the)g(ro)r(ot)e(and)i(returns)f(a)g(p)r(oin)n\n (ter)g(to)h(it.)208 5407 y Fm(Err)l(or)i(che)l(cking:)38\n b Fn(None)28 b(presen)n(tly)-7 b(.)p eop end\n %%Page: 11 11\n-TeXDict begin 11 10 bop 83 100 1243 4 v 1409 100 a Fl(MPI)26\n-b Fd(:)i Fm(DRAFT)110 b Fd(August)28 b(3,)f(2025)p 2576\n-100 V 1243 w Fn(11)0 390 y Fj(1.2.9)112 b(Utilit)m(y)38\n+TeXDict begin 11 10 bop 83 100 1296 4 v 1461 100 a Fl(MPI)27\n+b Fd(:)h Fm(DRAFT)110 b Fd(July)27 b(1,)g(2024)p 2523\n+100 V 1296 w Fn(11)0 390 y Fj(1.2.9)112 b(Utilit)m(y)38\n b(metho)s(ds)101 565 y Fn(1.)k Fl(IVL)g(*)h(InpMtx_MPI_fullA)o(dja)o\n (ce)o(ncy)37 b(\\()43 b(InpMtx)e(*inpmtx,)f(int)j(stats[],)1646\n 664 y(int)f(msglvl,)f(FILE)h(*msgFile,)e(MPI_Comm)g(comm)i(\\))h(;)208\n 764 y(IVL)f(*)h(Pencil_MPI_fullA)o(dja)o(ce)o(ncy)37\n b(\\()43 b(Pencil)e(*pencil,)f(int)j(stats[],)1646 863\n y(int)f(msglvl,)f(FILE)h(*msgFile,)e(MPI_Comm)g(comm)i(\\))h(;)208\n 993 y Fn(These)37 b(metho)r(ds)h(are)f(used)h(to)g(return)g(an)f\n@@ -5980,17 +5967,17 @@\n y Fn(con)n(tains)c(the)i(lists)g(of)f(v)n(ertices)g(this)h(pro)r\n (cessor)d(m)n(ust)j(send)f(to)h(all)f(others.)208 5308\n y(This)g(metho)r(d)i(uses)e(tags)g(in)i(the)f(range)e\n Fl([tag,tag+nproc-1\\))o Fn(.)32 b(On)c(return,)f(the)i(follo)n(wing)e\n (statistics)g(will)h(ha)n(v)n(e)208 5407 y(b)r(een)g(added.)p\n eop end\n %%Page: 12 12\n-TeXDict begin 12 11 bop 0 100 a Fn(12)p 166 100 1243\n-4 v 1408 w Fl(MPI)26 b Fd(:)i Fm(DRAFT)f Fd(August)h(3,)f(2025)p\n-2657 100 V 556 377 a Fl(stats[0])97 b Fn(|)i(#)28 b(of)g(messages)e\n+TeXDict begin 12 11 bop 0 100 a Fn(12)p 166 100 1296\n+4 v 1461 w Fl(MPI)26 b Fd(:)i Fm(DRAFT)f Fd(July)g(1,)g(2024)p\n+2605 100 V 556 377 a Fl(stats[0])97 b Fn(|)i(#)28 b(of)g(messages)e\n (sen)n(t)344 b Fl(stats[1])96 b Fn(|)k(#)28 b(of)f(b)n(ytes)g(sen)n(t)\n 556 477 y Fl(stats[2])97 b Fn(|)i(#)28 b(of)g(messages)e(receiv)n(ed)\n 198 b Fl(stats[3])96 b Fn(|)k(#)28 b(of)f(b)n(ytes)g(receiv)n(ed)208\n 688 y(This)g(metho)r(d)h(is)g Fm(safe)g Fn(in)g(the)g(sense)f(that)h\n (it)g(uses)f(only)h Fl(MPI)p 2162 688 27 4 v 30 w(Sendrecv\\(\\))p\n Fn(.)208 829 y Fm(Err)l(or)35 b(che)l(cking:)50 b Fn(If)34\n b Fl(sendIVL)c Fn(or)i Fl(stats)f Fn(is)j Fl(NULL)p Fn(,)d(or)i(if)g\n@@ -6059,17 +6046,17 @@\n 208 4893 y(en)n(tries)j(from)g(\\014le)i Fl(matrix.)m\n Fh(q)s Fl(.input)c Fn(and)j(righ)n(t)f(hand)h(side)g(en)n(tries)f(from)\n h(\\014le)g Fl(rhs.)o Fh(q)s Fl(.input)m Fn(.)47 b(The)31\n b(format)g(for)208 4993 y(the)d(matrix)f(\\014les)g(is)h(as)f(follo)n\n (ws:)208 5208 y Fl(neqns)41 b(neqns)h(nent)208 5308 y(irow)f(jcol)h\n (entry)208 5407 y(...)85 b(...)h(...)p eop end\n %%Page: 13 13\n-TeXDict begin 13 12 bop 83 100 1243 4 v 1409 100 a Fl(MPI)26\n-b Fd(:)i Fm(DRAFT)110 b Fd(August)28 b(3,)f(2025)p 2576\n-100 V 1243 w Fn(13)208 390 y(where)j Fl(neqns)g Fn(is)h(the)h(global)e\n+TeXDict begin 13 12 bop 83 100 1296 4 v 1461 100 a Fl(MPI)27\n+b Fd(:)h Fm(DRAFT)110 b Fd(July)27 b(1,)g(2024)p 2523\n+100 V 1296 w Fn(13)208 390 y(where)j Fl(neqns)g Fn(is)h(the)h(global)e\n (n)n(um)n(b)r(er)i(of)f(equations)g(and)g Fl(nent)f Fn(is)h(the)h(n)n\n (um)n(b)r(er)f(of)h(en)n(tries)e(in)i(this)g(\\014le.)49\n b(There)208 490 y(follo)n(ws)22 b Fl(nent)h Fn(lines,)h(eac)n(h)f(con)n\n (taining)g(a)g(ro)n(w)g(index,)i(a)e(column)h(index)g(and)f(one)h(or)f\n (t)n(w)n(o)g(\\015oating)g(p)r(oin)n(t)h(n)n(um)n(b)r(ers,)208\n 589 y(one)j(if)h(real,)f(t)n(w)n(o)f(if)j(complex.)36\n b(The)28 b(format)f(for)g(the)h(righ)n(t)f(hand)g(side)h(\\014le)f(is)h\n@@ -6144,17 +6131,17 @@\n y Fl(nrow)i Fn(lines,)i(eac)n(h)f(con)n(taining)g(a)h(ro)n(w)f(index)h\n (and)g(either)g Fl(nrhs)e Fn(or)i Fl(2*nrhs)d Fn(\\015oating)i(p)r(oin)n\n (t)i(n)n(um)n(b)r(ers,)e(the)i(\\014rst)f(if)208 5407\n y(real,)e(the)i(second)f(if)h(complex.)37 b(Use)27 b(the)h(script)g\n (\\014le)f Fl(do)p 1997 5407 27 4 v 31 w(patchAndGo)d\n Fn(for)j(testing.)p eop end\n %%Page: 14 14\n-TeXDict begin 14 13 bop 0 100 a Fn(14)p 166 100 1243\n-4 v 1408 w Fl(MPI)26 b Fd(:)i Fm(DRAFT)f Fd(August)h(3,)f(2025)p\n-2657 100 V 307 390 a Ff(\\210)42 b Fn(The)23 b Fl(msglvl)e\n+TeXDict begin 14 13 bop 0 100 a Fn(14)p 166 100 1296\n+4 v 1461 w Fl(MPI)26 b Fd(:)i Fm(DRAFT)f Fd(July)g(1,)g(2024)p\n+2605 100 V 307 390 a Ff(\\210)42 b Fn(The)23 b Fl(msglvl)e\n Fn(parameter)g(determines)i(the)h(amoun)n(t)e(of)h(output.)36\n b(Use)23 b Fl(msglvl)41 b(=)i(1)23 b Fn(for)g(just)g(timing)g(output.)\n 307 528 y Ff(\\210)42 b Fn(The)32 b Fl(msgFile)c Fn(parameter)i\n (determines)h(the)h(message)e(\\014le)i(|)f(if)h Fl(msgFile)d\n Fn(is)i Fl(stdout)p Fn(,)f(then)i(the)g(message)390 628\n y(\\014le)c(is)f Fm(stdout)p Fn(,)h(otherwise)e(a)i(\\014le)f(is)h(op)r\n (ened)f(with)i Fm(app)l(end)g Fn(status)e(to)g(receiv)n(e)g(an)n(y)g\n@@ -6236,17 +6223,17 @@\n Fl(X)p Fn(.)307 5131 y Ff(\\210)42 b Fl(inc1)26 b Fn(is)i(the)g(ro)n(w)e\n (incremen)n(t)h(for)g Fl(X)p Fn(.)307 5269 y Ff(\\210)42\n b Fl(inc2)26 b Fn(is)i(the)g(column)f(incremen)n(t)h(for)f\n Fl(X)p Fn(.)307 5407 y Ff(\\210)42 b Fn(The)28 b Fl(seed)e\n Fn(parameter)g(is)h(a)h(random)e(n)n(um)n(b)r(er)i(seed.)p\n eop end\n %%Page: 15 15\n-TeXDict begin 15 14 bop 83 100 1243 4 v 1409 100 a Fl(MPI)26\n-b Fd(:)i Fm(DRAFT)110 b Fd(August)28 b(3,)f(2025)p 2576\n-100 V 1243 w Fn(15)101 390 y(4.)42 b Fl(testGraph_Bcast)37\n+TeXDict begin 15 14 bop 83 100 1296 4 v 1461 100 a Fl(MPI)27\n+b Fd(:)h Fm(DRAFT)110 b Fd(July)27 b(1,)g(2024)p 2523\n+100 V 1296 w Fn(15)101 390 y(4.)42 b Fl(testGraph_Bcast)37\n b(msglvl)k(msgFile)g(type)h(nvtx)g(nitem)f(root)h(seed)208\n 528 y Fn(This)35 b(driv)n(er)g(program)f(tests)h(the)h(distributed)h\n Fl(Graph)p 2007 528 27 4 v 29 w(MPI)p 2168 528 V 30 w(Bcast\\(\\))c\n Fn(metho)r(d.)62 b(Pro)r(cessor)33 b Fl(root)h Fn(generates)g(a)208\n 628 y(random)g(graph)f(of)i(t)n(yp)r(e)g Fl(type)f Fn(\\(see)g(the)i(do)\n r(cumen)n(tation)e(for)h(the)g Fl(Graph)e Fn(ob)5 b(ject)35\n b(in)g(c)n(hapter)f Fe(??)p Fn(\\))h(with)h Fl(nvtx)208\n@@ -6338,17 +6325,17 @@\n b Fn(The)29 b Fl(type)e Fn(parameter)g(sp)r(eci\\014es)i(whether)g(the)g\n (linear)f(system)g(is)h(real)f(or)g(complex.)40 b(Use)28\n b Fl(1)h Fn(for)f(real)g(and)g Fl(2)390 5270 y Fn(for)f(complex.)307\n 5407 y Ff(\\210)42 b Fn(The)28 b Fl(symmetryflag)23 b\n Fn(parameter)j(denotes)h(the)h(presence)f(or)f(absence)h(of)h(symmetry)\n -7 b(.)p eop end\n %%Page: 16 16\n-TeXDict begin 16 15 bop 0 100 a Fn(16)p 166 100 1243\n-4 v 1408 w Fl(MPI)26 b Fd(:)i Fm(DRAFT)f Fd(August)h(3,)f(2025)p\n-2657 100 V 456 390 a Fe({)41 b Fn(Use)f Fl(0)g Fn(for)f(a)g(real)g(or)g\n+TeXDict begin 16 15 bop 0 100 a Fn(16)p 166 100 1296\n+4 v 1461 w Fl(MPI)26 b Fd(:)i Fm(DRAFT)f Fd(July)g(1,)g(2024)p\n+2605 100 V 456 390 a Fe({)41 b Fn(Use)f Fl(0)g Fn(for)f(a)g(real)g(or)g\n (complex)g(symmetric)g(matrix)g Fh(A)p Fn(.)74 b(A)40\n b(\\()p Fh(U)2703 360 y Fg(T)2782 390 y Fn(+)26 b Fh(I)7\n b Fn(\\))p Fh(D)r Fn(\\()p Fh(I)34 b Fn(+)26 b Fh(U)9 b\n Fn(\\))40 b(factorization)e(is)545 490 y(computed.)456\n 601 y Fe({)j Fn(Use)28 b Fl(1)f Fn(for)g(a)h(complex)f(Hermitian)g\n (matrix)g Fh(A)p Fn(.)38 b(A)28 b(\\()p Fh(U)2273 571\n y Fg(H)2354 601 y Fn(+)18 b Fh(I)7 b Fn(\\))p Fh(D)r Fn(\\()p\n@@ -6446,17 +6433,17 @@\n (stored)f(con)n(tiguously)f(or)h(at)g(least)h(in)f(one)208\n 5279 y(blo)r(c)n(k)h(of)g(storage,)f(w)n(e)h(could)h(ha)n(v)n(e)e(used)\n i(the)f Fl(MPI)p 1835 5279 V 31 w(Alltoallv\\(\\))c Fn(metho)r(d.)208\n 5407 y(Use)k(the)h(script)f(\\014le)h Fl(do)p 968 5407\n V 31 w(IVL)p 1131 5407 V 30 w(alltoall)c Fn(for)j(testing.)p\n eop end\n %%Page: 17 17\n-TeXDict begin 17 16 bop 83 100 1243 4 v 1409 100 a Fl(MPI)26\n-b Fd(:)i Fm(DRAFT)110 b Fd(August)28 b(3,)f(2025)p 2576\n-100 V 1243 w Fn(17)307 390 y Ff(\\210)42 b Fn(The)23 b\n+TeXDict begin 17 16 bop 83 100 1296 4 v 1461 100 a Fl(MPI)27\n+b Fd(:)h Fm(DRAFT)110 b Fd(July)27 b(1,)g(2024)p 2523\n+100 V 1296 w Fn(17)307 390 y Ff(\\210)42 b Fn(The)23 b\n Fl(msglvl)e Fn(parameter)g(determines)i(the)h(amoun)n(t)e(of)h(output.)\n 36 b(Use)23 b Fl(msglvl)41 b(=)i(1)23 b Fn(for)g(just)g(timing)g\n (output.)307 524 y Ff(\\210)42 b Fn(The)32 b Fl(msgFile)c\n Fn(parameter)i(determines)h(the)h(message)e(\\014le)i(|)f(if)h\n Fl(msgFile)d Fn(is)i Fl(stdout)p Fn(,)f(then)i(the)g(message)390\n 624 y(\\014le)c(is)f Fm(stdout)p Fn(,)h(otherwise)e(a)i(\\014le)f(is)h\n (op)r(ened)f(with)i Fm(app)l(end)g Fn(status)e(to)g(receiv)n(e)g(an)n\n@@ -6555,17 +6542,17 @@\n y Ff(\\210)42 b Fn(The)32 b Fl(msgFile)c Fn(parameter)i(determines)h\n (the)h(message)e(\\014le)i(|)f(if)h Fl(msgFile)d Fn(is)i\n Fl(stdout)p Fn(,)f(then)i(the)g(message)390 5407 y(\\014le)c(is)f\n Fm(stdout)p Fn(,)h(otherwise)e(a)i(\\014le)f(is)h(op)r(ened)f(with)i\n Fm(app)l(end)g Fn(status)e(to)g(receiv)n(e)g(an)n(y)g(output)h(data.)p\n eop end\n %%Page: 18 18\n-TeXDict begin 18 17 bop 0 100 a Fn(18)p 166 100 1243\n-4 v 1408 w Fl(MPI)26 b Fd(:)i Fm(DRAFT)f Fd(August)h(3,)f(2025)p\n-2657 100 V 307 390 a Ff(\\210)42 b Fn(The)28 b Fl(nrowA)d\n+TeXDict begin 18 17 bop 0 100 a Fn(18)p 166 100 1296\n+4 v 1461 w Fl(MPI)26 b Fd(:)i Fm(DRAFT)f Fd(July)g(1,)g(2024)p\n+2605 100 V 307 390 a Ff(\\210)42 b Fn(The)28 b Fl(nrowA)d\n Fn(parameter)i(is)g(the)h(n)n(um)n(b)r(er)f(of)h(ro)n(ws)e(in)i\n Fh(A)p Fn(.)307 524 y Ff(\\210)42 b Fn(The)28 b Fl(ncolA)d\n Fn(parameter)i(is)g(the)h(n)n(um)n(b)r(er)f(of)h(columns)f(in)h\n Fh(A)p Fn(.)307 658 y Ff(\\210)42 b Fn(The)28 b Fl(nentA)d\n Fn(parameter)i(is)g(the)h(n)n(um)n(b)r(er)f(of)h(en)n(tries)f(to)g(b)r\n (e)h(put)h(in)n(to)e Fh(A)p Fn(.)307 792 y Ff(\\210)42\n b Fn(The)28 b Fl(nrowX)d Fn(parameter)i(is)g(the)h(n)n(um)n(b)r(er)f\n@@ -6655,17 +6642,17 @@\n (timing)g(output.)307 5308 y Ff(\\210)42 b Fn(The)32 b\n Fl(msgFile)c Fn(parameter)i(determines)h(the)h(message)e(\\014le)i(|)f\n (if)h Fl(msgFile)d Fn(is)i Fl(stdout)p Fn(,)f(then)i(the)g(message)390\n 5407 y(\\014le)c(is)f Fm(stdout)p Fn(,)h(otherwise)e(a)i(\\014le)f(is)h\n (op)r(ened)f(with)i Fm(app)l(end)g Fn(status)e(to)g(receiv)n(e)g(an)n\n (y)g(output)h(data.)p eop end\n %%Page: 19 19\n-TeXDict begin 19 18 bop 83 100 1243 4 v 1409 100 a Fl(MPI)26\n-b Fd(:)i Fm(DRAFT)110 b Fd(August)28 b(3,)f(2025)p 2576\n-100 V 1243 w Fn(19)307 390 y Ff(\\210)42 b Fn(The)28 b\n+TeXDict begin 19 18 bop 83 100 1296 4 v 1461 100 a Fl(MPI)27\n+b Fd(:)h Fm(DRAFT)110 b Fd(July)27 b(1,)g(2024)p 2523\n+100 V 1296 w Fn(19)307 390 y Ff(\\210)42 b Fn(The)28 b\n Fl(neqns)d Fn(parameter)i(is)g(the)h(n)n(um)n(b)r(er)f(of)h(equations)f\n (for)g(the)h(matrix.)307 518 y Ff(\\210)42 b Fn(The)28\n b Fl(seed)e Fn(parameter)g(is)h(a)h(random)e(n)n(um)n(b)r(er)i(seed.)\n 307 647 y Ff(\\210)42 b Fn(The)24 b Fl(coordType)c Fn(parameter)i\n (de\\014nes)i(the)g(co)r(ordinate)e(t)n(yp)r(e)i(that)g(will)g(b)r(e)g\n (used)f(during)g(the)h(redistribution.)390 746 y(V)-7\n b(alid)28 b(v)-5 b(alues)27 b(are)g Fl(1)g Fn(for)g(ro)n(ws,)f\n@@ -6757,17 +6744,17 @@\n g Fl(IVL)208 5308 y Fn(ob)5 b(ject)39 b(that)h(con)n(tains)f(the)h\n (necessary)e(parts)h(of)g(a)h(sym)n(b)r(olic)f(factorization)f(for)h\n (eac)n(h)g(pro)r(cessor.)71 b(The)40 b(pro-)208 5407\n y(gram)34 b(reads)g(in)i(the)g(global)f Fl(Graph)e Fn(and)j\n Fl(ETree)d Fn(ob)5 b(jects.)60 b(Eac)n(h)35 b(pro)r(cessor)e(creates)i\n (a)g(global)f Fl(InpMtx)f Fn(ob)5 b(ject)p eop end\n %%Page: 20 20\n-TeXDict begin 20 19 bop 0 100 a Fn(20)p 166 100 1243\n-4 v 1408 w Fl(MPI)26 b Fd(:)i Fm(DRAFT)f Fd(August)h(3,)f(2025)p\n-2657 100 V 208 390 a Fn(from)j(the)i(structure)e(of)h(the)h(graph)e\n+TeXDict begin 20 19 bop 0 100 a Fn(20)p 166 100 1296\n+4 v 1461 w Fl(MPI)26 b Fd(:)i Fm(DRAFT)f Fd(July)g(1,)g(2024)p\n+2605 100 V 208 390 a Fn(from)j(the)i(structure)e(of)h(the)h(graph)e\n (and)h(computes)f(a)h(global)f(sym)n(b)r(olic)h(factorization)e(ob)5\n b(ject)31 b(using)g(the)g(serial)208 490 y Fl(SymbFac)p\n 521 490 27 4 v 28 w(initFromInpMtx\\(\\))23 b Fn(metho)r(d.)43\n b(The)30 b(pro)r(cessors)d(then)j(compute)f(a)h(map)f(from)g(fron)n(ts)\n g(to)g(pro)r(cessors,)208 589 y(and)g(eac)n(h)f(pro)r(cessor)f(thro)n\n (ws)h(a)n(w)n(a)n(y)f(the)i(uno)n(wned)g(matrix)g(en)n(tries)f(from)h\n (the)g Fl(InpMtx)e Fn(ob)5 b(ject.)41 b(The)29 b(pro)r(cessors)208\n", "details": [{"source1": "ps2ascii {}", "source2": "ps2ascii {}", "unified_diff": "@@ -31,15 +31,15 @@\n scatter/added into Y.\r\n TheMatMulInfoobjectstoresallthenecessaryinformationtomakethishappen. ThereisoneMatMulInfo\r\n object per processor. It has the following \ufb01elds.\r\n \u2022 symflag \u2014 symmetry \ufb02ag for A\r\n \u2013 0 (SPOOLES SYMMETRIC) \u2013 symmetric matrix\r\n \u2013 1 (SPOOLES HERMITIAN) \u2013 hermitian matrix\r\n 1\r\n- 2 MPI : DRAFT August 3, 2025\r\n+ 2 MPI : DRAFT July 1, 2024\r\n \u2013 2 (SPOOLES NONSYMMETRIC) \u2013 nonsymmetric matrix\r\n \u2022 opflag \u2014 operation \ufb02ag for the multiply\r\n \u2013 0 (MMM WITH A) \u2014 perform Y := Y +\u03b1AX\r\n \u2013 1 (MMM WITH AT) \u2014 perform Y := Y +\u03b1ATX\r\n \u2013 2 (MMM WITH AH) \u2014 perform Y := Y +\u03b1AHX\r\n \u2022 IV *XownedIV \u2014 list of rows of X that are owned by this processor, these form the rows of Xq.\r\n \u2022 IV *XsupIV \u2014 list of rows of X that are accessed by this processor, these form the rows of Xq\r\n@@ -73,15 +73,15 @@\n In a distributed environment, data must be distributed, and sometimes during a computation, data must be\r\n re-distributed. These methods split and redistribute four data objects.\r\n 1. void DenseMtx_MPI_splitByRows ( DenseMtx *mtx, IV *mapIV, int stats[], int msglvl,\r\n FILE *msgFile, int firsttag, MPI_Comm comm ) ;\r\n This method splits and redistributes the DenseMtx object based on the mapIV object that maps rows to\r\n processes. The messages that will be sent require nproc consecutive tags \u2014 the \ufb01rst is the parameter\r\n firsttag. On return, the stats[] vector contains the following information.\r\n- MPI : DRAFT August 3, 2025 3\r\n+ MPI : DRAFT July 1, 2024 3\r\n stats[0] \u2014 #ofmessagessent stats[1] \u2014 #ofbytessent\r\n stats[2] \u2014 #ofmessagesreceived stats[3] \u2014 #ofbytesreceived\r\n Note, the values in stats[] are incremented, i.e., the stats[] vector is not zeroed at the start of the\r\n method, and so can be used to accumulated information with multiple calls.\r\n Error checking: If mtx or rowmapIV is NULL, or if msglvl > 0 and msgFile is NULL, or if firsttag <\r\n 0 or firsttag + nproc is larger than the largest available tag, an error message is printed and the\r\n program exits.\r\n@@ -117,15 +117,15 @@\n use the chevron coordinate type to store the matrix entries. This method will redistribute a matrix\r\n by rows if the coordinate type is 1 (for rows) and mapIV is a row map. Similarly, this method will\r\n redistribute a matrix by columns if the coordinate type is 2 (for columns) and mapIV is a column map.\r\n See the InpMtx object for details. The messages that will be sent require nproc consecutive tags \u2014 the\r\n \ufb01rst is the parameter firsttag. On return, the stats[] vector contains the following information.\r\n stats[0] \u2014 #ofmessagessent stats[1] \u2014 #ofbytessent\r\n stats[2] \u2014 #ofmessagesreceived stats[3] \u2014 #ofbytesreceived\r\n- 4 MPI : DRAFT August 3, 2025\r\n+ 4 MPI : DRAFT July 1, 2024\r\n Note, the values in stats[] are incremented, i.e., the stats[] vector is not zeroed at the start of the\r\n method, and so can be used to accumulated information with multiple calls.\r\n Error checking: If firsttag < 0 or firsttag + nproc is larger than the largest available tag, an\r\n error message is printed and the program exits.\r\n 5. InpMtx * InpMtx_MPI_splitFromGlobal ( InpMtx *Aglobal, InpMtx *Alocal,\r\n IV *mapIV, int root, int stats[], int msglvl,\r\n FILE *msgFile, int firsttag, MPI_Comm comm ) ;\r\n@@ -158,15 +158,15 @@\n knownpriortoenteringthis method. Onreturn, the stats[]vectorcontainsthe followinginformation.\r\n stats[0] \u2014 #ofmessagessent stats[1] \u2014 #ofbytessent\r\n stats[2] \u2014 #ofmessagesreceived stats[3] \u2014 #ofbytesreceived\r\n Note, the values in stats[] are incremented, i.e., the stats[] vector is not zeroed at the start of the\r\n method, and so can be used to accumulated information with multiple calls.\r\n Error checking: If mtx or rowmapIV is NULL, or if msglvl > 0 and msgFile is NULL, or if firsttag <\r\n 0 is larger than the largest available tag, an error message is printed and the program exits.\r\n- MPI : DRAFT August 3, 2025 5\r\n+ MPI : DRAFT July 1, 2024 5\r\n 1.2.2 Gather and scatter methods\r\n These method gather and scatter/add rows of DenseMtx objects. These operations are performed during the\r\n distributed matrix-matrixmultiply. ThegatheroperationXq \u2190XisperformedbyDenseMtx MPI gatherRows(),\r\n P supp\r\n while the scatter/add operation Y q := Y q + Yr is performed by DenseMtx MPI scatterAddRows().\r\n r supp\r\n 1. void DenseMtx_MPI_gatherRows ( DenseMtx *Y, DenseMtx *X, IVL *sendIVL,\r\n@@ -202,15 +202,15 @@\n 1.2.3 Symbolic Factorization methods\r\n 1. IVL * SymbFac_MPI_initFromInpMtx ( ETree *etree, IV *frontOwnersIV,\r\n InpMtx *inpmtx, int stats[], int msglvl,\r\n FILE *msgFile, int firsttag, MPI_Comm comm ) ;\r\n IVL * SymbFac_MPI_initFromPencil ( ETree *etree, IV *frontOwnersIV,\r\n Pencil *pencil, int stats[], int msglvl,\r\n FILE *msgFile, int firsttag, MPI_Comm comm ) ;\r\n- 6 MPI : DRAFT August 3, 2025\r\n+ 6 MPI : DRAFT July 1, 2024\r\n ThesemethodsareusedinplaceoftheSymbfac initFrom{InpMtx,Pencil}()methodstocomputethe\r\n symbolic factorization. The ETree object is assumed to be replicated over the processes. The InpMtx\r\n and Pencil objects are partitioned among the processes. Therefore, to compute the IVL object that\r\n contains the symbolic factorization is a distributed, cooperative process. At the end of the symbolic\r\n factorization, each process will own a portion of the IVL object. The IVL object is neither replicated\r\n nor partitioned (except in trivial cases), but the IVL object on each process contains just a portion,\r\n usually not much more than what it needs to know for its part of the factorization and solves.\r\n@@ -247,15 +247,15 @@\n cpus[0] \u2013 initialize fronts cpus[7] \u2013 extract postponed data\r\n cpus[1] \u2013 load original entries cpus[8] \u2013 store factor entries\r\n cpus[2] \u2013 update fronts cpus[9] \u2013 post initial receives\r\n cpus[3] \u2013 insert aggregate data cpus[10] \u2013 check for received messages\r\n cpus[4] \u2013 assemble aggregate data cpus[11] \u2013 post initial sends\r\n cpus[5] \u2013 assemble postponed data cpus[12] \u2013 check for sent messages\r\n cpus[6] \u2013 factor fronts\r\n- MPI : DRAFT August 3, 2025 7\r\n+ MPI : DRAFT July 1, 2024 7\r\n Onreturn, the stats[] vector has the following information.\r\n stats[0] \u2014 #ofpivots\r\n stats[1] \u2014 #ofpivot tests\r\n stats[2] \u2014 #ofdelayed rows and columns\r\n stats[3] \u2014 #ofentries in D\r\n stats[4] \u2014 #ofentries in L\r\n stats[5] \u2014 #ofentries in U\r\n@@ -293,15 +293,15 @@\n Error checking: If frontmtx, frontOwnersIV or stats is NULL, or if firsttag < 0 or firsttag +\r\n nproc, is larger than the largest available tag, or if msglvl > 0 and msgFile is NULL, an error message\r\n is printed and the program exits.\r\n 3. void IV_MPI_allgather ( IV *iv, IV *ownersIV, int stats[], int msglvl,\r\n FILE *msgFile, int firsttag, MPI_Comm comm ) ;\r\n After a factorization with pivoting, the frontsizesIVobject needs to be made globalon eachprocessor.\r\n This methods takes the individual entries of an IV object whose owners are speci\ufb01ed by the ownersIV\r\n- 8 MPI : DRAFT August 3, 2025\r\n+ 8 MPI : DRAFT July 1, 2024\r\n object, and communicates the entries around the processors until the global IV object is present on\r\n each. The messagesthat will be sent require at most nprocconsecutive tags \u2014 the \ufb01rst is the parameter\r\n firsttag.\r\n Error checking: If iv, ownersIV or stats is NULL, or if firsttag < 0 or firsttag + nproc, is larger\r\n than the largest available tag, or if msglvl > 0 and msgFile is NULL, an error message is printed and\r\n the program exits.\r\n 4. void IVL_MPI_allgather ( IVL *ivl, IV *ownersIV, int stats[], int msglvl,\r\n@@ -334,15 +334,15 @@\n stats[4] \u2014 #ofsolution messages received\r\n stats[5] \u2014 #ofaggregatemessages received\r\n stats[6] \u2014 #ofsolution bytes received\r\n stats[7] \u2014 #ofaggregatebytes received\r\n Error checking: If frontmtx, mtxX,mtxB, mtxmanager,solvemap,cpusorstatsisNULL,oriffirsttag\r\n < 0 or firsttag + 2*nfront is larger than the largest available tag, or if msglvl > 0 and msgFile\r\n is NULL, an error message is printed and the program exits.\r\n- MPI : DRAFT August 3, 2025 9\r\n+ MPI : DRAFT July 1, 2024 9\r\n 1.2.7 Matrix-matrix multiply methods\r\n The usual sequence of events is as follows.\r\n \u2022 Set up the data structure via a call to MatMul MPI setup().\r\n \u2022 Convert the local Aq matrix to local indices via a call to MatMul setLocalIndices().\r\n \u2022 Compute the matrix-matrix multiply with a call to MatMul MPI mmm(). Inside this method, the MPI\r\n methods DenseMtx MPI gatherRows()and DenseMtx MPI scatterAddRows()are called, along with a\r\n serial InpMtx matrix-matrix multiply method.\r\n@@ -371,15 +371,15 @@\n 2. void MatMul_setLocalIndices ( MatMulInfo *info, InpMtx *A ) ;\r\n void MatMul_setGlobalIndices ( MatMulInfo *info, InpMtx *A ) ;\r\n The \ufb01rst method maps the indices of A (which are assumed to be global) into local indices. The second\r\n method maps the indices of A (which are assumed to be local) back into global indices. It uses the\r\n XmapIV, XsupIV YmapIV and YsupIV objects that are contained in the info object. These are serial\r\n methods, performed independently on each processor.\r\n Error checking: If info or A is NULL, an error message is printed and the program exits.\r\n- 10 MPI : DRAFT August 3, 2025\r\n+ 10 MPI : DRAFT July 1, 2024\r\n 3. void MatMul_MPI_mmm ( MatMulInfo *info, DenseMtx *Yloc, double alpha[], InpMtx *A,\r\n DenseMtx *Xloc, int stats[], int msglvl, FILE *msgFile, MPI_Comm comm) ;\r\n This method computes a distributed matrix-matrix multiply Y := Y + \u03b1AX, Y := Y + \u03b1ATX or\r\n H\r\n Y := Y +\u03b1A X, depending on how the info object was set up. NOTE: A must have local indices,\r\n use MatMul setLocalIndices() to convert from global to local indices. Xloc and Yloc contain the\r\n owned rows of X and Y, respectively.\r\n@@ -413,15 +413,15 @@\n Error checking: None presently.\r\n 4. IV * IV_MPI_Bcast ( IV *obj, int root,\r\n int msglvl, FILE *msgFile, MPI_Comm comm ) ;\r\n This method is a broadcast method for an IV object. The root processor broadcasts its IV object to\r\n the other nodes and returns a pointer to its IV object. A node other than root, clears the data in its\r\n IV object, receives the IV object from the root and returns a pointer to it.\r\n Error checking: None presently.\r\n- MPI : DRAFT August 3, 2025 11\r\n+ MPI : DRAFT July 1, 2024 11\r\n 1.2.9 Utility methods\r\n 1. IVL * InpMtx_MPI_fullAdjacency ( InpMtx *inpmtx, int stats[],\r\n int msglvl, FILE *msgFile, MPI_Comm comm ) ;\r\n IVL * Pencil_MPI_fullAdjacency ( Pencil *pencil, int stats[],\r\n int msglvl, FILE *msgFile, MPI_Comm comm ) ;\r\n These methods are used to return an IVL object that contains the full adjacency structure of the\r\n graph of the matrix or matrix pencil. The matrix or matrix pencil is distributed among the processes,\r\n@@ -458,15 +458,15 @@\n IVL_MPI_alltoall ( IVL *sendIVL, IVL *recvIVL, int stats[], int msglvl,\r\n FILE *msgFile, int firsttag, MPI_Comm comm ) ;\r\n This method is used during the setup for matrix-vector multiplies. Each processor has computed\r\n the vertices it needs from other processors, these lists are contained in sendIVL. On return, recvIVL\r\n contains the lists of vertices this processor must send to all others.\r\n This method uses tags in the range [tag,tag+nproc-1). On return, the following statistics will have\r\n been added.\r\n- 12 MPI : DRAFT August 3, 2025\r\n+ 12 MPI : DRAFT July 1, 2024\r\n stats[0] \u2014 #ofmessagessent stats[1] \u2014 #ofbytessent\r\n stats[2] \u2014 #ofmessagesreceived stats[3] \u2014 #ofbytesreceived\r\n This method is safe in the sense that it uses only MPI Sendrecv().\r\n Error checking: If sendIVL or stats is NULL, or if msglvl > 0 and msgFile is NULL, or if tag < 0\r\n or tag + nproc is larger than the largest available tag, an error message is printed and the program\r\n exits.\r\n 5. void * makeSendRecvIVLs ( IV *supportedIV, IV *globalmapIV, IVL *sendIVL, IVL *recvIVL,\r\n@@ -497,15 +497,15 @@\n the matrix, factoring the matrix, and solving the system. Use the script \ufb01le do AllInOne for testing.\r\n The \ufb01les names for the matrix and right hand side entries are hardcoded. Processor q reads in matrix\r\n entries from \ufb01le matrix.q.input and right hand side entries from \ufb01le rhs.q.input. The format for\r\n the matrix \ufb01les is as follows:\r\n neqns neqns nent\r\n irow jcol entry\r\n ... ... ...\r\n- MPI : DRAFT August 3, 2025 13\r\n+ MPI : DRAFT July 1, 2024 13\r\n where neqns is the global number of equations and nent is the number of entries in this \ufb01le. There\r\n follows nent lines, each containing a row index, a column index and one or two \ufb02oating point numbers,\r\n one if real, two if complex. The format for the right hand side \ufb01le is similar:\r\n nrow nrhs\r\n irow entry ... entry\r\n ... ... ... ...\r\n where nrow is the number of rows in this \ufb01le and nrhs is the number of rigght and sides. There follows\r\n@@ -540,15 +540,15 @@\n one if real, two if complex. The format for the right hand side \ufb01le is similar:\r\n nrow nrhs\r\n irow entry ... entry\r\n ... ... ... ...\r\n where nrow is the number of rows in this \ufb01le and nrhs is the number of rigght and sides. There follows\r\n nrow lines, each containing a row index and either nrhs or 2*nrhs \ufb02oating point numbers, the \ufb01rst if\r\n real, the second if complex. Use the script \ufb01le do patchAndGo for testing.\r\n- 14 MPI : DRAFT August 3, 2025\r\n+ 14 MPI : DRAFT July 1, 2024\r\n \u2022 The msglvlparameterdetermines the amount of output. Use msglvl = 1 for just timing output.\r\n \u2022 The msgFile parameter determines the message \ufb01le \u2014 if msgFile is stdout, then the message\r\n \ufb01le is stdout, otherwise a \ufb01le is opened with append status to receive any output data.\r\n \u2022 The type parameter speci\ufb01es a real or complex linear system.\r\n \u2013 type = 1 (SPOOLES REAL) for real,\r\n \u2013 type = 2 (SPOOLES COMPLEX) for complex.\r\n \u2022 The symmetryflag parameter speci\ufb01es the symmetry of the matrix.\r\n@@ -582,15 +582,15 @@\n \u2022 The type parameter speci\ufb01es whether the linear system is real (type = 1) or complex (type =\r\n 2).\r\n \u2022 nrow is the number of rows in X.\r\n \u2022 ncol is the number of columns in X.\r\n \u2022 inc1 is the row increment for X.\r\n \u2022 inc2 is the column increment for X.\r\n \u2022 The seed parameter is a random number seed.\r\n- MPI : DRAFT August 3, 2025 15\r\n+ MPI : DRAFT July 1, 2024 15\r\n 4. testGraph_Bcast msglvl msgFile type nvtx nitem root seed\r\n This driver program tests the distributed Graph MPI Bcast() method. Processor root generates a\r\n random graph of type type (see the documentation for the Graph object in chapter ??) with nvtx\r\n vertices. The random graph is constructed via an InpMtx object using nitem edges. Processor root\r\n then sends its Graph object to the other processors. Each processor computes a checksum for its object,\r\n and the error are collected on processor 0. Use the script \ufb01le do Graph Bcast for testing.\r\n \u2022 The msglvlparameterdetermines the amount of output. Use msglvl = 1 for just timing output.\r\n@@ -625,15 +625,15 @@\n \u2022 The n3 parameter is the number of grid points in the third direction.\r\n \u2022 The maxzeros parameter is the maximum number of zero entries allowed in a front.\r\n \u2022 The maxsize parameter is the maximum number of internal rows and columns allowed in a front.\r\n \u2022 The seed parameter is a random number seed.\r\n \u2022 The type parameter speci\ufb01es whether the linear system is real or complex. Use 1 for real and 2\r\n for complex.\r\n \u2022 The symmetryflag parameter denotes the presence or absence of symmetry.\r\n- 16 MPI : DRAFT August 3, 2025\r\n+ 16 MPI : DRAFT July 1, 2024\r\n \u2013 Use 0 for a real or complex symmetric matrix A. A (UT + I)D(I + U) factorization is\r\n computed.\r\n \u2013 Use 1 for a complex Hermitian matrix A. A (UH +I)D(I +U) factorization is computed.\r\n \u2013 Use 2 for a real or complex nonsymmetric matrix A. A (L + I)D(I + U) factorization is\r\n computed.\r\n \u2022 The sparsityflag parameter denotes a direct or approximate factorization. Valid values are 0\r\n for a direct factorization and 1 is for an approximate factorization.\r\n@@ -671,15 +671,15 @@\n IVL object with nproc lists. List iproc contains a set of ids of items that this processor will receive\r\n from processor iproc. The processors then call IVL MPI allgather to create their \u201csend\u201d IVL object,\r\n where list iproc contains a set of ids of items that this processor will send to processor iproc. The set\r\n of lists in all the \u201creceive\u201d IVL objects is exactly the same as the set of lists in all the \u201csend\u201d objects.\r\n This is an \u201call-to-all\u201d scatter/gather operation. Had the lists be stored contiguously or at least in one\r\n block of storage, we could have used the MPI Alltoallv() method.\r\n Use the script \ufb01le do IVL alltoall for testing.\r\n- MPI : DRAFT August 3, 2025 17\r\n+ MPI : DRAFT July 1, 2024 17\r\n \u2022 The msglvlparameterdetermines the amount of output. Use msglvl = 1 for just timing output.\r\n \u2022 The msgFile parameter determines the message \ufb01le \u2014 if msgFile is stdout, then the message\r\n \ufb01le is stdout, otherwise a \ufb01le is opened with append status to receive any output data.\r\n \u2022 The n parameter is an upper bound on list size and element value.\r\n \u2022 The seed parameter is a random number seed.\r\n 8. testIVL_allgather msglvl msgFile nlist seed\r\n This driver program tests the distributed IVL MPI allgather() method. Each processor generates\r\n@@ -716,15 +716,15 @@\n local coordinates. The matrix-matrix multiply is computed, and then all the Yq local matrices are\r\n gathered onto processor zero into Y , which is then compared with Z that was computed using a serial\r\n matrix-matrix multiply. The error is written to the message \ufb01le by processor zero. Use the script \ufb01le\r\n do MMM for testing.\r\n \u2022 The msglvlparameterdetermines the amount of output. Use msglvl = 1 for just timing output.\r\n \u2022 The msgFile parameter determines the message \ufb01le \u2014 if msgFile is stdout, then the message\r\n \ufb01le is stdout, otherwise a \ufb01le is opened with append status to receive any output data.\r\n- 18 MPI : DRAFT August 3, 2025\r\n+ 18 MPI : DRAFT July 1, 2024\r\n \u2022 The nrowA parameter is the number of rows in A.\r\n \u2022 The ncolA parameter is the number of columns in A.\r\n \u2022 The nentA parameter is the number of entries to be put into A.\r\n \u2022 The nrowX parameter is the number of rows in X.\r\n \u2022 The coordTypeparameter de\ufb01nes the coordinate type that will be used during the redistribution.\r\n Valid values are 1 for rows, 2 for columns and 3 for chevrons.\r\n \u2022 The inputMode parameter de\ufb01nes the mode of input. Valid values are 1 for real entries and 2 for\r\n@@ -759,15 +759,15 @@\n This driver program tests the distributed InpMtx MPI splitFromGlobal() method to split a InpMtx\r\n sparse matrix object. Process root reads in the InpMtx object. A random map is generated (the same\r\n maponall processes) and the object is scattered from processor root to the other processors. Use the\r\n script \ufb01le do ScatterInpMtx for testing.\r\n \u2022 The msglvlparameterdetermines the amount of output. Use msglvl = 1 for just timing output.\r\n \u2022 The msgFile parameter determines the message \ufb01le \u2014 if msgFile is stdout, then the message\r\n \ufb01le is stdout, otherwise a \ufb01le is opened with append status to receive any output data.\r\n- MPI : DRAFT August 3, 2025 19\r\n+ MPI : DRAFT July 1, 2024 19\r\n \u2022 The neqns parameter is the number of equations for the matrix.\r\n \u2022 The seed parameter is a random number seed.\r\n \u2022 The coordTypeparameter de\ufb01nes the coordinate type that will be used during the redistribution.\r\n Valid values are 1 for rows, 2 for columns and 3 for chevrons.\r\n \u2022 The inputMode parameter de\ufb01nes the mode of input. Valid values are 0 for indices only, 1 for\r\n real entries and 2 for complex entries.\r\n \u2022 The inInpMtxFile parameter is the name of the \ufb01le that contain the InpMtx object.\r\n@@ -802,15 +802,15 @@\n \u2022 The inputMode parameter de\ufb01nes the mode of input. Valid values are 0 for indices only, 1 for\r\n real entries and 2 for complex entries.\r\n \u2022 The inInpMtxFile parameter is the name of the \ufb01le that contain the InpMtx object.\r\n 15. testSymbFac msglvl msgFile inGraphFile inETreeFile seed\r\n This driver program tests the distributed SymbFac MPI initFromInpMtx() method that forms a IVL\r\n object that contains the necessary parts of a symbolic factorization for each processor. The pro-\r\n gram reads in the global Graph and ETree objects. Each processor creates a global InpMtx object\r\n- 20 MPI : DRAFT August 3, 2025\r\n+ 20 MPI : DRAFT July 1, 2024\r\n from the structure of the graph and computes a global symbolic factorization object using the serial\r\n SymbFac initFromInpMtx() method. The processors then compute a map from fronts to processors,\r\n and each processor throws away the unowned matrix entries from the InpMtx object. The processors\r\n then compute their necessary symbolic factorizations in parallel. For a check, they compare the two\r\n symbolic factorizations for error. Use the script \ufb01le do symbfac for testing.\r\n \u2022 The msglvlparameterdetermines the amount of output. Use msglvl = 1 for just timing output.\r\n \u2022 The msgFile parameter determines the message \ufb01le \u2014 if msgFile is stdout, then the message\r\n"}]}]}, {"source1": "./usr/share/doc/spooles-doc/MSMD.ps.gz", "source2": "./usr/share/doc/spooles-doc/MSMD.ps.gz", "unified_diff": null, "details": [{"source1": "MSMD.ps", "source2": "MSMD.ps", "unified_diff": "@@ -11,15 +11,15 @@\n %%EndComments\n %%BeginDefaults\n %%ViewingOrientation: 1 0 0 1\n %%EndDefaults\n %DVIPSWebPage: (www.radicaleye.com)\n %DVIPSCommandLine: dvips main -o MSMD.ps\n %DVIPSParameters: dpi=600\n-%DVIPSSource: TeX output 2025.08.03:1317\n+%DVIPSSource: TeX output 2024.07.01:0700\n %%BeginProcSet: tex.pro 0 0\n %!\n /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S\n N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72\n mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0\n 0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{\n landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize\n@@ -1227,23 +1227,22 @@\n /UnderlinePosition -100 def\n /UnderlineThickness 50 def\n end readonly def\n /Encoding 256 array\n 0 1 255 {1 index exch /.notdef put} for\n dup 44 /comma put\n dup 48 /zero put\n+dup 49 /one put\n dup 50 /two put\n-dup 51 /three put\n-dup 53 /five put\n+dup 52 /four put\n dup 58 /colon put\n-dup 65 /A put\n-dup 103 /g put\n-dup 115 /s put\n-dup 116 /t put\n+dup 74 /J put\n+dup 108 /l put\n dup 117 /u put\n+dup 121 /y put\n readonly def\n currentdict end\n currentfile eexec\n D9D66F633B846AB284BCF8B0411B772DE5CE32340DC6F28AF40857E4451976E7\n 5182433CF9F333A38BD841C0D4E68BF9E012EB32A8FFB76B5816306B5EDF7C99\n 8B3A16D9B4BC056662E32C7CD0123DFAEB734C7532E64BBFBF5A60336E646716\n EFB852C877F440D329172C71F1E5D59CE9473C26B8AEF7AD68EF0727B6EC2E0C\n@@ -1424,79 +1423,67 @@\n 7CA1534C4D5B05FC33F83790ECFD7641DF3FB94289E2A1F6E7D29AB1228A867A\n 6E1EF0E9C6F899B491DC18401C2C0A05FFFED46A72C245F7529B8EA55A038082\n 8512307217D2A233C37004085BA3AEE379269F9FA7D0ADB4B19A95CC2AFE686E\n 55D88E47257C1FE6F235FEA295910569FE6DD5995512562359CC821E85A6C7A5\n 79B470A9E340A6985189FF8B6AF914A6B0ECF93F47903221F95DE894A8F05B05\n B7D99CD533EC5F931B18E6B39BECF67FA2D6DD1AEC76772B068BE06335A94C05\n 7A4DDEE77B66101DA855C17AC312600370B34E31F5EC3A01300A8EB60B4C9767\n-1B2FA10DF7E91D3BB34A1B1CE7A0015A57C813E0280D873ADB88440048702D1F\n-77994EE04EC3B4531D6E1888C86A8F0DA6CF1F056F16AB0DD76C862830F89DA4\n-28923B3AA543E0D6E41D3BD283E600BC11F889315EE92C675C109C81065ED1BC\n-82A5583D1B723D50051B0557A367887F5B263014C6E77288B4883C50889473D3\n-3787BAD4BEB88BD1353AFA5B73E61814819537E7FF09F53EF94792BB3DD36ED0\n-002D0E7A6CDAB85A9C17AF5664BCB5A71663B861880F3ECCABC8E7A2FC81A4CC\n-AE7A87503FDC1CE0077BA51ECC7B43B60793FED8E9AAD5BBD03ADD6183DCD26D\n-24A74163611C05562437644EF9B8889FD4F9D311911204FEFD35237486F2D2D0\n-B6783A03BF12EA6D19D6D0F87E4D08515F12F9CBF1961CAA71E0D69FE3C4C4D2\n-7C7FB64ED24F8684C8F00C2BEDEA53EA390CDC0B5BEBD7DD982580B2EA1F1F89\n-CFED5916630DC2BA32BB9180277E1ABC339B3B7DE086717BD93F7FF3681BA5B3\n-FCF671C4B293C2DE4A322F0AA3323A4934444C69F23EF90120B8755482757759\n-C457A435FB8BB4922BD92C5F3D9555D978275C510183E29DFF2FCE4ABBFC18DE\n-76CAD3B486BA12047DD808CD4D521A0FD368E4AE79DE262630983A5D6F0B679D\n-2F005306393C520E1B6987302D029939D94B0178DC55D5264E1FEA468AD4134C\n-8C65B2FBBE8DE8284E8E1F6BFE0B648F44D3DA8E9350D266EDBFD4A7054D9355\n-1E0B185DED37BCF32D3731358F1D707C94109428BAD3CEA456A2A43553E3D2C2\n-F549189201F3D3F715310E3E8C6A2E9AA5141AA9125D203694C7D875C2DD320F\n-C5BCDFC924F6C04DBC7A97349B45ECD0FBD7D2123ED1D3A9F440B1112BE62779\n-47A4592F9285CBD9635EC9091CEC0AFD7E6B6976974081DB9C0E43165BD8584D\n-6CDF08DED287F0883A9FBD351B3F8706BA1E94C7CA487338269482EB8DC1A05D\n-F6632A5D834DE29228C49C5BA65EF7C535A53B380BF4B391F43562147538EE97\n-E799DFC2C40315859F56BBCE9CAE1DF9293F6E2C193ABE7A724EC8F32FA220E7\n-6026877A63E318254F2AF7B1325D63FC4C52B536D3EF354814C2F8F1EEA30569\n-6EF04447DB0F809DF35B4985B9FB4F4BB6087310BE633E76F268B32ABA99CE8E\n-03163DFF4AEDB88E60DD0848C15E90026D7C24D81122EBC07113F9851914A9D5\n-D0E09C2BFDDAF10C5D8208E8329BC0C402F231CD84C95EFDD182AD9756662110\n-274650C7A5BB0D8EFA54EC6C5A49C0EB26701A54779AE8EFBBED824262761602\n-680EDFB38F0FE18C0F501F5AA8BF48A8F0DD3E5E1EBEB872F6F6B23964707B32\n-507FC677B9FDDC990E3828B06420F6F968B2F6AE81E76A2144B1ECE905485616\n-CFB29AC96DDE1F5039935D7E385CC13E34DD7EAF276A2EA3A8BF27FD4205AE13\n-7FE620E42F2CF231C6C8DD8EFC5A6CF081E5660D9ADD730D72D15C02B1E15FF3\n-D741D3B1EB1E666C4E562219033C1E2EF3F96E136998B2E1890395A3637A2C02\n-DE1C46AFCA8D898439F06606A2295D3F7ED6C7DB250C61B6B97A0D5EDDB9657E\n-E790B4E07540BB1026036F4A0D00E7F16FD757AD61D686620C6814B7DCEC43E8\n-FD36D9E75BA554F64548A67D9B0A26E11784E58D4357FC251D71B5D6D8BFDDE0\n-D3BF0E825DA5312C1904AF13C5905C2ADF79C357476183D2EC5A95243235E861\n-2F98D9EE77EF8F8CB3EC6BD358C5ED37DD3AF44D60575E7774BF96F1AE9DFAD1\n-F8646DEDF21D10311854726B8F7D25876BB1EF78E2442B16ED4B851816CF0A27\n-11FDFCE525002A1A7C3E62CD2A3EDE6FAADB026D2F3A46C030ADB22422CA8FF5\n-2545ED58C0D9FB5BDB55FE674301E91A75B005B86BD201D246F7ADACE50419FD\n-AC3312CAC5EB78A36F0E5F62E65AC92129CB574AAC59E0A7C1390DFC61F39D9E\n-D7036742F2F6E64D1EF8157E9CCF65F3EEDC6A8220235978B8E06EB80F649F3E\n-204CFB497F49306EA8E1F7B62305978A28F1E771ED82C6592C71022154E4062A\n-A92335EFC65D6DED9C686899FFD7AA2988740618C03C5E362E1AF352E3BE4602\n-5530C51E5FC8E9082DF79199CC91C50174000D337D86127AC807C5A3C81DDE57\n-7A68AEE7230949B925365C214D77C80E87CEE218ABC94023717EA43BA5D8A7C8\n-8A8B9BD1B767996AE33050E3D922ED0574E3579C57E4BDDAD35883806AFDF260\n-3AB5D83D451583262E580FFDB7A27D82396AF18D92B849A3F7A7E621987D5DF0\n-038F876C6E9CA47FB11AF05F0019191C5DDC5F0177AD421E94BC66D0CCB82F1F\n-93A80836284B095503752C600F72E2C89112ABFA5B76152691264103B268B3E5\n-8816724ADADB38740001A9AACE05C8AF02D72918606DC22EFC8BF0DA0FD12FFE\n-D3A09F8E28057F327BFB633E604B1EAD478637B1D9631650B314CC62D7E0E87F\n-9D3FE1FFA23BB6E3006C3E39BED52F6B0C1C651B5913878F36DA0BF776889165\n-68BA3456B40B8B471CA8FF5238E43D9113E052A2B8D2EAA2433D3F89FCA48AFB\n-5E842913E4ED6DF9623354059CD1F1707B126FED80349787C869883120183EDD\n-249185A55503FAC53898F52170D05CAC62BB742CF9702C0518AED6B27CDC401C\n-932E02143FD916703F360CB31049501B35EF3EDDFED791090D0CFA221FD1DB32\n-7D4759CE07983AE29C258C705D11E7D9481EEAAB9B6BA65CDCF0AA0057BD6FEA\n-ABBFBD3ABF2A7BFB550C3D2A16DC447384A89F3DB6D9C2DBDCA997ABE35A7706\n-633D328AECEDB5BD07070C1B96267FD73B45791DD18194F60D358091FBE88409\n-973529806F3D2C9E6E39091F90A14B560A987E0B9490B9B690FB489B8E253070\n-D7C54447BE0E0A0BFEAEFFB581DC1300E6EC382984673BF0665632404E59B5BF\n-5D5F0A1C956E618C0487751CA5DAE8A95C214F76ED756694EF273679CD2D85CB\n-949DF385BD50491649EFEFDA1574921D7460143D42A100D2C76E55F0BC\n+1B2FA10DF7E91D3BB34A1B1CE7A0015A57C813E0280D873ADB8844004B9BA1CC\n+580D3C6BDA4DC1B80B4365F1C80512453FC5316EC2D928FB731C3D6403E3C18B\n+E8424D644DF5E9A2134229C5C91CA68DB8E85BA2BB40F538F585DA6FA4037718\n+B8053EBBA1E765346BCD5BDAA6C38115D31611D8A87A2238C145F2DA2F92E4DF\n+3987BD9C4D2A3D460E8941A68B125BCD9EE4F9FD262C4C8A71F47A2C81975635\n+F1B981C274C53FA2ACCDE4C9D0A7C62D6C1EFF91CFC6712CA6A9F333C9564FCB\n+2A70F0AD715A79B10A08AB069E2A3C93BC0AED19D0CA10134B8DDDE8AF548DB2\n+3A4AAA9C29682CF135BB767DAA16169A127EB50A7EECEB6480CF56A7D0F8AC56\n+4A5090B3D75A790372886AF568D94C8165975A05BFBFDF1FFBA45F70700BB9E0\n+57F3249EF9E9C8AD9CBCF6E4FD592DC4CDD2CC7C0BC3130C1059096C657BE453\n+A2CBACE93420210E27AF56CA229BD6D982FB68B3FDC6D44478B922C4231C47EE\n+E500232F6C11D92DEB955F66DF52B92B22E7352790CC2DCBAC53965D57AC2920\n+68B7D520DE25047146EFEB06B9AD4E2A94243C7E5239F0BC2FC312B16051D52C\n+0B92C217B6B42997321AE4F8BB066754B7AA3F15069EF59224E8A442CE471AA7\n+E8049A3DD9EDA09CCEE4998998661CF7DB35E952F6C65DAEB3013951C59F3E09\n+157F313B0237876E1C0190F0473819570B8C0205AADF05D787CC00979CFB327A\n+289382B22DDA6F12804ED0ED5B179E36A995A2A59E1B66E75130DBE9109C813B\n+94403E0DEA8314A1E9DB474D7FA83C0BAFD08033E6A6215844C1D26BE15F1251\n+A1605E8DF9A9C601ED37379530BC1C82BE5463C6C711C5652BFD6262485AA9CA\n+B8C4A117593001D08D980041E2A83C190DCE8E6CD3D334E5CC19FC05DB30F7F7\n+24A305C4DBB31F0651392B99D44B4302333BDF7E326FD256DD75D309C6E73F85\n+FA71B35FD1F9BEFF4C7A1076362EEB0A85492933B6006086A7B8C1928CF2D1EE\n+FD4344409257BB802C117E739960821CD3C88BFBA5669FF16F610AD638AF3677\n+8674C985E6767253ED5769F71BEA5E9BB02A751F9E62EE2B18AC19D975FDEAE9\n+8B8822367FF177A7E850766DE99ED3366D46464612926430012212A90F8E85F4\n+4760B40D5B86B90819EE410382D22D8ED82D0B0AB00C93E10CD365F8766D1C87\n+B4A866021FB6F6AC3D250CC601989B1B8FE6B1098A48282D2CF258BF38FEE940\n+CE0141FB1344156DE7712A8F2DBF700174F12616EE17C852210D96D03E5E6635\n+D439EB6E84A383DDD32AD72DADE6F931FDBABBDC726C36081C96018FC95EAE13\n+DA1F8DBC2D8355AC9792649653225393F4A7A88F3B9443FEEB75E2C15BF93F09\n+CCBA7FABC022BE26F4C28152D5DA6D690494AD4EC0DA1B598AE12536BADF88B5\n+5E20EB452546389F57FF55459567B453AE1831C57D22FA6A4FDF441EDAFDB7FB\n+4F4B707C1FF9159C40F7B5DD519FC07815EE91B8D756B6C18500BCF47D0D9E45\n+6A2D51B6AA5AEAAC9AB2DEF7F0FDE957B6C179CBADEECAC7E9CEC248AB135EB4\n+FBF83D002FF859B574EF36C371540EF2BCFCEF5C2E7863AEDD7C3C965103453B\n+023A9CEC1D5C45B88827ADF4AE0C6746F3C7E6A944427DAEC493601019583A16\n+0F846CE00EAE89EEFF9CE68A0E1D6EBB8FDD8A45D1BF399B36A8328EC957CB8B\n+D842A56269C8C9A6B472C9E65BCBC090606B4E8A7EF4ABDEA120C9F9B3969A1C\n+2EB102925F4E155160E58000E1ADB0D19E10EFD96F6C3225EEE8FC24D122C069\n+C11F1A69DC383F7DACD2F3929BD135CE69787C6E7560AC4B683FE5D9AAFD2E89\n+EE6D95E38C9B726B416E28169A11E29559DBA9AECD714CF318FCB78F34A0E562\n+9C00FE0C6D5A848557D9A82EC2BEFCD30B5EDC0B23C5BA9F812C864394C8B9D1\n+B08BAC9CF94E70FF842306ACCFE6E39A56777C712904A3AB29FBD19275E19E06\n+B35B37CFFFCEC81CAF2D85A853663FAFCFFED1EA77064AA28C15BC94910683BC\n+D09513079DE9EE18E97CC2403DD206516D7F652A3459870757F34EEDCEF952C3\n+FE8004F4716B5BD6774E455010B0BB1E61FCD66B9F14F9BBCCF3E55A158EE96E\n+9A05BDFDDC7706D4BC28FDDC4004EF3A430C607EBDF115E0C996454D70C8BB42\n+D7C83A454B116663D648C23CE2B33365810DE2B64D4AE011BC8043BC3E05B94D\n+1700F859C6AFC6515C1C42FA104EE3E8F3FA5F80252C2E79B00ED27F675FFD09\n+B50BF7A3C63CF4856F909DF969D7DD3EA05CABDD1E71A58CFC2AB5F614B4E5E0\n+25CF92E9FB66ACEBE05DF5E033DA8AD3EE32D94C02D98DD7DA99FAB5AEA595C3\n+2987DC122F0242D76B782349E4069DE0CDD6EF4375C680CBFE4C8F24F2AE89BF\n+7785F5EA7435A91500F265022C307E8ADEAAE1C6\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n@@ -5191,25 +5178,25 @@\n 51 3[51 51 4[51 1[51 51 51 3[51 13[51 5[51 3[51 4[51\n 68[{}15 99.6264 /CMTT12 rf /Fc 131[112 1[50 59 59 1[59\n 62 44 44 46 1[62 56 62 93 31 1[34 31 62 56 34 51 62 50\n 62 54 11[86 5[84 5[42 3[74 2[80 7[31 4[56 56 56 56 56\n 2[31 33[62 12[{}37 99.6264 /CMBX12 rf /Fd 134[71 2[71\n 75 52 53 55 1[75 67 75 112 2[41 37 75 67 41 61 75 60\n 75 65 13[75 2[92 11[103 14[67 67 67 67 67 2[37 46[{}29\n-119.552 /CMBX12 rf /Fe 138[51 35 36 11[45 37[68 6[25\n-4[45 1[45 45 1[45 3[25 44[{}11 90.9091 /CMSL10 rf /Ff\n-141[39 12[39 16[39 14[39 69[{}4 74.7198 /CMTT9 rf /Fg\n-133[34 41 41 55 41 1[30 30 30 1[43 38 43 64 21 41 23\n-21 43 1[23 34 43 34 43 38 12[55 37[21 1[21 31[43 12[{}27\n-74.7198 /CMR9 rf /Fh 206[30 49[{}1 49.8132 /CMR6 rf /Fi\n-132[52 6[41 4[52 58 46[49 63[{}5 90.9091 /CMBX10 rf /Fj\n-148[47 6[47 100[{}2 90.9091 /CMMI10 rf /Fk 134[44 2[42\n-49 30 37 38 1[46 46 51 1[23 42 28 28 46 42 1[42 46 42\n-42 46 12[65 1[66 11[59 62 69 2[68 6[28 7[46 4[33 45[{}29\n-90.9091 /CMTI10 rf /Fl 206[35 49[{}1 66.4176 /CMR8 rf\n+119.552 /CMBX12 rf /Fe 134[48 3[51 8[25 33[47 15[25 5[45\n+1[45 45 45 3[25 44[{}10 90.9091 /CMSL10 rf /Ff 141[39\n+12[39 16[39 14[39 69[{}4 74.7198 /CMTT9 rf /Fg 133[34\n+41 41 55 41 1[30 30 30 1[43 38 43 64 21 41 23 21 43 1[23\n+34 43 34 43 38 12[55 37[21 1[21 31[43 12[{}27 74.7198\n+/CMR9 rf /Fh 206[30 49[{}1 49.8132 /CMR6 rf /Fi 132[52\n+6[41 4[52 58 46[49 63[{}5 90.9091 /CMBX10 rf /Fj 148[47\n+6[47 100[{}2 90.9091 /CMMI10 rf /Fk 134[44 2[42 49 30\n+37 38 1[46 46 51 1[23 42 28 28 46 42 1[42 46 42 42 46\n+12[65 1[66 11[59 62 69 2[68 6[28 7[46 4[33 45[{}29 90.9091\n+/CMTI10 rf /Fl 206[35 49[{}1 66.4176 /CMR8 rf\n %DVIPSBitmapFont: Fm tcrm1095 10.95 1\n [/Grave/Acute/Circumflex/Tilde/Dieresis/Hungarumlaut/Ring/Caron/Breve/Macron\n /Dotaccent/cedilla/ogonek/quotesinglbase.ts1 4{/.notdef}repeat\n /quotedblbase.ts1/.notdef/.notdef/twelveudash/threequartersemdash\n /afii61664.cap/arrowleft/arrowright/tieaccentlowercase/tieaccentcapital\n /tieaccentlowercase.new/tieaccentcapital.new/.notdef/afii61664.asc/uni2422 3\n {/.notdef}repeat/dollar/.notdef/.notdef/quotesingle/.notdef/.notdef\n@@ -5313,17 +5300,17 @@\n 0 5230 1560 4 v 104 5284 a Fh(1)138 5316 y Fg(The)24\n b Ff(ETree)g Fg(ob)t(ject)g(has)f(the)g Ff(Tree)h Fg(ob)t(ject)g(that)f\n (de\\014nes)f(the)h(connectivit)n(y)g(of)h(the)e(fron)n(ts,)j(kno)n(ws)e\n (the)g(in)n(ternal)g(and)g(external)0 5407 y(size)k(of)f(eac)n(h)g\n (fron)n(t,)g(and)f(has)h(a)g(map)g(from)g(the)g(v)n(ertices)g(to)g(the)\n f(fron)n(ts.)1927 5656 y Fo(1)p eop end\n %%Page: 2 2\n-TeXDict begin 2 1 bop 0 100 a Fo(2)p 136 100 1175 4 v\n-1357 w Fn(MSMD)29 b Fe(:)h Fk(DRAFT)h Fe(August)f(3,)h(2025)p\n-2726 100 V 0 399 a Fo(W)-8 b(e)32 b(in)m(tend)e(to)h(add)f(more)g\n+TeXDict begin 2 1 bop 0 100 a Fo(2)p 136 100 1233 4 v\n+1414 w Fn(MSMD)30 b Fe(:)g Fk(DRAFT)g Fe(July)g(1,)h(2024)p\n+2668 100 V 0 399 a Fo(W)-8 b(e)32 b(in)m(tend)e(to)h(add)f(more)g\n (priorities,)h(e.g.,)h(appro)m(ximate)g(de\\014ciency)e(from)g([)p\n Fi(?)q Fo(],)h([)p Fi(?)p Fo(])g(and)f([)p Fi(?)p Fo(].)141\n 534 y(Cho)s(ose)37 b(a)h(priorit)m(y)-8 b(,)40 b(then)d(sp)s(ecify)g\n (the)h(de\\014nition)f(of)h(a)f Fk(step)p Fo(,)j(ho)m(w)e(to)g(c)m(ho)s\n (ose)g(an)g(indep)s(enden)m(t)e(set)i(of)0 647 y(v)m(ertices)32\n b(to)g(eliminate)g(at)f(a)g(time.)42 b(Then)29 b(pro)m(vide)i(a)g(map)f\n (from)g(eac)m(h)i(v)m(ertex)g(to)f(the)g Fk(stage)g Fo(at)g(whic)m(h)f\n@@ -5384,17 +5371,17 @@\n (ob)5 b(ject.)137 5294 y Fm(\\210)45 b Fn(MSMDinfo)25\n b Fo(:)39 b(an)27 b(ob)5 b(ject)28 b(that)f(comm)m(unicate)i(parameter)\n f(c)m(hoices)g(from)f(the)g(caller)h(to)g(the)f Fn(MSMD)f\n Fo(ob)5 b(ject)227 5407 y(and)30 b(information)h(and)e(statistics)k\n (from)d(the)g Fn(MSMD)f Fo(ob)5 b(ject)32 b(to)f(the)f(caller.)p\n eop end\n %%Page: 3 3\n-TeXDict begin 3 2 bop 91 100 1175 4 v 1356 100 a Fn(MSMD)29\n-b Fe(:)i Fk(DRAFT)121 b Fe(August)30 b(3,)h(2025)p 2678\n-100 V 1175 w Fo(3)137 399 y Fm(\\210)45 b Fn(MSMDstageInfo)25\n+TeXDict begin 3 2 bop 91 100 1233 4 v 1414 100 a Fn(MSMD)29\n+b Fe(:)i Fk(DRAFT)121 b Fe(July)30 b(1,)h(2024)p 2621\n+100 V 1233 w Fo(3)137 399 y Fm(\\210)45 b Fn(MSMDstageInfo)25\n b Fo(:)40 b(an)28 b(ob)5 b(ject)29 b(that)g(con)m(tains)h(statistics)g\n (for)e(a)h(stage)h(of)e(elimination,)i(e.g.,)h(n)m(um)m(b)s(er)c(of)227\n 511 y(steps,)k(n)m(um)m(b)s(er)e(of)h(v)m(ertices)i(eliminated,)g(w)m\n (eigh)m(t)g(of)f(v)m(ertices)h(eliminated,)f(etc.)137\n 702 y Fm(\\210)45 b Fn(MSMDvtx)29 b Fo(:)40 b(an)31 b(ob)5\n b(ject)31 b(that)g(mo)s(dels)f(a)h(v)m(ertex.)0 917 y(A)f(user)g(needs)\n g(to)h(understand)e(the)h Fn(MSMDinfo)e Fo(ob)5 b(ject,)32\n@@ -5454,17 +5441,17 @@\n (ultiple)f(minim)m(um)e(degree.)330 5294 y Fi({)45 b\n Fn(stepType)h(>)h(1)22 b Fo(|)g(an)g(indep)s(enden)m(t)f(set)i(of)f(v)m\n (ertices)i(is)e(eliminated)i(whose)e(priorities)g(lie)h(b)s(et)m(w)m\n (een)427 5407 y(the)31 b(minim)m(um)e(priorit)m(y)i(and)f(the)h(minim)m\n (um)e(priorit)m(y)i(m)m(ultiplied)g(b)m(y)f Fn(stepType)p\n Fo(.)p eop end\n %%Page: 4 4\n-TeXDict begin 4 3 bop 0 100 a Fo(4)p 136 100 1175 4 v\n-1357 w Fn(MSMD)29 b Fe(:)h Fk(DRAFT)h Fe(August)f(3,)h(2025)p\n-2726 100 V 227 399 a Fo(The)f(default)h(v)-5 b(alue)31\n+TeXDict begin 4 3 bop 0 100 a Fo(4)p 136 100 1233 4 v\n+1414 w Fn(MSMD)30 b Fe(:)g Fk(DRAFT)g Fe(July)g(1,)h(2024)p\n+2668 100 V 227 399 a Fo(The)f(default)h(v)-5 b(alue)31\n b(is)f Fn(1)p Fo(,)g(m)m(ultiple)h(elimination)h(of)f(v)m(ertices)h\n (with)e(minim)m(um)f(priorit)m(y)-8 b(.)137 625 y Fm(\\210)45\n b Fn(int)i(seed)26 b Fo(|)g(a)h(seed)g(used)f(for)h(a)g(random)f(n)m\n (um)m(b)s(er)f(generator,)k(this)e(in)m(tro)s(duces)f(a)i(necessary)f\n (random)227 738 y(elemen)m(t)32 b(to)f(the)g(ordering.)137\n 964 y Fm(\\210)45 b Fn(int)i(msglvl)33 b Fo({)i(message)g(lev)m(el)h\n (for)e(statistics,)k(diagnostics)e(and)d(monitoring.)54\n@@ -5509,17 +5496,17 @@\n Fo(ob)5 b(jects)31 b(that)g(represen)m(t)g(the)f(v)m(ertices.)137\n 5181 y Fm(\\210)45 b Fn(IV)i(ivtmpIV)29 b Fo({)i Fn(IV)e\n Fo(ob)5 b(ject)32 b(that)f(holds)e(an)i(in)m(teger)g(temp)s(orary)f(v)m\n (ector.)137 5407 y Fm(\\210)45 b Fn(IV)i(reachIV)29 b\n Fo({)i Fn(IV)e Fo(ob)5 b(ject)32 b(that)f(holds)e(the)i(reac)m(h)g(v)m\n (ector.)p eop end\n %%Page: 5 5\n-TeXDict begin 5 4 bop 91 100 1175 4 v 1356 100 a Fn(MSMD)29\n-b Fe(:)i Fk(DRAFT)121 b Fe(August)30 b(3,)h(2025)p 2678\n-100 V 1175 w Fo(5)0 399 y Fc(1.1.3)112 b Fb(MSMDstageInfo)41\n+TeXDict begin 5 4 bop 91 100 1233 4 v 1414 100 a Fn(MSMD)29\n+b Fe(:)i Fk(DRAFT)121 b Fe(July)30 b(1,)h(2024)p 2621\n+100 V 1233 w Fo(5)0 399 y Fc(1.1.3)112 b Fb(MSMDstageInfo)41\n b Fc(:)50 b(statistics)38 b(ob)6 b(ject)37 b(for)h(a)f(stage)h(of)g\n (the)f(elimination)0 596 y Fo(This)30 b(ob)5 b(ject)31\n b(stores)g(information)f(ab)s(out)g(the)h(elimination)h(pro)s(cess)e\n (at)h(a)g(stage)g(of)g(the)f(elimination.)137 838 y Fm(\\210)45\n b Fn(int)i(nstep)29 b Fo(|)h(n)m(um)m(b)s(er)f(of)i(elimination)h\n (steps)e(in)g(this)g(stage)137 1028 y Fm(\\210)45 b Fn(int)i(nfront)29\n b Fo(|)h(n)m(um)m(b)s(er)f(of)i(fron)m(ts)f(created)h(at)h(this)e\n@@ -5561,17 +5548,17 @@\n h(\\(priorit)m(y\\))h(heap)330 5112 y Fi({)45 b Fn('R')30\n b Fo({)h(v)m(ertex)g(on)f(reac)m(h)h(set)330 5260 y Fi({)45\n b Fn('I')30 b Fo({)h(v)m(ertex)g(found)e(to)i(b)s(e)f\n (indistinguishable)g(to)h(another)330 5407 y Fi({)45\n b Fn('B')30 b Fo({)h(b)s(oundary)d(v)m(ertex,)k(to)f(b)s(e)e\n (eliminated)j(in)e(another)h(stage)p eop end\n %%Page: 6 6\n-TeXDict begin 6 5 bop 0 100 a Fo(6)p 136 100 1175 4 v\n-1357 w Fn(MSMD)29 b Fe(:)h Fk(DRAFT)h Fe(August)f(3,)h(2025)p\n-2726 100 V 137 399 a Fm(\\210)45 b Fn(int)i(stage)29 b\n+TeXDict begin 6 5 bop 0 100 a Fo(6)p 136 100 1233 4 v\n+1414 w Fn(MSMD)30 b Fe(:)g Fk(DRAFT)g Fe(July)g(1,)h(2024)p\n+2668 100 V 137 399 a Fm(\\210)45 b Fn(int)i(stage)29 b\n Fo(|)h(stage)i(of)f(the)f(v)m(ertex.)42 b(Stage)32 b(0)e(no)s(des)g\n (are)h(eliminated)g(b)s(efore)f(stage)i(1)f(no)s(des,)e(etc.)137\n 581 y Fm(\\210)45 b Fn(int)i(wght)29 b Fo(|)i(w)m(eigh)m(t)g(of)g(the)g\n (v)m(ertex)137 763 y Fm(\\210)45 b Fn(int)i(nadj)29 b\n Fo(|)i(size)g(of)f(the)h Fn(adj)e Fo(v)m(ector)137 945\n y Fm(\\210)45 b Fn(int)i(*adj)27 b Fo(|)i(for)f(an)g(uneliminated)g(v)m\n (ertex,)j Fn(adj)c Fo(p)s(oin)m(ts)h(to)h(a)g(list)g(of)g(unco)m(v)m\n@@ -5628,17 +5615,17 @@\n (a)h(call)g(to)g Fn(MSMDinfo)p 2440 5147 V 32 w(clearData\\(\\))d\n Fo(then)i(free's)g(the)g(storage)227 5260 y(for)h(the)h(structure)f\n (with)g(a)h(call)g(to)g Fn(free\\(\\))p Fo(.)227 5407 y\n Fk(Err)-5 b(or)34 b(che)-5 b(cking:)40 b Fo(If)30 b Fn(info)g\n Fo(is)g Fn(NULL)p Fo(,)f(an)i(error)f(message)h(is)g(prin)m(ted)f(and)f\n (the)i(program)f(exits.)p eop end\n %%Page: 7 7\n-TeXDict begin 7 6 bop 91 100 1175 4 v 1356 100 a Fn(MSMD)29\n-b Fe(:)i Fk(DRAFT)121 b Fe(August)30 b(3,)h(2025)p 2678\n-100 V 1175 w Fo(7)0 399 y Fc(1.2.2)112 b(Utilit)m(y)38\n+TeXDict begin 7 6 bop 91 100 1233 4 v 1414 100 a Fn(MSMD)29\n+b Fe(:)i Fk(DRAFT)121 b Fe(July)30 b(1,)h(2024)p 2621\n+100 V 1233 w Fo(7)0 399 y Fc(1.2.2)112 b(Utilit)m(y)38\n b(metho)s(ds)0 596 y Fo(There)30 b(are)h(t)m(w)m(o)g(utilit)m(y)h\n (metho)s(ds,)e(one)h(to)g(prin)m(t)f(the)g(ob)5 b(ject,)32\n b(one)f(to)g(c)m(hec)m(k)h(to)f(see)g(if)f(it)h(is)f(v)-5\n b(alid.)111 835 y(1.)46 b Fn(void)h(MSMDinfo_print)d(\\()j(MSMDinfo)f\n (*info,)g(FILE)h(*fp)f(\\))i(;)227 986 y Fo(This)30 b(metho)s(d)g(prin)m\n (ts)g(out)g(the)h(information)f(to)h(a)g(\\014le.)227\n 1137 y Fk(Err)-5 b(or)34 b(che)-5 b(cking:)40 b Fo(If)30\n@@ -5691,17 +5678,17 @@\n (a)g(call)i(to)e Fn(MSMD)p 2282 5143 V 34 w(clearData\\(\\))c\n Fo(then)k(free's)g(the)h(storage)g(for)227 5256 y(the)d(structure)f\n (with)g(a)h(call)g(to)g Fn(free\\(\\))p Fo(.)227 5407 y\n Fk(Err)-5 b(or)34 b(che)-5 b(cking:)40 b Fo(If)30 b Fn(msmd)g\n Fo(is)g Fn(NULL)p Fo(,)f(an)i(error)f(message)h(is)g(prin)m(ted)f(and)f\n (the)i(program)f(exits.)p eop end\n %%Page: 8 8\n-TeXDict begin 8 7 bop 0 100 a Fo(8)p 136 100 1175 4 v\n-1357 w Fn(MSMD)29 b Fe(:)h Fk(DRAFT)h Fe(August)f(3,)h(2025)p\n-2726 100 V 0 399 a Fc(1.3.2)112 b(Initialization)39 b(metho)s(ds)f(|)g\n+TeXDict begin 8 7 bop 0 100 a Fo(8)p 136 100 1233 4 v\n+1414 w Fn(MSMD)30 b Fe(:)g Fk(DRAFT)g Fe(July)g(1,)h(2024)p\n+2668 100 V 0 399 a Fc(1.3.2)112 b(Initialization)39 b(metho)s(ds)f(|)g\n (public)0 595 y Fo(There)30 b(is)g(one)h(initialization)i(metho)s(d.)\n 111 834 y(1.)46 b Fn(void)h(MSMD_init)e(\\()j(MSMD)e(*msmd,)g(Graph)h\n (*graph,)f(int)g(stages[],)g(MSMD)g(*info)h(\\))g(;)227\n 985 y Fo(This)35 b(metho)s(d)h(initializes)i(the)e Fn(MSMD)f\n Fo(ob)5 b(ject)37 b(prior)e(to)i(an)e(ordering.)58 b(It)36\n b(is)g(called)h(b)m(y)f Fn(MSMD)p 3539 985 29 4 v 33\n w(order\\(\\))227 1098 y Fo(metho)s(d,)25 b(and)f(so)h(it)f(is)h(curren)m\n@@ -5768,17 +5755,17 @@\n Fo(,)e(this)h(metho)s(d)g(\\014lls)g(the)g Fn(IV)f Fo(ob)5\n b(ject)34 b(with)f(the)h(new-to-old)g(p)s(erm)m(utation)227\n 5407 y(of)i(the)f(v)m(ertices,)j(resizing)e(the)f Fn(IV)g\n Fo(ob)5 b(ject)36 b(if)f(necessary)-8 b(.)56 b(If)34\n b Fn(oldToNewIV)f Fo(is)i(not)g Fn(NULL)p Fo(,)f(this)h(metho)s(d)p\n eop end\n %%Page: 9 9\n-TeXDict begin 9 8 bop 91 100 1175 4 v 1356 100 a Fn(MSMD)29\n-b Fe(:)i Fk(DRAFT)121 b Fe(August)30 b(3,)h(2025)p 2678\n-100 V 1175 w Fo(9)227 399 y(\\014lls)j(the)h Fn(IV)f Fo(ob)5\n+TeXDict begin 9 8 bop 91 100 1233 4 v 1414 100 a Fn(MSMD)29\n+b Fe(:)i Fk(DRAFT)121 b Fe(July)30 b(1,)h(2024)p 2621\n+100 V 1233 w Fo(9)227 399 y(\\014lls)j(the)h Fn(IV)f Fo(ob)5\n b(ject)35 b(with)f(the)g(old-to-new)i(p)s(erm)m(utation)e(of)h(the)f(v)\n m(ertices,)k(resizing)d(the)f Fn(IV)g Fo(ob)5 b(ject)35\n b(if)227 511 y(necessary)-8 b(.)227 661 y Fk(Err)j(or)33\n b(che)-5 b(cking:)40 b Fo(If)28 b Fn(msmd)g Fo(is)h Fn(NULL)p\n Fo(,)f(or)h(if)g Fn(newToOldIV)d Fo(and)j Fn(oldToNewIV)d\n Fo(is)j Fn(NULL)p Fo(,)f(an)h(error)g(message)227 774\n y(is)i(prin)m(ted)f(and)f(the)i(program)f(exits.)111\n@@ -5836,17 +5823,17 @@\n 29 4 v 33 w(cleanSubtreeList\\(\\))37 b Fo(and)227 5258\n y Fn(MSMD)p 425 5258 V 34 w(clearEdgeList\\(\\))p Fo(.)227\n 5407 y Fk(Err)-5 b(or)34 b(che)-5 b(cking:)40 b Fo(If)30\n b Fn(msmd)g Fo(or)g Fn(info)f Fo(is)i Fn(NULL)p Fo(,)e(an)h(error)g\n (message)i(is)e(prin)m(ted)g(and)g(the)g(program)h(exits.)p\n eop end\n %%Page: 10 10\n-TeXDict begin 10 9 bop 0 100 a Fo(10)p 182 100 1152 4\n-v 1334 w Fn(MSMD)30 b Fe(:)g Fk(DRAFT)g Fe(August)h(3,)g(2025)p\n-2748 100 V 111 399 a Fo(6.)46 b Fn(void)h(MSMD_cleanSubtreeList)42\n+TeXDict begin 10 9 bop 0 100 a Fo(10)p 182 100 1210 4\n+v 1392 w Fn(MSMD)29 b Fe(:)i Fk(DRAFT)f Fe(July)g(1,)h(2024)p\n+2691 100 V 111 399 a Fo(6.)46 b Fn(void)h(MSMD_cleanSubtreeList)42\n b(\\()47 b(MSMD)g(*msmd,)f(MSMDvtx)g(*v,)h(MSMD)f(*info)h(\\))g(;)227\n 547 y Fo(This)34 b(metho)s(d)h(cleans)h(the)f(list)h(of)f(subtrees)f\n (for)h(v)m(ertex)h Fn(v)p Fo(,)g(remo)m(ving)g(an)m(y)f(no)s(de)g(whic)\n m(h)f(is)h(no)g(longer)227 660 y(the)c(ro)s(ot)g(of)f(a)h(subtree)f(of)\n g(eliminated)i(no)s(des.)227 809 y Fk(Err)-5 b(or)30\n b(che)-5 b(cking:)38 b Fo(If)25 b Fn(msmd)p Fo(,)h Fn(v)f\n Fo(or)h Fn(info)e Fo(is)i Fn(NULL)p Fo(,)f(an)g(error)h(message)h(is)e\n@@ -5911,17 +5898,17 @@\n b(metho)s(d)g(prin)m(ts)g(a)g(h)m(uman-readable)h(represen)m(tation)g\n (of)g(a)f(v)m(ertex,)i(used)e(for)g(debugging.)227 5407\n y Fk(Err)-5 b(or)34 b(che)-5 b(cking:)40 b Fo(If)30 b\n Fn(v)g Fo(or)h Fn(fp)f Fo(is)g Fn(NULL)p Fo(,)f(an)i(error)f(message)h\n (is)g(prin)m(ted)e(and)h(the)h(program)f(exits.)p eop\n end\n %%Page: 11 11\n-TeXDict begin 11 10 bop 91 100 1152 4 v 1334 100 a Fn(MSMD)29\n-b Fe(:)h Fk(DRAFT)121 b Fe(August)31 b(3,)g(2025)p 2656\n-100 V 1152 w Fo(11)0 399 y Fd(1.5)135 b(Driv)l(er)46\n+TeXDict begin 11 10 bop 91 100 1210 4 v 1391 100 a Fn(MSMD)29\n+b Fe(:)i Fk(DRAFT)121 b Fe(July)30 b(1,)h(2024)p 2598\n+100 V 1210 w Fo(11)0 399 y Fd(1.5)135 b(Driv)l(er)46\n b(programs)g(for)f(the)g Fa(MSMD)e Fd(ob)7 b(ject)0 631\n y Fo(This)30 b(section)h(con)m(tains)h(brief)e(descriptions)g(of)g\n (four)g(driv)m(er)g(programs.)111 881 y(1.)46 b Fn(orderViaMMD)f\n (msglvl)h(msgFile)g(inGraphFile)f(seed)h(compressFlag)f(prioType)370\n 994 y(stepType)h(outOldToNewIVfile)d(outNewToOldIVfile)g(outETreeFile)\n 227 1149 y Fo(This)28 b(driv)m(er)g(program)g(orders)f(a)i(graph)f\n (using)f(the)i(m)m(ultiple)g(minim)m(um)e(degree)i(algorithm)g(|)f\n@@ -5983,17 +5970,17 @@\n Fn(IV)e Fo(ob)5 b(ject)40 b(that)f(con)m(tains)427 5294\n y(the)34 b(old-to-new)h(p)s(erm)m(utation)f(v)m(ector.)52\n b(If)34 b Fn(outOldToNewIVfile)29 b Fo(is)34 b Fn(\"none\")p\n Fo(,)f(then)g(there)h(is)g(no)427 5407 y(output,)d(otherwise)f\n Fn(outOldToNewIVfile)c Fo(m)m(ust)k(b)s(e)g(of)g(the)h(form)f\n Fn(*.ivf)f Fo(or)h Fn(*.ivb)p Fo(.)p eop end\n %%Page: 12 12\n-TeXDict begin 12 11 bop 0 100 a Fo(12)p 182 100 1152\n-4 v 1334 w Fn(MSMD)30 b Fe(:)g Fk(DRAFT)g Fe(August)h(3,)g(2025)p\n-2748 100 V 337 399 a Fm(\\210)45 b Fo(The)38 b Fn(outNewToOldIVfile)c\n+TeXDict begin 12 11 bop 0 100 a Fo(12)p 182 100 1210\n+4 v 1392 w Fn(MSMD)29 b Fe(:)i Fk(DRAFT)f Fe(July)g(1,)h(2024)p\n+2691 100 V 337 399 a Fm(\\210)45 b Fo(The)38 b Fn(outNewToOldIVfile)c\n Fo(parameter)39 b(is)f(the)h(output)f(\\014le)h(for)f(the)h\n Fn(IV)e Fo(ob)5 b(ject)40 b(that)f(con)m(tains)427 511\n y(the)34 b(new-to-old)h(p)s(erm)m(utation)f(v)m(ector.)52\n b(If)34 b Fn(outNewToOldIVfile)29 b Fo(is)34 b Fn(\"none\")p\n Fo(,)f(then)g(there)h(is)g(no)427 624 y(output,)d(otherwise)f\n Fn(outNewToOldIVfile)c Fo(m)m(ust)k(b)s(e)g(of)g(the)h(form)f\n Fn(*.ivf)f Fo(or)h Fn(*.ivb)p Fo(.)337 770 y Fm(\\210)45\n", "details": [{"source1": "ps2ascii {}", "source2": "ps2ascii {}", "unified_diff": "@@ -21,15 +21,15 @@\n \u2022 approximate external degree, (d from [?]) and [?], or\r\n \u02dc\r\n \u2022 half external and half approximate, (d from [?]), or\r\n \u2022 a constant priority (to induce maximal independent set elimination).\r\n 1The ETree object has the Tree object that de\ufb01nes the connectivity of the fronts, knows the internal and external\r\n size of each front, and has a map from the vertices to the fronts.\r\n 1\r\n- 2 MSMD : DRAFT August 3, 2025\r\n+ 2 MSMD : DRAFT July 1, 2024\r\n We intend to add more priorities, e.g., approximate de\ufb01ciency from [?], [?] and [?].\r\n Choose a priority, then specify the de\ufb01nition of a step, how to choose an independent set of\r\n vertices to eliminate at a time. Then provide a map from each vertex to the stage at which it will\r\n be eliminated.\r\n Presently there is one ordering method, MSMD order(). It orders the vertices by stages, i.e.\r\n vertices in stage k will be ordered before vertices in stage k + 1. Inside each stage the vertices are\r\n ordered by steps. At each step an independent set of vertices is eliminated, and the choice is based\r\n@@ -57,15 +57,15 @@\n The tools are largely written so any of these three algorithms can be prototyped in a small amount\r\n of time and e\ufb00ort.\r\n 1.1 Data Structure\r\n There are four typed objects.\r\n \u2022 MSMD : the main object.\r\n \u2022 MSMDinfo : an object that communicate parameter choices from the caller to the MSMD object\r\n and information and statistics from the MSMD object to the caller.\r\n- MSMD : DRAFT August 3, 2025 3\r\n+ MSMD : DRAFT July 1, 2024 3\r\n \u2022 MSMDstageInfo : an object that contains statistics for a stage of elimination, e.g., number of\r\n steps, number of vertices eliminated, weight of vertices eliminated, etc.\r\n \u2022 MSMDvtx : an object that models a vertex.\r\n Auser needs to understand the MSMDinfo object, so this is where we will start our description.\r\n 1.1.1 MSMDinfo : de\ufb01ne your algorithm\r\n \u2022 int compressFlag \u2013 de\ufb01ne initial and subsequent compressions of the graph.\r\n Wecompress a graph using a checksum technique. At some point in the elimination, vertices\r\n@@ -93,15 +93,15 @@\n \u2022 double stepType \u2014 de\ufb01ne the elimination steps.\r\n \u2013 stepType == 0 \u2014 only one vertex of minimum priority is eliminated at each step, e.g.,\r\n as used in SPARSPAK\u2019s GENQMD, YSMP\u2019s ordering, and AMD [?].\r\n \u2013 stepType == 1 \u2014 an independent set of vertices of minimum priority is eliminated at\r\n each step, e.g., as used in GENMMD, multiple minimum degree.\r\n \u2013 stepType > 1\u2014anindependentsetofvertices iseliminated whoseprioritieslie between\r\n the minimum priority and the minimum priority multiplied by stepType.\r\n- 4 MSMD : DRAFT August 3, 2025\r\n+ 4 MSMD : DRAFT July 1, 2024\r\n The default value is 1, multiple elimination of vertices with minimum priority.\r\n \u2022 int seed \u2014 a seed used for a random number generator, this introduces a necessary random\r\n element to the ordering.\r\n \u2022 int msglvl \u2013 message level for statistics, diagnostics and monitoring. The default value is\r\n zero, no statistics. Set msglvl to one and get elimination monitoring. Increase msglvl slowly\r\n to get more mostly debug information.\r\n \u2022 FILE *msgFile \u2013 message \ufb01le, default is stdout.\r\n@@ -119,15 +119,15 @@\n \u2022 IIheap *heap \u2013 pointer to a IIheap object that maintains the priority queue.\r\n \u2022 IP *baseIP \u2013 pointer to the base IP objects, used to hold subtree lists\r\n \u2022 IP *freeIP \u2013 pointer to the list of free IP objects\r\n \u2022 int incrIP \u2013 integer that holds the increment factor for the IP objects.\r\n \u2022 MSMDvtx *vertices \u2013 pointer to vector of MSMDvtx objects that represent the vertices.\r\n \u2022 IV ivtmpIV \u2013 IV object that holds an integer temporary vector.\r\n \u2022 IV reachIV \u2013 IV object that holds the reach vector.\r\n- MSMD : DRAFT August 3, 2025 5\r\n+ MSMD : DRAFT July 1, 2024 5\r\n 1.1.3 MSMDstageInfo : statistics object for a stage of the elimination\r\n This object stores information about the elimination process at a stage of the elimination.\r\n \u2022 int nstep \u2014 number of elimination steps in this stage\r\n \u2022 int nfront \u2014 number of fronts created at this stage\r\n \u2022 int welim \u2014 weight of the vertices eliminated at this stage\r\n \u2022 int nfind \u2014 number of front indices\r\n \u2022 int nzf \u2014 number of factor entries (for a Cholesky factorization)\r\n@@ -148,15 +148,15 @@\n \u2013 \u2019L\u2019 \u2013 eliminated leaf vertex\r\n \u2013 \u2019E\u2019 \u2013 eliminated interior vertex\r\n \u2013 \u2019O\u2019 \u2013 outmatched vertex\r\n \u2013 \u2019D\u2019 \u2013 vertex on degree (priority) heap\r\n \u2013 \u2019R\u2019 \u2013 vertex on reach set\r\n \u2013 \u2019I\u2019 \u2013 vertex found to be indistinguishable to another\r\n \u2013 \u2019B\u2019 \u2013 boundary vertex, to be eliminated in another stage\r\n- 6 MSMD : DRAFT August 3, 2025\r\n+ 6 MSMD : DRAFT July 1, 2024\r\n \u2022 int stage \u2014 stage of the vertex. Stage 0 nodes are eliminated before stage 1 nodes, etc.\r\n \u2022 int wght \u2014 weight of the vertex\r\n \u2022 int nadj \u2014 size of the adj vector\r\n \u2022 int *adj \u2014 for an uneliminated vertex, adj points to a list of uncovered adjacent edges; for\r\n an eliminated vertex, adj points points to a list of its boundary vertices (only valid when the\r\n vertex is a leaf of the elimination tree or a root of a subtree of uneliminated vertices).\r\n \u2022 int bndwght \u2014 for an eliminated vertex, the weight of the vertices on its boundary.\r\n@@ -181,15 +181,15 @@\n This method clears any data owned by the object and then sets the structure\u2019s default \ufb01elds\r\n with a call to MSMDinfo setDefaultFields().\r\n Error checking: If info is NULL, an error message is printed and the program exits.\r\n 4. void MSMDinfo_free ( MSMDinfo *info ) ;\r\n This method releases any storage by a call to MSMDinfo clearData() then free\u2019s the storage\r\n for the structure with a call to free().\r\n Error checking: If info is NULL, an error message is printed and the program exits.\r\n- MSMD : DRAFT August 3, 2025 7\r\n+ MSMD : DRAFT July 1, 2024 7\r\n 1.2.2 Utility methods\r\n There are two utility methods, one to print the object, one to check to see if it is valid.\r\n 1. void MSMDinfo_print ( MSMDinfo *info, FILE *fp ) ;\r\n This method prints out the information to a \ufb01le.\r\n Error checking: If info or fp is NULL, an error message is printed and the program exits.\r\n 2. int MSMDinfo_isValid ( MSMDinfo *info ) ;\r\n This method checks that the object is valid. The return value is 1 for a valid object, 0 for an\r\n@@ -213,15 +213,15 @@\n This method clears any data owned by the object, then sets the structure\u2019s default \ufb01elds with\r\n a call to MSMD setDefaultFields().\r\n Error checking: If msmd is NULL, an error message is printed and the program exits.\r\n 4. void MSMD_free ( MSMD *msmd ) ;\r\n This method releases any storage by a call to MSMD clearData() then free\u2019s the storage for\r\n the structure with a call to free().\r\n Error checking: If msmd is NULL, an error message is printed and the program exits.\r\n- 8 MSMD : DRAFT August 3, 2025\r\n+ 8 MSMD : DRAFT July 1, 2024\r\n 1.3.2 Initialization methods \u2014 public\r\n There is one initialization method.\r\n 1. void MSMD_init ( MSMD *msmd, Graph *graph, int stages[], MSMD *info ) ;\r\n This method initializes the MSMD object prior to an ordering. It is called by MSMD order()\r\n method, and so it is currently a private method for the object. However, when designing more\r\n complicated ordering methods, this object is necessary to set up the data structures. There\r\n are two input arguments: graph is a pointer to a Graph object that holds the adjacency lists\r\n@@ -249,15 +249,15 @@\n 1.3.4 Extraction methods \u2014 public\r\n There are two methods to extract the ordering. The \ufb01rst \ufb01lls one or two IV objects with the\r\n permutation vector(s). The second returns an ETree object that holds the front tree for the\r\n ordering.\r\n 1. void MSMD_fillPerms ( MSMD *msmd, IV *newToOldIV, IV *oldToNewIV ) ;\r\n If newToOldIV is not NULL, this method \ufb01lls the IV object with the new-to-old permutation\r\n of the vertices, resizing the IV object if necessary. If oldToNewIV is not NULL, this method\r\n- MSMD : DRAFT August 3, 2025 9\r\n+ MSMD : DRAFT July 1, 2024 9\r\n \ufb01lls the IV object with the old-to-new permutation of the vertices, resizing the IV object if\r\n necessary.\r\n Error checking: If msmd is NULL, or if newToOldIV and oldToNewIV is NULL, an error message\r\n is printed and the program exits.\r\n 2. ETree * MSMD_frontETree ( MSMD *msmd ) ;\r\n This method constructs and returns a ETree object that contains the front tree for the\r\n ordering.\r\n@@ -283,15 +283,15 @@\n The order of the nodes in the reach set may be permuted, but any indistinguishable nodes in\r\n the reach set are not purged from the reach set.\r\n Error checking: If msmd or info is NULL, an error message is printed and the program exits.\r\n 5. void MSMD_cleanReachSet ( MSMD *msmd, MSMD *info ) ;\r\n This method cleans the nodes in the reach set by calling MSMD cleanSubtreeList() and\r\n MSMD clearEdgeList().\r\n Error checking: If msmd or info is NULL, an error message is printed and the program exits.\r\n- 10 MSMD : DRAFT August 3, 2025\r\n+ 10 MSMD : DRAFT July 1, 2024\r\n 6. void MSMD_cleanSubtreeList ( MSMD *msmd, MSMDvtx *v, MSMD *info ) ;\r\n This method cleans the list of subtrees for vertex v, removing any node which is no longer\r\n the root of a subtree of eliminated nodes.\r\n Error checking: If msmd, v or info is NULL, an error message is printed and the program exits.\r\n 7. void MSMD_cleanEdgeList ( MSMD *msmd, MSMDvtx *v, MSMD *info ) ;\r\n This method cleans the list of uncovered edges for vertex v, removing any edge (v,w) where\r\n v and w share a common adjacent subtree.\r\n@@ -317,15 +317,15 @@\n the program exits.\r\n 1.4 Prototypes and descriptions of MSMDvtx methods\r\n TheMSMDvtxobject is private so would not normally be accessed by the user. There is one method\r\n to print out the object.\r\n 1. void MSMDvtx_print ( MSMDvtx *v, FILE *fp ) ;\r\n This method prints a human-readable representation of a vertex, used for debugging.\r\n Error checking: If v or fp is NULL, an error message is printed and the program exits.\r\n- MSMD : DRAFT August 3, 2025 11\r\n+ MSMD : DRAFT July 1, 2024 11\r\n 1.5 Driver programs for the MSMD object\r\n This section contains brief descriptions of four driver programs.\r\n 1. orderViaMMD msglvl msgFile inGraphFile seed compressFlag prioType\r\n stepType outOldToNewIVfile outNewToOldIVfile outETreeFile\r\n This driver program orders a graph using the multiple minimum degree algorithm \u2014 exactly\r\n which algorithm is controlled by the input parameters.\r\n \u2022 The msglvl parameter determines the amount of output.\r\n@@ -355,15 +355,15 @@\n SPARSPAK.\r\n \u2013 stepType == 1 \u2014 regular multiple elimination, e.g., GENMMD.\r\n \u2013 stepType > 1 \u2014 vertices whose priority lies between the minimum priority and\r\n stepType times the minimum priority are eligible for elimination at a step.\r\n \u2022 The outOldToNewIVfile parameter is the output \ufb01le for the IV object that contains\r\n the old-to-new permutation vector. If outOldToNewIVfile is \"none\", then there is no\r\n output, otherwise outOldToNewIVfile must be of the form *.ivf or *.ivb.\r\n- 12 MSMD : DRAFT August 3, 2025\r\n+ 12 MSMD : DRAFT July 1, 2024\r\n \u2022 The outNewToOldIVfile parameter is the output \ufb01le for the IV object that contains\r\n the new-to-old permutation vector. If outNewToOldIVfile is \"none\", then there is no\r\n output, otherwise outNewToOldIVfile must be of the form *.ivf or *.ivb.\r\n \u2022 The outETreeFile parameter is the output \ufb01le for the ETree object that contains the\r\n front tree for the ordering. If outETreeFileis \"none\", then there is no output, otherwise\r\n outETreeFile must be of the form *.etreef or *.etreeb.\r\n 2. orderViaND msglvl msgFile inGraphFile inDSTreeFile seed compressFlag\r\n"}]}]}, {"source1": "./usr/share/doc/spooles-doc/MT.ps.gz", "source2": "./usr/share/doc/spooles-doc/MT.ps.gz", "unified_diff": null, "details": [{"source1": "MT.ps", "source2": "MT.ps", "unified_diff": "@@ -11,15 +11,15 @@\n %%EndComments\n %%BeginDefaults\n %%ViewingOrientation: 1 0 0 1\n %%EndDefaults\n %DVIPSWebPage: (www.radicaleye.com)\n %DVIPSCommandLine: dvips main -o MT.ps\n %DVIPSParameters: dpi=600\n-%DVIPSSource: TeX output 2025.08.03:1317\n+%DVIPSSource: TeX output 2024.07.01:0700\n %%BeginProcSet: tex.pro 0 0\n %!\n /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S\n N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72\n mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0\n 0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{\n landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize\n@@ -1599,23 +1599,22 @@\n /UnderlinePosition -100 def\n /UnderlineThickness 50 def\n end readonly def\n /Encoding 256 array\n 0 1 255 {1 index exch /.notdef put} for\n dup 44 /comma put\n dup 48 /zero put\n+dup 49 /one put\n dup 50 /two put\n-dup 51 /three put\n-dup 53 /five put\n+dup 52 /four put\n dup 58 /colon put\n-dup 65 /A put\n-dup 103 /g put\n-dup 115 /s put\n-dup 116 /t put\n+dup 74 /J put\n+dup 108 /l put\n dup 117 /u put\n+dup 121 /y put\n readonly def\n currentdict end\n currentfile eexec\n D9D66F633B846AB284BCF8B0411B772DE5CE32340DC6F28AF40857E4451976E7\n 5182433CF9F333A38BD841C0D4E68BF9E012EB32A8FFB76B5816306B5EDF7C99\n 8B3A16D9B4BC056662E32C7CD0123DFAEB734C7532E64BBFBF5A60336E646716\n EFB852C877F440D329172C71F1E5D59CE9473C26B8AEF7AD68EF0727B6EC2E0C\n@@ -1796,79 +1795,67 @@\n 7CA1534C4D5B05FC33F83790ECFD7641DF3FB94289E2A1F6E7D29AB1228A867A\n 6E1EF0E9C6F899B491DC18401C2C0A05FFFED46A72C245F7529B8EA55A038082\n 8512307217D2A233C37004085BA3AEE379269F9FA7D0ADB4B19A95CC2AFE686E\n 55D88E47257C1FE6F235FEA295910569FE6DD5995512562359CC821E85A6C7A5\n 79B470A9E340A6985189FF8B6AF914A6B0ECF93F47903221F95DE894A8F05B05\n B7D99CD533EC5F931B18E6B39BECF67FA2D6DD1AEC76772B068BE06335A94C05\n 7A4DDEE77B66101DA855C17AC312600370B34E31F5EC3A01300A8EB60B4C9767\n-1B2FA10DF7E91D3BB34A1B1CE7A0015A57C813E0280D873ADB88440048702D1F\n-77994EE04EC3B4531D6E1888C86A8F0DA6CF1F056F16AB0DD76C862830F89DA4\n-28923B3AA543E0D6E41D3BD283E600BC11F889315EE92C675C109C81065ED1BC\n-82A5583D1B723D50051B0557A367887F5B263014C6E77288B4883C50889473D3\n-3787BAD4BEB88BD1353AFA5B73E61814819537E7FF09F53EF94792BB3DD36ED0\n-002D0E7A6CDAB85A9C17AF5664BCB5A71663B861880F3ECCABC8E7A2FC81A4CC\n-AE7A87503FDC1CE0077BA51ECC7B43B60793FED8E9AAD5BBD03ADD6183DCD26D\n-24A74163611C05562437644EF9B8889FD4F9D311911204FEFD35237486F2D2D0\n-B6783A03BF12EA6D19D6D0F87E4D08515F12F9CBF1961CAA71E0D69FE3C4C4D2\n-7C7FB64ED24F8684C8F00C2BEDEA53EA390CDC0B5BEBD7DD982580B2EA1F1F89\n-CFED5916630DC2BA32BB9180277E1ABC339B3B7DE086717BD93F7FF3681BA5B3\n-FCF671C4B293C2DE4A322F0AA3323A4934444C69F23EF90120B8755482757759\n-C457A435FB8BB4922BD92C5F3D9555D978275C510183E29DFF2FCE4ABBFC18DE\n-76CAD3B486BA12047DD808CD4D521A0FD368E4AE79DE262630983A5D6F0B679D\n-2F005306393C520E1B6987302D029939D94B0178DC55D5264E1FEA468AD4134C\n-8C65B2FBBE8DE8284E8E1F6BFE0B648F44D3DA8E9350D266EDBFD4A7054D9355\n-1E0B185DED37BCF32D3731358F1D707C94109428BAD3CEA456A2A43553E3D2C2\n-F549189201F3D3F715310E3E8C6A2E9AA5141AA9125D203694C7D875C2DD320F\n-C5BCDFC924F6C04DBC7A97349B45ECD0FBD7D2123ED1D3A9F440B1112BE62779\n-47A4592F9285CBD9635EC9091CEC0AFD7E6B6976974081DB9C0E43165BD8584D\n-6CDF08DED287F0883A9FBD351B3F8706BA1E94C7CA487338269482EB8DC1A05D\n-F6632A5D834DE29228C49C5BA65EF7C535A53B380BF4B391F43562147538EE97\n-E799DFC2C40315859F56BBCE9CAE1DF9293F6E2C193ABE7A724EC8F32FA220E7\n-6026877A63E318254F2AF7B1325D63FC4C52B536D3EF354814C2F8F1EEA30569\n-6EF04447DB0F809DF35B4985B9FB4F4BB6087310BE633E76F268B32ABA99CE8E\n-03163DFF4AEDB88E60DD0848C15E90026D7C24D81122EBC07113F9851914A9D5\n-D0E09C2BFDDAF10C5D8208E8329BC0C402F231CD84C95EFDD182AD9756662110\n-274650C7A5BB0D8EFA54EC6C5A49C0EB26701A54779AE8EFBBED824262761602\n-680EDFB38F0FE18C0F501F5AA8BF48A8F0DD3E5E1EBEB872F6F6B23964707B32\n-507FC677B9FDDC990E3828B06420F6F968B2F6AE81E76A2144B1ECE905485616\n-CFB29AC96DDE1F5039935D7E385CC13E34DD7EAF276A2EA3A8BF27FD4205AE13\n-7FE620E42F2CF231C6C8DD8EFC5A6CF081E5660D9ADD730D72D15C02B1E15FF3\n-D741D3B1EB1E666C4E562219033C1E2EF3F96E136998B2E1890395A3637A2C02\n-DE1C46AFCA8D898439F06606A2295D3F7ED6C7DB250C61B6B97A0D5EDDB9657E\n-E790B4E07540BB1026036F4A0D00E7F16FD757AD61D686620C6814B7DCEC43E8\n-FD36D9E75BA554F64548A67D9B0A26E11784E58D4357FC251D71B5D6D8BFDDE0\n-D3BF0E825DA5312C1904AF13C5905C2ADF79C357476183D2EC5A95243235E861\n-2F98D9EE77EF8F8CB3EC6BD358C5ED37DD3AF44D60575E7774BF96F1AE9DFAD1\n-F8646DEDF21D10311854726B8F7D25876BB1EF78E2442B16ED4B851816CF0A27\n-11FDFCE525002A1A7C3E62CD2A3EDE6FAADB026D2F3A46C030ADB22422CA8FF5\n-2545ED58C0D9FB5BDB55FE674301E91A75B005B86BD201D246F7ADACE50419FD\n-AC3312CAC5EB78A36F0E5F62E65AC92129CB574AAC59E0A7C1390DFC61F39D9E\n-D7036742F2F6E64D1EF8157E9CCF65F3EEDC6A8220235978B8E06EB80F649F3E\n-204CFB497F49306EA8E1F7B62305978A28F1E771ED82C6592C71022154E4062A\n-A92335EFC65D6DED9C686899FFD7AA2988740618C03C5E362E1AF352E3BE4602\n-5530C51E5FC8E9082DF79199CC91C50174000D337D86127AC807C5A3C81DDE57\n-7A68AEE7230949B925365C214D77C80E87CEE218ABC94023717EA43BA5D8A7C8\n-8A8B9BD1B767996AE33050E3D922ED0574E3579C57E4BDDAD35883806AFDF260\n-3AB5D83D451583262E580FFDB7A27D82396AF18D92B849A3F7A7E621987D5DF0\n-038F876C6E9CA47FB11AF05F0019191C5DDC5F0177AD421E94BC66D0CCB82F1F\n-93A80836284B095503752C600F72E2C89112ABFA5B76152691264103B268B3E5\n-8816724ADADB38740001A9AACE05C8AF02D72918606DC22EFC8BF0DA0FD12FFE\n-D3A09F8E28057F327BFB633E604B1EAD478637B1D9631650B314CC62D7E0E87F\n-9D3FE1FFA23BB6E3006C3E39BED52F6B0C1C651B5913878F36DA0BF776889165\n-68BA3456B40B8B471CA8FF5238E43D9113E052A2B8D2EAA2433D3F89FCA48AFB\n-5E842913E4ED6DF9623354059CD1F1707B126FED80349787C869883120183EDD\n-249185A55503FAC53898F52170D05CAC62BB742CF9702C0518AED6B27CDC401C\n-932E02143FD916703F360CB31049501B35EF3EDDFED791090D0CFA221FD1DB32\n-7D4759CE07983AE29C258C705D11E7D9481EEAAB9B6BA65CDCF0AA0057BD6FEA\n-ABBFBD3ABF2A7BFB550C3D2A16DC447384A89F3DB6D9C2DBDCA997ABE35A7706\n-633D328AECEDB5BD07070C1B96267FD73B45791DD18194F60D358091FBE88409\n-973529806F3D2C9E6E39091F90A14B560A987E0B9490B9B690FB489B8E253070\n-D7C54447BE0E0A0BFEAEFFB581DC1300E6EC382984673BF0665632404E59B5BF\n-5D5F0A1C956E618C0487751CA5DAE8A95C214F76ED756694EF273679CD2D85CB\n-949DF385BD50491649EFEFDA1574921D7460143D42A100D2C76E55F0BC\n+1B2FA10DF7E91D3BB34A1B1CE7A0015A57C813E0280D873ADB8844004B9BA1CC\n+580D3C6BDA4DC1B80B4365F1C80512453FC5316EC2D928FB731C3D6403E3C18B\n+E8424D644DF5E9A2134229C5C91CA68DB8E85BA2BB40F538F585DA6FA4037718\n+B8053EBBA1E765346BCD5BDAA6C38115D31611D8A87A2238C145F2DA2F92E4DF\n+3987BD9C4D2A3D460E8941A68B125BCD9EE4F9FD262C4C8A71F47A2C81975635\n+F1B981C274C53FA2ACCDE4C9D0A7C62D6C1EFF91CFC6712CA6A9F333C9564FCB\n+2A70F0AD715A79B10A08AB069E2A3C93BC0AED19D0CA10134B8DDDE8AF548DB2\n+3A4AAA9C29682CF135BB767DAA16169A127EB50A7EECEB6480CF56A7D0F8AC56\n+4A5090B3D75A790372886AF568D94C8165975A05BFBFDF1FFBA45F70700BB9E0\n+57F3249EF9E9C8AD9CBCF6E4FD592DC4CDD2CC7C0BC3130C1059096C657BE453\n+A2CBACE93420210E27AF56CA229BD6D982FB68B3FDC6D44478B922C4231C47EE\n+E500232F6C11D92DEB955F66DF52B92B22E7352790CC2DCBAC53965D57AC2920\n+68B7D520DE25047146EFEB06B9AD4E2A94243C7E5239F0BC2FC312B16051D52C\n+0B92C217B6B42997321AE4F8BB066754B7AA3F15069EF59224E8A442CE471AA7\n+E8049A3DD9EDA09CCEE4998998661CF7DB35E952F6C65DAEB3013951C59F3E09\n+157F313B0237876E1C0190F0473819570B8C0205AADF05D787CC00979CFB327A\n+289382B22DDA6F12804ED0ED5B179E36A995A2A59E1B66E75130DBE9109C813B\n+94403E0DEA8314A1E9DB474D7FA83C0BAFD08033E6A6215844C1D26BE15F1251\n+A1605E8DF9A9C601ED37379530BC1C82BE5463C6C711C5652BFD6262485AA9CA\n+B8C4A117593001D08D980041E2A83C190DCE8E6CD3D334E5CC19FC05DB30F7F7\n+24A305C4DBB31F0651392B99D44B4302333BDF7E326FD256DD75D309C6E73F85\n+FA71B35FD1F9BEFF4C7A1076362EEB0A85492933B6006086A7B8C1928CF2D1EE\n+FD4344409257BB802C117E739960821CD3C88BFBA5669FF16F610AD638AF3677\n+8674C985E6767253ED5769F71BEA5E9BB02A751F9E62EE2B18AC19D975FDEAE9\n+8B8822367FF177A7E850766DE99ED3366D46464612926430012212A90F8E85F4\n+4760B40D5B86B90819EE410382D22D8ED82D0B0AB00C93E10CD365F8766D1C87\n+B4A866021FB6F6AC3D250CC601989B1B8FE6B1098A48282D2CF258BF38FEE940\n+CE0141FB1344156DE7712A8F2DBF700174F12616EE17C852210D96D03E5E6635\n+D439EB6E84A383DDD32AD72DADE6F931FDBABBDC726C36081C96018FC95EAE13\n+DA1F8DBC2D8355AC9792649653225393F4A7A88F3B9443FEEB75E2C15BF93F09\n+CCBA7FABC022BE26F4C28152D5DA6D690494AD4EC0DA1B598AE12536BADF88B5\n+5E20EB452546389F57FF55459567B453AE1831C57D22FA6A4FDF441EDAFDB7FB\n+4F4B707C1FF9159C40F7B5DD519FC07815EE91B8D756B6C18500BCF47D0D9E45\n+6A2D51B6AA5AEAAC9AB2DEF7F0FDE957B6C179CBADEECAC7E9CEC248AB135EB4\n+FBF83D002FF859B574EF36C371540EF2BCFCEF5C2E7863AEDD7C3C965103453B\n+023A9CEC1D5C45B88827ADF4AE0C6746F3C7E6A944427DAEC493601019583A16\n+0F846CE00EAE89EEFF9CE68A0E1D6EBB8FDD8A45D1BF399B36A8328EC957CB8B\n+D842A56269C8C9A6B472C9E65BCBC090606B4E8A7EF4ABDEA120C9F9B3969A1C\n+2EB102925F4E155160E58000E1ADB0D19E10EFD96F6C3225EEE8FC24D122C069\n+C11F1A69DC383F7DACD2F3929BD135CE69787C6E7560AC4B683FE5D9AAFD2E89\n+EE6D95E38C9B726B416E28169A11E29559DBA9AECD714CF318FCB78F34A0E562\n+9C00FE0C6D5A848557D9A82EC2BEFCD30B5EDC0B23C5BA9F812C864394C8B9D1\n+B08BAC9CF94E70FF842306ACCFE6E39A56777C712904A3AB29FBD19275E19E06\n+B35B37CFFFCEC81CAF2D85A853663FAFCFFED1EA77064AA28C15BC94910683BC\n+D09513079DE9EE18E97CC2403DD206516D7F652A3459870757F34EEDCEF952C3\n+FE8004F4716B5BD6774E455010B0BB1E61FCD66B9F14F9BBCCF3E55A158EE96E\n+9A05BDFDDC7706D4BC28FDDC4004EF3A430C607EBDF115E0C996454D70C8BB42\n+D7C83A454B116663D648C23CE2B33365810DE2B64D4AE011BC8043BC3E05B94D\n+1700F859C6AFC6515C1C42FA104EE3E8F3FA5F80252C2E79B00ED27F675FFD09\n+B50BF7A3C63CF4856F909DF969D7DD3EA05CABDD1E71A58CFC2AB5F614B4E5E0\n+25CF92E9FB66ACEBE05DF5E033DA8AD3EE32D94C02D98DD7DA99FAB5AEA595C3\n+2987DC122F0242D76B782349E4069DE0CDD6EF4375C680CBFE4C8F24F2AE89BF\n+7785F5EA7435A91500F265022C307E8ADEAAE1C6\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n@@ -5002,38 +4989,38 @@\n X/FBB X/IEn X\n %EndDVIPSBitmapFont\n /Fd 133[50 59 59 1[59 62 44 44 46 1[62 56 62 93 31 2[31\n 62 2[51 62 50 1[54 13[62 5[106 6[70 16[56 56 56 56 56\n 2[31 37 45[{}29 99.6264 /CMBX12 rf /Fe 171[62 6[62 77[{}2\n 119.552 /CMTT12 rf /Ff 134[71 2[71 75 52 53 55 1[75 67\n 75 112 37 2[37 75 67 41 61 75 60 1[65 13[75 2[92 11[103\n-16[67 67 67 2[37 46[{}26 119.552 /CMBX12 rf /Fg 138[46\n-32 33 11[42 37[62 6[23 4[42 1[42 42 1[42 3[23 44[{}11\n-83.022 /CMSL10 rf /Fh 136[55 1[45 28 34 35 1[42 42 47\n-1[21 38 1[25 42 38 1[38 42 38 1[42 9[83 2[59 1[61 11[54\n-56 63 2[62 6[25 58[{}25 83.022 /CMTI10 rf /Fi 133[44\n+16[67 67 67 2[37 46[{}26 119.552 /CMBX12 rf /Fg 134[44\n+3[46 8[23 33[43 15[23 5[42 1[42 42 42 3[23 44[{}10 83.022\n+/CMSL10 rf /Fh 136[55 1[45 28 34 35 1[42 42 47 1[21 38\n+1[25 42 38 1[38 42 38 1[42 9[83 2[59 1[61 11[54 56 63\n+2[62 6[25 58[{}25 83.022 /CMTI10 rf /Fi 133[44 44 44\n 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44\n-44 44 44 44 44 44 44 1[44 1[44 1[44 1[44 44 44 44 44\n-44 44 44 44 44 44 44 44 44 1[44 44 44 44 44 44 44 44\n-44 44 2[44 44 1[44 1[44 44 44 44 44 44 44 44 44 44 44\n-44 1[44 1[44 44 44 40[{}72 83.022 /CMTT10 rf /Fj 148[42\n-3[42 42 81[65 16[42 65 1[65{}7 83.022 /CMSY10 rf /Fk\n-175[88 80[{}1 83.022 /CMEX10 rf /Fl 142[30 24[54 3[39\n-11[54 1[42 70[{}5 58.1154 /CMMI7 rf /Fm 134[41 47 6[37\n-23[48 69 2[57 2[63 66 53 3[57 2[36 2[53 1[69 1[63 62\n-37[47 15[53 11[{}17 83.022 /CMMI10 rf /Fn 131[83 42 37\n-44 44 60 44 46 32 33 33 44 46 42 46 69 23 44 25 23 46\n-42 25 37 46 37 46 42 4[42 4[85 1[62 60 46 2[57 65 62\n-76 52 2[30 62 1[54 57 1[60 59 62 2[39 65 1[23 23 42 42\n-42 42 42 42 42 42 42 42 1[23 28 23 65 42 32 32 23 4[42\n-20[46 46 48 11[{}71 83.022 /CMR10 rf /Fo 134[123 123\n-3[90 1[95 2[116 129 4[65 3[106 129 103 25[87 73[{}11\n-206.559 /CMBX12 rf /Fp 171[106 6[106 77[{}2 206.559 /CMTT12\n-rf /Fq 139[75 1[79 1[108 7[108 2[88 3[94 29[140 17[97\n-49[{}8 172.188 /CMBX12 rf end\n+44 44 44 44 44 1[44 1[44 1[44 1[44 44 44 44 44 44 44\n+44 44 44 44 44 44 44 1[44 44 44 44 44 44 44 44 44 44\n+2[44 44 1[44 1[44 44 44 44 44 44 44 44 44 44 44 44 1[44\n+1[44 44 44 40[{}72 83.022 /CMTT10 rf /Fj 148[42 3[42\n+42 81[65 16[42 65 1[65{}7 83.022 /CMSY10 rf /Fk 175[88\n+80[{}1 83.022 /CMEX10 rf /Fl 142[30 24[54 3[39 11[54\n+1[42 70[{}5 58.1154 /CMMI7 rf /Fm 134[41 47 6[37 23[48\n+69 2[57 2[63 66 53 3[57 2[36 2[53 1[69 1[63 62 37[47\n+15[53 11[{}17 83.022 /CMMI10 rf /Fn 131[83 42 37 44 44\n+60 44 46 32 33 33 44 46 42 46 69 23 44 25 23 46 42 25\n+37 46 37 46 42 4[42 4[85 1[62 60 46 2[57 65 62 76 52\n+2[30 62 1[54 57 1[60 59 62 2[39 65 1[23 23 42 42 42 42\n+42 42 42 42 42 42 1[23 28 23 65 42 32 32 23 4[42 20[46\n+46 48 11[{}71 83.022 /CMR10 rf /Fo 134[123 123 3[90 1[95\n+2[116 129 4[65 3[106 129 103 25[87 73[{}11 206.559 /CMBX12\n+rf /Fp 171[106 6[106 77[{}2 206.559 /CMTT12 rf /Fq 139[75\n+1[79 1[108 7[108 2[88 3[94 29[140 17[97 49[{}8 172.188\n+/CMBX12 rf end\n %%EndProlog\n %%BeginSetup\n %%Feature: *Resolution 600dpi\n TeXDict begin\n %%BeginPaperSize: a4\n /setpagedevice where\n { pop << /PageSize [595 842] >> setpagedevice }\n@@ -5136,30 +5123,30 @@\n (ultithreaded)g(solv)n(e)f(metho)r(ds.)36 b(The)26 b(calling)f\n (sequences)g(b)r(et)n(w)n(een)0 5308 y(the)j(serial)f(and)g(m)n\n (ultithreaded)h(solv)n(es)e(di\\013ers)i(b)n(y)f(one)h(parameter,)e(a)h\n Fi(SolveMap)e Fn(ob)5 b(ject)27 b(that)h(maps)g(the)g(submatrices)0\n 5407 y(of)g(the)g(factor)e(matrix)h(to)h(the)g(threads)f(that)h(will)f\n (compute)h(with)g(them.)1929 5656 y(1)p eop end\n %%Page: 2 2\n-TeXDict begin 2 1 bop 0 100 a Fn(2)p 125 100 1041 4 v\n-1207 w Fi(Multithreaded)22 b Fg(:)37 b Fh(DRAFT)27 b\n-Fg(August)h(3,)f(2025)p 2859 100 V 0 390 a Ff(1.1)135\n-b(Data)46 b(Structure)0 597 y Fn(There)23 b(are)g(no)g(m)n\n-(ultithreaded)h(sp)r(eci\\014c)f(data)h(structures.)34\n-b(See)24 b(the)g Fi(Lock)e Fn(ob)5 b(ject)23 b(whic)n(h)h(is)f(used)h\n-(to)f(hide)h(the)g(particular)0 697 y(m)n(utual)k(exclusion)f(device)g\n-(used)h(b)n(y)f(a)g(thread)g(library)-7 b(.)0 998 y Ff(1.2)135\n-b(Protot)l(yp)t(es)46 b(and)f(descriptions)g(of)g Fe(MT)f\n-Ff(metho)t(ds)0 1205 y Fn(This)25 b(section)f(con)n(tains)g(brief)g\n-(descriptions)g(including)h(protot)n(yp)r(es)f(of)g(all)h(metho)r(ds)g\n-(found)g(in)g(the)g Fi(MT)f Fn(source)f(directory)-7\n-b(.)0 1464 y Fd(1.2.1)112 b(Matrix-matrix)39 b(m)m(ultiply)f(metho)s\n-(ds)0 1643 y Fn(There)18 b(are)f(\\014v)n(e)h(metho)r(ds)h(to)f(m)n\n-(ultiply)h(a)f(v)n(ector)f(times)i(a)f(dense)g(matrix.)33\n-b(The)19 b(\\014rst)f(three)g(metho)r(ds,)i(called)e Fi(InpMtx)p\n+TeXDict begin 2 1 bop 0 100 a Fn(2)p 125 100 1094 4 v\n+1259 w Fi(Multithreaded)23 b Fg(:)36 b Fh(DRAFT)28 b\n+Fg(July)f(1,)g(2024)p 2806 100 V 0 390 a Ff(1.1)135 b(Data)46\n+b(Structure)0 597 y Fn(There)23 b(are)g(no)g(m)n(ultithreaded)h(sp)r\n+(eci\\014c)f(data)h(structures.)34 b(See)24 b(the)g Fi(Lock)e\n+Fn(ob)5 b(ject)23 b(whic)n(h)h(is)f(used)h(to)f(hide)h(the)g\n+(particular)0 697 y(m)n(utual)k(exclusion)f(device)g(used)h(b)n(y)f(a)g\n+(thread)g(library)-7 b(.)0 998 y Ff(1.2)135 b(Protot)l(yp)t(es)46\n+b(and)f(descriptions)g(of)g Fe(MT)f Ff(metho)t(ds)0 1205\n+y Fn(This)25 b(section)f(con)n(tains)g(brief)g(descriptions)g\n+(including)h(protot)n(yp)r(es)f(of)g(all)h(metho)r(ds)g(found)g(in)g\n+(the)g Fi(MT)f Fn(source)f(directory)-7 b(.)0 1464 y\n+Fd(1.2.1)112 b(Matrix-matrix)39 b(m)m(ultiply)f(metho)s(ds)0\n+1643 y Fn(There)18 b(are)f(\\014v)n(e)h(metho)r(ds)h(to)f(m)n(ultiply)h\n+(a)f(v)n(ector)f(times)i(a)f(dense)g(matrix.)33 b(The)19\n+b(\\014rst)f(three)g(metho)r(ds,)i(called)e Fi(InpMtx)p\n 3705 1643 27 4 v 29 w(MT)p 3822 1643 V 31 w(nonsym)p\n 4117 1643 V 29 w(mmm*\\(\\))p Fn(,)0 1742 y(are)24 b(straigh)n(tforw)n\n (ard,)e Fm(y)k Fn(:=)d Fm(y)15 b Fn(+)e Fm(\\013Ax)p Fn(,)27\n b(where)d Fm(A)h Fn(is)g(nonsymmetric,)g(and)f Fm(\\013)i\n Fn(is)f(real)e(\\(if)j Fm(A)f Fn(is)g(real\\))f(and)h(complex)f(\\(if)i\n Fm(A)f Fn(is)0 1842 y(complex\\).)36 b(The)25 b(fourth)g(metho)r(d,)i\n Fi(InpMtx)p 1399 1842 V 29 w(MT)p 1516 1842 V 30 w(sym)p\n@@ -5254,19 +5241,19 @@\n Fi(InpMtx)p 1939 5308 V 29 w(MT)p 2056 5308 V 31 w(nonsym)p\n 2351 5308 V 28 w(mmm\\(A,)42 b(Y,)g(3.22,)g(X,)h(nthread,)d(msglvl,)208\n 5407 y(msgFile\\))p Fn(,)31 b(for)i(this)h(ma)n(y)f(result)g(in)h(a)f\n (segmen)n(tation)g(violation.)53 b(The)34 b(v)-5 b(alues)33\n b(of)h Fm(\\013)g Fn(m)n(ust)f(b)r(e)h(loaded)f(in)n(to)g(an)p\n eop end\n %%Page: 3 3\n-TeXDict begin 3 2 bop 83 100 1041 4 v 1207 100 a Fi(Multithreaded)22\n-b Fg(:)37 b Fh(DRAFT)111 b Fg(August)27 b(3,)g(2025)p\n-2819 100 V 1041 w Fn(3)208 390 y(arra)n(y)d(of)i(length)h(1)f(or)f(2.)\n-36 b(The)27 b(n)n(um)n(b)r(er)f(of)g(threads)g(is)g(sp)r(eci\\014ed)h(b)\n-n(y)f(the)h Fi(nthread)d Fn(parameter;)h(if,)i Fi(nthread)d\n+TeXDict begin 3 2 bop 83 100 1094 4 v 1260 100 a Fi(Multithreaded)22\n+b Fg(:)37 b Fh(DRAFT)110 b Fg(July)28 b(1,)f(2024)p 2767\n+100 V 1094 w Fn(3)208 390 y(arra)n(y)d(of)i(length)h(1)f(or)f(2.)36\n+b(The)27 b(n)n(um)n(b)r(er)f(of)g(threads)g(is)g(sp)r(eci\\014ed)h(b)n\n+(y)f(the)h Fi(nthread)d Fn(parameter;)h(if,)i Fi(nthread)d\n Fn(is)i Fi(1)p Fn(,)208 490 y(the)k(serial)e(metho)r(d)i(is)g(called.)\n 43 b(The)30 b Fi(msglvl)d Fn(and)j Fi(msgFile)c Fn(parameters)i(are)h\n (used)h(for)f(diagnostics)f(during)i(the)208 589 y(creation)c(of)i(the)\n g(threads')f(individual)g(data)g(structures.)208 722\n y Fh(Err)l(or)k(che)l(cking:)43 b Fn(If)30 b Fi(A)p Fn(,)f\n Fi(Y)g Fn(or)f Fi(X)h Fn(are)g Fi(NULL)p Fn(,)f(or)g(if)i\n Fi(coordType)c Fn(is)j(not)h Fi(INPMTX)p 2711 722 27\n@@ -5364,17 +5351,17 @@\n (assem)n(bling)f(aggregate)f(fron)n(ts.)307 5142 y Fc(\\210)42\n b Fi(cpus[5])25 b Fn(|)j(time)g(sp)r(en)n(t)g(assem)n(bling)e(p)r(ostp)\n r(oned)i(data.)307 5274 y Fc(\\210)42 b Fi(cpus[6])25\n b Fn(|)j(time)g(sp)r(en)n(t)g(to)f(factor)g(the)h(fron)n(ts.)307\n 5407 y Fc(\\210)42 b Fi(cpus[7])25 b Fn(|)j(time)g(sp)r(en)n(t)g(to)f\n (extract)g(p)r(ostp)r(oned)h(data.)p eop end\n %%Page: 4 4\n-TeXDict begin 4 3 bop 0 100 a Fn(4)p 125 100 1041 4 v\n-1207 w Fi(Multithreaded)22 b Fg(:)37 b Fh(DRAFT)27 b\n-Fg(August)h(3,)f(2025)p 2859 100 V 307 390 a Fc(\\210)42\n+TeXDict begin 4 3 bop 0 100 a Fn(4)p 125 100 1094 4 v\n+1259 w Fi(Multithreaded)23 b Fg(:)36 b Fh(DRAFT)28 b\n+Fg(July)f(1,)g(2024)p 2806 100 V 307 390 a Fc(\\210)42\n b Fi(cpus[8])25 b Fn(|)j(time)g(sp)r(en)n(t)g(to)f(store)g(the)h\n (factor)e(en)n(tries.)307 524 y Fc(\\210)42 b Fi(cpus[9])25\n b Fn(|)j(miscellaneous)e(time.)208 691 y(On)h(return,)g(the)h\n Fi(stats[])d Fn(v)n(ector)h(is)i(\\014lled)g(with)g(the)g(follo)n(wing)e\n (information.)307 859 y Fc(\\210)42 b Fi(stats[0])25 b\n Fn(|)i(n)n(um)n(b)r(er)h(of)f(piv)n(ots.)307 993 y Fc(\\210)42\n b Fi(stats[1])25 b Fn(|)i(n)n(um)n(b)r(er)h(of)f(piv)n(ot)g(tests.)307\n@@ -5445,22 +5432,22 @@\n b Fm(I)7 b Fn(\\))p Fm(D)r Fn(\\()p Fm(I)24 b Fn(+)15 b\n Fm(U)9 b Fn(\\))p Fm(X)30 b Fn(=)22 b Fm(B)31 b Fn(or)26\n b(\\()p Fm(L)15 b Fn(+)h Fm(I)7 b Fn(\\))p Fm(D)r Fn(\\()p\n Fm(I)24 b Fn(+)15 b Fm(U)9 b Fn(\\))p Fm(X)30 b Fn(=)22\n b Fm(B)t Fn(.)37 b(En)n(tries)25 b(of)h Fm(B)31 b Fn(are)25\n b Fh(r)l(e)l(ad)p eop end\n %%Page: 5 5\n-TeXDict begin 5 4 bop 83 100 1041 4 v 1207 100 a Fi(Multithreaded)22\n-b Fg(:)37 b Fh(DRAFT)111 b Fg(August)27 b(3,)g(2025)p\n-2819 100 V 1041 w Fn(5)208 390 y(from)k Fi(mtxB)g Fn(and)h(en)n(tries)g\n-(of)g Fm(X)39 b Fn(are)31 b(written)i(to)f Fi(mtxX)p\n-Fn(.)e(Therefore,)j Fi(mtxX)d Fn(and)j Fi(mtxB)d Fn(can)i(b)r(e)h(the)g\n-(same)e(ob)5 b(ject.)208 490 y(\\(Note,)25 b(this)h(do)r(es)e(not)h\n-(hold)g(true)g(for)f(an)h(MPI)f(factorization)g(with)h(piv)n(oting.\\))\n-36 b(The)25 b(submatrix)f(manager)f(ob)5 b(ject)208 589\n+TeXDict begin 5 4 bop 83 100 1094 4 v 1260 100 a Fi(Multithreaded)22\n+b Fg(:)37 b Fh(DRAFT)110 b Fg(July)28 b(1,)f(2024)p 2767\n+100 V 1094 w Fn(5)208 390 y(from)k Fi(mtxB)g Fn(and)h(en)n(tries)g(of)g\n+Fm(X)39 b Fn(are)31 b(written)i(to)f Fi(mtxX)p Fn(.)e(Therefore,)j\n+Fi(mtxX)d Fn(and)j Fi(mtxB)d Fn(can)i(b)r(e)h(the)g(same)e(ob)5\n+b(ject.)208 490 y(\\(Note,)25 b(this)h(do)r(es)e(not)h(hold)g(true)g\n+(for)f(an)h(MPI)f(factorization)g(with)h(piv)n(oting.\\))36\n+b(The)25 b(submatrix)f(manager)f(ob)5 b(ject)208 589\n y(manages)31 b(the)j(w)n(orking)d(storage.)51 b(The)33\n b Fi(solvemap)d Fn(ob)5 b(ject)33 b(con)n(tains)f(the)h(map)g(from)g\n (submatrices)f(to)h(threads.)208 689 y(The)j(map)h(from)f(fron)n(ts)g\n (to)h(pro)r(cesses)e(that)i(o)n(wn)f(them)h(is)f(giv)n(en)g(in)h(the)g\n Fi(ownersIV)c Fn(ob)5 b(ject.)64 b(On)37 b(return)f(the)208\n 789 y Fi(cpus[])25 b Fn(v)n(ector)h(is)i(\\014lled)f(with)i(the)f(follo)\n n(wing.)35 b(The)28 b Fi(stats[])d Fn(v)n(ector)h(is)i(not)f(curren)n\n@@ -5535,17 +5522,17 @@\n b(matrix,)h(factors)e Fm(A)h Fn(and)g(solv)n(es)e(the)i(linear)f\n (system)h Fm(AX)40 b Fn(=)33 b Fm(B)38 b Fn(for)c Fm(X)40\n b Fn(using)34 b(m)n(ultithreaded)f(factors)g(and)208\n 5407 y(solv)n(es.)i(Use)28 b(the)g(script)f(\\014le)h\n Fi(do)p 1237 5407 27 4 v 30 w(gridMT)d Fn(for)i(testing.)p\n eop end\n %%Page: 6 6\n-TeXDict begin 6 5 bop 0 100 a Fn(6)p 125 100 1041 4 v\n-1207 w Fi(Multithreaded)22 b Fg(:)37 b Fh(DRAFT)27 b\n-Fg(August)h(3,)f(2025)p 2859 100 V 307 390 a Fc(\\210)42\n+TeXDict begin 6 5 bop 0 100 a Fn(6)p 125 100 1094 4 v\n+1259 w Fi(Multithreaded)23 b Fg(:)36 b Fh(DRAFT)28 b\n+Fg(July)f(1,)g(2024)p 2806 100 V 307 390 a Fc(\\210)42\n b Fn(The)23 b Fi(msglvl)e Fn(parameter)g(determines)i(the)h(amoun)n(t)e\n (of)h(output.)36 b(Use)23 b Fi(msglvl)41 b(=)i(1)23 b\n Fn(for)g(just)g(timing)g(output.)307 524 y Fc(\\210)42\n b Fn(The)32 b Fi(msgFile)c Fn(parameter)i(determines)h(the)h(message)e\n (\\014le)i(|)f(if)h Fi(msgFile)d Fn(is)i Fi(stdout)p Fn(,)f(then)i(the)g\n (message)390 624 y(\\014le)c(is)f Fh(stdout)p Fn(,)h(otherwise)e(a)i\n (\\014le)f(is)h(op)r(ened)f(with)i Fh(app)l(end)g Fn(status)e(to)g\n@@ -5618,18 +5605,18 @@\n b Fn(using)27 b(m)n(ultithreaded)g(factors)g(and)g(solv)n(es.)208\n 5221 y(Use)g(the)h(script)f(\\014le)h Fi(do)p 968 5221\n V 31 w(patchAndGo)23 b Fn(for)k(testing.)307 5407 y Fc(\\210)42\n b Fn(The)23 b Fi(msglvl)e Fn(parameter)g(determines)i(the)h(amoun)n(t)e\n (of)h(output.)36 b(Use)23 b Fi(msglvl)41 b(=)i(1)23 b\n Fn(for)g(just)g(timing)g(output.)p eop end\n %%Page: 7 7\n-TeXDict begin 7 6 bop 83 100 1041 4 v 1207 100 a Fi(Multithreaded)22\n-b Fg(:)37 b Fh(DRAFT)111 b Fg(August)27 b(3,)g(2025)p\n-2819 100 V 1041 w Fn(7)307 390 y Fc(\\210)42 b Fn(The)32\n-b Fi(msgFile)c Fn(parameter)i(determines)h(the)h(message)e(\\014le)i(|)f\n+TeXDict begin 7 6 bop 83 100 1094 4 v 1260 100 a Fi(Multithreaded)22\n+b Fg(:)37 b Fh(DRAFT)110 b Fg(July)28 b(1,)f(2024)p 2767\n+100 V 1094 w Fn(7)307 390 y Fc(\\210)42 b Fn(The)32 b\n+Fi(msgFile)c Fn(parameter)i(determines)h(the)h(message)e(\\014le)i(|)f\n (if)h Fi(msgFile)d Fn(is)i Fi(stdout)p Fn(,)f(then)i(the)g(message)390\n 490 y(\\014le)c(is)f Fh(stdout)p Fn(,)h(otherwise)e(a)i(\\014le)f(is)h\n (op)r(ened)f(with)i Fh(app)l(end)g Fn(status)e(to)g(receiv)n(e)g(an)n\n (y)g(output)h(data.)307 620 y Fc(\\210)42 b Fn(The)28\n b Fi(type)e Fn(parameter)g(sp)r(eci\\014es)h(a)h(real)e(or)h(complex)g\n (linear)g(system.)456 750 y Fa({)41 b Fi(type)h(=)i(1)f(\\(SPOOLES)p\n 1295 750 27 4 v 28 w(REAL\\))25 b Fn(for)i(real,)456 865\n@@ -5705,17 +5692,17 @@\n 5277 y Fl(T)3144 5308 y Fj(\\003)g Fm(X)27 b Fn(or)19\n b Fm(Y)24 b Fn(+)5 b Fm(\\013)g Fj(\\003)g Fm(A)3690 5277\n y Fl(H)3756 5308 y Fj(\\003)g Fm(X)i Fn(.)208 5407 y(The)27\n b(program's)f(output)i(is)f(a)g(\\014le)h(whic)n(h)g(when)f(sen)n(t)h\n (in)n(to)f(Matlab,)h(outputs)f(the)h(error)e(in)i(the)g(computation.)p\n eop end\n %%Page: 8 8\n-TeXDict begin 8 7 bop 0 100 a Fn(8)p 125 100 1041 4 v\n-1207 w Fi(Multithreaded)22 b Fg(:)37 b Fh(DRAFT)27 b\n-Fg(August)h(3,)f(2025)p 2859 100 V 307 390 a Fc(\\210)42\n+TeXDict begin 8 7 bop 0 100 a Fn(8)p 125 100 1094 4 v\n+1259 w Fi(Multithreaded)23 b Fg(:)36 b Fh(DRAFT)28 b\n+Fg(July)f(1,)g(2024)p 2806 100 V 307 390 a Fc(\\210)42\n b Fn(The)19 b Fi(msglvl)e Fn(parameter)g(determines)i(the)h(amoun)n(t)e\n (of)h(output)h(|)f(taking)f Fi(msglvl)41 b(>=)i(3)19\n b Fn(means)f(the)h Fi(InpMtx)390 490 y Fn(ob)5 b(ject)28\n b(is)f(written)h(to)f(the)h(message)e(\\014le.)307 624\n y Fc(\\210)42 b Fn(The)32 b Fi(msgFile)c Fn(parameter)i(determines)h\n (the)h(message)e(\\014le)i(|)f(if)h Fi(msgFile)d Fn(is)i\n Fi(stdout)p Fn(,)f(then)i(the)g(message)390 724 y(\\014le)c(is)f\n@@ -5799,17 +5786,17 @@\n V 28 w(HERMITIAN\\))23 b Fn(for)k Fm(A)h Fn(complex)g(Hermitian,)456\n 5138 y Fa({)41 b Fi(type)h(=)i(2)f(\\(SPOOLES)p 1295 5138\n V 28 w(NONSYMMETRIC\\))390 5273 y Fn(for)27 b Fm(A)h Fn(real)f(or)g\n (complex)g(nonsymmetric.)307 5407 y Fc(\\210)42 b Fn(The)28\n b Fi(sparsityflag)23 b Fn(parameter)j(signals)g(a)h(direct)h(or)e\n (appro)n(ximate)g(factorization.)p eop end\n %%Page: 9 9\n-TeXDict begin 9 8 bop 83 100 1041 4 v 1207 100 a Fi(Multithreaded)22\n-b Fg(:)37 b Fh(DRAFT)111 b Fg(August)27 b(3,)g(2025)p\n-2819 100 V 1041 w Fn(9)456 390 y Fa({)41 b Fi(sparsityflag)e(=)k(0)g\n+TeXDict begin 9 8 bop 83 100 1094 4 v 1260 100 a Fi(Multithreaded)22\n+b Fg(:)37 b Fh(DRAFT)110 b Fg(July)28 b(1,)f(2024)p 2767\n+100 V 1094 w Fn(9)456 390 y Fa({)41 b Fi(sparsityflag)e(=)k(0)g\n (\\(FRONTMTX)p 1687 390 27 4 v 28 w(DENSE)p 1935 390 V\n 29 w(FRONTS\\))26 b Fn(implies)j(a)f(direct)h(factorization,)f(the)h\n (fron)n(ts)f(will)545 490 y(b)r(e)g(stored)f(as)g(dense)h(submatrices.)\n 456 607 y Fa({)41 b Fi(sparsityflag)e(=)k(1)g(\\(FRONTMTX)p\n 1687 607 V 28 w(SPARSE)p 1979 607 V 29 w(FRONTS\\))29\n b Fn(implies)j(an)g(appro)n(ximate)e(factorization.)48\n b(The)545 706 y(fron)n(ts)26 b(will)g(b)r(e)g(stored)g(as)f(sparse)g\n@@ -5894,17 +5881,17 @@\n b Fi(n1)27 b Fn(is)h(the)g(n)n(um)n(b)r(er)f(of)g(p)r(oin)n(ts)h(in)g\n (the)g(\\014rst)f(grid)g(direction.)307 5273 y Fc(\\210)42\n b Fi(n2)27 b Fn(is)h(the)g(n)n(um)n(b)r(er)f(of)g(p)r(oin)n(ts)h(in)g\n (the)g(second)f(grid)g(direction.)307 5407 y Fc(\\210)42\n b Fi(n3)27 b Fn(is)h(the)g(n)n(um)n(b)r(er)f(of)g(p)r(oin)n(ts)h(in)g\n (the)g(third)g(grid)e(direction.)p eop end\n %%Page: 10 10\n-TeXDict begin 10 9 bop 0 100 a Fn(10)p 166 100 1021 4\n-v 1185 w Fi(Multithreaded)23 b Fg(:)37 b Fh(DRAFT)27\n-b Fg(August)g(3,)h(2025)p 2880 100 V 307 390 a Fc(\\210)42\n+TeXDict begin 10 9 bop 0 100 a Fn(10)p 166 100 1073 4\n+v 1238 w Fi(Multithreaded)22 b Fg(:)37 b Fh(DRAFT)27\n+b Fg(July)h(1,)f(2024)p 2827 100 V 307 390 a Fc(\\210)42\n b Fn(The)28 b Fi(seed)e Fn(parameter)g(is)h(a)h(random)e(n)n(um)n(b)r\n (er)i(seed.)307 523 y Fc(\\210)42 b Fn(The)28 b Fi(nrhs)e\n Fn(parameter)g(is)h(the)h(n)n(um)n(b)r(er)g(of)f(righ)n(t)g(hand)h\n (sides)f(to)h(solv)n(e)e(as)h(one)g(blo)r(c)n(k.)307\n 656 y Fc(\\210)42 b Fn(The)28 b Fi(type)e Fn(parameter)g(sp)r(eci\\014es)\n h(a)h(real)e(or)h(complex)g(linear)g(system.)456 789\n y Fa({)41 b Fi(type)h(=)i(1)f(\\(SPOOLES)p 1295 789 27\n", "details": [{"source1": "ps2ascii {}", "source2": "ps2ascii {}", "unified_diff": "@@ -35,15 +35,15 @@\n by independent topological traversals of the front tree. It is the list and working storage data structures (the\r\n ChvList, ChvManager and SubMtxManager objects) that have locks. What is done is common code between\r\n the serial and multithreaded environments, it is the choreography, i.e., who does what, that di\ufb00ers.\r\n Most of these same comments apply to the multithreaded solve methods. The calling sequences between\r\n the serial and multithreaded solves di\ufb00ers by one parameter, a SolveMap object that maps the submatrices\r\n of the factor matrix to the threads that will compute with them.\r\n 1\r\n- 2 Multithreaded : DRAFT August 3, 2025\r\n+ 2 Multithreaded : DRAFT July 1, 2024\r\n 1.1 Data Structure\r\n There are no multithreaded speci\ufb01c data structures. See the Lock object which is used to hide the particular\r\n mutual exclusion device used by a thread library.\r\n 1.2 Prototypes and descriptions of MT methods\r\n This section contains brief descriptions including prototypes of all methods found in the MT source directory.\r\n 1.2.1 Matrix-matrix multiply methods\r\n Thereare\ufb01vemethodstomultiplyavectortimesadensematrix. The\ufb01rstthreemethods,calledInpMtx MT nonsym mmm*(),\r\n@@ -79,15 +79,15 @@\n This method computes the matrix-vector product y := y+\u03b1A x, where y is found in the Y DenseMtx\r\n object, \u03b1 is real or complex in alpha[], A is found in the A Inpmtx object, and x is found in the X\r\n DenseMtx object. If any of the input objects are NULL, an error message is printed and the program\r\n exits. A, X and Y must all be real or all be complex. When A is real, then \u03b1 = alpha[0]. When A\r\n is complex, then \u03b1 = alpha[0] + i* alpha[1]. This means that one cannot call the methods with\r\n a constant as the third parameter, e.g., InpMtx MT nonsym mmm(A, Y, 3.22, X, nthread, msglvl,\r\n msgFile), for this may result in a segmentation violation. The values of \u03b1 must be loaded into an\r\n- Multithreaded : DRAFT August 3, 2025 3\r\n+ Multithreaded : DRAFT July 1, 2024 3\r\n array of length 1 or 2. The number of threads is speci\ufb01ed by the nthread parameter; if, nthread is 1,\r\n the serial method is called. The msglvl and msgFile parameters are used for diagnostics during the\r\n creation of the threads\u2019 individual data structures.\r\n Error checking: If A, Y or X are NULL, or if coordType is not INPMTX BY ROWS, INPMTX BY COLUMNS or\r\n INPMTX BY CHEVRONS,orifstorageModeisnotoneofINPMTX RAW DATA,INPMTX SORTEDorINPMTX BY VECTORS,\r\n or if inputModeis not SPOOLES REAL or SPOOLES COMPLEX,an error message is printed and the program\r\n exits.\r\n@@ -124,15 +124,15 @@\n \u2022 cpus[1] \u2014 time spent initializing the fronts and loading the original entries.\r\n \u2022 cpus[2] \u2014 time spent accumulating updates from descendents.\r\n \u2022 cpus[3] \u2014 time spent inserting aggregate fronts.\r\n \u2022 cpus[4] \u2014 time spent removing and assembling aggregate fronts.\r\n \u2022 cpus[5] \u2014 time spent assembling postponed data.\r\n \u2022 cpus[6] \u2014 time spent to factor the fronts.\r\n \u2022 cpus[7] \u2014 time spent to extract postponed data.\r\n- 4 Multithreaded : DRAFT August 3, 2025\r\n+ 4 Multithreaded : DRAFT July 1, 2024\r\n \u2022 cpus[8] \u2014 time spent to store the factor entries.\r\n \u2022 cpus[9] \u2014 miscellaneous time.\r\n Onreturn, the stats[] vector is \ufb01lled with the following information.\r\n \u2022 stats[0] \u2014 number of pivots.\r\n \u2022 stats[1] \u2014 number of pivot tests.\r\n \u2022 stats[2] \u2014 number of delayed rows and columns.\r\n \u2022 stats[3] \u2014 number of entries in D.\r\n@@ -164,15 +164,15 @@\n an error message is printed and the program exits.\r\n 1.2.4 Multithreaded Solve method\r\n 1. void FrontMtx_MT_solve ( FrontMtx *frontmtx, DenseMtx *mtxX, DenseMtx *mtxB,\r\n SubMtxManager *mtxmanager, SolveMap *solvemap,\r\n double cpus[], int msglvl, FILE *msgFile ) ;\r\n This method is used to solve one of three linear systems of equations using a multithreaded solve \u2014\r\n (UT +I)D(I +U)X =B, (UH +I)D(I +U)X =B or (L+I)D(I+U)X =B. Entries of B are read\r\n- Multithreaded : DRAFT August 3, 2025 5\r\n+ Multithreaded : DRAFT July 1, 2024 5\r\n from mtxB and entries of X are written to mtxX. Therefore, mtxX and mtxB can be the same object.\r\n (Note, this does not hold true for an MPI factorization with pivoting.) The submatrix manager object\r\n manages the working storage. The solvemap object contains the map from submatrices to threads.\r\n The map from fronts to processes that own them is given in the ownersIV object. On return the\r\n cpus[] vector is \ufb01lled with the following. The stats[] vector is not currently used.\r\n \u2022 cpus[0] \u2014 set up the solves\r\n \u2022 cpus[1] \u2014 fetch right hand side and store solution\r\n@@ -206,15 +206,15 @@\n \u00bf 0 and msgFile is NULL, an error message is printed and the program exits.\r\n 1.3 Driver programs for the multithreaded functions\r\n 1. allInOneMT msglvl msgFile type symmetryflag pivotingflag\r\n matrixFileName rhsFileName seed nthread\r\n This driver program reads in a matrix A and right hand side B, generates the graph for A and orders\r\n the matrix, factors A and solves the linear system AX = B for X using multithreaded factors and\r\n solves. Use the script \ufb01le do gridMT for testing.\r\n- 6 Multithreaded : DRAFT August 3, 2025\r\n+ 6 Multithreaded : DRAFT July 1, 2024\r\n \u2022 The msglvlparameterdetermines the amount of output. Use msglvl = 1 for just timing output.\r\n \u2022 The msgFile parameter determines the message \ufb01le \u2014 if msgFile is stdout, then the message\r\n \ufb01le is stdout, otherwise a \ufb01le is opened with append status to receive any output data.\r\n \u2022 The type parameter speci\ufb01es a real or complex linear system.\r\n \u2013 type = 1 (SPOOLES REAL) for real,\r\n \u2013 type = 2 (SPOOLES COMPLEX) for complex.\r\n \u2022 The symmetryflag parameter speci\ufb01es the symmetry of the matrix.\r\n@@ -249,15 +249,15 @@\n Thisdriverprogramisusedtotestthe\u201cpatch-and-go\u201dfunctionalityforafactorizationwithoutpivoting.\r\n Whensmalldiagonalpivotelements are found, one of three actions are taken. See the PatchAndGoInfo\r\n object for more information.\r\n The program reads in a matrix A and right hand side B, generates the graph for A and orders the\r\n matrix, factors A and solves the linear system AX = B for X using multithreaded factors and solves.\r\n Use the script \ufb01le do patchAndGo for testing.\r\n \u2022 The msglvlparameterdetermines the amount of output. Use msglvl = 1 for just timing output.\r\n- Multithreaded : DRAFT August 3, 2025 7\r\n+ Multithreaded : DRAFT July 1, 2024 7\r\n \u2022 The msgFile parameter determines the message \ufb01le \u2014 if msgFile is stdout, then the message\r\n \ufb01le is stdout, otherwise a \ufb01le is opened with append status to receive any output data.\r\n \u2022 The type parameter speci\ufb01es a real or complex linear system.\r\n \u2013 type = 1 (SPOOLES REAL) for real,\r\n \u2013 type = 2 (SPOOLES COMPLEX) for complex.\r\n \u2022 The symmetryflag parameter speci\ufb01es the symmetry of the matrix.\r\n \u2013 type = 0 (SPOOLES SYMMETRIC) for A real or complex symmetric,\r\n@@ -294,15 +294,15 @@\n \u2022 The nthread parameter is the number of threads.\r\n 3. testMMM msglvl msgFile dataType symflag storageMode transpose\r\n nrow ncol nitem nrhs seed alphaReal alphaImag nthread\r\n ThisdriverprogramgeneratesA, anrow\u00d7ncolmatrixusingniteminputentries,X andY,nrow\u00d7nrhs\r\n T H\r\n matrices, is \ufb01lled with random numbers. It then computes Y +\u03b1\u2217A\u2217X,Y +\u03b1\u2217A \u2217X orY +\u03b1\u2217A \u2217X.\r\n The program\u2019s output is a \ufb01le which when sent into Matlab, outputs the error in the computation.\r\n- 8 Multithreaded : DRAFT August 3, 2025\r\n+ 8 Multithreaded : DRAFT July 1, 2024\r\n \u2022 Themsglvlparameterdeterminestheamountofoutput\u2014takingmsglvl >= 3meanstheInpMtx\r\n object is written to the message \ufb01le.\r\n \u2022 The msgFile parameter determines the message \ufb01le \u2014 if msgFile is stdout, then the message\r\n \ufb01le is stdout, otherwise a \ufb01le is opened with append status to receive any output data.\r\n \u2022 dataType is the type of entries, 0 for real, 1 for complex.\r\n \u2022 symflag is the symmetry \ufb02ag, 0 for symmetric, 1 for Hermitian, 2 for nonsymmetric.\r\n \u2022 storageModeisthestoragemodefortheentries,1forbyrows,2forbycolumns, 3forbychevrons.\r\n@@ -336,15 +336,15 @@\n \u2013 type = 2 (SPOOLES COMPLEX) for complex.\r\n \u2022 The symmetryflag parameter speci\ufb01es the symmetry of the matrix.\r\n \u2013 type = 0 (SPOOLES SYMMETRIC) for A real or complex symmetric,\r\n \u2013 type = 1 (SPOOLES HERMITIAN) for A complex Hermitian,\r\n \u2013 type = 2 (SPOOLES NONSYMMETRIC)\r\n for A real or complex nonsymmetric.\r\n \u2022 The sparsityflag parameter signals a direct or approximate factorization.\r\n- Multithreaded : DRAFT August 3, 2025 9\r\n+ Multithreaded : DRAFT July 1, 2024 9\r\n \u2013 sparsityflag = 0 (FRONTMTX DENSE FRONTS) implies a direct factorization, the fronts will\r\n be stored as dense submatrices.\r\n \u2013 sparsityflag = 1 (FRONTMTX SPARSE FRONTS) implies an approximate factorization. The\r\n fronts will be stored as sparse submatrices, where the entries in the triangular factors will be\r\n subjected to a drop tolerance test \u2014 if the magnitude of an entry is droptol or larger, it will\r\n be stored, otherwise it will be dropped.\r\n \u2022 The pivotingflag parameter signals whether pivoting for stability will be enabled or not.\r\n@@ -382,15 +382,15 @@\n X F\r\n \u2022 The msglvlparameterdetermines the amount of output. Use msglvl = 1 for just timing output.\r\n \u2022 The msgFile parameter determines the message \ufb01le \u2014 if msgFile is stdout, then the message\r\n \ufb01le is stdout, otherwise a \ufb01le is opened with append status to receive any output data.\r\n \u2022 n1 is the number of points in the \ufb01rst grid direction.\r\n \u2022 n2 is the number of points in the second grid direction.\r\n \u2022 n3 is the number of points in the third grid direction.\r\n- 10 Multithreaded : DRAFT August 3, 2025\r\n+ 10 Multithreaded : DRAFT July 1, 2024\r\n \u2022 The seed parameter is a random number seed.\r\n \u2022 The nrhs parameter is the number of right hand sides to solve as one block.\r\n \u2022 The type parameter speci\ufb01es a real or complex linear system.\r\n \u2013 type = 1 (SPOOLES REAL) for real,\r\n \u2013 type = 2 (SPOOLES COMPLEX) for complex.\r\n \u2022 The nthread parameter is the number of threads.\r\n \u2022 The maptype parameter determines the type of map from fronts to processes to be used during\r\n"}]}]}, {"source1": "./usr/share/doc/spooles-doc/Network.ps.gz", "source2": "./usr/share/doc/spooles-doc/Network.ps.gz", "unified_diff": null, "details": [{"source1": "Network.ps", "source2": "Network.ps", "unified_diff": "@@ -11,15 +11,15 @@\n %%EndComments\n %%BeginDefaults\n %%ViewingOrientation: 1 0 0 1\n %%EndDefaults\n %DVIPSWebPage: (www.radicaleye.com)\n %DVIPSCommandLine: dvips main -o Network.ps\n %DVIPSParameters: dpi=600\n-%DVIPSSource: TeX output 2025.08.03:1317\n+%DVIPSSource: TeX output 2024.07.01:0700\n %%BeginProcSet: tex.pro 0 0\n %!\n /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S\n N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72\n mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0\n 0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{\n landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize\n@@ -1541,23 +1541,22 @@\n /UnderlinePosition -100 def\n /UnderlineThickness 50 def\n end readonly def\n /Encoding 256 array\n 0 1 255 {1 index exch /.notdef put} for\n dup 44 /comma put\n dup 48 /zero put\n+dup 49 /one put\n dup 50 /two put\n-dup 51 /three put\n-dup 53 /five put\n+dup 52 /four put\n dup 58 /colon put\n-dup 65 /A put\n-dup 103 /g put\n-dup 115 /s put\n-dup 116 /t put\n+dup 74 /J put\n+dup 108 /l put\n dup 117 /u put\n+dup 121 /y put\n readonly def\n currentdict end\n currentfile eexec\n D9D66F633B846AB284BCF8B0411B772DE5CE32340DC6F28AF40857E4451976E7\n 5182433CF9F333A38BD841C0D4E68BF9E012EB32A8FFB76B5816306B5EDF7C99\n 8B3A16D9B4BC056662E32C7CD0123DFAEB734C7532E64BBFBF5A60336E646716\n EFB852C877F440D329172C71F1E5D59CE9473C26B8AEF7AD68EF0727B6EC2E0C\n@@ -1738,79 +1737,67 @@\n 7CA1534C4D5B05FC33F83790ECFD7641DF3FB94289E2A1F6E7D29AB1228A867A\n 6E1EF0E9C6F899B491DC18401C2C0A05FFFED46A72C245F7529B8EA55A038082\n 8512307217D2A233C37004085BA3AEE379269F9FA7D0ADB4B19A95CC2AFE686E\n 55D88E47257C1FE6F235FEA295910569FE6DD5995512562359CC821E85A6C7A5\n 79B470A9E340A6985189FF8B6AF914A6B0ECF93F47903221F95DE894A8F05B05\n B7D99CD533EC5F931B18E6B39BECF67FA2D6DD1AEC76772B068BE06335A94C05\n 7A4DDEE77B66101DA855C17AC312600370B34E31F5EC3A01300A8EB60B4C9767\n-1B2FA10DF7E91D3BB34A1B1CE7A0015A57C813E0280D873ADB88440048702D1F\n-77994EE04EC3B4531D6E1888C86A8F0DA6CF1F056F16AB0DD76C862830F89DA4\n-28923B3AA543E0D6E41D3BD283E600BC11F889315EE92C675C109C81065ED1BC\n-82A5583D1B723D50051B0557A367887F5B263014C6E77288B4883C50889473D3\n-3787BAD4BEB88BD1353AFA5B73E61814819537E7FF09F53EF94792BB3DD36ED0\n-002D0E7A6CDAB85A9C17AF5664BCB5A71663B861880F3ECCABC8E7A2FC81A4CC\n-AE7A87503FDC1CE0077BA51ECC7B43B60793FED8E9AAD5BBD03ADD6183DCD26D\n-24A74163611C05562437644EF9B8889FD4F9D311911204FEFD35237486F2D2D0\n-B6783A03BF12EA6D19D6D0F87E4D08515F12F9CBF1961CAA71E0D69FE3C4C4D2\n-7C7FB64ED24F8684C8F00C2BEDEA53EA390CDC0B5BEBD7DD982580B2EA1F1F89\n-CFED5916630DC2BA32BB9180277E1ABC339B3B7DE086717BD93F7FF3681BA5B3\n-FCF671C4B293C2DE4A322F0AA3323A4934444C69F23EF90120B8755482757759\n-C457A435FB8BB4922BD92C5F3D9555D978275C510183E29DFF2FCE4ABBFC18DE\n-76CAD3B486BA12047DD808CD4D521A0FD368E4AE79DE262630983A5D6F0B679D\n-2F005306393C520E1B6987302D029939D94B0178DC55D5264E1FEA468AD4134C\n-8C65B2FBBE8DE8284E8E1F6BFE0B648F44D3DA8E9350D266EDBFD4A7054D9355\n-1E0B185DED37BCF32D3731358F1D707C94109428BAD3CEA456A2A43553E3D2C2\n-F549189201F3D3F715310E3E8C6A2E9AA5141AA9125D203694C7D875C2DD320F\n-C5BCDFC924F6C04DBC7A97349B45ECD0FBD7D2123ED1D3A9F440B1112BE62779\n-47A4592F9285CBD9635EC9091CEC0AFD7E6B6976974081DB9C0E43165BD8584D\n-6CDF08DED287F0883A9FBD351B3F8706BA1E94C7CA487338269482EB8DC1A05D\n-F6632A5D834DE29228C49C5BA65EF7C535A53B380BF4B391F43562147538EE97\n-E799DFC2C40315859F56BBCE9CAE1DF9293F6E2C193ABE7A724EC8F32FA220E7\n-6026877A63E318254F2AF7B1325D63FC4C52B536D3EF354814C2F8F1EEA30569\n-6EF04447DB0F809DF35B4985B9FB4F4BB6087310BE633E76F268B32ABA99CE8E\n-03163DFF4AEDB88E60DD0848C15E90026D7C24D81122EBC07113F9851914A9D5\n-D0E09C2BFDDAF10C5D8208E8329BC0C402F231CD84C95EFDD182AD9756662110\n-274650C7A5BB0D8EFA54EC6C5A49C0EB26701A54779AE8EFBBED824262761602\n-680EDFB38F0FE18C0F501F5AA8BF48A8F0DD3E5E1EBEB872F6F6B23964707B32\n-507FC677B9FDDC990E3828B06420F6F968B2F6AE81E76A2144B1ECE905485616\n-CFB29AC96DDE1F5039935D7E385CC13E34DD7EAF276A2EA3A8BF27FD4205AE13\n-7FE620E42F2CF231C6C8DD8EFC5A6CF081E5660D9ADD730D72D15C02B1E15FF3\n-D741D3B1EB1E666C4E562219033C1E2EF3F96E136998B2E1890395A3637A2C02\n-DE1C46AFCA8D898439F06606A2295D3F7ED6C7DB250C61B6B97A0D5EDDB9657E\n-E790B4E07540BB1026036F4A0D00E7F16FD757AD61D686620C6814B7DCEC43E8\n-FD36D9E75BA554F64548A67D9B0A26E11784E58D4357FC251D71B5D6D8BFDDE0\n-D3BF0E825DA5312C1904AF13C5905C2ADF79C357476183D2EC5A95243235E861\n-2F98D9EE77EF8F8CB3EC6BD358C5ED37DD3AF44D60575E7774BF96F1AE9DFAD1\n-F8646DEDF21D10311854726B8F7D25876BB1EF78E2442B16ED4B851816CF0A27\n-11FDFCE525002A1A7C3E62CD2A3EDE6FAADB026D2F3A46C030ADB22422CA8FF5\n-2545ED58C0D9FB5BDB55FE674301E91A75B005B86BD201D246F7ADACE50419FD\n-AC3312CAC5EB78A36F0E5F62E65AC92129CB574AAC59E0A7C1390DFC61F39D9E\n-D7036742F2F6E64D1EF8157E9CCF65F3EEDC6A8220235978B8E06EB80F649F3E\n-204CFB497F49306EA8E1F7B62305978A28F1E771ED82C6592C71022154E4062A\n-A92335EFC65D6DED9C686899FFD7AA2988740618C03C5E362E1AF352E3BE4602\n-5530C51E5FC8E9082DF79199CC91C50174000D337D86127AC807C5A3C81DDE57\n-7A68AEE7230949B925365C214D77C80E87CEE218ABC94023717EA43BA5D8A7C8\n-8A8B9BD1B767996AE33050E3D922ED0574E3579C57E4BDDAD35883806AFDF260\n-3AB5D83D451583262E580FFDB7A27D82396AF18D92B849A3F7A7E621987D5DF0\n-038F876C6E9CA47FB11AF05F0019191C5DDC5F0177AD421E94BC66D0CCB82F1F\n-93A80836284B095503752C600F72E2C89112ABFA5B76152691264103B268B3E5\n-8816724ADADB38740001A9AACE05C8AF02D72918606DC22EFC8BF0DA0FD12FFE\n-D3A09F8E28057F327BFB633E604B1EAD478637B1D9631650B314CC62D7E0E87F\n-9D3FE1FFA23BB6E3006C3E39BED52F6B0C1C651B5913878F36DA0BF776889165\n-68BA3456B40B8B471CA8FF5238E43D9113E052A2B8D2EAA2433D3F89FCA48AFB\n-5E842913E4ED6DF9623354059CD1F1707B126FED80349787C869883120183EDD\n-249185A55503FAC53898F52170D05CAC62BB742CF9702C0518AED6B27CDC401C\n-932E02143FD916703F360CB31049501B35EF3EDDFED791090D0CFA221FD1DB32\n-7D4759CE07983AE29C258C705D11E7D9481EEAAB9B6BA65CDCF0AA0057BD6FEA\n-ABBFBD3ABF2A7BFB550C3D2A16DC447384A89F3DB6D9C2DBDCA997ABE35A7706\n-633D328AECEDB5BD07070C1B96267FD73B45791DD18194F60D358091FBE88409\n-973529806F3D2C9E6E39091F90A14B560A987E0B9490B9B690FB489B8E253070\n-D7C54447BE0E0A0BFEAEFFB581DC1300E6EC382984673BF0665632404E59B5BF\n-5D5F0A1C956E618C0487751CA5DAE8A95C214F76ED756694EF273679CD2D85CB\n-949DF385BD50491649EFEFDA1574921D7460143D42A100D2C76E55F0BC\n+1B2FA10DF7E91D3BB34A1B1CE7A0015A57C813E0280D873ADB8844004B9BA1CC\n+580D3C6BDA4DC1B80B4365F1C80512453FC5316EC2D928FB731C3D6403E3C18B\n+E8424D644DF5E9A2134229C5C91CA68DB8E85BA2BB40F538F585DA6FA4037718\n+B8053EBBA1E765346BCD5BDAA6C38115D31611D8A87A2238C145F2DA2F92E4DF\n+3987BD9C4D2A3D460E8941A68B125BCD9EE4F9FD262C4C8A71F47A2C81975635\n+F1B981C274C53FA2ACCDE4C9D0A7C62D6C1EFF91CFC6712CA6A9F333C9564FCB\n+2A70F0AD715A79B10A08AB069E2A3C93BC0AED19D0CA10134B8DDDE8AF548DB2\n+3A4AAA9C29682CF135BB767DAA16169A127EB50A7EECEB6480CF56A7D0F8AC56\n+4A5090B3D75A790372886AF568D94C8165975A05BFBFDF1FFBA45F70700BB9E0\n+57F3249EF9E9C8AD9CBCF6E4FD592DC4CDD2CC7C0BC3130C1059096C657BE453\n+A2CBACE93420210E27AF56CA229BD6D982FB68B3FDC6D44478B922C4231C47EE\n+E500232F6C11D92DEB955F66DF52B92B22E7352790CC2DCBAC53965D57AC2920\n+68B7D520DE25047146EFEB06B9AD4E2A94243C7E5239F0BC2FC312B16051D52C\n+0B92C217B6B42997321AE4F8BB066754B7AA3F15069EF59224E8A442CE471AA7\n+E8049A3DD9EDA09CCEE4998998661CF7DB35E952F6C65DAEB3013951C59F3E09\n+157F313B0237876E1C0190F0473819570B8C0205AADF05D787CC00979CFB327A\n+289382B22DDA6F12804ED0ED5B179E36A995A2A59E1B66E75130DBE9109C813B\n+94403E0DEA8314A1E9DB474D7FA83C0BAFD08033E6A6215844C1D26BE15F1251\n+A1605E8DF9A9C601ED37379530BC1C82BE5463C6C711C5652BFD6262485AA9CA\n+B8C4A117593001D08D980041E2A83C190DCE8E6CD3D334E5CC19FC05DB30F7F7\n+24A305C4DBB31F0651392B99D44B4302333BDF7E326FD256DD75D309C6E73F85\n+FA71B35FD1F9BEFF4C7A1076362EEB0A85492933B6006086A7B8C1928CF2D1EE\n+FD4344409257BB802C117E739960821CD3C88BFBA5669FF16F610AD638AF3677\n+8674C985E6767253ED5769F71BEA5E9BB02A751F9E62EE2B18AC19D975FDEAE9\n+8B8822367FF177A7E850766DE99ED3366D46464612926430012212A90F8E85F4\n+4760B40D5B86B90819EE410382D22D8ED82D0B0AB00C93E10CD365F8766D1C87\n+B4A866021FB6F6AC3D250CC601989B1B8FE6B1098A48282D2CF258BF38FEE940\n+CE0141FB1344156DE7712A8F2DBF700174F12616EE17C852210D96D03E5E6635\n+D439EB6E84A383DDD32AD72DADE6F931FDBABBDC726C36081C96018FC95EAE13\n+DA1F8DBC2D8355AC9792649653225393F4A7A88F3B9443FEEB75E2C15BF93F09\n+CCBA7FABC022BE26F4C28152D5DA6D690494AD4EC0DA1B598AE12536BADF88B5\n+5E20EB452546389F57FF55459567B453AE1831C57D22FA6A4FDF441EDAFDB7FB\n+4F4B707C1FF9159C40F7B5DD519FC07815EE91B8D756B6C18500BCF47D0D9E45\n+6A2D51B6AA5AEAAC9AB2DEF7F0FDE957B6C179CBADEECAC7E9CEC248AB135EB4\n+FBF83D002FF859B574EF36C371540EF2BCFCEF5C2E7863AEDD7C3C965103453B\n+023A9CEC1D5C45B88827ADF4AE0C6746F3C7E6A944427DAEC493601019583A16\n+0F846CE00EAE89EEFF9CE68A0E1D6EBB8FDD8A45D1BF399B36A8328EC957CB8B\n+D842A56269C8C9A6B472C9E65BCBC090606B4E8A7EF4ABDEA120C9F9B3969A1C\n+2EB102925F4E155160E58000E1ADB0D19E10EFD96F6C3225EEE8FC24D122C069\n+C11F1A69DC383F7DACD2F3929BD135CE69787C6E7560AC4B683FE5D9AAFD2E89\n+EE6D95E38C9B726B416E28169A11E29559DBA9AECD714CF318FCB78F34A0E562\n+9C00FE0C6D5A848557D9A82EC2BEFCD30B5EDC0B23C5BA9F812C864394C8B9D1\n+B08BAC9CF94E70FF842306ACCFE6E39A56777C712904A3AB29FBD19275E19E06\n+B35B37CFFFCEC81CAF2D85A853663FAFCFFED1EA77064AA28C15BC94910683BC\n+D09513079DE9EE18E97CC2403DD206516D7F652A3459870757F34EEDCEF952C3\n+FE8004F4716B5BD6774E455010B0BB1E61FCD66B9F14F9BBCCF3E55A158EE96E\n+9A05BDFDDC7706D4BC28FDDC4004EF3A430C607EBDF115E0C996454D70C8BB42\n+D7C83A454B116663D648C23CE2B33365810DE2B64D4AE011BC8043BC3E05B94D\n+1700F859C6AFC6515C1C42FA104EE3E8F3FA5F80252C2E79B00ED27F675FFD09\n+B50BF7A3C63CF4856F909DF969D7DD3EA05CABDD1E71A58CFC2AB5F614B4E5E0\n+25CF92E9FB66ACEBE05DF5E033DA8AD3EE32D94C02D98DD7DA99FAB5AEA595C3\n+2987DC122F0242D76B782349E4069DE0CDD6EF4375C680CBFE4C8F24F2AE89BF\n+7785F5EA7435A91500F265022C307E8ADEAAE1C6\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n@@ -4672,16 +4659,16 @@\n 2[51 62 50 1[54 11[86 5[84 5[42 6[80 13[56 56 56 56 2[31\n 46[{}24 99.6264 /CMBX12 rf /Fb 136[62 2[62 1[62 2[62\n 3[62 5[62 22[62 78[{}7 119.552 /CMTT12 rf /Fc 134[71\n 3[75 52 53 55 1[75 67 75 112 3[37 75 1[41 61 75 60 1[65\n 13[75 2[92 11[103 17[67 67 2[37 46[{}22 119.552 /CMBX12\n rf /Fd 141[38 2[46 51 2[42 1[28 46 42 1[42 1[42 14[65\n 1[66 11[59 62 69 2[68 6[28 58[{}16 90.9091 /CMTI10 rf\n-/Fe 138[51 35 36 11[45 37[68 6[25 4[45 1[45 45 1[45 3[25\n-44[{}11 90.9091 /CMSL10 rf /Ff 212[55 43[{}1 66.4176\n+/Fe 134[48 3[51 8[25 33[47 15[25 5[45 1[45 45 45 3[25\n+44[{}10 90.9091 /CMSL10 rf /Ff 212[55 43[{}1 66.4176\n /CMR8 rf /Fg 255[55{}1 66.4176 /CMSY8 rf /Fh 168[67 13[31\n 6[53 6[20 59[{}4 66.4176 /CMMI8 rf /Fi 132[52 123[{}1\n 90.9091 /CMBX10 rf\n %DVIPSBitmapFont: Fj tcrm1095 10.95 1\n [/Grave/Acute/Circumflex/Tilde/Dieresis/Hungarumlaut/Ring/Caron/Breve/Macron\n /Dotaccent/cedilla/ogonek/quotesinglbase.ts1 4{/.notdef}repeat\n /quotedblbase.ts1/.notdef/.notdef/twelveudash/threequartersemdash\n@@ -4813,17 +4800,17 @@\n y Fn(and)j Fl(y)g Fk(2)d Fl(Y)1814 5308 y Fh(I)1886 5294\n y Fn(b)s(ecomes)k(t)m(w)m(o)h(edges,)h(\\()p Fl(x;)15\n b(y)2871 5261 y Fg(\\000)2930 5294 y Fn(\\))33 b(and)g(\\()p\n Fl(y)3261 5261 y Ff(+)3320 5294 y Fl(;)15 b(x)p Fn(\\),)34\n b(b)s(oth)e(with)227 5407 y(in\\014nite)e(capacit)m(y)-8\n b(.)1927 5656 y(1)p eop end\n %%Page: 2 2\n-TeXDict begin 2 1 bop 0 100 a Fn(2)p 136 100 1098 4 v\n-1280 w Fm(Network)28 b Fe(:)41 b Fd(DRAFT)30 b Fe(August)g(3,)h(2025)p\n-2802 100 V 137 399 a Fj(\\210)45 b Fn(An)33 b(edge)g(\\()p\n+TeXDict begin 2 1 bop 0 100 a Fn(2)p 136 100 1156 4 v\n+1338 w Fm(Network)28 b Fe(:)41 b Fd(DRAFT)30 b Fe(July)g(1,)h(2024)p\n+2745 100 V 137 399 a Fj(\\210)45 b Fn(An)33 b(edge)g(\\()p\n Fl(y)s(;)15 b(z)t Fn(\\))35 b(where)d Fl(y)g Fk(2)e Fl(Y)1313\n 413 y Fh(I)1385 399 y Fn(and)i Fl(z)i Fk(2)29 b Fl(Y)1783\n 413 y Fh(W)1897 399 y Fn(b)s(ecomes)k(t)m(w)m(o)h(edges,)h(\\()p\n Fl(y)2790 366 y Ff(+)2849 399 y Fl(;)15 b(z)t Fn(\\))34\n b(and)e(\\()p Fl(z)t(;)15 b(y)3352 366 y Fg(\\000)3412\n 399 y Fn(\\),)34 b(b)s(oth)e(with)227 511 y(in\\014nite)e(capacit)m(y)-8\n b(.)137 695 y Fj(\\210)45 b Fn(An)27 b(edge)h(\\()p Fl(x;)15\n@@ -4898,17 +4885,17 @@\n Fm(nnode)g Fn(arc)227 4891 y(structures.)141 5093 y(The)30\n b Fm(Network)e Fn(ob)5 b(ject)32 b(has)e(six)g(\\014elds.)137\n 5294 y Fj(\\210)45 b Fm(int)i(nnode)24 b Fn(|)i(the)f(n)m(um)m(b)s(er)f\n (of)i(no)s(des)f(in)g(the)h(net)m(w)m(ork,)h(including)e(the)h(source)f\n (\\(no)s(de)h(0\\))g(and)f(the)g(sink)227 5407 y(\\(no)s(de)30\n b Fm(nnode-1)p Fn(\\).)p eop end\n %%Page: 3 3\n-TeXDict begin 3 2 bop 91 100 1098 4 v 1280 100 a Fm(Network)28\n-b Fe(:)41 b Fd(DRAFT)121 b Fe(August)30 b(3,)h(2025)p\n-2755 100 V 1098 w Fn(3)137 399 y Fj(\\210)45 b Fm(int)i(narc)29\n+TeXDict begin 3 2 bop 91 100 1156 4 v 1337 100 a Fm(Network)29\n+b Fe(:)40 b Fd(DRAFT)121 b Fe(July)30 b(1,)h(2024)p 2697\n+100 V 1156 w Fn(3)137 399 y Fj(\\210)45 b Fm(int)i(narc)29\n b Fn(|)i(the)f(n)m(um)m(b)s(er)f(of)i(arcs)f(in)g(the)h(net)m(w)m(ork)\n 137 601 y Fj(\\210)45 b Fm(int)i(ntrav)29 b Fn(|)h(the)h(n)m(um)m(b)s\n (er)e(of)h(arc)h(tra)m(v)m(ersals)h(that)f(w)m(e)g(made)g(to)g(\\014nd)e\n (a)h(max)h(\\015o)m(w.)137 803 y Fj(\\210)45 b Fm(Arc)i(**inheads)29\n b Fn(|)h(p)s(oin)m(ter)h(to)h(a)f(v)m(ector)h(of)f(p)s(oin)m(ters)g(to)\n h Fm(Arc)p Fn(,)e Fm(inheads[v])e Fn(p)s(oin)m(ts)j(to)g(the)g(\\014rst)\n g(arc)227 915 y(in)f(the)h(in-list)g(for)f(no)s(de)g\n@@ -4953,17 +4940,17 @@\n (h)m(unks.)0 5059 y Fc(1.2)135 b(Protot)l(yp)t(es)46\n b(and)f(descriptions)g(of)g Fb(Network)d Fc(metho)t(ds)0\n 5294 y Fn(This)f(section)j(con)m(tains)f(brief)f(descriptions)g\n (including)f(protot)m(yp)s(es)i(of)f(all)h(metho)s(ds)f(that)h(b)s\n (elong)f(to)h(the)0 5407 y Fm(Network)28 b Fn(ob)5 b(ject.)p\n eop end\n %%Page: 4 4\n-TeXDict begin 4 3 bop 0 100 a Fn(4)p 136 100 1098 4 v\n-1280 w Fm(Network)28 b Fe(:)41 b Fd(DRAFT)30 b Fe(August)g(3,)h(2025)p\n-2802 100 V 0 399 a Fa(1.2.1)112 b(Basic)38 b(metho)s(ds)0\n+TeXDict begin 4 3 bop 0 100 a Fn(4)p 136 100 1156 4 v\n+1338 w Fm(Network)28 b Fe(:)41 b Fd(DRAFT)30 b Fe(July)g(1,)h(2024)p\n+2745 100 V 0 399 a Fa(1.2.1)112 b(Basic)38 b(metho)s(ds)0\n 589 y Fn(As)d(usual,)h(there)f(are)g(four)f(basic)h(metho)s(ds)g(to)g\n (supp)s(ort)e(ob)5 b(ject)36 b(creation,)i(setting)e(default)f\n (\\014elds,)h(clearing)0 702 y(an)m(y)31 b(allo)s(cated)h(data,)f(and)f\n (free'ing)h(the)g(ob)5 b(ject.)111 894 y(1.)46 b Fm(Network)g(*)i\n (Network_new)c(\\()k(void)e(\\))i(;)227 1038 y Fn(This)39\n b(metho)s(d)f(simply)h(allo)s(cates)i(storage)g(for)e(the)g\n Fm(Network)f Fn(structure)g(and)h(then)g(sets)g(the)h(default)227\n@@ -5026,17 +5013,17 @@\n Fk(\\024)h Fn(0,)k(or)d(if)f Fm(nnode)g Fk(\\024)227 5294\n y Fm(firstNode)n Fn(,)d(or)g(if)f Fm(secondNode)29 b\n Fk(\\024)j Fn(0,)k(or)e(if)h Fm(nnode)30 b Fk(\\024)i Fm(secondNode)m\n Fn(,)k(or)e(if)h Fm(capacity)29 b Fk(\\024)j Fn(0,)k(an)e(error)227\n 5407 y(message)e(is)e(prin)m(ted)g(and)g(the)g(program)h(exits.)p\n eop end\n %%Page: 5 5\n-TeXDict begin 5 4 bop 91 100 1098 4 v 1280 100 a Fm(Network)28\n-b Fe(:)41 b Fd(DRAFT)121 b Fe(August)30 b(3,)h(2025)p\n-2755 100 V 1098 w Fn(5)0 399 y Fa(1.2.3)112 b(Utilit)m(y)38\n+TeXDict begin 5 4 bop 91 100 1156 4 v 1337 100 a Fm(Network)29\n+b Fe(:)40 b Fd(DRAFT)121 b Fe(July)30 b(1,)h(2024)p 2697\n+100 V 1156 w Fn(5)0 399 y Fa(1.2.3)112 b(Utilit)m(y)38\n b(metho)s(ds)111 610 y Fn(1.)46 b Fm(void)h(Network_findMaxFlow)42\n b(\\()48 b(Network)e(*network)f(\\))j(;)227 777 y Fn(This)37\n b(metho)s(d)g(\\014nds)f(a)i(maxim)m(um)g(\\015o)m(w)g(o)m(v)m(er)h(the)f\n (net)m(w)m(ork)g(b)m(y)g(rep)s(eatedly)g(calling)h(the)f(metho)s(d)f\n (to)227 889 y(\\014nd)30 b(an)h(augmen)m(ting)i(path)e(and)g(then)g(the)\n h(metho)s(d)e(to)j(augmen)m(t)f(the)f(path.)44 b(It)32\n b(uses)f(an)g Fm(Ideq)f Fn(ob)5 b(ject)227 1002 y(to)31\n@@ -5110,17 +5097,17 @@\n Fn(is)g(in)g(the)h(comp)s(onen)m(t)g(that)g(con)m(tains)g(the)g(sink,)f\n (then)g Fm(mark[v])46 b(=)h(2)p Fn(.)227 5294 y Fd(Err)-5\n b(or)32 b(che)-5 b(cking:)39 b Fn(If)28 b Fm(network)p\n Fn(,)f Fm(deq)g Fn(or)i Fm(mark)e Fn(is)h Fm(NULL)p Fn(,)f(or)i(if)f\n Fm(nnode)c Fk(\\024)h Fn(0,)k(an)f(error)g(message)h(is)f(prin)m(ted)227\n 5407 y(and)i(the)h(program)f(exits.)p eop end\n %%Page: 6 6\n-TeXDict begin 6 5 bop 0 100 a Fn(6)p 136 100 1098 4 v\n-1280 w Fm(Network)28 b Fe(:)41 b Fd(DRAFT)30 b Fe(August)g(3,)h(2025)p\n-2802 100 V 0 399 a Fa(1.2.4)112 b(IO)38 b(metho)s(ds)0\n+TeXDict begin 6 5 bop 0 100 a Fn(6)p 136 100 1156 4 v\n+1338 w Fm(Network)28 b Fe(:)41 b Fd(DRAFT)30 b Fe(July)g(1,)h(2024)p\n+2745 100 V 0 399 a Fa(1.2.4)112 b(IO)38 b(metho)s(ds)0\n 595 y Fn(There)30 b(are)h(t)m(w)m(o)g(IO)f(routines)g(for)h(debugging)f\n (purp)s(oses.)111 832 y(1.)46 b Fm(void)h(Network_writeForHumanEye)41\n b(\\()48 b(Network)d(*network,)h(FILE)g(*fp)h(\\))h(;)227\n 983 y Fn(This)20 b(metho)s(d)f(writes)i(the)f(net)m(w)m(ork)h(to)g(a)g\n (\\014le)f(in)g(a)h(h)m(uman)e(readable)i(format.)38 b(The)20\n b(metho)s(d)f Fm(Network)p 3762 983 29 4 v 33 w(writeStats\\(\\))227\n 1096 y Fn(is)29 b(called)h(to)f(write)g(out)g(the)f(header)h(and)f\n", "details": [{"source1": "ps2ascii {}", "source2": "ps2ascii {}", "unified_diff": "@@ -31,15 +31,15 @@\n B B\r\n Similarly, an edge (x,y) where x \u2208 Y and y \u2208 Y is not found in the network.\r\n W W\r\n \u2022 An edge (x,y) where x \u2208 Y and y \u2208 Y becomes two edges, (x,y\u2212) and (y+,x), both with\r\n B I\r\n in\ufb01nite capacity.\r\n 1\r\n- 2 Network : DRAFT August 3, 2025\r\n+ 2 Network : DRAFT July 1, 2024\r\n \u2022 An edge (y,z) where y \u2208 Y and z \u2208 Y becomes two edges, (y+,z) and (z,y\u2212), both with\r\n I W\r\n in\ufb01nite capacity.\r\n + \u2212 + \u2212\r\n \u2022 An edge (x,y) where x \u2208 Y and y \u2208 Y becomes two edges, (x ,y ) and (y ,x ), both with\r\n I I\r\n in\ufb01nite capacity.\r\n@@ -71,15 +71,15 @@\n \u2022 ArcChunk \u2013 a structure that holds the storage for a number of arcs. Since we do not require\r\n the number of arcs to be known in advance when initializing the Network object, we allo-\r\n cate chunks of space to hold the arcs as necessary. Each chunks holds space for nnode arc\r\n structures.\r\n The Network object has six \ufb01elds.\r\n \u2022 int nnode \u2014 the number of nodes in the network, including the source (node 0) and the sink\r\n (node nnode-1).\r\n- Network : DRAFT August 3, 2025 3\r\n+ Network : DRAFT July 1, 2024 3\r\n \u2022 int narc \u2014 the number of arcs in the network\r\n \u2022 int ntrav \u2014 the number of arc traversals that we made to \ufb01nd a max \ufb02ow.\r\n \u2022 Arc **inheads \u2014 pointer to a vector of pointers to Arc, inheads[v] points to the \ufb01rst arc\r\n in the in-list for node v.\r\n \u2022 Arc **outheads \u2014 pointer to a vector of pointers to Arc, outheads[v] points to the \ufb01rst\r\n arc in the out-list for node v.\r\n \u2022 ArcChunk *chunk \u2014 pointer to the \ufb01rst ArcChunk structure.\r\n@@ -99,15 +99,15 @@\n \u2022 int size \u2014 the total number of Arc structures in this chunk.\r\n \u2022 int inuse \u2014 the number of active Arc structures in this chunk.\r\n \u2022 Arc *base \u2014 pointer to the \ufb01rst Arc structure in this chunk.\r\n \u2022 ArcChunk *next \u2014 pointer to the next ArcChunk structure in the list of chunks.\r\n 1.2 Prototypes and descriptions of Network methods\r\n This section contains brief descriptions including prototypes of all methods that belong to the\r\n Network object.\r\n- 4 Network : DRAFT August 3, 2025\r\n+ 4 Network : DRAFT July 1, 2024\r\n 1.2.1 Basic methods\r\n As usual, there are four basic methods to support object creation, setting default \ufb01elds, clearing\r\n any allocated data, and free\u2019ing the object.\r\n 1. Network * Network_new ( void ) ;\r\n This method simply allocates storage for the Network structure and then sets the default\r\n \ufb01elds by a call to Network setDefaultFields().\r\n 2. void Network_setDefaultFields ( Network *network ) ;\r\n@@ -135,15 +135,15 @@\n 3. void Network_addArc ( Network *network, int firstNode, secondNode,\r\n int capacity, int flow ) ;\r\n This method adds an arc from firstNode to secondNode with \ufb02ow flow and capacity\r\n capacity. The arc is inserted in the out-list for firstNode and the in-list for secondNode.\r\n Error checking: If network is NULL, or if nnode \u2264 0, or if firstNode \u2264 0, or if nnode \u2264\r\n firstNode, or if secondNode \u2264 0, or if nnode \u2264 secondNode, or if capacity \u2264 0, an error\r\n message is printed and the program exits.\r\n- Network : DRAFT August 3, 2025 5\r\n+ Network : DRAFT July 1, 2024 5\r\n 1.2.3 Utility methods\r\n 1. void Network_findMaxFlow ( Network *network ) ;\r\n This method \ufb01nds a maximum \ufb02ow over the network by repeatedly calling the method to\r\n \ufb01nd an augmenting path and then the method to augment the path. It uses an Ideq object\r\n to maintain a priority dequeue.\r\n Error checking: If network is NULL, or if nnode \u2264 0, an error message is printed and the\r\n program exits.\r\n@@ -172,15 +172,15 @@\n and the program exits.\r\n 5. void Network_findMincutFromSink ( Network *network, Ideq deq, int mark[]) ;\r\n This method \ufb01nds the min-cut closest to the sink by traversing a tree of \ufb02ow-alternating\r\n paths into the sink. On return, mark[v] = 1 if the node v is in the component that contains\r\n the source. If the node v is in the component that contains the sink, then mark[v] = 2.\r\n Error checking: If network, deq or mark is NULL, or if nnode \u2264 0, an error message is printed\r\n and the program exits.\r\n- 6 Network : DRAFT August 3, 2025\r\n+ 6 Network : DRAFT July 1, 2024\r\n 1.2.4 IO methods\r\n There are two IO routines for debugging purposes.\r\n 1. void Network_writeForHumanEye ( Network *network, FILE *fp ) ;\r\n Thismethodwritesthenetworktoa\ufb01leinahumanreadableformat. ThemethodNetwork writeStats()\r\n is called to write out the header and statistics. Then the in-list and out-lists for the nodes in\r\n the network are printed.\r\n Error checking: If network or fp is NULL, an error message is printed and the program exits.\r\n"}]}]}, {"source1": "./usr/share/doc/spooles-doc/PatchAndGoInfo.ps.gz", "source2": "./usr/share/doc/spooles-doc/PatchAndGoInfo.ps.gz", "unified_diff": null, "details": [{"source1": "PatchAndGoInfo.ps", "source2": "PatchAndGoInfo.ps", "unified_diff": "@@ -11,15 +11,15 @@\n %%EndComments\n %%BeginDefaults\n %%ViewingOrientation: 1 0 0 1\n %%EndDefaults\n %DVIPSWebPage: (www.radicaleye.com)\n %DVIPSCommandLine: dvips main -o PatchAndGoInfo.ps\n %DVIPSParameters: dpi=600\n-%DVIPSSource: TeX output 2025.08.03:1317\n+%DVIPSSource: TeX output 2024.07.01:0700\n %%BeginProcSet: tex.pro 0 0\n %!\n /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S\n N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72\n mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0\n 0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{\n landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize\n@@ -2039,23 +2039,22 @@\n /UnderlinePosition -100 def\n /UnderlineThickness 50 def\n end readonly def\n /Encoding 256 array\n 0 1 255 {1 index exch /.notdef put} for\n dup 44 /comma put\n dup 48 /zero put\n+dup 49 /one put\n dup 50 /two put\n-dup 51 /three put\n-dup 53 /five put\n+dup 52 /four put\n dup 58 /colon put\n-dup 65 /A put\n-dup 103 /g put\n-dup 115 /s put\n-dup 116 /t put\n+dup 74 /J put\n+dup 108 /l put\n dup 117 /u put\n+dup 121 /y put\n readonly def\n currentdict end\n currentfile eexec\n D9D66F633B846AB284BCF8B0411B772DE5CE32340DC6F28AF40857E4451976E7\n 5182433CF9F333A38BD841C0D4E68BF9E012EB32A8FFB76B5816306B5EDF7C99\n 8B3A16D9B4BC056662E32C7CD0123DFAEB734C7532E64BBFBF5A60336E646716\n EFB852C877F440D329172C71F1E5D59CE9473C26B8AEF7AD68EF0727B6EC2E0C\n@@ -2236,79 +2235,67 @@\n 7CA1534C4D5B05FC33F83790ECFD7641DF3FB94289E2A1F6E7D29AB1228A867A\n 6E1EF0E9C6F899B491DC18401C2C0A05FFFED46A72C245F7529B8EA55A038082\n 8512307217D2A233C37004085BA3AEE379269F9FA7D0ADB4B19A95CC2AFE686E\n 55D88E47257C1FE6F235FEA295910569FE6DD5995512562359CC821E85A6C7A5\n 79B470A9E340A6985189FF8B6AF914A6B0ECF93F47903221F95DE894A8F05B05\n B7D99CD533EC5F931B18E6B39BECF67FA2D6DD1AEC76772B068BE06335A94C05\n 7A4DDEE77B66101DA855C17AC312600370B34E31F5EC3A01300A8EB60B4C9767\n-1B2FA10DF7E91D3BB34A1B1CE7A0015A57C813E0280D873ADB88440048702D1F\n-77994EE04EC3B4531D6E1888C86A8F0DA6CF1F056F16AB0DD76C862830F89DA4\n-28923B3AA543E0D6E41D3BD283E600BC11F889315EE92C675C109C81065ED1BC\n-82A5583D1B723D50051B0557A367887F5B263014C6E77288B4883C50889473D3\n-3787BAD4BEB88BD1353AFA5B73E61814819537E7FF09F53EF94792BB3DD36ED0\n-002D0E7A6CDAB85A9C17AF5664BCB5A71663B861880F3ECCABC8E7A2FC81A4CC\n-AE7A87503FDC1CE0077BA51ECC7B43B60793FED8E9AAD5BBD03ADD6183DCD26D\n-24A74163611C05562437644EF9B8889FD4F9D311911204FEFD35237486F2D2D0\n-B6783A03BF12EA6D19D6D0F87E4D08515F12F9CBF1961CAA71E0D69FE3C4C4D2\n-7C7FB64ED24F8684C8F00C2BEDEA53EA390CDC0B5BEBD7DD982580B2EA1F1F89\n-CFED5916630DC2BA32BB9180277E1ABC339B3B7DE086717BD93F7FF3681BA5B3\n-FCF671C4B293C2DE4A322F0AA3323A4934444C69F23EF90120B8755482757759\n-C457A435FB8BB4922BD92C5F3D9555D978275C510183E29DFF2FCE4ABBFC18DE\n-76CAD3B486BA12047DD808CD4D521A0FD368E4AE79DE262630983A5D6F0B679D\n-2F005306393C520E1B6987302D029939D94B0178DC55D5264E1FEA468AD4134C\n-8C65B2FBBE8DE8284E8E1F6BFE0B648F44D3DA8E9350D266EDBFD4A7054D9355\n-1E0B185DED37BCF32D3731358F1D707C94109428BAD3CEA456A2A43553E3D2C2\n-F549189201F3D3F715310E3E8C6A2E9AA5141AA9125D203694C7D875C2DD320F\n-C5BCDFC924F6C04DBC7A97349B45ECD0FBD7D2123ED1D3A9F440B1112BE62779\n-47A4592F9285CBD9635EC9091CEC0AFD7E6B6976974081DB9C0E43165BD8584D\n-6CDF08DED287F0883A9FBD351B3F8706BA1E94C7CA487338269482EB8DC1A05D\n-F6632A5D834DE29228C49C5BA65EF7C535A53B380BF4B391F43562147538EE97\n-E799DFC2C40315859F56BBCE9CAE1DF9293F6E2C193ABE7A724EC8F32FA220E7\n-6026877A63E318254F2AF7B1325D63FC4C52B536D3EF354814C2F8F1EEA30569\n-6EF04447DB0F809DF35B4985B9FB4F4BB6087310BE633E76F268B32ABA99CE8E\n-03163DFF4AEDB88E60DD0848C15E90026D7C24D81122EBC07113F9851914A9D5\n-D0E09C2BFDDAF10C5D8208E8329BC0C402F231CD84C95EFDD182AD9756662110\n-274650C7A5BB0D8EFA54EC6C5A49C0EB26701A54779AE8EFBBED824262761602\n-680EDFB38F0FE18C0F501F5AA8BF48A8F0DD3E5E1EBEB872F6F6B23964707B32\n-507FC677B9FDDC990E3828B06420F6F968B2F6AE81E76A2144B1ECE905485616\n-CFB29AC96DDE1F5039935D7E385CC13E34DD7EAF276A2EA3A8BF27FD4205AE13\n-7FE620E42F2CF231C6C8DD8EFC5A6CF081E5660D9ADD730D72D15C02B1E15FF3\n-D741D3B1EB1E666C4E562219033C1E2EF3F96E136998B2E1890395A3637A2C02\n-DE1C46AFCA8D898439F06606A2295D3F7ED6C7DB250C61B6B97A0D5EDDB9657E\n-E790B4E07540BB1026036F4A0D00E7F16FD757AD61D686620C6814B7DCEC43E8\n-FD36D9E75BA554F64548A67D9B0A26E11784E58D4357FC251D71B5D6D8BFDDE0\n-D3BF0E825DA5312C1904AF13C5905C2ADF79C357476183D2EC5A95243235E861\n-2F98D9EE77EF8F8CB3EC6BD358C5ED37DD3AF44D60575E7774BF96F1AE9DFAD1\n-F8646DEDF21D10311854726B8F7D25876BB1EF78E2442B16ED4B851816CF0A27\n-11FDFCE525002A1A7C3E62CD2A3EDE6FAADB026D2F3A46C030ADB22422CA8FF5\n-2545ED58C0D9FB5BDB55FE674301E91A75B005B86BD201D246F7ADACE50419FD\n-AC3312CAC5EB78A36F0E5F62E65AC92129CB574AAC59E0A7C1390DFC61F39D9E\n-D7036742F2F6E64D1EF8157E9CCF65F3EEDC6A8220235978B8E06EB80F649F3E\n-204CFB497F49306EA8E1F7B62305978A28F1E771ED82C6592C71022154E4062A\n-A92335EFC65D6DED9C686899FFD7AA2988740618C03C5E362E1AF352E3BE4602\n-5530C51E5FC8E9082DF79199CC91C50174000D337D86127AC807C5A3C81DDE57\n-7A68AEE7230949B925365C214D77C80E87CEE218ABC94023717EA43BA5D8A7C8\n-8A8B9BD1B767996AE33050E3D922ED0574E3579C57E4BDDAD35883806AFDF260\n-3AB5D83D451583262E580FFDB7A27D82396AF18D92B849A3F7A7E621987D5DF0\n-038F876C6E9CA47FB11AF05F0019191C5DDC5F0177AD421E94BC66D0CCB82F1F\n-93A80836284B095503752C600F72E2C89112ABFA5B76152691264103B268B3E5\n-8816724ADADB38740001A9AACE05C8AF02D72918606DC22EFC8BF0DA0FD12FFE\n-D3A09F8E28057F327BFB633E604B1EAD478637B1D9631650B314CC62D7E0E87F\n-9D3FE1FFA23BB6E3006C3E39BED52F6B0C1C651B5913878F36DA0BF776889165\n-68BA3456B40B8B471CA8FF5238E43D9113E052A2B8D2EAA2433D3F89FCA48AFB\n-5E842913E4ED6DF9623354059CD1F1707B126FED80349787C869883120183EDD\n-249185A55503FAC53898F52170D05CAC62BB742CF9702C0518AED6B27CDC401C\n-932E02143FD916703F360CB31049501B35EF3EDDFED791090D0CFA221FD1DB32\n-7D4759CE07983AE29C258C705D11E7D9481EEAAB9B6BA65CDCF0AA0057BD6FEA\n-ABBFBD3ABF2A7BFB550C3D2A16DC447384A89F3DB6D9C2DBDCA997ABE35A7706\n-633D328AECEDB5BD07070C1B96267FD73B45791DD18194F60D358091FBE88409\n-973529806F3D2C9E6E39091F90A14B560A987E0B9490B9B690FB489B8E253070\n-D7C54447BE0E0A0BFEAEFFB581DC1300E6EC382984673BF0665632404E59B5BF\n-5D5F0A1C956E618C0487751CA5DAE8A95C214F76ED756694EF273679CD2D85CB\n-949DF385BD50491649EFEFDA1574921D7460143D42A100D2C76E55F0BC\n+1B2FA10DF7E91D3BB34A1B1CE7A0015A57C813E0280D873ADB8844004B9BA1CC\n+580D3C6BDA4DC1B80B4365F1C80512453FC5316EC2D928FB731C3D6403E3C18B\n+E8424D644DF5E9A2134229C5C91CA68DB8E85BA2BB40F538F585DA6FA4037718\n+B8053EBBA1E765346BCD5BDAA6C38115D31611D8A87A2238C145F2DA2F92E4DF\n+3987BD9C4D2A3D460E8941A68B125BCD9EE4F9FD262C4C8A71F47A2C81975635\n+F1B981C274C53FA2ACCDE4C9D0A7C62D6C1EFF91CFC6712CA6A9F333C9564FCB\n+2A70F0AD715A79B10A08AB069E2A3C93BC0AED19D0CA10134B8DDDE8AF548DB2\n+3A4AAA9C29682CF135BB767DAA16169A127EB50A7EECEB6480CF56A7D0F8AC56\n+4A5090B3D75A790372886AF568D94C8165975A05BFBFDF1FFBA45F70700BB9E0\n+57F3249EF9E9C8AD9CBCF6E4FD592DC4CDD2CC7C0BC3130C1059096C657BE453\n+A2CBACE93420210E27AF56CA229BD6D982FB68B3FDC6D44478B922C4231C47EE\n+E500232F6C11D92DEB955F66DF52B92B22E7352790CC2DCBAC53965D57AC2920\n+68B7D520DE25047146EFEB06B9AD4E2A94243C7E5239F0BC2FC312B16051D52C\n+0B92C217B6B42997321AE4F8BB066754B7AA3F15069EF59224E8A442CE471AA7\n+E8049A3DD9EDA09CCEE4998998661CF7DB35E952F6C65DAEB3013951C59F3E09\n+157F313B0237876E1C0190F0473819570B8C0205AADF05D787CC00979CFB327A\n+289382B22DDA6F12804ED0ED5B179E36A995A2A59E1B66E75130DBE9109C813B\n+94403E0DEA8314A1E9DB474D7FA83C0BAFD08033E6A6215844C1D26BE15F1251\n+A1605E8DF9A9C601ED37379530BC1C82BE5463C6C711C5652BFD6262485AA9CA\n+B8C4A117593001D08D980041E2A83C190DCE8E6CD3D334E5CC19FC05DB30F7F7\n+24A305C4DBB31F0651392B99D44B4302333BDF7E326FD256DD75D309C6E73F85\n+FA71B35FD1F9BEFF4C7A1076362EEB0A85492933B6006086A7B8C1928CF2D1EE\n+FD4344409257BB802C117E739960821CD3C88BFBA5669FF16F610AD638AF3677\n+8674C985E6767253ED5769F71BEA5E9BB02A751F9E62EE2B18AC19D975FDEAE9\n+8B8822367FF177A7E850766DE99ED3366D46464612926430012212A90F8E85F4\n+4760B40D5B86B90819EE410382D22D8ED82D0B0AB00C93E10CD365F8766D1C87\n+B4A866021FB6F6AC3D250CC601989B1B8FE6B1098A48282D2CF258BF38FEE940\n+CE0141FB1344156DE7712A8F2DBF700174F12616EE17C852210D96D03E5E6635\n+D439EB6E84A383DDD32AD72DADE6F931FDBABBDC726C36081C96018FC95EAE13\n+DA1F8DBC2D8355AC9792649653225393F4A7A88F3B9443FEEB75E2C15BF93F09\n+CCBA7FABC022BE26F4C28152D5DA6D690494AD4EC0DA1B598AE12536BADF88B5\n+5E20EB452546389F57FF55459567B453AE1831C57D22FA6A4FDF441EDAFDB7FB\n+4F4B707C1FF9159C40F7B5DD519FC07815EE91B8D756B6C18500BCF47D0D9E45\n+6A2D51B6AA5AEAAC9AB2DEF7F0FDE957B6C179CBADEECAC7E9CEC248AB135EB4\n+FBF83D002FF859B574EF36C371540EF2BCFCEF5C2E7863AEDD7C3C965103453B\n+023A9CEC1D5C45B88827ADF4AE0C6746F3C7E6A944427DAEC493601019583A16\n+0F846CE00EAE89EEFF9CE68A0E1D6EBB8FDD8A45D1BF399B36A8328EC957CB8B\n+D842A56269C8C9A6B472C9E65BCBC090606B4E8A7EF4ABDEA120C9F9B3969A1C\n+2EB102925F4E155160E58000E1ADB0D19E10EFD96F6C3225EEE8FC24D122C069\n+C11F1A69DC383F7DACD2F3929BD135CE69787C6E7560AC4B683FE5D9AAFD2E89\n+EE6D95E38C9B726B416E28169A11E29559DBA9AECD714CF318FCB78F34A0E562\n+9C00FE0C6D5A848557D9A82EC2BEFCD30B5EDC0B23C5BA9F812C864394C8B9D1\n+B08BAC9CF94E70FF842306ACCFE6E39A56777C712904A3AB29FBD19275E19E06\n+B35B37CFFFCEC81CAF2D85A853663FAFCFFED1EA77064AA28C15BC94910683BC\n+D09513079DE9EE18E97CC2403DD206516D7F652A3459870757F34EEDCEF952C3\n+FE8004F4716B5BD6774E455010B0BB1E61FCD66B9F14F9BBCCF3E55A158EE96E\n+9A05BDFDDC7706D4BC28FDDC4004EF3A430C607EBDF115E0C996454D70C8BB42\n+D7C83A454B116663D648C23CE2B33365810DE2B64D4AE011BC8043BC3E05B94D\n+1700F859C6AFC6515C1C42FA104EE3E8F3FA5F80252C2E79B00ED27F675FFD09\n+B50BF7A3C63CF4856F909DF969D7DD3EA05CABDD1E71A58CFC2AB5F614B4E5E0\n+25CF92E9FB66ACEBE05DF5E033DA8AD3EE32D94C02D98DD7DA99FAB5AEA595C3\n+2987DC122F0242D76B782349E4069DE0CDD6EF4375C680CBFE4C8F24F2AE89BF\n+7785F5EA7435A91500F265022C307E8ADEAAE1C6\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n@@ -4764,16 +4751,16 @@\n rf /Fb 139[62 4[62 62 5[62 1[62 1[62 62 1[62 16[62 6[62\n 1[62 5[62 65[{}12 119.552 /CMTT12 rf /Fc 149[25 2[45\n 45 81[71 18[25 1[{}5 90.9091 /CMSY10 rf /Fd 132[52 123[{}1\n 90.9091 /CMBX10 rf /Fe 134[71 3[75 52 53 55 1[75 67 75\n 112 3[37 75 1[41 61 75 60 1[65 13[75 2[92 11[103 17[67\n 67 2[37 46[{}22 119.552 /CMBX12 rf /Ff 141[38 2[46 51\n 2[42 1[28 46 42 1[42 1[42 14[65 1[66 11[59 62 69 2[68\n-6[28 58[{}16 90.9091 /CMTI10 rf /Fg 138[51 35 36 11[45\n-37[68 6[25 4[45 1[45 45 1[45 3[25 44[{}11 90.9091 /CMSL10\n+6[28 58[{}16 90.9091 /CMTI10 rf /Fg 134[48 3[51 8[25\n+33[47 15[25 5[45 1[45 45 45 3[25 44[{}10 90.9091 /CMSL10\n rf /Fh 255[55{}1 66.4176 /CMSY8 rf /Fi 220[48 48 34[{}2\n 83.022 /CMEX10 rf /Fj 149[29 24 20[41 21[55 2[20 59[{}5\n 66.4176 /CMMI8 rf /Fk 205[35 35 49[{}2 66.4176 /CMR8\n rf /Fl 149[37 31 16[75 11[62 7[75 1[69 68 2[71 2[25 59[{}9\n 90.9091 /CMMI10 rf\n %DVIPSBitmapFont: Fm tcrm1095 10.95 1\n [/Grave/Acute/Circumflex/Tilde/Dieresis/Hungarumlaut/Ring/Caron/Breve/Macron\n@@ -4903,18 +4890,18 @@\n (is)f(to)h(not)f(use)g(piv)m(oting,)i(but)227 5294 y(to)38\n b(c)m(hec)m(k)h(the)e(magnitude)g(of)g(the)g(diagonal)h(en)m(try)g(as)f\n (a)g(ro)m(w)g(and)g(column)g(is)g(to)g(b)s(e)g(eliminated.)61\n b(If)227 5407 y(the)35 b(magnitude)g(is)g(smaller)g(than)f(a)i\n (user-supplied)d(parameter,)j(the)f(diagonal)h(en)m(try)f(is)g(set)g\n (to)h(some)1927 5656 y(1)p eop end\n %%Page: 2 2\n-TeXDict begin 2 1 bop 0 100 a Fo(2)p 136 100 931 4 v\n-1113 w Fn(PatchAndGoInfo)26 b Fg(:)41 b Ff(DRAFT)30 b\n-Fg(August)h(3,)g(2025)p 2969 100 V 227 399 a Fo(m)m(ultiple)c(of)f(the)\n-h(largest)g(o\\013diagonal)h(en)m(try)f(in)f(that)g(ro)m(w)h(and)e\n+TeXDict begin 2 1 bop 0 100 a Fo(2)p 136 100 989 4 v\n+1171 w Fn(PatchAndGoInfo)26 b Fg(:)41 b Ff(DRAFT)30 b\n+Fg(July)g(1,)h(2024)p 2912 100 V 227 399 a Fo(m)m(ultiple)c(of)f(the)h\n+(largest)g(o\\013diagonal)h(en)m(try)f(in)f(that)g(ro)m(w)h(and)e\n (column)h(of)h(the)f(fron)m(t,)h(the)g(lo)s(cation)h(and)227\n 511 y(p)s(erturbation)i(is)g(noted,)h(and)f(the)g(factorization)j(pro)s\n (ceeds.)141 728 y(Other)27 b(strategies)h(can)f(b)s(e)g(added)f(to)i\n (the)f Fn(PatchAndGoInfo)c Fo(ob)5 b(ject.)40 b(F)-8\n b(or)28 b(example,)g(if)f(a)g(matrix)g(is)g(b)s(eing)0\n 841 y(factored)34 b(that)g(is)g(b)s(eliev)m(ed)g(to)g(b)s(e)f(p)s\n (ositiv)m(e)h(de\\014nite,)g(and)f(a)h(negativ)m(e)i(v)-5\n@@ -4967,63 +4954,63 @@\n (default)h(v)-5 b(alues:)41 b Fn(strategy)28 b Fo(=)i(-1,)h\n Fn(toosmall)d Fo(=)h Fn(fudge)227 5255 y Fo(=)h(0.0,)i(and)e\n Fn(fudgeIV)e Fo(=)i Fn(fudgeDV)f Fo(=)h Fn(NULL)f Fo(.)227\n 5407 y Ff(Err)-5 b(or)34 b(che)-5 b(cking:)40 b Fo(If)30\n b Fn(info)g Fo(is)g Fn(NULL)p Fo(,)f(an)i(error)f(message)h(is)g(prin)m\n (ted)f(and)f(the)i(program)f(exits.)p eop end\n %%Page: 3 3\n-TeXDict begin 3 2 bop 91 100 931 4 v 1113 100 a Fn(PatchAndGoInfo)26\n-b Fg(:)41 b Ff(DRAFT)121 b Fg(August)30 b(3,)h(2025)p\n-2922 100 V 931 w Fo(3)111 399 y(3.)46 b Fn(void)h\n-(PatchAndGoInfo_clearData)41 b(\\()48 b(PatchAndGoInfo)43\n-b(*info)k(\\))g(;)227 549 y Fo(This)35 b(metho)s(d)f(clears)i(an)m(y)g\n-(data)f(o)m(wned)g(b)m(y)g(the)h(ob)5 b(ject.)56 b(If)34\n-b Fn(fudgeIV)f Fo(is)i(not)h Fn(NULL)e Fo(it)h(is)h(free'd)f(b)m(y)g(a)\n-227 662 y(call)c(to)f Fn(IV)p 605 662 29 4 v 34 w(free\\(\\))p\n-Fo(.)38 b(If)29 b Fn(fudgeDV)e Fo(is)i(not)h Fn(NULL)e\n-Fo(it)i(is)f(free'd)g(b)m(y)g(a)h(call)g(to)g Fn(DV)p\n-2914 662 V 34 w(free\\(\\))p Fo(.)39 b(The)28 b(structure's)227\n-775 y(default)j(\\014elds)f(are)g(then)g(set)h(with)f(a)h(call)h(to)f\n-Fn(PatchAndGoInfo)p 2505 775 V 31 w(setDefaultFields\\(\\))p\n-Fo(.)227 925 y Ff(Err)-5 b(or)34 b(che)-5 b(cking:)40\n-b Fo(If)30 b Fn(info)g Fo(is)g Fn(NULL)p Fo(,)f(an)i(error)f(message)h\n-(is)g(prin)m(ted)f(and)f(the)i(program)f(exits.)111 1112\n-y(4.)46 b Fn(void)h(PatchAndGoInfo_free)42 b(\\()48 b(PatchAndGoInfo)c\n-(*info)i(\\))i(;)227 1263 y Fo(This)31 b(metho)s(d)g(releases)h(an)m(y)g\n-(storage)h(b)m(y)e(a)h(call)h(to)f Fn(PatchAndGoInfo)p\n-2748 1263 V 31 w(clearData\\(\\))c Fo(then)j(free's)h(the)227\n-1376 y(storage)g(for)e(the)h(structure)f(with)g(a)h(call)g(to)g\n-Fn(free\\(\\))p Fo(.)227 1526 y Ff(Err)-5 b(or)34 b(che)-5\n-b(cking:)40 b Fo(If)30 b Fn(info)g Fo(is)g Fn(NULL)p\n-Fo(,)f(an)i(error)f(message)h(is)g(prin)m(ted)f(and)f(the)i(program)f\n-(exits.)0 1794 y Fa(1.2.2)112 b(Initializer)38 b(metho)s(ds)111\n-1991 y Fo(1.)46 b Fn(void)h(PatchAndGoInfo_init)42 b(\\()48\n-b(PatchAndGoInfo)c(*info,)i(int)h(strategy,)e(double)h(toosmall,)1516\n-2104 y(double)g(fudge,)g(int)h(storeids,)e(int)i(storevalues)e(\\))i(;)\n-227 2254 y Fo(This)36 b(metho)s(d)g(initializes)i(the)f(ob)5\n-b(ject.)59 b(Presen)m(tly)-8 b(,)40 b(t)m(w)m(o)d(strategies)i(are)d\n-(supp)s(orted:)51 b Fn(strategy)46 b(=)h(1)227 2367 y\n-Fo(for)37 b(optimization)j(matrices)e(and)f Fn(strategy)46\n-b(=)h(2)37 b Fo(for)g(structural)h(analysis)g(matrices.)63\n-b Fn(toosmall)35 b Fo(is)227 2480 y(the)25 b(cuto\\013)h(for)f(diagonal)\n-h(en)m(try)f(mo)s(di\\014cation,)i(if)d(an)h(en)m(try)g(has)g(magnitude)\n-g(less)g(than)g Fn(toosmall)e Fo(some)227 2593 y(action)i(is)e(tak)m\n-(en.)40 b(F)-8 b(or)24 b(the)f(second)h(strategy)-8 b(,)26\n-b(the)e Fn(fudge)e Fo(parameter)h(con)m(tributes)h(to)g(the)g(p)s\n-(erturbation.)227 2706 y(When)k Fn(storeids)d Fo(is)j(not)g(zero,)i\n-(the)e Fn(fudgeIV)e Fo(ob)5 b(ject)28 b(is)g(created)h(to)g(accum)m\n-(ulate)g(the)f(lo)s(cations)i(of)e(the)227 2819 y(p)s(erturbations.)43\n-b(When)31 b Fn(storevalues)d Fo(is)j(not)h(zero,)g(the)g\n-Fn(fudgeDV)d Fo(ob)5 b(ject)32 b(is)g(created)g(to)g(accum)m(ulate)227\n-2931 y(information)f(on)f(the)h(p)s(erturbations)e(themselv)m(es.)227\n-3082 y Ff(Err)-5 b(or)31 b(che)-5 b(cking:)38 b Fo(If)26\n-b Fn(info)f Fo(is)i Fn(NULL)e Fo(or)i Fn(strategy)d Fo(is)i(not)h(1)g\n-(or)f(2,)i(or)f Fn(toosmall)d Fo(or)i Fn(fudge)g Fo(are)g(less)h(than)\n-227 3195 y(zero,)32 b(an)e(error)g(message)h(is)g(prin)m(ted)f(and)g\n-(the)g(program)g(exits.)p eop end\n+TeXDict begin 3 2 bop 91 100 989 4 v 1170 100 a Fn(PatchAndGoInfo)27\n+b Fg(:)40 b Ff(DRAFT)122 b Fg(July)29 b(1,)i(2024)p 2864\n+100 V 989 w Fo(3)111 399 y(3.)46 b Fn(void)h(PatchAndGoInfo_clearData)\n+41 b(\\()48 b(PatchAndGoInfo)43 b(*info)k(\\))g(;)227 549\n+y Fo(This)35 b(metho)s(d)f(clears)i(an)m(y)g(data)f(o)m(wned)g(b)m(y)g\n+(the)h(ob)5 b(ject.)56 b(If)34 b Fn(fudgeIV)f Fo(is)i(not)h\n+Fn(NULL)e Fo(it)h(is)h(free'd)f(b)m(y)g(a)227 662 y(call)c(to)f\n+Fn(IV)p 605 662 29 4 v 34 w(free\\(\\))p Fo(.)38 b(If)29\n+b Fn(fudgeDV)e Fo(is)i(not)h Fn(NULL)e Fo(it)i(is)f(free'd)g(b)m(y)g(a)\n+h(call)g(to)g Fn(DV)p 2914 662 V 34 w(free\\(\\))p Fo(.)39\n+b(The)28 b(structure's)227 775 y(default)j(\\014elds)f(are)g(then)g(set)\n+h(with)f(a)h(call)h(to)f Fn(PatchAndGoInfo)p 2505 775\n+V 31 w(setDefaultFields\\(\\))p Fo(.)227 925 y Ff(Err)-5\n+b(or)34 b(che)-5 b(cking:)40 b Fo(If)30 b Fn(info)g Fo(is)g\n+Fn(NULL)p Fo(,)f(an)i(error)f(message)h(is)g(prin)m(ted)f(and)f(the)i\n+(program)f(exits.)111 1112 y(4.)46 b Fn(void)h(PatchAndGoInfo_free)42\n+b(\\()48 b(PatchAndGoInfo)c(*info)i(\\))i(;)227 1263 y\n+Fo(This)31 b(metho)s(d)g(releases)h(an)m(y)g(storage)h(b)m(y)e(a)h\n+(call)h(to)f Fn(PatchAndGoInfo)p 2748 1263 V 31 w(clearData\\(\\))c\n+Fo(then)j(free's)h(the)227 1376 y(storage)g(for)e(the)h(structure)f\n+(with)g(a)h(call)g(to)g Fn(free\\(\\))p Fo(.)227 1526 y\n+Ff(Err)-5 b(or)34 b(che)-5 b(cking:)40 b Fo(If)30 b Fn(info)g\n+Fo(is)g Fn(NULL)p Fo(,)f(an)i(error)f(message)h(is)g(prin)m(ted)f(and)f\n+(the)i(program)f(exits.)0 1794 y Fa(1.2.2)112 b(Initializer)38\n+b(metho)s(ds)111 1991 y Fo(1.)46 b Fn(void)h(PatchAndGoInfo_init)42\n+b(\\()48 b(PatchAndGoInfo)c(*info,)i(int)h(strategy,)e(double)h\n+(toosmall,)1516 2104 y(double)g(fudge,)g(int)h(storeids,)e(int)i\n+(storevalues)e(\\))i(;)227 2254 y Fo(This)36 b(metho)s(d)g(initializes)i\n+(the)f(ob)5 b(ject.)59 b(Presen)m(tly)-8 b(,)40 b(t)m(w)m(o)d\n+(strategies)i(are)d(supp)s(orted:)51 b Fn(strategy)46\n+b(=)h(1)227 2367 y Fo(for)37 b(optimization)j(matrices)e(and)f\n+Fn(strategy)46 b(=)h(2)37 b Fo(for)g(structural)h(analysis)g(matrices.)\n+63 b Fn(toosmall)35 b Fo(is)227 2480 y(the)25 b(cuto\\013)h(for)f\n+(diagonal)h(en)m(try)f(mo)s(di\\014cation,)i(if)d(an)h(en)m(try)g(has)g\n+(magnitude)g(less)g(than)g Fn(toosmall)e Fo(some)227\n+2593 y(action)i(is)e(tak)m(en.)40 b(F)-8 b(or)24 b(the)f(second)h\n+(strategy)-8 b(,)26 b(the)e Fn(fudge)e Fo(parameter)h(con)m(tributes)h\n+(to)g(the)g(p)s(erturbation.)227 2706 y(When)k Fn(storeids)d\n+Fo(is)j(not)g(zero,)i(the)e Fn(fudgeIV)e Fo(ob)5 b(ject)28\n+b(is)g(created)h(to)g(accum)m(ulate)g(the)f(lo)s(cations)i(of)e(the)227\n+2819 y(p)s(erturbations.)43 b(When)31 b Fn(storevalues)d\n+Fo(is)j(not)h(zero,)g(the)g Fn(fudgeDV)d Fo(ob)5 b(ject)32\n+b(is)g(created)g(to)g(accum)m(ulate)227 2931 y(information)f(on)f(the)h\n+(p)s(erturbations)e(themselv)m(es.)227 3082 y Ff(Err)-5\n+b(or)31 b(che)-5 b(cking:)38 b Fo(If)26 b Fn(info)f Fo(is)i\n+Fn(NULL)e Fo(or)i Fn(strategy)d Fo(is)i(not)h(1)g(or)f(2,)i(or)f\n+Fn(toosmall)d Fo(or)i Fn(fudge)g Fo(are)g(less)h(than)227\n+3195 y(zero,)32 b(an)e(error)g(message)h(is)g(prin)m(ted)f(and)g(the)g\n+(program)g(exits.)p eop end\n %%Page: 4 4\n TeXDict begin 4 3 bop 0 866 a Fp(Index)0 1289 y Fn(PatchAndGoInfo)p\n 678 1289 29 4 v 31 w(clearData\\(\\))p Fo(,)27 b(3)0 1402\n y Fn(PatchAndGoInfo)p 678 1402 V 31 w(free\\(\\))p Fo(,)h(3)0\n 1515 y Fn(PatchAndGoInfo)p 678 1515 V 31 w(init\\(\\))p\n Fo(,)g(3)0 1628 y Fn(PatchAndGoInfo)p 678 1628 V 31 w(new\\(\\))p\n Fo(,)h(2)0 1741 y Fn(PatchAndGoInfo)p 678 1741 V 31 w\n", "details": [{"source1": "ps2ascii {}", "source2": "ps2ascii {}", "unified_diff": "@@ -26,15 +26,15 @@\n If A is singular, the solution X = 0 and X = A\u22121B is perfectly acceptable. In other\r\n 1,1 1 2 2,2 2\r\n cases, the location of the singularity can be communicated back to the user to supply useful\r\n information about the \ufb01nite element model. One common practice is to not use pivoting, but\r\n to check the magnitude of the diagonal entry as a row and column is to be eliminated. If\r\n the magnitude is smaller than a user-supplied parameter, the diagonal entry is set to some\r\n 1\r\n- 2 PatchAndGoInfo : DRAFT August 3, 2025\r\n+ 2 PatchAndGoInfo : DRAFT July 1, 2024\r\n multiple of the largest o\ufb00diagonal entry in that row and column of the front, the location and\r\n perturbation is noted, and the factorization proceeds.\r\n Other strategies can be added to the PatchAndGoInfo object. For example, if a matrix is being\r\n factored that is believed to be positive de\ufb01nite, and a negative value is found in a pivot element,\r\n one could abort the factorization, or perturb the element so that it is positive.\r\n 1.1 Data Structure\r\n The PatchAndGoInfo structure has \ufb01ve \ufb01elds.\r\n@@ -58,15 +58,15 @@\n 1. PatchAndGoInfo * PatchAndGoInfo_new ( void ) ;\r\n This method simply allocates storage for the PatchAndGoInfo structure and then sets the\r\n default \ufb01elds by a call to PatchAndGoInfo setDefaultFields().\r\n 2. void PatchAndGoInfo_setDefaultFields ( PatchAndGoInfo *info ) ;\r\n This method sets the structure\u2019s \ufb01elds to default values: strategy = -1, toosmall = fudge\r\n =0.0, and fudgeIV = fudgeDV = NULL .\r\n Error checking: If info is NULL, an error message is printed and the program exits.\r\n- PatchAndGoInfo : DRAFT August 3, 2025 3\r\n+ PatchAndGoInfo : DRAFT July 1, 2024 3\r\n 3. void PatchAndGoInfo_clearData ( PatchAndGoInfo *info ) ;\r\n This method clears any data owned by the object. If fudgeIV is not NULL it is free\u2019d by a\r\n call to IV free(). If fudgeDV is not NULL it is free\u2019d by a call to DV free(). The structure\u2019s\r\n default \ufb01elds are then set with a call to PatchAndGoInfo setDefaultFields().\r\n Error checking: If info is NULL, an error message is printed and the program exits.\r\n 4. void PatchAndGoInfo_free ( PatchAndGoInfo *info ) ;\r\n This method releases any storage by a call to PatchAndGoInfo clearData() then free\u2019s the\r\n"}]}]}, {"source1": "./usr/share/doc/spooles-doc/Pencil.ps.gz", "source2": "./usr/share/doc/spooles-doc/Pencil.ps.gz", "unified_diff": null, "details": [{"source1": "Pencil.ps", "source2": "Pencil.ps", "unified_diff": "@@ -11,15 +11,15 @@\n %%EndComments\n %%BeginDefaults\n %%ViewingOrientation: 1 0 0 1\n %%EndDefaults\n %DVIPSWebPage: (www.radicaleye.com)\n %DVIPSCommandLine: dvips main -o Pencil.ps\n %DVIPSParameters: dpi=600\n-%DVIPSSource: TeX output 2025.08.03:1317\n+%DVIPSSource: TeX output 2024.07.01:0700\n %%BeginProcSet: tex.pro 0 0\n %!\n /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S\n N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72\n mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0\n 0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{\n landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize\n@@ -1880,23 +1880,22 @@\n /UnderlinePosition -100 def\n /UnderlineThickness 50 def\n end readonly def\n /Encoding 256 array\n 0 1 255 {1 index exch /.notdef put} for\n dup 44 /comma put\n dup 48 /zero put\n+dup 49 /one put\n dup 50 /two put\n-dup 51 /three put\n-dup 53 /five put\n+dup 52 /four put\n dup 58 /colon put\n-dup 65 /A put\n-dup 103 /g put\n-dup 115 /s put\n-dup 116 /t put\n+dup 74 /J put\n+dup 108 /l put\n dup 117 /u put\n+dup 121 /y put\n readonly def\n currentdict end\n currentfile eexec\n D9D66F633B846AB284BCF8B0411B772DE5CE32340DC6F28AF40857E4451976E7\n 5182433CF9F333A38BD841C0D4E68BF9E012EB32A8FFB76B5816306B5EDF7C99\n 8B3A16D9B4BC056662E32C7CD0123DFAEB734C7532E64BBFBF5A60336E646716\n EFB852C877F440D329172C71F1E5D59CE9473C26B8AEF7AD68EF0727B6EC2E0C\n@@ -2077,79 +2076,67 @@\n 7CA1534C4D5B05FC33F83790ECFD7641DF3FB94289E2A1F6E7D29AB1228A867A\n 6E1EF0E9C6F899B491DC18401C2C0A05FFFED46A72C245F7529B8EA55A038082\n 8512307217D2A233C37004085BA3AEE379269F9FA7D0ADB4B19A95CC2AFE686E\n 55D88E47257C1FE6F235FEA295910569FE6DD5995512562359CC821E85A6C7A5\n 79B470A9E340A6985189FF8B6AF914A6B0ECF93F47903221F95DE894A8F05B05\n B7D99CD533EC5F931B18E6B39BECF67FA2D6DD1AEC76772B068BE06335A94C05\n 7A4DDEE77B66101DA855C17AC312600370B34E31F5EC3A01300A8EB60B4C9767\n-1B2FA10DF7E91D3BB34A1B1CE7A0015A57C813E0280D873ADB88440048702D1F\n-77994EE04EC3B4531D6E1888C86A8F0DA6CF1F056F16AB0DD76C862830F89DA4\n-28923B3AA543E0D6E41D3BD283E600BC11F889315EE92C675C109C81065ED1BC\n-82A5583D1B723D50051B0557A367887F5B263014C6E77288B4883C50889473D3\n-3787BAD4BEB88BD1353AFA5B73E61814819537E7FF09F53EF94792BB3DD36ED0\n-002D0E7A6CDAB85A9C17AF5664BCB5A71663B861880F3ECCABC8E7A2FC81A4CC\n-AE7A87503FDC1CE0077BA51ECC7B43B60793FED8E9AAD5BBD03ADD6183DCD26D\n-24A74163611C05562437644EF9B8889FD4F9D311911204FEFD35237486F2D2D0\n-B6783A03BF12EA6D19D6D0F87E4D08515F12F9CBF1961CAA71E0D69FE3C4C4D2\n-7C7FB64ED24F8684C8F00C2BEDEA53EA390CDC0B5BEBD7DD982580B2EA1F1F89\n-CFED5916630DC2BA32BB9180277E1ABC339B3B7DE086717BD93F7FF3681BA5B3\n-FCF671C4B293C2DE4A322F0AA3323A4934444C69F23EF90120B8755482757759\n-C457A435FB8BB4922BD92C5F3D9555D978275C510183E29DFF2FCE4ABBFC18DE\n-76CAD3B486BA12047DD808CD4D521A0FD368E4AE79DE262630983A5D6F0B679D\n-2F005306393C520E1B6987302D029939D94B0178DC55D5264E1FEA468AD4134C\n-8C65B2FBBE8DE8284E8E1F6BFE0B648F44D3DA8E9350D266EDBFD4A7054D9355\n-1E0B185DED37BCF32D3731358F1D707C94109428BAD3CEA456A2A43553E3D2C2\n-F549189201F3D3F715310E3E8C6A2E9AA5141AA9125D203694C7D875C2DD320F\n-C5BCDFC924F6C04DBC7A97349B45ECD0FBD7D2123ED1D3A9F440B1112BE62779\n-47A4592F9285CBD9635EC9091CEC0AFD7E6B6976974081DB9C0E43165BD8584D\n-6CDF08DED287F0883A9FBD351B3F8706BA1E94C7CA487338269482EB8DC1A05D\n-F6632A5D834DE29228C49C5BA65EF7C535A53B380BF4B391F43562147538EE97\n-E799DFC2C40315859F56BBCE9CAE1DF9293F6E2C193ABE7A724EC8F32FA220E7\n-6026877A63E318254F2AF7B1325D63FC4C52B536D3EF354814C2F8F1EEA30569\n-6EF04447DB0F809DF35B4985B9FB4F4BB6087310BE633E76F268B32ABA99CE8E\n-03163DFF4AEDB88E60DD0848C15E90026D7C24D81122EBC07113F9851914A9D5\n-D0E09C2BFDDAF10C5D8208E8329BC0C402F231CD84C95EFDD182AD9756662110\n-274650C7A5BB0D8EFA54EC6C5A49C0EB26701A54779AE8EFBBED824262761602\n-680EDFB38F0FE18C0F501F5AA8BF48A8F0DD3E5E1EBEB872F6F6B23964707B32\n-507FC677B9FDDC990E3828B06420F6F968B2F6AE81E76A2144B1ECE905485616\n-CFB29AC96DDE1F5039935D7E385CC13E34DD7EAF276A2EA3A8BF27FD4205AE13\n-7FE620E42F2CF231C6C8DD8EFC5A6CF081E5660D9ADD730D72D15C02B1E15FF3\n-D741D3B1EB1E666C4E562219033C1E2EF3F96E136998B2E1890395A3637A2C02\n-DE1C46AFCA8D898439F06606A2295D3F7ED6C7DB250C61B6B97A0D5EDDB9657E\n-E790B4E07540BB1026036F4A0D00E7F16FD757AD61D686620C6814B7DCEC43E8\n-FD36D9E75BA554F64548A67D9B0A26E11784E58D4357FC251D71B5D6D8BFDDE0\n-D3BF0E825DA5312C1904AF13C5905C2ADF79C357476183D2EC5A95243235E861\n-2F98D9EE77EF8F8CB3EC6BD358C5ED37DD3AF44D60575E7774BF96F1AE9DFAD1\n-F8646DEDF21D10311854726B8F7D25876BB1EF78E2442B16ED4B851816CF0A27\n-11FDFCE525002A1A7C3E62CD2A3EDE6FAADB026D2F3A46C030ADB22422CA8FF5\n-2545ED58C0D9FB5BDB55FE674301E91A75B005B86BD201D246F7ADACE50419FD\n-AC3312CAC5EB78A36F0E5F62E65AC92129CB574AAC59E0A7C1390DFC61F39D9E\n-D7036742F2F6E64D1EF8157E9CCF65F3EEDC6A8220235978B8E06EB80F649F3E\n-204CFB497F49306EA8E1F7B62305978A28F1E771ED82C6592C71022154E4062A\n-A92335EFC65D6DED9C686899FFD7AA2988740618C03C5E362E1AF352E3BE4602\n-5530C51E5FC8E9082DF79199CC91C50174000D337D86127AC807C5A3C81DDE57\n-7A68AEE7230949B925365C214D77C80E87CEE218ABC94023717EA43BA5D8A7C8\n-8A8B9BD1B767996AE33050E3D922ED0574E3579C57E4BDDAD35883806AFDF260\n-3AB5D83D451583262E580FFDB7A27D82396AF18D92B849A3F7A7E621987D5DF0\n-038F876C6E9CA47FB11AF05F0019191C5DDC5F0177AD421E94BC66D0CCB82F1F\n-93A80836284B095503752C600F72E2C89112ABFA5B76152691264103B268B3E5\n-8816724ADADB38740001A9AACE05C8AF02D72918606DC22EFC8BF0DA0FD12FFE\n-D3A09F8E28057F327BFB633E604B1EAD478637B1D9631650B314CC62D7E0E87F\n-9D3FE1FFA23BB6E3006C3E39BED52F6B0C1C651B5913878F36DA0BF776889165\n-68BA3456B40B8B471CA8FF5238E43D9113E052A2B8D2EAA2433D3F89FCA48AFB\n-5E842913E4ED6DF9623354059CD1F1707B126FED80349787C869883120183EDD\n-249185A55503FAC53898F52170D05CAC62BB742CF9702C0518AED6B27CDC401C\n-932E02143FD916703F360CB31049501B35EF3EDDFED791090D0CFA221FD1DB32\n-7D4759CE07983AE29C258C705D11E7D9481EEAAB9B6BA65CDCF0AA0057BD6FEA\n-ABBFBD3ABF2A7BFB550C3D2A16DC447384A89F3DB6D9C2DBDCA997ABE35A7706\n-633D328AECEDB5BD07070C1B96267FD73B45791DD18194F60D358091FBE88409\n-973529806F3D2C9E6E39091F90A14B560A987E0B9490B9B690FB489B8E253070\n-D7C54447BE0E0A0BFEAEFFB581DC1300E6EC382984673BF0665632404E59B5BF\n-5D5F0A1C956E618C0487751CA5DAE8A95C214F76ED756694EF273679CD2D85CB\n-949DF385BD50491649EFEFDA1574921D7460143D42A100D2C76E55F0BC\n+1B2FA10DF7E91D3BB34A1B1CE7A0015A57C813E0280D873ADB8844004B9BA1CC\n+580D3C6BDA4DC1B80B4365F1C80512453FC5316EC2D928FB731C3D6403E3C18B\n+E8424D644DF5E9A2134229C5C91CA68DB8E85BA2BB40F538F585DA6FA4037718\n+B8053EBBA1E765346BCD5BDAA6C38115D31611D8A87A2238C145F2DA2F92E4DF\n+3987BD9C4D2A3D460E8941A68B125BCD9EE4F9FD262C4C8A71F47A2C81975635\n+F1B981C274C53FA2ACCDE4C9D0A7C62D6C1EFF91CFC6712CA6A9F333C9564FCB\n+2A70F0AD715A79B10A08AB069E2A3C93BC0AED19D0CA10134B8DDDE8AF548DB2\n+3A4AAA9C29682CF135BB767DAA16169A127EB50A7EECEB6480CF56A7D0F8AC56\n+4A5090B3D75A790372886AF568D94C8165975A05BFBFDF1FFBA45F70700BB9E0\n+57F3249EF9E9C8AD9CBCF6E4FD592DC4CDD2CC7C0BC3130C1059096C657BE453\n+A2CBACE93420210E27AF56CA229BD6D982FB68B3FDC6D44478B922C4231C47EE\n+E500232F6C11D92DEB955F66DF52B92B22E7352790CC2DCBAC53965D57AC2920\n+68B7D520DE25047146EFEB06B9AD4E2A94243C7E5239F0BC2FC312B16051D52C\n+0B92C217B6B42997321AE4F8BB066754B7AA3F15069EF59224E8A442CE471AA7\n+E8049A3DD9EDA09CCEE4998998661CF7DB35E952F6C65DAEB3013951C59F3E09\n+157F313B0237876E1C0190F0473819570B8C0205AADF05D787CC00979CFB327A\n+289382B22DDA6F12804ED0ED5B179E36A995A2A59E1B66E75130DBE9109C813B\n+94403E0DEA8314A1E9DB474D7FA83C0BAFD08033E6A6215844C1D26BE15F1251\n+A1605E8DF9A9C601ED37379530BC1C82BE5463C6C711C5652BFD6262485AA9CA\n+B8C4A117593001D08D980041E2A83C190DCE8E6CD3D334E5CC19FC05DB30F7F7\n+24A305C4DBB31F0651392B99D44B4302333BDF7E326FD256DD75D309C6E73F85\n+FA71B35FD1F9BEFF4C7A1076362EEB0A85492933B6006086A7B8C1928CF2D1EE\n+FD4344409257BB802C117E739960821CD3C88BFBA5669FF16F610AD638AF3677\n+8674C985E6767253ED5769F71BEA5E9BB02A751F9E62EE2B18AC19D975FDEAE9\n+8B8822367FF177A7E850766DE99ED3366D46464612926430012212A90F8E85F4\n+4760B40D5B86B90819EE410382D22D8ED82D0B0AB00C93E10CD365F8766D1C87\n+B4A866021FB6F6AC3D250CC601989B1B8FE6B1098A48282D2CF258BF38FEE940\n+CE0141FB1344156DE7712A8F2DBF700174F12616EE17C852210D96D03E5E6635\n+D439EB6E84A383DDD32AD72DADE6F931FDBABBDC726C36081C96018FC95EAE13\n+DA1F8DBC2D8355AC9792649653225393F4A7A88F3B9443FEEB75E2C15BF93F09\n+CCBA7FABC022BE26F4C28152D5DA6D690494AD4EC0DA1B598AE12536BADF88B5\n+5E20EB452546389F57FF55459567B453AE1831C57D22FA6A4FDF441EDAFDB7FB\n+4F4B707C1FF9159C40F7B5DD519FC07815EE91B8D756B6C18500BCF47D0D9E45\n+6A2D51B6AA5AEAAC9AB2DEF7F0FDE957B6C179CBADEECAC7E9CEC248AB135EB4\n+FBF83D002FF859B574EF36C371540EF2BCFCEF5C2E7863AEDD7C3C965103453B\n+023A9CEC1D5C45B88827ADF4AE0C6746F3C7E6A944427DAEC493601019583A16\n+0F846CE00EAE89EEFF9CE68A0E1D6EBB8FDD8A45D1BF399B36A8328EC957CB8B\n+D842A56269C8C9A6B472C9E65BCBC090606B4E8A7EF4ABDEA120C9F9B3969A1C\n+2EB102925F4E155160E58000E1ADB0D19E10EFD96F6C3225EEE8FC24D122C069\n+C11F1A69DC383F7DACD2F3929BD135CE69787C6E7560AC4B683FE5D9AAFD2E89\n+EE6D95E38C9B726B416E28169A11E29559DBA9AECD714CF318FCB78F34A0E562\n+9C00FE0C6D5A848557D9A82EC2BEFCD30B5EDC0B23C5BA9F812C864394C8B9D1\n+B08BAC9CF94E70FF842306ACCFE6E39A56777C712904A3AB29FBD19275E19E06\n+B35B37CFFFCEC81CAF2D85A853663FAFCFFED1EA77064AA28C15BC94910683BC\n+D09513079DE9EE18E97CC2403DD206516D7F652A3459870757F34EEDCEF952C3\n+FE8004F4716B5BD6774E455010B0BB1E61FCD66B9F14F9BBCCF3E55A158EE96E\n+9A05BDFDDC7706D4BC28FDDC4004EF3A430C607EBDF115E0C996454D70C8BB42\n+D7C83A454B116663D648C23CE2B33365810DE2B64D4AE011BC8043BC3E05B94D\n+1700F859C6AFC6515C1C42FA104EE3E8F3FA5F80252C2E79B00ED27F675FFD09\n+B50BF7A3C63CF4856F909DF969D7DD3EA05CABDD1E71A58CFC2AB5F614B4E5E0\n+25CF92E9FB66ACEBE05DF5E033DA8AD3EE32D94C02D98DD7DA99FAB5AEA595C3\n+2987DC122F0242D76B782349E4069DE0CDD6EF4375C680CBFE4C8F24F2AE89BF\n+7785F5EA7435A91500F265022C307E8ADEAAE1C6\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n@@ -4099,16 +4086,16 @@\n %%EndFont \n TeXDict begin 40258437 52099151 1000 600 600 (main.dvi)\n @start /Fa 171[41 84[{}1 66.4176 /CMMI8 rf /Fb 152[45\n 45 102[{}2 90.9091 /CMSY10 rf /Fc 133[50 59 4[44 44 3[56\n 62 93 31 2[31 62 2[51 62 50 1[54 11[86 5[84 5[42 6[80\n 13[56 56 56 56 2[31 46[{}23 99.6264 /CMBX12 rf /Fd 141[38\n 2[46 51 2[42 1[28 46 42 1[42 1[42 14[65 1[66 11[59 62\n-69 2[68 6[28 58[{}16 90.9091 /CMTI10 rf /Fe 138[51 35\n-36 11[45 37[68 6[25 4[45 1[45 45 1[45 3[25 44[{}11 90.9091\n+69 2[68 6[28 58[{}16 90.9091 /CMTI10 rf /Fe 134[48 3[51\n+8[25 33[47 15[25 5[45 1[45 45 45 3[25 44[{}10 90.9091\n /CMSL10 rf /Ff 145[62 1[62 2[62 3[62 1[62 18[62 80[{}6\n 119.552 /CMTT12 rf /Fg 132[52 6[41 4[52 9[48 22[82 19[29\n 58[{}6 90.9091 /CMBX10 rf\n %DVIPSBitmapFont: Fh tcrm1095 10.95 1\n [/Grave/Acute/Circumflex/Tilde/Dieresis/Hungarumlaut/Ring/Caron/Breve/Macron\n /Dotaccent/cedilla/ogonek/quotesinglbase.ts1 4{/.notdef}repeat\n /quotedblbase.ts1/.notdef/.notdef/twelveudash/threequartersemdash\n@@ -4208,17 +4195,17 @@\n (shift)f(v)-5 b(alue.)0 5061 y Fi(1.2)135 b(Protot)l(yp)t(es)46\n b(and)f(descriptions)g(of)g Ff(Pencil)d Fi(metho)t(ds)0\n 5294 y Fl(This)f(section)j(con)m(tains)f(brief)f(descriptions)g\n (including)f(protot)m(yp)s(es)i(of)f(all)h(metho)s(ds)f(that)h(b)s\n (elong)f(to)h(the)0 5407 y Fj(Pencil)29 b Fl(ob)5 b(ject.)1927\n 5656 y(1)p eop end\n %%Page: 2 2\n-TeXDict begin 2 1 bop 0 100 a Fl(2)p 136 100 1194 4 v\n-1376 w Fj(Chv)29 b Fe(:)41 b Fd(DRAFT)30 b Fe(August)g(3,)h(2025)p\n-2707 100 V 0 399 a Fc(1.2.1)112 b(Basic)38 b(metho)s(ds)0\n+TeXDict begin 2 1 bop 0 100 a Fl(2)p 136 100 1251 4 v\n+1433 w Fj(Chv)30 b Fe(:)40 b Fd(DRAFT)31 b Fe(July)e(1,)i(2024)p\n+2649 100 V 0 399 a Fc(1.2.1)112 b(Basic)38 b(metho)s(ds)0\n 600 y Fl(As)d(usual,)h(there)f(are)g(four)f(basic)h(metho)s(ds)g(to)g\n (supp)s(ort)e(ob)5 b(ject)36 b(creation,)i(setting)e(default)f\n (\\014elds,)h(clearing)0 712 y(an)m(y)31 b(allo)s(cated)h(data,)f(and)f\n (free'ing)h(the)g(ob)5 b(ject.)111 962 y(1.)46 b Fj(Pencil)g(*)i\n (Pencil_new)d(\\()i(void)g(\\))g(;)227 1117 y Fl(This)25\n b(metho)s(d)g(simply)f(allo)s(cates)k(storage)f(for)e(the)h\n Fj(Pencil)d Fl(structure)i(and)g(then)g(sets)g(the)h(default)f\n@@ -4274,26 +4261,26 @@\n (the)e Fj(InpMtx)p 1709 5139 V 33 w(changeStorageMode\\(\\))25\n b Fl(metho)s(d)k(for)h(eac)m(h)i(of)e(its)h(t)m(w)m(o)g(ma-)227\n 5252 y(trices.)227 5407 y Fd(Err)-5 b(or)34 b(che)-5\n b(cking:)40 b Fl(If)30 b Fj(pencil)f Fl(is)h Fj(NULL)p\n Fl(,)g(an)g(error)g(message)i(is)e(prin)m(ted)g(and)g(zero)h(is)f\n (returned.)p eop end\n %%Page: 3 3\n-TeXDict begin 3 2 bop 91 100 1194 4 v 1375 100 a Fj(Chv)30\n-b Fe(:)40 b Fd(DRAFT)121 b Fe(August)30 b(3,)h(2025)p\n-2659 100 V 1194 w Fl(3)111 399 y(3.)46 b Fj(void)h\n-(Pencil_sortAndCompress)42 b(\\()47 b(Pencil)f(*pencil)g(\\))h(;)227\n-554 y Fl(This)20 b(metho)s(d)h(simply)f(calls)i(the)f\n-Fj(InpMtx)p 1662 554 29 4 v 33 w(sortAndCompress\\(\\))16\n-b Fl(metho)s(d)k(for)h(eac)m(h)h(of)f(its)g(t)m(w)m(o)i(matrices.)227\n-709 y Fd(Err)-5 b(or)34 b(che)-5 b(cking:)40 b Fl(If)30\n-b Fj(pencil)f Fl(is)h Fj(NULL)p Fl(,)g(an)g(error)g(message)i(is)e\n-(prin)m(ted)g(and)g(zero)h(is)f(returned.)111 906 y(4.)46\n-b Fj(void)h(Pencil_convertToVectors)41 b(\\()48 b(Pencil)e(*pencil)g(\\))\n-h(;)227 1061 y Fl(This)20 b(metho)s(d)h(simply)f(calls)i(the)f\n+TeXDict begin 3 2 bop 91 100 1251 4 v 1433 100 a Fj(Chv)29\n+b Fe(:)41 b Fd(DRAFT)121 b Fe(July)30 b(1,)h(2024)p 2602\n+100 V 1251 w Fl(3)111 399 y(3.)46 b Fj(void)h(Pencil_sortAndCompress)42\n+b(\\()47 b(Pencil)f(*pencil)g(\\))h(;)227 554 y Fl(This)20\n+b(metho)s(d)h(simply)f(calls)i(the)f Fj(InpMtx)p 1662\n+554 29 4 v 33 w(sortAndCompress\\(\\))16 b Fl(metho)s(d)k(for)h(eac)m(h)h\n+(of)f(its)g(t)m(w)m(o)i(matrices.)227 709 y Fd(Err)-5\n+b(or)34 b(che)-5 b(cking:)40 b Fl(If)30 b Fj(pencil)f\n+Fl(is)h Fj(NULL)p Fl(,)g(an)g(error)g(message)i(is)e(prin)m(ted)g(and)g\n+(zero)h(is)f(returned.)111 906 y(4.)46 b Fj(void)h\n+(Pencil_convertToVectors)41 b(\\()48 b(Pencil)e(*pencil)g(\\))h(;)227\n+1061 y Fl(This)20 b(metho)s(d)h(simply)f(calls)i(the)f\n Fj(InpMtx)p 1662 1061 V 33 w(sortAndCompress\\(\\))16 b\n Fl(metho)s(d)k(for)h(eac)m(h)h(of)f(its)g(t)m(w)m(o)i(matrices.)227\n 1216 y Fd(Err)-5 b(or)34 b(che)-5 b(cking:)40 b Fl(If)30\n b Fj(pencil)f Fl(is)h Fj(NULL)p Fl(,)g(an)g(error)g(message)i(is)e\n (prin)m(ted)g(and)g(zero)h(is)f(returned.)111 1413 y(5.)46\n b Fj(void)h(Pencil_mapToLowerTriangl)o(e)42 b(\\()47 b(Pencil)f(*pencil)\n g(\\))i(;)227 1568 y Fl(This)42 b(metho)s(d)g(simply)g(calls)h(the)g\n@@ -4345,17 +4332,17 @@\n 5294 y Fj(SPOOLES)p 569 5294 V 33 w(HERMITIAN)p Fl(,)38\n b(en)m(tries)j(in)f(the)h(lo)m(w)m(er)g(triangle)h(are)f(dropp)s(ed.)68\n b(If)40 b Fj(randomflag)e Fl(is)i(one,)k(the)227 5407\n y(en)m(tries)31 b(are)g(\\014lled)f(with)g(random)g(n)m(um)m(b)s(ers)f\n (using)h(the)g Fj(Drand)f Fl(random)h(n)m(um)m(b)s(er)f(generator)j\n Fj(drand)p Fl(.)p eop end\n %%Page: 4 4\n-TeXDict begin 4 3 bop 0 100 a Fl(4)p 136 100 1194 4 v\n-1376 w Fj(Chv)29 b Fe(:)41 b Fd(DRAFT)30 b Fe(August)g(3,)h(2025)p\n-2707 100 V 227 399 a Fg(Note:)52 b Fl(this)36 b(metho)s(d)g(w)m(as)g\n+TeXDict begin 4 3 bop 0 100 a Fl(4)p 136 100 1251 4 v\n+1433 w Fj(Chv)30 b Fe(:)40 b Fd(DRAFT)31 b Fe(July)e(1,)i(2024)p\n+2649 100 V 227 399 a Fg(Note:)52 b Fl(this)36 b(metho)s(d)g(w)m(as)g\n (created)i(for)e(an)g(MPI)g(application.)59 b(If)36 b\n Fj(myid)f Fl(is)h(zero,)j(then)d(the)g(\\014les)h(are)227\n 511 y(read)30 b(in,)g(otherwise)h(just)e(stubs)g(are)h(created)h(for)f\n (the)g(in)m(ternal)h(matrix)f(ob)5 b(jects.)41 b(In)30\n b(our)f(MPI)h(driv)m(ers,)227 624 y(pro)s(cess)d(zero)i(reads)e(in)g\n (the)h(matrices)g(and)f(then)g(starts)h(the)g(pro)s(cess)f(to)h\n (distribute)f(them)h(to)g(the)g(other)227 737 y(pro)s(cesses.)227\n", "details": [{"source1": "ps2ascii {}", "source2": "ps2ascii {}", "unified_diff": "@@ -16,15 +16,15 @@\n \u2022 InpMtx *inpmtxB : pointer to the matrix object for B. If inpmtxB is NULL, then B is the\r\n identity matrix.\r\n \u2022 double sigma[2] : real or complex scalar shift value.\r\n 1.2 Prototypes and descriptions of Pencil methods\r\n This section contains brief descriptions including prototypes of all methods that belong to the\r\n Pencil object.\r\n 1\r\n- 2 Chv : DRAFT August 3, 2025\r\n+ 2 Chv : DRAFT July 1, 2024\r\n 1.2.1 Basic methods\r\n As usual, there are four basic methods to support object creation, setting default \ufb01elds, clearing\r\n any allocated data, and free\u2019ing the object.\r\n 1. Pencil * Pencil_new ( void ) ;\r\n This method simply allocates storage for the Pencil structure and then sets the default \ufb01elds\r\n by a call to Pencil setDefaultFields().\r\n 2. void Pencil_setDefaultFields ( Pencil *pencil ) ;\r\n@@ -48,15 +48,15 @@\n 1. void Pencil_changeCoordType ( Pencil *pencil, int newType ) ;\r\n ThismethodsimplycallstheInpMtx changeCoordType()methodforeachofitstwomatrices.\r\n Error checking: If pencil is NULL, an error message is printed and zero is returned.\r\n 2. void Pencil_changeStorageMode ( Pencil *pencil, int newMode ) ;\r\n This method simply calls the InpMtx changeStorageMode() method for each of its two ma-\r\n trices.\r\n Error checking: If pencil is NULL, an error message is printed and zero is returned.\r\n- Chv : DRAFT August 3, 2025 3\r\n+ Chv : DRAFT July 1, 2024 3\r\n 3. void Pencil_sortAndCompress ( Pencil *pencil ) ;\r\n ThismethodsimplycallstheInpMtx sortAndCompress()methodforeachofitstwomatrices.\r\n Error checking: If pencil is NULL, an error message is printed and zero is returned.\r\n 4. void Pencil_convertToVectors ( Pencil *pencil ) ;\r\n ThismethodsimplycallstheInpMtx sortAndCompress()methodforeachofitstwomatrices.\r\n Error checking: If pencil is NULL, an error message is printed and zero is returned.\r\n 5. void Pencil_mapToLowerTriangle ( Pencil *pencil ) ;\r\n@@ -83,15 +83,15 @@\n 1. Pencil * Pencil_setup ( int myid, int symflag, char *inpmtxAfile,\r\n double sigma[], char *inpmtxBfile, int randomflag, Drand *drand,\r\n int msglvl, FILE *msgFile ) ;\r\n This method is used to read in the matrices from two \ufb01les and initialize the objects. If\r\n the \ufb01le name is \u201cnone\u201d, then no matrix is read. If symflag is SPOOLES SYMMETRIC or\r\n SPOOLES HERMITIAN, entries in the lower triangle are dropped. If randomflag is one, the\r\n entries are \ufb01lled with random numbers using the Drand random number generator drand.\r\n- 4 Chv : DRAFT August 3, 2025\r\n+ 4 Chv : DRAFT July 1, 2024\r\n Note: this method was created for an MPI application. If myid is zero, then the \ufb01les are\r\n read in, otherwise just stubs are created for the internal matrix objects. In our MPI drivers,\r\n process zero reads in the matrices and then starts the process to distribute them to the other\r\n processes.\r\n Error checking: If pencil or fp are NULL, an error message is printed and zero is returned.\r\n 2. int Pencil_readFromFiles ( Pencil *pencil, char *fnA, char *fnB ) ;\r\n This method reads the two InpMtx objects from two \ufb01les. If fnA is \u201cnone\u201d, then A is not\r\n"}]}]}, {"source1": "./usr/share/doc/spooles-doc/Perm.ps.gz", "source2": "./usr/share/doc/spooles-doc/Perm.ps.gz", "unified_diff": null, "details": [{"source1": "Perm.ps", "source2": "Perm.ps", "unified_diff": "@@ -10,15 +10,15 @@\n %%EndComments\n %%BeginDefaults\n %%ViewingOrientation: 1 0 0 1\n %%EndDefaults\n %DVIPSWebPage: (www.radicaleye.com)\n %DVIPSCommandLine: dvips main -o Perm.ps\n %DVIPSParameters: dpi=600\n-%DVIPSSource: TeX output 2025.08.03:1317\n+%DVIPSSource: TeX output 2024.07.01:0700\n %%BeginProcSet: tex.pro 0 0\n %!\n /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S\n N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72\n mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0\n 0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{\n landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize\n@@ -1014,23 +1014,22 @@\n /UnderlinePosition -100 def\n /UnderlineThickness 50 def\n end readonly def\n /Encoding 256 array\n 0 1 255 {1 index exch /.notdef put} for\n dup 44 /comma put\n dup 48 /zero put\n+dup 49 /one put\n dup 50 /two put\n-dup 51 /three put\n-dup 53 /five put\n+dup 52 /four put\n dup 58 /colon put\n-dup 65 /A put\n-dup 103 /g put\n-dup 115 /s put\n-dup 116 /t put\n+dup 74 /J put\n+dup 108 /l put\n dup 117 /u put\n+dup 121 /y put\n readonly def\n currentdict end\n currentfile eexec\n D9D66F633B846AB284BCF8B0411B772DE5CE32340DC6F28AF40857E4451976E7\n 5182433CF9F333A38BD841C0D4E68BF9E012EB32A8FFB76B5816306B5EDF7C99\n 8B3A16D9B4BC056662E32C7CD0123DFAEB734C7532E64BBFBF5A60336E646716\n EFB852C877F440D329172C71F1E5D59CE9473C26B8AEF7AD68EF0727B6EC2E0C\n@@ -1211,79 +1210,67 @@\n 7CA1534C4D5B05FC33F83790ECFD7641DF3FB94289E2A1F6E7D29AB1228A867A\n 6E1EF0E9C6F899B491DC18401C2C0A05FFFED46A72C245F7529B8EA55A038082\n 8512307217D2A233C37004085BA3AEE379269F9FA7D0ADB4B19A95CC2AFE686E\n 55D88E47257C1FE6F235FEA295910569FE6DD5995512562359CC821E85A6C7A5\n 79B470A9E340A6985189FF8B6AF914A6B0ECF93F47903221F95DE894A8F05B05\n B7D99CD533EC5F931B18E6B39BECF67FA2D6DD1AEC76772B068BE06335A94C05\n 7A4DDEE77B66101DA855C17AC312600370B34E31F5EC3A01300A8EB60B4C9767\n-1B2FA10DF7E91D3BB34A1B1CE7A0015A57C813E0280D873ADB88440048702D1F\n-77994EE04EC3B4531D6E1888C86A8F0DA6CF1F056F16AB0DD76C862830F89DA4\n-28923B3AA543E0D6E41D3BD283E600BC11F889315EE92C675C109C81065ED1BC\n-82A5583D1B723D50051B0557A367887F5B263014C6E77288B4883C50889473D3\n-3787BAD4BEB88BD1353AFA5B73E61814819537E7FF09F53EF94792BB3DD36ED0\n-002D0E7A6CDAB85A9C17AF5664BCB5A71663B861880F3ECCABC8E7A2FC81A4CC\n-AE7A87503FDC1CE0077BA51ECC7B43B60793FED8E9AAD5BBD03ADD6183DCD26D\n-24A74163611C05562437644EF9B8889FD4F9D311911204FEFD35237486F2D2D0\n-B6783A03BF12EA6D19D6D0F87E4D08515F12F9CBF1961CAA71E0D69FE3C4C4D2\n-7C7FB64ED24F8684C8F00C2BEDEA53EA390CDC0B5BEBD7DD982580B2EA1F1F89\n-CFED5916630DC2BA32BB9180277E1ABC339B3B7DE086717BD93F7FF3681BA5B3\n-FCF671C4B293C2DE4A322F0AA3323A4934444C69F23EF90120B8755482757759\n-C457A435FB8BB4922BD92C5F3D9555D978275C510183E29DFF2FCE4ABBFC18DE\n-76CAD3B486BA12047DD808CD4D521A0FD368E4AE79DE262630983A5D6F0B679D\n-2F005306393C520E1B6987302D029939D94B0178DC55D5264E1FEA468AD4134C\n-8C65B2FBBE8DE8284E8E1F6BFE0B648F44D3DA8E9350D266EDBFD4A7054D9355\n-1E0B185DED37BCF32D3731358F1D707C94109428BAD3CEA456A2A43553E3D2C2\n-F549189201F3D3F715310E3E8C6A2E9AA5141AA9125D203694C7D875C2DD320F\n-C5BCDFC924F6C04DBC7A97349B45ECD0FBD7D2123ED1D3A9F440B1112BE62779\n-47A4592F9285CBD9635EC9091CEC0AFD7E6B6976974081DB9C0E43165BD8584D\n-6CDF08DED287F0883A9FBD351B3F8706BA1E94C7CA487338269482EB8DC1A05D\n-F6632A5D834DE29228C49C5BA65EF7C535A53B380BF4B391F43562147538EE97\n-E799DFC2C40315859F56BBCE9CAE1DF9293F6E2C193ABE7A724EC8F32FA220E7\n-6026877A63E318254F2AF7B1325D63FC4C52B536D3EF354814C2F8F1EEA30569\n-6EF04447DB0F809DF35B4985B9FB4F4BB6087310BE633E76F268B32ABA99CE8E\n-03163DFF4AEDB88E60DD0848C15E90026D7C24D81122EBC07113F9851914A9D5\n-D0E09C2BFDDAF10C5D8208E8329BC0C402F231CD84C95EFDD182AD9756662110\n-274650C7A5BB0D8EFA54EC6C5A49C0EB26701A54779AE8EFBBED824262761602\n-680EDFB38F0FE18C0F501F5AA8BF48A8F0DD3E5E1EBEB872F6F6B23964707B32\n-507FC677B9FDDC990E3828B06420F6F968B2F6AE81E76A2144B1ECE905485616\n-CFB29AC96DDE1F5039935D7E385CC13E34DD7EAF276A2EA3A8BF27FD4205AE13\n-7FE620E42F2CF231C6C8DD8EFC5A6CF081E5660D9ADD730D72D15C02B1E15FF3\n-D741D3B1EB1E666C4E562219033C1E2EF3F96E136998B2E1890395A3637A2C02\n-DE1C46AFCA8D898439F06606A2295D3F7ED6C7DB250C61B6B97A0D5EDDB9657E\n-E790B4E07540BB1026036F4A0D00E7F16FD757AD61D686620C6814B7DCEC43E8\n-FD36D9E75BA554F64548A67D9B0A26E11784E58D4357FC251D71B5D6D8BFDDE0\n-D3BF0E825DA5312C1904AF13C5905C2ADF79C357476183D2EC5A95243235E861\n-2F98D9EE77EF8F8CB3EC6BD358C5ED37DD3AF44D60575E7774BF96F1AE9DFAD1\n-F8646DEDF21D10311854726B8F7D25876BB1EF78E2442B16ED4B851816CF0A27\n-11FDFCE525002A1A7C3E62CD2A3EDE6FAADB026D2F3A46C030ADB22422CA8FF5\n-2545ED58C0D9FB5BDB55FE674301E91A75B005B86BD201D246F7ADACE50419FD\n-AC3312CAC5EB78A36F0E5F62E65AC92129CB574AAC59E0A7C1390DFC61F39D9E\n-D7036742F2F6E64D1EF8157E9CCF65F3EEDC6A8220235978B8E06EB80F649F3E\n-204CFB497F49306EA8E1F7B62305978A28F1E771ED82C6592C71022154E4062A\n-A92335EFC65D6DED9C686899FFD7AA2988740618C03C5E362E1AF352E3BE4602\n-5530C51E5FC8E9082DF79199CC91C50174000D337D86127AC807C5A3C81DDE57\n-7A68AEE7230949B925365C214D77C80E87CEE218ABC94023717EA43BA5D8A7C8\n-8A8B9BD1B767996AE33050E3D922ED0574E3579C57E4BDDAD35883806AFDF260\n-3AB5D83D451583262E580FFDB7A27D82396AF18D92B849A3F7A7E621987D5DF0\n-038F876C6E9CA47FB11AF05F0019191C5DDC5F0177AD421E94BC66D0CCB82F1F\n-93A80836284B095503752C600F72E2C89112ABFA5B76152691264103B268B3E5\n-8816724ADADB38740001A9AACE05C8AF02D72918606DC22EFC8BF0DA0FD12FFE\n-D3A09F8E28057F327BFB633E604B1EAD478637B1D9631650B314CC62D7E0E87F\n-9D3FE1FFA23BB6E3006C3E39BED52F6B0C1C651B5913878F36DA0BF776889165\n-68BA3456B40B8B471CA8FF5238E43D9113E052A2B8D2EAA2433D3F89FCA48AFB\n-5E842913E4ED6DF9623354059CD1F1707B126FED80349787C869883120183EDD\n-249185A55503FAC53898F52170D05CAC62BB742CF9702C0518AED6B27CDC401C\n-932E02143FD916703F360CB31049501B35EF3EDDFED791090D0CFA221FD1DB32\n-7D4759CE07983AE29C258C705D11E7D9481EEAAB9B6BA65CDCF0AA0057BD6FEA\n-ABBFBD3ABF2A7BFB550C3D2A16DC447384A89F3DB6D9C2DBDCA997ABE35A7706\n-633D328AECEDB5BD07070C1B96267FD73B45791DD18194F60D358091FBE88409\n-973529806F3D2C9E6E39091F90A14B560A987E0B9490B9B690FB489B8E253070\n-D7C54447BE0E0A0BFEAEFFB581DC1300E6EC382984673BF0665632404E59B5BF\n-5D5F0A1C956E618C0487751CA5DAE8A95C214F76ED756694EF273679CD2D85CB\n-949DF385BD50491649EFEFDA1574921D7460143D42A100D2C76E55F0BC\n+1B2FA10DF7E91D3BB34A1B1CE7A0015A57C813E0280D873ADB8844004B9BA1CC\n+580D3C6BDA4DC1B80B4365F1C80512453FC5316EC2D928FB731C3D6403E3C18B\n+E8424D644DF5E9A2134229C5C91CA68DB8E85BA2BB40F538F585DA6FA4037718\n+B8053EBBA1E765346BCD5BDAA6C38115D31611D8A87A2238C145F2DA2F92E4DF\n+3987BD9C4D2A3D460E8941A68B125BCD9EE4F9FD262C4C8A71F47A2C81975635\n+F1B981C274C53FA2ACCDE4C9D0A7C62D6C1EFF91CFC6712CA6A9F333C9564FCB\n+2A70F0AD715A79B10A08AB069E2A3C93BC0AED19D0CA10134B8DDDE8AF548DB2\n+3A4AAA9C29682CF135BB767DAA16169A127EB50A7EECEB6480CF56A7D0F8AC56\n+4A5090B3D75A790372886AF568D94C8165975A05BFBFDF1FFBA45F70700BB9E0\n+57F3249EF9E9C8AD9CBCF6E4FD592DC4CDD2CC7C0BC3130C1059096C657BE453\n+A2CBACE93420210E27AF56CA229BD6D982FB68B3FDC6D44478B922C4231C47EE\n+E500232F6C11D92DEB955F66DF52B92B22E7352790CC2DCBAC53965D57AC2920\n+68B7D520DE25047146EFEB06B9AD4E2A94243C7E5239F0BC2FC312B16051D52C\n+0B92C217B6B42997321AE4F8BB066754B7AA3F15069EF59224E8A442CE471AA7\n+E8049A3DD9EDA09CCEE4998998661CF7DB35E952F6C65DAEB3013951C59F3E09\n+157F313B0237876E1C0190F0473819570B8C0205AADF05D787CC00979CFB327A\n+289382B22DDA6F12804ED0ED5B179E36A995A2A59E1B66E75130DBE9109C813B\n+94403E0DEA8314A1E9DB474D7FA83C0BAFD08033E6A6215844C1D26BE15F1251\n+A1605E8DF9A9C601ED37379530BC1C82BE5463C6C711C5652BFD6262485AA9CA\n+B8C4A117593001D08D980041E2A83C190DCE8E6CD3D334E5CC19FC05DB30F7F7\n+24A305C4DBB31F0651392B99D44B4302333BDF7E326FD256DD75D309C6E73F85\n+FA71B35FD1F9BEFF4C7A1076362EEB0A85492933B6006086A7B8C1928CF2D1EE\n+FD4344409257BB802C117E739960821CD3C88BFBA5669FF16F610AD638AF3677\n+8674C985E6767253ED5769F71BEA5E9BB02A751F9E62EE2B18AC19D975FDEAE9\n+8B8822367FF177A7E850766DE99ED3366D46464612926430012212A90F8E85F4\n+4760B40D5B86B90819EE410382D22D8ED82D0B0AB00C93E10CD365F8766D1C87\n+B4A866021FB6F6AC3D250CC601989B1B8FE6B1098A48282D2CF258BF38FEE940\n+CE0141FB1344156DE7712A8F2DBF700174F12616EE17C852210D96D03E5E6635\n+D439EB6E84A383DDD32AD72DADE6F931FDBABBDC726C36081C96018FC95EAE13\n+DA1F8DBC2D8355AC9792649653225393F4A7A88F3B9443FEEB75E2C15BF93F09\n+CCBA7FABC022BE26F4C28152D5DA6D690494AD4EC0DA1B598AE12536BADF88B5\n+5E20EB452546389F57FF55459567B453AE1831C57D22FA6A4FDF441EDAFDB7FB\n+4F4B707C1FF9159C40F7B5DD519FC07815EE91B8D756B6C18500BCF47D0D9E45\n+6A2D51B6AA5AEAAC9AB2DEF7F0FDE957B6C179CBADEECAC7E9CEC248AB135EB4\n+FBF83D002FF859B574EF36C371540EF2BCFCEF5C2E7863AEDD7C3C965103453B\n+023A9CEC1D5C45B88827ADF4AE0C6746F3C7E6A944427DAEC493601019583A16\n+0F846CE00EAE89EEFF9CE68A0E1D6EBB8FDD8A45D1BF399B36A8328EC957CB8B\n+D842A56269C8C9A6B472C9E65BCBC090606B4E8A7EF4ABDEA120C9F9B3969A1C\n+2EB102925F4E155160E58000E1ADB0D19E10EFD96F6C3225EEE8FC24D122C069\n+C11F1A69DC383F7DACD2F3929BD135CE69787C6E7560AC4B683FE5D9AAFD2E89\n+EE6D95E38C9B726B416E28169A11E29559DBA9AECD714CF318FCB78F34A0E562\n+9C00FE0C6D5A848557D9A82EC2BEFCD30B5EDC0B23C5BA9F812C864394C8B9D1\n+B08BAC9CF94E70FF842306ACCFE6E39A56777C712904A3AB29FBD19275E19E06\n+B35B37CFFFCEC81CAF2D85A853663FAFCFFED1EA77064AA28C15BC94910683BC\n+D09513079DE9EE18E97CC2403DD206516D7F652A3459870757F34EEDCEF952C3\n+FE8004F4716B5BD6774E455010B0BB1E61FCD66B9F14F9BBCCF3E55A158EE96E\n+9A05BDFDDC7706D4BC28FDDC4004EF3A430C607EBDF115E0C996454D70C8BB42\n+D7C83A454B116663D648C23CE2B33365810DE2B64D4AE011BC8043BC3E05B94D\n+1700F859C6AFC6515C1C42FA104EE3E8F3FA5F80252C2E79B00ED27F675FFD09\n+B50BF7A3C63CF4856F909DF969D7DD3EA05CABDD1E71A58CFC2AB5F614B4E5E0\n+25CF92E9FB66ACEBE05DF5E033DA8AD3EE32D94C02D98DD7DA99FAB5AEA595C3\n+2987DC122F0242D76B782349E4069DE0CDD6EF4375C680CBFE4C8F24F2AE89BF\n+7785F5EA7435A91500F265022C307E8ADEAAE1C6\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n@@ -3508,16 +3495,16 @@\n 0000000000000000000000000000000000000000000000000000000000000000\n cleartomark\n {restore}if\n %%EndFont \n TeXDict begin 39158280 55380996 1000 600 600 (main.dvi)\n @start /Fa 133[50 59 4[44 44 46 2[56 62 93 31 2[31 62\n 2[51 62 50 1[54 11[86 5[84 5[42 6[80 13[56 56 56 56 2[31\n-46[{}24 99.6264 /CMBX12 rf /Fb 138[51 35 36 11[45 37[68\n-6[25 4[45 1[45 45 1[45 3[25 44[{}11 90.9091 /CMSL10 rf\n+46[{}24 99.6264 /CMBX12 rf /Fb 134[48 3[51 8[25 33[47\n+15[25 5[45 1[45 45 45 3[25 44[{}10 90.9091 /CMSL10 rf\n /Fc 141[62 4[62 7[62 20[62 80[{}4 119.552 /CMTT12 rf\n /Fd 222[91 32[71{}2 90.9091 /CMSY10 rf /Fe 132[52 123[{}1\n 90.9091 /CMBX10 rf\n %DVIPSBitmapFont: Ff tcrm1095 10.95 1\n [/Grave/Acute/Circumflex/Tilde/Dieresis/Hungarumlaut/Ring/Caron/Breve/Macron\n /Dotaccent/cedilla/ogonek/quotesinglbase.ts1 4{/.notdef}repeat\n /quotedblbase.ts1/.notdef/.notdef/twelveudash/threequartersemdash\n@@ -3612,17 +3599,17 @@\n b(to)h(the)g(old-to-new)g(v)m(ector)0 5045 y Fh(1.2)135\n b(Protot)l(yp)t(es)46 b(and)f(descriptions)g(of)g Fc(Perm)e\n Fh(metho)t(ds)0 5294 y Fj(This)25 b(section)h(con)m(tains)h(brief)e\n (descriptions)h(including)f(protot)m(yp)s(es)h(of)f(all)i(metho)s(ds)d\n (that)j(b)s(elong)e(to)h(the)g Fi(Perm)0 5407 y Fj(ob)5\n b(ject.)1927 5656 y(1)p eop end\n %%Page: 2 2\n-TeXDict begin 2 1 bop 0 100 a Fj(2)p 136 100 1175 4 v\n-1357 w Fi(PERM)29 b Fb(:)h Fg(DRAFT)h Fb(August)f(3,)h(2025)p\n-2726 100 V 0 399 a Fa(1.2.1)112 b(Basic)38 b(metho)s(ds)0\n+TeXDict begin 2 1 bop 0 100 a Fj(2)p 136 100 1233 4 v\n+1414 w Fi(PERM)30 b Fb(:)g Fg(DRAFT)g Fb(July)g(1,)h(2024)p\n+2668 100 V 0 399 a Fa(1.2.1)112 b(Basic)38 b(metho)s(ds)0\n 601 y Fj(As)d(usual,)h(there)f(are)g(four)f(basic)h(metho)s(ds)g(to)g\n (supp)s(ort)e(ob)5 b(ject)36 b(creation,)i(setting)e(default)f\n (\\014elds,)h(clearing)0 714 y(an)m(y)31 b(allo)s(cated)h(data,)f(and)f\n (free'ing)h(the)g(ob)5 b(ject.)111 965 y(1.)46 b Fi(Perm)h(*)g\n (Perm_new)f(\\()h(void)g(\\))g(;)227 1121 y Fj(This)32\n b(metho)s(d)f(simply)h(allo)s(cates)i(storage)g(for)e(the)g\n Fi(Perm)f Fj(structure)h(and)f(then)h(sets)h(the)f(default)g(\\014elds)\n@@ -3677,17 +3664,17 @@\n (*perm)f(\\))i(;)227 5251 y Fj(This)30 b(metho)s(d)g(returns)f(the)h(n)m\n (um)m(b)s(er)f(of)i(b)m(ytes)g(tak)m(en)g(b)m(y)g(this)f(ob)5\n b(ject.)227 5407 y Fg(Err)-5 b(or)34 b(che)-5 b(cking:)40\n b Fj(If)30 b Fi(perm)g Fj(is)g Fi(NULL)p Fj(,)f(an)i(error)f(message)h\n (is)g(prin)m(ted)f(and)f(the)i(program)f(exits.)p eop\n end\n %%Page: 3 3\n-TeXDict begin 3 2 bop 91 100 1175 4 v 1356 100 a Fi(PERM)29\n-b Fb(:)i Fg(DRAFT)121 b Fb(August)30 b(3,)h(2025)p 2678\n-100 V 1175 w Fj(3)111 399 y(2.)46 b Fi(int)h(Perm_checkPerm)d(\\()k\n+TeXDict begin 3 2 bop 91 100 1233 4 v 1414 100 a Fi(PERM)29\n+b Fb(:)i Fg(DRAFT)121 b Fb(July)30 b(1,)h(2024)p 2621\n+100 V 1233 w Fj(3)111 399 y(2.)46 b Fi(int)h(Perm_checkPerm)d(\\()k\n (Perm)e(*perm)h(\\))g(;)227 557 y Fj(This)39 b(metho)s(d)g(c)m(hec)m(ks)\n i(the)f(v)-5 b(alidit)m(y)41 b(of)e(the)h Fi(Perm)e Fj(ob)5\n b(ject.)69 b(If)39 b Fi(oldToNew)f Fj(is)h(presen)m(t,)j(it)e(is)g(c)m\n (hec)m(k)m(ed)227 670 y(to)c(see)f(that)g(it)h(is)f(a)g(true)f(p)s(erm)\n m(utation)h(v)m(ector,)j(i.e.,)f(a)e(one-one)h(and)e(on)m(to)i(map)e\n (from)h Fi([0,size\\))d Fj(to)227 783 y Fi([0,size\\))p\n Fj(,)d(and)h(similarly)h(for)g Fi(newToOld)d Fj(if)j(it)g(is)f(presen)m\n@@ -3747,17 +3734,17 @@\n b(metho)s(ds)0 4952 y Fj(There)30 b(are)h(the)f(usual)g(eigh)m(t)i(IO)e\n (routines.)40 b(The)30 b(\\014le)h(structure)f(of)g(a)h\n Fi(Perm)e Fj(ob)5 b(ject)31 b(is)g(simple:)0 5181 y Fi(isPresent)d\n (size)0 5294 y(oldToNew[size])e Fj(\\(if)31 b(presen)m(t\\))0\n 5407 y Fi(newToOld[size])26 b Fj(\\(if)31 b(presen)m(t\\))p\n eop end\n %%Page: 4 4\n-TeXDict begin 4 3 bop 0 100 a Fj(4)p 136 100 1175 4 v\n-1357 w Fi(PERM)29 b Fb(:)h Fg(DRAFT)h Fb(August)f(3,)h(2025)p\n-2726 100 V 111 399 a Fj(1.)46 b Fi(int)h(Perm_readFromFile)c(\\()48\n+TeXDict begin 4 3 bop 0 100 a Fj(4)p 136 100 1233 4 v\n+1414 w Fi(PERM)30 b Fb(:)g Fg(DRAFT)g Fb(July)g(1,)h(2024)p\n+2668 100 V 111 399 a Fj(1.)46 b Fi(int)h(Perm_readFromFile)c(\\()48\n b(Perm)e(*perm,)g(char)h(*fn)g(\\))g(;)227 552 y Fj(This)29\n b(metho)s(d)f(reads)h(a)g Fi(Perm)f Fj(ob)5 b(ject)30\n b(from)f(a)g(\\014le.)41 b(It)29 b(tries)g(to)h(op)s(en)e(the)i(\\014le)f\n (and)f(if)h(it)h(is)f(successful,)g(it)227 665 y(then)35\n b(calls)i Fi(Perm)p 845 665 29 4 v 33 w(readFromFormattedFile\\(\\))29\n b Fj(or)36 b Fi(Perm)p 2320 665 V 33 w(readFromBinaryFile\\(\\))p\n Fj(,)c(closes)k(the)g(\\014le)227 778 y(and)30 b(returns)f(the)i(v)-5\n@@ -3837,17 +3824,17 @@\n 34 w(writeStats\\(\\))26 b Fj(is)k(called)h(to)f(write)g(out)h(the)f\n (header)f(and)g(statistics.)43 b(The)29 b(v)-5 b(alue)31\n b Fi(1)e Fj(is)h(returned.)227 5407 y Fg(Err)-5 b(or)34\n b(che)-5 b(cking:)40 b Fj(If)30 b Fi(perm)g Fj(or)g Fi(fp)g\n Fj(are)g Fi(NULL)p Fj(,)g(an)g(error)g(message)i(is)e(prin)m(ted)g(and)\n g(zero)h(is)f(returned.)p eop end\n %%Page: 5 5\n-TeXDict begin 5 4 bop 91 100 1175 4 v 1356 100 a Fi(PERM)29\n-b Fb(:)i Fg(DRAFT)121 b Fb(August)30 b(3,)h(2025)p 2678\n-100 V 1175 w Fj(5)111 399 y(8.)46 b Fi(int)h(Perm_writeStats)d(\\()j\n+TeXDict begin 5 4 bop 91 100 1233 4 v 1414 100 a Fi(PERM)29\n+b Fb(:)i Fg(DRAFT)121 b Fb(July)30 b(1,)h(2024)p 2621\n+100 V 1233 w Fj(5)111 399 y(8.)46 b Fi(int)h(Perm_writeStats)d(\\()j\n (Perm)g(*perm,)f(FILE)h(*fp)g(\\))g(;)227 549 y Fj(This)30\n b(metho)s(d)g(writes)g(out)h(a)f(header)h(and)e(statistics)k(to)e(a)g\n (\\014le.)40 b(The)30 b(v)-5 b(alue)31 b Fi(1)f Fj(is)h(returned.)227\n 699 y Fg(Err)-5 b(or)34 b(che)-5 b(cking:)40 b Fj(If)30\n b Fi(perm)g Fj(or)g Fi(fp)g Fj(are)g Fi(NULL)p Fj(,)g(an)g(error)g\n (message)i(is)e(prin)m(ted)g(and)g(zero)h(is)f(returned.)p\n eop end\n", "details": [{"source1": "ps2ascii {}", "source2": "ps2ascii {}", "unified_diff": "@@ -14,15 +14,15 @@\n \u2022 int size : dimension of the vectors\r\n \u2022 int *newToOld : pointer to the new-to-old vector\r\n \u2022 int *oldToNew : pointer to the old-to-new vector\r\n 1.2 Prototypes and descriptions of Perm methods\r\n This section contains brief descriptions including prototypes of all methods that belong to the Perm\r\n object.\r\n 1\r\n- 2 PERM : DRAFT August 3, 2025\r\n+ 2 PERM : DRAFT July 1, 2024\r\n 1.2.1 Basic methods\r\n As usual, there are four basic methods to support object creation, setting default \ufb01elds, clearing\r\n any allocated data, and free\u2019ing the object.\r\n 1. Perm * Perm_new ( void ) ;\r\n This method simply allocates storage for the Perm structure and then sets the default \ufb01elds\r\n by a call to Perm setDefaultFields().\r\n 2. void Perm_setDefaultFields ( Perm *perm ) ;\r\n@@ -46,15 +46,15 @@\n isPresent == 3 then newToOld and newToOld are set with calls to IVinit().\r\n Error checking: If perm is NULL, or if isPresent is invalid, or if size <= 0, an error message\r\n is printed and the program exits.\r\n 1.2.3 Utility methods\r\n 1. int Perm_sizeOf ( Perm *perm ) ;\r\n This method returns the number of bytes taken by this object.\r\n Error checking: If perm is NULL, an error message is printed and the program exits.\r\n- PERM : DRAFT August 3, 2025 3\r\n+ PERM : DRAFT July 1, 2024 3\r\n 2. int Perm_checkPerm ( Perm *perm ) ;\r\n This method checks the validity of the Perm object. If oldToNew is present, it is checked\r\n to see that it is a true permutation vector, i.e., a one-one and onto map from [0,size) to\r\n [0,size), and similarly for newToOld if it is present. If the permutation vector(s) are valid,\r\n 1 is returned, otherwise 0 is returned.\r\n Error checking: If perm is NULL, an error message is printed and the program exits.\r\n 3. void Perm_fillOldToNew ( Perm *perm ) ;\r\n@@ -80,15 +80,15 @@\n compressed graph.\r\n Error checking: If perm or eqmapIV are NULL, an error message is printed and zero is returned.\r\n 1.2.4 IO methods\r\n There are the usual eight IO routines. The \ufb01le structure of a Perm object is simple:\r\n isPresent size\r\n oldToNew[size] (if present)\r\n newToOld[size] (if present)\r\n- 4 PERM : DRAFT August 3, 2025\r\n+ 4 PERM : DRAFT July 1, 2024\r\n 1. int Perm_readFromFile ( Perm *perm, char *fn ) ;\r\n This method reads a Perm object from a \ufb01le. It tries to open the \ufb01le and if it is successful, it\r\n then calls Perm readFromFormattedFile() or Perm readFromBinaryFile(), closes the \ufb01le\r\n and returns the value returned from the called routine.\r\n Error checking: If perm or fn are NULL, or if fn is not of the form *.permf (for a formatted\r\n \ufb01le) or *.permb (for a binary \ufb01le), an error message is printed and the method returns zero.\r\n 2. int Perm_readFromFormattedFile ( Perm *perm, FILE *fp ) ;\r\n@@ -117,15 +117,15 @@\n This method writes out a Perm object to a binary \ufb01le. If there are no errors in writing the\r\n data, the value 1 is returned. If an IO error is encountered from fwrite, zero is returned.\r\n Error checking: If perm or fp are NULL, an error message is printed and zero is returned.\r\n 7. int Perm_writeForHumanEye ( Perm *perm, FILE *fp ) ;\r\n This method writes out a Perm object to a \ufb01le in a human readable format. The method\r\n Perm writeStats() is called to write out the header and statistics. The value 1 is returned.\r\n Error checking: If perm or fp are NULL, an error message is printed and zero is returned.\r\n- PERM : DRAFT August 3, 2025 5\r\n+ PERM : DRAFT July 1, 2024 5\r\n 8. int Perm_writeStats ( Perm *perm, FILE *fp ) ;\r\n This method writes out a header and statistics to a \ufb01le. The value 1 is returned.\r\n Error checking: If perm or fp are NULL, an error message is printed and zero is returned.\r\n Index\r\n Perm checkPerm(), 4\r\n Perm clearData(), 3\r\n Perm compress(), 4\r\n"}]}]}, {"source1": "./usr/share/doc/spooles-doc/ReferenceManual.ps.gz", "source2": "./usr/share/doc/spooles-doc/ReferenceManual.ps.gz", "unified_diff": null, "details": [{"source1": "ReferenceManual.ps", "source2": "ReferenceManual.ps", "unified_diff": "@@ -8,15 +8,15 @@\n %%DocumentFonts: CMR17 CMBX12 CMR12 CMR8 CMR6 CMR9 CMTT9 CMBX10 CMR10\n %%+ CMR7 CMBX8\n %%DocumentPaperSizes: Letter\n %%EndComments\n %DVIPSWebPage: (www.radicaleye.com)\n %DVIPSCommandLine: dvips main -o ReferenceManual.ps\n %DVIPSParameters: dpi=600\n-%DVIPSSource: TeX output 2025.08.03:1317\n+%DVIPSSource: TeX output 2024.07.01:0659\n %%BeginProcSet: tex.pro 0 0\n %!\n /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S\n N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72\n mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0\n 0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{\n landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize\n@@ -3848,40 +3848,40 @@\n /UnderlineThickness 50 def\n end readonly def\n /Encoding 256 array\n 0 1 255 {1 index exch /.notdef put} for\n dup 44 /comma put\n dup 46 /period put\n dup 48 /zero put\n+dup 49 /one put\n dup 50 /two put\n-dup 51 /three put\n-dup 53 /five put\n+dup 52 /four put\n dup 65 /A put\n dup 67 /C put\n dup 68 /D put\n dup 74 /J put\n dup 75 /K put\n dup 80 /P put\n dup 87 /W put\n dup 97 /a put\n dup 99 /c put\n dup 100 /d put\n dup 101 /e put\n dup 102 /f put\n-dup 103 /g put\n dup 104 /h put\n dup 105 /i put\n dup 108 /l put\n dup 110 /n put\n dup 111 /o put\n dup 114 /r put\n dup 115 /s put\n dup 116 /t put\n dup 117 /u put\n dup 118 /v put\n+dup 121 /y put\n readonly def\n currentdict end\n currentfile eexec\n D9D66F633B846AB284BCF8B0411B772DE5CE3DD325E55798292D7BD972BD75FA\n 0E079529AF9C82DF72F64195C9C210DCE34528F540DA1FFD7BEBB9B40787BA93\n 51BBFB7CFC5F9152D1E5BB0AD8D016C6CFA4EB41B3C51D091C2D5440E67CFD71\n 7C56816B03B901BF4A25A07175380E50A213F877C44778B3C5AADBCC86D6E551\n@@ -4071,164 +4071,159 @@\n 1F3B4E349CD2D5A79A91D9736CE08EDEE4AE45A6A69E11DFCF84E55DC5CE9FD0\n F6B1A6A7CE4922214BC54626C9F7EBCDFC11A1E803E8EC68A11E61AF16CE3CBF\n 94872F120BEF7BA4D3748ACA6B3F7610EAE5D51CA82F4BCCF00D9A858CFC7D34\n 3A7FDA08B917FC612A24DB981FAA5D04A850FACC15AFD3C2B26568F9F24FB220\n 35A72D4B4EA59EDB47D5E9F367B8736F6D44C22FD8BA12E0CE444E054A90E7A5\n B3800ED2151A7323E8DC7E0AC665CCF4FB2E493ED419DFCD6512295863BF6420\n 603AFDBB1549DCBB90E415A7F8833E0E15EF74AFD24962AE4630C8113D8CC51C\n-5498E9B93E1F00B8B4B0038D5934B0B62A2835FF7C6825B4EF955F7E80EA4C1F\n-C1B45F3DD8F33E7DD74DEF62ECCF90D1CC0B4B353E93946651949878704288B7\n-819260C2195F7F3BE0F18DE6A8BE3115D887886278EDB470BA22F935F4E309F5\n-3AF827E474A667572C821AC79EC4C2FF38D9B79EBEAB66F2E5CCF752D5487EC0\n-8CF76DFA8DF2B1FE4304DBFB8C597E826DFA66A9997E8FA483EEFA84047D03F1\n-D67A7F405D997D7BB60455738CCED0D6BC6CB545B52AC1CFDC74BD7558878850\n-58203842939DCCE7FB1FAA5B9098CB383337A9DC8E30F9B87CB93306BAE9ACB4\n-986E62649E94FA414BD279EC8BFF8B459C4B043520DB38D8124D43A695BDF4E4\n-ED9515F1D60CD33B9340102FFBEAA8E306846CE8F46CE7CC1FE4185C78954630\n-8BA6FE63A8F456BB2166F0C077CEDBDB1BF668092F1789D87ED48133616720DC\n-B15E9DDCEDC1F1736CC3DD647B865AE847F0F6FBF0175DE59E9B0FFFFA8F3342\n-DF0AAB21A1A5AC5092843FC2FA78C6A024D44B45BF0090C353F464EAFB98F9A7\n-E253AC0CA715C4D78CEE4C0777D60BC02827B33FFF618CBDDC44D9C8ABBC41A4\n-A90D5FE23490DC5099BC8808DA6E7FF90B316CCF120C00AA6AE2F342C0A2FA3C\n-63DD92297074508819D31FFE743F4E560CD40A358BE9D68C7C6357C2A6F1D1AC\n-5E5B8C88BF2FED72F0F310D47084A2FCE4A389F013D95B03D0752BADAB27EF42\n-9E4A943AA71B50C64844139C09C971B72E0C2645FBC73F88D55F0F501317EF0E\n-F9215292582CDC572C929846FDB0CF8B4B3E7569E3005962F0339B4F151C7330\n-6957F2D0D3F78D18E6337C10744B64E6F4B93C2359A85C58CBEAF2F23C7CE91F\n-F027F0D53B3158C1920DD01B6DF2CDB8EEF2B1685D7B2A1F6026345BA11BF5E0\n-C53BD4A983F9A45E90BB73C1578FD5AA09AFB79DD2CBAA778543BF5E69985F20\n-A022F5EDF7D7FB65B962D48B5836FDCBA4BB2C8072019912842DED6E926A1233\n-B4B7856CCF08EB60C62AEB7381DB68807843B252E7964B64E43432C87D40FFC2\n-02943FDA6477D335F5A11154758E39DF72A6AB337889885EC9F813A8CE0E5521\n-89695847B9BFD83433671CD80EEFB34B4939564C1E13E05D329AEC6CA60D17B2\n-BB06070905E062516F27094E31643D73528314553891FFC61AAEBA894111891F\n-CACF6ECD7F313A15B348A63C9DF6CEC87F3A28F2FFDFBAC885FDC9B297D2B8B6\n-665E9BE08E99053D3B127360ECE32056C0AA06D4F2E0D3A9C075FF4CC97186FD\n-39AB6DCBDC4C4C02751C97237D1AAC6CA668B51654624D28C300F8CCE9E6D7D8\n-BB9A8B16530D1A0FCDCF01B2AFC57182E859D5B559654D6768D9BC729F0CA80A\n-0690362597C1A78945FF35C55DD55006DEA2FC1B2DF0F8E943F4DB90D37144DB\n-02AB91DFCA70A92BD33006E1D1B59AC3769BA9386F67A93A5ED83C22131586B5\n-772B8A2CACE0AD51EA104ECC5E53756F23D8B3FCE9AC9E1BD903A6BC5DA7E222\n-9B22A10C798AAC4BDCEBACEAB837ECDFE70719B0620D176BAF053E9774866B59\n-89F41374F992B48D155D656A335E69E15BDFBFB3F88104DF0FA5A24A8BC0CE5B\n-8DD65B20576827A087E2C86E0DD062E88D7CFF5A7AFDF83623982738E7FE1896\n-75B1EE2238B0B9ED5C884FCE0E77B930767F0AA92FCC29A878B9DFE4840DE837\n-7C7E63CB5AC14693B0A550E0143FC9944B967A71567E7207876BA2899DCEC9B7\n-F0241CC00C134E8B14CA1178A9222834D8F7A81389FED72F4268906F8445D99B\n-CE8E438B5ADBD38074C9C7BFA6E443EF7A479CC155E0287257ED518B725E08A4\n-0259903CABBB2EA9B111D1A5FF059644EE60941B1EFD90A500419708CB60A8FA\n-7D24708C30939C2E7B4988EEDE5722389DE9A04815129BFC75EB11B96607A7C9\n-75457AA74DC8237A2CB1E7C6C9314D5D0E4FF43BB1D3A98E3994C3AE82FDFA33\n-82757338591816AE94BDB9983131B9D2908B9CB1D02F918EA1F2C2B7CEB2BB32\n-8813B30EDDC8922A11206443AE4686DC92F70FFDB31274F76CFB4831811569D5\n-A340BDEAF862D348D2A606862E530C43A733CDC192D504188DC7878DB67AEAB8\n-BD03386FE1B43D46F2ABEDD0AD99834C9BB6A6A0DE06CB2DA6F3C02B9B9DBBC1\n-418A754193C26B159321EB192B734ADADE306480FFF06F2AD28A11C787B1FA8F\n-24E708E1FB3890FC7822997EA65BA1BD6327FD830A3A8081726002528C286AE8\n-F24BF2332292EB486116B94526D426DDE88FE7B5D1AA9E9C1C00A7ABF444CB76\n-A885ACA8BA0AC2B3941F5C0D640BDFF6FDDECF98819324D871420F3035574581\n-5730D5D4C437A48606B9C0FC79CE56D34192EF641C069AB668FE828FB6DF40FA\n-AE7CA7C5A664A2E57C5AC4198834D93597ADF3BAEA454561CE0120A756F246CB\n-1333CD27385B38703E987306C5DF58EC7AC078DEAAB14490FF1F29F915150712\n-C1B4A7ACE6A6AD26BCB0A03C122116FB5171CF9D2B69E9F17EB9D4E3BF9B266D\n-D5B5BBC736AF8803A921FB19C34567732F2624E4ADA0224041828809DAB00C1F\n-9B016A900EFA58BDEC47EB4E3F6B4F3C76CCFE63378FB4249FFB54BA99B0E8DD\n-8BEDDEAF101CA789169394C74354CE5558C40B7D5BC005A304CE8222E7981C7C\n-778DB66D2444C633D04984F4187C8AB378669B9B74EDF3AA8560665348548AAF\n-2A2E514AE7638C2F9DEFE212591BE4FCF9D8FB8DC1CF0965684EDD2F7113E813\n-864F242553CBB731CDCB5159D8FD40A165005691A3954EF0935C501B1F4EECDB\n-443AB25A22947FEB358CCBD9FA9C6E0ED418E1FE169F155CC948E5DB042A4F39\n-267AE2A1AA7144162FB6603EEFF3AE3EA0652B90AD2107579AF664BAB2933FBF\n-D68AC69FD73CAA5DEFB72640107EE7BFDF6DF399A4B565231EFBDF58A3E66015\n-3B9FFB0187D5D3FCCDD6FC818261C4FB52C69A1C07F9A7E8E52A32FB60CEB54D\n-E490E7DEB0AEDEFBF2E5F074A7D6F012012C920F2320E13A4AF85BDEBAFF694D\n-0DE648DBD6DEBC1360C67E33179168C0665694468514D9E1C05C3705CAA68F25\n-FCF60C5D47D1EDC162FE75747DA5A8FB6B52A0D29EAA1737140F9D2DB592BB2E\n-88463AF6470211E1A64102FC51B91FA5081A03F27DD4B4CEE6004E997292F9C0\n-F515D4B08C130FC59988D9DBE384E8DAAA2F2A5F016A9C3548F435A0C197768E\n-F3B9CFD2CC846E7D3018A2341A4CFEA151C30851A2B799C3FB309C2944635910\n-A0A72D3EA59CB68134D8811229D958F423EED37367F1211FB23C63B77B388A02\n-A03D95AF39BAD863BA6EFB4AECCABD00F05B6B7767AACC98B4A904509F3464A6\n-A06F1D05D02378EDCA81AD466D6DDE336DEED86F574BA00FA3FD03EB373BF1C6\n-AB5193F925F9908E67A4D9ED62242EE8A4BCA881EC654ECE4E88E32CC47F8A72\n-5BBB778A0AD6EEDFFB7BF111BD205219E1182FE7BE775EE5F0DEC24225977AE5\n-760E2913523701E2DB8DCB529108E8CF36DAC8E636FDE46554928E8B36CDE1AF\n-3F5C9E6EA3374EF7C2F10636A2299D1FA189D4D32AA84D6A35CCFD71A7761692\n-3B2AFD9D8251112452C18F8D5ED9E83FEE01C097704AD156C7EAADE8CCA0D197\n-B4EA0EC18D97534BD9FCCF393B226D1AC7CFA6AA8C3A38BDF547DB6C9F9F12DA\n-2CBE2C7DBB2F43C49406B9C09E2E0B4AA1305575530262EF472309247E4F75AE\n-C0B9DEBF702F336A7FDAAD175CD878E9F52B9EF8D35AE8305E90CAE289501697\n-7F6C6F2A78A166ABBC2ED263BDE122F5792CABC439D1227F1553AAA7258DC0B3\n-7231D7F47E72981BCDC7F16AD9A697F20228806C28F26333859092A2320D1476\n-2AC828F1C6F7006879140A606EF3524A56E49F10C27F35CAF712665FABCD412E\n-14374D5922012B99B373D6672DBA6FD11DF91BE1E3312195957B09149BD7F4C3\n-7ED35DC6070C7EE570B3EE106356FEBF592196F5919C516AABE1C69D957BE8A1\n-6893297DF033C281BB728A6FCB285FA5D7E21A589DBF03853D9E183A92BEF1AA\n-DB0055BCACD94D08531154E050DB50AD186088ED05B9523BDC000F3F3751097A\n-69F2A49944103FE2B507A25DFC05F0A71C77F5225EBC2010C60279931ACA0D80\n-56D495D967A8C38DD591E18D0F3EC2A186559AB15CA67AEBB9331F7798486E6F\n-A306B62414F0EF93AF4EDB0E736AAE27FB5BAE98610D1A701BCF079DFE4DF786\n-F29DA2382E09413A18CED967828E22160647C82E4313F015E4EF2CCF4B5CB319\n-0D3CC76FA2AD90E85565347CB7141B6410675B7199E65C467FC4359FDB1CDD17\n-C37F0740EBCFE06F2238D5B70C7C3F4DFB64884F08EAAE1FCF36DA7AD8796E69\n-7C95F7D32C3EF4F24DE73CD2B9071DED5FB9D0693A8FA71617F4FC5AEF40B1DF\n-208126044819A5F8BB070DB612361FE2312B402104F403CE9AFC8E342DEBAAA3\n-893AD886398A07E9DFBD7B0D65D6FD3D7177FBF8F5CB5AA8BD80D71BC1B711B1\n-8B3EA08E7EC1C3025B6A24F877A370BCC8D5E5AABB4203F7106B3EEB35021CD6\n-D1A4D11D486D08C6307A6250EDA5F613CC04836EE85E0EEB1F8789314362DFF2\n-A7053075E53191D7EE2FF03C3F66CF6DF7CAA3534758314E0BCCF843FEB9D5D8\n-5169BF218552EEE50850066E5EABB581C733946D51DBD1F82D8BFE7B5CCC440C\n-DAF68347D89D175EEF2CA16562422EBABB26D3DF10F2264A599AA715AE03A7EB\n-D8E11EA7311610B21B70AC19945D3ABB9ABC0308BA093252AE24C8959589ED38\n-BCBFF692AAE7CF6468B4DEA99ED67F20E70D51A3512906E69C90015D7326D803\n-AF5805F88AF5BE08C81A65F143A1E841D0932FD08352E5543B6AC3F8D3AE3974\n-0FAEE668661AA5EA3D7C39258321D6FDB21D072097A4151DC8A9D43A612F5378\n-645A9F67ED46FEFD09AF024E596C0C46333CF3A4C4489362C9B0B951567B8E30\n-02510B8D7A0E22949FAEEE7F0DA7F37F818C5F9613B960B4DE84E48D4A7F9BFC\n-DA982829985174041A441D7FB39E29D4BD56D1CD223BA7C43178775B783DC36E\n-CAED3B16413D3DBC1B9E83BB236A15260414D8E83C8BB5C6198838FAC38B735B\n-E532B9ABF572B7C0D6C3A332269D42EE97F729BDCF5C43FB7CC7A8E576E23818\n-78E2D9B5FF9FDC7C3DF7350672F5840926D254EF7BB3A017F9E995C4B1159695\n-FFC8CFC5FEB60D238E958443F89C207C5228A27542E98160400907E58AB9F237\n-C5B6D71CC0F490CD386DEDDD774AE30A132BC0CBBA7A2BB5D01CAA35D1894214\n-2300891D44F1B76EBDF3A043657BE904CE64BE5505B4D6AFB8B88D4697CF9BBF\n-6717810ECB2904AB374D29760A725601C571DF95E3EBE8556A8E0F8428CDA197\n-2EFEE257AD50090CFBA943CB7E27CD2F6D8488CE4EC4CA40F1A8590279324997\n-DCD30A048289202357E9B17D22E83D463100D12CB1BF1DA2194B48B8FE91027E\n-FD42414CD6C946BC5B3780AA36CF12DD7458033EF855D9969F4176C093766008\n-41FFFC211144A09C37433C0BE3E4D5476954D12CCB34DCCD9623AAE9E8028CB6\n-386447841A7AC3288A949D91DA939336CB4FEC20AF14C3781B6AD8A6751FB00A\n-43284F367D69955E31337882ADD1C7EC8C7EDE09AFCDF3A4207AFF1EC339477B\n-7C20700E7E22A0D9FF198E40CA8A15D87FED4E86823A6EC48016D2ED0979EA71\n-11DD632753C31FD0D18209DF03B68F28C30EE2DD38B668E9CDEB723A2CDFA1D5\n-23B36F2F0A83B23CE3C08D2E837311108AE7A238258180598CD22FDEC6EDD80E\n-35450752349B2CD722FBE06C4C5BFA4C3591D88F33622FF7054C5CC65BE70172\n-84A471CD9AACDAFB145B352960E52C81DCAD2350F62953A783CDB8338BE145BB\n-68C962CB24C645A4268B85AFF351D42D6EF45CA06CC887D2D2C09F91A2D3D73F\n-7D3A57CFA4947F11F72E5EBC9FC5E30B4742B85410ABE44D786BAF3E22A48FAC\n-84E7024F202C577ED9C209A1675D0AE1FE66E899706E04A742360B23D7F8EE33\n-FE56FB2473AD1800E98BFC2390743604E3E5DC7C5CBB044483612E1E1AD51416\n-A98793ADBD582E60A2F723362F476FD9F5B026E222E5E78C3063D14227081AE8\n-B1BD4D8796CAFAFE0A12E4E8DFE87D494FC3E1288032FB447C6FC4F1882A37F5\n-E17BBF96BB32AD4316754BD5664DA35028ECBA02442C32CC4C174823B6FCC8C8\n-87847B7494B5092118058BC4292E28505A6A0F3EA0DC28C6E028EC10F5645BC8\n-125697F24A76C697F62BB89737A22D4605E10B13B58C810F6EDA9FDC2CF36CFC\n-F0F5F25DA28D3ED9851971792E4D5BB60F9049A468D69BD75F14F4CA0BAE99B6\n-1809DBD5EA68C9EB02E212BAB1CFBA91A8C4D8DE88031B4299DAD4947FED3B89\n-77C9F34115DEA1EB5DD139C76F4068EEE8425BF1FB2E960D7697878E15E9B4AA\n-BC226E308884CAC52E6C67FF1AF9B6E3C7ACF4622AB50F4D51997ECC6A6207F6\n-8D5E49C84C2C2D8EFA2686482B3544BEC006B0D160C3312CDF83DB6F1F8FB03E\n-4FA96C4175A81B3A65295EEE09FE354453D3824F1B4A298ABE746CA74769287A\n-54609B9B8422C47ACEE85C1154499C88614FB183DE9A968F008698AADA91528B\n-8AB4197EAEF9FF955C9CB2F99462860A848B2A48AF16D82D821202682F852025\n-219C9A81076112E71623D555BC5B7CB1AAD3C74C84DF77D79EDD6E68DB55C200\n-61CB85207E0DE01DE8AB67358FB687FC4C87A57AF776BE165B71FB511B512AA4\n-DD713D8E78251241BBB96A5215CC4225304D5ECFD001C9D54F421C5F2AA95E5E\n-FD0A2073D4278AA317B78AA29C343EE8E87F7FBCD2FB6469F118BE438434D390\n-D3C44F43D1\n+5498E9B93E1F00B8B4B0038D5934B0B62A2835FF7C6825B4EF955F65A05B5DE0\n+0FD231967AEF5E1D41A836820FD0554C5C298CC63DFC776D34571C1DDA0E323F\n+EAE4AAB657F37138E6D65FFEA8CA8DA750FAB32B890A7D9CB9A10B3BC4218438\n+B929D3AF76AD098EF3CD6C33E0FFE5F4AF4B4ED5280514C122FEAFB0975DCE4F\n+86DB1D89B4F076676C82A83FD2347A6BBBA2831A04BAC09FFB09F4BE4827886B\n+4B19B4475D107259F34C2EADE01FAAEF9A6CEBF916B858BB25B5AD26AAB48F88\n+86F8A9535215F5ED7F9A0E5B3DB599D028F16257EA6C2C9A8FB35C060A3D3427\n+60DDEEA769D7B70B8A3AEE2C1FC49F5F762A55D0F9A25BA978025E27A84C3A9F\n+855761F506B5D4FB70E391C6B407F0CBD964BD43FCECD57EFC80A65359420829\n+9E10376EF43CE66641B9C290205017754BECDAAF4038A6BC6EFC071AE01994A1\n+D2DB43A49B7E5841354EA2E19B1601773885561372987C15F200CE20DDED5C82\n+2E211494165F0DBFB7707A5DC4EE08223AA53E50AC09BD3638AAED6ADBAE7A44\n+B6AA0DA413ABD4D8E445351FE4D15EDE377605485F2CB4B1DD937AD936E16745\n+68E23110DF9BCD2D058CBD644FD62DF60E402EDE52FC14309701D9E865EFBBC9\n+E4B8F651D50913AFEE2448F1AB9388963EA40E702874DEAFFD153C9174CB181E\n+79D1CCADBBB256F7F8B356F91BC3A48A03979189210AC1D64425F7B722245B92\n+E498DCB7BE61B2626D6DA7A1D65C036E23BD73C610B2ADEA63FBB19325E587B7\n+AC65C05435FD7227920C260922234F52560DCDCBBD3F3123ADD743E4161450B3\n+BCD62A329E2A5040F399AC4BEBE468488C80FE8C29C9415989802958FDCE13D4\n+0455565ADAEA4528AC7598A15E1C859A8DE7F8946E23264C3F1F862606FE0CF7\n+6D88D5A9B9DB08465390345C357F253C98B81FBEFC2B888C141288ADEC5858B4\n+110D3EB61980EB3855DF98B90C3AC9AD11247CB25D83544590313A896A3E829C\n+EBCE6708A340491C1F5BBDC9573724E8115C3BA1B6A9B68D311E5F2546A41E96\n+CF206A695C142D1879307A7E5B0769866CA1D5ECCEE8A4F248ECA4DABDC77B15\n+A4AAAFF2E344BCB5F6E8F66507745D0D2FD8ECAE114467E7775A58D5D926D76B\n+32A9A08927D9CB6B49EC87580398C118AB1864407E71CD8A246AB44B9356A104\n+2FA515800B5637B97E68AC89FD1274B01E3DADE2C011B4B8D0E3A909C0267227\n+E53E69F166765A88599356C81A55C6427FB2E64C65B4BBA3F985D720422B66E0\n+52ED7BBE73345C5B9FCADAB8C2D9EFB6DD483657AB8B321227211DDE539954F1\n+0641FE3232618EDD6F16F8E392073E1D454C07A2FE1850EF0F4C4E5CC91FEDFD\n+C575B41DE40FC850F6528678B30732FA6788288E3A7736750196430EB628A39F\n+45A3CF1B455F14CC025DEFDA24FD68D6DB6DA7CCABA57472FD6DB882B6D5BA57\n+08C95687347A6863BD08162FFB37EB430309B89B8D992FE33623883ECB057F7D\n+FC32B904C6B64F197404A6DDFAFBDC8EE574452C2BD19BB82639EE45CC154404\n+DB54FB8C82E6A854096E54E70F292C47CABA266128BF3CADEE7E8C9564EBEEC0\n+BDCBFCDE71EB41827E5ACF4E59C4D245F4EAA7159EA82E0B0F1C758A2D18EE29\n+310224154BAA0299A83998E595E3BA05BC258E14F5DE2549DC38AB2E2C49ED0F\n+F0EA15A3276EABE4042FD991BEA1EA74B9E135A76ED8FA1920E92F1FA7262570\n+A251236BBDA7C4BCBFE475426AC0DDD59135380E2D0829D19CA8B77EF84B0918\n+5242F4F2A2A623CCBC4AAC94574B5A4483E11C5455DF1A78926F4B71A7703238\n+D82A8BD1C80CD6A9242B51FFE6426311C29E44EEBE220DC07DA78EF8AC3DA84E\n+A350C6259EE7B5EF5B7C6836F4B35B859C237826B7F9693EB923666E750E158D\n+72AD992FE616556454907170A4DCB23A17E026F1846C1D301039CF9892E51D0D\n+B5C966AE026C8DDF54266ED7E02E567169B14D6A9B15E6493FC0947E9365C93B\n+9CCB671BBF64B53FDE3209B5662DF9F4F8443174880E8E9760402DC446DAF1AC\n+F2EC27EA837EDAF9DBBFC0E33FFCC52E066C75E3F67D2E60BB6983CC1E745046\n+3A20CB925A76C6D37C89631D69F58FE2A5C67E8B4A842185177CA36D81FD51A0\n+5B37788B3F8C0D6B555537B0BDE6E6DF58600D1BC86390EE9DF02D33FA33D620\n+EC65610DA6D8C3DD2CDA91D8457E735F0460A2C374B44120EA19DA22D446F8BB\n+13C189FF50C86747743080E423A46F3979620660497F70893A8A70CC4BA40CC9\n+E2137B5D52D55A8ADE727299D3B4157FD1CFB3C319423562E017230CCF69E32A\n+9624E4CD0DA08E20A4936A254C5377E939F01484D9940566C3D4EF8806985AF6\n+2092E6BB69BB7961AFD71FBCE3796D67DD7629965733469AC9FF29586F3F002B\n+615F7696A11515F0E74FF599EE0270C57263C96AD8075029F861E5C97F6612A3\n+637CFFD3350C0C31226D37438A24855B41C1271FB30A4B3AB0B323C2F4D9F1CA\n+988EF7740FAD8C3AA96C412783917C7140FCADCC98A1C2FC24703B1AE3D653BB\n+8544B37574700E6214BDA0F9DA0C904C2626B144D829F0493CC0072C3E2EBD67\n+22E02015FFA6C7C91C69454CF929A55598864C1C712A2310AF680384FF6D2044\n+73EEDA0E08419626D42F4B70C1D8B36FCF96FEEE280375AF44775EE17A8E55D7\n+0735018DF7344C642B96C00C42B847D7107C57B85872C85BF7D9A72187DE3C44\n+39B84BEF9988C7611B6007BCEE754ECCF4C0DB7D26DE5F7A7A53FA060A544E8B\n+9F22DB079D3551292F061FFBE6A0861109AF8A05C62D4B77429FBEE01B04A8C1\n+0E85700B51A8673E7BE02BB07F5D800CACD5929A4776E88C40AD00A881E8F58E\n+5AD3EF69DF359AD560DB7AE0C6FCE148FD47825A01A5D9EB108EF6387113A132\n+28713703295DB66F96DD35F18960234393B9F2BD1029E251AA6E67B2D3A0D38F\n+EC6359AAA5FE3C2B45D4B5FD025689536C0408FF12D06A00AA0A62FBB36327C8\n+23D5E4BBC748A35DE6F92652F93894A463C8051BC07EBA210546A73226EC35A3\n+F887CD4C61E68242F0EEBE6D4CB3EF2C2D1D8F89AE59A79231C591CE8A4B1A88\n+34B710A68E7B2AA85BA81FBFD5F6CD890ACA8BA821BE7F89FC67EB57A83FA94A\n+0FC114106B8CFB613064C460BE315741DBC146AFB27C32BD7A9F01548CD32D78\n+89C2E2C949BDDE5DDA7DD5708A1783C61342B0648DCFECD2648A2D78EC187C4E\n+021A9DABD3D72FB5A8FD79046C32D1B3816DCBB197032D1F855BF0A3996D9F77\n+078D041E9605EA64E657D615A4B429986501367D3FB7AA1EC4EAF38C17BD878F\n+7C35942E2487A5C6EC10428EE37B365FA8EC06238B9938AD3654CFE9B6E6B606\n+EC7625418C6E2F9F2D5035677DB7466631822AF1182937675558CFEE55475F01\n+F1F33E326DC15C5D5400C7310BD82DBA8934C2074E8220B0E056666D865AD4FD\n+4DB6174BB019B9C515A0E4CEF6D5AFE62E0E033259ABB0E8ADC4B6B807763308\n+4A78BF3F435B52A68FA9A0F8A81CE52FD92CBE526A7C1431E2F3AE175B893292\n+37C1BADCD75138D64AC5CC8821B070E435D5B39D179484F9D35CBD63402A6B1B\n+E5C0A33C29CF6F7AAD22EA430D9B0504D4D5FDAC0656F34154DFA0CE94A8DFB5\n+0016252ABF35CDC46D944D69C6DCC6E74839191BAE88A752A840D4949BEC3DB7\n+095B6E2080B074BCAF74E659E618A015FC94470A2BA85A022C283007994EF06B\n+AF1DF31023D26EFDB8CBF1D255FD594CCA8E66147B03E159ACFEFD6748824932\n+05553323B053B3F5FE912C676267C196CDEAF30EE359EA6416D91CC2517B707D\n+81C7C78595792D1BF219523A9591B76025609DEE0C41259DAA5B7ED50623A6DC\n+0CD962C5706454961D4ECCB22E11B5E0FAB804CBCC1B29EB748390FB452F3DAE\n+5CEF0D5AC70A81786A6A3EEC09C452757893FE64D32507725E28EC16EA3BCEF1\n+000708906D81DA097AE14CBA96D5F01AEF15E06434D14692A8ECA9AAE3144A50\n+FB41D9A0972F205404FC504E99F4376BBBFB1CABE695D228B897C0CFD30427DB\n+FC15D7F854019B7B472C82498AF19370997E178EEF7F6F1D06CB4082DA339889\n+85B934452FC55D1A606DF69C006906EFAE04EC52C52383F12D75181F9F174A55\n+79C3C04F88A8B8789081BE1D709CE640E4576F6BBFFCC27F21CC8EB66C916CFE\n+A2E24FC153A89118E7BDDCCFCBCD32366C9026A18AB3D2E71D4C25EEC8158472\n+8690A8B20B95D9490519555F256453852AD42568F7F2720C2D83ABA258854883\n+C81FD3C556207AE2383D4BA8D8C7D9180E8D1DE4F68464033D6CA17CBE3F9775\n+0934A8AACC0E129B8BEA3AA8F03A0F4BECB4D426B48D920D4E0FCBA6714C5AB2\n+44447429997694D185A67DA64CE43E903AA65B017D3E084BFEBD2949D5284A8D\n+CCBECC6A7200579BC0C80120C34F1FEF83880B6C9534F8C2E72D6D21F29EAF94\n+E4DBC676EFAE2812B0167E8FC73068420ABE70B4F88BAC4A4D4D50C0AD9FEC2A\n+3BF95019BE1550209B74B1C7F8A476D7146DF8D13B00BD619BCCD928D4192F36\n+FDEED9A4819C320F85480F6CF097A459A47E46830BB97EC2EBD48D38466A3F7A\n+5A69D870B7E27FEC741DA1EC08DCFFE607B1CCA8F1BBC357CEEE1459EBC38203\n+09C62418867D83E3A3E907AFED11AF4C5D297860A35F6D901C65F9E601AB3D69\n+008BEA50D82E2E6F150673B6DFB206B02534395320867757395FBCD3F69C1F56\n+A8E55BE053A4C51883A9252313702EF641D707E80CC1A031EDFB08EA5E65DB12\n+494882452EDB6FE1DA362E40AC61A19775DEBFD424B0BDA59D52D84DD86EE6FB\n+3E6C3AF880E43D7DEFA5D6DA8D87B12D0518E982E656EA9B629C8EB7206EC7E9\n+6B78FD74D1669707AC6BD66ADC8FCB4DC5C6A53793CCD77E15525D9EEAD714FA\n+353F98F4D87264B69913258646DE67430565B1D159110D65326EB9559546903F\n+D8A34BFB537277CA704451563018B005EE9AF4D605C150BE014277A3524BDAFD\n+22140CFA652AE78C58028ACB24376E2C71F56E21D085BF8DC323D69B9A4D3AB9\n+76D22B9E77833D6D5C46E0E5D66D4A2F590713122385B9685AB41B2EBC7A6A30\n+064B6E958B348BFF7C4C43FB9CE278675E2C45F3005DA9DE676E0176BD44FD89\n+A38CEEAAC1C89ED44F53CC954AF6A64E2C5D1372F9E76401FA817C6F9CE5C4C8\n+0722F172E5D2C42222F23B4F3088E7E68C45E6F5C6B81AFE5AC7EA47FCDDEE4E\n+11AD928D8E5ADE9872E5F34B82698EA8FCF907F62D14ABC1FAE1DE4C504C61D2\n+BDC7631B22F3ACE933EB4100248E7860AF05DE4D8DF15AA0F361F43D04C2EA98\n+77412FBFF24B1E8791DB7589418D3B3D87858025FEC486AB96AE05A11297AC77\n+EFA3097E9A3D10D88018E2F1C8CC33F1F59B56B1C6384E2A1DB1B84E6D4E95A1\n+6243963EBEDA2B1664AE769409A8B5B545871F673125A24B3CE4B44E3BFCADEC\n+962BAE998A1682959C3C89F95D9E7087E65F557950B2E2487E6B15752536A860\n+509E3EAB4EC1065581168DDB0A6A07C285AE8AA6A46BDD93EEC2036CD1A1E352\n+1D138EF3BFC59CC82574CA011EBA30668CFEDB9BD2CBE4C3DD55CC2E98FC131B\n+F6B657BB2547FF0F3C72087857CEE995C61A59A36A678E2C757D058E5FDF9C86\n+DE669746BA47514F5E649B143E0CD7A39ED22A79FB4519971B290E97104B4F09\n+6DDF282EA9F7F169F4B01F20A27216CC8AD0507DD15922DBBA13355F1EDCB778\n+36358541C2583412F5543AB1A537083D2E054504C8AD5C4DA7FABB5CEF48CA1B\n+9FF3B4808220DCE7F637B812A1427A4B3D2E13D80A6209E2042E248A874E81DD\n+0008BB8939EC8897B4CA8696D19008B8967F1046587FE575E460CEF873A900B4\n+D996FC462755FD84B550BA854F46893BC7B31BBE7873A0AA39E5E6334DA426C2\n+0147EE439B81E00C17F11F20617F3F8F849713F5F9FE73022FB69832492AEE7F\n+1FCEFDD3D960ED533CE77BAEBB55A951E6B177609D075BBF4E3C3ABBF065C7F0\n+51F580DDE486763389F2F408234392BE8F4B7BA8A2D39DF4D0C9D09CBBB6CBD2\n+A1FFD7F4C580BDCC4ED53C78A80D715FAE82426AF06CAA0E8DA40398C6248034\n+E9C7B676CB4CCA7B5AE8E71C14D04E28B2A3B63B8A3328A899D77C1299B71C2E\n+0DEC3C51EC3F85254493A27C5E9CD1DF0E339DF8F8F2B19E1A3C13EB881250C8\n+C0BF27D9F47AE48358B913B5C933C4D34A211A75DF587F8A996F76B89B0ED686\n+215DABCACC974671615EB798BCC15CB3EABEBF2B97409120EC2A4CF15AC9D65F\n+8B926AB29193ACA028D8F7121D39B34304BD89DAC85AF4B30738F57218685D00\n+4103FAD12A24DEE61A8863E5127CA00391D7B52B53DA81951AE20256D11D749B\n+E53D45F723202B728F2352F9190B23B5375281705D85AE5B9BAAB2B75EF6AC82\n+7D6D725F2532AC9FA81C55EF7A079CB29380E1A3BFD9D536FB27DA53325A04D4\n+779FC7B0BC29C3654A51B5B62DF863735D0AF30AD3098C0FA25B7AC3DA9A8A2A\n+3CF7975A28E95A3F1AD6E8E64B8F7ED4D0FE1A15E08845BFA77000B84597BDEA\n+05F05522\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n@@ -4964,17 +4959,17 @@\n 43 64 21 2[21 43 38 23 34 43 34 43 38 9[79 2[55 43 57\n 1[52 60 1[70 48 2[28 58 60 2[59 55 54 58 7[38 38 38 38\n 38 38 38 38 38 38 1[21 26 21 44[{}51 74.7198 /CMR9 rf\n /Fg 203[30 30 30 30 49[{}4 49.8132 /CMR6 rf /Fh 133[31\n 37 1[51 37 39 27 28 28 37 39 35 39 59 20 1[22 20 39 35\n 22 31 39 31 39 35 12[51 39 52 1[48 2[65 3[25 53 3[54\n 51 50 53 7[35 2[35 35 35 35 35 35 35 1[20 24 45[{}45\n-66.4176 /CMR8 rf /Fi 137[51 54 38 38 38 2[49 54 1[27\n-2[27 54 49 30 43 54 43 1[49 9[100 6[66 4[76 50 5[75 70\n-1[73 11[49 1[49 49 1[49 1[27 1[27 44[{}29 99.6264 /CMR12\n+66.4176 /CMR8 rf /Fi 134[51 2[51 54 38 38 38 2[49 54\n+1[27 2[27 54 1[30 43 54 43 1[49 9[100 6[66 4[76 50 5[75\n+70 1[73 12[49 1[49 49 49 1[27 1[27 44[{}29 99.6264 /CMR12\n rf /Fj 172[90 2[110 121 2[97 6[106 69[{}5 143.462 /CMBX12\n rf /Fk 134[70 1[96 70 73 51 52 51 70 73 66 73 111 36\n 1[40 36 73 66 40 58 73 58 73 66 12[96 73 98 2[103 1[122\n 83 6[90 3[99 6[36 7[66 3[36 1[36 44[{}35 143.462 /CMR17\n rf end\n %%EndProlog\n %%BeginSetup\n@@ -4992,30 +4987,29 @@\n TeXDict begin 1 0 bop 407 1704 a Fk(The)44 b(Reference)g(Man)l(ual)f\n (for)g Fj(SPOOLES)p Fk(,)g(Release)g(2.2:)518 1886 y(An)h(Ob)7\n b(ject)44 b(Orien)l(ted)h(Soft)l(w)l(are)e(Library)f(for)g(Solving)920\n 2069 y(Sparse)h(Linear)g(Systems)f(of)h(Equations)375\n 2459 y Fi(Clev)m(e)35 b(Ashcraft)1004 2423 y Fh(1)1297\n 2459 y Fi(Daniel)d(Pierce)1864 2423 y Fh(2)2158 2459\n y Fi(Da)m(vid)g(K.)h(W)-8 b(ah)2774 2423 y Fh(3)3066\n-2459 y Fi(Jason)33 b(W)-8 b(u)3485 2423 y Fh(4)1629 2725\n-y Fi(August)33 b(3,)f(2025)104 4280 y Fg(1)138 4312 y\n-Ff(Bo)r(eing)70 b(Shared)d(Services)i(Group,)79 b(P)-6\n-b(.)68 b(O.)g(Bo)n(x)g(24346,)81 b(Mail)70 b(Stop)d(7L-22,)80\n-b(Seattle,)f(W)-6 b(ashington)69 b(98124,)0 4403 y Fe\n-(cleve.ashcraft@boeing.com)p Ff(.)64 b(This)34 b(researc)n(h)g(w)n(as)h\n-(supp)r(orted)d(in)i(part)f(b)n(y)g(the)g(D)n(ARP)-6\n-b(A)31 b(Con)n(tract)k(D)n(ABT63-95-C-0122)0 4494 y(and)25\n-b(the)h(DoD)f(High)g(P)n(erformance)j(Computing)e(Mo)r(dernization)h\n-(Program)g(Common)f(HPC)g(Soft)n(w)n(are)h(Supp)r(ort)e(Initiativ)n(e.)\n-104 4554 y Fg(2)138 4585 y Ff(Bo)r(eing)70 b(Shared)d(Services)i\n-(Group,)79 b(P)-6 b(.)68 b(O.)g(Bo)n(x)g(24346,)81 b(Mail)70\n-b(Stop)d(7L-22,)80 b(Seattle,)f(W)-6 b(ashington)69 b(98124,)0\n-4677 y Fe(dpierce@redwood.rt.cs.boeing.)q(com)p Ff(.)79\n-b(This)39 b(researc)n(h)g(w)n(as)g(supp)r(orted)f(in)g(part)g(b)n(y)f\n-(the)h(D)n(ARP)-6 b(A)37 b(Con)n(tract)i(D)n(ABT63-)0\n+2459 y Fi(Jason)33 b(W)-8 b(u)3485 2423 y Fh(4)1691 2725\n+y Fi(July)33 b(1,)f(2024)104 4280 y Fg(1)138 4312 y Ff(Bo)r(eing)70\n+b(Shared)d(Services)i(Group,)79 b(P)-6 b(.)68 b(O.)g(Bo)n(x)g(24346,)81\n+b(Mail)70 b(Stop)d(7L-22,)80 b(Seattle,)f(W)-6 b(ashington)69\n+b(98124,)0 4403 y Fe(cleve.ashcraft@boeing.com)p Ff(.)64\n+b(This)34 b(researc)n(h)g(w)n(as)h(supp)r(orted)d(in)i(part)f(b)n(y)g\n+(the)g(D)n(ARP)-6 b(A)31 b(Con)n(tract)k(D)n(ABT63-95-C-0122)0\n+4494 y(and)25 b(the)h(DoD)f(High)g(P)n(erformance)j(Computing)e(Mo)r\n+(dernization)h(Program)g(Common)f(HPC)g(Soft)n(w)n(are)h(Supp)r(ort)e\n+(Initiativ)n(e.)104 4554 y Fg(2)138 4585 y Ff(Bo)r(eing)70\n+b(Shared)d(Services)i(Group,)79 b(P)-6 b(.)68 b(O.)g(Bo)n(x)g(24346,)81\n+b(Mail)70 b(Stop)d(7L-22,)80 b(Seattle,)f(W)-6 b(ashington)69\n+b(98124,)0 4677 y Fe(dpierce@redwood.rt.cs.boeing.)q(com)p\n+Ff(.)79 b(This)39 b(researc)n(h)g(w)n(as)g(supp)r(orted)f(in)g(part)g\n+(b)n(y)f(the)h(D)n(ARP)-6 b(A)37 b(Con)n(tract)i(D)n(ABT63-)0\n 4768 y(95-C-0122)e(and)d(the)h(DoD)f(High)h(P)n(erformance)h(Computing)\n f(Mo)r(dernization)h(Program)g(Common)g(HPC)f(Soft)n(w)n(are)h(Supp)r\n (ort)0 4859 y(Initiativ)n(e.)104 4919 y Fg(3)138 4951\n y Ff(Bo)r(eing)70 b(Shared)d(Services)i(Group,)79 b(P)-6\n b(.)68 b(O.)g(Bo)n(x)g(24346,)81 b(Mail)70 b(Stop)d(7L-22,)80\n b(Seattle,)f(W)-6 b(ashington)69 b(98124,)0 5042 y Fe\n (david.wah@pss.boeing.com)p Ff(.)k(This)37 b(researc)n(h)g(w)n(as)g\n", "details": [{"source1": "ps2ascii {}", "source2": "ps2ascii {}", "unified_diff": "@@ -1,13 +1,13 @@\n The Reference Manual for SPOOLES, Release 2.2:\r\n An Object Oriented Software Library for Solving\r\n Sparse Linear Systems of Equations\r\n 1 2 3 4\r\n Cleve Ashcraft Daniel Pierce David K. Wah Jason Wu\r\n- August 3, 2025\r\n+ July 1, 2024\r\n 1Boeing Shared Services Group, P. O. Box 24346, Mail Stop 7L-22, Seattle, Washington 98124,\r\n cleve.ashcraft@boeing.com. This research was supported in part by the DARPA Contract DABT63-95-C-0122\r\n and the DoD High Performance Computing Modernization Program Common HPC Software Support Initiative.\r\n 2Boeing Shared Services Group, P. O. Box 24346, Mail Stop 7L-22, Seattle, Washington 98124,\r\n dpierce@redwood.rt.cs.boeing.com. This research was supported in part by the DARPA Contract DABT63-\r\n 95-C-0122 and the DoD High Performance Computing Modernization Program Common HPC Software Support\r\n Initiative.\r\n"}]}]}, {"source1": "./usr/share/doc/spooles-doc/SemiImplMtx.ps.gz", "source2": "./usr/share/doc/spooles-doc/SemiImplMtx.ps.gz", "unified_diff": null, "details": [{"source1": "SemiImplMtx.ps", "source2": "SemiImplMtx.ps", "unified_diff": "@@ -11,15 +11,15 @@\n %%EndComments\n %%BeginDefaults\n %%ViewingOrientation: 1 0 0 1\n %%EndDefaults\n %DVIPSWebPage: (www.radicaleye.com)\n %DVIPSCommandLine: dvips main -o SemiImplMtx.ps\n %DVIPSParameters: dpi=600\n-%DVIPSSource: TeX output 2025.08.03:1317\n+%DVIPSSource: TeX output 2024.07.01:0700\n %%BeginProcSet: tex.pro 0 0\n %!\n /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S\n N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72\n mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0\n 0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{\n landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize\n@@ -1199,23 +1199,22 @@\n /UnderlinePosition -100 def\n /UnderlineThickness 50 def\n end readonly def\n /Encoding 256 array\n 0 1 255 {1 index exch /.notdef put} for\n dup 44 /comma put\n dup 48 /zero put\n+dup 49 /one put\n dup 50 /two put\n-dup 51 /three put\n-dup 53 /five put\n+dup 52 /four put\n dup 58 /colon put\n-dup 65 /A put\n-dup 103 /g put\n-dup 115 /s put\n-dup 116 /t put\n+dup 74 /J put\n+dup 108 /l put\n dup 117 /u put\n+dup 121 /y put\n readonly def\n currentdict end\n currentfile eexec\n D9D66F633B846AB284BCF8B0411B772DE5CE32340DC6F28AF40857E4451976E7\n 5182433CF9F333A38BD841C0D4E68BF9E012EB32A8FFB76B5816306B5EDF7C99\n 8B3A16D9B4BC056662E32C7CD0123DFAEB734C7532E64BBFBF5A60336E646716\n EFB852C877F440D329172C71F1E5D59CE9473C26B8AEF7AD68EF0727B6EC2E0C\n@@ -1396,79 +1395,67 @@\n 7CA1534C4D5B05FC33F83790ECFD7641DF3FB94289E2A1F6E7D29AB1228A867A\n 6E1EF0E9C6F899B491DC18401C2C0A05FFFED46A72C245F7529B8EA55A038082\n 8512307217D2A233C37004085BA3AEE379269F9FA7D0ADB4B19A95CC2AFE686E\n 55D88E47257C1FE6F235FEA295910569FE6DD5995512562359CC821E85A6C7A5\n 79B470A9E340A6985189FF8B6AF914A6B0ECF93F47903221F95DE894A8F05B05\n B7D99CD533EC5F931B18E6B39BECF67FA2D6DD1AEC76772B068BE06335A94C05\n 7A4DDEE77B66101DA855C17AC312600370B34E31F5EC3A01300A8EB60B4C9767\n-1B2FA10DF7E91D3BB34A1B1CE7A0015A57C813E0280D873ADB88440048702D1F\n-77994EE04EC3B4531D6E1888C86A8F0DA6CF1F056F16AB0DD76C862830F89DA4\n-28923B3AA543E0D6E41D3BD283E600BC11F889315EE92C675C109C81065ED1BC\n-82A5583D1B723D50051B0557A367887F5B263014C6E77288B4883C50889473D3\n-3787BAD4BEB88BD1353AFA5B73E61814819537E7FF09F53EF94792BB3DD36ED0\n-002D0E7A6CDAB85A9C17AF5664BCB5A71663B861880F3ECCABC8E7A2FC81A4CC\n-AE7A87503FDC1CE0077BA51ECC7B43B60793FED8E9AAD5BBD03ADD6183DCD26D\n-24A74163611C05562437644EF9B8889FD4F9D311911204FEFD35237486F2D2D0\n-B6783A03BF12EA6D19D6D0F87E4D08515F12F9CBF1961CAA71E0D69FE3C4C4D2\n-7C7FB64ED24F8684C8F00C2BEDEA53EA390CDC0B5BEBD7DD982580B2EA1F1F89\n-CFED5916630DC2BA32BB9180277E1ABC339B3B7DE086717BD93F7FF3681BA5B3\n-FCF671C4B293C2DE4A322F0AA3323A4934444C69F23EF90120B8755482757759\n-C457A435FB8BB4922BD92C5F3D9555D978275C510183E29DFF2FCE4ABBFC18DE\n-76CAD3B486BA12047DD808CD4D521A0FD368E4AE79DE262630983A5D6F0B679D\n-2F005306393C520E1B6987302D029939D94B0178DC55D5264E1FEA468AD4134C\n-8C65B2FBBE8DE8284E8E1F6BFE0B648F44D3DA8E9350D266EDBFD4A7054D9355\n-1E0B185DED37BCF32D3731358F1D707C94109428BAD3CEA456A2A43553E3D2C2\n-F549189201F3D3F715310E3E8C6A2E9AA5141AA9125D203694C7D875C2DD320F\n-C5BCDFC924F6C04DBC7A97349B45ECD0FBD7D2123ED1D3A9F440B1112BE62779\n-47A4592F9285CBD9635EC9091CEC0AFD7E6B6976974081DB9C0E43165BD8584D\n-6CDF08DED287F0883A9FBD351B3F8706BA1E94C7CA487338269482EB8DC1A05D\n-F6632A5D834DE29228C49C5BA65EF7C535A53B380BF4B391F43562147538EE97\n-E799DFC2C40315859F56BBCE9CAE1DF9293F6E2C193ABE7A724EC8F32FA220E7\n-6026877A63E318254F2AF7B1325D63FC4C52B536D3EF354814C2F8F1EEA30569\n-6EF04447DB0F809DF35B4985B9FB4F4BB6087310BE633E76F268B32ABA99CE8E\n-03163DFF4AEDB88E60DD0848C15E90026D7C24D81122EBC07113F9851914A9D5\n-D0E09C2BFDDAF10C5D8208E8329BC0C402F231CD84C95EFDD182AD9756662110\n-274650C7A5BB0D8EFA54EC6C5A49C0EB26701A54779AE8EFBBED824262761602\n-680EDFB38F0FE18C0F501F5AA8BF48A8F0DD3E5E1EBEB872F6F6B23964707B32\n-507FC677B9FDDC990E3828B06420F6F968B2F6AE81E76A2144B1ECE905485616\n-CFB29AC96DDE1F5039935D7E385CC13E34DD7EAF276A2EA3A8BF27FD4205AE13\n-7FE620E42F2CF231C6C8DD8EFC5A6CF081E5660D9ADD730D72D15C02B1E15FF3\n-D741D3B1EB1E666C4E562219033C1E2EF3F96E136998B2E1890395A3637A2C02\n-DE1C46AFCA8D898439F06606A2295D3F7ED6C7DB250C61B6B97A0D5EDDB9657E\n-E790B4E07540BB1026036F4A0D00E7F16FD757AD61D686620C6814B7DCEC43E8\n-FD36D9E75BA554F64548A67D9B0A26E11784E58D4357FC251D71B5D6D8BFDDE0\n-D3BF0E825DA5312C1904AF13C5905C2ADF79C357476183D2EC5A95243235E861\n-2F98D9EE77EF8F8CB3EC6BD358C5ED37DD3AF44D60575E7774BF96F1AE9DFAD1\n-F8646DEDF21D10311854726B8F7D25876BB1EF78E2442B16ED4B851816CF0A27\n-11FDFCE525002A1A7C3E62CD2A3EDE6FAADB026D2F3A46C030ADB22422CA8FF5\n-2545ED58C0D9FB5BDB55FE674301E91A75B005B86BD201D246F7ADACE50419FD\n-AC3312CAC5EB78A36F0E5F62E65AC92129CB574AAC59E0A7C1390DFC61F39D9E\n-D7036742F2F6E64D1EF8157E9CCF65F3EEDC6A8220235978B8E06EB80F649F3E\n-204CFB497F49306EA8E1F7B62305978A28F1E771ED82C6592C71022154E4062A\n-A92335EFC65D6DED9C686899FFD7AA2988740618C03C5E362E1AF352E3BE4602\n-5530C51E5FC8E9082DF79199CC91C50174000D337D86127AC807C5A3C81DDE57\n-7A68AEE7230949B925365C214D77C80E87CEE218ABC94023717EA43BA5D8A7C8\n-8A8B9BD1B767996AE33050E3D922ED0574E3579C57E4BDDAD35883806AFDF260\n-3AB5D83D451583262E580FFDB7A27D82396AF18D92B849A3F7A7E621987D5DF0\n-038F876C6E9CA47FB11AF05F0019191C5DDC5F0177AD421E94BC66D0CCB82F1F\n-93A80836284B095503752C600F72E2C89112ABFA5B76152691264103B268B3E5\n-8816724ADADB38740001A9AACE05C8AF02D72918606DC22EFC8BF0DA0FD12FFE\n-D3A09F8E28057F327BFB633E604B1EAD478637B1D9631650B314CC62D7E0E87F\n-9D3FE1FFA23BB6E3006C3E39BED52F6B0C1C651B5913878F36DA0BF776889165\n-68BA3456B40B8B471CA8FF5238E43D9113E052A2B8D2EAA2433D3F89FCA48AFB\n-5E842913E4ED6DF9623354059CD1F1707B126FED80349787C869883120183EDD\n-249185A55503FAC53898F52170D05CAC62BB742CF9702C0518AED6B27CDC401C\n-932E02143FD916703F360CB31049501B35EF3EDDFED791090D0CFA221FD1DB32\n-7D4759CE07983AE29C258C705D11E7D9481EEAAB9B6BA65CDCF0AA0057BD6FEA\n-ABBFBD3ABF2A7BFB550C3D2A16DC447384A89F3DB6D9C2DBDCA997ABE35A7706\n-633D328AECEDB5BD07070C1B96267FD73B45791DD18194F60D358091FBE88409\n-973529806F3D2C9E6E39091F90A14B560A987E0B9490B9B690FB489B8E253070\n-D7C54447BE0E0A0BFEAEFFB581DC1300E6EC382984673BF0665632404E59B5BF\n-5D5F0A1C956E618C0487751CA5DAE8A95C214F76ED756694EF273679CD2D85CB\n-949DF385BD50491649EFEFDA1574921D7460143D42A100D2C76E55F0BC\n+1B2FA10DF7E91D3BB34A1B1CE7A0015A57C813E0280D873ADB8844004B9BA1CC\n+580D3C6BDA4DC1B80B4365F1C80512453FC5316EC2D928FB731C3D6403E3C18B\n+E8424D644DF5E9A2134229C5C91CA68DB8E85BA2BB40F538F585DA6FA4037718\n+B8053EBBA1E765346BCD5BDAA6C38115D31611D8A87A2238C145F2DA2F92E4DF\n+3987BD9C4D2A3D460E8941A68B125BCD9EE4F9FD262C4C8A71F47A2C81975635\n+F1B981C274C53FA2ACCDE4C9D0A7C62D6C1EFF91CFC6712CA6A9F333C9564FCB\n+2A70F0AD715A79B10A08AB069E2A3C93BC0AED19D0CA10134B8DDDE8AF548DB2\n+3A4AAA9C29682CF135BB767DAA16169A127EB50A7EECEB6480CF56A7D0F8AC56\n+4A5090B3D75A790372886AF568D94C8165975A05BFBFDF1FFBA45F70700BB9E0\n+57F3249EF9E9C8AD9CBCF6E4FD592DC4CDD2CC7C0BC3130C1059096C657BE453\n+A2CBACE93420210E27AF56CA229BD6D982FB68B3FDC6D44478B922C4231C47EE\n+E500232F6C11D92DEB955F66DF52B92B22E7352790CC2DCBAC53965D57AC2920\n+68B7D520DE25047146EFEB06B9AD4E2A94243C7E5239F0BC2FC312B16051D52C\n+0B92C217B6B42997321AE4F8BB066754B7AA3F15069EF59224E8A442CE471AA7\n+E8049A3DD9EDA09CCEE4998998661CF7DB35E952F6C65DAEB3013951C59F3E09\n+157F313B0237876E1C0190F0473819570B8C0205AADF05D787CC00979CFB327A\n+289382B22DDA6F12804ED0ED5B179E36A995A2A59E1B66E75130DBE9109C813B\n+94403E0DEA8314A1E9DB474D7FA83C0BAFD08033E6A6215844C1D26BE15F1251\n+A1605E8DF9A9C601ED37379530BC1C82BE5463C6C711C5652BFD6262485AA9CA\n+B8C4A117593001D08D980041E2A83C190DCE8E6CD3D334E5CC19FC05DB30F7F7\n+24A305C4DBB31F0651392B99D44B4302333BDF7E326FD256DD75D309C6E73F85\n+FA71B35FD1F9BEFF4C7A1076362EEB0A85492933B6006086A7B8C1928CF2D1EE\n+FD4344409257BB802C117E739960821CD3C88BFBA5669FF16F610AD638AF3677\n+8674C985E6767253ED5769F71BEA5E9BB02A751F9E62EE2B18AC19D975FDEAE9\n+8B8822367FF177A7E850766DE99ED3366D46464612926430012212A90F8E85F4\n+4760B40D5B86B90819EE410382D22D8ED82D0B0AB00C93E10CD365F8766D1C87\n+B4A866021FB6F6AC3D250CC601989B1B8FE6B1098A48282D2CF258BF38FEE940\n+CE0141FB1344156DE7712A8F2DBF700174F12616EE17C852210D96D03E5E6635\n+D439EB6E84A383DDD32AD72DADE6F931FDBABBDC726C36081C96018FC95EAE13\n+DA1F8DBC2D8355AC9792649653225393F4A7A88F3B9443FEEB75E2C15BF93F09\n+CCBA7FABC022BE26F4C28152D5DA6D690494AD4EC0DA1B598AE12536BADF88B5\n+5E20EB452546389F57FF55459567B453AE1831C57D22FA6A4FDF441EDAFDB7FB\n+4F4B707C1FF9159C40F7B5DD519FC07815EE91B8D756B6C18500BCF47D0D9E45\n+6A2D51B6AA5AEAAC9AB2DEF7F0FDE957B6C179CBADEECAC7E9CEC248AB135EB4\n+FBF83D002FF859B574EF36C371540EF2BCFCEF5C2E7863AEDD7C3C965103453B\n+023A9CEC1D5C45B88827ADF4AE0C6746F3C7E6A944427DAEC493601019583A16\n+0F846CE00EAE89EEFF9CE68A0E1D6EBB8FDD8A45D1BF399B36A8328EC957CB8B\n+D842A56269C8C9A6B472C9E65BCBC090606B4E8A7EF4ABDEA120C9F9B3969A1C\n+2EB102925F4E155160E58000E1ADB0D19E10EFD96F6C3225EEE8FC24D122C069\n+C11F1A69DC383F7DACD2F3929BD135CE69787C6E7560AC4B683FE5D9AAFD2E89\n+EE6D95E38C9B726B416E28169A11E29559DBA9AECD714CF318FCB78F34A0E562\n+9C00FE0C6D5A848557D9A82EC2BEFCD30B5EDC0B23C5BA9F812C864394C8B9D1\n+B08BAC9CF94E70FF842306ACCFE6E39A56777C712904A3AB29FBD19275E19E06\n+B35B37CFFFCEC81CAF2D85A853663FAFCFFED1EA77064AA28C15BC94910683BC\n+D09513079DE9EE18E97CC2403DD206516D7F652A3459870757F34EEDCEF952C3\n+FE8004F4716B5BD6774E455010B0BB1E61FCD66B9F14F9BBCCF3E55A158EE96E\n+9A05BDFDDC7706D4BC28FDDC4004EF3A430C607EBDF115E0C996454D70C8BB42\n+D7C83A454B116663D648C23CE2B33365810DE2B64D4AE011BC8043BC3E05B94D\n+1700F859C6AFC6515C1C42FA104EE3E8F3FA5F80252C2E79B00ED27F675FFD09\n+B50BF7A3C63CF4856F909DF969D7DD3EA05CABDD1E71A58CFC2AB5F614B4E5E0\n+25CF92E9FB66ACEBE05DF5E033DA8AD3EE32D94C02D98DD7DA99FAB5AEA595C3\n+2987DC122F0242D76B782349E4069DE0CDD6EF4375C680CBFE4C8F24F2AE89BF\n+7785F5EA7435A91500F265022C307E8ADEAAE1C6\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n@@ -4838,16 +4825,16 @@\n TeXDict begin 40258437 52099151 1000 600 600 (main.dvi)\n @start /Fa 133[50 59 2[59 1[44 44 3[56 62 93 31 2[31\n 62 2[51 62 50 1[54 11[86 1[62 3[84 1[106 3[42 6[80 12[56\n 56 56 56 56 2[31 46[{}27 99.6264 /CMBX12 rf /Fb 135[62\n 3[62 3[62 2[62 62 2[62 3[62 17[62 5[62 3[62 73[{}10 119.552\n /CMTT12 rf /Fc 134[71 2[71 75 52 53 55 1[75 67 75 112\n 2[41 37 75 67 41 61 75 60 75 65 13[75 2[92 11[103 16[67\n-67 67 2[37 46[{}27 119.552 /CMBX12 rf /Fd 138[46 32 33\n-11[42 37[62 6[23 4[42 1[42 42 1[42 3[23 44[{}11 83.022\n+67 67 2[37 46[{}27 119.552 /CMBX12 rf /Fd 134[44 3[46\n+8[23 33[43 15[23 5[42 1[42 42 42 3[23 44[{}10 83.022\n /CMSL10 rf /Fe 137[38 45 28 34 35 1[42 42 47 68 21 2[25\n 3[38 42 38 1[42 12[59 1[61 11[54 1[63 2[62 6[25 12[30\n 45[{}22 83.022 /CMTI10 rf /Ff 149[23 104[23 65{}3 83.022\n /CMSY10 rf\n %DVIPSBitmapFont: Fg tcrm1000 10 1\n [/Grave/Acute/Circumflex/Tilde/Dieresis/Hungarumlaut/Ring/Caron/Breve/Macron\n /Dotaccent/cedilla/ogonek/quotesinglbase.ts1 4{/.notdef}repeat\n@@ -5033,17 +5020,17 @@\n Fn(2)p Ff(j)p Fl(D)722 5419 y Fj(1)p Fi(;)p Fj(1)812\n 5407 y Ff(j)g(\\000)g(j)p Fl(A)1021 5419 y Fj(2)p Fi(;)p\n Fj(1)1112 5407 y Ff(j)g(\\000)g(j)p Fl(A)1321 5419 y Fj(1)p\n Fi(;)p Fj(2)1412 5407 y Ff(j)p Fn(,)27 b(where)h Ff(j)18\n b(\\001)h(j)27 b Fn(denotes)h(the)g(n)n(um)n(b)r(er)f(of)g(nonzero)r(es)\n g(in)h(a)f(matrix.)1929 5656 y(1)p eop end\n %%Page: 2 2\n-TeXDict begin 2 1 bop 0 100 a Fn(2)p 125 100 1085 4 v\n-1250 w Fm(SemiImplMtx)23 b Fd(:)37 b Fe(DRAFT)27 b Fd(August)h(3,)f\n-(2025)p 2815 100 V 0 390 a Fc(1.1)135 b(Data)46 b(Structure)0\n+TeXDict begin 2 1 bop 0 100 a Fn(2)p 125 100 1138 4 v\n+1303 w Fm(SemiImplMtx)23 b Fd(:)37 b Fe(DRAFT)27 b Fd(July)g(1,)h(2024)\n+p 2763 100 V 0 390 a Fc(1.1)135 b(Data)46 b(Structure)0\n 595 y Fn(The)28 b Fm(SemiImplMtx)23 b Fn(structure)k(has)g(the)h(follo)\n n(wing)e(\\014elds.)125 776 y Fg(\\210)42 b Fm(int)g(neqns)26\n b Fn(:)36 b(n)n(um)n(b)r(er)28 b(of)f(equations.)125\n 939 y Fg(\\210)42 b Fm(int)g(type)26 b Fn(:)37 b(t)n(yp)r(e)28\n b(of)f(en)n(tries,)g Fm(SPOOLES)p 1527 939 27 4 v 29\n w(REAL)f Fn(or)g Fm(SPOOLES)p 2167 939 V 29 w(COMPLEX)p\n Fn(.)125 1101 y Fg(\\210)42 b Fm(int)g(symmetryflag)13\n@@ -5117,17 +5104,17 @@\n Fn(.)101 5145 y(3.)42 b Fm(int)g(SemiImplMtx_clea)o(rD)o(ata)37\n b(\\()43 b(SemiImplMtx)c(*mtx)j(\\))h(;)208 5276 y Fn(This)27\n b(metho)r(d)h(releases)e(all)h(storage)f(held)i(b)n(y)f(the)h(ob)5\n b(ject.)208 5407 y Fe(R)l(eturn)28 b(c)l(o)l(des:)38\n b Fm(1)27 b Fn(means)g(a)g(normal)g(return,)g Fm(-1)g\n Fn(means)g Fm(mtx)f Fn(is)i Fm(NULL)p Fn(.)p eop end\n %%Page: 3 3\n-TeXDict begin 3 2 bop 83 100 1085 4 v 1251 100 a Fm(SemiImplMtx)23\n-b Fd(:)37 b Fe(DRAFT)110 b Fd(August)28 b(3,)f(2025)p\n-2776 100 V 1085 w Fn(3)101 390 y(4.)42 b Fm(int)g(SemiImplMtx_free)37\n+TeXDict begin 3 2 bop 83 100 1138 4 v 1303 100 a Fm(SemiImplMtx)23\n+b Fd(:)37 b Fe(DRAFT)111 b Fd(July)27 b(1,)g(2024)p 2723\n+100 V 1138 w Fn(3)101 390 y(4.)42 b Fm(int)g(SemiImplMtx_free)37\n b(\\()43 b(SemiImplMtx)c(*mtx)j(\\))h(;)208 518 y Fn(This)22\n b(metho)r(d)g(releases)f(all)g(storage)g(held)h(b)n(y)g(the)g(ob)5\n b(ject)22 b(via)g(a)f(call)h(to)g Fm(SemiImplMtx)p 2968\n 518 27 4 v 27 w(clearData\\(\\))p Fn(,)d(then)j(free'd)208\n 617 y(the)28 b(storage)d(for)i(the)h(ob)5 b(ject.)208\n 745 y Fe(R)l(eturn)28 b(c)l(o)l(des:)38 b Fm(1)27 b Fn(means)g(a)g\n (normal)g(return,)g Fm(-1)g Fn(means)g Fm(mtx)f Fn(is)i\n@@ -5221,17 +5208,17 @@\n Fn(ob)5 b(jects)28 b(during)h(the)h(solv)n(e.)40 b(One)29\n b(can)g(ha)n(v)n(e)f Fm(X)g Fn(and)h Fm(B)g Fn(p)r(oin)n(t)h(to)f(the)g\n (same)g(ob)5 b(ject,)29 b(for)g(en)n(tries)208 5407 y(are)d(read)h\n (from)g Fm(B)g Fn(and)h(written)g(to)f Fm(X)p Fn(.)g(On)h(return,)f\n (the)h Fm(cpus[])d Fn(v)n(ector)h(con)n(tains)h(the)h(follo)n(wing)f\n (information.)p eop end\n %%Page: 4 4\n-TeXDict begin 4 3 bop 0 100 a Fn(4)p 125 100 1085 4 v\n-1250 w Fm(SemiImplMtx)23 b Fd(:)37 b Fe(DRAFT)27 b Fd(August)h(3,)f\n-(2025)p 2815 100 V 369 377 a Fm(cpus[0])97 b Fn(initialize)27\n+TeXDict begin 4 3 bop 0 100 a Fn(4)p 125 100 1138 4 v\n+1303 w Fm(SemiImplMtx)23 b Fd(:)37 b Fe(DRAFT)27 b Fd(July)g(1,)h(2024)\n+p 2763 100 V 369 377 a Fm(cpus[0])97 b Fn(initialize)27\n b(w)n(orking)f(matrices)369 477 y Fm(cpus[1])97 b Fn(load)27\n b(righ)n(t)f(hand)i(side)369 576 y Fm(cpus[2])97 b Fn(\\014rst)27\n b(solv)n(e)f(with)j(domains)369 676 y Fm(cpus[3])97 b\n Fn(compute)27 b(Sc)n(h)n(ur)g(righ)n(t)g(hand)h(side)369\n 775 y Fm(cpus[4])97 b Fn(Sc)n(h)n(ur)27 b(solv)n(e)2099\n 377 y Fm(cpus[5])97 b Fn(compute)27 b(domains')g(righ)n(t)g(hand)h\n (side)2099 477 y Fm(cpus[6])97 b Fn(second)27 b(solv)n(e)f(with)i\n@@ -5294,22 +5281,22 @@\n (loaded)f(with)i(random)e(en)n(tries.)50 b(The)32 b(linear)208\n 5240 y(system)27 b Fl(AX)j Fn(=)22 b Fl(B)32 b Fn(is)27\n b(solv)n(ed)g(as)g(follo)n(ws.)307 5407 y Fg(\\210)42\n b Fn(First)28 b Fl(A)g Fn(is)f(factored,)g(and)g(a)h\n Fm(FrontMtx)c Fn(ob)5 b(ject)27 b(is)h(created)f(to)g(hold)h(the)g\n (factorization.)p eop end\n %%Page: 5 5\n-TeXDict begin 5 4 bop 83 100 1085 4 v 1251 100 a Fm(SemiImplMtx)23\n-b Fd(:)37 b Fe(DRAFT)110 b Fd(August)28 b(3,)f(2025)p\n-2776 100 V 1085 w Fn(5)307 390 y Fg(\\210)42 b Fn(The)28\n-b(system)f(is)h(solv)n(ed)e(using)h(the)h Fm(FrontMtx)d\n-Fn(ob)5 b(ject.)307 523 y Fg(\\210)42 b Fn(A)28 b Fm(SemiImplMtx)23\n-b Fn(matrix)k(ob)5 b(ject)28 b(is)f(constructed)g(from)h(the)g\n-Fm(FrontMtx)c Fn(ob)5 b(ject)27 b(and)h Fl(A)p Fn(.)307\n-656 y Fg(\\210)42 b Fn(The)28 b(system)f(is)h(solv)n(ed)e(using)h(the)h\n+TeXDict begin 5 4 bop 83 100 1138 4 v 1303 100 a Fm(SemiImplMtx)23\n+b Fd(:)37 b Fe(DRAFT)111 b Fd(July)27 b(1,)g(2024)p 2723\n+100 V 1138 w Fn(5)307 390 y Fg(\\210)42 b Fn(The)28 b(system)f(is)h\n+(solv)n(ed)e(using)h(the)h Fm(FrontMtx)d Fn(ob)5 b(ject.)307\n+523 y Fg(\\210)42 b Fn(A)28 b Fm(SemiImplMtx)23 b Fn(matrix)k(ob)5\n+b(ject)28 b(is)f(constructed)g(from)h(the)g Fm(FrontMtx)c\n+Fn(ob)5 b(ject)27 b(and)h Fl(A)p Fn(.)307 656 y Fg(\\210)42\n+b Fn(The)28 b(system)f(is)h(solv)n(ed)e(using)h(the)h\n Fm(SemiImplMtx)c Fn(ob)5 b(ject.)208 822 y(V)-7 b(arious)30\n b(statistics)h(and)g(CPU)g(timings)g(are)g(written)g(to)g(the)h\n (message)e(\\014le)h(to)g(compare)f(the)i(t)n(w)n(o)e(solution)h(pro-)\n 208 922 y(cesses.)k(Use)28 b(the)g Fm(do)p 872 922 27\n 4 v 31 w(grid)e Fn(shell)h(script)g(for)h(testing.)307\n 1104 y Fg(\\210)42 b Fn(The)28 b Fm(msglvl)d Fn(parameter)h(determines)i\n (the)g(amoun)n(t)f(of)g(output.)307 1237 y Fg(\\210)42\n", "details": [{"source1": "ps2ascii {}", "source2": "ps2ascii {}", "unified_diff": "@@ -51,15 +51,15 @@\n in a semi-implicit form) can pay o\ufb00 \u2014 storage can be saved when the number of entries in L and U\r\n 2,1 1,2\r\n are larger than the number of entries in A and A . The number of solve operations is reduced by\r\n 2,1 1,2\r\n |L | + |U | \u2212 2|D | \u2212 |A | \u2212 |A |, where | \u00b7 | denotes the number of nonzeroes in a matrix.\r\n 2,1 1,2 1,1 2,1 1,2\r\n 1\r\n- 2 SemiImplMtx : DRAFT August 3, 2025\r\n+ 2 SemiImplMtx : DRAFT July 1, 2024\r\n 1.1 Data Structure\r\n The SemiImplMtx structure has the following \ufb01elds.\r\n \u2022 int neqns : number of equations.\r\n \u2022 int type : type of entries, SPOOLES REAL or SPOOLES COMPLEX.\r\n \u2022 int symmetryflag: typeofmatrixsymmetry,SPOOLES SYMMETRIC,SPOOLES HERMITIANorSPOOLES NONSYMMETRIC.\r\n \u2022 int ndomeqns : number of equations in the domains, or (1,1) block.\r\n \u2022 int nschureqns : number of equations in the Schur complement, or (2,2) block.\r\n@@ -95,15 +95,15 @@\n Thismethodsetsthestructure\u2019s\ufb01eldstodefaultvalues: neqns=0,type=SPOOLES REAL,symmetryflag\r\n =SPOOLES SYMMETRIC,ndomeqns=nschureqns=0,anddomainMtx,schurMtx,A21,A12,domRowsIV,\r\n schurRowsIV, domColumnsIV and schurColumnsIV are all set to NULL.\r\n Return codes: 1 means a normal return, -1 means mtx is NULL.\r\n 3. int SemiImplMtx_clearData ( SemiImplMtx *mtx ) ;\r\n This method releases all storage held by the object.\r\n Return codes: 1 means a normal return, -1 means mtx is NULL.\r\n- SemiImplMtx : DRAFT August 3, 2025 3\r\n+ SemiImplMtx : DRAFT July 1, 2024 3\r\n 4. int SemiImplMtx_free ( SemiImplMtx *mtx ) ;\r\n This method releases all storage held by the object via a call to SemiImplMtx clearData(), then free\u2019d\r\n the storage for the object.\r\n Return codes: 1 means a normal return, -1 means mtx is NULL.\r\n 1.2.2 Initialization Methods\r\n 1. int SemiImplMtx_initFromFrontMtx ( SemiImplMtx *semimtx, FrontMtx *frontmtx,\r\n InpMtx *inpmtx, IV *frontmapIV, int msglvl, FILE *msgFile) ;\r\n@@ -140,15 +140,15 @@\n 1.2.3 Solve Methods\r\n 1. int SemiImplMtx_solve ( SemiImplMtx *mtx, DenseMtx *X, DenseMtx *B,\r\n SubMtxManager *mtxmanager, double cpus[], int msglvl, FILE *msgFile ) ;\r\n This methods solves a linear system (L + I)D(I + U)X = B, (UT + I)D(I + U)X = B or (UH +\r\n I)D(I + U)X = B, where X and B are DenseMtx objects. mtxmanager is an object to handle the\r\n working SubMtx objects during the solve. One can have X and B point to the same object, for entries\r\n are read from B and written to X. On return, the cpus[] vector contains the following information.\r\n- 4 SemiImplMtx : DRAFT August 3, 2025\r\n+ 4 SemiImplMtx : DRAFT July 1, 2024\r\n cpus[0] initialize working matrices cpus[5] compute domains\u2019 right hand side\r\n cpus[1] load right hand side cpus[6] second solve with domains\r\n cpus[2] \ufb01rst solve with domains cpus[7] store solution\r\n cpus[3] compute Schur right hand side cpus[8] miscellaneous time\r\n cpus[4] Schur solve cpus[9] total time\r\n Return codes:\r\n 1 normal return -3 B is NULL\r\n@@ -181,15 +181,15 @@\n This section contains brief descriptions of the driver programs.\r\n 1. testGrid msglvl msgFile n1 n2 n3 maxzeros maxsize seed type symmetryflag\r\n sparsityflag pivotingflag tau droptol nrhs depth\r\n This driver program tests the SemiImplMtx creation and solve methods for a matrix from a regular\r\n 2-D or 3-D grid. The matrix can be real or complex and is loaded with random entries. The linear\r\n system AX =B is solved as follows.\r\n \u2022 First A is factored, and a FrontMtx object is created to hold the factorization.\r\n- SemiImplMtx : DRAFT August 3, 2025 5\r\n+ SemiImplMtx : DRAFT July 1, 2024 5\r\n \u2022 The system is solved using the FrontMtx object.\r\n \u2022 A SemiImplMtx matrix object is constructed from the FrontMtx object and A.\r\n \u2022 The system is solved using the SemiImplMtx object.\r\n Various statistics and CPU timings are written to the message \ufb01le to compare the two solution pro-\r\n cesses. Use the do grid shell script for testing.\r\n \u2022 The msglvl parameter determines the amount of output.\r\n \u2022 The msgFile parameter determines the message \ufb01le \u2014 if msgFile is stdout, then the message\r\n"}]}]}, {"source1": "./usr/share/doc/spooles-doc/SolveMap.ps.gz", "source2": "./usr/share/doc/spooles-doc/SolveMap.ps.gz", "unified_diff": null, "details": [{"source1": "SolveMap.ps", "source2": "SolveMap.ps", "unified_diff": "@@ -11,15 +11,15 @@\n %%EndComments\n %%BeginDefaults\n %%ViewingOrientation: 1 0 0 1\n %%EndDefaults\n %DVIPSWebPage: (www.radicaleye.com)\n %DVIPSCommandLine: dvips main -o SolveMap.ps\n %DVIPSParameters: dpi=600\n-%DVIPSSource: TeX output 2025.08.03:1317\n+%DVIPSSource: TeX output 2024.07.01:0700\n %%BeginProcSet: tex.pro 0 0\n %!\n /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S\n N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72\n mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0\n 0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{\n landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize\n@@ -1438,23 +1438,22 @@\n /UnderlinePosition -100 def\n /UnderlineThickness 50 def\n end readonly def\n /Encoding 256 array\n 0 1 255 {1 index exch /.notdef put} for\n dup 44 /comma put\n dup 48 /zero put\n+dup 49 /one put\n dup 50 /two put\n-dup 51 /three put\n-dup 53 /five put\n+dup 52 /four put\n dup 58 /colon put\n-dup 65 /A put\n-dup 103 /g put\n-dup 115 /s put\n-dup 116 /t put\n+dup 74 /J put\n+dup 108 /l put\n dup 117 /u put\n+dup 121 /y put\n readonly def\n currentdict end\n currentfile eexec\n D9D66F633B846AB284BCF8B0411B772DE5CE32340DC6F28AF40857E4451976E7\n 5182433CF9F333A38BD841C0D4E68BF9E012EB32A8FFB76B5816306B5EDF7C99\n 8B3A16D9B4BC056662E32C7CD0123DFAEB734C7532E64BBFBF5A60336E646716\n EFB852C877F440D329172C71F1E5D59CE9473C26B8AEF7AD68EF0727B6EC2E0C\n@@ -1635,79 +1634,67 @@\n 7CA1534C4D5B05FC33F83790ECFD7641DF3FB94289E2A1F6E7D29AB1228A867A\n 6E1EF0E9C6F899B491DC18401C2C0A05FFFED46A72C245F7529B8EA55A038082\n 8512307217D2A233C37004085BA3AEE379269F9FA7D0ADB4B19A95CC2AFE686E\n 55D88E47257C1FE6F235FEA295910569FE6DD5995512562359CC821E85A6C7A5\n 79B470A9E340A6985189FF8B6AF914A6B0ECF93F47903221F95DE894A8F05B05\n B7D99CD533EC5F931B18E6B39BECF67FA2D6DD1AEC76772B068BE06335A94C05\n 7A4DDEE77B66101DA855C17AC312600370B34E31F5EC3A01300A8EB60B4C9767\n-1B2FA10DF7E91D3BB34A1B1CE7A0015A57C813E0280D873ADB88440048702D1F\n-77994EE04EC3B4531D6E1888C86A8F0DA6CF1F056F16AB0DD76C862830F89DA4\n-28923B3AA543E0D6E41D3BD283E600BC11F889315EE92C675C109C81065ED1BC\n-82A5583D1B723D50051B0557A367887F5B263014C6E77288B4883C50889473D3\n-3787BAD4BEB88BD1353AFA5B73E61814819537E7FF09F53EF94792BB3DD36ED0\n-002D0E7A6CDAB85A9C17AF5664BCB5A71663B861880F3ECCABC8E7A2FC81A4CC\n-AE7A87503FDC1CE0077BA51ECC7B43B60793FED8E9AAD5BBD03ADD6183DCD26D\n-24A74163611C05562437644EF9B8889FD4F9D311911204FEFD35237486F2D2D0\n-B6783A03BF12EA6D19D6D0F87E4D08515F12F9CBF1961CAA71E0D69FE3C4C4D2\n-7C7FB64ED24F8684C8F00C2BEDEA53EA390CDC0B5BEBD7DD982580B2EA1F1F89\n-CFED5916630DC2BA32BB9180277E1ABC339B3B7DE086717BD93F7FF3681BA5B3\n-FCF671C4B293C2DE4A322F0AA3323A4934444C69F23EF90120B8755482757759\n-C457A435FB8BB4922BD92C5F3D9555D978275C510183E29DFF2FCE4ABBFC18DE\n-76CAD3B486BA12047DD808CD4D521A0FD368E4AE79DE262630983A5D6F0B679D\n-2F005306393C520E1B6987302D029939D94B0178DC55D5264E1FEA468AD4134C\n-8C65B2FBBE8DE8284E8E1F6BFE0B648F44D3DA8E9350D266EDBFD4A7054D9355\n-1E0B185DED37BCF32D3731358F1D707C94109428BAD3CEA456A2A43553E3D2C2\n-F549189201F3D3F715310E3E8C6A2E9AA5141AA9125D203694C7D875C2DD320F\n-C5BCDFC924F6C04DBC7A97349B45ECD0FBD7D2123ED1D3A9F440B1112BE62779\n-47A4592F9285CBD9635EC9091CEC0AFD7E6B6976974081DB9C0E43165BD8584D\n-6CDF08DED287F0883A9FBD351B3F8706BA1E94C7CA487338269482EB8DC1A05D\n-F6632A5D834DE29228C49C5BA65EF7C535A53B380BF4B391F43562147538EE97\n-E799DFC2C40315859F56BBCE9CAE1DF9293F6E2C193ABE7A724EC8F32FA220E7\n-6026877A63E318254F2AF7B1325D63FC4C52B536D3EF354814C2F8F1EEA30569\n-6EF04447DB0F809DF35B4985B9FB4F4BB6087310BE633E76F268B32ABA99CE8E\n-03163DFF4AEDB88E60DD0848C15E90026D7C24D81122EBC07113F9851914A9D5\n-D0E09C2BFDDAF10C5D8208E8329BC0C402F231CD84C95EFDD182AD9756662110\n-274650C7A5BB0D8EFA54EC6C5A49C0EB26701A54779AE8EFBBED824262761602\n-680EDFB38F0FE18C0F501F5AA8BF48A8F0DD3E5E1EBEB872F6F6B23964707B32\n-507FC677B9FDDC990E3828B06420F6F968B2F6AE81E76A2144B1ECE905485616\n-CFB29AC96DDE1F5039935D7E385CC13E34DD7EAF276A2EA3A8BF27FD4205AE13\n-7FE620E42F2CF231C6C8DD8EFC5A6CF081E5660D9ADD730D72D15C02B1E15FF3\n-D741D3B1EB1E666C4E562219033C1E2EF3F96E136998B2E1890395A3637A2C02\n-DE1C46AFCA8D898439F06606A2295D3F7ED6C7DB250C61B6B97A0D5EDDB9657E\n-E790B4E07540BB1026036F4A0D00E7F16FD757AD61D686620C6814B7DCEC43E8\n-FD36D9E75BA554F64548A67D9B0A26E11784E58D4357FC251D71B5D6D8BFDDE0\n-D3BF0E825DA5312C1904AF13C5905C2ADF79C357476183D2EC5A95243235E861\n-2F98D9EE77EF8F8CB3EC6BD358C5ED37DD3AF44D60575E7774BF96F1AE9DFAD1\n-F8646DEDF21D10311854726B8F7D25876BB1EF78E2442B16ED4B851816CF0A27\n-11FDFCE525002A1A7C3E62CD2A3EDE6FAADB026D2F3A46C030ADB22422CA8FF5\n-2545ED58C0D9FB5BDB55FE674301E91A75B005B86BD201D246F7ADACE50419FD\n-AC3312CAC5EB78A36F0E5F62E65AC92129CB574AAC59E0A7C1390DFC61F39D9E\n-D7036742F2F6E64D1EF8157E9CCF65F3EEDC6A8220235978B8E06EB80F649F3E\n-204CFB497F49306EA8E1F7B62305978A28F1E771ED82C6592C71022154E4062A\n-A92335EFC65D6DED9C686899FFD7AA2988740618C03C5E362E1AF352E3BE4602\n-5530C51E5FC8E9082DF79199CC91C50174000D337D86127AC807C5A3C81DDE57\n-7A68AEE7230949B925365C214D77C80E87CEE218ABC94023717EA43BA5D8A7C8\n-8A8B9BD1B767996AE33050E3D922ED0574E3579C57E4BDDAD35883806AFDF260\n-3AB5D83D451583262E580FFDB7A27D82396AF18D92B849A3F7A7E621987D5DF0\n-038F876C6E9CA47FB11AF05F0019191C5DDC5F0177AD421E94BC66D0CCB82F1F\n-93A80836284B095503752C600F72E2C89112ABFA5B76152691264103B268B3E5\n-8816724ADADB38740001A9AACE05C8AF02D72918606DC22EFC8BF0DA0FD12FFE\n-D3A09F8E28057F327BFB633E604B1EAD478637B1D9631650B314CC62D7E0E87F\n-9D3FE1FFA23BB6E3006C3E39BED52F6B0C1C651B5913878F36DA0BF776889165\n-68BA3456B40B8B471CA8FF5238E43D9113E052A2B8D2EAA2433D3F89FCA48AFB\n-5E842913E4ED6DF9623354059CD1F1707B126FED80349787C869883120183EDD\n-249185A55503FAC53898F52170D05CAC62BB742CF9702C0518AED6B27CDC401C\n-932E02143FD916703F360CB31049501B35EF3EDDFED791090D0CFA221FD1DB32\n-7D4759CE07983AE29C258C705D11E7D9481EEAAB9B6BA65CDCF0AA0057BD6FEA\n-ABBFBD3ABF2A7BFB550C3D2A16DC447384A89F3DB6D9C2DBDCA997ABE35A7706\n-633D328AECEDB5BD07070C1B96267FD73B45791DD18194F60D358091FBE88409\n-973529806F3D2C9E6E39091F90A14B560A987E0B9490B9B690FB489B8E253070\n-D7C54447BE0E0A0BFEAEFFB581DC1300E6EC382984673BF0665632404E59B5BF\n-5D5F0A1C956E618C0487751CA5DAE8A95C214F76ED756694EF273679CD2D85CB\n-949DF385BD50491649EFEFDA1574921D7460143D42A100D2C76E55F0BC\n+1B2FA10DF7E91D3BB34A1B1CE7A0015A57C813E0280D873ADB8844004B9BA1CC\n+580D3C6BDA4DC1B80B4365F1C80512453FC5316EC2D928FB731C3D6403E3C18B\n+E8424D644DF5E9A2134229C5C91CA68DB8E85BA2BB40F538F585DA6FA4037718\n+B8053EBBA1E765346BCD5BDAA6C38115D31611D8A87A2238C145F2DA2F92E4DF\n+3987BD9C4D2A3D460E8941A68B125BCD9EE4F9FD262C4C8A71F47A2C81975635\n+F1B981C274C53FA2ACCDE4C9D0A7C62D6C1EFF91CFC6712CA6A9F333C9564FCB\n+2A70F0AD715A79B10A08AB069E2A3C93BC0AED19D0CA10134B8DDDE8AF548DB2\n+3A4AAA9C29682CF135BB767DAA16169A127EB50A7EECEB6480CF56A7D0F8AC56\n+4A5090B3D75A790372886AF568D94C8165975A05BFBFDF1FFBA45F70700BB9E0\n+57F3249EF9E9C8AD9CBCF6E4FD592DC4CDD2CC7C0BC3130C1059096C657BE453\n+A2CBACE93420210E27AF56CA229BD6D982FB68B3FDC6D44478B922C4231C47EE\n+E500232F6C11D92DEB955F66DF52B92B22E7352790CC2DCBAC53965D57AC2920\n+68B7D520DE25047146EFEB06B9AD4E2A94243C7E5239F0BC2FC312B16051D52C\n+0B92C217B6B42997321AE4F8BB066754B7AA3F15069EF59224E8A442CE471AA7\n+E8049A3DD9EDA09CCEE4998998661CF7DB35E952F6C65DAEB3013951C59F3E09\n+157F313B0237876E1C0190F0473819570B8C0205AADF05D787CC00979CFB327A\n+289382B22DDA6F12804ED0ED5B179E36A995A2A59E1B66E75130DBE9109C813B\n+94403E0DEA8314A1E9DB474D7FA83C0BAFD08033E6A6215844C1D26BE15F1251\n+A1605E8DF9A9C601ED37379530BC1C82BE5463C6C711C5652BFD6262485AA9CA\n+B8C4A117593001D08D980041E2A83C190DCE8E6CD3D334E5CC19FC05DB30F7F7\n+24A305C4DBB31F0651392B99D44B4302333BDF7E326FD256DD75D309C6E73F85\n+FA71B35FD1F9BEFF4C7A1076362EEB0A85492933B6006086A7B8C1928CF2D1EE\n+FD4344409257BB802C117E739960821CD3C88BFBA5669FF16F610AD638AF3677\n+8674C985E6767253ED5769F71BEA5E9BB02A751F9E62EE2B18AC19D975FDEAE9\n+8B8822367FF177A7E850766DE99ED3366D46464612926430012212A90F8E85F4\n+4760B40D5B86B90819EE410382D22D8ED82D0B0AB00C93E10CD365F8766D1C87\n+B4A866021FB6F6AC3D250CC601989B1B8FE6B1098A48282D2CF258BF38FEE940\n+CE0141FB1344156DE7712A8F2DBF700174F12616EE17C852210D96D03E5E6635\n+D439EB6E84A383DDD32AD72DADE6F931FDBABBDC726C36081C96018FC95EAE13\n+DA1F8DBC2D8355AC9792649653225393F4A7A88F3B9443FEEB75E2C15BF93F09\n+CCBA7FABC022BE26F4C28152D5DA6D690494AD4EC0DA1B598AE12536BADF88B5\n+5E20EB452546389F57FF55459567B453AE1831C57D22FA6A4FDF441EDAFDB7FB\n+4F4B707C1FF9159C40F7B5DD519FC07815EE91B8D756B6C18500BCF47D0D9E45\n+6A2D51B6AA5AEAAC9AB2DEF7F0FDE957B6C179CBADEECAC7E9CEC248AB135EB4\n+FBF83D002FF859B574EF36C371540EF2BCFCEF5C2E7863AEDD7C3C965103453B\n+023A9CEC1D5C45B88827ADF4AE0C6746F3C7E6A944427DAEC493601019583A16\n+0F846CE00EAE89EEFF9CE68A0E1D6EBB8FDD8A45D1BF399B36A8328EC957CB8B\n+D842A56269C8C9A6B472C9E65BCBC090606B4E8A7EF4ABDEA120C9F9B3969A1C\n+2EB102925F4E155160E58000E1ADB0D19E10EFD96F6C3225EEE8FC24D122C069\n+C11F1A69DC383F7DACD2F3929BD135CE69787C6E7560AC4B683FE5D9AAFD2E89\n+EE6D95E38C9B726B416E28169A11E29559DBA9AECD714CF318FCB78F34A0E562\n+9C00FE0C6D5A848557D9A82EC2BEFCD30B5EDC0B23C5BA9F812C864394C8B9D1\n+B08BAC9CF94E70FF842306ACCFE6E39A56777C712904A3AB29FBD19275E19E06\n+B35B37CFFFCEC81CAF2D85A853663FAFCFFED1EA77064AA28C15BC94910683BC\n+D09513079DE9EE18E97CC2403DD206516D7F652A3459870757F34EEDCEF952C3\n+FE8004F4716B5BD6774E455010B0BB1E61FCD66B9F14F9BBCCF3E55A158EE96E\n+9A05BDFDDC7706D4BC28FDDC4004EF3A430C607EBDF115E0C996454D70C8BB42\n+D7C83A454B116663D648C23CE2B33365810DE2B64D4AE011BC8043BC3E05B94D\n+1700F859C6AFC6515C1C42FA104EE3E8F3FA5F80252C2E79B00ED27F675FFD09\n+B50BF7A3C63CF4856F909DF969D7DD3EA05CABDD1E71A58CFC2AB5F614B4E5E0\n+25CF92E9FB66ACEBE05DF5E033DA8AD3EE32D94C02D98DD7DA99FAB5AEA595C3\n+2987DC122F0242D76B782349E4069DE0CDD6EF4375C680CBFE4C8F24F2AE89BF\n+7785F5EA7435A91500F265022C307E8ADEAAE1C6\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n@@ -4337,16 +4324,16 @@\n %%EndFont \n TeXDict begin 39158280 55380996 1000 600 600 (main.dvi)\n @start /Fa 234[71 21[{}1 90.9091 /CMSY10 rf /Fb 133[50\n 59 2[59 62 44 44 46 1[62 56 62 93 31 2[31 62 2[51 62\n 50 1[54 11[86 1[62 3[84 1[106 3[42 6[80 10[56 56 56 56\n 56 56 56 2[31 46[{}32 99.6264 /CMBX12 rf /Fc 137[62 5[62\n 62 2[62 6[62 3[62 13[62 5[62 77[{}8 119.552 /CMTT12 rf\n-/Fd 138[51 35 36 11[45 37[68 6[25 4[45 1[45 45 1[45 3[25\n-44[{}11 90.9091 /CMSL10 rf /Fe 132[52 123[{}1 90.9091\n+/Fd 134[48 3[51 8[25 33[47 15[25 5[45 1[45 45 45 3[25\n+44[{}10 90.9091 /CMSL10 rf /Fe 132[52 123[{}1 90.9091\n /CMBX10 rf\n %DVIPSBitmapFont: Ff tcrm1095 10.95 1\n [/Grave/Acute/Circumflex/Tilde/Dieresis/Hungarumlaut/Ring/Caron/Breve/Macron\n /Dotaccent/cedilla/ogonek/quotesinglbase.ts1 4{/.notdef}repeat\n /quotedblbase.ts1/.notdef/.notdef/twelveudash/threequartersemdash\n /afii61664.cap/arrowleft/arrowright/tieaccentlowercase/tieaccentcapital\n /tieaccentlowercase.new/tieaccentcapital.new/.notdef/afii61664.asc/uni2422 3\n@@ -4461,17 +4448,17 @@\n b Fl(int)i(*rowidsUpper)27 b Fm({)k(v)m(ector)h(of)e(ro)m(w)h(ids)f\n (for)g(the)h(upp)s(er)d(triangle)137 5213 y Ff(\\210)45\n b Fl(int)i(*colidsUpper)27 b Fm({)k(v)m(ector)h(of)e(column)h(ids)f\n (for)g(the)g(upp)s(er)f(triangle)137 5407 y Ff(\\210)45\n b Fl(int)i(*mapUpper)28 b Fm({)j(map)f(from)g(submatrices)g(to)h\n (threads)f(or)g(pro)s(cesses)1927 5656 y(1)p eop end\n %%Page: 2 2\n-TeXDict begin 2 1 bop 0 100 a Fm(2)p 136 100 1074 4 v\n-1256 w Fl(SolveMap)28 b Fd(:)41 b Fk(DRAFT)30 b Fd(August)g(3,)h(2025)p\n-2826 100 V 137 399 a Ff(\\210)45 b Fl(int)i(nblockLower)27\n+TeXDict begin 2 1 bop 0 100 a Fm(2)p 136 100 1132 4 v\n+1314 w Fl(SolveMap)28 b Fd(:)41 b Fk(DRAFT)30 b Fd(July)g(1,)h(2024)p\n+2768 100 V 137 399 a Ff(\\210)45 b Fl(int)i(nblockLower)27\n b Fm({)k(n)m(um)m(b)s(er)e(of)i(submatrices)f(in)g(the)h(lo)m(w)m(er)g\n (triangle)137 588 y Ff(\\210)45 b Fl(int)i(*rowidsLower)27\n b Fm({)k(v)m(ector)h(of)e(ro)m(w)h(ids)f(for)g(the)h(lo)m(w)m(er)g\n (triangle)137 778 y Ff(\\210)45 b Fl(int)i(*colidsLower)27\n b Fm({)k(v)m(ector)h(of)e(column)h(ids)f(for)g(the)g(lo)m(w)m(er)i\n (triangle)137 967 y Ff(\\210)45 b Fl(int)i(*mapLower)28\n b Fm({)j(map)f(from)g(submatrices)g(to)h(threads)f(or)g(pro)s(cesses)h\n@@ -4523,24 +4510,24 @@\n b(SolveMap)d(*solvemap)g(\\))j(;)227 5256 y Fm(This)30\n b(metho)s(d)g(returns)f Fl(symmetryflag)p Fm(,)e(the)k(symmetry)f\n (\\015ag.)227 5407 y Fk(Err)-5 b(or)34 b(che)-5 b(cking:)40\n b Fm(If)30 b Fl(solvemap)e Fm(is)j Fl(NULL)p Fm(,)e(an)i(error)f\n (message)h(is)g(prin)m(ted)e(and)h(the)h(program)f(exits.)p\n eop end\n %%Page: 3 3\n-TeXDict begin 3 2 bop 91 100 1074 4 v 1256 100 a Fl(SolveMap)28\n-b Fd(:)41 b Fk(DRAFT)121 b Fd(August)30 b(3,)h(2025)p\n-2779 100 V 1074 w Fm(3)111 399 y(2.)46 b Fl(int)h(SolveMap_nfront)d(\\()\n-j(SolveMap)f(*solvemap)f(\\))j(;)227 552 y Fm(This)30\n-b(metho)s(d)g(returns)f Fl(nfront)p Fm(,)g(the)h(n)m(um)m(b)s(er)f(of)i\n-(fron)m(ts.)227 706 y Fk(Err)-5 b(or)34 b(che)-5 b(cking:)40\n-b Fm(If)30 b Fl(solvemap)e Fm(is)j Fl(NULL)p Fm(,)e(an)i(error)f\n-(message)h(is)g(prin)m(ted)e(and)h(the)h(program)f(exits.)111\n-901 y(3.)46 b Fl(int)h(SolveMap_nproc)d(\\()k(SolveMap)d(*solvemap)g(\\))\n-j(;)227 1055 y Fm(This)30 b(metho)s(d)g(returns)f Fl(nproc)p\n+TeXDict begin 3 2 bop 91 100 1132 4 v 1313 100 a Fl(SolveMap)29\n+b Fd(:)40 b Fk(DRAFT)121 b Fd(July)30 b(1,)h(2024)p 2721\n+100 V 1132 w Fm(3)111 399 y(2.)46 b Fl(int)h(SolveMap_nfront)d(\\()j\n+(SolveMap)f(*solvemap)f(\\))j(;)227 552 y Fm(This)30 b(metho)s(d)g\n+(returns)f Fl(nfront)p Fm(,)g(the)h(n)m(um)m(b)s(er)f(of)i(fron)m(ts.)\n+227 706 y Fk(Err)-5 b(or)34 b(che)-5 b(cking:)40 b Fm(If)30\n+b Fl(solvemap)e Fm(is)j Fl(NULL)p Fm(,)e(an)i(error)f(message)h(is)g\n+(prin)m(ted)e(and)h(the)h(program)f(exits.)111 901 y(3.)46\n+b Fl(int)h(SolveMap_nproc)d(\\()k(SolveMap)d(*solvemap)g(\\))j(;)227\n+1055 y Fm(This)30 b(metho)s(d)g(returns)f Fl(nproc)p\n Fm(,)g(the)i(n)m(um)m(b)s(er)e(of)h(threads)g(or)h(pro)s(cesses.)227\n 1209 y Fk(Err)-5 b(or)34 b(che)-5 b(cking:)40 b Fm(If)30\n b Fl(solvemap)e Fm(is)j Fl(NULL)p Fm(,)e(an)i(error)f(message)h(is)g\n (prin)m(ted)e(and)h(the)h(program)f(exits.)111 1404 y(4.)46\n b Fl(int)h(SolveMap_nblockUpper)42 b(\\()48 b(SolveMap)d(*solvemap)h(\\))\n h(;)227 1558 y Fm(This)d(metho)s(d)g(returns)g Fl(nblockUpper)p\n Fm(,)i(the)f(n)m(um)m(b)s(er)e(of)i(o\\013-diagonal)i(submatrices)e(in)f\n@@ -4589,17 +4576,17 @@\n Fl(rowidsLower)p Fm(,)g(a)i(p)s(oin)m(ter)g(to)h(the)f(v)m(ector)h(of)f\n (ro)m(w)g(ids)f(of)h(the)h(submatrices)e(in)227 5253\n y(the)e(lo)m(w)m(er)g(triangle.)227 5407 y Fk(Err)-5\n b(or)34 b(che)-5 b(cking:)40 b Fm(If)30 b Fl(solvemap)e\n Fm(is)j Fl(NULL)p Fm(,)e(an)i(error)f(message)h(is)g(prin)m(ted)e(and)h\n (the)h(program)f(exits.)p eop end\n %%Page: 4 4\n-TeXDict begin 4 3 bop 0 100 a Fm(4)p 136 100 1074 4 v\n-1256 w Fl(SolveMap)28 b Fd(:)41 b Fk(DRAFT)30 b Fd(August)g(3,)h(2025)p\n-2826 100 V 66 399 a Fm(11.)46 b Fl(int)h(*)h(SolveMap_colidsLower)42\n+TeXDict begin 4 3 bop 0 100 a Fm(4)p 136 100 1132 4 v\n+1314 w Fl(SolveMap)28 b Fd(:)41 b Fk(DRAFT)30 b Fd(July)g(1,)h(2024)p\n+2768 100 V 66 399 a Fm(11.)46 b Fl(int)h(*)h(SolveMap_colidsLower)42\n b(\\()47 b(SolveMap)f(*solvemap)f(\\))j(;)227 567 y Fm(This)31\n b(metho)s(d)g(returns)f Fl(colidsLower)p Fm(,)f(a)j(p)s(oin)m(ter)f(to)\n h(the)g(v)m(ector)h(of)f(column)f(ids)g(of)g(the)h(submatrices)227\n 680 y(in)e(the)h(upp)s(er)d(triangle.)227 848 y Fk(Err)-5\n b(or)34 b(che)-5 b(cking:)40 b Fm(If)30 b Fl(solvemap)e\n Fm(is)j Fl(NULL)p Fm(,)e(an)i(error)f(message)h(is)g(prin)m(ted)e(and)h\n (the)h(program)f(exits.)66 1072 y(12.)46 b Fl(int)h(*)h\n@@ -4657,17 +4644,17 @@\n (fashion.)227 5294 y Fk(Err)-5 b(or)43 b(che)-5 b(cking:)59\n b Fm(If)39 b Fl(solvemap)p Fm(,)i Fl(upperBlockIVL)36\n b Fm(or)k Fl(ownersIV)d Fm(is)j Fl(NULL)p Fm(,)f(or)h(if)f\n Fl(symmetryflag)e Fm(is)227 5407 y(in)m(v)-5 b(alid,)31\n b(an)g(error)f(message)h(is)g(prin)m(ted)f(and)f(the)i(program)f\n (exits.)p eop end\n %%Page: 5 5\n-TeXDict begin 5 4 bop 91 100 1074 4 v 1256 100 a Fl(SolveMap)28\n-b Fd(:)41 b Fk(DRAFT)121 b Fd(August)30 b(3,)h(2025)p\n-2779 100 V 1074 w Fm(5)0 399 y Fb(1.2.5)112 b(Solv)m(e)38\n+TeXDict begin 5 4 bop 91 100 1132 4 v 1313 100 a Fl(SolveMap)29\n+b Fd(:)40 b Fk(DRAFT)121 b Fd(July)30 b(1,)h(2024)p 2721\n+100 V 1132 w Fm(5)0 399 y Fb(1.2.5)112 b(Solv)m(e)38\n b(setup)g(metho)s(ds)111 591 y Fm(1.)46 b Fl(IP)h(**)h\n (SolveMap_forwardSetup)42 b(\\()47 b(SolveMap)f(*solvemap,)f(int)i\n (myid,)1659 704 y(int)g(msglvl,)f(FILE)g(*msgFile)g(\\))h(;)227\n 817 y(IP)g(**)h(SolveMap_backwardSetup)41 b(\\()48 b(SolveMap)d\n (*solvemap,)g(int)i(myid,)1659 930 y(int)g(msglvl,)f(FILE)g(*msgFile)g\n (\\))h(;)227 1076 y Fm(These)21 b(t)m(w)m(o)g(metho)s(ds)f(return)g(a)h\n (v)m(ector)h(of)f(p)s(oin)m(ters)f(to)h Fl(IP)f Fm(ob)5\n@@ -4735,17 +4722,17 @@\n b(ject)35 b(that)f(con)m(tains)h(the)f(aggregate)i(coun)m(t)f(for)e(a)h\n (forw)m(ard)f(solv)m(e.)52 b(If)227 5407 y Fl(myid)32\n b Fm(o)m(wns)g(fron)m(t)h Fl(J)p Fm(,)g(then)f(en)m(try)h\n Fl(J)f Fm(of)h(the)g(returned)f Fl(IV)g Fm(ob)5 b(ject)33\n b(con)m(tains)h(the)f(n)m(um)m(b)s(er)e(of)i(pro)s(cesses)p\n eop end\n %%Page: 6 6\n-TeXDict begin 6 5 bop 0 100 a Fm(6)p 136 100 1074 4 v\n-1256 w Fl(SolveMap)28 b Fd(:)41 b Fk(DRAFT)30 b Fd(August)g(3,)h(2025)p\n-2826 100 V 227 399 a Fm(\\(other)d(than)e Fl(myid)p Fm(\\))g(that)i(o)m\n+TeXDict begin 6 5 bop 0 100 a Fm(6)p 136 100 1132 4 v\n+1314 w Fl(SolveMap)28 b Fd(:)41 b Fk(DRAFT)30 b Fd(July)g(1,)h(2024)p\n+2768 100 V 227 399 a Fm(\\(other)d(than)e Fl(myid)p Fm(\\))g(that)i(o)m\n (wn)f(an)f Fj(L)1522 413 y Fi(J)p Fh(;)p Fi(I)1643 399\n y Fm(submatrix,)h(\\(or)h Fj(U)2304 413 y Fi(I)p Fh(;)p\n Fi(J)2425 399 y Fm(submatrix)e(if)h(symmetric)g(or)g(hermitian\\))227\n 511 y(and)j(so)h(is)f(the)h(n)m(um)m(b)s(er)e(of)h(incoming)h\n (aggregate)i(submatrices)e(pro)s(cess)f Fl(myid)f Fm(exp)s(ects)i(for)f\n (fron)m(t)g Fl(J)p Fm(.)227 665 y Fk(Err)-5 b(or)35 b(che)-5\n b(cking:)43 b Fm(If)31 b Fl(solvemap)f Fm(is)i Fl(NULL)e\n@@ -4824,21 +4811,21 @@\n Fm(is)h(returned.)37 b(If)24 b(an)f(IO)g(error)g(is)h(encoun)m(tered)g\n (from)f Fl(fprintf)p Fm(,)h(zero)g(is)g(returned.)227\n 5407 y Fk(Err)-5 b(or)33 b(che)-5 b(cking:)40 b Fm(If)28\n b Fl(solvemap)f Fm(or)i Fl(fp)g Fm(are)g Fl(NULL)f Fm(an)h(error)g\n (message)h(is)f(prin)m(ted)f(and)h(zero)h(is)f(returned.)p\n eop end\n %%Page: 7 7\n-TeXDict begin 7 6 bop 91 100 1074 4 v 1256 100 a Fl(SolveMap)28\n-b Fd(:)41 b Fk(DRAFT)121 b Fd(August)30 b(3,)h(2025)p\n-2779 100 V 1074 w Fm(7)111 399 y(6.)46 b Fl(int)h\n-(SolveMap_writeToBinaryFil)o(e)42 b(\\()47 b(SolveMap)f(*solvemap,)f\n-(FILE)h(*fp)h(\\))h(;)227 549 y Fm(This)29 b(metho)s(d)h(writes)g(an)f\n-Fl(SolveMap)f Fm(ob)5 b(ject)31 b(to)f(a)h(binary)e(\\014le.)40\n-b(If)30 b(there)g(are)g(no)g(errors)f(in)h(writing)g(the)227\n+TeXDict begin 7 6 bop 91 100 1132 4 v 1313 100 a Fl(SolveMap)29\n+b Fd(:)40 b Fk(DRAFT)121 b Fd(July)30 b(1,)h(2024)p 2721\n+100 V 1132 w Fm(7)111 399 y(6.)46 b Fl(int)h(SolveMap_writeToBinaryFil)\n+o(e)42 b(\\()47 b(SolveMap)f(*solvemap,)f(FILE)h(*fp)h(\\))h(;)227\n+549 y Fm(This)29 b(metho)s(d)h(writes)g(an)f Fl(SolveMap)f\n+Fm(ob)5 b(ject)31 b(to)f(a)h(binary)e(\\014le.)40 b(If)30\n+b(there)g(are)g(no)g(errors)f(in)h(writing)g(the)227\n 662 y(data,)i(the)e(v)-5 b(alue)31 b Fl(1)f Fm(is)g(returned.)40\n b(If)30 b(an)g(IO)g(error)g(is)g(encoun)m(tered)h(from)f\n Fl(fwrite)p Fm(,)f(zero)i(is)g(returned.)227 812 y Fk(Err)-5\n b(or)33 b(che)-5 b(cking:)40 b Fm(If)28 b Fl(solvemap)f\n Fm(or)i Fl(fp)g Fm(are)g Fl(NULL)f Fm(an)h(error)g(message)h(is)f(prin)\n m(ted)f(and)h(zero)h(is)f(returned.)111 1000 y(7.)46\n b Fl(int)h(SolveMap_writeForHumanEye)41 b(\\()48 b(SolveMap)d\n", "details": [{"source1": "ps2ascii {}", "source2": "ps2ascii {}", "unified_diff": "@@ -19,15 +19,15 @@\n \u2022 int nproc \u2013 number of threads or processes\r\n \u2022 int *owners \u2013 vector mapping fronts to owning threads or processes\r\n \u2022 int nblockUpper \u2013 number of submatrices in the upper triangle\r\n \u2022 int *rowidsUpper \u2013 vector of row ids for the upper triangle\r\n \u2022 int *colidsUpper \u2013 vector of column ids for the upper triangle\r\n \u2022 int *mapUpper \u2013 map from submatrices to threads or processes\r\n 1\r\n- 2 SolveMap : DRAFT August 3, 2025\r\n+ 2 SolveMap : DRAFT July 1, 2024\r\n \u2022 int nblockLower \u2013 number of submatrices in the lower triangle\r\n \u2022 int *rowidsLower \u2013 vector of row ids for the lower triangle\r\n \u2022 int *colidsLower \u2013 vector of column ids for the lower triangle\r\n \u2022 int *mapLower \u2013 map from submatrices to threads or processes processes\r\n 1.2 Prototypes and descriptions of SolveMap methods\r\n This section contains brief descriptions including prototypes of all methods that belong to the\r\n SolveMap object.\r\n@@ -50,15 +50,15 @@\n This method releases any storage by a call to SolveMap clearData() then free\u2019s the storage\r\n for the structure with a call to free().\r\n Error checking: If solvemap is NULL, an error message is printed and the program exits.\r\n 1.2.2 Instance methods\r\n 1. int SolveMap_symmetryflag ( SolveMap *solvemap ) ;\r\n This method returns symmetryflag, the symmetry \ufb02ag.\r\n Error checking: If solvemap is NULL, an error message is printed and the program exits.\r\n- SolveMap : DRAFT August 3, 2025 3\r\n+ SolveMap : DRAFT July 1, 2024 3\r\n 2. int SolveMap_nfront ( SolveMap *solvemap ) ;\r\n This method returns nfront, the number of fronts.\r\n Error checking: If solvemap is NULL, an error message is printed and the program exits.\r\n 3. int SolveMap_nproc ( SolveMap *solvemap ) ;\r\n This method returns nproc, the number of threads or processes.\r\n Error checking: If solvemap is NULL, an error message is printed and the program exits.\r\n 4. int SolveMap_nblockUpper ( SolveMap *solvemap ) ;\r\n@@ -84,15 +84,15 @@\n This method returns mapUpper, a pointer to the vector that maps the submatrices in the\r\n upper triangle to threads or processes.\r\n Error checking: If solvemap is NULL, an error message is printed and the program exits.\r\n 10. int * SolveMap_rowidsLower ( SolveMap *solvemap ) ;\r\n This method returns rowidsLower, a pointer to the vector of row ids of the submatrices in\r\n the lower triangle.\r\n Error checking: If solvemap is NULL, an error message is printed and the program exits.\r\n- 4 SolveMap : DRAFT August 3, 2025\r\n+ 4 SolveMap : DRAFT July 1, 2024\r\n 11. int * SolveMap_colidsLower ( SolveMap *solvemap ) ;\r\n This method returns colidsLower, a pointer to the vector of column ids of the submatrices\r\n in the upper triangle.\r\n Error checking: If solvemap is NULL, an error message is printed and the program exits.\r\n 12. int * SolveMap_mapLower ( SolveMap *solvemap ) ;\r\n This method returns mapLower, a pointer to the vector that maps the submatrices in the\r\n upper triangle to threads or processes.\r\n@@ -118,15 +118,15 @@\n fashion. A domain is a subtree of fronts that are owned by the same thread or process.\r\n Furthermore, a domain is maximal, i.e., the parent of the root domain (if it exists) is owned\r\n by a di\ufb00erent process. If J belongs to a domain, then for all K, LK,J and UJ,K are owned by\r\n the thread or process that owns the domain. All other submatrices are mapped to threads or\r\n processes in a random fashion.\r\n Error checking: If solvemap, upperBlockIVL or ownersIV is NULL, or if symmetryflag is\r\n invalid, an error message is printed and the program exits.\r\n- SolveMap : DRAFT August 3, 2025 5\r\n+ SolveMap : DRAFT July 1, 2024 5\r\n 1.2.5 Solve setup methods\r\n 1. IP ** SolveMap_forwardSetup ( SolveMap *solvemap, int myid,\r\n int msglvl, FILE *msgFile ) ;\r\n IP ** SolveMap_backwardSetup ( SolveMap *solvemap, int myid,\r\n int msglvl, FILE *msgFile ) ;\r\n ThesetwomethodsreturnavectorofpointerstoIPobjectsthatcontainthelistofsubmatrices\r\n that thread or process myid will use during the forward or backward solves.\r\n@@ -157,15 +157,15 @@\n submatrices process myid expects for front J.\r\n Error checking: If solvemap is NULL or nlist < 0 then an error message is printed and the\r\n program exits.\r\n 5. IV * SolveMap_lowerAggregateIV ( SolveMap *solvemap, int myid\r\n int msglvl, FILE *msgFile ) ;\r\n This method returns an IV object that contains the aggregate count for a forward solve. If\r\n myid owns front J, then entry J of the returned IV object contains the number of processes\r\n- 6 SolveMap : DRAFT August 3, 2025\r\n+ 6 SolveMap : DRAFT July 1, 2024\r\n (other than myid) that own an L submatrix, (or U submatrix if symmetric or hermitian)\r\n J,I I,J\r\n and so is the number of incoming aggregate submatrices process myid expects for front J.\r\n Error checking: If solvemap is NULL or nlist < 0 then an error message is printed and the\r\n program exits.\r\n 1.2.7 IO methods\r\n TherearetheusualeightIOroutines. The\ufb01lestructureofaSolveMapobjectissimple: symmetryflag,\r\n@@ -194,15 +194,15 @@\n Error checking: If solvemap or fn are NULL, or if fn is not of the form *.solvemapf (for a\r\n formatted \ufb01le) or *.solvemapb (for a binary \ufb01le), an error message is printed and the method\r\n returns zero.\r\n 5. int SolveMap_writeToFormattedFile ( SolveMap *solvemap, FILE *fp ) ;\r\n This method writes an SolveMap object to a formatted \ufb01le. If there are no errors in writing\r\n the data, the value 1 is returned. If an IO error is encountered from fprintf, zero is returned.\r\n Error checking: If solvemap or fp are NULL an error message is printed and zero is returned.\r\n- SolveMap : DRAFT August 3, 2025 7\r\n+ SolveMap : DRAFT July 1, 2024 7\r\n 6. int SolveMap_writeToBinaryFile ( SolveMap *solvemap, FILE *fp ) ;\r\n This method writes an SolveMap object to a binary \ufb01le. If there are no errors in writing the\r\n data, the value 1 is returned. If an IO error is encountered from fwrite, zero is returned.\r\n Error checking: If solvemap or fp are NULL an error message is printed and zero is returned.\r\n 7. int SolveMap_writeForHumanEye ( SolveMap *solvemap, FILE *fp ) ;\r\n This method writes an SolveMap object to a \ufb01le in an easily readable format. The method\r\n SolveMap writeStats() is called to write out the header and statistics. The value 1 is\r\n"}]}]}, {"source1": "./usr/share/doc/spooles-doc/SubMtx.ps.gz", "source2": "./usr/share/doc/spooles-doc/SubMtx.ps.gz", "unified_diff": null, "details": [{"source1": "SubMtx.ps", "source2": "SubMtx.ps", "unified_diff": "@@ -11,15 +11,15 @@\n %%EndComments\n %%BeginDefaults\n %%ViewingOrientation: 1 0 0 1\n %%EndDefaults\n %DVIPSWebPage: (www.radicaleye.com)\n %DVIPSCommandLine: dvips main -o SubMtx.ps\n %DVIPSParameters: dpi=600\n-%DVIPSSource: TeX output 2025.08.03:1317\n+%DVIPSSource: TeX output 2024.07.01:0700\n %%BeginProcSet: tex.pro 0 0\n %!\n /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S\n N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72\n mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0\n 0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{\n landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize\n@@ -2118,23 +2118,22 @@\n /UnderlinePosition -100 def\n /UnderlineThickness 50 def\n end readonly def\n /Encoding 256 array\n 0 1 255 {1 index exch /.notdef put} for\n dup 44 /comma put\n dup 48 /zero put\n+dup 49 /one put\n dup 50 /two put\n-dup 51 /three put\n-dup 53 /five put\n+dup 52 /four put\n dup 58 /colon put\n-dup 65 /A put\n-dup 103 /g put\n-dup 115 /s put\n-dup 116 /t put\n+dup 74 /J put\n+dup 108 /l put\n dup 117 /u put\n+dup 121 /y put\n readonly def\n currentdict end\n currentfile eexec\n D9D66F633B846AB284BCF8B0411B772DE5CE32340DC6F28AF40857E4451976E7\n 5182433CF9F333A38BD841C0D4E68BF9E012EB32A8FFB76B5816306B5EDF7C99\n 8B3A16D9B4BC056662E32C7CD0123DFAEB734C7532E64BBFBF5A60336E646716\n EFB852C877F440D329172C71F1E5D59CE9473C26B8AEF7AD68EF0727B6EC2E0C\n@@ -2315,79 +2314,67 @@\n 7CA1534C4D5B05FC33F83790ECFD7641DF3FB94289E2A1F6E7D29AB1228A867A\n 6E1EF0E9C6F899B491DC18401C2C0A05FFFED46A72C245F7529B8EA55A038082\n 8512307217D2A233C37004085BA3AEE379269F9FA7D0ADB4B19A95CC2AFE686E\n 55D88E47257C1FE6F235FEA295910569FE6DD5995512562359CC821E85A6C7A5\n 79B470A9E340A6985189FF8B6AF914A6B0ECF93F47903221F95DE894A8F05B05\n B7D99CD533EC5F931B18E6B39BECF67FA2D6DD1AEC76772B068BE06335A94C05\n 7A4DDEE77B66101DA855C17AC312600370B34E31F5EC3A01300A8EB60B4C9767\n-1B2FA10DF7E91D3BB34A1B1CE7A0015A57C813E0280D873ADB88440048702D1F\n-77994EE04EC3B4531D6E1888C86A8F0DA6CF1F056F16AB0DD76C862830F89DA4\n-28923B3AA543E0D6E41D3BD283E600BC11F889315EE92C675C109C81065ED1BC\n-82A5583D1B723D50051B0557A367887F5B263014C6E77288B4883C50889473D3\n-3787BAD4BEB88BD1353AFA5B73E61814819537E7FF09F53EF94792BB3DD36ED0\n-002D0E7A6CDAB85A9C17AF5664BCB5A71663B861880F3ECCABC8E7A2FC81A4CC\n-AE7A87503FDC1CE0077BA51ECC7B43B60793FED8E9AAD5BBD03ADD6183DCD26D\n-24A74163611C05562437644EF9B8889FD4F9D311911204FEFD35237486F2D2D0\n-B6783A03BF12EA6D19D6D0F87E4D08515F12F9CBF1961CAA71E0D69FE3C4C4D2\n-7C7FB64ED24F8684C8F00C2BEDEA53EA390CDC0B5BEBD7DD982580B2EA1F1F89\n-CFED5916630DC2BA32BB9180277E1ABC339B3B7DE086717BD93F7FF3681BA5B3\n-FCF671C4B293C2DE4A322F0AA3323A4934444C69F23EF90120B8755482757759\n-C457A435FB8BB4922BD92C5F3D9555D978275C510183E29DFF2FCE4ABBFC18DE\n-76CAD3B486BA12047DD808CD4D521A0FD368E4AE79DE262630983A5D6F0B679D\n-2F005306393C520E1B6987302D029939D94B0178DC55D5264E1FEA468AD4134C\n-8C65B2FBBE8DE8284E8E1F6BFE0B648F44D3DA8E9350D266EDBFD4A7054D9355\n-1E0B185DED37BCF32D3731358F1D707C94109428BAD3CEA456A2A43553E3D2C2\n-F549189201F3D3F715310E3E8C6A2E9AA5141AA9125D203694C7D875C2DD320F\n-C5BCDFC924F6C04DBC7A97349B45ECD0FBD7D2123ED1D3A9F440B1112BE62779\n-47A4592F9285CBD9635EC9091CEC0AFD7E6B6976974081DB9C0E43165BD8584D\n-6CDF08DED287F0883A9FBD351B3F8706BA1E94C7CA487338269482EB8DC1A05D\n-F6632A5D834DE29228C49C5BA65EF7C535A53B380BF4B391F43562147538EE97\n-E799DFC2C40315859F56BBCE9CAE1DF9293F6E2C193ABE7A724EC8F32FA220E7\n-6026877A63E318254F2AF7B1325D63FC4C52B536D3EF354814C2F8F1EEA30569\n-6EF04447DB0F809DF35B4985B9FB4F4BB6087310BE633E76F268B32ABA99CE8E\n-03163DFF4AEDB88E60DD0848C15E90026D7C24D81122EBC07113F9851914A9D5\n-D0E09C2BFDDAF10C5D8208E8329BC0C402F231CD84C95EFDD182AD9756662110\n-274650C7A5BB0D8EFA54EC6C5A49C0EB26701A54779AE8EFBBED824262761602\n-680EDFB38F0FE18C0F501F5AA8BF48A8F0DD3E5E1EBEB872F6F6B23964707B32\n-507FC677B9FDDC990E3828B06420F6F968B2F6AE81E76A2144B1ECE905485616\n-CFB29AC96DDE1F5039935D7E385CC13E34DD7EAF276A2EA3A8BF27FD4205AE13\n-7FE620E42F2CF231C6C8DD8EFC5A6CF081E5660D9ADD730D72D15C02B1E15FF3\n-D741D3B1EB1E666C4E562219033C1E2EF3F96E136998B2E1890395A3637A2C02\n-DE1C46AFCA8D898439F06606A2295D3F7ED6C7DB250C61B6B97A0D5EDDB9657E\n-E790B4E07540BB1026036F4A0D00E7F16FD757AD61D686620C6814B7DCEC43E8\n-FD36D9E75BA554F64548A67D9B0A26E11784E58D4357FC251D71B5D6D8BFDDE0\n-D3BF0E825DA5312C1904AF13C5905C2ADF79C357476183D2EC5A95243235E861\n-2F98D9EE77EF8F8CB3EC6BD358C5ED37DD3AF44D60575E7774BF96F1AE9DFAD1\n-F8646DEDF21D10311854726B8F7D25876BB1EF78E2442B16ED4B851816CF0A27\n-11FDFCE525002A1A7C3E62CD2A3EDE6FAADB026D2F3A46C030ADB22422CA8FF5\n-2545ED58C0D9FB5BDB55FE674301E91A75B005B86BD201D246F7ADACE50419FD\n-AC3312CAC5EB78A36F0E5F62E65AC92129CB574AAC59E0A7C1390DFC61F39D9E\n-D7036742F2F6E64D1EF8157E9CCF65F3EEDC6A8220235978B8E06EB80F649F3E\n-204CFB497F49306EA8E1F7B62305978A28F1E771ED82C6592C71022154E4062A\n-A92335EFC65D6DED9C686899FFD7AA2988740618C03C5E362E1AF352E3BE4602\n-5530C51E5FC8E9082DF79199CC91C50174000D337D86127AC807C5A3C81DDE57\n-7A68AEE7230949B925365C214D77C80E87CEE218ABC94023717EA43BA5D8A7C8\n-8A8B9BD1B767996AE33050E3D922ED0574E3579C57E4BDDAD35883806AFDF260\n-3AB5D83D451583262E580FFDB7A27D82396AF18D92B849A3F7A7E621987D5DF0\n-038F876C6E9CA47FB11AF05F0019191C5DDC5F0177AD421E94BC66D0CCB82F1F\n-93A80836284B095503752C600F72E2C89112ABFA5B76152691264103B268B3E5\n-8816724ADADB38740001A9AACE05C8AF02D72918606DC22EFC8BF0DA0FD12FFE\n-D3A09F8E28057F327BFB633E604B1EAD478637B1D9631650B314CC62D7E0E87F\n-9D3FE1FFA23BB6E3006C3E39BED52F6B0C1C651B5913878F36DA0BF776889165\n-68BA3456B40B8B471CA8FF5238E43D9113E052A2B8D2EAA2433D3F89FCA48AFB\n-5E842913E4ED6DF9623354059CD1F1707B126FED80349787C869883120183EDD\n-249185A55503FAC53898F52170D05CAC62BB742CF9702C0518AED6B27CDC401C\n-932E02143FD916703F360CB31049501B35EF3EDDFED791090D0CFA221FD1DB32\n-7D4759CE07983AE29C258C705D11E7D9481EEAAB9B6BA65CDCF0AA0057BD6FEA\n-ABBFBD3ABF2A7BFB550C3D2A16DC447384A89F3DB6D9C2DBDCA997ABE35A7706\n-633D328AECEDB5BD07070C1B96267FD73B45791DD18194F60D358091FBE88409\n-973529806F3D2C9E6E39091F90A14B560A987E0B9490B9B690FB489B8E253070\n-D7C54447BE0E0A0BFEAEFFB581DC1300E6EC382984673BF0665632404E59B5BF\n-5D5F0A1C956E618C0487751CA5DAE8A95C214F76ED756694EF273679CD2D85CB\n-949DF385BD50491649EFEFDA1574921D7460143D42A100D2C76E55F0BC\n+1B2FA10DF7E91D3BB34A1B1CE7A0015A57C813E0280D873ADB8844004B9BA1CC\n+580D3C6BDA4DC1B80B4365F1C80512453FC5316EC2D928FB731C3D6403E3C18B\n+E8424D644DF5E9A2134229C5C91CA68DB8E85BA2BB40F538F585DA6FA4037718\n+B8053EBBA1E765346BCD5BDAA6C38115D31611D8A87A2238C145F2DA2F92E4DF\n+3987BD9C4D2A3D460E8941A68B125BCD9EE4F9FD262C4C8A71F47A2C81975635\n+F1B981C274C53FA2ACCDE4C9D0A7C62D6C1EFF91CFC6712CA6A9F333C9564FCB\n+2A70F0AD715A79B10A08AB069E2A3C93BC0AED19D0CA10134B8DDDE8AF548DB2\n+3A4AAA9C29682CF135BB767DAA16169A127EB50A7EECEB6480CF56A7D0F8AC56\n+4A5090B3D75A790372886AF568D94C8165975A05BFBFDF1FFBA45F70700BB9E0\n+57F3249EF9E9C8AD9CBCF6E4FD592DC4CDD2CC7C0BC3130C1059096C657BE453\n+A2CBACE93420210E27AF56CA229BD6D982FB68B3FDC6D44478B922C4231C47EE\n+E500232F6C11D92DEB955F66DF52B92B22E7352790CC2DCBAC53965D57AC2920\n+68B7D520DE25047146EFEB06B9AD4E2A94243C7E5239F0BC2FC312B16051D52C\n+0B92C217B6B42997321AE4F8BB066754B7AA3F15069EF59224E8A442CE471AA7\n+E8049A3DD9EDA09CCEE4998998661CF7DB35E952F6C65DAEB3013951C59F3E09\n+157F313B0237876E1C0190F0473819570B8C0205AADF05D787CC00979CFB327A\n+289382B22DDA6F12804ED0ED5B179E36A995A2A59E1B66E75130DBE9109C813B\n+94403E0DEA8314A1E9DB474D7FA83C0BAFD08033E6A6215844C1D26BE15F1251\n+A1605E8DF9A9C601ED37379530BC1C82BE5463C6C711C5652BFD6262485AA9CA\n+B8C4A117593001D08D980041E2A83C190DCE8E6CD3D334E5CC19FC05DB30F7F7\n+24A305C4DBB31F0651392B99D44B4302333BDF7E326FD256DD75D309C6E73F85\n+FA71B35FD1F9BEFF4C7A1076362EEB0A85492933B6006086A7B8C1928CF2D1EE\n+FD4344409257BB802C117E739960821CD3C88BFBA5669FF16F610AD638AF3677\n+8674C985E6767253ED5769F71BEA5E9BB02A751F9E62EE2B18AC19D975FDEAE9\n+8B8822367FF177A7E850766DE99ED3366D46464612926430012212A90F8E85F4\n+4760B40D5B86B90819EE410382D22D8ED82D0B0AB00C93E10CD365F8766D1C87\n+B4A866021FB6F6AC3D250CC601989B1B8FE6B1098A48282D2CF258BF38FEE940\n+CE0141FB1344156DE7712A8F2DBF700174F12616EE17C852210D96D03E5E6635\n+D439EB6E84A383DDD32AD72DADE6F931FDBABBDC726C36081C96018FC95EAE13\n+DA1F8DBC2D8355AC9792649653225393F4A7A88F3B9443FEEB75E2C15BF93F09\n+CCBA7FABC022BE26F4C28152D5DA6D690494AD4EC0DA1B598AE12536BADF88B5\n+5E20EB452546389F57FF55459567B453AE1831C57D22FA6A4FDF441EDAFDB7FB\n+4F4B707C1FF9159C40F7B5DD519FC07815EE91B8D756B6C18500BCF47D0D9E45\n+6A2D51B6AA5AEAAC9AB2DEF7F0FDE957B6C179CBADEECAC7E9CEC248AB135EB4\n+FBF83D002FF859B574EF36C371540EF2BCFCEF5C2E7863AEDD7C3C965103453B\n+023A9CEC1D5C45B88827ADF4AE0C6746F3C7E6A944427DAEC493601019583A16\n+0F846CE00EAE89EEFF9CE68A0E1D6EBB8FDD8A45D1BF399B36A8328EC957CB8B\n+D842A56269C8C9A6B472C9E65BCBC090606B4E8A7EF4ABDEA120C9F9B3969A1C\n+2EB102925F4E155160E58000E1ADB0D19E10EFD96F6C3225EEE8FC24D122C069\n+C11F1A69DC383F7DACD2F3929BD135CE69787C6E7560AC4B683FE5D9AAFD2E89\n+EE6D95E38C9B726B416E28169A11E29559DBA9AECD714CF318FCB78F34A0E562\n+9C00FE0C6D5A848557D9A82EC2BEFCD30B5EDC0B23C5BA9F812C864394C8B9D1\n+B08BAC9CF94E70FF842306ACCFE6E39A56777C712904A3AB29FBD19275E19E06\n+B35B37CFFFCEC81CAF2D85A853663FAFCFFED1EA77064AA28C15BC94910683BC\n+D09513079DE9EE18E97CC2403DD206516D7F652A3459870757F34EEDCEF952C3\n+FE8004F4716B5BD6774E455010B0BB1E61FCD66B9F14F9BBCCF3E55A158EE96E\n+9A05BDFDDC7706D4BC28FDDC4004EF3A430C607EBDF115E0C996454D70C8BB42\n+D7C83A454B116663D648C23CE2B33365810DE2B64D4AE011BC8043BC3E05B94D\n+1700F859C6AFC6515C1C42FA104EE3E8F3FA5F80252C2E79B00ED27F675FFD09\n+B50BF7A3C63CF4856F909DF969D7DD3EA05CABDD1E71A58CFC2AB5F614B4E5E0\n+25CF92E9FB66ACEBE05DF5E033DA8AD3EE32D94C02D98DD7DA99FAB5AEA595C3\n+2987DC122F0242D76B782349E4069DE0CDD6EF4375C680CBFE4C8F24F2AE89BF\n+7785F5EA7435A91500F265022C307E8ADEAAE1C6\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n@@ -5232,16 +5219,16 @@\n 86 1[62 3[84 5[42 6[80 10[56 56 56 56 56 56 56 2[31 46[{}31\n 99.6264 /CMBX12 rf /Fd 135[62 2[62 62 4[62 4[62 4[62\n 1[62 62 14[62 5[62 77[{}10 119.552 /CMTT12 rf /Fe 134[71\n 2[71 75 52 53 55 1[75 67 75 112 3[37 75 67 41 61 75 60\n 1[65 13[75 2[92 11[103 16[67 67 67 2[37 46[{}25 119.552\n /CMBX12 rf /Ff 138[49 30 37 38 1[46 46 51 1[23 42 1[28\n 46 42 1[42 46 42 1[46 12[65 1[66 11[59 62 69 2[68 6[28\n-58[{}23 90.9091 /CMTI10 rf /Fg 138[51 35 36 11[45 37[68\n-6[25 4[45 1[45 45 1[45 3[25 44[{}11 90.9091 /CMSL10 rf\n+58[{}23 90.9091 /CMTI10 rf /Fg 134[48 3[51 8[25 33[47\n+15[25 5[45 1[45 45 45 3[25 44[{}10 90.9091 /CMSL10 rf\n /Fh 132[52 123[{}1 90.9091 /CMBX10 rf\n %DVIPSBitmapFont: Fi tcrm1095 10.95 1\n [/Grave/Acute/Circumflex/Tilde/Dieresis/Hungarumlaut/Ring/Caron/Breve/Macron\n /Dotaccent/cedilla/ogonek/quotesinglbase.ts1 4{/.notdef}repeat\n /quotedblbase.ts1/.notdef/.notdef/twelveudash/threequartersemdash\n /afii61664.cap/arrowleft/arrowright/tieaccentlowercase/tieaccentcapital\n /tieaccentlowercase.new/tieaccentcapital.new/.notdef/afii61664.asc/uni2422 3\n@@ -5366,17 +5353,17 @@\n y Fh({)45 b Fo(sparse)30 b(using)g(dense)g(sub)s(columns)330\n 5111 y Fh({)45 b Fo(sparse)30 b(using)g(sparse)g(ro)m(ws)330\n 5259 y Fh({)45 b Fo(sparse)30 b(using)g(sparse)g(columns)330\n 5407 y Fh({)45 b Fo(sparse)30 b(using)g(\\()p Fm(i;)15\n b(j;)g(a)1170 5421 y Fl(i;j)1252 5407 y Fo(\\))31 b(triples)1927\n 5656 y(1)p eop end\n %%Page: 2 2\n-TeXDict begin 2 1 bop 0 100 a Fo(2)p 136 100 1122 4 v\n-1304 w Fn(SubMtx)29 b Fg(:)40 b Ff(DRAFT)30 b Fg(August)h(3,)g(2025)p\n-2778 100 V 330 399 a Fh({)45 b Fo(a)31 b(diagonal)h(matrix)330\n+TeXDict begin 2 1 bop 0 100 a Fo(2)p 136 100 1180 4 v\n+1362 w Fn(SubMtx)28 b Fg(:)41 b Ff(DRAFT)30 b Fg(July)g(1,)h(2024)p\n+2721 100 V 330 399 a Fh({)45 b Fo(a)31 b(diagonal)h(matrix)330\n 541 y Fh({)45 b Fo(a)c(blo)s(c)m(k)g(diagonal)g(symmetric)g(matrix)f\n (where)g(the)g(blo)s(c)m(ks)h(are)g(1)27 b Fj(\\002)f\n Fo(1)41 b(or)f(2)28 b Fj(\\002)e Fo(2,)43 b(used)d(in)g(the)427\n 654 y(symmetric)31 b(inde\\014nite)f(factorization.)330\n 796 y Fh({)45 b Fo(a)d(blo)s(c)m(k)f(diagonal)h(Hermitian)g(matrix)f\n (where)f(the)h(blo)s(c)m(ks)h(are)f(1)27 b Fj(\\002)g\n Fo(1)42 b(or)e(2)28 b Fj(\\002)f Fo(2,)44 b(used)c(in)h(the)427\n@@ -5447,61 +5434,61 @@\n b(Data)46 b(Structure)0 5023 y Fo(The)30 b Fn(SubMtx)f\n Fo(structure)g(has)i(the)f(follo)m(wing)i(\\014elds.)137\n 5224 y Fi(\\210)45 b Fn(int)i(type)29 b Fo(:)41 b(t)m(yp)s(e)31\n b(of)f(en)m(tries.)330 5407 y Fh({)45 b Fn(SPOOLES)p\n 769 5407 29 4 v 33 w(REAL)29 b Fo(:)h(double)g(precision)h(real)g(en)m\n (tries.)p eop end\n %%Page: 3 3\n-TeXDict begin 3 2 bop 91 100 1122 4 v 1303 100 a Fn(SubMtx)29\n-b Fg(:)41 b Ff(DRAFT)121 b Fg(August)30 b(3,)h(2025)p\n-2731 100 V 1122 w Fo(3)330 399 y Fh({)45 b Fn(SPOOLES)p\n-769 399 29 4 v 33 w(COMPLEX)28 b Fo(:)j(double)f(precision)g(complex)h\n-(en)m(tries.)137 590 y Fi(\\210)45 b Fn(int)i(mode)29\n-b Fo(:)41 b(storage)32 b(mo)s(de.)330 781 y Fh({)45 b\n-Fn(SUBMTX)p 721 781 V 33 w(DENSE)p 994 781 V 33 w(ROWS)29\n-b Fo(:)i(dense,)f(storage)i(b)m(y)e(ro)m(ws.)330 929\n-y Fh({)45 b Fn(SUBMTX)p 721 929 V 33 w(DENSE)p 994 929\n-V 33 w(COLUMNS)28 b Fo(:)j(dense,)f(storage)i(b)m(y)e(columns.)330\n-1077 y Fh({)45 b Fn(SUBMTX)p 721 1077 V 33 w(SPARSE)p\n-1042 1077 V 33 w(ROWS)29 b Fo(:)h(sparse,)h(storage)h(b)m(y)e(ro)m(ws.)\n-330 1225 y Fh({)45 b Fn(SUBMTX)p 721 1225 V 33 w(SPARSE)p\n-1042 1225 V 33 w(COLUMNS)28 b Fo(:)j(sparse,)f(storage)i(b)m(y)e\n-(columns.)330 1373 y Fh({)45 b Fn(SUBMTX)p 721 1373 V\n-33 w(SPARSE)p 1042 1373 V 33 w(TRIPLES)28 b Fo(:)j(sparse,)f(storage)i\n-(b)m(y)e(\\()p Fm(i;)15 b(j;)g(a)2459 1387 y Fl(i;j)2541\n-1373 y Fo(\\))31 b(triples.)330 1521 y Fh({)45 b Fn(SUBMTX)p\n-721 1521 V 33 w(DENSE)p 994 1521 V 33 w(SUBROWS)28 b\n-Fo(:)j(sparse,)f(storage)i(b)m(y)e(dense)g(subro)m(ws.)330\n-1669 y Fh({)45 b Fn(SUBMTX)p 721 1669 V 33 w(DENSE)p\n-994 1669 V 33 w(SUBCOLUMNS)28 b Fo(:)i(sparse,)g(storage)i(b)m(y)f\n-(dense)e(sub)s(columns.)330 1817 y Fh({)45 b Fn(SUBMTX)p\n-721 1817 V 33 w(DIAGONAL)28 b Fo(:)j(a)f(diagonal)i(matrix.)330\n-1965 y Fh({)45 b Fn(SUBMTX)p 721 1965 V 33 w(BLOCK)p\n-994 1965 V 33 w(DIAGONAL)p 1411 1965 V 32 w(SYM)30 b\n-Fo(:)g(a)h(symmetric)f(blo)s(c)m(k)h(diagonal)g(matrix)g(with)f(1)20\n-b Fj(\\002)g Fo(1)31 b(and)e(2)21 b Fj(\\002)f Fo(2)427\n-2078 y(blo)s(c)m(ks.)330 2226 y Fh({)45 b Fn(SUBMTX)p\n-721 2226 V 33 w(BLOCK)p 994 2226 V 33 w(DIAGONAL)p 1411\n-2226 V 32 w(HERM)28 b Fo(:)i(a)f(hermitian)g(blo)s(c)m(k)h(diagonal)g\n-(matrix)g(with)f(1)18 b Fj(\\002)g Fo(1)29 b(and)g(2)18\n-b Fj(\\002)g Fo(2)427 2339 y(blo)s(c)m(ks.)137 2531 y\n-Fi(\\210)45 b Fn(int)i(rowid)29 b Fo(:)41 b(ob)5 b(ject's)31\n-b(ro)m(w)g(id,)f(default)h(v)-5 b(alue)30 b(is)h Fn(-1)p\n-Fo(.)137 2722 y Fi(\\210)45 b Fn(int)i(colid)29 b Fo(:)41\n-b(ob)5 b(ject's)31 b(column)f(id,)h(default)f(v)-5 b(alue)31\n-b(is)f Fn(-1)p Fo(.)137 2913 y Fi(\\210)45 b Fn(int)i(nrow)29\n-b Fo(:)41 b(n)m(um)m(b)s(er)29 b(of)i(ro)m(ws)137 3105\n-y Fi(\\210)45 b Fn(int)i(ncol)29 b Fo(:)41 b(n)m(um)m(b)s(er)29\n-b(of)i(columns)137 3296 y Fi(\\210)45 b Fn(int)i(nent)29\n-b Fo(:)41 b(n)m(um)m(b)s(er)29 b(of)i(stored)f(matrix)h(en)m(tries.)137\n-3487 y Fi(\\210)45 b Fn(DV)i(wrkDV)29 b Fo(:)i(ob)5 b(ject)31\n-b(that)g(manages)g(the)g(o)m(wned)f(w)m(orking)h(storage.)137\n-3679 y Fi(\\210)45 b Fn(SubMtx)h(*next)29 b Fo(:)41 b(link)30\n-b(to)h(a)g(next)g(ob)5 b(ject)31 b(in)f(a)h(singly)f(link)m(ed)h(list.)\n-141 3895 y(One)f(can)h(query)f(the)g(t)m(yp)s(e)h(of)f(the)h(ob)5\n+TeXDict begin 3 2 bop 91 100 1180 4 v 1361 100 a Fn(SubMtx)29\n+b Fg(:)40 b Ff(DRAFT)122 b Fg(July)29 b(1,)i(2024)p 2673\n+100 V 1180 w Fo(3)330 399 y Fh({)45 b Fn(SPOOLES)p 769\n+399 29 4 v 33 w(COMPLEX)28 b Fo(:)j(double)f(precision)g(complex)h(en)m\n+(tries.)137 590 y Fi(\\210)45 b Fn(int)i(mode)29 b Fo(:)41\n+b(storage)32 b(mo)s(de.)330 781 y Fh({)45 b Fn(SUBMTX)p\n+721 781 V 33 w(DENSE)p 994 781 V 33 w(ROWS)29 b Fo(:)i(dense,)f\n+(storage)i(b)m(y)e(ro)m(ws.)330 929 y Fh({)45 b Fn(SUBMTX)p\n+721 929 V 33 w(DENSE)p 994 929 V 33 w(COLUMNS)28 b Fo(:)j(dense,)f\n+(storage)i(b)m(y)e(columns.)330 1077 y Fh({)45 b Fn(SUBMTX)p\n+721 1077 V 33 w(SPARSE)p 1042 1077 V 33 w(ROWS)29 b Fo(:)h(sparse,)h\n+(storage)h(b)m(y)e(ro)m(ws.)330 1225 y Fh({)45 b Fn(SUBMTX)p\n+721 1225 V 33 w(SPARSE)p 1042 1225 V 33 w(COLUMNS)28\n+b Fo(:)j(sparse,)f(storage)i(b)m(y)e(columns.)330 1373\n+y Fh({)45 b Fn(SUBMTX)p 721 1373 V 33 w(SPARSE)p 1042\n+1373 V 33 w(TRIPLES)28 b Fo(:)j(sparse,)f(storage)i(b)m(y)e(\\()p\n+Fm(i;)15 b(j;)g(a)2459 1387 y Fl(i;j)2541 1373 y Fo(\\))31\n+b(triples.)330 1521 y Fh({)45 b Fn(SUBMTX)p 721 1521\n+V 33 w(DENSE)p 994 1521 V 33 w(SUBROWS)28 b Fo(:)j(sparse,)f(storage)i\n+(b)m(y)e(dense)g(subro)m(ws.)330 1669 y Fh({)45 b Fn(SUBMTX)p\n+721 1669 V 33 w(DENSE)p 994 1669 V 33 w(SUBCOLUMNS)28\n+b Fo(:)i(sparse,)g(storage)i(b)m(y)f(dense)e(sub)s(columns.)330\n+1817 y Fh({)45 b Fn(SUBMTX)p 721 1817 V 33 w(DIAGONAL)28\n+b Fo(:)j(a)f(diagonal)i(matrix.)330 1965 y Fh({)45 b\n+Fn(SUBMTX)p 721 1965 V 33 w(BLOCK)p 994 1965 V 33 w(DIAGONAL)p\n+1411 1965 V 32 w(SYM)30 b Fo(:)g(a)h(symmetric)f(blo)s(c)m(k)h\n+(diagonal)g(matrix)g(with)f(1)20 b Fj(\\002)g Fo(1)31\n+b(and)e(2)21 b Fj(\\002)f Fo(2)427 2078 y(blo)s(c)m(ks.)330\n+2226 y Fh({)45 b Fn(SUBMTX)p 721 2226 V 33 w(BLOCK)p\n+994 2226 V 33 w(DIAGONAL)p 1411 2226 V 32 w(HERM)28 b\n+Fo(:)i(a)f(hermitian)g(blo)s(c)m(k)h(diagonal)g(matrix)g(with)f(1)18\n+b Fj(\\002)g Fo(1)29 b(and)g(2)18 b Fj(\\002)g Fo(2)427\n+2339 y(blo)s(c)m(ks.)137 2531 y Fi(\\210)45 b Fn(int)i(rowid)29\n+b Fo(:)41 b(ob)5 b(ject's)31 b(ro)m(w)g(id,)f(default)h(v)-5\n+b(alue)30 b(is)h Fn(-1)p Fo(.)137 2722 y Fi(\\210)45 b\n+Fn(int)i(colid)29 b Fo(:)41 b(ob)5 b(ject's)31 b(column)f(id,)h\n+(default)f(v)-5 b(alue)31 b(is)f Fn(-1)p Fo(.)137 2913\n+y Fi(\\210)45 b Fn(int)i(nrow)29 b Fo(:)41 b(n)m(um)m(b)s(er)29\n+b(of)i(ro)m(ws)137 3105 y Fi(\\210)45 b Fn(int)i(ncol)29\n+b Fo(:)41 b(n)m(um)m(b)s(er)29 b(of)i(columns)137 3296\n+y Fi(\\210)45 b Fn(int)i(nent)29 b Fo(:)41 b(n)m(um)m(b)s(er)29\n+b(of)i(stored)f(matrix)h(en)m(tries.)137 3487 y Fi(\\210)45\n+b Fn(DV)i(wrkDV)29 b Fo(:)i(ob)5 b(ject)31 b(that)g(manages)g(the)g(o)m\n+(wned)f(w)m(orking)h(storage.)137 3679 y Fi(\\210)45 b\n+Fn(SubMtx)h(*next)29 b Fo(:)41 b(link)30 b(to)h(a)g(next)g(ob)5\n+b(ject)31 b(in)f(a)h(singly)f(link)m(ed)h(list.)141 3895\n+y(One)f(can)h(query)f(the)g(t)m(yp)s(e)h(of)f(the)h(ob)5\n b(ject)31 b(using)f(these)h(simple)f(macros.)137 4111\n y Fi(\\210)45 b Fn(SUBMTX)p 521 4111 V 33 w(IS)p 650 4111\n V 34 w(REAL\\(mtx\\))28 b Fo(is)i Fn(1)g Fo(if)g Fn(mtx)g\n Fo(has)g(real)h(en)m(tries)g(and)f Fn(0)g Fo(otherwise.)137\n 4303 y Fi(\\210)45 b Fn(SUBMTX)p 521 4303 V 33 w(IS)p\n 650 4303 V 34 w(COMPLEX\\(mtx\\))27 b Fo(is)j Fn(1)g Fo(if)h\n Fn(mtx)e Fo(has)h(complex)h(en)m(tries)g(and)f Fn(0)g\n@@ -5519,17 +5506,17 @@\n g(storage)h(format,)f(and)f Fn(0)g Fo(other-)227 5103\n y(wise.)137 5294 y Fi(\\210)45 b Fn(SUBMTX)p 521 5294\n V 33 w(IS)p 650 5294 V 34 w(SPARSE)p 972 5294 V 33 w(COLUMNS\\(mtx\\))25\n b Fo(is)30 b Fn(1)e Fo(if)h Fn(mtx)g Fo(has)g(sparse)f(columns)h(as)h\n (its)f(storage)i(format,)f(and)e Fn(0)227 5407 y Fo(otherwise.)p\n eop end\n %%Page: 4 4\n-TeXDict begin 4 3 bop 0 100 a Fo(4)p 136 100 1122 4 v\n-1304 w Fn(SubMtx)29 b Fg(:)40 b Ff(DRAFT)30 b Fg(August)h(3,)g(2025)p\n-2778 100 V 137 399 a Fi(\\210)45 b Fn(SUBMTX)p 521 399\n+TeXDict begin 4 3 bop 0 100 a Fo(4)p 136 100 1180 4 v\n+1362 w Fn(SubMtx)28 b Fg(:)41 b Ff(DRAFT)30 b Fg(July)g(1,)h(2024)p\n+2721 100 V 137 399 a Fi(\\210)45 b Fn(SUBMTX)p 521 399\n 29 4 v 33 w(IS)p 650 399 V 34 w(SPARSE)p 972 399 V 33\n w(TRIPLES\\(mtx\\))24 b Fo(is)k Fn(1)g Fo(if)g Fn(mtx)f\n Fo(has)g(sparse)h(triples)g(as)g(its)g(storage)i(format,)f\n Fn(0)e Fo(other-)227 511 y(wise.)137 691 y Fi(\\210)45\n b Fn(SUBMTX)p 521 691 V 33 w(IS)p 650 691 V 34 w(DENSE)p\n 924 691 V 33 w(SUBROWS\\(mtx\\))25 b Fo(is)j Fn(1)g Fo(if)g\n Fn(mtx)g Fo(has)g(dense)g(subro)m(ws)f(as)i(its)f(storage)i(format,)f\n@@ -5593,17 +5580,17 @@\n (a)h(call)g(to)h Fn(SubMtx)p 2355 5148 V 32 w(clearData\\(\\))c\n Fo(and)h(then)h(frees)h(the)f(space)227 5261 y(for)g\n Fn(mtx)p Fo(.)227 5407 y Ff(Err)-5 b(or)34 b(che)-5 b(cking:)40\n b Fo(If)30 b Fn(mtx)g Fo(is)g Fn(NULL)p Fo(,)g(an)g(error)g(message)h\n (is)g(prin)m(ted)f(and)g(the)g(program)g(exits.)p eop\n end\n %%Page: 5 5\n-TeXDict begin 5 4 bop 91 100 1122 4 v 1303 100 a Fn(SubMtx)29\n-b Fg(:)41 b Ff(DRAFT)121 b Fg(August)30 b(3,)h(2025)p\n-2731 100 V 1122 w Fo(5)0 399 y Fc(1.2.2)112 b(Instance)38\n+TeXDict begin 5 4 bop 91 100 1180 4 v 1361 100 a Fn(SubMtx)29\n+b Fg(:)40 b Ff(DRAFT)122 b Fg(July)29 b(1,)i(2024)p 2673\n+100 V 1180 w Fo(5)0 399 y Fc(1.2.2)112 b(Instance)38\n b(metho)s(ds)111 597 y Fo(1.)46 b Fn(void)h(SubMtx_ids)e(\\()i(SubMtx)f\n (*mtx,)h(int)g(*prowid,)e(int)i(*pcolid)f(\\))h(;)227\n 748 y Fo(This)30 b(metho)s(d)g(\\014lls)g Fn(*prowid)e\n Fo(with)i(the)h(ro)m(w)f(id)g(and)g Fn(*pcolid)f Fo(with)h(the)g\n (column)g(id)g(of)h(the)g(ob)5 b(ject.)227 900 y Ff(Err)-5\n b(or)27 b(che)-5 b(cking:)36 b Fo(If)22 b Fn(mtx)p Fo(,)h\n Fn(prowid)e Fo(or)h Fn(pcolid)f Fo(is)h Fn(NULL)p Fo(,)g(an)g(error)g\n@@ -5671,17 +5658,17 @@\n (address)f(of)i(the)227 5294 y Fn(sizes[nrow])24 b Fo(v)m(ector)k(that)\n g(con)m(tains)g(the)f(n)m(um)m(b)s(er)e(of)i(en)m(tries)h(in)e(eac)m(h)\n i(ro)m(w,)g Fn(*indices)c Fo(with)j(the)g(base)227 5407\n y(address)41 b(of)g(the)h Fn(indices[nent])c Fo(v)m(ector)43\n b(that)f(con)m(tains)g(the)g(column)f(index)g(for)g(eac)m(h)h(en)m(try)\n -8 b(,)46 b(and)p eop end\n %%Page: 6 6\n-TeXDict begin 6 5 bop 0 100 a Fo(6)p 136 100 1122 4 v\n-1304 w Fn(SubMtx)29 b Fg(:)40 b Ff(DRAFT)30 b Fg(August)h(3,)g(2025)p\n-2778 100 V 227 399 a Fn(*pentries)g Fo(with)i(the)g(base)g(address)f\n+TeXDict begin 6 5 bop 0 100 a Fo(6)p 136 100 1180 4 v\n+1362 w Fn(SubMtx)28 b Fg(:)41 b Ff(DRAFT)30 b Fg(July)g(1,)h(2024)p\n+2721 100 V 227 399 a Fn(*pentries)g Fo(with)i(the)g(base)g(address)f\n (of)i Fn(entries[nent])29 b Fo(v)m(ector.)51 b(The)32\n b(indices)h(and)g(en)m(tries)h(for)f(the)227 511 y(ro)m(ws)e(are)f\n (stored)h(con)m(tiguously)-8 b(.)227 662 y Ff(Err)j(or)28\n b(che)-5 b(cking:)37 b Fo(If)24 b Fn(mtx)p Fo(,)h Fn(pnrow)p\n Fo(,)f Fn(pnent)p Fo(,)g Fn(psizes)p Fo(,)g Fn(pindices)d\n Fo(or)j Fn(pentries)e Fo(is)i Fn(NULL)p Fo(,)f(or)h(if)g(the)h(matrix)\n 227 775 y(t)m(yp)s(e)31 b(is)f(not)h Fn(SUBMTX)p 979\n@@ -5767,45 +5754,45 @@\n 5294 y(base)48 b(address)f(of)h(the)g Fn(firstlocs[ncol])c\n Fo(v)m(ector,)54 b Fn(*plastlocs)45 b Fo(with)i(the)h(base)g(address)f\n (of)h(the)227 5407 y Fn(lastlocs[ncol])22 b Fo(v)m(ector,)29\n b(and)c Fn(*pentries)e Fo(with)j(the)g(base)f(address)g(of)h\n Fn(entries[nent])c Fo(v)m(ector.)41 b(F)-8 b(or)p eop\n end\n %%Page: 7 7\n-TeXDict begin 7 6 bop 91 100 1122 4 v 1303 100 a Fn(SubMtx)29\n-b Fg(:)41 b Ff(DRAFT)121 b Fg(August)30 b(3,)h(2025)p\n-2731 100 V 1122 w Fo(7)227 399 y(column)38 b Fn(jcol)p\n-Fo(,)h(the)g(nonzero)f(en)m(tries)h(are)f(found)f(in)h(ro)m(ws)g\n-Fn([firstlocs[jcol],lastlo)o(cs[j)o(col])o(])227 511\n-y Fo(when)32 b Fn(firstlocs[jcol])24 b Fj(\\025)k Fo(0)33\n-b(and)f Fn(firstlocs[jcol])24 b Fj(\\024)29 b Fn(lastlocs[jcol])l\n-Fo(.)47 b(The)31 b(en)m(tries)j(for)e(the)227 624 y(columns)e(are)h\n-(stored)g(con)m(tiguously)-8 b(.)227 787 y Ff(Err)j(or)32\n-b(che)-5 b(cking:)39 b Fo(If)28 b Fn(mtx)p Fo(,)g Fn(pnrow)p\n-Fo(,)f Fn(pnent)p Fo(,)g Fn(pfirstlocs)p Fo(,)f Fn(plastlocs)g\n-Fo(or)i Fn(pentries)e Fo(is)i Fn(NULL)p Fo(,)f(or)h(if)g(the)227\n-900 y(matrix)33 b(t)m(yp)s(e)f(is)g(not)g Fn(SUBMTX)p\n-1281 900 29 4 v 33 w(DENSE)p 1554 900 V 33 w(SUBCOLUMNS)p\n-Fo(,)d(an)j(error)g(message)h(is)f(prin)m(ted)g(and)f(the)h(program)227\n-1013 y(exits.)66 1225 y(12.)46 b Fn(void)h(SubMtx_diagonalInfo)42\n-b(\\()48 b(SubMtx)e(*mtx,)g(int)h(*pncol,)f(double)g(**pentries)f(\\))j\n-(;)227 1388 y Fo(This)32 b(metho)s(d)g(is)h(used)f(when)g(the)h\n-(storage)h(mo)s(de)e(is)h(diagonal.)49 b(It)33 b(\\014lls)f\n-Fn(*pncol)f Fo(with)h(the)h(n)m(um)m(b)s(er)f(of)227\n-1501 y(columns)e(and)g Fn(*pentries)e Fo(with)i(the)h(base)f(address)g\n-(of)g Fn(entries[])e Fo(v)m(ector.)227 1663 y Ff(Err)-5\n-b(or)25 b(che)-5 b(cking:)35 b Fo(If)20 b Fn(mtx)p Fo(,)i\n-Fn(pncol)c Fo(or)j Fn(pentries)d Fo(is)i Fn(NULL)p Fo(,)f(or)i(if)f\n-(the)g(matrix)h(t)m(yp)s(e)f(is)h(not)f Fn(SUBMTX)p 3541\n-1663 V 33 w(DIAGONAL)p Fo(,)227 1776 y(an)31 b(error)f(message)h(is)f\n-(prin)m(ted)g(and)g(the)h(program)f(exits.)66 1988 y(13.)46\n-b Fn(void)h(SubMtx_blockDiagonalInfo)41 b(\\()48 b(SubMtx)e(*mtx,)g(int)\n-h(*pncol,)f(int)h(*pnent,)1755 2101 y(int)f(**ppivotsizes,)e(double)i\n-(**pentries)f(\\))j(;)227 2264 y Fo(This)24 b(metho)s(d)f(is)i(used)e\n-(when)g(the)i(storage)g(mo)s(de)f(is)g(blo)s(c)m(k)h(diagonal.)40\n+TeXDict begin 7 6 bop 91 100 1180 4 v 1361 100 a Fn(SubMtx)29\n+b Fg(:)40 b Ff(DRAFT)122 b Fg(July)29 b(1,)i(2024)p 2673\n+100 V 1180 w Fo(7)227 399 y(column)38 b Fn(jcol)p Fo(,)h(the)g(nonzero)\n+f(en)m(tries)h(are)f(found)f(in)h(ro)m(ws)g Fn([firstlocs[jcol],lastlo)\n+o(cs[j)o(col])o(])227 511 y Fo(when)32 b Fn(firstlocs[jcol])24\n+b Fj(\\025)k Fo(0)33 b(and)f Fn(firstlocs[jcol])24 b Fj(\\024)29\n+b Fn(lastlocs[jcol])l Fo(.)47 b(The)31 b(en)m(tries)j(for)e(the)227\n+624 y(columns)e(are)h(stored)g(con)m(tiguously)-8 b(.)227\n+787 y Ff(Err)j(or)32 b(che)-5 b(cking:)39 b Fo(If)28\n+b Fn(mtx)p Fo(,)g Fn(pnrow)p Fo(,)f Fn(pnent)p Fo(,)g\n+Fn(pfirstlocs)p Fo(,)f Fn(plastlocs)g Fo(or)i Fn(pentries)e\n+Fo(is)i Fn(NULL)p Fo(,)f(or)h(if)g(the)227 900 y(matrix)33\n+b(t)m(yp)s(e)f(is)g(not)g Fn(SUBMTX)p 1281 900 29 4 v\n+33 w(DENSE)p 1554 900 V 33 w(SUBCOLUMNS)p Fo(,)d(an)j(error)g(message)h\n+(is)f(prin)m(ted)g(and)f(the)h(program)227 1013 y(exits.)66\n+1225 y(12.)46 b Fn(void)h(SubMtx_diagonalInfo)42 b(\\()48\n+b(SubMtx)e(*mtx,)g(int)h(*pncol,)f(double)g(**pentries)f(\\))j(;)227\n+1388 y Fo(This)32 b(metho)s(d)g(is)h(used)f(when)g(the)h(storage)h(mo)s\n+(de)e(is)h(diagonal.)49 b(It)33 b(\\014lls)f Fn(*pncol)f\n+Fo(with)h(the)h(n)m(um)m(b)s(er)f(of)227 1501 y(columns)e(and)g\n+Fn(*pentries)e Fo(with)i(the)h(base)f(address)g(of)g\n+Fn(entries[])e Fo(v)m(ector.)227 1663 y Ff(Err)-5 b(or)25\n+b(che)-5 b(cking:)35 b Fo(If)20 b Fn(mtx)p Fo(,)i Fn(pncol)c\n+Fo(or)j Fn(pentries)d Fo(is)i Fn(NULL)p Fo(,)f(or)i(if)f(the)g(matrix)h\n+(t)m(yp)s(e)f(is)h(not)f Fn(SUBMTX)p 3541 1663 V 33 w(DIAGONAL)p\n+Fo(,)227 1776 y(an)31 b(error)f(message)h(is)f(prin)m(ted)g(and)g(the)h\n+(program)f(exits.)66 1988 y(13.)46 b Fn(void)h\n+(SubMtx_blockDiagonalInfo)41 b(\\()48 b(SubMtx)e(*mtx,)g(int)h(*pncol,)f\n+(int)h(*pnent,)1755 2101 y(int)f(**ppivotsizes,)e(double)i(**pentries)f\n+(\\))j(;)227 2264 y Fo(This)24 b(metho)s(d)f(is)i(used)e(when)g(the)i\n+(storage)g(mo)s(de)f(is)g(blo)s(c)m(k)h(diagonal.)40\n b(It)24 b(\\014lls)g Fn(*pncol)f Fo(with)h(the)g(n)m(um)m(b)s(er)227\n 2377 y(of)33 b(columns,)h Fn(*pnent)d Fo(with)h(the)h(n)m(um)m(b)s(er)f\n (of)h(en)m(tries,)h Fn(*ppivotsizes)29 b Fo(with)k(the)g(base)g\n (address)f(of)h(the)227 2490 y(piv)m(ot)f(sizes)f(v)m(ector,)h(and)e\n Fn(*pentries)e Fo(with)i(the)g(base)h(address)e(of)i\n Fn(entries[])d Fo(v)m(ector.)227 2652 y Ff(Err)-5 b(or)41\n b(che)-5 b(cking:)54 b Fo(If)37 b Fn(mtx)p Fo(,)i Fn(pncol)p\n@@ -5852,17 +5839,17 @@\n Fn(pReal)e Fo(or)i Fn(pImag)e Fo(is)i Fn(NULL)p Fo(,)f(or)h(if)g\n Fn(irow)e Fo(or)i Fn(jcol)f Fo(is)h(out)g(of)g(range,)h(an)e(error)227\n 5082 y(message)g(is)e(prin)m(ted)g(and)g(the)g(program)h(exits.)66\n 5294 y(16.)46 b Fn(void)95 b(SubMtx_locationOfRealEn)o(try)41\n b(\\()48 b(SubMtx)e(*mtx,)g(int)h(irow,)f(int)h(jcol,)1898\n 5407 y(double)f(**ppValue)f(\\))j(;)p eop end\n %%Page: 8 8\n-TeXDict begin 8 7 bop 0 100 a Fo(8)p 136 100 1122 4 v\n-1304 w Fn(SubMtx)29 b Fg(:)40 b Ff(DRAFT)30 b Fg(August)h(3,)g(2025)p\n-2778 100 V 227 399 a Fo(If)i(the)g Fn(\\(irow,jcol\\))d\n+TeXDict begin 8 7 bop 0 100 a Fo(8)p 136 100 1180 4 v\n+1362 w Fn(SubMtx)28 b Fg(:)41 b Ff(DRAFT)30 b Fg(July)g(1,)h(2024)p\n+2721 100 V 227 399 a Fo(If)i(the)g Fn(\\(irow,jcol\\))d\n Fo(en)m(try)j(is)g(presen)m(t,)h(this)f(metho)s(d)g(\\014lls)g\n Fn(*ppValue)d Fo(with)j(a)h(p)s(oin)m(ter)f(to)g(the)h(en)m(try)227\n 511 y(in)d(ro)m(w)f Fn(irow)g Fo(and)g(column)p Fn(jcol)p\n Fo(.)41 b(Otherwise,)30 b Fn(*ppValue)f Fo(is)h(set)i(to)f\n Fn(NULL)p Fo(.)f(Note,)i Fn(irow)e Fo(and)g Fn(jcol)g\n Fo(are)227 624 y Ff(lo)-5 b(c)g(al)32 b Fo(indices,)f(i.e.,)h(0)26\n b Fj(\\024)f Fn(irow)f Fj(\\024)h Fn(nrow)k Fo(and)h(0)25\n@@ -5935,23 +5922,23 @@\n Ff(Err)-5 b(or)37 b(che)-5 b(cking:)46 b Fo(If)33 b Fn(mtx)f\n Fo(is)h Fn(NULL)p Fo(,)g(or)g(if)g Fn(nrow)p Fo(,)g Fn(ncol)p\n Fo(,)g Fn(inc1)g Fo(or)g Fn(inc2)f Fo(is)h(less)h(than)f(or)g(equal)h\n (to)g(zero,)227 5407 y(or)d(if)f(neither)g Fn(inc1)g\n Fo(nor)f Fn(inc2)h Fo(are)g Fn(1)p Fo(,)h(an)f(error)g(message)h(is)g\n (prin)m(ted)f(and)f(the)i(program)f(exits.)p eop end\n %%Page: 9 9\n-TeXDict begin 9 8 bop 91 100 1122 4 v 1303 100 a Fn(SubMtx)29\n-b Fg(:)41 b Ff(DRAFT)121 b Fg(August)30 b(3,)h(2025)p\n-2731 100 V 1122 w Fo(9)111 399 y(4.)46 b Fn(void)h\n-(SubMtx_initRandomLowerTr)o(iang)o(le)41 b(\\()48 b(SubMtx)e(*mtx,)g\n-(int)h(type,)g(int)g(mode,)370 511 y(int)g(rowid,)f(int)h(colid,)f(int)\n-h(nrow,)g(int)g(ncol,)f(int)h(nent,)f(int)h(seed,)g(int)f(strict)h(\\))g\n-(;)227 624 y(void)g(SubMtx_initRandomUpperTr)o(iang)o(le)41\n-b(\\()48 b(SubMtx)e(*mtx,)g(int)h(type,)g(int)g(mode,)370\n-737 y(int)g(rowid,)f(int)h(colid,)f(int)h(nrow,)g(int)g(ncol,)f(int)h\n+TeXDict begin 9 8 bop 91 100 1180 4 v 1361 100 a Fn(SubMtx)29\n+b Fg(:)40 b Ff(DRAFT)122 b Fg(July)29 b(1,)i(2024)p 2673\n+100 V 1180 w Fo(9)111 399 y(4.)46 b Fn(void)h(SubMtx_initRandomLowerTr)\n+o(iang)o(le)41 b(\\()48 b(SubMtx)e(*mtx,)g(int)h(type,)g(int)g(mode,)370\n+511 y(int)g(rowid,)f(int)h(colid,)f(int)h(nrow,)g(int)g(ncol,)f(int)h\n+(nent,)f(int)h(seed,)g(int)f(strict)h(\\))g(;)227 624\n+y(void)g(SubMtx_initRandomUpperTr)o(iang)o(le)41 b(\\()48\n+b(SubMtx)e(*mtx,)g(int)h(type,)g(int)g(mode,)370 737\n+y(int)g(rowid,)f(int)h(colid,)f(int)h(nrow,)g(int)g(ncol,)f(int)h\n (nent,)f(int)h(seed,)g(int)f(strict)h(\\))g(;)227 885\n y Fo(This)c(is)g(used)g(to)h(initialize)h(an)e(ob)5 b(ject)45\n b(to)f(ha)m(v)m(e)g(random)f(en)m(tries)h(and)e(\\(p)s(ossibly\\))h\n (random)g(struc-)227 998 y(ture.)54 b(The)34 b(matrix)h(t)m(yp)s(e)g\n (ma)m(y)h(not)f(b)s(e)f(diagonal,)j(blo)s(c)m(k)f(diagonal,)h(or)e\n (triples.)54 b(If)34 b Fn(strict)46 b(=)i(1)p Fo(,)36\n b(the)227 1111 y(matrix)j(will)f(b)s(e)g(strict)h(lo)m(w)m(er)g(or)g\n@@ -6027,17 +6014,17 @@\n (er)e(triangular,)j(then)f Fn(mtxA)e Fo(m)m(ust)i(ha)m(v)m(e)h(dense)f\n (sub)s(columns)d(or)j(sparse)227 5260 y(columns.)227\n 5407 y Ff(Err)-5 b(or)34 b(che)-5 b(cking:)40 b Fo(If)30\n b Fn(mtxA)g Fo(or)g Fn(mtxB)f Fo(is)i Fn(NULL)p Fo(,)e(an)h(error)g\n (message)i(is)e(prin)m(ted)g(and)g(the)g(program)h(exits.)p\n eop end\n %%Page: 10 10\n-TeXDict begin 10 9 bop 0 100 a Fo(10)p 182 100 1099 4\n-v 1282 w Fn(SubMtx)28 b Fg(:)41 b Ff(DRAFT)30 b Fg(August)g(3,)h(2025)p\n-2801 100 V 111 399 a Fo(2.)46 b Fn(void)h(SubMtx_solveH)d(\\()k(SubMtx)e\n+TeXDict begin 10 9 bop 0 100 a Fo(10)p 182 100 1157 4\n+v 1339 w Fn(SubMtx)29 b Fg(:)41 b Ff(DRAFT)30 b Fg(July)g(1,)h(2024)p\n+2743 100 V 111 399 a Fo(2.)46 b Fn(void)h(SubMtx_solveH)d(\\()k(SubMtx)e\n (*mtxA,)g(SubMtx)g(*mtxB)g(\\))i(;)227 547 y Fo(This)24\n b(metho)s(d)f(is)h(used)g(to)h(solv)m(e)g(\\()p Fm(I)15\n b Fo(+)8 b Fm(A)1598 514 y Fl(H)1665 547 y Fo(\\))p Fm(X)33\n b Fo(=)25 b Fm(B)5 b Fo(,)26 b(where)d Fm(A)i Fo(is)f(strict)h(lo)m(w)m\n (er)g(or)f(upp)s(er)e(triangular.)39 b(The)227 660 y(solution)32\n b Fm(X)38 b Fo(o)m(v)m(erwrites)32 b Fm(B)5 b Fo(,)31\n b(and)f Fn(mtxB)g Fo(m)m(ust)g(ha)m(v)m(e)i(dense)f(columns.)42\n@@ -6110,17 +6097,17 @@\n (prin)m(ted)g(and)g(the)g(program)g(exits.)111 5146 y(2.)46\n b Fn(int)h(SubMtx_nbytesInUse)c(\\()k(SubMtx)g(*mtx)f(\\))i(;)227\n 5294 y Fo(This)36 b(metho)s(d)f(returns)g(the)i(actual)g(n)m(um)m(b)s\n (er)e(of)i(b)m(ytes)g(that)f(are)h(used)f(in)f(the)i(w)m(orkspace)g(o)m\n (wned)f(b)m(y)227 5407 y(this)31 b(ob)5 b(ject.)p eop\n end\n %%Page: 11 11\n-TeXDict begin 11 10 bop 91 100 1099 4 v 1281 100 a Fn(SubMtx)28\n-b Fg(:)41 b Ff(DRAFT)121 b Fg(August)30 b(3,)h(2025)p\n-2708 100 V 1099 w Fo(11)227 399 y Ff(Err)-5 b(or)34 b(che)-5\n+TeXDict begin 11 10 bop 91 100 1157 4 v 1338 100 a Fn(SubMtx)29\n+b Fg(:)41 b Ff(DRAFT)121 b Fg(July)30 b(1,)h(2024)p 2651\n+100 V 1157 w Fo(11)227 399 y Ff(Err)-5 b(or)34 b(che)-5\n b(cking:)40 b Fo(If)30 b Fn(mtx)g Fo(is)g Fn(NULL)p Fo(,)g(an)g(error)g\n (message)h(is)g(prin)m(ted)f(and)g(the)g(program)g(exits.)111\n 606 y(3.)46 b Fn(int)h(SubMtx_nbytesInWorkspace)41 b(\\()48\n b(SubMtx)e(*mtx)h(\\))g(;)227 766 y Fo(This)30 b(metho)s(d)g(returns)f\n (the)h(n)m(um)m(b)s(er)f(of)i(b)m(ytes)g(in)f(the)g(w)m(orkspace)i(o)m\n (wned)e(b)m(y)g(this)g(ob)5 b(ject.)227 926 y Ff(Err)-5\n b(or)34 b(che)-5 b(cking:)40 b Fo(If)30 b Fn(mtx)g Fo(is)g\n@@ -6178,18 +6165,18 @@\n Fo(of)j(the)f Fn(mtx)227 5134 y Fo(ob)5 b(ject)32 b(in)m(to)f(the)f\n Fn(colDV)f Fo(v)m(ector)j(ob)5 b(ject.)227 5294 y Ff(Err)-5\n b(or)30 b(che)-5 b(cking:)38 b Fo(If)26 b Fn(mtx)f Fo(or)h\n Fn(colDV)e Fo(is)i Fn(NULL)p Fo(,)f(or)h(if)g Fn(jcol)f\n Fo(is)h(out)g(of)g(range,)i(an)e(error)f(message)i(is)f(prin)m(ted)227\n 5407 y(and)k(the)h(program)f(exits.)p eop end\n %%Page: 12 12\n-TeXDict begin 12 11 bop 0 100 a Fo(12)p 182 100 1099\n-4 v 1282 w Fn(SubMtx)28 b Fg(:)41 b Ff(DRAFT)30 b Fg(August)g(3,)h\n-(2025)p 2801 100 V 66 399 a Fo(11.)46 b Fn(void)h(SubMtx_fillRowZV)c\n-(\\()48 b(SubMtx)e(*mtx,)g(int)h(irow,)f(ZV)i(*rowZV)e(\\))h(;)227\n+TeXDict begin 12 11 bop 0 100 a Fo(12)p 182 100 1157\n+4 v 1339 w Fn(SubMtx)29 b Fg(:)41 b Ff(DRAFT)30 b Fg(July)g(1,)h(2024)p\n+2743 100 V 66 399 a Fo(11.)46 b Fn(void)h(SubMtx_fillRowZV)c(\\()48\n+b(SubMtx)e(*mtx,)g(int)h(irow,)f(ZV)i(*rowZV)e(\\))h(;)227\n 551 y Fo(This)35 b(metho)s(d)f(is)h(used)f(for)h(complex)h\n (submatrices.)55 b(It)35 b(copies)h(the)f(en)m(tries)h(in)e(ro)m(w)h\n Fn(irow)f Fo(of)i(the)f Fn(mtx)227 664 y Fo(ob)5 b(ject)32\n b(in)m(to)f(the)f Fn(rowZV)f Fo(v)m(ector)j(ob)5 b(ject.)227\n 816 y Ff(Err)-5 b(or)30 b(che)-5 b(cking:)38 b Fo(If)26\n b Fn(mtx)f Fo(or)h Fn(rowZV)e Fo(is)i Fn(NULL)p Fo(,)f(or)h(if)g\n Fn(irow)f Fo(is)h(out)g(of)g(range,)i(an)e(error)f(message)i(is)f(prin)\n@@ -6252,18 +6239,18 @@\n Fn(SubMtx)e Fo(ob)5 b(ject)37 b(from)f(a)g(binary)f(\\014le.)57\n b(If)36 b(there)g(are)g(no)g(errors)f(in)h(reading)227\n 5407 y(the)30 b(data,)h(the)f(v)-5 b(alue)30 b Fn(1)f\n Fo(is)h(returned.)39 b(If)29 b(an)h(IO)f(error)g(is)h(encoun)m(tered)g\n (from)f Fn(fread)p Fo(,)g(zero)h(is)g(returned.)p eop\n end\n %%Page: 13 13\n-TeXDict begin 13 12 bop 91 100 1099 4 v 1281 100 a Fn(SubMtx)28\n-b Fg(:)41 b Ff(DRAFT)121 b Fg(August)30 b(3,)h(2025)p\n-2708 100 V 1099 w Fo(13)227 399 y(Note,)40 b(if)c(the)g(m)m(txutation)i\n-(v)m(ectors)f(are)g(one-based)f(\\(as)h(for)f(F)-8 b(ortran\\),)39\n+TeXDict begin 13 12 bop 91 100 1157 4 v 1338 100 a Fn(SubMtx)29\n+b Fg(:)41 b Ff(DRAFT)121 b Fg(July)30 b(1,)h(2024)p 2651\n+100 V 1157 w Fo(13)227 399 y(Note,)40 b(if)c(the)g(m)m(txutation)i(v)m\n+(ectors)f(are)g(one-based)f(\\(as)h(for)f(F)-8 b(ortran\\),)39\n b(they)e(are)f(con)m(v)m(erted)i(to)f(zero-)227 511 y(based)30\n b(v)m(ectors.)227 660 y Ff(Err)-5 b(or)34 b(che)-5 b(cking:)40\n b Fo(If)30 b Fn(mtx)g Fo(or)g Fn(fp)g Fo(are)h Fn(NULL)p\n Fo(,)e(an)h(error)g(message)i(is)e(prin)m(ted)g(and)g(zero)h(is)g\n (returned.)111 843 y(4.)46 b Fn(int)h(SubMtx_writeToFile)c(\\()k(SubMtx)\n g(*mtx,)f(char)h(*fn)f(\\))i(;)227 991 y Fo(This)32 b(metho)s(d)g\n (writes)g(a)h Fn(SubMtx)e Fo(ob)5 b(ject)33 b(to)h(a)e(\\014le.)47\n@@ -6331,32 +6318,32 @@\n (follo)m(w)h(the)f(Matlab)h(and)e(F)m(OR)-8 b(TRAN)227\n 5146 y(con)m(v)m(en)m(tion.)227 5294 y Ff(Err)j(or)45\n b(che)-5 b(cking:)63 b Fo(If)42 b Fn(mtx)p Fo(,)i Fn(mtxname)c\n Fo(or)i Fn(fp)f Fo(are)h Fn(NULL)p Fo(,)f(an)h(error)f(message)i(is)f\n (prin)m(ted)g(and)f(zero)i(is)227 5407 y(returned.)p\n eop end\n %%Page: 14 14\n-TeXDict begin 14 13 bop 0 100 a Fo(14)p 182 100 1099\n-4 v 1282 w Fn(SubMtx)28 b Fg(:)41 b Ff(DRAFT)30 b Fg(August)g(3,)h\n-(2025)p 2801 100 V 0 399 a Fe(1.3)135 b(Driv)l(er)46\n-b(programs)g(for)f(the)g Fd(SubMtx)58 b(object)111 629\n-y Fo(1.)46 b Fn(testIO)g(msglvl)g(msgFile)g(inFile)g(outFile)227\n-782 y Fo(This)c(driv)m(er)f(program)h(reads)g(in)g(a)g\n-Fn(SubMtx)e Fo(ob)5 b(ject)43 b(from)f Fn(inFile)e Fo(and)i(writes)g\n-(out)g(the)g(ob)5 b(ject)43 b(to)227 895 y Fn(outFile)337\n-1114 y Fi(\\210)i Fo(The)28 b Fn(msglvl)f Fo(parameter)i(determines)g\n-(the)g(amoun)m(t)g(of)f(output)h(|)f(taking)i Fn(msglvl)46\n-b(>=)h(3)28 b Fo(means)427 1227 y(the)j Fn(SubMtx)e Fo(ob)5\n-b(ject)31 b(is)f(written)h(to)g(the)f(message)i(\\014le.)337\n-1376 y Fi(\\210)45 b Fo(The)33 b Fn(msgFile)e Fo(parameter)j(determines)\n-f(the)h(message)g(\\014le)f(|)h(if)f Fn(msgFile)e Fo(is)i\n-Fn(stdout)p Fo(,)g(then)g(the)427 1489 y(message)27 b(\\014le)f(is)g\n-Ff(stdout)p Fo(,)i(otherwise)e(a)h(\\014le)f(is)f(op)s(ened)g(with)h\n-Ff(app)-5 b(end)28 b Fo(status)e(to)g(receiv)m(e)i(an)m(y)e(output)427\n-1602 y(data.)337 1750 y Fi(\\210)45 b Fo(The)35 b Fn(inFile)e\n+TeXDict begin 14 13 bop 0 100 a Fo(14)p 182 100 1157\n+4 v 1339 w Fn(SubMtx)29 b Fg(:)41 b Ff(DRAFT)30 b Fg(July)g(1,)h(2024)p\n+2743 100 V 0 399 a Fe(1.3)135 b(Driv)l(er)46 b(programs)g(for)f(the)g\n+Fd(SubMtx)58 b(object)111 629 y Fo(1.)46 b Fn(testIO)g(msglvl)g\n+(msgFile)g(inFile)g(outFile)227 782 y Fo(This)c(driv)m(er)f(program)h\n+(reads)g(in)g(a)g Fn(SubMtx)e Fo(ob)5 b(ject)43 b(from)f\n+Fn(inFile)e Fo(and)i(writes)g(out)g(the)g(ob)5 b(ject)43\n+b(to)227 895 y Fn(outFile)337 1114 y Fi(\\210)i Fo(The)28\n+b Fn(msglvl)f Fo(parameter)i(determines)g(the)g(amoun)m(t)g(of)f\n+(output)h(|)f(taking)i Fn(msglvl)46 b(>=)h(3)28 b Fo(means)427\n+1227 y(the)j Fn(SubMtx)e Fo(ob)5 b(ject)31 b(is)f(written)h(to)g(the)f\n+(message)i(\\014le.)337 1376 y Fi(\\210)45 b Fo(The)33\n+b Fn(msgFile)e Fo(parameter)j(determines)f(the)h(message)g(\\014le)f(|)h\n+(if)f Fn(msgFile)e Fo(is)i Fn(stdout)p Fo(,)g(then)g(the)427\n+1489 y(message)27 b(\\014le)f(is)g Ff(stdout)p Fo(,)i(otherwise)e(a)h\n+(\\014le)f(is)f(op)s(ened)g(with)h Ff(app)-5 b(end)28\n+b Fo(status)e(to)g(receiv)m(e)i(an)m(y)e(output)427 1602\n+y(data.)337 1750 y Fi(\\210)45 b Fo(The)35 b Fn(inFile)e\n Fo(parameter)i(is)g(the)h(input)e(\\014le)h(for)f(the)h\n Fn(SubMtx)f Fo(ob)5 b(ject.)55 b(It)35 b(m)m(ust)g(b)s(e)f(of)h(the)g\n (form)427 1863 y Fn(*.submtxf)18 b Fo(or)i Fn(*.submtxb)p\n Fo(.)35 b(The)20 b Fn(SubMtx)e Fo(ob)5 b(ject)22 b(is)e(read)g(from)g\n (the)g(\\014le)h(via)g(the)f Fn(SubMtx)p 3559 1863 29\n 4 v 33 w(readFromFile\\(\\))427 1976 y Fo(metho)s(d.)337\n 2125 y Fi(\\210)45 b Fo(The)29 b Fn(outFile)e Fo(parameter)i(is)g(the)h\n@@ -6408,18 +6395,18 @@\n b(When)40 b(the)g(output)g(\\014le)g(is)g(loaded)h(in)m(to)227\n 5075 y(matlab,)32 b(the)e(last)h(lines)g(to)g(the)g(screen)f(con)m\n (tain)i(the)e(errors.)337 5294 y Fi(\\210)45 b Fo(The)f\n Fn(msglvl)e Fo(parameter)j(determines)f(the)g(amoun)m(t)h(of)f(output.)\n 82 b(Use)44 b Fn(msglvl)i(=)i(1)c Fo(for)g(just)427 5407\n y(timing)31 b(output.)p eop end\n %%Page: 15 15\n-TeXDict begin 15 14 bop 91 100 1099 4 v 1281 100 a Fn(SubMtx)28\n-b Fg(:)41 b Ff(DRAFT)121 b Fg(August)30 b(3,)h(2025)p\n-2708 100 V 1099 w Fo(15)337 399 y Fi(\\210)45 b Fo(The)33\n-b Fn(msgFile)e Fo(parameter)j(determines)f(the)h(message)g(\\014le)f(|)h\n+TeXDict begin 15 14 bop 91 100 1157 4 v 1338 100 a Fn(SubMtx)29\n+b Fg(:)41 b Ff(DRAFT)121 b Fg(July)30 b(1,)h(2024)p 2651\n+100 V 1157 w Fo(15)337 399 y Fi(\\210)45 b Fo(The)33 b\n+Fn(msgFile)e Fo(parameter)j(determines)f(the)h(message)g(\\014le)f(|)h\n (if)f Fn(msgFile)e Fo(is)i Fn(stdout)p Fo(,)g(then)g(the)427\n 511 y(message)27 b(\\014le)f(is)g Ff(stdout)p Fo(,)i(otherwise)e(a)h\n (\\014le)f(is)f(op)s(ened)g(with)h Ff(app)-5 b(end)28\n b Fo(status)e(to)g(receiv)m(e)i(an)m(y)e(output)427 624\n y(data.)337 772 y Fi(\\210)45 b Fo(The)30 b Fn(type)f\n Fo(parameter)i(m)m(ust)f(b)s(e)g(one)h(of)f(1)h(\\()p\n Fn(SPOOLES)p 2342 772 29 4 v 33 w(REAL)p Fo(\\))f(or)g(2)h(\\()p\n@@ -6498,19 +6485,19 @@\n b(When)35 b(the)g(output)f(\\014le)h(is)227 5078 y(loaded)c(in)m(to)g\n (matlab,)h(the)e(last)i(lines)e(to)h(the)g(screen)f(con)m(tain)i(the)f\n (errors.)337 5294 y Fi(\\210)45 b Fo(The)f Fn(msglvl)e\n Fo(parameter)j(determines)f(the)g(amoun)m(t)h(of)f(output.)82\n b(Use)44 b Fn(msglvl)i(=)i(1)c Fo(for)g(just)427 5407\n y(timing)31 b(output.)p eop end\n %%Page: 16 16\n-TeXDict begin 16 15 bop 0 100 a Fo(16)p 182 100 1099\n-4 v 1282 w Fn(SubMtx)28 b Fg(:)41 b Ff(DRAFT)30 b Fg(August)g(3,)h\n-(2025)p 2801 100 V 337 399 a Fi(\\210)45 b Fo(The)33 b\n-Fn(msgFile)e Fo(parameter)j(determines)f(the)h(message)g(\\014le)f(|)h\n-(if)f Fn(msgFile)e Fo(is)i Fn(stdout)p Fo(,)g(then)g(the)427\n+TeXDict begin 16 15 bop 0 100 a Fo(16)p 182 100 1157\n+4 v 1339 w Fn(SubMtx)29 b Fg(:)41 b Ff(DRAFT)30 b Fg(July)g(1,)h(2024)p\n+2743 100 V 337 399 a Fi(\\210)45 b Fo(The)33 b Fn(msgFile)e\n+Fo(parameter)j(determines)f(the)h(message)g(\\014le)f(|)h(if)f\n+Fn(msgFile)e Fo(is)i Fn(stdout)p Fo(,)g(then)g(the)427\n 511 y(message)27 b(\\014le)f(is)g Ff(stdout)p Fo(,)i(otherwise)e(a)h\n (\\014le)f(is)f(op)s(ened)g(with)h Ff(app)-5 b(end)28\n b Fo(status)e(to)g(receiv)m(e)i(an)m(y)e(output)427 624\n y(data.)337 767 y Fi(\\210)45 b Fo(The)30 b Fn(type)f\n Fo(parameter)i(m)m(ust)f(b)s(e)g(one)h(of)f(1)h(\\()p\n Fn(SPOOLES)p 2342 767 29 4 v 33 w(REAL)p Fo(\\))f(or)g(2)h(\\()p\n Fn(SPOOLES)p 3190 767 V 32 w(COMPLEX)p Fo(\\).)337 910\n@@ -6590,19 +6577,19 @@\n y(columns,)i(and)d Fm(A)h Fo(has)f(dense)h(ro)m(ws)g(or)f(columns)h(or)\n g(sparse)f(ro)m(ws)h(or)f(columns.)63 b(Use)38 b(the)g(script)g(\\014le)\n 227 5294 y Fn(do)p 329 5294 V 34 w(solveupdH)32 b Fo(for)j(testing.)54\n b(When)35 b(the)f(output)h(\\014le)f(is)h(loaded)g(in)m(to)h(matlab,)g\n (the)f(last)h(lines)e(to)i(the)227 5407 y(screen)31 b(con)m(tain)g(the)\n g(errors.)p eop end\n %%Page: 17 17\n-TeXDict begin 17 16 bop 91 100 1099 4 v 1281 100 a Fn(SubMtx)28\n-b Fg(:)41 b Ff(DRAFT)121 b Fg(August)30 b(3,)h(2025)p\n-2708 100 V 1099 w Fo(17)337 399 y Fi(\\210)45 b Fo(The)f\n-Fn(msglvl)e Fo(parameter)j(determines)f(the)g(amoun)m(t)h(of)f(output.)\n-82 b(Use)44 b Fn(msglvl)i(=)i(1)c Fo(for)g(just)427 511\n+TeXDict begin 17 16 bop 91 100 1157 4 v 1338 100 a Fn(SubMtx)29\n+b Fg(:)41 b Ff(DRAFT)121 b Fg(July)30 b(1,)h(2024)p 2651\n+100 V 1157 w Fo(17)337 399 y Fi(\\210)45 b Fo(The)f Fn(msglvl)e\n+Fo(parameter)j(determines)f(the)g(amoun)m(t)h(of)f(output.)82\n+b(Use)44 b Fn(msglvl)i(=)i(1)c Fo(for)g(just)427 511\n y(timing)31 b(output.)337 655 y Fi(\\210)45 b Fo(The)33\n b Fn(msgFile)e Fo(parameter)j(determines)f(the)h(message)g(\\014le)f(|)h\n (if)f Fn(msgFile)e Fo(is)i Fn(stdout)p Fo(,)g(then)g(the)427\n 767 y(message)27 b(\\014le)f(is)g Ff(stdout)p Fo(,)i(otherwise)e(a)h\n (\\014le)f(is)f(op)s(ened)g(with)h Ff(app)-5 b(end)28\n b Fo(status)e(to)g(receiv)m(e)i(an)m(y)e(output)427 880\n y(data.)337 1024 y Fi(\\210)45 b Fo(The)30 b Fn(type)f\n@@ -6679,21 +6666,21 @@\n (en)m(tries)g(in)f(the)h(submatrix,)g(when)e(appro-)427\n 5121 y(priate.)337 5264 y Fi(\\210)45 b Fo(The)30 b Fn(nrowX)f\n Fo(parameter)i(is)f(the)h(n)m(um)m(b)s(er)e(of)i(ro)m(ws)f(in)g\n Fm(X)7 b Fo(,)31 b Fn(nrowA)24 b Fj(\\024)h Fn(nrowY)n\n Fo(.)337 5407 y Fi(\\210)45 b Fo(The)30 b Fn(seed)f Fo(parameter)i(is)g\n (a)f(random)g(n)m(um)m(b)s(er)f(seed.)p eop end\n %%Page: 18 18\n-TeXDict begin 18 17 bop 0 100 a Fo(18)p 182 100 1099\n-4 v 1282 w Fn(SubMtx)28 b Fg(:)41 b Ff(DRAFT)30 b Fg(August)g(3,)h\n-(2025)p 2801 100 V 111 399 a Fo(9.)46 b Fn(test_sort)g(msglvl)g\n-(msgFile)f(type)i(mode)g(nrowA)f(ncolA)g(nentA)h(seed)227\n-549 y Fo(This)22 b(driv)m(er)h(program)f(tests)i(the)f\n-Fn(SubMtx)p 1688 549 29 4 v 32 w(sortRowsUp\\(\\))d Fo(and)i\n-Fn(SubMtx)p 2773 549 V 33 w(sortColumnsUp\\(\\))c Fo(metho)s(ds.)227\n+TeXDict begin 18 17 bop 0 100 a Fo(18)p 182 100 1157\n+4 v 1339 w Fn(SubMtx)29 b Fg(:)41 b Ff(DRAFT)30 b Fg(July)g(1,)h(2024)p\n+2743 100 V 111 399 a Fo(9.)46 b Fn(test_sort)g(msglvl)g(msgFile)f(type)\n+i(mode)g(nrowA)f(ncolA)g(nentA)h(seed)227 549 y Fo(This)22\n+b(driv)m(er)h(program)f(tests)i(the)f Fn(SubMtx)p 1688\n+549 29 4 v 32 w(sortRowsUp\\(\\))d Fo(and)i Fn(SubMtx)p\n+2773 549 V 33 w(sortColumnsUp\\(\\))c Fo(metho)s(ds.)227\n 662 y(Use)34 b(the)g(script)f(\\014le)h Fn(do)p 1073 662\n V 33 w(sort)f Fo(for)g(testing.)51 b(When)33 b(the)h(output)f(\\014le)g\n (is)h(loaded)g(in)m(to)g(matlab,)h(the)f(last)227 775\n y(lines)d(to)g(the)g(screen)f(con)m(tain)i(the)e(errors.)337\n 987 y Fi(\\210)45 b Fo(The)f Fn(msglvl)e Fo(parameter)j(determines)f\n (the)g(amoun)m(t)h(of)f(output.)82 b(Use)44 b Fn(msglvl)i(=)i(1)c\n Fo(for)g(just)427 1100 y(timing)31 b(output.)337 1246\n", "details": [{"source1": "ps2ascii {}", "source2": "ps2ascii {}", "unified_diff": "@@ -23,15 +23,15 @@\n \u2013 dense by columns, i.e., dense and column major\r\n \u2013 sparse using dense subrows\r\n \u2013 sparse using dense subcolumns\r\n \u2013 sparse using sparse rows\r\n \u2013 sparse using sparse columns\r\n \u2013 sparse using (i,j,ai,j) triples\r\n 1\r\n- 2 SubMtx : DRAFT August 3, 2025\r\n+ 2 SubMtx : DRAFT July 1, 2024\r\n \u2013 a diagonal matrix\r\n \u2013 a block diagonal symmetric matrix where the blocks are 1 \u00d7 1 or 2 \u00d7 2, used in the\r\n symmetric inde\ufb01nite factorization.\r\n \u2013 a block diagonal Hermitian matrix where the blocks are 1 \u00d7 1 or 2 \u00d7 2, used in the\r\n hermitian inde\ufb01nite factorization.\r\n \u2022 The SubMtx object can be self-contained, in the sense that its structure contains a DV object\r\n that manages a contiguous vector of workspace that is used to store all information about the\r\n@@ -60,15 +60,15 @@\n information is better than using explicit structure \ufb01elds. For example, if we want to extend the\r\n object by allowing another storage format, we do not need to increase the size of the structure at\r\n all \u2014 it is only necessary to provide one or more instance methods to return the new information.\r\n 1.1 Data Structure\r\n The SubMtx structure has the following \ufb01elds.\r\n \u2022 int type : type of entries.\r\n \u2013 SPOOLES REAL : double precision real entries.\r\n- SubMtx : DRAFT August 3, 2025 3\r\n+ SubMtx : DRAFT July 1, 2024 3\r\n \u2013 SPOOLES COMPLEX : double precision complex entries.\r\n \u2022 int mode : storage mode.\r\n \u2013 SUBMTX DENSE ROWS : dense, storage by rows.\r\n \u2013 SUBMTX DENSE COLUMNS : dense, storage by columns.\r\n \u2013 SUBMTX SPARSE ROWS : sparse, storage by rows.\r\n \u2013 SUBMTX SPARSE COLUMNS : sparse, storage by columns.\r\n \u2013 SUBMTX SPARSE TRIPLES : sparse, storage by (i,j,ai,j) triples.\r\n@@ -92,15 +92,15 @@\n \u2022 SUBMTX IS DENSE ROWS(mtx)is 1 if mtx has dense rows as its storage format, and 0 otherwise.\r\n \u2022 SUBMTX IS DENSE COLUMNS(mtx) is 1 if mtx has dense columns as its storage format, and 0\r\n otherwise.\r\n \u2022 SUBMTX IS SPARSE ROWS(mtx) is 1 if mtx has sparse rows as its storage format, and 0 other-\r\n wise.\r\n \u2022 SUBMTX IS SPARSE COLUMNS(mtx) is 1 if mtx has sparse columns as its storage format, and 0\r\n otherwise.\r\n- 4 SubMtx : DRAFT August 3, 2025\r\n+ 4 SubMtx : DRAFT July 1, 2024\r\n \u2022 SUBMTX IS SPARSE TRIPLES(mtx) is 1 if mtx has sparse triples as its storage format, 0 other-\r\n wise.\r\n \u2022 SUBMTX IS DENSE SUBROWS(mtx) is 1 if mtx has dense subrows as its storage format, 0 other-\r\n wise.\r\n \u2022 SUBMTX IS DENSE SUBCOLUMNS(mtx) is 1 if mtx has dense subcolumns as its storage format,\r\n 0 otherwise.\r\n \u2022 SUBMTX IS DIAGONAL(mtx) is 1 if mtx is diagonal, 0 otherwise.\r\n@@ -126,15 +126,15 @@\n This method clears the object and free\u2019s any owned data by invoking the clearData()\r\n methodsforitsinternal DVobject. Thereis a concluding call to SubMtx setDefaultFields().\r\n Error checking: If mtx is NULL, an error message is printed and the program exits.\r\n 4. void SubMtx_free ( SubMtx *mtx ) ;\r\n This method releases any storage by a call to SubMtx clearData() and then frees the space\r\n for mtx.\r\n Error checking: If mtx is NULL, an error message is printed and the program exits.\r\n- SubMtx : DRAFT August 3, 2025 5\r\n+ SubMtx : DRAFT July 1, 2024 5\r\n 1.2.2 Instance methods\r\n 1. void SubMtx_ids ( SubMtx *mtx, int *prowid, int *pcolid ) ;\r\n This method \ufb01lls *prowid with the row id and *pcolid with the column id of the object.\r\n Error checking: If mtx, prowid or pcolid is NULL, an error message is printed and the program\r\n exits.\r\n 2. void SubMtx_setIds ( SubMtx *mtx, int rowid, int colid ) ;\r\n This method sets the row and column id\u2019s of the matrix.\r\n@@ -163,15 +163,15 @@\n the program exits.\r\n 7. void SubMtx_sparseRowsInfo ( SubMtx *mtx, int *pnrow, int *pnent,\r\n int **psizes, int **pindices, double **pentries ) ;\r\n This method is used when the storage mode is sparse rows. It \ufb01lls *pnrow with the number\r\n of rows, *pnent with the number of matrix entries, *psizes with the base address of the\r\n sizes[nrow]vector that contains the number of entries in each row, *indices with the base\r\n address of the indices[nent] vector that contains the column index for each entry, and\r\n- 6 SubMtx : DRAFT August 3, 2025\r\n+ 6 SubMtx : DRAFT July 1, 2024\r\n *pentries with the base address of entries[nent] vector. The indices and entries for the\r\n rows are stored contiguously.\r\n Error checking: If mtx, pnrow, pnent, psizes, pindices or pentries is NULL, or if the matrix\r\n type is not SUBMTX SPARSE ROWS, an error message is printed and the program exits.\r\n 8. void SubMtx_sparseColumnsInfo ( SubMtx *mtx, int *pncol, int *pnent,\r\n int **psizes, int **pindices, double **pentries ) ;\r\n Thismethodisusedwhenthestoragemodeissparsecolumns. It\ufb01lls*pncolwiththenumber\r\n@@ -204,15 +204,15 @@\n exits.\r\n 11. void SubMtx_denseSubcolumnsInfo ( SubMtx *mtx, int *pncol, int *pnent,\r\n int **pfirstlocs, int **plastlocs, double **pentries ) ;\r\n This method is used when the storage mode is dense subcolumns. It \ufb01lls *pncol with\r\n the number of columns, *pnent with the number of matrix entries, *pfirstlocs with the\r\n base address of the firstlocs[ncol] vector, *plastlocs with the base address of the\r\n lastlocs[ncol]vector, and *pentries with the base address of entries[nent] vector. For\r\n- SubMtx : DRAFT August 3, 2025 7\r\n+ SubMtx : DRAFT July 1, 2024 7\r\n column jcol, the nonzero entries are found in rows [firstlocs[jcol],lastlocs[jcol]]\r\n when firstlocs[jcol] \u2265 0 and firstlocs[jcol] \u2264 lastlocs[jcol]. The entries for the\r\n columns are stored contiguously.\r\n Error checking: If mtx, pnrow, pnent, pfirstlocs, plastlocs or pentries is NULL, or if the\r\n matrix type is not SUBMTX DENSE SUBCOLUMNS, an error message is printed and the program\r\n exits.\r\n 12. void SubMtx_diagonalInfo ( SubMtx *mtx, int *pncol, double **pentries ) ;\r\n@@ -242,15 +242,15 @@\n and 0 \u2264 jcol \u2264 ncol. If the (irow,jcol) entry is present, the return value is the o\ufb00set\r\n from the start of the entries vector. (The o\ufb00set is in terms of complex entries, not double\r\n entries.) Otherwise, -1 is returned.\r\n Error checking: If mtx, pReal or pImag is NULL, or if irow or jcol is out of range, an error\r\n message is printed and the program exits.\r\n 16. void SubMtx_locationOfRealEntry ( SubMtx *mtx, int irow, int jcol,\r\n double **ppValue ) ;\r\n- 8 SubMtx : DRAFT August 3, 2025\r\n+ 8 SubMtx : DRAFT July 1, 2024\r\n If the (irow,jcol) entry is present, this method \ufb01lls *ppValue with a pointer to the entry\r\n in row irow and columnjcol. Otherwise, *ppValue is set to NULL. Note, irow and jcol are\r\n local indices, i.e., 0 \u2264 irow \u2264 nrow and 0 \u2264 jcol \u2264 ncol.\r\n Error checking: If mtx or ppValue is NULL, or if irow or jcol is out of range, an error message\r\n is printed and the program exits.\r\n 17. void SubMtx_locationOfComplexEntry ( SubMtx *mtx, int irow, int jcol,\r\n double **ppReal, double **ppImag ) ;\r\n@@ -278,15 +278,15 @@\n int nrow, int ncol, int nent, int seed ) ;\r\n This is used to initialize an object to have random entries and (possibly) random structure.\r\n The object is \ufb01rst initialized via a call to SubMtx init(). Its matrix entries are then \ufb01lled\r\n with random numbers. If the matrix is sparse, its sparsity pattern is sparse and random,\r\n using nent when applicable. The row and column indices are ascending starting from zero.\r\n Error checking: If mtx is NULL, or if nrow, ncol, inc1 or inc2 is less than or equal to zero,\r\n or if neither inc1 nor inc2 are 1, an error message is printed and the program exits.\r\n- SubMtx : DRAFT August 3, 2025 9\r\n+ SubMtx : DRAFT July 1, 2024 9\r\n 4. void SubMtx_initRandomLowerTriangle ( SubMtx *mtx, int type, int mode,\r\n int rowid, int colid, int nrow, int ncol, int nent, int seed, int strict ) ;\r\n void SubMtx_initRandomUpperTriangle ( SubMtx *mtx, int type, int mode,\r\n int rowid, int colid, int nrow, int ncol, int nent, int seed, int strict ) ;\r\n This is used to initialize an object to have random entries and (possibly) random struc-\r\n ture. The matrix type may not be diagonal, block diagonal, or triples. If strict = 1, the\r\n matrix will be strict lower or upper triangular. The object is \ufb01rst initialized via a call to\r\n@@ -317,15 +317,15 @@\n 1. void SubMtx_solve ( SubMtx *mtxA, SubMtx *mtxB ) ;\r\n This method is used to solve (I + A)X = B (if A is strict lower or upper triangular) or\r\n AX =B (if A is diagonal or block diagonal). The solution X overwrites B, and mtxB must\r\n have dense columns. If A is strict lower triangular, then mtxA must have dense subrows or\r\n sparse rows. If A is strict upper triangular, then mtxA must have dense subcolumns or sparse\r\n columns.\r\n Error checking: If mtxA or mtxB is NULL, an error message is printed and the program exits.\r\n- 10 SubMtx : DRAFT August 3, 2025\r\n+ 10 SubMtx : DRAFT July 1, 2024\r\n 2. void SubMtx_solveH ( SubMtx *mtxA, SubMtx *mtxB ) ;\r\n This method is used to solve (I+AH)X = B, where A is strict lower or upper triangular. The\r\n solution X overwrites B, and mtxB must have dense columns. If A is strict lower triangular,\r\n then mtxA must have dense subrows or sparse rows. If A is strict upper triangular, then mtxA\r\n must have dense subcolumns or sparse columns.\r\n Error checking: If mtxA or mtxB is NULL, an error message is printed and the program exits.\r\n 3. void SubMtx_solveT ( SubMtx *mtxA, SubMtx *mtxB ) ;\r\n@@ -354,15 +354,15 @@\n This method returns the number of bytes required to store the object\u2019s information in its\r\n bu\ufb00er.\r\n Error checking: If nrow or ncol is less than or equal to zero, or if nent is less than to zero,\r\n or if type is invalid, an error message is printed and the program exits.\r\n 2. int SubMtx_nbytesInUse ( SubMtx *mtx ) ;\r\n This method returns the actual number of bytes that are used in the workspace owned by\r\n this object.\r\n- SubMtx : DRAFT August 3, 2025 11\r\n+ SubMtx : DRAFT July 1, 2024 11\r\n Error checking: If mtx is NULL, an error message is printed and the program exits.\r\n 3. int SubMtx_nbytesInWorkspace ( SubMtx *mtx ) ;\r\n This method returns the number of bytes in the workspace owned by this object.\r\n Error checking: If mtx is NULL, an error message is printed and the program exits.\r\n 4. void SubMtx_setNbytesInWorkspace ( SubMtx *mtx, int nbytes ) ;\r\n This method sets the number of bytes in the workspace of this object. If nbytes is less than\r\n the present number of bytes, the workspace is not resized.\r\n@@ -387,15 +387,15 @@\n Error checking: If mtx or rowDV is NULL, or if irow is out of range, an error message is printed\r\n and the program exits.\r\n 10. void SubMtx_fillColumnDV ( SubMtx *mtx, int jcol, DV *rowDV ) ;\r\n This method is used for real submatrices. It copies the entries in column jcol of the mtx\r\n object into the colDV vector object.\r\n Error checking: If mtx or colDV is NULL, or if jcol is out of range, an error message is printed\r\n and the program exits.\r\n- 12 SubMtx : DRAFT August 3, 2025\r\n+ 12 SubMtx : DRAFT July 1, 2024\r\n 11. void SubMtx_fillRowZV ( SubMtx *mtx, int irow, ZV *rowZV ) ;\r\n This method is used for complex submatrices. It copies the entries in row irow of the mtx\r\n object into the rowZV vector object.\r\n Error checking: If mtx or rowZV is NULL, or if irow is out of range, an error message is printed\r\n and the program exits.\r\n 12. void SubMtx_fillColumnZV ( SubMtx *mtx, int jcol, ZV *rowZV ) ;\r\n This method is used for complex submatrices. It copies the entries in column jcol of the mtx\r\n@@ -422,15 +422,15 @@\n the data, the value 1 is returned. If an IO error is encountered from fscanf, zero is returned.\r\n Note, if the mtxutation vectors are one-based (as for Fortran), they are converted to zero-\r\n based vectors.\r\n Error checking: If mtx or fp are NULL, an error message is printed and zero is returned.\r\n 3. int SubMtx_readFromBinaryFile ( SubMtx *mtx, FILE *fp ) ;\r\n This method reads in a SubMtx object from a binary \ufb01le. If there are no errors in reading\r\n the data, the value 1 is returned. If an IO error is encountered from fread, zero is returned.\r\n- SubMtx : DRAFT August 3, 2025 13\r\n+ SubMtx : DRAFT July 1, 2024 13\r\n Note, if the mtxutation vectors are one-based (as for Fortran), they are converted to zero-\r\n based vectors.\r\n Error checking: If mtx or fp are NULL, an error message is printed and zero is returned.\r\n 4. int SubMtx_writeToFile ( SubMtx *mtx, char *fn ) ;\r\n This method writes a SubMtx object to a \ufb01le. It tries to open the \ufb01le and if it is successful,\r\n it then calls SubMtx writeFromFormattedFile()or SubMtx writeFromBinaryFile(),closes\r\n the \ufb01le and returns the value returned from the called routine.\r\n@@ -457,15 +457,15 @@\n for complex matrices, or\r\n a(10,5) = -1.550328201511e-01 ;\r\n for real matrices, where mtxname = \"a\". The matrix indices come from the rowind[]\r\n and colind[] vectors, and are incremented by one to follow the Matlab and FORTRAN\r\n convention.\r\n Error checking: If mtx, mtxname or fp are NULL, an error message is printed and zero is\r\n returned.\r\n- 14 SubMtx : DRAFT August 3, 2025\r\n+ 14 SubMtx : DRAFT July 1, 2024\r\n 1.3 Driver programs for the SubMtx object\r\n 1. testIO msglvl msgFile inFile outFile\r\n This driver program reads in a SubMtx object from inFile and writes out the object to\r\n outFile\r\n \u2022 The msglvl parameter determines the amount of output \u2014 taking msglvl >= 3 means\r\n the SubMtx object is written to the message \ufb01le.\r\n \u2022 The msgFile parameter determines the message \ufb01le \u2014 if msgFile is stdout, then the\r\n@@ -494,15 +494,15 @@\n 3. test_solve msglvl msgFile type mode nrowA nentA ncolB seed\r\n This driver program tests the SubMtx solve() method which tests the solve AX = B when\r\n A is diagonal or block diagonal, and (I + A)X = B otherwise (A is strict upper or lower\r\n triangular). Use the script \ufb01le do solve for testing. When the output \ufb01le is loaded into\r\n matlab, the last lines to the screen contain the errors.\r\n \u2022 The msglvl parameter determines the amount of output. Use msglvl = 1 for just\r\n timing output.\r\n- SubMtx : DRAFT August 3, 2025 15\r\n+ SubMtx : DRAFT July 1, 2024 15\r\n \u2022 The msgFile parameter determines the message \ufb01le \u2014 if msgFile is stdout, then the\r\n message \ufb01le is stdout, otherwise a \ufb01le is opened with append status to receive any output\r\n data.\r\n \u2022 The type parameter must be one of 1 (SPOOLES REAL) or 2 (SPOOLES COMPLEX).\r\n \u2022 Themodeparametermustbeoneof2(SUBMTX SPARSE ROWS),3(SUBMTX SPARSE COLUMNS),\r\n 5 (SUBMTX DENSE SUBROWS), 6 (SUBMTX DENSE SUBCOLUMNS), 7 (SUBMTX DIAGONAL),\r\n 8 (SUBMTX BLOCK DIAGONAL SYM) or 9 (SUBMTX BLOCK DIAGONAL HERM).\r\n@@ -534,15 +534,15 @@\n T\r\n This driver program tests the SubMtx solve() method which tests the solve (I +A )X = B\r\n when A is strict upper or lower triangular and has dense subrows, dense subcolumns, sparse\r\n rows, or sparse columns. Use the script \ufb01le do solveT for testing. When the output \ufb01le is\r\n loaded into matlab, the last lines to the screen contain the errors.\r\n \u2022 The msglvl parameter determines the amount of output. Use msglvl = 1 for just\r\n timing output.\r\n- 16 SubMtx : DRAFT August 3, 2025\r\n+ 16 SubMtx : DRAFT July 1, 2024\r\n \u2022 The msgFile parameter determines the message \ufb01le \u2014 if msgFile is stdout, then the\r\n message \ufb01le is stdout, otherwise a \ufb01le is opened with append status to receive any output\r\n data.\r\n \u2022 The type parameter must be one of 1 (SPOOLES REAL) or 2 (SPOOLES COMPLEX).\r\n \u2022 Themodeparametermustbeoneof2(SUBMTX SPARSE ROWS),3(SUBMTX SPARSE COLUMNS),\r\n 5 (SUBMTX DENSE SUBROWS) or 6 (SUBMTX DENSE SUBCOLUMNS).\r\n \u2022 The nrowA parameter is the number of rows in the matrix.\r\n@@ -573,15 +573,15 @@\n \u2022 The seed parameter is a random number seed.\r\n 7. test_solveupdH msglvl msgFile type mode nrowA nentA ncolB seed\r\n This driver program tests the SubMtx solveupd() method which tests the update Y :=\r\n Y \u2212AH \u2217X, used in the forward solve of a hermitian factorization. X and Y have dense\r\n columns, and A has dense rows or columns or sparse rows or columns. Use the script \ufb01le\r\n do solveupdH for testing. When the output \ufb01le is loaded into matlab, the last lines to the\r\n screen contain the errors.\r\n- SubMtx : DRAFT August 3, 2025 17\r\n+ SubMtx : DRAFT July 1, 2024 17\r\n \u2022 The msglvl parameter determines the amount of output. Use msglvl = 1 for just\r\n timing output.\r\n \u2022 The msgFile parameter determines the message \ufb01le \u2014 if msgFile is stdout, then the\r\n message \ufb01le is stdout, otherwise a \ufb01le is opened with append status to receive any output\r\n data.\r\n \u2022 The type parameter must be 2 (SPOOLES COMPLEX).\r\n \u2022 Themodeparametermustbeoneof0(SUBMTX DENSE ROWS),1(SUBMTX DENSE COLUMNS),\r\n@@ -612,15 +612,15 @@\n \u2022 The ncolY parameter is the number of columns in Y.\r\n \u2022 The nrowA parameter is the number of rows in A, nrowA \u2264 nrowY.\r\n \u2022 The ncolA parameter is the number of columns in A, ncolA \u2264 nrowX.\r\n \u2022 The nentA parameter is the number of nonzero entries in the submatrix, when appro-\r\n priate.\r\n \u2022 The nrowX parameter is the number of rows in X, nrowA \u2264 nrowY.\r\n \u2022 The seed parameter is a random number seed.\r\n- 18 SubMtx : DRAFT August 3, 2025\r\n+ 18 SubMtx : DRAFT July 1, 2024\r\n 9. test_sort msglvl msgFile type mode nrowA ncolA nentA seed\r\n Thisdriver program tests the SubMtx sortRowsUp()and SubMtx sortColumnsUp()methods.\r\n Use the script \ufb01le do sort for testing. When the output \ufb01le is loaded into matlab, the last\r\n lines to the screen contain the errors.\r\n \u2022 The msglvl parameter determines the amount of output. Use msglvl = 1 for just\r\n timing output.\r\n \u2022 The msgFile parameter determines the message \ufb01le \u2014 if msgFile is stdout, then the\r\n"}]}]}, {"source1": "./usr/share/doc/spooles-doc/SubMtxList.ps.gz", "source2": "./usr/share/doc/spooles-doc/SubMtxList.ps.gz", "unified_diff": null, "details": [{"source1": "SubMtxList.ps", "source2": "SubMtxList.ps", "unified_diff": "@@ -10,15 +10,15 @@\n %%EndComments\n %%BeginDefaults\n %%ViewingOrientation: 1 0 0 1\n %%EndDefaults\n %DVIPSWebPage: (www.radicaleye.com)\n %DVIPSCommandLine: dvips main -o SubMtxList.ps\n %DVIPSParameters: dpi=600\n-%DVIPSSource: TeX output 2025.08.03:1317\n+%DVIPSSource: TeX output 2024.07.01:0700\n %%BeginProcSet: tex.pro 0 0\n %!\n /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S\n N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72\n mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0\n 0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{\n landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize\n@@ -1776,23 +1776,22 @@\n /UnderlinePosition -100 def\n /UnderlineThickness 50 def\n end readonly def\n /Encoding 256 array\n 0 1 255 {1 index exch /.notdef put} for\n dup 44 /comma put\n dup 48 /zero put\n+dup 49 /one put\n dup 50 /two put\n-dup 51 /three put\n-dup 53 /five put\n+dup 52 /four put\n dup 58 /colon put\n-dup 65 /A put\n-dup 103 /g put\n-dup 115 /s put\n-dup 116 /t put\n+dup 74 /J put\n+dup 108 /l put\n dup 117 /u put\n+dup 121 /y put\n readonly def\n currentdict end\n currentfile eexec\n D9D66F633B846AB284BCF8B0411B772DE5CE32340DC6F28AF40857E4451976E7\n 5182433CF9F333A38BD841C0D4E68BF9E012EB32A8FFB76B5816306B5EDF7C99\n 8B3A16D9B4BC056662E32C7CD0123DFAEB734C7532E64BBFBF5A60336E646716\n EFB852C877F440D329172C71F1E5D59CE9473C26B8AEF7AD68EF0727B6EC2E0C\n@@ -1973,79 +1972,67 @@\n 7CA1534C4D5B05FC33F83790ECFD7641DF3FB94289E2A1F6E7D29AB1228A867A\n 6E1EF0E9C6F899B491DC18401C2C0A05FFFED46A72C245F7529B8EA55A038082\n 8512307217D2A233C37004085BA3AEE379269F9FA7D0ADB4B19A95CC2AFE686E\n 55D88E47257C1FE6F235FEA295910569FE6DD5995512562359CC821E85A6C7A5\n 79B470A9E340A6985189FF8B6AF914A6B0ECF93F47903221F95DE894A8F05B05\n B7D99CD533EC5F931B18E6B39BECF67FA2D6DD1AEC76772B068BE06335A94C05\n 7A4DDEE77B66101DA855C17AC312600370B34E31F5EC3A01300A8EB60B4C9767\n-1B2FA10DF7E91D3BB34A1B1CE7A0015A57C813E0280D873ADB88440048702D1F\n-77994EE04EC3B4531D6E1888C86A8F0DA6CF1F056F16AB0DD76C862830F89DA4\n-28923B3AA543E0D6E41D3BD283E600BC11F889315EE92C675C109C81065ED1BC\n-82A5583D1B723D50051B0557A367887F5B263014C6E77288B4883C50889473D3\n-3787BAD4BEB88BD1353AFA5B73E61814819537E7FF09F53EF94792BB3DD36ED0\n-002D0E7A6CDAB85A9C17AF5664BCB5A71663B861880F3ECCABC8E7A2FC81A4CC\n-AE7A87503FDC1CE0077BA51ECC7B43B60793FED8E9AAD5BBD03ADD6183DCD26D\n-24A74163611C05562437644EF9B8889FD4F9D311911204FEFD35237486F2D2D0\n-B6783A03BF12EA6D19D6D0F87E4D08515F12F9CBF1961CAA71E0D69FE3C4C4D2\n-7C7FB64ED24F8684C8F00C2BEDEA53EA390CDC0B5BEBD7DD982580B2EA1F1F89\n-CFED5916630DC2BA32BB9180277E1ABC339B3B7DE086717BD93F7FF3681BA5B3\n-FCF671C4B293C2DE4A322F0AA3323A4934444C69F23EF90120B8755482757759\n-C457A435FB8BB4922BD92C5F3D9555D978275C510183E29DFF2FCE4ABBFC18DE\n-76CAD3B486BA12047DD808CD4D521A0FD368E4AE79DE262630983A5D6F0B679D\n-2F005306393C520E1B6987302D029939D94B0178DC55D5264E1FEA468AD4134C\n-8C65B2FBBE8DE8284E8E1F6BFE0B648F44D3DA8E9350D266EDBFD4A7054D9355\n-1E0B185DED37BCF32D3731358F1D707C94109428BAD3CEA456A2A43553E3D2C2\n-F549189201F3D3F715310E3E8C6A2E9AA5141AA9125D203694C7D875C2DD320F\n-C5BCDFC924F6C04DBC7A97349B45ECD0FBD7D2123ED1D3A9F440B1112BE62779\n-47A4592F9285CBD9635EC9091CEC0AFD7E6B6976974081DB9C0E43165BD8584D\n-6CDF08DED287F0883A9FBD351B3F8706BA1E94C7CA487338269482EB8DC1A05D\n-F6632A5D834DE29228C49C5BA65EF7C535A53B380BF4B391F43562147538EE97\n-E799DFC2C40315859F56BBCE9CAE1DF9293F6E2C193ABE7A724EC8F32FA220E7\n-6026877A63E318254F2AF7B1325D63FC4C52B536D3EF354814C2F8F1EEA30569\n-6EF04447DB0F809DF35B4985B9FB4F4BB6087310BE633E76F268B32ABA99CE8E\n-03163DFF4AEDB88E60DD0848C15E90026D7C24D81122EBC07113F9851914A9D5\n-D0E09C2BFDDAF10C5D8208E8329BC0C402F231CD84C95EFDD182AD9756662110\n-274650C7A5BB0D8EFA54EC6C5A49C0EB26701A54779AE8EFBBED824262761602\n-680EDFB38F0FE18C0F501F5AA8BF48A8F0DD3E5E1EBEB872F6F6B23964707B32\n-507FC677B9FDDC990E3828B06420F6F968B2F6AE81E76A2144B1ECE905485616\n-CFB29AC96DDE1F5039935D7E385CC13E34DD7EAF276A2EA3A8BF27FD4205AE13\n-7FE620E42F2CF231C6C8DD8EFC5A6CF081E5660D9ADD730D72D15C02B1E15FF3\n-D741D3B1EB1E666C4E562219033C1E2EF3F96E136998B2E1890395A3637A2C02\n-DE1C46AFCA8D898439F06606A2295D3F7ED6C7DB250C61B6B97A0D5EDDB9657E\n-E790B4E07540BB1026036F4A0D00E7F16FD757AD61D686620C6814B7DCEC43E8\n-FD36D9E75BA554F64548A67D9B0A26E11784E58D4357FC251D71B5D6D8BFDDE0\n-D3BF0E825DA5312C1904AF13C5905C2ADF79C357476183D2EC5A95243235E861\n-2F98D9EE77EF8F8CB3EC6BD358C5ED37DD3AF44D60575E7774BF96F1AE9DFAD1\n-F8646DEDF21D10311854726B8F7D25876BB1EF78E2442B16ED4B851816CF0A27\n-11FDFCE525002A1A7C3E62CD2A3EDE6FAADB026D2F3A46C030ADB22422CA8FF5\n-2545ED58C0D9FB5BDB55FE674301E91A75B005B86BD201D246F7ADACE50419FD\n-AC3312CAC5EB78A36F0E5F62E65AC92129CB574AAC59E0A7C1390DFC61F39D9E\n-D7036742F2F6E64D1EF8157E9CCF65F3EEDC6A8220235978B8E06EB80F649F3E\n-204CFB497F49306EA8E1F7B62305978A28F1E771ED82C6592C71022154E4062A\n-A92335EFC65D6DED9C686899FFD7AA2988740618C03C5E362E1AF352E3BE4602\n-5530C51E5FC8E9082DF79199CC91C50174000D337D86127AC807C5A3C81DDE57\n-7A68AEE7230949B925365C214D77C80E87CEE218ABC94023717EA43BA5D8A7C8\n-8A8B9BD1B767996AE33050E3D922ED0574E3579C57E4BDDAD35883806AFDF260\n-3AB5D83D451583262E580FFDB7A27D82396AF18D92B849A3F7A7E621987D5DF0\n-038F876C6E9CA47FB11AF05F0019191C5DDC5F0177AD421E94BC66D0CCB82F1F\n-93A80836284B095503752C600F72E2C89112ABFA5B76152691264103B268B3E5\n-8816724ADADB38740001A9AACE05C8AF02D72918606DC22EFC8BF0DA0FD12FFE\n-D3A09F8E28057F327BFB633E604B1EAD478637B1D9631650B314CC62D7E0E87F\n-9D3FE1FFA23BB6E3006C3E39BED52F6B0C1C651B5913878F36DA0BF776889165\n-68BA3456B40B8B471CA8FF5238E43D9113E052A2B8D2EAA2433D3F89FCA48AFB\n-5E842913E4ED6DF9623354059CD1F1707B126FED80349787C869883120183EDD\n-249185A55503FAC53898F52170D05CAC62BB742CF9702C0518AED6B27CDC401C\n-932E02143FD916703F360CB31049501B35EF3EDDFED791090D0CFA221FD1DB32\n-7D4759CE07983AE29C258C705D11E7D9481EEAAB9B6BA65CDCF0AA0057BD6FEA\n-ABBFBD3ABF2A7BFB550C3D2A16DC447384A89F3DB6D9C2DBDCA997ABE35A7706\n-633D328AECEDB5BD07070C1B96267FD73B45791DD18194F60D358091FBE88409\n-973529806F3D2C9E6E39091F90A14B560A987E0B9490B9B690FB489B8E253070\n-D7C54447BE0E0A0BFEAEFFB581DC1300E6EC382984673BF0665632404E59B5BF\n-5D5F0A1C956E618C0487751CA5DAE8A95C214F76ED756694EF273679CD2D85CB\n-949DF385BD50491649EFEFDA1574921D7460143D42A100D2C76E55F0BC\n+1B2FA10DF7E91D3BB34A1B1CE7A0015A57C813E0280D873ADB8844004B9BA1CC\n+580D3C6BDA4DC1B80B4365F1C80512453FC5316EC2D928FB731C3D6403E3C18B\n+E8424D644DF5E9A2134229C5C91CA68DB8E85BA2BB40F538F585DA6FA4037718\n+B8053EBBA1E765346BCD5BDAA6C38115D31611D8A87A2238C145F2DA2F92E4DF\n+3987BD9C4D2A3D460E8941A68B125BCD9EE4F9FD262C4C8A71F47A2C81975635\n+F1B981C274C53FA2ACCDE4C9D0A7C62D6C1EFF91CFC6712CA6A9F333C9564FCB\n+2A70F0AD715A79B10A08AB069E2A3C93BC0AED19D0CA10134B8DDDE8AF548DB2\n+3A4AAA9C29682CF135BB767DAA16169A127EB50A7EECEB6480CF56A7D0F8AC56\n+4A5090B3D75A790372886AF568D94C8165975A05BFBFDF1FFBA45F70700BB9E0\n+57F3249EF9E9C8AD9CBCF6E4FD592DC4CDD2CC7C0BC3130C1059096C657BE453\n+A2CBACE93420210E27AF56CA229BD6D982FB68B3FDC6D44478B922C4231C47EE\n+E500232F6C11D92DEB955F66DF52B92B22E7352790CC2DCBAC53965D57AC2920\n+68B7D520DE25047146EFEB06B9AD4E2A94243C7E5239F0BC2FC312B16051D52C\n+0B92C217B6B42997321AE4F8BB066754B7AA3F15069EF59224E8A442CE471AA7\n+E8049A3DD9EDA09CCEE4998998661CF7DB35E952F6C65DAEB3013951C59F3E09\n+157F313B0237876E1C0190F0473819570B8C0205AADF05D787CC00979CFB327A\n+289382B22DDA6F12804ED0ED5B179E36A995A2A59E1B66E75130DBE9109C813B\n+94403E0DEA8314A1E9DB474D7FA83C0BAFD08033E6A6215844C1D26BE15F1251\n+A1605E8DF9A9C601ED37379530BC1C82BE5463C6C711C5652BFD6262485AA9CA\n+B8C4A117593001D08D980041E2A83C190DCE8E6CD3D334E5CC19FC05DB30F7F7\n+24A305C4DBB31F0651392B99D44B4302333BDF7E326FD256DD75D309C6E73F85\n+FA71B35FD1F9BEFF4C7A1076362EEB0A85492933B6006086A7B8C1928CF2D1EE\n+FD4344409257BB802C117E739960821CD3C88BFBA5669FF16F610AD638AF3677\n+8674C985E6767253ED5769F71BEA5E9BB02A751F9E62EE2B18AC19D975FDEAE9\n+8B8822367FF177A7E850766DE99ED3366D46464612926430012212A90F8E85F4\n+4760B40D5B86B90819EE410382D22D8ED82D0B0AB00C93E10CD365F8766D1C87\n+B4A866021FB6F6AC3D250CC601989B1B8FE6B1098A48282D2CF258BF38FEE940\n+CE0141FB1344156DE7712A8F2DBF700174F12616EE17C852210D96D03E5E6635\n+D439EB6E84A383DDD32AD72DADE6F931FDBABBDC726C36081C96018FC95EAE13\n+DA1F8DBC2D8355AC9792649653225393F4A7A88F3B9443FEEB75E2C15BF93F09\n+CCBA7FABC022BE26F4C28152D5DA6D690494AD4EC0DA1B598AE12536BADF88B5\n+5E20EB452546389F57FF55459567B453AE1831C57D22FA6A4FDF441EDAFDB7FB\n+4F4B707C1FF9159C40F7B5DD519FC07815EE91B8D756B6C18500BCF47D0D9E45\n+6A2D51B6AA5AEAAC9AB2DEF7F0FDE957B6C179CBADEECAC7E9CEC248AB135EB4\n+FBF83D002FF859B574EF36C371540EF2BCFCEF5C2E7863AEDD7C3C965103453B\n+023A9CEC1D5C45B88827ADF4AE0C6746F3C7E6A944427DAEC493601019583A16\n+0F846CE00EAE89EEFF9CE68A0E1D6EBB8FDD8A45D1BF399B36A8328EC957CB8B\n+D842A56269C8C9A6B472C9E65BCBC090606B4E8A7EF4ABDEA120C9F9B3969A1C\n+2EB102925F4E155160E58000E1ADB0D19E10EFD96F6C3225EEE8FC24D122C069\n+C11F1A69DC383F7DACD2F3929BD135CE69787C6E7560AC4B683FE5D9AAFD2E89\n+EE6D95E38C9B726B416E28169A11E29559DBA9AECD714CF318FCB78F34A0E562\n+9C00FE0C6D5A848557D9A82EC2BEFCD30B5EDC0B23C5BA9F812C864394C8B9D1\n+B08BAC9CF94E70FF842306ACCFE6E39A56777C712904A3AB29FBD19275E19E06\n+B35B37CFFFCEC81CAF2D85A853663FAFCFFED1EA77064AA28C15BC94910683BC\n+D09513079DE9EE18E97CC2403DD206516D7F652A3459870757F34EEDCEF952C3\n+FE8004F4716B5BD6774E455010B0BB1E61FCD66B9F14F9BBCCF3E55A158EE96E\n+9A05BDFDDC7706D4BC28FDDC4004EF3A430C607EBDF115E0C996454D70C8BB42\n+D7C83A454B116663D648C23CE2B33365810DE2B64D4AE011BC8043BC3E05B94D\n+1700F859C6AFC6515C1C42FA104EE3E8F3FA5F80252C2E79B00ED27F675FFD09\n+B50BF7A3C63CF4856F909DF969D7DD3EA05CABDD1E71A58CFC2AB5F614B4E5E0\n+25CF92E9FB66ACEBE05DF5E033DA8AD3EE32D94C02D98DD7DA99FAB5AEA595C3\n+2987DC122F0242D76B782349E4069DE0CDD6EF4375C680CBFE4C8F24F2AE89BF\n+7785F5EA7435A91500F265022C307E8ADEAAE1C6\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n@@ -3311,16 +3298,16 @@\n 59 4[44 44 3[56 62 93 31 2[31 62 2[51 62 50 1[54 11[86\n 5[84 5[42 6[80 13[56 56 56 56 2[31 46[{}23 99.6264 /CMBX12\n rf /Fc 135[62 2[62 62 62 9[62 6[62 14[62 5[62 62 76[{}9\n 119.552 /CMTT12 rf /Fd 134[71 3[75 52 53 55 1[75 67 75\n 112 3[37 75 1[41 61 75 60 1[65 13[75 2[92 11[103 17[67\n 67 2[37 46[{}22 119.552 /CMBX12 rf /Fe 141[38 2[46 51\n 2[42 1[28 46 42 1[42 1[42 14[65 1[66 11[59 62 69 2[68\n-6[28 58[{}16 90.9091 /CMTI10 rf /Ff 138[51 35 36 11[45\n-37[68 6[25 4[45 1[45 45 1[45 3[25 44[{}11 90.9091 /CMSL10\n+6[28 58[{}16 90.9091 /CMTI10 rf /Ff 134[48 3[51 8[25\n+33[47 15[25 5[45 1[45 45 45 3[25 44[{}10 90.9091 /CMSL10\n rf\n %DVIPSBitmapFont: Fg tcrm1095 10.95 1\n [/Grave/Acute/Circumflex/Tilde/Dieresis/Hungarumlaut/Ring/Caron/Breve/Macron\n /Dotaccent/cedilla/ogonek/quotesinglbase.ts1 4{/.notdef}repeat\n /quotedblbase.ts1/.notdef/.notdef/twelveudash/threequartersemdash\n /afii61664.cap/arrowleft/arrowright/tieaccentlowercase/tieaccentcapital\n /tieaccentlowercase.new/tieaccentcapital.new/.notdef/afii61664.asc/uni2422 3\n@@ -3433,20 +3420,20 @@\n (ciated)g(with)e(a)g Fh(SubMtxList)e Fi(ob)5 b(ject)36\n b(is)g(optional,)i(for)d(example,)i(it)f(is)g(not)f(needed)0\n 5407 y(during)22 b(a)i(serial)g(factorization)i(nor)d(a)h(MPI)f(solv)m\n (e.)40 b(In)23 b(the)g(latter)i(case)f(there)g(is)f(one)h\n Fh(SubMtxList)d Fi(p)s(er)h(pro)s(cess.)1927 5656 y(1)p\n eop end\n %%Page: 2 2\n-TeXDict begin 2 1 bop 0 100 a Fi(2)p 136 100 1027 4 v\n-1208 w Fh(SubMtxList)28 b Ff(:)41 b Fe(DRAFT)30 b Ff(August)g(3,)h\n-(2025)p 2874 100 V 0 399 a Fi(F)-8 b(or)26 b(a)f(m)m(ultithreaded)h\n-(solv)m(e)g(there)g(is)f(one)g Fh(SubMtxList)e Fi(ob)5\n-b(ject)26 b(that)g(is)f(shared)f(b)m(y)h(all)h(threads.)39\n-b(The)25 b(m)m(utual)0 511 y(exclusion)33 b(lo)s(c)m(k)h(that)f(is)f\n+TeXDict begin 2 1 bop 0 100 a Fi(2)p 136 100 1084 4 v\n+1266 w Fh(SubMtxList)28 b Ff(:)40 b Fe(DRAFT)31 b Ff(July)e(1,)i(2024)p\n+2816 100 V 0 399 a Fi(F)-8 b(or)26 b(a)f(m)m(ultithreaded)h(solv)m(e)g\n+(there)g(is)f(one)g Fh(SubMtxList)e Fi(ob)5 b(ject)26\n+b(that)g(is)f(shared)f(b)m(y)h(all)h(threads.)39 b(The)25\n+b(m)m(utual)0 511 y(exclusion)33 b(lo)s(c)m(k)h(that)f(is)f\n (\\(optionally\\))j(em)m(b)s(edded)c(in)i(the)f Fh(SubMtxList)e\n Fi(ob)5 b(ject)34 b(is)e(a)h Fh(Lock)f Fi(ob)5 b(ject)33\n b(from)f(this)0 624 y(library)-8 b(.)39 b(It)27 b(is)f(inside)g(the)g\n Fh(Lock)f Fi(ob)5 b(ject)27 b(that)g(w)m(e)f(ha)m(v)m(e)i(a)e(m)m\n (utual)h(exclusion)g(lo)s(c)m(k.)40 b(Presen)m(tly)27\n b(w)m(e)f(supp)s(ort)f(the)0 737 y(Solaris)32 b(and)g(POSIX)f(thread)h\n (pac)m(k)-5 b(ages.)48 b(P)m(orting)33 b(the)g(m)m(ultithreaded)f(co)s\n@@ -3496,65 +3483,65 @@\n (and)d Fh(heads)p Fi(,)227 5251 y Fh(counts)p Fi(,)29\n b Fh(lock)g Fi(and)h Fh(flags)f Fi(are)i(set)g(to)g Fh(NULL)e\n Fi(.)227 5407 y Fe(Err)-5 b(or)34 b(che)-5 b(cking:)40\n b Fi(If)30 b Fh(list)g Fi(is)g Fh(NULL)p Fi(,)f(an)i(error)f(message)h\n (is)g(prin)m(ted)f(and)f(the)i(program)f(exits.)p eop\n end\n %%Page: 3 3\n-TeXDict begin 3 2 bop 91 100 1027 4 v 1208 100 a Fh(SubMtxList)28\n-b Ff(:)40 b Fe(DRAFT)121 b Ff(August)31 b(3,)g(2025)p\n-2827 100 V 1027 w Fi(3)111 399 y(3.)46 b Fh(void)h\n-(SubMtxList_clearData)42 b(\\()48 b(SubMtxList)d(*list)h(\\))h(;)227\n-555 y Fi(This)31 b(metho)s(d)f(clears)j(the)e(ob)5 b(ject)32\n-b(and)f(free's)h(an)m(y)f(o)m(wned)g(data)h(b)m(y)g(calling)g\n-Fh(SubMtx)p 3241 555 29 4 v 33 w(free\\(\\))e Fi(for)h(eac)m(h)227\n-668 y(ob)5 b(ject)30 b(on)e(the)h(free)g(list.)41 b(If)28\n-b Fh(heads)f Fi(is)i(not)g Fh(NULL)p Fi(,)f(it)h(is)g(free'd.)40\n-b(If)28 b Fh(counts)f Fi(is)i(not)g Fh(NULL)p Fi(,)f(it)h(is)g(free'd)f\n-(via)227 781 y(a)i(call)g(to)f Fh(IVfree\\(\\))p Fi(.)38\n-b(If)29 b Fh(flags)e Fi(is)i(not)g Fh(NULL)p Fi(,)f(it)h(is)g(free'd)g\n-(via)h(a)f(call)h(to)f Fh(CVfree\\(\\))p Fi(.)38 b(If)29\n-b(the)g(lo)s(c)m(k)h(is)f(not)227 894 y Fh(NULL)p Fi(,)34\n-b(it)i(is)f(destro)m(y)m(ed)h(via)f(a)g(call)i(to)e Fh(mutex)p\n-1848 894 V 33 w(destroy\\(\\))e Fi(and)h(then)h(free'd.)54\n-b(There)34 b(is)h(a)h(concluding)227 1007 y(call)c(to)f\n-Fh(SubMtxList)p 991 1007 V 32 w(setDefaultFields\\(\\))p\n-Fi(.)227 1164 y Fe(Err)-5 b(or)34 b(che)-5 b(cking:)40\n-b Fi(If)30 b Fh(list)g Fi(is)g Fh(NULL)p Fi(,)f(an)i(error)f(message)h\n-(is)g(prin)m(ted)f(and)f(the)i(program)f(exits.)111 1364\n-y(4.)46 b Fh(void)h(SubMtxList_free)d(\\()j(SubMtxList)e(*list)h(\\))i(;)\n-227 1521 y Fi(This)37 b(metho)s(d)f(releases)i(an)m(y)g(storage)h(b)m\n-(y)e(a)g(call)i(to)e Fh(SubMtxList)p 2607 1521 V 32 w(clearData\\(\\))d\n-Fi(and)j(then)f(free)i(the)227 1634 y(space)31 b(for)f\n-Fh(list)p Fi(.)227 1791 y Fe(Err)-5 b(or)34 b(che)-5\n-b(cking:)40 b Fi(If)30 b Fh(list)g Fi(is)g Fh(NULL)p\n+TeXDict begin 3 2 bop 91 100 1084 4 v 1266 100 a Fh(SubMtxList)27\n+b Ff(:)41 b Fe(DRAFT)121 b Ff(July)30 b(1,)h(2024)p 2769\n+100 V 1084 w Fi(3)111 399 y(3.)46 b Fh(void)h(SubMtxList_clearData)42\n+b(\\()48 b(SubMtxList)d(*list)h(\\))h(;)227 555 y Fi(This)31\n+b(metho)s(d)f(clears)j(the)e(ob)5 b(ject)32 b(and)f(free's)h(an)m(y)f\n+(o)m(wned)g(data)h(b)m(y)g(calling)g Fh(SubMtx)p 3241\n+555 29 4 v 33 w(free\\(\\))e Fi(for)h(eac)m(h)227 668 y(ob)5\n+b(ject)30 b(on)e(the)h(free)g(list.)41 b(If)28 b Fh(heads)f\n+Fi(is)i(not)g Fh(NULL)p Fi(,)f(it)h(is)g(free'd.)40 b(If)28\n+b Fh(counts)f Fi(is)i(not)g Fh(NULL)p Fi(,)f(it)h(is)g(free'd)f(via)227\n+781 y(a)i(call)g(to)f Fh(IVfree\\(\\))p Fi(.)38 b(If)29\n+b Fh(flags)e Fi(is)i(not)g Fh(NULL)p Fi(,)f(it)h(is)g(free'd)g(via)h(a)\n+f(call)h(to)f Fh(CVfree\\(\\))p Fi(.)38 b(If)29 b(the)g(lo)s(c)m(k)h(is)f\n+(not)227 894 y Fh(NULL)p Fi(,)34 b(it)i(is)f(destro)m(y)m(ed)h(via)f(a)\n+g(call)i(to)e Fh(mutex)p 1848 894 V 33 w(destroy\\(\\))e\n+Fi(and)h(then)h(free'd.)54 b(There)34 b(is)h(a)h(concluding)227\n+1007 y(call)c(to)f Fh(SubMtxList)p 991 1007 V 32 w\n+(setDefaultFields\\(\\))p Fi(.)227 1164 y Fe(Err)-5 b(or)34\n+b(che)-5 b(cking:)40 b Fi(If)30 b Fh(list)g Fi(is)g Fh(NULL)p\n Fi(,)f(an)i(error)f(message)h(is)g(prin)m(ted)f(and)f(the)i(program)f\n-(exits.)0 2078 y Fb(1.2.2)112 b(Initialization)39 b(metho)s(ds)0\n-2281 y Fi(There)30 b(are)h(three)f(initializer)j(metho)s(ds.)111\n-2534 y(1.)46 b Fh(void)h(SubMtxList_init\\()c(SubMtxList)i(*list,)h(int)\n-h(nlist,)f(int)h(counts[],)1277 2647 y(int)g(lockflag,)e(char)i\n-(flags[])f(\\))h(;)227 2804 y Fi(An)m(y)35 b(data)h(is)f(cleared)h(via)f\n-(a)h(call)g(to)g Fh(SubMtxList)p 2054 2804 V 31 w(clearData\\(\\))p\n-Fi(.)51 b(The)35 b(n)m(um)m(b)s(er)f(of)h(lists)g(is)g(set)h(and)227\n-2917 y(the)43 b Fh(heads[])d Fi(v)m(ector)j(is)f(initialized.)78\n-b(If)41 b Fh(counts)g Fi(is)h(not)g Fh(NULL)p Fi(,)f(the)h(ob)5\n-b(ject's)43 b Fh(counts[])d Fi(v)m(ector)k(is)227 3030\n-y(allo)s(cated)31 b(and)e(\\014lled)g(with)g(the)g(incoming)h(en)m\n-(tries.)41 b(If)29 b Fh(lockflag)e Fi(is)i(zero,)i(the)e(lo)s(c)m(k)h\n-(is)f(not)h(initialized.)227 3143 y(If)39 b Fh(lockflag)e\n-Fi(is)i Fh(1)p Fi(,)j(the)d(lo)s(c)m(k)i(is)e(initialized)i(to)f(b)s(e)\n-f(able)h(to)g(sync)m(hronize)f(threads)g(with)g(the)g(calling)227\n-3256 y(pro)s(cess.)71 b(If)40 b Fh(lockflag)e Fi(is)j\n-Fh(2)p Fi(,)i(the)e(lo)s(c)m(k)g(is)g(initialized)h(to)f(b)s(e)f(able)h\n-(to)g(sync)m(hronize)g(threads)f(across)227 3368 y(pro)s(cesses.)49\n-b(If)32 b Fh(flags)g Fi(is)h(not)g Fh(NULL)p Fi(,)f(the)h(ob)5\n-b(ject's)34 b Fh(flags[])d Fi(v)m(ector)k(is)e(allo)s(cated)i(and)d\n-(\\014lled)h(with)g(the)227 3481 y(incoming)e(en)m(tries.)227\n-3638 y Fe(Err)-5 b(or)40 b(che)-5 b(cking:)53 b Fi(If)36\n-b Fh(list)g Fi(is)h Fh(NULL)p Fi(,)f(or)g(if)h Fh(nlist)e\n+(exits.)111 1364 y(4.)46 b Fh(void)h(SubMtxList_free)d(\\()j(SubMtxList)\n+e(*list)h(\\))i(;)227 1521 y Fi(This)37 b(metho)s(d)f(releases)i(an)m(y)\n+g(storage)h(b)m(y)e(a)g(call)i(to)e Fh(SubMtxList)p 2607\n+1521 V 32 w(clearData\\(\\))d Fi(and)j(then)f(free)i(the)227\n+1634 y(space)31 b(for)f Fh(list)p Fi(.)227 1791 y Fe(Err)-5\n+b(or)34 b(che)-5 b(cking:)40 b Fi(If)30 b Fh(list)g Fi(is)g\n+Fh(NULL)p Fi(,)f(an)i(error)f(message)h(is)g(prin)m(ted)f(and)f(the)i\n+(program)f(exits.)0 2078 y Fb(1.2.2)112 b(Initialization)39\n+b(metho)s(ds)0 2281 y Fi(There)30 b(are)h(three)f(initializer)j(metho)s\n+(ds.)111 2534 y(1.)46 b Fh(void)h(SubMtxList_init\\()c(SubMtxList)i\n+(*list,)h(int)h(nlist,)f(int)h(counts[],)1277 2647 y(int)g(lockflag,)e\n+(char)i(flags[])f(\\))h(;)227 2804 y Fi(An)m(y)35 b(data)h(is)f(cleared)\n+h(via)f(a)h(call)g(to)g Fh(SubMtxList)p 2054 2804 V 31\n+w(clearData\\(\\))p Fi(.)51 b(The)35 b(n)m(um)m(b)s(er)f(of)h(lists)g(is)\n+g(set)h(and)227 2917 y(the)43 b Fh(heads[])d Fi(v)m(ector)j(is)f\n+(initialized.)78 b(If)41 b Fh(counts)g Fi(is)h(not)g\n+Fh(NULL)p Fi(,)f(the)h(ob)5 b(ject's)43 b Fh(counts[])d\n+Fi(v)m(ector)k(is)227 3030 y(allo)s(cated)31 b(and)e(\\014lled)g(with)g\n+(the)g(incoming)h(en)m(tries.)41 b(If)29 b Fh(lockflag)e\n+Fi(is)i(zero,)i(the)e(lo)s(c)m(k)h(is)f(not)h(initialized.)227\n+3143 y(If)39 b Fh(lockflag)e Fi(is)i Fh(1)p Fi(,)j(the)d(lo)s(c)m(k)i\n+(is)e(initialized)i(to)f(b)s(e)f(able)h(to)g(sync)m(hronize)f(threads)g\n+(with)g(the)g(calling)227 3256 y(pro)s(cess.)71 b(If)40\n+b Fh(lockflag)e Fi(is)j Fh(2)p Fi(,)i(the)e(lo)s(c)m(k)g(is)g\n+(initialized)h(to)f(b)s(e)f(able)h(to)g(sync)m(hronize)g(threads)f\n+(across)227 3368 y(pro)s(cesses.)49 b(If)32 b Fh(flags)g\n+Fi(is)h(not)g Fh(NULL)p Fi(,)f(the)h(ob)5 b(ject's)34\n+b Fh(flags[])d Fi(v)m(ector)k(is)e(allo)s(cated)i(and)d(\\014lled)h\n+(with)g(the)227 3481 y(incoming)e(en)m(tries.)227 3638\n+y Fe(Err)-5 b(or)40 b(che)-5 b(cking:)53 b Fi(If)36 b\n+Fh(list)g Fi(is)h Fh(NULL)p Fi(,)f(or)g(if)h Fh(nlist)e\n Fa(\\024)g Fi(0,)k(or)e(if)g Fh(lockflag)d Fi(is)j(not)g(in)f\n Fh([0,2])p Fi(,)i(an)e(error)227 3751 y(message)c(is)e(prin)m(ted)g\n (and)g(zero)h(is)f(returned.)0 4038 y Fb(1.2.3)112 b(Utilit)m(y)38\n b(metho)s(ds)111 4241 y Fi(1.)46 b Fh(int)h(SubMtxList_isListNonempty)\n 41 b(\\()48 b(SubMtxList)d(*list,)h(int)h(ilist)f(\\))h(;)227\n 4398 y Fi(If)30 b(list)h Fh(ilist)e Fi(is)i(empt)m(y)-8\n b(,)31 b(the)g(metho)s(d)e(returns)h(0.)41 b(Otherwise,)30\n@@ -3570,19 +3557,19 @@\n (1.)44 b(Otherwise,)32 b(the)227 5138 y(metho)s(d)e(returns)f(0.)227\n 5294 y Fe(Err)-5 b(or)34 b(che)-5 b(cking:)40 b Fi(If)29\n b Fh(list)g Fi(is)h Fh(NULL)p Fi(,)f(or)h(if)g Fh(ilist)e\n Fi(is)i(not)h(in)e(the)h(range)h Fh([0,nlist\\))p Fi(,)c(an)j(error)g\n (message)227 5407 y(is)h(prin)m(ted)f(and)f(zero)j(is)e(returned.)p\n eop end\n %%Page: 4 4\n-TeXDict begin 4 3 bop 0 100 a Fi(4)p 136 100 1027 4 v\n-1208 w Fh(SubMtxList)28 b Ff(:)41 b Fe(DRAFT)30 b Ff(August)g(3,)h\n-(2025)p 2874 100 V 111 399 a Fi(3.)46 b Fh(SubMtx)g(*)i\n-(SubMtxList_getList)43 b(\\()k(SubMtxList)e(*list,)h(int)h(ilist)f(\\))i\n-(;)227 549 y Fi(If)28 b(list)h Fh(ilist)e Fi(is)h(empt)m(y)-8\n+TeXDict begin 4 3 bop 0 100 a Fi(4)p 136 100 1084 4 v\n+1266 w Fh(SubMtxList)28 b Ff(:)40 b Fe(DRAFT)31 b Ff(July)e(1,)i(2024)p\n+2816 100 V 111 399 a Fi(3.)46 b Fh(SubMtx)g(*)i(SubMtxList_getList)43\n+b(\\()k(SubMtxList)e(*list,)h(int)h(ilist)f(\\))i(;)227\n+549 y Fi(If)28 b(list)h Fh(ilist)e Fi(is)h(empt)m(y)-8\n b(,)30 b(the)f(metho)s(d)f(returns)f Fh(NULL)p Fi(.)g(Otherwise,)i(if)f\n (the)h(list)g(needs)f(to)h(b)s(e)e(lo)s(c)m(k)m(ed,)k(the)227\n 662 y(lo)s(c)m(k)37 b(is)e(lo)s(c)m(k)m(ed.)57 b(The)34\n b(head)h(of)h(the)f(list)h(is)f(sa)m(v)m(ed)i(to)f(a)f(p)s(oin)m(ter)h\n (and)e(then)h(the)h(head)f(is)g(set)h(to)g Fh(NULL)p\n Fi(.)227 775 y(If)c(the)h(list)g(w)m(as)f(lo)s(c)m(k)m(ed,)j(the)d(n)m\n (um)m(b)s(er)f(of)i(lo)s(c)m(ks)g(is)g(incremen)m(ted)f(and)g(the)h(lo)\n", "details": [{"source1": "ps2ascii {}", "source2": "ps2ascii {}", "unified_diff": "@@ -22,15 +22,15 @@\n The \ufb01rst two operations are queries, and can be done without locking the list. The third operation\r\n needs a lock only when two or more threads will be inserting objects into the list. The fourth\r\n operation requires a lock only when one thread will add an object while another thread removes\r\n the object and the incoming count is not yet zero.\r\n Having a lock associated with a SubMtxList object is optional, for example, it is not needed\r\n during a serial factorization nor a MPI solve. In the latter case there is one SubMtxList per process.\r\n 1\r\n- 2 SubMtxList : DRAFT August 3, 2025\r\n+ 2 SubMtxList : DRAFT July 1, 2024\r\n For a multithreaded solve there is one SubMtxList object that is shared by all threads. The mutual\r\n exclusion lock that is (optionally) embedded in the SubMtxList object is a Lock object from this\r\n library. It is inside the Lock object that we have a mutual exclusion lock. Presently we support the\r\n Solaris and POSIX thread packages. Porting the multithreaded codes to another platform should\r\n be simple if the POSIX thread package is present. Another type of thread package will require\r\n some modi\ufb01cations to the Lock object, but none to the SubMtxList objects.\r\n 1.1 Data Structure\r\n@@ -52,15 +52,15 @@\n 1. SubMtxList * SubMtxList_new ( void ) ;\r\n This method simply allocates storage for the SubMtxList structure and then sets the default\r\n \ufb01elds by a call to SubMtxList setDefaultFields().\r\n 2. void SubMtxList_setDefaultFields ( SubMtxList *list ) ;\r\n The structure\u2019s \ufb01elds are set to default values: nlist and nlocks set to zero, and heads,\r\n counts, lock and flags are set to NULL .\r\n Error checking: If list is NULL, an error message is printed and the program exits.\r\n- SubMtxList : DRAFT August 3, 2025 3\r\n+ SubMtxList : DRAFT July 1, 2024 3\r\n 3. void SubMtxList_clearData ( SubMtxList *list ) ;\r\n This method clears the object and free\u2019s any owned data by calling SubMtx free() for each\r\n object on the free list. If heads is not NULL, it is free\u2019d. If counts is not NULL, it is free\u2019d via\r\n a call to IVfree(). If flags is not NULL, it is free\u2019d via a call to CVfree(). If the lock is not\r\n NULL, it is destroyed via a call to mutex destroy() and then free\u2019d. There is a concluding\r\n call to SubMtxList setDefaultFields().\r\n Error checking: If list is NULL, an error message is printed and the program exits.\r\n@@ -87,15 +87,15 @@\n Error checking: If list is NULL, or if ilist is not in the range [0,nlist), an error message\r\n is printed and zero is returned.\r\n 2. int SubMtxList_isCountZero ( SubMtxList *list, int ilist ) ;\r\n If counts is NULL, or if counts[ilist] equal to zero, the method returns 1. Otherwise, the\r\n method returns 0.\r\n Error checking: If list is NULL, or if ilist is not in the range [0,nlist), an error message\r\n is printed and zero is returned.\r\n- 4 SubMtxList : DRAFT August 3, 2025\r\n+ 4 SubMtxList : DRAFT July 1, 2024\r\n 3. SubMtx * SubMtxList_getList ( SubMtxList *list, int ilist ) ;\r\n If list ilist is empty, the method returns NULL. Otherwise, if the list needs to be locked, the\r\n lock is locked. The head of the list is saved to a pointer and then the head is set to NULL.\r\n If the list was locked, the number of locks is incremented and the lock unlocked. The saved\r\n pointer is returned.\r\n Error checking: If list is NULL, or if ilist is not in the range [0,nlist), an error message\r\n is printed and zero is returned.\r\n"}]}]}, {"source1": "./usr/share/doc/spooles-doc/SubMtxManager.ps.gz", "source2": "./usr/share/doc/spooles-doc/SubMtxManager.ps.gz", "unified_diff": null, "details": [{"source1": "SubMtxManager.ps", "source2": "SubMtxManager.ps", "unified_diff": "@@ -11,15 +11,15 @@\n %%EndComments\n %%BeginDefaults\n %%ViewingOrientation: 1 0 0 1\n %%EndDefaults\n %DVIPSWebPage: (www.radicaleye.com)\n %DVIPSCommandLine: dvips main -o SubMtxManager.ps\n %DVIPSParameters: dpi=600\n-%DVIPSSource: TeX output 2025.08.03:1317\n+%DVIPSSource: TeX output 2024.07.01:0700\n %%BeginProcSet: tex.pro 0 0\n %!\n /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S\n N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72\n mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0\n 0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{\n landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize\n@@ -1419,23 +1419,22 @@\n /UnderlinePosition -100 def\n /UnderlineThickness 50 def\n end readonly def\n /Encoding 256 array\n 0 1 255 {1 index exch /.notdef put} for\n dup 44 /comma put\n dup 48 /zero put\n+dup 49 /one put\n dup 50 /two put\n-dup 51 /three put\n-dup 53 /five put\n+dup 52 /four put\n dup 58 /colon put\n-dup 65 /A put\n-dup 103 /g put\n-dup 115 /s put\n-dup 116 /t put\n+dup 74 /J put\n+dup 108 /l put\n dup 117 /u put\n+dup 121 /y put\n readonly def\n currentdict end\n currentfile eexec\n D9D66F633B846AB284BCF8B0411B772DE5CE32340DC6F28AF40857E4451976E7\n 5182433CF9F333A38BD841C0D4E68BF9E012EB32A8FFB76B5816306B5EDF7C99\n 8B3A16D9B4BC056662E32C7CD0123DFAEB734C7532E64BBFBF5A60336E646716\n EFB852C877F440D329172C71F1E5D59CE9473C26B8AEF7AD68EF0727B6EC2E0C\n@@ -1616,79 +1615,67 @@\n 7CA1534C4D5B05FC33F83790ECFD7641DF3FB94289E2A1F6E7D29AB1228A867A\n 6E1EF0E9C6F899B491DC18401C2C0A05FFFED46A72C245F7529B8EA55A038082\n 8512307217D2A233C37004085BA3AEE379269F9FA7D0ADB4B19A95CC2AFE686E\n 55D88E47257C1FE6F235FEA295910569FE6DD5995512562359CC821E85A6C7A5\n 79B470A9E340A6985189FF8B6AF914A6B0ECF93F47903221F95DE894A8F05B05\n B7D99CD533EC5F931B18E6B39BECF67FA2D6DD1AEC76772B068BE06335A94C05\n 7A4DDEE77B66101DA855C17AC312600370B34E31F5EC3A01300A8EB60B4C9767\n-1B2FA10DF7E91D3BB34A1B1CE7A0015A57C813E0280D873ADB88440048702D1F\n-77994EE04EC3B4531D6E1888C86A8F0DA6CF1F056F16AB0DD76C862830F89DA4\n-28923B3AA543E0D6E41D3BD283E600BC11F889315EE92C675C109C81065ED1BC\n-82A5583D1B723D50051B0557A367887F5B263014C6E77288B4883C50889473D3\n-3787BAD4BEB88BD1353AFA5B73E61814819537E7FF09F53EF94792BB3DD36ED0\n-002D0E7A6CDAB85A9C17AF5664BCB5A71663B861880F3ECCABC8E7A2FC81A4CC\n-AE7A87503FDC1CE0077BA51ECC7B43B60793FED8E9AAD5BBD03ADD6183DCD26D\n-24A74163611C05562437644EF9B8889FD4F9D311911204FEFD35237486F2D2D0\n-B6783A03BF12EA6D19D6D0F87E4D08515F12F9CBF1961CAA71E0D69FE3C4C4D2\n-7C7FB64ED24F8684C8F00C2BEDEA53EA390CDC0B5BEBD7DD982580B2EA1F1F89\n-CFED5916630DC2BA32BB9180277E1ABC339B3B7DE086717BD93F7FF3681BA5B3\n-FCF671C4B293C2DE4A322F0AA3323A4934444C69F23EF90120B8755482757759\n-C457A435FB8BB4922BD92C5F3D9555D978275C510183E29DFF2FCE4ABBFC18DE\n-76CAD3B486BA12047DD808CD4D521A0FD368E4AE79DE262630983A5D6F0B679D\n-2F005306393C520E1B6987302D029939D94B0178DC55D5264E1FEA468AD4134C\n-8C65B2FBBE8DE8284E8E1F6BFE0B648F44D3DA8E9350D266EDBFD4A7054D9355\n-1E0B185DED37BCF32D3731358F1D707C94109428BAD3CEA456A2A43553E3D2C2\n-F549189201F3D3F715310E3E8C6A2E9AA5141AA9125D203694C7D875C2DD320F\n-C5BCDFC924F6C04DBC7A97349B45ECD0FBD7D2123ED1D3A9F440B1112BE62779\n-47A4592F9285CBD9635EC9091CEC0AFD7E6B6976974081DB9C0E43165BD8584D\n-6CDF08DED287F0883A9FBD351B3F8706BA1E94C7CA487338269482EB8DC1A05D\n-F6632A5D834DE29228C49C5BA65EF7C535A53B380BF4B391F43562147538EE97\n-E799DFC2C40315859F56BBCE9CAE1DF9293F6E2C193ABE7A724EC8F32FA220E7\n-6026877A63E318254F2AF7B1325D63FC4C52B536D3EF354814C2F8F1EEA30569\n-6EF04447DB0F809DF35B4985B9FB4F4BB6087310BE633E76F268B32ABA99CE8E\n-03163DFF4AEDB88E60DD0848C15E90026D7C24D81122EBC07113F9851914A9D5\n-D0E09C2BFDDAF10C5D8208E8329BC0C402F231CD84C95EFDD182AD9756662110\n-274650C7A5BB0D8EFA54EC6C5A49C0EB26701A54779AE8EFBBED824262761602\n-680EDFB38F0FE18C0F501F5AA8BF48A8F0DD3E5E1EBEB872F6F6B23964707B32\n-507FC677B9FDDC990E3828B06420F6F968B2F6AE81E76A2144B1ECE905485616\n-CFB29AC96DDE1F5039935D7E385CC13E34DD7EAF276A2EA3A8BF27FD4205AE13\n-7FE620E42F2CF231C6C8DD8EFC5A6CF081E5660D9ADD730D72D15C02B1E15FF3\n-D741D3B1EB1E666C4E562219033C1E2EF3F96E136998B2E1890395A3637A2C02\n-DE1C46AFCA8D898439F06606A2295D3F7ED6C7DB250C61B6B97A0D5EDDB9657E\n-E790B4E07540BB1026036F4A0D00E7F16FD757AD61D686620C6814B7DCEC43E8\n-FD36D9E75BA554F64548A67D9B0A26E11784E58D4357FC251D71B5D6D8BFDDE0\n-D3BF0E825DA5312C1904AF13C5905C2ADF79C357476183D2EC5A95243235E861\n-2F98D9EE77EF8F8CB3EC6BD358C5ED37DD3AF44D60575E7774BF96F1AE9DFAD1\n-F8646DEDF21D10311854726B8F7D25876BB1EF78E2442B16ED4B851816CF0A27\n-11FDFCE525002A1A7C3E62CD2A3EDE6FAADB026D2F3A46C030ADB22422CA8FF5\n-2545ED58C0D9FB5BDB55FE674301E91A75B005B86BD201D246F7ADACE50419FD\n-AC3312CAC5EB78A36F0E5F62E65AC92129CB574AAC59E0A7C1390DFC61F39D9E\n-D7036742F2F6E64D1EF8157E9CCF65F3EEDC6A8220235978B8E06EB80F649F3E\n-204CFB497F49306EA8E1F7B62305978A28F1E771ED82C6592C71022154E4062A\n-A92335EFC65D6DED9C686899FFD7AA2988740618C03C5E362E1AF352E3BE4602\n-5530C51E5FC8E9082DF79199CC91C50174000D337D86127AC807C5A3C81DDE57\n-7A68AEE7230949B925365C214D77C80E87CEE218ABC94023717EA43BA5D8A7C8\n-8A8B9BD1B767996AE33050E3D922ED0574E3579C57E4BDDAD35883806AFDF260\n-3AB5D83D451583262E580FFDB7A27D82396AF18D92B849A3F7A7E621987D5DF0\n-038F876C6E9CA47FB11AF05F0019191C5DDC5F0177AD421E94BC66D0CCB82F1F\n-93A80836284B095503752C600F72E2C89112ABFA5B76152691264103B268B3E5\n-8816724ADADB38740001A9AACE05C8AF02D72918606DC22EFC8BF0DA0FD12FFE\n-D3A09F8E28057F327BFB633E604B1EAD478637B1D9631650B314CC62D7E0E87F\n-9D3FE1FFA23BB6E3006C3E39BED52F6B0C1C651B5913878F36DA0BF776889165\n-68BA3456B40B8B471CA8FF5238E43D9113E052A2B8D2EAA2433D3F89FCA48AFB\n-5E842913E4ED6DF9623354059CD1F1707B126FED80349787C869883120183EDD\n-249185A55503FAC53898F52170D05CAC62BB742CF9702C0518AED6B27CDC401C\n-932E02143FD916703F360CB31049501B35EF3EDDFED791090D0CFA221FD1DB32\n-7D4759CE07983AE29C258C705D11E7D9481EEAAB9B6BA65CDCF0AA0057BD6FEA\n-ABBFBD3ABF2A7BFB550C3D2A16DC447384A89F3DB6D9C2DBDCA997ABE35A7706\n-633D328AECEDB5BD07070C1B96267FD73B45791DD18194F60D358091FBE88409\n-973529806F3D2C9E6E39091F90A14B560A987E0B9490B9B690FB489B8E253070\n-D7C54447BE0E0A0BFEAEFFB581DC1300E6EC382984673BF0665632404E59B5BF\n-5D5F0A1C956E618C0487751CA5DAE8A95C214F76ED756694EF273679CD2D85CB\n-949DF385BD50491649EFEFDA1574921D7460143D42A100D2C76E55F0BC\n+1B2FA10DF7E91D3BB34A1B1CE7A0015A57C813E0280D873ADB8844004B9BA1CC\n+580D3C6BDA4DC1B80B4365F1C80512453FC5316EC2D928FB731C3D6403E3C18B\n+E8424D644DF5E9A2134229C5C91CA68DB8E85BA2BB40F538F585DA6FA4037718\n+B8053EBBA1E765346BCD5BDAA6C38115D31611D8A87A2238C145F2DA2F92E4DF\n+3987BD9C4D2A3D460E8941A68B125BCD9EE4F9FD262C4C8A71F47A2C81975635\n+F1B981C274C53FA2ACCDE4C9D0A7C62D6C1EFF91CFC6712CA6A9F333C9564FCB\n+2A70F0AD715A79B10A08AB069E2A3C93BC0AED19D0CA10134B8DDDE8AF548DB2\n+3A4AAA9C29682CF135BB767DAA16169A127EB50A7EECEB6480CF56A7D0F8AC56\n+4A5090B3D75A790372886AF568D94C8165975A05BFBFDF1FFBA45F70700BB9E0\n+57F3249EF9E9C8AD9CBCF6E4FD592DC4CDD2CC7C0BC3130C1059096C657BE453\n+A2CBACE93420210E27AF56CA229BD6D982FB68B3FDC6D44478B922C4231C47EE\n+E500232F6C11D92DEB955F66DF52B92B22E7352790CC2DCBAC53965D57AC2920\n+68B7D520DE25047146EFEB06B9AD4E2A94243C7E5239F0BC2FC312B16051D52C\n+0B92C217B6B42997321AE4F8BB066754B7AA3F15069EF59224E8A442CE471AA7\n+E8049A3DD9EDA09CCEE4998998661CF7DB35E952F6C65DAEB3013951C59F3E09\n+157F313B0237876E1C0190F0473819570B8C0205AADF05D787CC00979CFB327A\n+289382B22DDA6F12804ED0ED5B179E36A995A2A59E1B66E75130DBE9109C813B\n+94403E0DEA8314A1E9DB474D7FA83C0BAFD08033E6A6215844C1D26BE15F1251\n+A1605E8DF9A9C601ED37379530BC1C82BE5463C6C711C5652BFD6262485AA9CA\n+B8C4A117593001D08D980041E2A83C190DCE8E6CD3D334E5CC19FC05DB30F7F7\n+24A305C4DBB31F0651392B99D44B4302333BDF7E326FD256DD75D309C6E73F85\n+FA71B35FD1F9BEFF4C7A1076362EEB0A85492933B6006086A7B8C1928CF2D1EE\n+FD4344409257BB802C117E739960821CD3C88BFBA5669FF16F610AD638AF3677\n+8674C985E6767253ED5769F71BEA5E9BB02A751F9E62EE2B18AC19D975FDEAE9\n+8B8822367FF177A7E850766DE99ED3366D46464612926430012212A90F8E85F4\n+4760B40D5B86B90819EE410382D22D8ED82D0B0AB00C93E10CD365F8766D1C87\n+B4A866021FB6F6AC3D250CC601989B1B8FE6B1098A48282D2CF258BF38FEE940\n+CE0141FB1344156DE7712A8F2DBF700174F12616EE17C852210D96D03E5E6635\n+D439EB6E84A383DDD32AD72DADE6F931FDBABBDC726C36081C96018FC95EAE13\n+DA1F8DBC2D8355AC9792649653225393F4A7A88F3B9443FEEB75E2C15BF93F09\n+CCBA7FABC022BE26F4C28152D5DA6D690494AD4EC0DA1B598AE12536BADF88B5\n+5E20EB452546389F57FF55459567B453AE1831C57D22FA6A4FDF441EDAFDB7FB\n+4F4B707C1FF9159C40F7B5DD519FC07815EE91B8D756B6C18500BCF47D0D9E45\n+6A2D51B6AA5AEAAC9AB2DEF7F0FDE957B6C179CBADEECAC7E9CEC248AB135EB4\n+FBF83D002FF859B574EF36C371540EF2BCFCEF5C2E7863AEDD7C3C965103453B\n+023A9CEC1D5C45B88827ADF4AE0C6746F3C7E6A944427DAEC493601019583A16\n+0F846CE00EAE89EEFF9CE68A0E1D6EBB8FDD8A45D1BF399B36A8328EC957CB8B\n+D842A56269C8C9A6B472C9E65BCBC090606B4E8A7EF4ABDEA120C9F9B3969A1C\n+2EB102925F4E155160E58000E1ADB0D19E10EFD96F6C3225EEE8FC24D122C069\n+C11F1A69DC383F7DACD2F3929BD135CE69787C6E7560AC4B683FE5D9AAFD2E89\n+EE6D95E38C9B726B416E28169A11E29559DBA9AECD714CF318FCB78F34A0E562\n+9C00FE0C6D5A848557D9A82EC2BEFCD30B5EDC0B23C5BA9F812C864394C8B9D1\n+B08BAC9CF94E70FF842306ACCFE6E39A56777C712904A3AB29FBD19275E19E06\n+B35B37CFFFCEC81CAF2D85A853663FAFCFFED1EA77064AA28C15BC94910683BC\n+D09513079DE9EE18E97CC2403DD206516D7F652A3459870757F34EEDCEF952C3\n+FE8004F4716B5BD6774E455010B0BB1E61FCD66B9F14F9BBCCF3E55A158EE96E\n+9A05BDFDDC7706D4BC28FDDC4004EF3A430C607EBDF115E0C996454D70C8BB42\n+D7C83A454B116663D648C23CE2B33365810DE2B64D4AE011BC8043BC3E05B94D\n+1700F859C6AFC6515C1C42FA104EE3E8F3FA5F80252C2E79B00ED27F675FFD09\n+B50BF7A3C63CF4856F909DF969D7DD3EA05CABDD1E71A58CFC2AB5F614B4E5E0\n+25CF92E9FB66ACEBE05DF5E033DA8AD3EE32D94C02D98DD7DA99FAB5AEA595C3\n+2987DC122F0242D76B782349E4069DE0CDD6EF4375C680CBFE4C8F24F2AE89BF\n+7785F5EA7435A91500F265022C307E8ADEAAE1C6\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n@@ -3856,21 +3843,21 @@\n TeXDict begin 40258437 52099151 1000 600 600 (main.dvi)\n @start /Fa 235[71 20[{}1 90.9091 /CMSY10 rf /Fb 133[50\n 59 4[44 44 3[56 62 93 31 2[31 62 2[51 62 50 1[54 11[86\n 5[84 5[42 6[80 13[56 56 56 56 2[31 46[{}23 99.6264 /CMBX12\n rf /Fc 135[62 2[62 62 1[62 3[62 6[62 1[62 2[62 62 13[62\n 5[62 77[{}11 119.552 /CMTT12 rf /Fd 134[71 3[75 52 53\n 55 1[75 67 75 112 3[37 75 1[41 61 75 60 1[65 13[75 2[92\n-11[103 17[67 67 2[37 46[{}22 119.552 /CMBX12 rf /Fe 138[51\n-35 36 11[45 37[68 6[25 4[45 1[45 45 1[45 3[25 44[{}11\n-90.9091 /CMSL10 rf /Ff 180[60 39 9[37 4[20 59[{}4 66.4176\n-/CMMI8 rf /Fg 170[62 8[62 76[{}2 90.9091 /CMMI10 rf /Fh\n-134[44 4[30 37 38 2[46 51 74 23 42 1[28 46 42 1[42 46\n-42 1[46 12[65 1[66 11[59 62 69 2[68 6[28 58[{}23 90.9091\n-/CMTI10 rf\n+11[103 17[67 67 2[37 46[{}22 119.552 /CMBX12 rf /Fe 134[48\n+3[51 8[25 33[47 15[25 5[45 1[45 45 45 3[25 44[{}10 90.9091\n+/CMSL10 rf /Ff 180[60 39 9[37 4[20 59[{}4 66.4176 /CMMI8\n+rf /Fg 170[62 8[62 76[{}2 90.9091 /CMMI10 rf /Fh 134[44\n+4[30 37 38 2[46 51 74 23 42 1[28 46 42 1[42 46 42 1[46\n+12[65 1[66 11[59 62 69 2[68 6[28 58[{}23 90.9091 /CMTI10\n+rf\n %DVIPSBitmapFont: Fi tcrm1095 10.95 1\n [/Grave/Acute/Circumflex/Tilde/Dieresis/Hungarumlaut/Ring/Caron/Breve/Macron\n /Dotaccent/cedilla/ogonek/quotesinglbase.ts1 4{/.notdef}repeat\n /quotedblbase.ts1/.notdef/.notdef/twelveudash/threequartersemdash\n /afii61664.cap/arrowleft/arrowright/tieaccentlowercase/tieaccentcapital\n /tieaccentlowercase.new/tieaccentcapital.new/.notdef/afii61664.asc/uni2422 3\n {/.notdef}repeat/dollar/.notdef/.notdef/quotesingle/.notdef/.notdef\n@@ -4001,17 +3988,17 @@\n (utual)f(exclusion)h(lo)s(c)m(k.)63 b(This)36 b(is)i(not)0\n 5294 y(necessary)33 b(for)g(a)g(serial)h(or)f(MPI)g(factorization)j(or)\n d(solv)m(e)h(\\(where)f(there)g(is)g(one)g Fj(SubMtxManager)c\n Fk(ob)5 b(ject)34 b(for)0 5407 y(eac)m(h)e(pro)s(cessor\\),)e(but)g(it)h\n (is)f(necessary)h(for)f(in)g(a)h(m)m(ultithreaded)f(en)m(vironmen)m(t.)\n 1927 5656 y(1)p eop end\n %%Page: 2 2\n-TeXDict begin 2 1 bop 0 100 a Fk(2)p 136 100 955 4 v\n-1137 w Fj(SubMtxManager)27 b Fe(:)40 b Fh(DRAFT)31 b\n-Fe(August)f(3,)h(2025)p 2945 100 V 141 399 a Fk(Eac)m(h)21\n+TeXDict begin 2 1 bop 0 100 a Fk(2)p 136 100 1013 4 v\n+1195 w Fj(SubMtxManager)26 b Fe(:)41 b Fh(DRAFT)30 b\n+Fe(July)g(1,)h(2024)p 2888 100 V 141 399 a Fk(Eac)m(h)21\n b(manager)h(ob)5 b(ject)21 b(k)m(eeps)h(trac)m(k)g(of)e(certain)i\n (statistics,)j(b)m(ytes)c(in)g(their)f(w)m(orkspaces,)k(the)d(total)h\n (n)m(um)m(b)s(er)0 511 y(of)34 b(b)m(ytes)h(requested,)h(the)e(n)m(um)m\n (b)s(er)f(of)i(requests)f(for)g(a)h Fj(SubMtx)d Fk(ob)5\n b(jects,)36 b(the)f(n)m(um)m(b)s(er)e(of)h(releases,)j(and)d(the)0\n 624 y(n)m(um)m(b)s(er)29 b(of)i(lo)s(c)m(ks)g(and)f(unlo)s(c)m(ks.)0\n 951 y Fd(1.1)135 b(Data)46 b(Structure)0 1184 y Fk(The)30\n@@ -4060,21 +4047,21 @@\n k(SubMtxManager_new)43 b(\\()k(void)g(\\))h(;)227 5294\n y Fk(This)41 b(metho)s(d)g(simply)g(allo)s(cates)j(storage)f(for)e(the)\n h Fj(SubMtxManager)c Fk(structure)j(and)g(then)g(sets)h(the)227\n 5407 y(default)31 b(\\014elds)f(b)m(y)g(a)h(call)g(to)g\n Fj(SubMtxManager)p 1875 5407 V 31 w(setDefaultFields\\(\\))p\n Fk(.)p eop end\n %%Page: 3 3\n-TeXDict begin 3 2 bop 91 100 955 4 v 1136 100 a Fj(SubMtxManager)27\n-b Fe(:)41 b Fh(DRAFT)121 b Fe(August)30 b(3,)h(2025)p\n-2898 100 V 955 w Fk(3)111 399 y(2.)46 b Fj(void)h\n-(SubMtxManager_setDefault)o(Fiel)o(ds)41 b(\\()48 b(SubMtxManager)c\n-(*manager)i(\\))h(;)227 558 y Fk(The)20 b(structure's)g(\\014elds)g(are)g\n-(set)h(to)g(default)g(v)-5 b(alues:)36 b Fj(mode)p Fk(,)21\n-b Fj(nactive)p Fk(,)g Fj(nbytesactive)p Fk(,)e Fj(nbytesrequested)p\n+TeXDict begin 3 2 bop 91 100 1013 4 v 1194 100 a Fj(SubMtxManager)27\n+b Fe(:)41 b Fh(DRAFT)121 b Fe(July)29 b(1,)i(2024)p 2840\n+100 V 1013 w Fk(3)111 399 y(2.)46 b Fj(void)h(SubMtxManager_setDefault)\n+o(Fiel)o(ds)41 b(\\()48 b(SubMtxManager)c(*manager)i(\\))h(;)227\n+558 y Fk(The)20 b(structure's)g(\\014elds)g(are)g(set)h(to)g(default)g\n+(v)-5 b(alues:)36 b Fj(mode)p Fk(,)21 b Fj(nactive)p\n+Fk(,)g Fj(nbytesactive)p Fk(,)e Fj(nbytesrequested)p\n Fk(,)227 671 y Fj(nbytesalloc)p Fk(,)33 b Fj(nrequests)p\n Fk(,)f Fj(nreleases)p Fk(,)h Fj(nlocks)g Fk(and)g Fj(nunlocks)f\n Fk(are)j(set)g(to)g(zero,)h(and)d Fj(head)h Fk(and)227\n 784 y Fj(lock)29 b Fk(are)i(set)g(to)g Fj(NULL)e Fk(.)227\n 944 y Fh(Err)-5 b(or)34 b(che)-5 b(cking:)40 b Fk(If)30\n b Fj(manager)f Fk(is)h Fj(NULL)p Fk(,)g(an)g(error)g(message)h(is)g\n (prin)m(ted)f(and)f(the)i(program)f(exits.)111 1151 y(3.)46\n@@ -4133,18 +4120,18 @@\n Fj(mode)46 b(=)i(0)p Fk(\\),)30 b(or)g(returning)f(it)i(to)g(the)227\n 5247 y(free)g(list)g(\\(if)f Fj(mode)47 b(=)h(1)p Fk(\\).)227\n 5407 y Fh(Err)-5 b(or)34 b(che)-5 b(cking:)40 b Fk(If)30\n b Fj(manager)f Fk(or)h Fj(mtx)g Fk(is)g Fj(NULL)p Fk(,)f(an)i(error)f\n (message)h(is)g(prin)m(ted)f(and)f(zero)i(is)g(returned.)p\n eop end\n %%Page: 4 4\n-TeXDict begin 4 3 bop 0 100 a Fk(4)p 136 100 955 4 v\n-1137 w Fj(SubMtxManager)27 b Fe(:)40 b Fh(DRAFT)31 b\n-Fe(August)f(3,)h(2025)p 2945 100 V 111 399 a Fk(3.)46\n-b Fj(void)h(SubMtxManager_releaseLis)o(tOfO)o(bje)o(cts)41\n+TeXDict begin 4 3 bop 0 100 a Fk(4)p 136 100 1013 4 v\n+1195 w Fj(SubMtxManager)26 b Fe(:)41 b Fh(DRAFT)30 b\n+Fe(July)g(1,)h(2024)p 2888 100 V 111 399 a Fk(3.)46 b\n+Fj(void)h(SubMtxManager_releaseLis)o(tOfO)o(bje)o(cts)41\n b(\\()48 b(SubMtxManager)c(*manager,)h(SubMtx)h(*first)g(\\))i(;)227\n 549 y Fk(This)35 b(metho)s(d)g(releases)h(a)g(list)g(of)f\n Fj(SubMtx)f Fk(ob)5 b(jects)36 b(whose)f(head)g(is)g\n Fj(first)p Fk(,)h(either)f(free'ing)h(them)g(\\(if)227\n 662 y Fj(mode)47 b(=)g(0)p Fk(\\),)31 b(or)f(returning)g(them)g(to)h\n (the)g(free)f(list)h(\\(if)g Fj(mode)47 b(=)g(1)p Fk(\\).)227\n 812 y Fh(Err)-5 b(or)32 b(che)-5 b(cking:)39 b Fk(If)28\n", "details": [{"source1": "ps2ascii {}", "source2": "ps2ascii {}", "unified_diff": "@@ -27,15 +27,15 @@\n with su\ufb03cient work space, and returns a pointer to the object. When a SubMtx object is no longer\r\n necessary, it is released to the manager object, which then inserts it into the free list. A list of\r\n SubMtx objects can be released in one call.\r\n One can specify whether the object is to be locked via a mutual exclusion lock. This is not\r\n necessary for a serial or MPI factorization or solve (where there is one SubMtxManager object for\r\n each processor), but it is necessary for in a multithreaded environment.\r\n 1\r\n- 2 SubMtxManager : DRAFT August 3, 2025\r\n+ 2 SubMtxManager : DRAFT July 1, 2024\r\n Eachmanagerobjectkeepstrackofcertainstatistics, bytesintheirworkspaces, thetotal number\r\n of bytes requested, the number of requests for a SubMtx objects, the number of releases, and the\r\n number of locks and unlocks.\r\n 1.1 Data Structure\r\n The SubMtxManager structure has the following \ufb01elds.\r\n \u2022 SubMtx *head : head of the free list of SubMtx objects.\r\n \u2022 Lock *lock : mutual exclusion lock.\r\n@@ -55,15 +55,15 @@\n SubMtxManager object.\r\n 1.2.1 Basic methods\r\n As usual, there are four basic methods to support object creation, setting default \ufb01elds, clearing\r\n any allocated data, and free\u2019ing the object.\r\n 1. SubMtxManager * SubMtxManager_new ( void ) ;\r\n This method simply allocates storage for the SubMtxManager structure and then sets the\r\n default \ufb01elds by a call to SubMtxManager setDefaultFields().\r\n- SubMtxManager : DRAFT August 3, 2025 3\r\n+ SubMtxManager : DRAFT July 1, 2024 3\r\n 2. void SubMtxManager_setDefaultFields ( SubMtxManager *manager ) ;\r\n Thestructure\u2019s\ufb01eldsaresettodefaultvalues: mode,nactive,nbytesactive,nbytesrequested,\r\n nbytesalloc, nrequests, nreleases, nlocks and nunlocks are set to zero, and head and\r\n lock are set to NULL .\r\n Error checking: If manager is NULL, an error message is printed and the program exits.\r\n 3. void SubMtxManager_clearData ( SubMtxManager *manager ) ;\r\n This method clears the object and free\u2019s any owned data by calling SubMtx free() for each\r\n@@ -89,15 +89,15 @@\n its workspace.\r\n Error checking: If manager is NULL, or if nbytesNeeded \u2264 0, an error message is printed and\r\n zero is returned.\r\n 2. void SubMtxManager_releaseObject ( SubMtxManager *manager, SubMtx *mtx ) ;\r\n This method releases the mtx instance, either free\u2019ing it (if mode = 0), or returning it to the\r\n free list (if mode = 1).\r\n Error checking: If manager or mtx is NULL, an error message is printed and zero is returned.\r\n- 4 SubMtxManager : DRAFT August 3, 2025\r\n+ 4 SubMtxManager : DRAFT July 1, 2024\r\n 3. void SubMtxManager_releaseListOfObjects ( SubMtxManager *manager, SubMtx *first ) ;\r\n This method releases a list of SubMtx objects whose head is first, either free\u2019ing them (if\r\n mode = 0), or returning them to the free list (if mode = 1).\r\n Error checking: If manager or head is NULL, an error message is printed and zero is returned.\r\n 1.2.4 IO methods\r\n 1. void SubMtxManager_writeForHumanEye ( SubMtxManager *manager, FILE *fp ) ;\r\n This method writes a SubMtxManager object to a \ufb01le in an easily readable format.\r\n"}]}]}, {"source1": "./usr/share/doc/spooles-doc/SymbFac.ps.gz", "source2": "./usr/share/doc/spooles-doc/SymbFac.ps.gz", "unified_diff": null, "details": [{"source1": "SymbFac.ps", "source2": "SymbFac.ps", "unified_diff": "@@ -11,15 +11,15 @@\n %%EndComments\n %%BeginDefaults\n %%ViewingOrientation: 1 0 0 1\n %%EndDefaults\n %DVIPSWebPage: (www.radicaleye.com)\n %DVIPSCommandLine: dvips main -o SymbFac.ps\n %DVIPSParameters: dpi=600\n-%DVIPSSource: TeX output 2025.08.03:1317\n+%DVIPSSource: TeX output 2024.07.01:0700\n %%BeginProcSet: tex.pro 0 0\n %!\n /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S\n N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72\n mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0\n 0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{\n landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize\n@@ -1006,23 +1006,22 @@\n /UnderlinePosition -100 def\n /UnderlineThickness 50 def\n end readonly def\n /Encoding 256 array\n 0 1 255 {1 index exch /.notdef put} for\n dup 44 /comma put\n dup 48 /zero put\n+dup 49 /one put\n dup 50 /two put\n-dup 51 /three put\n-dup 53 /five put\n+dup 52 /four put\n dup 58 /colon put\n-dup 65 /A put\n-dup 103 /g put\n-dup 115 /s put\n-dup 116 /t put\n+dup 74 /J put\n+dup 108 /l put\n dup 117 /u put\n+dup 121 /y put\n readonly def\n currentdict end\n currentfile eexec\n D9D66F633B846AB284BCF8B0411B772DE5CE32340DC6F28AF40857E4451976E7\n 5182433CF9F333A38BD841C0D4E68BF9E012EB32A8FFB76B5816306B5EDF7C99\n 8B3A16D9B4BC056662E32C7CD0123DFAEB734C7532E64BBFBF5A60336E646716\n EFB852C877F440D329172C71F1E5D59CE9473C26B8AEF7AD68EF0727B6EC2E0C\n@@ -1203,79 +1202,67 @@\n 7CA1534C4D5B05FC33F83790ECFD7641DF3FB94289E2A1F6E7D29AB1228A867A\n 6E1EF0E9C6F899B491DC18401C2C0A05FFFED46A72C245F7529B8EA55A038082\n 8512307217D2A233C37004085BA3AEE379269F9FA7D0ADB4B19A95CC2AFE686E\n 55D88E47257C1FE6F235FEA295910569FE6DD5995512562359CC821E85A6C7A5\n 79B470A9E340A6985189FF8B6AF914A6B0ECF93F47903221F95DE894A8F05B05\n B7D99CD533EC5F931B18E6B39BECF67FA2D6DD1AEC76772B068BE06335A94C05\n 7A4DDEE77B66101DA855C17AC312600370B34E31F5EC3A01300A8EB60B4C9767\n-1B2FA10DF7E91D3BB34A1B1CE7A0015A57C813E0280D873ADB88440048702D1F\n-77994EE04EC3B4531D6E1888C86A8F0DA6CF1F056F16AB0DD76C862830F89DA4\n-28923B3AA543E0D6E41D3BD283E600BC11F889315EE92C675C109C81065ED1BC\n-82A5583D1B723D50051B0557A367887F5B263014C6E77288B4883C50889473D3\n-3787BAD4BEB88BD1353AFA5B73E61814819537E7FF09F53EF94792BB3DD36ED0\n-002D0E7A6CDAB85A9C17AF5664BCB5A71663B861880F3ECCABC8E7A2FC81A4CC\n-AE7A87503FDC1CE0077BA51ECC7B43B60793FED8E9AAD5BBD03ADD6183DCD26D\n-24A74163611C05562437644EF9B8889FD4F9D311911204FEFD35237486F2D2D0\n-B6783A03BF12EA6D19D6D0F87E4D08515F12F9CBF1961CAA71E0D69FE3C4C4D2\n-7C7FB64ED24F8684C8F00C2BEDEA53EA390CDC0B5BEBD7DD982580B2EA1F1F89\n-CFED5916630DC2BA32BB9180277E1ABC339B3B7DE086717BD93F7FF3681BA5B3\n-FCF671C4B293C2DE4A322F0AA3323A4934444C69F23EF90120B8755482757759\n-C457A435FB8BB4922BD92C5F3D9555D978275C510183E29DFF2FCE4ABBFC18DE\n-76CAD3B486BA12047DD808CD4D521A0FD368E4AE79DE262630983A5D6F0B679D\n-2F005306393C520E1B6987302D029939D94B0178DC55D5264E1FEA468AD4134C\n-8C65B2FBBE8DE8284E8E1F6BFE0B648F44D3DA8E9350D266EDBFD4A7054D9355\n-1E0B185DED37BCF32D3731358F1D707C94109428BAD3CEA456A2A43553E3D2C2\n-F549189201F3D3F715310E3E8C6A2E9AA5141AA9125D203694C7D875C2DD320F\n-C5BCDFC924F6C04DBC7A97349B45ECD0FBD7D2123ED1D3A9F440B1112BE62779\n-47A4592F9285CBD9635EC9091CEC0AFD7E6B6976974081DB9C0E43165BD8584D\n-6CDF08DED287F0883A9FBD351B3F8706BA1E94C7CA487338269482EB8DC1A05D\n-F6632A5D834DE29228C49C5BA65EF7C535A53B380BF4B391F43562147538EE97\n-E799DFC2C40315859F56BBCE9CAE1DF9293F6E2C193ABE7A724EC8F32FA220E7\n-6026877A63E318254F2AF7B1325D63FC4C52B536D3EF354814C2F8F1EEA30569\n-6EF04447DB0F809DF35B4985B9FB4F4BB6087310BE633E76F268B32ABA99CE8E\n-03163DFF4AEDB88E60DD0848C15E90026D7C24D81122EBC07113F9851914A9D5\n-D0E09C2BFDDAF10C5D8208E8329BC0C402F231CD84C95EFDD182AD9756662110\n-274650C7A5BB0D8EFA54EC6C5A49C0EB26701A54779AE8EFBBED824262761602\n-680EDFB38F0FE18C0F501F5AA8BF48A8F0DD3E5E1EBEB872F6F6B23964707B32\n-507FC677B9FDDC990E3828B06420F6F968B2F6AE81E76A2144B1ECE905485616\n-CFB29AC96DDE1F5039935D7E385CC13E34DD7EAF276A2EA3A8BF27FD4205AE13\n-7FE620E42F2CF231C6C8DD8EFC5A6CF081E5660D9ADD730D72D15C02B1E15FF3\n-D741D3B1EB1E666C4E562219033C1E2EF3F96E136998B2E1890395A3637A2C02\n-DE1C46AFCA8D898439F06606A2295D3F7ED6C7DB250C61B6B97A0D5EDDB9657E\n-E790B4E07540BB1026036F4A0D00E7F16FD757AD61D686620C6814B7DCEC43E8\n-FD36D9E75BA554F64548A67D9B0A26E11784E58D4357FC251D71B5D6D8BFDDE0\n-D3BF0E825DA5312C1904AF13C5905C2ADF79C357476183D2EC5A95243235E861\n-2F98D9EE77EF8F8CB3EC6BD358C5ED37DD3AF44D60575E7774BF96F1AE9DFAD1\n-F8646DEDF21D10311854726B8F7D25876BB1EF78E2442B16ED4B851816CF0A27\n-11FDFCE525002A1A7C3E62CD2A3EDE6FAADB026D2F3A46C030ADB22422CA8FF5\n-2545ED58C0D9FB5BDB55FE674301E91A75B005B86BD201D246F7ADACE50419FD\n-AC3312CAC5EB78A36F0E5F62E65AC92129CB574AAC59E0A7C1390DFC61F39D9E\n-D7036742F2F6E64D1EF8157E9CCF65F3EEDC6A8220235978B8E06EB80F649F3E\n-204CFB497F49306EA8E1F7B62305978A28F1E771ED82C6592C71022154E4062A\n-A92335EFC65D6DED9C686899FFD7AA2988740618C03C5E362E1AF352E3BE4602\n-5530C51E5FC8E9082DF79199CC91C50174000D337D86127AC807C5A3C81DDE57\n-7A68AEE7230949B925365C214D77C80E87CEE218ABC94023717EA43BA5D8A7C8\n-8A8B9BD1B767996AE33050E3D922ED0574E3579C57E4BDDAD35883806AFDF260\n-3AB5D83D451583262E580FFDB7A27D82396AF18D92B849A3F7A7E621987D5DF0\n-038F876C6E9CA47FB11AF05F0019191C5DDC5F0177AD421E94BC66D0CCB82F1F\n-93A80836284B095503752C600F72E2C89112ABFA5B76152691264103B268B3E5\n-8816724ADADB38740001A9AACE05C8AF02D72918606DC22EFC8BF0DA0FD12FFE\n-D3A09F8E28057F327BFB633E604B1EAD478637B1D9631650B314CC62D7E0E87F\n-9D3FE1FFA23BB6E3006C3E39BED52F6B0C1C651B5913878F36DA0BF776889165\n-68BA3456B40B8B471CA8FF5238E43D9113E052A2B8D2EAA2433D3F89FCA48AFB\n-5E842913E4ED6DF9623354059CD1F1707B126FED80349787C869883120183EDD\n-249185A55503FAC53898F52170D05CAC62BB742CF9702C0518AED6B27CDC401C\n-932E02143FD916703F360CB31049501B35EF3EDDFED791090D0CFA221FD1DB32\n-7D4759CE07983AE29C258C705D11E7D9481EEAAB9B6BA65CDCF0AA0057BD6FEA\n-ABBFBD3ABF2A7BFB550C3D2A16DC447384A89F3DB6D9C2DBDCA997ABE35A7706\n-633D328AECEDB5BD07070C1B96267FD73B45791DD18194F60D358091FBE88409\n-973529806F3D2C9E6E39091F90A14B560A987E0B9490B9B690FB489B8E253070\n-D7C54447BE0E0A0BFEAEFFB581DC1300E6EC382984673BF0665632404E59B5BF\n-5D5F0A1C956E618C0487751CA5DAE8A95C214F76ED756694EF273679CD2D85CB\n-949DF385BD50491649EFEFDA1574921D7460143D42A100D2C76E55F0BC\n+1B2FA10DF7E91D3BB34A1B1CE7A0015A57C813E0280D873ADB8844004B9BA1CC\n+580D3C6BDA4DC1B80B4365F1C80512453FC5316EC2D928FB731C3D6403E3C18B\n+E8424D644DF5E9A2134229C5C91CA68DB8E85BA2BB40F538F585DA6FA4037718\n+B8053EBBA1E765346BCD5BDAA6C38115D31611D8A87A2238C145F2DA2F92E4DF\n+3987BD9C4D2A3D460E8941A68B125BCD9EE4F9FD262C4C8A71F47A2C81975635\n+F1B981C274C53FA2ACCDE4C9D0A7C62D6C1EFF91CFC6712CA6A9F333C9564FCB\n+2A70F0AD715A79B10A08AB069E2A3C93BC0AED19D0CA10134B8DDDE8AF548DB2\n+3A4AAA9C29682CF135BB767DAA16169A127EB50A7EECEB6480CF56A7D0F8AC56\n+4A5090B3D75A790372886AF568D94C8165975A05BFBFDF1FFBA45F70700BB9E0\n+57F3249EF9E9C8AD9CBCF6E4FD592DC4CDD2CC7C0BC3130C1059096C657BE453\n+A2CBACE93420210E27AF56CA229BD6D982FB68B3FDC6D44478B922C4231C47EE\n+E500232F6C11D92DEB955F66DF52B92B22E7352790CC2DCBAC53965D57AC2920\n+68B7D520DE25047146EFEB06B9AD4E2A94243C7E5239F0BC2FC312B16051D52C\n+0B92C217B6B42997321AE4F8BB066754B7AA3F15069EF59224E8A442CE471AA7\n+E8049A3DD9EDA09CCEE4998998661CF7DB35E952F6C65DAEB3013951C59F3E09\n+157F313B0237876E1C0190F0473819570B8C0205AADF05D787CC00979CFB327A\n+289382B22DDA6F12804ED0ED5B179E36A995A2A59E1B66E75130DBE9109C813B\n+94403E0DEA8314A1E9DB474D7FA83C0BAFD08033E6A6215844C1D26BE15F1251\n+A1605E8DF9A9C601ED37379530BC1C82BE5463C6C711C5652BFD6262485AA9CA\n+B8C4A117593001D08D980041E2A83C190DCE8E6CD3D334E5CC19FC05DB30F7F7\n+24A305C4DBB31F0651392B99D44B4302333BDF7E326FD256DD75D309C6E73F85\n+FA71B35FD1F9BEFF4C7A1076362EEB0A85492933B6006086A7B8C1928CF2D1EE\n+FD4344409257BB802C117E739960821CD3C88BFBA5669FF16F610AD638AF3677\n+8674C985E6767253ED5769F71BEA5E9BB02A751F9E62EE2B18AC19D975FDEAE9\n+8B8822367FF177A7E850766DE99ED3366D46464612926430012212A90F8E85F4\n+4760B40D5B86B90819EE410382D22D8ED82D0B0AB00C93E10CD365F8766D1C87\n+B4A866021FB6F6AC3D250CC601989B1B8FE6B1098A48282D2CF258BF38FEE940\n+CE0141FB1344156DE7712A8F2DBF700174F12616EE17C852210D96D03E5E6635\n+D439EB6E84A383DDD32AD72DADE6F931FDBABBDC726C36081C96018FC95EAE13\n+DA1F8DBC2D8355AC9792649653225393F4A7A88F3B9443FEEB75E2C15BF93F09\n+CCBA7FABC022BE26F4C28152D5DA6D690494AD4EC0DA1B598AE12536BADF88B5\n+5E20EB452546389F57FF55459567B453AE1831C57D22FA6A4FDF441EDAFDB7FB\n+4F4B707C1FF9159C40F7B5DD519FC07815EE91B8D756B6C18500BCF47D0D9E45\n+6A2D51B6AA5AEAAC9AB2DEF7F0FDE957B6C179CBADEECAC7E9CEC248AB135EB4\n+FBF83D002FF859B574EF36C371540EF2BCFCEF5C2E7863AEDD7C3C965103453B\n+023A9CEC1D5C45B88827ADF4AE0C6746F3C7E6A944427DAEC493601019583A16\n+0F846CE00EAE89EEFF9CE68A0E1D6EBB8FDD8A45D1BF399B36A8328EC957CB8B\n+D842A56269C8C9A6B472C9E65BCBC090606B4E8A7EF4ABDEA120C9F9B3969A1C\n+2EB102925F4E155160E58000E1ADB0D19E10EFD96F6C3225EEE8FC24D122C069\n+C11F1A69DC383F7DACD2F3929BD135CE69787C6E7560AC4B683FE5D9AAFD2E89\n+EE6D95E38C9B726B416E28169A11E29559DBA9AECD714CF318FCB78F34A0E562\n+9C00FE0C6D5A848557D9A82EC2BEFCD30B5EDC0B23C5BA9F812C864394C8B9D1\n+B08BAC9CF94E70FF842306ACCFE6E39A56777C712904A3AB29FBD19275E19E06\n+B35B37CFFFCEC81CAF2D85A853663FAFCFFED1EA77064AA28C15BC94910683BC\n+D09513079DE9EE18E97CC2403DD206516D7F652A3459870757F34EEDCEF952C3\n+FE8004F4716B5BD6774E455010B0BB1E61FCD66B9F14F9BBCCF3E55A158EE96E\n+9A05BDFDDC7706D4BC28FDDC4004EF3A430C607EBDF115E0C996454D70C8BB42\n+D7C83A454B116663D648C23CE2B33365810DE2B64D4AE011BC8043BC3E05B94D\n+1700F859C6AFC6515C1C42FA104EE3E8F3FA5F80252C2E79B00ED27F675FFD09\n+B50BF7A3C63CF4856F909DF969D7DD3EA05CABDD1E71A58CFC2AB5F614B4E5E0\n+25CF92E9FB66ACEBE05DF5E033DA8AD3EE32D94C02D98DD7DA99FAB5AEA595C3\n+2987DC122F0242D76B782349E4069DE0CDD6EF4375C680CBFE4C8F24F2AE89BF\n+7785F5EA7435A91500F265022C307E8ADEAAE1C6\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n@@ -3957,38 +3944,38 @@\n FFFE000FFFFFFC0007FFFFF80003FFFFF00000FFFFC000003FFF0000000FFC000022227B\n A72D>136 D E\n /Fa load 0 Fa currentfont 91.25 scalefont put/FMat X/FBB\n X/IEn X\n %EndDVIPSBitmapFont\n /Fb 133[50 59 4[44 44 46 2[56 62 93 31 2[31 62 1[34 51\n 62 50 62 54 13[62 32[56 56 2[31 46[{}21 99.6264 /CMBX12\n-rf /Fc 138[51 35 36 11[45 37[68 6[25 4[45 1[45 45 1[45\n-3[25 44[{}11 90.9091 /CMSL10 rf /Fd 134[62 11[62 9[62\n-62 62 13[62 12[62 70[{}7 119.552 /CMTT12 rf /Fe 134[71\n-2[71 75 52 53 55 1[75 67 75 112 3[37 75 67 41 61 75 60\n-1[65 13[75 2[92 11[103 16[67 67 67 2[37 46[{}25 119.552\n-/CMBX12 rf /Ff 171[73 4[79 82 8[69 10[29 58[{}5 90.9091\n-/CMBX10 rf /Fg 164[61 36[0 53[71{}3 90.9091 /CMSY10 rf\n-/Fh 181[50 7[69 68 48 3[71 32[52 27[{}6 90.9091 /CMMI10\n-rf /Fi 137[42 49 30 37 38 1[46 46 51 2[42 1[28 46 42\n-1[42 46 42 1[46 12[65 1[66 11[59 62 69 2[68 6[28 58[{}23\n-90.9091 /CMTI10 rf /Fj 133[48 48 48 48 48 48 48 48 48\n-1[48 48 48 48 48 2[48 48 48 48 48 48 48 48 48 1[48 1[48\n-1[48 1[48 48 1[48 48 48 48 48 1[48 48 48 48 48 1[48 48\n-48 48 48 48 48 48 48 48 2[48 2[48 12[48 48 48 1[48 48\n-48 1[48 38[{}57 90.9091 /CMTT10 rf /Fk 131[91 1[40 48\n-48 66 48 51 35 36 36 48 51 45 51 76 25 48 28 25 51 45\n-28 40 51 40 51 45 9[93 2[66 3[62 71 2[57 2[33 3[62 2[64\n-4[71 1[25 5[45 45 45 45 45 2[25 30 25 2[35 35 25 24[76\n-1[51 53 11[{}51 90.9091 /CMR10 rf /Fl 133[103 123 123\n-3[90 1[95 2[116 129 194 65 2[65 3[106 129 103 129 113\n-13[129 9[87 2[146 11[65 58[{}19 206.559 /CMBX12 rf /Fm\n-134[106 11[106 9[106 106 106 13[106 12[106 70[{}7 206.559\n-/CMTT12 rf /Fn 139[75 1[79 1[108 7[108 2[88 3[94 29[140\n-17[97 49[{}8 172.188 /CMBX12 rf end\n+rf /Fc 134[48 3[51 8[25 33[47 15[25 5[45 1[45 45 45 3[25\n+44[{}10 90.9091 /CMSL10 rf /Fd 134[62 11[62 9[62 62 62\n+13[62 12[62 70[{}7 119.552 /CMTT12 rf /Fe 134[71 2[71\n+75 52 53 55 1[75 67 75 112 3[37 75 67 41 61 75 60 1[65\n+13[75 2[92 11[103 16[67 67 67 2[37 46[{}25 119.552 /CMBX12\n+rf /Ff 171[73 4[79 82 8[69 10[29 58[{}5 90.9091 /CMBX10\n+rf /Fg 164[61 36[0 53[71{}3 90.9091 /CMSY10 rf /Fh 181[50\n+7[69 68 48 3[71 32[52 27[{}6 90.9091 /CMMI10 rf /Fi 137[42\n+49 30 37 38 1[46 46 51 2[42 1[28 46 42 1[42 46 42 1[46\n+12[65 1[66 11[59 62 69 2[68 6[28 58[{}23 90.9091 /CMTI10\n+rf /Fj 133[48 48 48 48 48 48 48 48 48 1[48 48 48 48 48\n+2[48 48 48 48 48 48 48 48 48 1[48 1[48 1[48 1[48 48 1[48\n+48 48 48 48 1[48 48 48 48 48 1[48 48 48 48 48 48 48 48\n+48 48 2[48 2[48 12[48 48 48 1[48 48 48 1[48 38[{}57 90.9091\n+/CMTT10 rf /Fk 131[91 1[40 48 48 66 48 51 35 36 36 48\n+51 45 51 76 25 48 28 25 51 45 28 40 51 40 51 45 9[93\n+2[66 3[62 71 2[57 2[33 3[62 2[64 4[71 1[25 5[45 45 45\n+45 45 2[25 30 25 2[35 35 25 24[76 1[51 53 11[{}51 90.9091\n+/CMR10 rf /Fl 133[103 123 123 3[90 1[95 2[116 129 194\n+65 2[65 3[106 129 103 129 113 13[129 9[87 2[146 11[65\n+58[{}19 206.559 /CMBX12 rf /Fm 134[106 11[106 9[106 106\n+106 13[106 12[106 70[{}7 206.559 /CMTT12 rf /Fn 139[75\n+1[79 1[108 7[108 2[88 3[94 29[140 17[97 49[{}8 172.188\n+/CMBX12 rf end\n %%EndProlog\n %%BeginSetup\n %%Feature: *Resolution 600dpi\n TeXDict begin\n %%BeginPaperSize: a4\n /setpagedevice where\n { pop << /PageSize [595 842] >> setpagedevice }\n@@ -4054,17 +4041,17 @@\n (ciated)g(with)g(the)f Fj(SymbFac)f Fk(ob)5 b(ject.)0\n 5073 y Fe(1.2)135 b(Protot)l(yp)t(es)46 b(and)f(descriptions)g(of)g\n Fd(SymbFac)d Fe(metho)t(ds)0 5294 y Fk(This)f(section)j(con)m(tains)f\n (brief)f(descriptions)g(including)f(protot)m(yp)s(es)i(of)f(all)h\n (metho)s(ds)f(that)h(b)s(elong)f(to)h(the)0 5407 y Fj(SymbFac)28\n b Fk(ob)5 b(ject.)1927 5656 y(1)p eop end\n %%Page: 2 2\n-TeXDict begin 2 1 bop 0 100 a Fk(2)p 136 100 1098 4 v\n-1280 w Fj(SymbFac)28 b Fc(:)41 b Fi(DRAFT)30 b Fc(August)g(3,)h(2025)p\n-2802 100 V 0 399 a Fb(1.2.1)112 b(Sym)m(b)s(olic)39 b(factorization)f\n+TeXDict begin 2 1 bop 0 100 a Fk(2)p 136 100 1156 4 v\n+1338 w Fj(SymbFac)28 b Fc(:)41 b Fi(DRAFT)30 b Fc(July)g(1,)h(2024)p\n+2745 100 V 0 399 a Fb(1.2.1)112 b(Sym)m(b)s(olic)39 b(factorization)f\n (metho)s(ds)111 596 y Fk(1.)46 b Fj(IVL)h(*)h(SymbFac_initFromGraph)42\n b(\\()47 b(ETree)f(*etree,)g(Graph)h(*graph)f(\\))h(;)227\n 748 y Fk(This)33 b(sym)m(b)s(olic)h(factorization)i(metho)s(d)d(tak)m\n (es)i(a)f Fj(Graph)e Fk(ob)5 b(ject)34 b(as)g(input.)49\n b(This)33 b(metho)s(d)g(constructs)227 861 y(an)e Fj(IVL)f\n Fk(ob)5 b(ject)32 b(that)f(con)m(tains)h(one)g(list)f(p)s(er)f(fron)m\n (t.)42 b(List)31 b Fj(ilist)f Fk(con)m(tains)i(the)f(in)m(ternal)h(and)\n@@ -4148,28 +4135,27 @@\n b(is)h(optionally)h(written)f(out)g(to)g Fj(outETreeFile)p\n Fk(.)35 b(The)22 b(old-to-new)i Fj(IV)e Fk(ob)5 b(ject)23\n b(is)g(optionally)h(written)227 5294 y(to)32 b Fj(outIVfile)p\n Fk(.)40 b(The)31 b Fj(IVL)f Fk(ob)5 b(ject)32 b(that)g(con)m(tains)g\n (the)f(sym)m(b)s(olic)h(factorization)h(is)e(optionally)i(written)227\n 5407 y(to)e Fj(outIVLfile)p Fk(.)p eop end\n %%Page: 3 3\n-TeXDict begin 3 2 bop 91 100 1098 4 v 1280 100 a Fj(SymbFac)28\n-b Fc(:)41 b Fi(DRAFT)121 b Fc(August)30 b(3,)h(2025)p\n-2755 100 V 1098 w Fk(3)337 399 y Fa(\\210)45 b Fk(The)30\n-b Fj(msglvl)f Fk(parameter)i(determines)f(the)h(amoun)m(t)f(of)h\n-(output.)337 557 y Fa(\\210)45 b Fk(The)33 b Fj(msgFile)e\n-Fk(parameter)j(determines)f(the)h(message)g(\\014le)f(|)h(if)f\n-Fj(msgFile)e Fk(is)i Fj(stdout)p Fk(,)g(then)g(the)427\n-670 y(message)27 b(\\014le)f(is)g Fi(stdout)p Fk(,)i(otherwise)e(a)h\n-(\\014le)f(is)f(op)s(ened)g(with)h Fi(app)-5 b(end)28\n-b Fk(status)e(to)g(receiv)m(e)i(an)m(y)e(output)427 783\n-y(data.)337 941 y Fa(\\210)45 b Fk(The)23 b Fj(inETreeFile)d\n-Fk(parameter)k(is)f(the)h(input)e(\\014le)i(for)f(the)g\n-Fj(ETree)f Fk(ob)5 b(ject.)39 b(It)24 b(m)m(ust)f(b)s(e)f(of)i(the)f\n-(form)427 1054 y Fj(*.etreef)18 b Fk(or)j Fj(*.etreeb)p\n+TeXDict begin 3 2 bop 91 100 1156 4 v 1337 100 a Fj(SymbFac)29\n+b Fc(:)40 b Fi(DRAFT)121 b Fc(July)30 b(1,)h(2024)p 2697\n+100 V 1156 w Fk(3)337 399 y Fa(\\210)45 b Fk(The)30 b\n+Fj(msglvl)f Fk(parameter)i(determines)f(the)h(amoun)m(t)f(of)h(output.)\n+337 557 y Fa(\\210)45 b Fk(The)33 b Fj(msgFile)e Fk(parameter)j\n+(determines)f(the)h(message)g(\\014le)f(|)h(if)f Fj(msgFile)e\n+Fk(is)i Fj(stdout)p Fk(,)g(then)g(the)427 670 y(message)27\n+b(\\014le)f(is)g Fi(stdout)p Fk(,)i(otherwise)e(a)h(\\014le)f(is)f(op)s\n+(ened)g(with)h Fi(app)-5 b(end)28 b Fk(status)e(to)g(receiv)m(e)i(an)m\n+(y)e(output)427 783 y(data.)337 941 y Fa(\\210)45 b Fk(The)23\n+b Fj(inETreeFile)d Fk(parameter)k(is)f(the)h(input)e(\\014le)i(for)f\n+(the)g Fj(ETree)f Fk(ob)5 b(ject.)39 b(It)24 b(m)m(ust)f(b)s(e)f(of)i\n+(the)f(form)427 1054 y Fj(*.etreef)18 b Fk(or)j Fj(*.etreeb)p\n Fk(.)35 b(The)19 b Fj(ETree)g Fk(ob)5 b(ject)21 b(is)g(read)f(from)g\n (the)g(\\014le)h(via)f(the)h Fj(ETree)p 3368 1054 29 4\n v 33 w(readFromFile\\(\\))427 1167 y Fk(metho)s(d.)337\n 1325 y Fa(\\210)45 b Fk(The)c Fj(inInpMtxFile)c Fk(parameter)k(is)g(the)\n g(input)f(\\014le)h(for)g(the)g Fj(InpMtx)e Fk(ob)5 b(ject.)73\n b(It)41 b(m)m(ust)g(b)s(e)f(of)427 1438 y(the)h(form)g\n Fj(*.inpmtxf)d Fk(or)j Fj(*.inpmtxb)p Fk(.)70 b(The)41\n@@ -4239,17 +4225,17 @@\n (input)e(\\014le)i(for)f(the)g Fj(Graph)f Fk(ob)5 b(ject.)39\n b(It)24 b(m)m(ust)f(b)s(e)f(of)i(the)f(form)427 5294\n y Fj(*.graphf)18 b Fk(or)j Fj(*.graphb)p Fk(.)35 b(The)19\n b Fj(Graph)g Fk(ob)5 b(ject)21 b(is)g(read)f(from)g(the)g(\\014le)h(via)\n f(the)h Fj(Graph)p 3368 5294 V 33 w(readFromFile\\(\\))427\n 5407 y Fk(metho)s(d.)p eop end\n %%Page: 4 4\n-TeXDict begin 4 3 bop 0 100 a Fk(4)p 136 100 1098 4 v\n-1280 w Fj(SymbFac)28 b Fc(:)41 b Fi(DRAFT)30 b Fc(August)g(3,)h(2025)p\n-2802 100 V 337 399 a Fa(\\210)45 b Fk(The)24 b Fj(outETreeFile)d\n+TeXDict begin 4 3 bop 0 100 a Fk(4)p 136 100 1156 4 v\n+1338 w Fj(SymbFac)28 b Fc(:)41 b Fi(DRAFT)30 b Fc(July)g(1,)h(2024)p\n+2745 100 V 337 399 a Fa(\\210)45 b Fk(The)24 b Fj(outETreeFile)d\n Fk(parameter)k(is)f(the)h(output)f(\\014le)g(for)g(the)h\n Fj(ETree)d Fk(ob)5 b(ject.)40 b(If)24 b Fj(outETreeFile)d\n Fk(is)427 511 y Fj(none)g Fk(then)h(the)g Fj(ETree)f\n Fk(ob)5 b(ject)22 b(is)g(not)h(written)f(to)g(a)h(\\014le.)38\n b(Otherwise,)23 b(the)g Fj(ETree)p 3253 511 29 4 v 33\n w(writeToFile\\(\\))427 624 y Fk(metho)s(d)30 b(is)h(called)h(to)f(write)\n g(the)g(ob)5 b(ject)31 b(to)h(a)f(formatted)g(\\014le)g(\\(if)g\n", "details": [{"source1": "ps2ascii {}", "source2": "ps2ascii {}", "unified_diff": "@@ -22,15 +22,15 @@\n to have chevron coordinate type and storage mode must be by vectors.\r\n 1.1 Data Structure\r\n There is no struct or data associated with the SymbFac object.\r\n 1.2 Prototypes and descriptions of SymbFac methods\r\n This section contains brief descriptions including prototypes of all methods that belong to the\r\n SymbFac object.\r\n 1\r\n- 2 SymbFac : DRAFT August 3, 2025\r\n+ 2 SymbFac : DRAFT July 1, 2024\r\n 1.2.1 Symbolic factorization methods\r\n 1. IVL * SymbFac_initFromGraph ( ETree *etree, Graph *graph ) ;\r\n This symbolic factorization method takes a Graph object as input. This method constructs\r\n an IVL object that contains one list per front. List ilist contains the internal and external\r\n vertices for front ilist. If the input graph is a compressed graph, then the lists of compressed\r\n vertices make little sense; they must be converted to original vertices. To do this, see the\r\n IVL expand() method. The nodwghtsIV and bndwghtsIV objects for the ETree object are\r\n@@ -61,15 +61,15 @@\n 1. testSymbFacInpMtx msglvl msgFile inETreeFile inDInpMtxFile\r\n outETreeFile outIVfile outIVLfile\r\n This driver program reads in an ETree object and a InpMtx object and computes the symbolic\r\n factorization. The ETree object is updated (the front sizes and boundary sizes may change)\r\n andisoptionally written out to outETreeFile. The old-to-new IV object is optionally written\r\n to outIVfile. The IVL object that contains the symbolic factorization is optionally written\r\n to outIVLfile.\r\n- SymbFac : DRAFT August 3, 2025 3\r\n+ SymbFac : DRAFT July 1, 2024 3\r\n \u2022 The msglvl parameter determines the amount of output.\r\n \u2022 The msgFile parameter determines the message \ufb01le \u2014 if msgFile is stdout, then the\r\n message \ufb01le is stdout, otherwise a \ufb01le is opened with append status to receive any output\r\n data.\r\n \u2022 TheinETreeFileparameteristheinput\ufb01lefortheETreeobject. It mustbeof theform\r\n *.etreefor*.etreeb. TheETreeobjectisreadfromthe\ufb01leviatheETree readFromFile()\r\n method.\r\n@@ -101,15 +101,15 @@\n data.\r\n \u2022 TheinETreeFileparameteristheinput\ufb01lefortheETreeobject. It mustbeof theform\r\n *.etreefor*.etreeb. TheETreeobjectisreadfromthe\ufb01leviatheETree readFromFile()\r\n method.\r\n \u2022 TheinGraphFileparameteristheinput\ufb01lefortheGraphobject. It mustbeof theform\r\n *.graphfor*.graphb. TheGraphobjectisreadfromthe\ufb01leviatheGraph readFromFile()\r\n method.\r\n- 4 SymbFac : DRAFT August 3, 2025\r\n+ 4 SymbFac : DRAFT July 1, 2024\r\n \u2022 TheoutETreeFileparameter is the output \ufb01le for the ETree object. If outETreeFileis\r\n nonethentheETreeobjectisnotwrittentoa\ufb01le. Otherwise,theETree writeToFile()\r\n method is called to write the object to a formatted \ufb01le (if outETreeFile is of the form\r\n *.etreef), or a binary \ufb01le (if outETreeFile is of the form *.etreeb).\r\n \u2022 The outIVfile parameter is the output \ufb01le for the vertex-to-front map IV object.\r\n If outIVfile is none then the IV object is not written to a \ufb01le. Otherwise, the\r\n IV writeToFile()methodis called to write the object to a formatted \ufb01le (if outIVfile\r\n"}]}]}, {"source1": "./usr/share/doc/spooles-doc/Tree.ps.gz", "source2": "./usr/share/doc/spooles-doc/Tree.ps.gz", "unified_diff": null, "details": [{"source1": "Tree.ps", "source2": "Tree.ps", "unified_diff": "@@ -11,15 +11,15 @@\n %%EndComments\n %%BeginDefaults\n %%ViewingOrientation: 1 0 0 1\n %%EndDefaults\n %DVIPSWebPage: (www.radicaleye.com)\n %DVIPSCommandLine: dvips main -o Tree.ps\n %DVIPSParameters: dpi=600\n-%DVIPSSource: TeX output 2025.08.03:1317\n+%DVIPSSource: TeX output 2024.07.01:0700\n %%BeginProcSet: tex.pro 0 0\n %!\n /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S\n N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72\n mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0\n 0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{\n landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize\n@@ -2227,23 +2227,22 @@\n /UnderlinePosition -100 def\n /UnderlineThickness 50 def\n end readonly def\n /Encoding 256 array\n 0 1 255 {1 index exch /.notdef put} for\n dup 44 /comma put\n dup 48 /zero put\n+dup 49 /one put\n dup 50 /two put\n-dup 51 /three put\n-dup 53 /five put\n+dup 52 /four put\n dup 58 /colon put\n-dup 65 /A put\n-dup 103 /g put\n-dup 115 /s put\n-dup 116 /t put\n+dup 74 /J put\n+dup 108 /l put\n dup 117 /u put\n+dup 121 /y put\n readonly def\n currentdict end\n currentfile eexec\n D9D66F633B846AB284BCF8B0411B772DE5CE32340DC6F28AF40857E4451976E7\n 5182433CF9F333A38BD841C0D4E68BF9E012EB32A8FFB76B5816306B5EDF7C99\n 8B3A16D9B4BC056662E32C7CD0123DFAEB734C7532E64BBFBF5A60336E646716\n EFB852C877F440D329172C71F1E5D59CE9473C26B8AEF7AD68EF0727B6EC2E0C\n@@ -2424,79 +2423,67 @@\n 7CA1534C4D5B05FC33F83790ECFD7641DF3FB94289E2A1F6E7D29AB1228A867A\n 6E1EF0E9C6F899B491DC18401C2C0A05FFFED46A72C245F7529B8EA55A038082\n 8512307217D2A233C37004085BA3AEE379269F9FA7D0ADB4B19A95CC2AFE686E\n 55D88E47257C1FE6F235FEA295910569FE6DD5995512562359CC821E85A6C7A5\n 79B470A9E340A6985189FF8B6AF914A6B0ECF93F47903221F95DE894A8F05B05\n B7D99CD533EC5F931B18E6B39BECF67FA2D6DD1AEC76772B068BE06335A94C05\n 7A4DDEE77B66101DA855C17AC312600370B34E31F5EC3A01300A8EB60B4C9767\n-1B2FA10DF7E91D3BB34A1B1CE7A0015A57C813E0280D873ADB88440048702D1F\n-77994EE04EC3B4531D6E1888C86A8F0DA6CF1F056F16AB0DD76C862830F89DA4\n-28923B3AA543E0D6E41D3BD283E600BC11F889315EE92C675C109C81065ED1BC\n-82A5583D1B723D50051B0557A367887F5B263014C6E77288B4883C50889473D3\n-3787BAD4BEB88BD1353AFA5B73E61814819537E7FF09F53EF94792BB3DD36ED0\n-002D0E7A6CDAB85A9C17AF5664BCB5A71663B861880F3ECCABC8E7A2FC81A4CC\n-AE7A87503FDC1CE0077BA51ECC7B43B60793FED8E9AAD5BBD03ADD6183DCD26D\n-24A74163611C05562437644EF9B8889FD4F9D311911204FEFD35237486F2D2D0\n-B6783A03BF12EA6D19D6D0F87E4D08515F12F9CBF1961CAA71E0D69FE3C4C4D2\n-7C7FB64ED24F8684C8F00C2BEDEA53EA390CDC0B5BEBD7DD982580B2EA1F1F89\n-CFED5916630DC2BA32BB9180277E1ABC339B3B7DE086717BD93F7FF3681BA5B3\n-FCF671C4B293C2DE4A322F0AA3323A4934444C69F23EF90120B8755482757759\n-C457A435FB8BB4922BD92C5F3D9555D978275C510183E29DFF2FCE4ABBFC18DE\n-76CAD3B486BA12047DD808CD4D521A0FD368E4AE79DE262630983A5D6F0B679D\n-2F005306393C520E1B6987302D029939D94B0178DC55D5264E1FEA468AD4134C\n-8C65B2FBBE8DE8284E8E1F6BFE0B648F44D3DA8E9350D266EDBFD4A7054D9355\n-1E0B185DED37BCF32D3731358F1D707C94109428BAD3CEA456A2A43553E3D2C2\n-F549189201F3D3F715310E3E8C6A2E9AA5141AA9125D203694C7D875C2DD320F\n-C5BCDFC924F6C04DBC7A97349B45ECD0FBD7D2123ED1D3A9F440B1112BE62779\n-47A4592F9285CBD9635EC9091CEC0AFD7E6B6976974081DB9C0E43165BD8584D\n-6CDF08DED287F0883A9FBD351B3F8706BA1E94C7CA487338269482EB8DC1A05D\n-F6632A5D834DE29228C49C5BA65EF7C535A53B380BF4B391F43562147538EE97\n-E799DFC2C40315859F56BBCE9CAE1DF9293F6E2C193ABE7A724EC8F32FA220E7\n-6026877A63E318254F2AF7B1325D63FC4C52B536D3EF354814C2F8F1EEA30569\n-6EF04447DB0F809DF35B4985B9FB4F4BB6087310BE633E76F268B32ABA99CE8E\n-03163DFF4AEDB88E60DD0848C15E90026D7C24D81122EBC07113F9851914A9D5\n-D0E09C2BFDDAF10C5D8208E8329BC0C402F231CD84C95EFDD182AD9756662110\n-274650C7A5BB0D8EFA54EC6C5A49C0EB26701A54779AE8EFBBED824262761602\n-680EDFB38F0FE18C0F501F5AA8BF48A8F0DD3E5E1EBEB872F6F6B23964707B32\n-507FC677B9FDDC990E3828B06420F6F968B2F6AE81E76A2144B1ECE905485616\n-CFB29AC96DDE1F5039935D7E385CC13E34DD7EAF276A2EA3A8BF27FD4205AE13\n-7FE620E42F2CF231C6C8DD8EFC5A6CF081E5660D9ADD730D72D15C02B1E15FF3\n-D741D3B1EB1E666C4E562219033C1E2EF3F96E136998B2E1890395A3637A2C02\n-DE1C46AFCA8D898439F06606A2295D3F7ED6C7DB250C61B6B97A0D5EDDB9657E\n-E790B4E07540BB1026036F4A0D00E7F16FD757AD61D686620C6814B7DCEC43E8\n-FD36D9E75BA554F64548A67D9B0A26E11784E58D4357FC251D71B5D6D8BFDDE0\n-D3BF0E825DA5312C1904AF13C5905C2ADF79C357476183D2EC5A95243235E861\n-2F98D9EE77EF8F8CB3EC6BD358C5ED37DD3AF44D60575E7774BF96F1AE9DFAD1\n-F8646DEDF21D10311854726B8F7D25876BB1EF78E2442B16ED4B851816CF0A27\n-11FDFCE525002A1A7C3E62CD2A3EDE6FAADB026D2F3A46C030ADB22422CA8FF5\n-2545ED58C0D9FB5BDB55FE674301E91A75B005B86BD201D246F7ADACE50419FD\n-AC3312CAC5EB78A36F0E5F62E65AC92129CB574AAC59E0A7C1390DFC61F39D9E\n-D7036742F2F6E64D1EF8157E9CCF65F3EEDC6A8220235978B8E06EB80F649F3E\n-204CFB497F49306EA8E1F7B62305978A28F1E771ED82C6592C71022154E4062A\n-A92335EFC65D6DED9C686899FFD7AA2988740618C03C5E362E1AF352E3BE4602\n-5530C51E5FC8E9082DF79199CC91C50174000D337D86127AC807C5A3C81DDE57\n-7A68AEE7230949B925365C214D77C80E87CEE218ABC94023717EA43BA5D8A7C8\n-8A8B9BD1B767996AE33050E3D922ED0574E3579C57E4BDDAD35883806AFDF260\n-3AB5D83D451583262E580FFDB7A27D82396AF18D92B849A3F7A7E621987D5DF0\n-038F876C6E9CA47FB11AF05F0019191C5DDC5F0177AD421E94BC66D0CCB82F1F\n-93A80836284B095503752C600F72E2C89112ABFA5B76152691264103B268B3E5\n-8816724ADADB38740001A9AACE05C8AF02D72918606DC22EFC8BF0DA0FD12FFE\n-D3A09F8E28057F327BFB633E604B1EAD478637B1D9631650B314CC62D7E0E87F\n-9D3FE1FFA23BB6E3006C3E39BED52F6B0C1C651B5913878F36DA0BF776889165\n-68BA3456B40B8B471CA8FF5238E43D9113E052A2B8D2EAA2433D3F89FCA48AFB\n-5E842913E4ED6DF9623354059CD1F1707B126FED80349787C869883120183EDD\n-249185A55503FAC53898F52170D05CAC62BB742CF9702C0518AED6B27CDC401C\n-932E02143FD916703F360CB31049501B35EF3EDDFED791090D0CFA221FD1DB32\n-7D4759CE07983AE29C258C705D11E7D9481EEAAB9B6BA65CDCF0AA0057BD6FEA\n-ABBFBD3ABF2A7BFB550C3D2A16DC447384A89F3DB6D9C2DBDCA997ABE35A7706\n-633D328AECEDB5BD07070C1B96267FD73B45791DD18194F60D358091FBE88409\n-973529806F3D2C9E6E39091F90A14B560A987E0B9490B9B690FB489B8E253070\n-D7C54447BE0E0A0BFEAEFFB581DC1300E6EC382984673BF0665632404E59B5BF\n-5D5F0A1C956E618C0487751CA5DAE8A95C214F76ED756694EF273679CD2D85CB\n-949DF385BD50491649EFEFDA1574921D7460143D42A100D2C76E55F0BC\n+1B2FA10DF7E91D3BB34A1B1CE7A0015A57C813E0280D873ADB8844004B9BA1CC\n+580D3C6BDA4DC1B80B4365F1C80512453FC5316EC2D928FB731C3D6403E3C18B\n+E8424D644DF5E9A2134229C5C91CA68DB8E85BA2BB40F538F585DA6FA4037718\n+B8053EBBA1E765346BCD5BDAA6C38115D31611D8A87A2238C145F2DA2F92E4DF\n+3987BD9C4D2A3D460E8941A68B125BCD9EE4F9FD262C4C8A71F47A2C81975635\n+F1B981C274C53FA2ACCDE4C9D0A7C62D6C1EFF91CFC6712CA6A9F333C9564FCB\n+2A70F0AD715A79B10A08AB069E2A3C93BC0AED19D0CA10134B8DDDE8AF548DB2\n+3A4AAA9C29682CF135BB767DAA16169A127EB50A7EECEB6480CF56A7D0F8AC56\n+4A5090B3D75A790372886AF568D94C8165975A05BFBFDF1FFBA45F70700BB9E0\n+57F3249EF9E9C8AD9CBCF6E4FD592DC4CDD2CC7C0BC3130C1059096C657BE453\n+A2CBACE93420210E27AF56CA229BD6D982FB68B3FDC6D44478B922C4231C47EE\n+E500232F6C11D92DEB955F66DF52B92B22E7352790CC2DCBAC53965D57AC2920\n+68B7D520DE25047146EFEB06B9AD4E2A94243C7E5239F0BC2FC312B16051D52C\n+0B92C217B6B42997321AE4F8BB066754B7AA3F15069EF59224E8A442CE471AA7\n+E8049A3DD9EDA09CCEE4998998661CF7DB35E952F6C65DAEB3013951C59F3E09\n+157F313B0237876E1C0190F0473819570B8C0205AADF05D787CC00979CFB327A\n+289382B22DDA6F12804ED0ED5B179E36A995A2A59E1B66E75130DBE9109C813B\n+94403E0DEA8314A1E9DB474D7FA83C0BAFD08033E6A6215844C1D26BE15F1251\n+A1605E8DF9A9C601ED37379530BC1C82BE5463C6C711C5652BFD6262485AA9CA\n+B8C4A117593001D08D980041E2A83C190DCE8E6CD3D334E5CC19FC05DB30F7F7\n+24A305C4DBB31F0651392B99D44B4302333BDF7E326FD256DD75D309C6E73F85\n+FA71B35FD1F9BEFF4C7A1076362EEB0A85492933B6006086A7B8C1928CF2D1EE\n+FD4344409257BB802C117E739960821CD3C88BFBA5669FF16F610AD638AF3677\n+8674C985E6767253ED5769F71BEA5E9BB02A751F9E62EE2B18AC19D975FDEAE9\n+8B8822367FF177A7E850766DE99ED3366D46464612926430012212A90F8E85F4\n+4760B40D5B86B90819EE410382D22D8ED82D0B0AB00C93E10CD365F8766D1C87\n+B4A866021FB6F6AC3D250CC601989B1B8FE6B1098A48282D2CF258BF38FEE940\n+CE0141FB1344156DE7712A8F2DBF700174F12616EE17C852210D96D03E5E6635\n+D439EB6E84A383DDD32AD72DADE6F931FDBABBDC726C36081C96018FC95EAE13\n+DA1F8DBC2D8355AC9792649653225393F4A7A88F3B9443FEEB75E2C15BF93F09\n+CCBA7FABC022BE26F4C28152D5DA6D690494AD4EC0DA1B598AE12536BADF88B5\n+5E20EB452546389F57FF55459567B453AE1831C57D22FA6A4FDF441EDAFDB7FB\n+4F4B707C1FF9159C40F7B5DD519FC07815EE91B8D756B6C18500BCF47D0D9E45\n+6A2D51B6AA5AEAAC9AB2DEF7F0FDE957B6C179CBADEECAC7E9CEC248AB135EB4\n+FBF83D002FF859B574EF36C371540EF2BCFCEF5C2E7863AEDD7C3C965103453B\n+023A9CEC1D5C45B88827ADF4AE0C6746F3C7E6A944427DAEC493601019583A16\n+0F846CE00EAE89EEFF9CE68A0E1D6EBB8FDD8A45D1BF399B36A8328EC957CB8B\n+D842A56269C8C9A6B472C9E65BCBC090606B4E8A7EF4ABDEA120C9F9B3969A1C\n+2EB102925F4E155160E58000E1ADB0D19E10EFD96F6C3225EEE8FC24D122C069\n+C11F1A69DC383F7DACD2F3929BD135CE69787C6E7560AC4B683FE5D9AAFD2E89\n+EE6D95E38C9B726B416E28169A11E29559DBA9AECD714CF318FCB78F34A0E562\n+9C00FE0C6D5A848557D9A82EC2BEFCD30B5EDC0B23C5BA9F812C864394C8B9D1\n+B08BAC9CF94E70FF842306ACCFE6E39A56777C712904A3AB29FBD19275E19E06\n+B35B37CFFFCEC81CAF2D85A853663FAFCFFED1EA77064AA28C15BC94910683BC\n+D09513079DE9EE18E97CC2403DD206516D7F652A3459870757F34EEDCEF952C3\n+FE8004F4716B5BD6774E455010B0BB1E61FCD66B9F14F9BBCCF3E55A158EE96E\n+9A05BDFDDC7706D4BC28FDDC4004EF3A430C607EBDF115E0C996454D70C8BB42\n+D7C83A454B116663D648C23CE2B33365810DE2B64D4AE011BC8043BC3E05B94D\n+1700F859C6AFC6515C1C42FA104EE3E8F3FA5F80252C2E79B00ED27F675FFD09\n+B50BF7A3C63CF4856F909DF969D7DD3EA05CABDD1E71A58CFC2AB5F614B4E5E0\n+25CF92E9FB66ACEBE05DF5E033DA8AD3EE32D94C02D98DD7DA99FAB5AEA595C3\n+2987DC122F0242D76B782349E4069DE0CDD6EF4375C680CBFE4C8F24F2AE89BF\n+7785F5EA7435A91500F265022C307E8ADEAAE1C6\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n@@ -4941,16 +4928,16 @@\n @start /Fa 173[73 13[75 17[50 50 50 48[{}5 90.9091 /CMCSC10\n rf /Fb 146[62 3[24 105[{}2 66.4176 /CMMI8 rf /Fc 206[35\n 5[55 43[{}2 66.4176 /CMR8 rf /Fd 152[45 45 81[71 20[{}3\n 90.9091 /CMSY10 rf /Fe 133[50 59 1[81 1[62 44 44 46 1[62\n 56 62 93 31 2[31 62 56 1[51 62 50 1[54 11[86 4[77 84\n 1[106 2[58 42 4[86 81 80 8[56 56 56 56 56 56 56 56 56\n 56 1[31 33[62 12[{}40 99.6264 /CMBX12 rf /Ff 141[62 12[62\n-16[62 84[{}3 119.552 /CMTT12 rf /Fg 138[51 35 36 11[45\n-37[68 6[25 4[45 1[45 45 1[45 3[25 44[{}11 90.9091 /CMSL10\n+16[62 84[{}3 119.552 /CMTT12 rf /Fg 134[48 3[51 8[25\n+33[47 15[25 5[45 1[45 45 45 3[25 44[{}10 90.9091 /CMSL10\n rf /Fh 134[45 52 1[44 7[55 80 3[31 42[71 1[71 25 25 58[{}10\n 90.9091 /CMMI10 rf\n %DVIPSBitmapFont: Fi tcrm1095 10.95 1\n [/Grave/Acute/Circumflex/Tilde/Dieresis/Hungarumlaut/Ring/Caron/Breve/Macron\n /Dotaccent/cedilla/ogonek/quotesinglbase.ts1 4{/.notdef}repeat\n /quotedblbase.ts1/.notdef/.notdef/twelveudash/threequartersemdash\n /afii61664.cap/arrowleft/arrowright/tieaccentlowercase/tieaccentcapital\n@@ -5073,17 +5060,17 @@\n b(>)f Fn(0)31 b(then)f(w)m(e)h(assume)f(that)h(the)f(structure)0\n 5294 y(w)m(as)e(in)m(tialized)i(correctly)f(and)e(that)h(the)g\n Fm(par)p Fn(,)g Fm(fch)f Fn(and)g Fm(sib)f Fn(\\014elds)i(p)s(oin)m(t)f\n (to)i(storage)g(that)f(w)m(as)g(allo)s(cated)i(b)m(y)0\n 5407 y(the)h(initializer)h(metho)s(d.)1927 5656 y(1)p\n eop end\n %%Page: 2 2\n-TeXDict begin 2 1 bop 0 100 a Fn(2)p 136 100 1170 4 v\n-1352 w Fm(Tree)29 b Fg(:)41 b Fl(DRAFT)30 b Fg(August)g(3,)h(2025)p\n-2731 100 V 0 399 a Fj(1.2)135 b(Protot)l(yp)t(es)46 b(and)f\n+TeXDict begin 2 1 bop 0 100 a Fn(2)p 136 100 1228 4 v\n+1409 w Fm(Tree)30 b Fg(:)40 b Fl(DRAFT)30 b Fg(July)g(1,)h(2024)p\n+2673 100 V 0 399 a Fj(1.2)135 b(Protot)l(yp)t(es)46 b(and)f\n (descriptions)g(of)g Ff(Tree)e Fj(metho)t(ds)0 628 y\n Fn(This)25 b(section)h(con)m(tains)h(brief)e(descriptions)h(including)f\n (protot)m(yp)s(es)h(of)f(all)i(metho)s(ds)d(that)j(b)s(elong)e(to)h\n (the)g Fm(Tree)0 741 y Fn(ob)5 b(ject.)0 1013 y Fe(1.2.1)112\n b(Basic)38 b(metho)s(ds)0 1210 y Fn(As)d(usual,)h(there)f(are)g(four)f\n (basic)h(metho)s(ds)g(to)g(supp)s(ort)e(ob)5 b(ject)36\n b(creation,)i(setting)e(default)f(\\014elds,)h(clearing)0\n@@ -5132,19 +5119,19 @@\n y(3.)46 b Fm(int)h(*)h(Tree_par)d(\\()j(Tree)e(*tree)h(\\))g(;)227\n 5256 y Fn(This)30 b(metho)s(d)g(returns)f(a)i(p)s(oin)m(ter)f(to)h(the)\n g(paren)m(t)f(v)m(ector.)227 5407 y Fl(Err)-5 b(or)34\n b(che)-5 b(cking:)40 b Fn(If)30 b Fm(tree)g Fn(is)g Fm(NULL)p\n Fn(,)f(an)i(error)f(message)h(is)g(prin)m(ted)f(and)f(the)i(program)f\n (exits.)p eop end\n %%Page: 3 3\n-TeXDict begin 3 2 bop 91 100 1170 4 v 1351 100 a Fm(Tree)29\n-b Fg(:)41 b Fl(DRAFT)121 b Fg(August)30 b(3,)h(2025)p\n-2683 100 V 1170 w Fn(3)111 399 y(4.)46 b Fm(int)h(*)h(Tree_fch)d(\\()j\n-(Tree)e(*tree)h(\\))g(;)227 548 y Fn(This)30 b(metho)s(d)g(returns)f(a)i\n-(p)s(oin)m(ter)f(to)h(the)g(\\014rst)e(c)m(hild)i(v)m(ector.)227\n+TeXDict begin 3 2 bop 91 100 1228 4 v 1409 100 a Fm(Tree)29\n+b Fg(:)41 b Fl(DRAFT)121 b Fg(July)30 b(1,)h(2024)p 2626\n+100 V 1228 w Fn(3)111 399 y(4.)46 b Fm(int)h(*)h(Tree_fch)d(\\()j(Tree)e\n+(*tree)h(\\))g(;)227 548 y Fn(This)30 b(metho)s(d)g(returns)f(a)i(p)s\n+(oin)m(ter)f(to)h(the)g(\\014rst)e(c)m(hild)i(v)m(ector.)227\n 698 y Fl(Err)-5 b(or)34 b(che)-5 b(cking:)40 b Fn(If)30\n b Fm(tree)g Fn(is)g Fm(NULL)p Fn(,)f(an)i(error)f(message)h(is)g(prin)m\n (ted)f(and)f(the)i(program)f(exits.)111 885 y(5.)46 b\n Fm(int)h(*)h(Tree_sib)d(\\()j(Tree)e(*tree)h(\\))g(;)227\n 1035 y Fn(This)30 b(metho)s(d)g(returns)f(a)i(p)s(oin)m(ter)f(to)h(the)\n g(sibling)f(v)m(ector.)227 1185 y Fl(Err)-5 b(or)34 b(che)-5\n b(cking:)40 b Fn(If)30 b Fm(tree)g Fn(is)g Fm(NULL)p\n@@ -5200,17 +5187,17 @@\n 4996 y Fl(R)-5 b(eturn)34 b(c)-5 b(o)g(des:)1030 5193\n y Fn(1)100 b(normal)31 b(return)1000 5306 y(-1)100 b\n Fm(subtree)29 b Fn(is)h Fm(NULL)1000 5419 y Fn(-2)100\n b Fm(nodeidsIV)28 b Fn(is)i Fm(NULL)2138 5250 y Fn(-3)101\n b Fm(tree)29 b Fn(is)h Fm(NULL)2138 5363 y Fn(-4)101\n b Fm(nodeidsIV)27 b Fn(is)k(in)m(v)-5 b(alid)p eop end\n %%Page: 4 4\n-TeXDict begin 4 3 bop 0 100 a Fn(4)p 136 100 1170 4 v\n-1352 w Fm(Tree)29 b Fg(:)41 b Fl(DRAFT)30 b Fg(August)g(3,)h(2025)p\n-2731 100 V 111 399 a Fn(5.)46 b Fm(void)h(Tree_setFchSibRoot)c(\\()k\n+TeXDict begin 4 3 bop 0 100 a Fn(4)p 136 100 1228 4 v\n+1409 w Fm(Tree)30 b Fg(:)40 b Fl(DRAFT)30 b Fg(July)g(1,)h(2024)p\n+2673 100 V 111 399 a Fn(5.)46 b Fm(void)h(Tree_setFchSibRoot)c(\\()k\n (Tree)g(*tree)f(\\))i(;)227 553 y Fn(The)25 b(ro)s(ot)g(and)f(the)h(en)m\n (tries)h(in)e(the)h Fm(fch[])e Fn(and)i Fm(sib[])e Fn(v)m(ectors)j(are)\n g(set)f(using)f(the)h(en)m(tries)h(in)e(the)h Fm(par[])227\n 666 y Fn(v)m(ector.)227 821 y Fl(Err)-5 b(or)34 b(che)-5\n b(cking:)40 b Fn(If)30 b Fm(tree)g Fn(is)g Fm(NULL)p\n Fn(,)f(an)i(error)f(message)h(is)g(prin)m(ted)f(and)f(the)i(program)f\n (exits.)111 1017 y(6.)46 b Fm(void)h(Tree_setRoot)d(\\()k(Tree)e(*tree)h\n@@ -5265,19 +5252,19 @@\n (tra)m(v)m(ersal.)227 5294 y Fl(Err)-5 b(or)37 b(che)-5\n b(cking:)47 b Fn(If)33 b Fm(tree)f Fn(is)i Fm(NULL)p\n Fn(,)e(or)i(if)f Fm(tree->n)46 b(<)i(1)p Fn(,)34 b(or)f\n Fm(v)g Fn(is)h(not)g(in)f Fm([0,tree->n-1])p Fn(,)e(an)i(error)227\n 5407 y(message)f(is)e(prin)m(ted)g(and)g(the)g(program)h(exits.)p\n eop end\n %%Page: 5 5\n-TeXDict begin 5 4 bop 91 100 1170 4 v 1351 100 a Fm(Tree)29\n-b Fg(:)41 b Fl(DRAFT)121 b Fg(August)30 b(3,)h(2025)p\n-2683 100 V 1170 w Fn(5)111 399 y(6.)46 b Fm(int)h(Tree_nleaves)e(\\()i\n-(Tree)g(*tree)f(\\))i(;)227 569 y Fn(This)30 b(metho)s(d)g(returns)f\n-(the)h(n)m(um)m(b)s(er)f(of)i(lea)m(v)m(es)i(of)d(the)h(tree.)227\n+TeXDict begin 5 4 bop 91 100 1228 4 v 1409 100 a Fm(Tree)29\n+b Fg(:)41 b Fl(DRAFT)121 b Fg(July)30 b(1,)h(2024)p 2626\n+100 V 1228 w Fn(5)111 399 y(6.)46 b Fm(int)h(Tree_nleaves)e(\\()i(Tree)g\n+(*tree)f(\\))i(;)227 569 y Fn(This)30 b(metho)s(d)g(returns)f(the)h(n)m\n+(um)m(b)s(er)f(of)i(lea)m(v)m(es)i(of)d(the)h(tree.)227\n 740 y Fl(Err)-5 b(or)45 b(che)-5 b(cking:)64 b Fn(If)41\n b Fm(tree)g Fn(is)h Fm(NULL)p Fn(,)f(or)h(if)h Fm(tree->n)i(<)j(1)p\n Fn(,)d(an)d(error)f(message)j(is)e(prin)m(ted)f(and)h(the)227\n 853 y(program)30 b(exits.)111 1082 y(7.)46 b Fm(int)h(Tree_nroots)e(\\()\n i(Tree)g(*tree)f(\\))i(;)227 1253 y Fn(This)30 b(metho)s(d)g(returns)f\n (the)h(n)m(um)m(b)s(er)f(of)i(ro)s(ots)g(of)f(the)h(tree)g(\\(really)g\n (a)g(forest\\).)227 1424 y Fl(Err)-5 b(or)45 b(che)-5\n@@ -5324,17 +5311,17 @@\n 5123 y(main/Sc)m(h)m(ur)30 b(complemen)m(t)i(partition)f(for)f(a)h\n (semi-implicit)h(factorization.)227 5294 y Fl(Err)-5\n b(or)34 b(che)-5 b(cking:)41 b Fn(If)30 b Fm(tree)p Fn(,)g\n Fm(gainIV)f Fn(or)h Fm(ptotalgain)e Fn(is)j Fm(NULL)p\n Fn(,)f(an)g(error)g(message)i(is)f(prin)m(ted)f(and)g(the)227\n 5407 y(program)g(exits.)p eop end\n %%Page: 6 6\n-TeXDict begin 6 5 bop 0 100 a Fn(6)p 136 100 1170 4 v\n-1352 w Fm(Tree)29 b Fg(:)41 b Fl(DRAFT)30 b Fg(August)g(3,)h(2025)p\n-2731 100 V 0 399 a Fe(1.2.5)112 b(Metrics)38 b(metho)s(ds)0\n+TeXDict begin 6 5 bop 0 100 a Fn(6)p 136 100 1228 4 v\n+1409 w Fm(Tree)30 b Fg(:)40 b Fl(DRAFT)30 b Fg(July)g(1,)h(2024)p\n+2673 100 V 0 399 a Fe(1.2.5)112 b(Metrics)38 b(metho)s(ds)0\n 595 y Fn(Man)m(y)24 b(op)s(erations)h(need)e(to)i(kno)m(w)e(some)i\n Fl(metric)f Fn(de\\014ned)e(on)i(the)g(no)s(des)f(in)g(a)h(tree.)40\n b(Here)24 b(are)g(three)g(examples:)0 708 y(the)39 b(heigh)m(t)h(of)f\n (a)g(no)s(de)f(\\(the)i(minim)m(um)e(distance)h(from)g(a)g(descendan)m\n (t)g(leaf)7 b(\\),)43 b(the)c(depth)f(of)h(a)g(no)s(de)f(\\(the)0\n 821 y(distance)j(from)e(its)h(ro)s(ot)g(ancestor\\),)k(or)c(the)g(w)m\n (eigh)m(t)h(asso)s(ciated)h(with)d(a)i(subtree)e(ro)s(oted)h(at)h(a)f\n@@ -5393,17 +5380,17 @@\n 4956 y Fm(hmetric[v])45 b(=)j(vmetric[v])d(if)i(fch[v])f(==)h(-1)752\n 5069 y(=)h(vmetric[v])d(+)i(max_{par[u])e(=)i(v})h(hmetric[par[v]])227\n 5294 y Fl(Err)-5 b(or)47 b(che)-5 b(cking:)68 b Fn(If)44\n b Fm(tree)f Fn(or)h Fm(vmetric)p Fd(f)p Fm(I,D)p Fd(g)p\n Fm(V)e Fn(is)i Fm(NULL)p Fn(,)g(an)g(error)g(message)h(is)f(prin)m(ted)\n g(and)g(the)227 5407 y(program)30 b(exits.)p eop end\n %%Page: 7 7\n-TeXDict begin 7 6 bop 91 100 1170 4 v 1351 100 a Fm(Tree)29\n-b Fg(:)41 b Fl(DRAFT)121 b Fg(August)30 b(3,)h(2025)p\n-2683 100 V 1170 w Fn(7)0 399 y Fe(1.2.6)112 b(Compression)39\n+TeXDict begin 7 6 bop 91 100 1228 4 v 1409 100 a Fm(Tree)29\n+b Fg(:)41 b Fl(DRAFT)121 b Fg(July)30 b(1,)h(2024)p 2626\n+100 V 1228 w Fn(7)0 399 y Fe(1.2.6)112 b(Compression)39\n b(metho)s(ds)0 590 y Fn(F)-8 b(requen)m(tly)31 b(a)f(tree)g(will)g\n (need)g(to)g(b)s(e)f(compressed)g(in)h(some)g(manner.)39\n b(Elimination)31 b(trees)f(usually)f(ha)m(v)m(e)i(long)0\n 703 y(c)m(hains)i(of)f(no)s(des)g(at)h(the)f(higher)g(lev)m(els,)j\n (where)c(eac)m(h)j(c)m(hain)f(of)f(no)s(des)g(corresp)s(onds)e(to)j(a)g\n (sup)s(erno)s(de.)44 b(Liu's)0 816 y(generalized)27 b(ro)m(w)e(en)m(v)m\n (elop)s(e)i(metho)s(ds)d(partition)i(the)g(v)m(ertices)g(b)m(y)g\n@@ -5479,17 +5466,17 @@\n b(.)47 b(If)32 b Fm(u)g Fn(and)g Fm(v)227 5294 y Fn(are)k(siblings,)g\n (and)f Fm(u)g Fn(comes)h(b)s(efore)f Fm(v)g Fn(in)g(a)g(p)s(ost-order)g\n (tra)m(v)m(ersal,)j(then)d(the)h(w)m(eigh)m(t)h(of)e(the)g(subtree)227\n 5407 y(ro)s(oted)c(at)g Fm(u)f Fn(is)g(as)h(large)h(or)e(larger)h(than)\n f(the)h(w)m(eigh)m(t)h(of)e(the)h(subtree)f(ro)s(oted)g(at)h\n Fm(v)p Fn(.)p eop end\n %%Page: 8 8\n-TeXDict begin 8 7 bop 0 100 a Fn(8)p 136 100 1170 4 v\n-1352 w Fm(Tree)29 b Fg(:)41 b Fl(DRAFT)30 b Fg(August)g(3,)h(2025)p\n-2731 100 V 227 399 a Fl(Err)-5 b(or)34 b(che)-5 b(cking:)40\n+TeXDict begin 8 7 bop 0 100 a Fn(8)p 136 100 1228 4 v\n+1409 w Fm(Tree)30 b Fg(:)40 b Fl(DRAFT)30 b Fg(July)g(1,)h(2024)p\n+2673 100 V 227 399 a Fl(Err)-5 b(or)34 b(che)-5 b(cking:)40\n b Fn(If)30 b Fm(tree)f Fn(or)h Fm(metricIV)e Fn(is)i\n Fm(NULL)p Fn(,)f(or)h(if)h Fm(n)47 b(<)g(1)p Fn(,)31\n b(or)f(if)g Fm(n)g Fn(is)g(not)g(the)h(size)g(of)f Fm(metricIV)p\n Fn(,)227 511 y(an)h(error)f(message)h(is)f(prin)m(ted)g(and)g(the)h\n (program)f(exits.)0 778 y Fe(1.2.8)112 b(P)m(erm)m(utation)38\n b(metho)s(ds)0 973 y Fn(Often)32 b(w)m(e)h(need)f(to)h(extract)g(a)g(p)\n s(erm)m(utation)f(from)g(a)h(tree,)g(e.g.,)i(a)d(p)s(ost-order)g(tra)m\n@@ -5550,17 +5537,17 @@\n b(alid)2198 4858 y(-3)100 b Fm(xDV)30 b Fn(is)g Fm(NULL)2198\n 4970 y Fn(-4)100 b Fm(yDV)30 b Fn(is)g Fm(NULL)111 5181\n y Fn(2.)46 b Fm(int)h(Tree_drawToEPS)d(\\()k(Tree)e(*tree,)g(FILE)h\n (*filename,)e(DV)i(*xDV,)f(DV)i(*yDV,)1230 5294 y(double)e(rscale,)f\n (DV)j(*radiusDV,)d(int)i(labelflag,)1230 5407 y(double)f(fontscale,)f\n (IV)i(*labelsIV,)e(double)h(bbox[],)p eop end\n %%Page: 9 9\n-TeXDict begin 9 8 bop 91 100 1170 4 v 1351 100 a Fm(Tree)29\n-b Fg(:)41 b Fl(DRAFT)121 b Fg(August)30 b(3,)h(2025)p\n-2683 100 V 1170 w Fn(9)1230 399 y Fm(double)46 b(frame[],)f(double)h\n+TeXDict begin 9 8 bop 91 100 1228 4 v 1409 100 a Fm(Tree)29\n+b Fg(:)41 b Fl(DRAFT)121 b Fg(July)30 b(1,)h(2024)p 2626\n+100 V 1228 w Fn(9)1230 399 y Fm(double)46 b(frame[],)f(double)h\n (bounds[])g(\\))h(;)227 557 y Fn(This)24 b(metho)s(d)f(dra)m(ws)h(a)g\n (tree.)40 b(The)23 b(co)s(ordinates)i(of)f(the)h(no)s(des)e(are)h\n (found)f(in)h(the)g Fm(xDV)f Fn(and)h Fm(yDV)f Fn(v)m(ectors.)227\n 715 y(The)29 b(no)s(des)f(will)h(ha)m(v)m(e)i(circles)f(of)f(constan)m\n (t)i(radius)d(\\(if)h Fm(radiusDV)e Fn(is)i Fm(NULL)p\n Fn(\\))f(or)h(eac)m(h)i(circle)f(can)f(ha)m(v)m(e)i(a)227\n 828 y(di\\013eren)m(t)g(radius)f(found)f(in)h Fm(radiusDV)e\n@@ -5633,17 +5620,17 @@\n b(alue)27 b Fm(1)g Fn(is)f(returned.)39 b(If)26 b(an)g(IO)h(error)f(is)\n h(encoun)m(tered)g(from)f Fm(fscanf)p Fn(,)g(zero)h(is)g(returned.)227\n 5407 y Fl(Err)-5 b(or)34 b(che)-5 b(cking:)40 b Fn(If)30\n b Fm(tree)g Fn(or)g Fm(fp)g Fn(are)g Fm(NULL)p Fn(,)g(an)g(error)g\n (message)i(is)e(prin)m(ted)g(and)g(zero)h(is)f(returned.)p\n eop end\n %%Page: 10 10\n-TeXDict begin 10 9 bop 0 100 a Fn(10)p 182 100 1147 4\n-v 1329 w Fm(Tree)30 b Fg(:)40 b Fl(DRAFT)30 b Fg(August)h(3,)g(2025)p\n-2753 100 V 111 399 a Fn(3.)46 b Fm(int)h(Tree_readFromBinaryFile)42\n+TeXDict begin 10 9 bop 0 100 a Fn(10)p 182 100 1205 4\n+v 1387 w Fm(Tree)29 b Fg(:)41 b Fl(DRAFT)30 b Fg(July)g(1,)h(2024)p\n+2696 100 V 111 399 a Fn(3.)46 b Fm(int)h(Tree_readFromBinaryFile)42\n b(\\()47 b(Tree)g(*tree,)f(FILE)g(*fp)h(\\))h(;)227 557\n y Fn(This)32 b(metho)s(d)g(reads)g(in)h(a)g Fm(Perm)e\n Fn(ob)5 b(ject)33 b(from)f(a)h(binary)f(\\014le.)48 b(If)32\n b(there)g(are)h(no)g(errors)f(in)g(reading)h(the)227\n 670 y(data,)f(the)e(v)-5 b(alue)31 b Fm(1)f Fn(is)g(returned.)40\n b(If)30 b(an)g(IO)g(error)g(is)g(encoun)m(tered)h(from)f\n Fm(fread)p Fn(,)f(zero)i(is)g(returned.)227 828 y Fl(Err)-5\n@@ -5711,18 +5698,18 @@\n (fontsize)227 5062 y Fn(This)29 b(driv)m(er)g(program)g(reads)g(in)f(a)\n i Fm(Tree)e Fn(\\014le)h(and)g(optionally)h(a)g(tags)g\n Fm(IV)f Fn(\\014le)g(and)g(creates)h(an)f(EPS)g(\\014le)227\n 5175 y(with)h(a)h(simple)f(picture)h(of)f(a)h(tree.)337\n 5407 y Fi(\\210)45 b Fn(The)30 b Fm(msglvl)f Fn(parameter)i(determines)f\n (the)h(amoun)m(t)f(of)h(output.)p eop end\n %%Page: 11 11\n-TeXDict begin 11 10 bop 91 100 1147 4 v 1328 100 a Fm(Tree)30\n-b Fg(:)40 b Fl(DRAFT)121 b Fg(August)31 b(3,)g(2025)p\n-2661 100 V 1147 w Fn(11)337 399 y Fi(\\210)45 b Fn(The)33\n-b Fm(msgFile)e Fn(parameter)j(determines)f(the)h(message)g(\\014le)f(|)h\n+TeXDict begin 11 10 bop 91 100 1205 4 v 1386 100 a Fm(Tree)29\n+b Fg(:)41 b Fl(DRAFT)121 b Fg(July)30 b(1,)h(2024)p 2603\n+100 V 1205 w Fn(11)337 399 y Fi(\\210)45 b Fn(The)33 b\n+Fm(msgFile)e Fn(parameter)j(determines)f(the)h(message)g(\\014le)f(|)h\n (if)f Fm(msgFile)e Fn(is)i Fm(stdout)p Fn(,)g(then)g(the)427\n 511 y(output)c(\\014le)h(is)f Fl(stdout)p Fn(,)i(otherwise)f(a)f(\\014le)\n h(is)f(op)s(ened)g(with)g Fl(app)-5 b(end)31 b Fn(status)e(to)i(receiv)\n m(e)g(an)m(y)e(output)427 624 y(data.)337 770 y Fi(\\210)45\n b Fn(The)29 b Fm(inTreeFile)e Fn(parameter)j(is)g(the)f(input)g(\\014le)\n g(for)h(the)f Fm(Tree)g Fn(ob)5 b(ject.)41 b(It)30 b(m)m(ust)f(b)s(e)g\n (of)h(the)f(form)427 883 y Fm(*.treef)21 b Fn(or)h Fm(*.treeb)p\n@@ -5769,17 +5756,17 @@\n Fn(The)30 b Fm(fontsize)e Fn(parameter)j(is)g(the)f(size)h(of)g(the)f\n (fon)m(t)h(to)g(b)s(e)f(used)g(to)h(dra)m(w)f(the)g(no)s(de)g(lab)s\n (els.)227 3314 y(Use)g(the)h Fm(doDraw)d Fn(script)h(\\014le)h(as)g(an)g\n (example.)41 b(F)-8 b(our)31 b(plots)f(of)g(a)g(tree)h(for)e(the)h\n Fm(R2D100)e Fn(matrix)j(ordered)227 3427 y(b)m(y)g(nested)f(dissection)\n h(are)g(found)e(b)s(elo)m(w.)p eop end\n %%Page: 12 12\n-TeXDict begin 12 11 bop 0 100 a Fn(12)p 182 100 1147\n-4 v 1329 w Fm(Tree)30 b Fg(:)40 b Fl(DRAFT)30 b Fg(August)h(3,)g(2025)p\n-2753 100 V 0 571 a Fn(Figure)38 b(1.1:)56 b Fa(R2D100)p\n+TeXDict begin 12 11 bop 0 100 a Fn(12)p 182 100 1205\n+4 v 1387 w Fm(Tree)29 b Fg(:)41 b Fl(DRAFT)30 b Fg(July)g(1,)h(2024)p\n+2696 100 V 0 571 a Fn(Figure)38 b(1.1:)56 b Fa(R2D100)p\n Fn(:)f(domain/separator)39 b(tree.)62 b(On)37 b(the)g(left)h\n Fm(heightflag)45 b(=)j('H')36 b Fn(and)h Fm(coordflag)45\n b(=)0 684 y('C')p Fn(,)30 b(on)g(the)h(righ)m(t)g Fm(heightflag)45\n b(=)i('D')29 b Fn(and)h Fm(coordflag)45 b(=)j('C')p Fn(.)105\n 2612 y @beginspecial 0 @llx 0 @lly 600 @urx 600 @ury\n 2159 @rwi 2159 @rhi @setspecial\n %%BeginDocument: ../../Tree/doc/R2D100HC.eps\n", "details": [{"source1": "ps2ascii {}", "source2": "ps2ascii {}", "unified_diff": "@@ -20,15 +20,15 @@\n \u2022 int *sib : pointer to sibling vector, size n, entries in the range [-1,n-1]\r\n The user should rarely if ever change these \ufb01ve \ufb01elds. In particular, throughout the code we\r\n assume that the Tree object was correctly initialized using one of the three initializer methods.\r\n Inside almost every method we check to ensure n > 0. If n > 0 then we assume that the structure\r\n was intialized correctly and that the par, fch and sib \ufb01elds point to storage that was allocated by\r\n the initializer method.\r\n 1\r\n- 2 Tree : DRAFT August 3, 2025\r\n+ 2 Tree : DRAFT July 1, 2024\r\n 1.2 Prototypes and descriptions of Tree methods\r\n This section contains brief descriptions including prototypes of all methods that belong to the Tree\r\n object.\r\n 1.2.1 Basic methods\r\n As usual, there are four basic methods to support object creation, setting default \ufb01elds, clearing\r\n any allocated data, and free\u2019ing the object.\r\n 1. Tree * Tree_new ( void ) ;\r\n@@ -52,15 +52,15 @@\n Error checking: If tree is NULL, an error message is printed and the program exits.\r\n 2. int Tree_root ( Tree *tree ) ;\r\n This method returns the root of the tree.\r\n Error checking: If tree is NULL, an error message is printed and the program exits.\r\n 3. int * Tree_par ( Tree *tree ) ;\r\n This method returns a pointer to the parent vector.\r\n Error checking: If tree is NULL, an error message is printed and the program exits.\r\n- Tree : DRAFT August 3, 2025 3\r\n+ Tree : DRAFT July 1, 2024 3\r\n 4. int * Tree_fch ( Tree *tree ) ;\r\n This method returns a pointer to the \ufb01rst child vector.\r\n Error checking: If tree is NULL, an error message is printed and the program exits.\r\n 5. int * Tree_sib ( Tree *tree ) ;\r\n This method returns a pointer to the sibling vector.\r\n Error checking: If tree is NULL, an error message is printed and the program exits.\r\n 1.2.3 Initializer methods\r\n@@ -88,15 +88,15 @@\n The subtree object is initialized from the tree object, the nodes that are included are those\r\n found in nodeidsIV. A parent-child link in the subtree means that the two nodes have a\r\n parent-child link in the tree.\r\n Return codes:\r\n 1 normal return -3 tree is NULL\r\n -1 subtree is NULL -4 nodeidsIV is invalid\r\n -2 nodeidsIV is NULL\r\n- 4 Tree : DRAFT August 3, 2025\r\n+ 4 Tree : DRAFT July 1, 2024\r\n 5. void Tree_setFchSibRoot ( Tree *tree ) ;\r\n Theroot and the entries in the fch[] and sib[] vectors are set using the entries in the par[]\r\n vector.\r\n Error checking: If tree is NULL, an error message is printed and the program exits.\r\n 6. void Tree_setRoot ( Tree *tree ) ;\r\n The vertices that are roots in the tree are linked by their sib[] \ufb01eld and the root of the tree\r\n is set to the head of the list.\r\n@@ -122,15 +122,15 @@\n This method returns the \ufb01rst node in a pre-order traversal.\r\n Error checking: If tree is NULL, or if tree->n < 1, an error message is printed and the\r\n program exits.\r\n 5. int Tree_preOTnext ( Tree *tree, int v ) ;\r\n This method returns the node that follows v in a pre-order traversal.\r\n Error checking: If tree is NULL, or if tree->n < 1, or v is not in [0,tree->n-1], an error\r\n message is printed and the program exits.\r\n- Tree : DRAFT August 3, 2025 5\r\n+ Tree : DRAFT July 1, 2024 5\r\n 6. int Tree_nleaves ( Tree *tree ) ;\r\n This method returns the number of leaves of the tree.\r\n Error checking: If tree is NULL, or if tree->n < 1, an error message is printed and the\r\n program exits.\r\n 7. int Tree_nroots ( Tree *tree ) ;\r\n This method returns the number of roots of the tree (really a forest).\r\n Error checking: If tree is NULL, or if tree->n < 1, an error message is printed and the\r\n@@ -155,15 +155,15 @@\n 12. IV * Tree_maximizeGainIV ( Tree *tree, IV *gainIV, int *ptotalgain,\r\n int msglvl, FILE *msgFile ) ;\r\n Given a gain value assigned to each node, \ufb01nd a set of nodes, no two in a child-ancestor\r\n relationship, that maximizes the total gain. This problem arises in \ufb01nding the optimal do-\r\n main/Schur complement partition for a semi-implicit factorization.\r\n Error checking: If tree, gainIV or ptotalgain is NULL, an error message is printed and the\r\n program exits.\r\n- 6 Tree : DRAFT August 3, 2025\r\n+ 6 Tree : DRAFT July 1, 2024\r\n 1.2.5 Metrics methods\r\n Manyoperations need to know some metric de\ufb01ned on the nodes in a tree. Here are three examples:\r\n the height of a node (the minimum distance from a descendant leaf), the depth of a node (the\r\n distance from its root ancestor), or the weight associated with a subtree rooted at a node. Of\r\n course, a weight could be associated with each node, so the height or depth becomes the weight of\r\n the nodes on the path.\r\n Metrics can be int or double. Because of the limitations of C, we need two separate methods\r\n@@ -191,15 +191,15 @@\n These methods create and return IV or DV objects that contain height metrics using as input\r\n an IV or DV object that contains the metric for each of the nodes. If hmetric[] is the vector\r\n in the returned IV or DV object, then\r\n hmetric[v] = vmetric[v] if fch[v] == -1\r\n = vmetric[v] + max_{par[u] = v} hmetric[par[v]]\r\n Error checking: If tree or vmetric{I,D}V is NULL, an error message is printed and the\r\n program exits.\r\n- Tree : DRAFT August 3, 2025 7\r\n+ Tree : DRAFT July 1, 2024 7\r\n 1.2.6 Compression methods\r\n Frequently a tree will need to be compressed in some manner. Elimination trees usually have long\r\n chains of nodes at the higher levels, where each chain of nodes corresponds to a supernode. Liu\u2019s\r\n generalized row envelope methods partition the vertices by longest chains [?]. In both cases, we can\r\n construct a map from each node to a set of nodes to de\ufb01ne a smaller, more compact tree. Given\r\n such a map, we construct the smaller tree.\r\n Afundamental chain is a set of nodes v ,...,v such that (1) v is a leaf or has two or more\r\n@@ -232,15 +232,15 @@\n Error checking: If tree or map is NULL, or if n < 1, an error message is printed and the\r\n program exits.\r\n 2. void Tree_leftJustifyI ( Tree *tree, IV *metricIV ) ;\r\n void Tree_leftJustifyD ( Tree *tree, DV *metricIV ) ;\r\n This method justi\ufb01es the tree, reordering the children of each node as necessary. If u and v\r\n are siblings, and u comes before v in a post-order traversal, then the weight of the subtree\r\n rooted at u is as large or larger than the weight of the subtree rooted at v.\r\n- 8 Tree : DRAFT August 3, 2025\r\n+ 8 Tree : DRAFT July 1, 2024\r\n Error checking: If tree or metricIV is NULL, or if n < 1, or if n is not the size of metricIV,\r\n an error message is printed and the program exits.\r\n 1.2.8 Permutation methods\r\n Often we need to extract a permutation from a tree, e.g., a post-order traversal of an elimination\r\n tree gives an ordering for a sparse matrix. On other occasions, we need to permute a tree, i.e.\r\n re-label the nodes.\r\n 1. void Tree_fillNewToOldPerm ( Tree *tree, int newToOld[] ) ;\r\n@@ -269,15 +269,15 @@\n Return codes:\r\n 1 normal return -3 coordflag is invalid\r\n -1 tree is NULL -3 xDV is NULL\r\n -2 heightflag is invalid -4 yDV is NULL\r\n 2. int Tree_drawToEPS ( Tree *tree, FILE *filename, DV *xDV, DV *yDV,\r\n double rscale, DV *radiusDV, int labelflag,\r\n double fontscale, IV *labelsIV, double bbox[],\r\n- Tree : DRAFT August 3, 2025 9\r\n+ Tree : DRAFT July 1, 2024 9\r\n double frame[], double bounds[] ) ;\r\n This method draws a tree. The coordinates of the nodes are found in the xDV and yDV vectors.\r\n The nodes will have circles of constant radius (if radiusDV is NULL) or each circle can have a\r\n di\ufb00erent radius found in radiusDV when radiusDV is not NULL. The value rscale is used to\r\n scale all the radii. (If radiusDV is NULL, then all radii are equal to one point \u2014 there are 72\r\n points to the inch.)\r\n If labelflag = 1, the nodes will have a numeric label. If labelsIV is NULL, then the label\r\n@@ -306,15 +306,15 @@\n and returns the value returned from the called routine.\r\n Error checking: If tree or fn are NULL, or if fn is not of the form *.treef (for a formatted\r\n \ufb01le) or *.treeb (for a binary \ufb01le), an error message is printed and the method returns zero.\r\n 2. int Tree_readFromFormattedFile ( Tree *tree, FILE *fp ) ;\r\n This method reads in a Perm object from a formatted \ufb01le. If there are no errors in reading\r\n the data, the value 1 is returned. If an IO error is encountered from fscanf, zero is returned.\r\n Error checking: If tree or fp are NULL, an error message is printed and zero is returned.\r\n- 10 Tree : DRAFT August 3, 2025\r\n+ 10 Tree : DRAFT July 1, 2024\r\n 3. int Tree_readFromBinaryFile ( Tree *tree, FILE *fp ) ;\r\n This method reads in a Perm object from a binary \ufb01le. If there are no errors in reading the\r\n data, the value 1 is returned. If an IO error is encountered from fread, zero is returned.\r\n Error checking: If tree or fp are NULL, an error message is printed and zero is returned.\r\n 4. int Tree_writeToFile ( Tree *tree, char *fn ) ;\r\n This method writes a Perm object to a \ufb01le. It tries to open the \ufb01le and if it is successful,\r\n it then calls Tree writeFromFormattedFile() or Tree writeFromBinaryFile(), closes the\r\n@@ -339,15 +339,15 @@\n Error checking: If tree or fp are NULL, an error message is printed and zero is returned.\r\n 1.3 Driver programs for the Tree object\r\n 1. drawTree msglvl msgFile inTreeFile inTagsFile outEPSfile\r\n heightflag coordflag radius bbox[4] frame[4] tagflag fontsize\r\n This driver program reads in a Tree \ufb01le and optionally a tags IV \ufb01le and creates an EPS \ufb01le\r\n with a simple picture of a tree.\r\n \u2022 The msglvl parameter determines the amount of output.\r\n- Tree : DRAFT August 3, 2025 11\r\n+ Tree : DRAFT July 1, 2024 11\r\n \u2022 The msgFile parameter determines the message \ufb01le \u2014 if msgFile is stdout, then the\r\n output \ufb01le is stdout, otherwise a \ufb01le is opened with append status to receive any output\r\n data.\r\n \u2022 The inTreeFile parameter is the input \ufb01le for the Tree object. It must be of the form\r\n *.treefor*.treeb. TheTreeobjectisreadfromthe\ufb01leviatheTree readFromFile()\r\n method.\r\n \u2022 The inTagsFile parameter is the input \ufb01le for the IV vector object than holds the tags\r\n@@ -364,15 +364,15 @@\n \u2022 The frame parameter a sequence of four numbers that form the frame of the plot within\r\n the bounding box: lower left x value, lower left y value, width and height.\r\n \u2022 When tagflag = 1, tags are drawn on the nodes. If tagsFile is NULL, then node ids\r\n will be drawn on the nodes. Otherwise, node ids will be taken from the tagsIV object.\r\n \u2022 The fontsize parameter is the size of the font to be used to draw the node labels.\r\n Use the doDraw script \ufb01le as an example. Four plots of a tree for the R2D100 matrix ordered\r\n by nested dissection are found below.\r\n- 12 Tree : DRAFT August 3, 2025\r\n+ 12 Tree : DRAFT July 1, 2024\r\n Figure 1.1: R2D100: domain/separator tree. On the left heightflag = \u2019H\u2019 and coordflag =\r\n \u2019C\u2019, on the right heightflag = \u2019D\u2019 and coordflag = \u2019C\u2019.\r\n 71 71\r\n 70 70 32\r\n 51 51 69 31 13\r\n 40 32 50 40 61 68 22 30 8 12\r\n 39 31 49 43 39 56 60 67 64 21 17 29 23 7 11 9\r\n"}]}]}, {"source1": "./usr/share/doc/spooles-doc/Utilities.ps.gz", "source2": "./usr/share/doc/spooles-doc/Utilities.ps.gz", "unified_diff": null, "details": [{"source1": "Utilities.ps", "source2": "Utilities.ps", "unified_diff": "@@ -11,15 +11,15 @@\n %%EndComments\n %%BeginDefaults\n %%ViewingOrientation: 1 0 0 1\n %%EndDefaults\n %DVIPSWebPage: (www.radicaleye.com)\n %DVIPSCommandLine: dvips main -o Utilities.ps\n %DVIPSParameters: dpi=600\n-%DVIPSSource: TeX output 2025.08.03:1317\n+%DVIPSSource: TeX output 2024.07.01:0700\n %%BeginProcSet: tex.pro 0 0\n %!\n /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S\n N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72\n mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0\n 0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{\n landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize\n@@ -3357,23 +3357,22 @@\n /UnderlinePosition -100 def\n /UnderlineThickness 50 def\n end readonly def\n /Encoding 256 array\n 0 1 255 {1 index exch /.notdef put} for\n dup 44 /comma put\n dup 48 /zero put\n+dup 49 /one put\n dup 50 /two put\n-dup 51 /three put\n-dup 53 /five put\n+dup 52 /four put\n dup 58 /colon put\n-dup 65 /A put\n-dup 103 /g put\n-dup 115 /s put\n-dup 116 /t put\n+dup 74 /J put\n+dup 108 /l put\n dup 117 /u put\n+dup 121 /y put\n readonly def\n currentdict end\n currentfile eexec\n D9D66F633B846AB284BCF8B0411B772DE5CE32340DC6F28AF40857E4451976E7\n 5182433CF9F333A38BD841C0D4E68BF9E012EB32A8FFB76B5816306B5EDF7C99\n 8B3A16D9B4BC056662E32C7CD0123DFAEB734C7532E64BBFBF5A60336E646716\n EFB852C877F440D329172C71F1E5D59CE9473C26B8AEF7AD68EF0727B6EC2E0C\n@@ -3554,79 +3553,67 @@\n 7CA1534C4D5B05FC33F83790ECFD7641DF3FB94289E2A1F6E7D29AB1228A867A\n 6E1EF0E9C6F899B491DC18401C2C0A05FFFED46A72C245F7529B8EA55A038082\n 8512307217D2A233C37004085BA3AEE379269F9FA7D0ADB4B19A95CC2AFE686E\n 55D88E47257C1FE6F235FEA295910569FE6DD5995512562359CC821E85A6C7A5\n 79B470A9E340A6985189FF8B6AF914A6B0ECF93F47903221F95DE894A8F05B05\n B7D99CD533EC5F931B18E6B39BECF67FA2D6DD1AEC76772B068BE06335A94C05\n 7A4DDEE77B66101DA855C17AC312600370B34E31F5EC3A01300A8EB60B4C9767\n-1B2FA10DF7E91D3BB34A1B1CE7A0015A57C813E0280D873ADB88440048702D1F\n-77994EE04EC3B4531D6E1888C86A8F0DA6CF1F056F16AB0DD76C862830F89DA4\n-28923B3AA543E0D6E41D3BD283E600BC11F889315EE92C675C109C81065ED1BC\n-82A5583D1B723D50051B0557A367887F5B263014C6E77288B4883C50889473D3\n-3787BAD4BEB88BD1353AFA5B73E61814819537E7FF09F53EF94792BB3DD36ED0\n-002D0E7A6CDAB85A9C17AF5664BCB5A71663B861880F3ECCABC8E7A2FC81A4CC\n-AE7A87503FDC1CE0077BA51ECC7B43B60793FED8E9AAD5BBD03ADD6183DCD26D\n-24A74163611C05562437644EF9B8889FD4F9D311911204FEFD35237486F2D2D0\n-B6783A03BF12EA6D19D6D0F87E4D08515F12F9CBF1961CAA71E0D69FE3C4C4D2\n-7C7FB64ED24F8684C8F00C2BEDEA53EA390CDC0B5BEBD7DD982580B2EA1F1F89\n-CFED5916630DC2BA32BB9180277E1ABC339B3B7DE086717BD93F7FF3681BA5B3\n-FCF671C4B293C2DE4A322F0AA3323A4934444C69F23EF90120B8755482757759\n-C457A435FB8BB4922BD92C5F3D9555D978275C510183E29DFF2FCE4ABBFC18DE\n-76CAD3B486BA12047DD808CD4D521A0FD368E4AE79DE262630983A5D6F0B679D\n-2F005306393C520E1B6987302D029939D94B0178DC55D5264E1FEA468AD4134C\n-8C65B2FBBE8DE8284E8E1F6BFE0B648F44D3DA8E9350D266EDBFD4A7054D9355\n-1E0B185DED37BCF32D3731358F1D707C94109428BAD3CEA456A2A43553E3D2C2\n-F549189201F3D3F715310E3E8C6A2E9AA5141AA9125D203694C7D875C2DD320F\n-C5BCDFC924F6C04DBC7A97349B45ECD0FBD7D2123ED1D3A9F440B1112BE62779\n-47A4592F9285CBD9635EC9091CEC0AFD7E6B6976974081DB9C0E43165BD8584D\n-6CDF08DED287F0883A9FBD351B3F8706BA1E94C7CA487338269482EB8DC1A05D\n-F6632A5D834DE29228C49C5BA65EF7C535A53B380BF4B391F43562147538EE97\n-E799DFC2C40315859F56BBCE9CAE1DF9293F6E2C193ABE7A724EC8F32FA220E7\n-6026877A63E318254F2AF7B1325D63FC4C52B536D3EF354814C2F8F1EEA30569\n-6EF04447DB0F809DF35B4985B9FB4F4BB6087310BE633E76F268B32ABA99CE8E\n-03163DFF4AEDB88E60DD0848C15E90026D7C24D81122EBC07113F9851914A9D5\n-D0E09C2BFDDAF10C5D8208E8329BC0C402F231CD84C95EFDD182AD9756662110\n-274650C7A5BB0D8EFA54EC6C5A49C0EB26701A54779AE8EFBBED824262761602\n-680EDFB38F0FE18C0F501F5AA8BF48A8F0DD3E5E1EBEB872F6F6B23964707B32\n-507FC677B9FDDC990E3828B06420F6F968B2F6AE81E76A2144B1ECE905485616\n-CFB29AC96DDE1F5039935D7E385CC13E34DD7EAF276A2EA3A8BF27FD4205AE13\n-7FE620E42F2CF231C6C8DD8EFC5A6CF081E5660D9ADD730D72D15C02B1E15FF3\n-D741D3B1EB1E666C4E562219033C1E2EF3F96E136998B2E1890395A3637A2C02\n-DE1C46AFCA8D898439F06606A2295D3F7ED6C7DB250C61B6B97A0D5EDDB9657E\n-E790B4E07540BB1026036F4A0D00E7F16FD757AD61D686620C6814B7DCEC43E8\n-FD36D9E75BA554F64548A67D9B0A26E11784E58D4357FC251D71B5D6D8BFDDE0\n-D3BF0E825DA5312C1904AF13C5905C2ADF79C357476183D2EC5A95243235E861\n-2F98D9EE77EF8F8CB3EC6BD358C5ED37DD3AF44D60575E7774BF96F1AE9DFAD1\n-F8646DEDF21D10311854726B8F7D25876BB1EF78E2442B16ED4B851816CF0A27\n-11FDFCE525002A1A7C3E62CD2A3EDE6FAADB026D2F3A46C030ADB22422CA8FF5\n-2545ED58C0D9FB5BDB55FE674301E91A75B005B86BD201D246F7ADACE50419FD\n-AC3312CAC5EB78A36F0E5F62E65AC92129CB574AAC59E0A7C1390DFC61F39D9E\n-D7036742F2F6E64D1EF8157E9CCF65F3EEDC6A8220235978B8E06EB80F649F3E\n-204CFB497F49306EA8E1F7B62305978A28F1E771ED82C6592C71022154E4062A\n-A92335EFC65D6DED9C686899FFD7AA2988740618C03C5E362E1AF352E3BE4602\n-5530C51E5FC8E9082DF79199CC91C50174000D337D86127AC807C5A3C81DDE57\n-7A68AEE7230949B925365C214D77C80E87CEE218ABC94023717EA43BA5D8A7C8\n-8A8B9BD1B767996AE33050E3D922ED0574E3579C57E4BDDAD35883806AFDF260\n-3AB5D83D451583262E580FFDB7A27D82396AF18D92B849A3F7A7E621987D5DF0\n-038F876C6E9CA47FB11AF05F0019191C5DDC5F0177AD421E94BC66D0CCB82F1F\n-93A80836284B095503752C600F72E2C89112ABFA5B76152691264103B268B3E5\n-8816724ADADB38740001A9AACE05C8AF02D72918606DC22EFC8BF0DA0FD12FFE\n-D3A09F8E28057F327BFB633E604B1EAD478637B1D9631650B314CC62D7E0E87F\n-9D3FE1FFA23BB6E3006C3E39BED52F6B0C1C651B5913878F36DA0BF776889165\n-68BA3456B40B8B471CA8FF5238E43D9113E052A2B8D2EAA2433D3F89FCA48AFB\n-5E842913E4ED6DF9623354059CD1F1707B126FED80349787C869883120183EDD\n-249185A55503FAC53898F52170D05CAC62BB742CF9702C0518AED6B27CDC401C\n-932E02143FD916703F360CB31049501B35EF3EDDFED791090D0CFA221FD1DB32\n-7D4759CE07983AE29C258C705D11E7D9481EEAAB9B6BA65CDCF0AA0057BD6FEA\n-ABBFBD3ABF2A7BFB550C3D2A16DC447384A89F3DB6D9C2DBDCA997ABE35A7706\n-633D328AECEDB5BD07070C1B96267FD73B45791DD18194F60D358091FBE88409\n-973529806F3D2C9E6E39091F90A14B560A987E0B9490B9B690FB489B8E253070\n-D7C54447BE0E0A0BFEAEFFB581DC1300E6EC382984673BF0665632404E59B5BF\n-5D5F0A1C956E618C0487751CA5DAE8A95C214F76ED756694EF273679CD2D85CB\n-949DF385BD50491649EFEFDA1574921D7460143D42A100D2C76E55F0BC\n+1B2FA10DF7E91D3BB34A1B1CE7A0015A57C813E0280D873ADB8844004B9BA1CC\n+580D3C6BDA4DC1B80B4365F1C80512453FC5316EC2D928FB731C3D6403E3C18B\n+E8424D644DF5E9A2134229C5C91CA68DB8E85BA2BB40F538F585DA6FA4037718\n+B8053EBBA1E765346BCD5BDAA6C38115D31611D8A87A2238C145F2DA2F92E4DF\n+3987BD9C4D2A3D460E8941A68B125BCD9EE4F9FD262C4C8A71F47A2C81975635\n+F1B981C274C53FA2ACCDE4C9D0A7C62D6C1EFF91CFC6712CA6A9F333C9564FCB\n+2A70F0AD715A79B10A08AB069E2A3C93BC0AED19D0CA10134B8DDDE8AF548DB2\n+3A4AAA9C29682CF135BB767DAA16169A127EB50A7EECEB6480CF56A7D0F8AC56\n+4A5090B3D75A790372886AF568D94C8165975A05BFBFDF1FFBA45F70700BB9E0\n+57F3249EF9E9C8AD9CBCF6E4FD592DC4CDD2CC7C0BC3130C1059096C657BE453\n+A2CBACE93420210E27AF56CA229BD6D982FB68B3FDC6D44478B922C4231C47EE\n+E500232F6C11D92DEB955F66DF52B92B22E7352790CC2DCBAC53965D57AC2920\n+68B7D520DE25047146EFEB06B9AD4E2A94243C7E5239F0BC2FC312B16051D52C\n+0B92C217B6B42997321AE4F8BB066754B7AA3F15069EF59224E8A442CE471AA7\n+E8049A3DD9EDA09CCEE4998998661CF7DB35E952F6C65DAEB3013951C59F3E09\n+157F313B0237876E1C0190F0473819570B8C0205AADF05D787CC00979CFB327A\n+289382B22DDA6F12804ED0ED5B179E36A995A2A59E1B66E75130DBE9109C813B\n+94403E0DEA8314A1E9DB474D7FA83C0BAFD08033E6A6215844C1D26BE15F1251\n+A1605E8DF9A9C601ED37379530BC1C82BE5463C6C711C5652BFD6262485AA9CA\n+B8C4A117593001D08D980041E2A83C190DCE8E6CD3D334E5CC19FC05DB30F7F7\n+24A305C4DBB31F0651392B99D44B4302333BDF7E326FD256DD75D309C6E73F85\n+FA71B35FD1F9BEFF4C7A1076362EEB0A85492933B6006086A7B8C1928CF2D1EE\n+FD4344409257BB802C117E739960821CD3C88BFBA5669FF16F610AD638AF3677\n+8674C985E6767253ED5769F71BEA5E9BB02A751F9E62EE2B18AC19D975FDEAE9\n+8B8822367FF177A7E850766DE99ED3366D46464612926430012212A90F8E85F4\n+4760B40D5B86B90819EE410382D22D8ED82D0B0AB00C93E10CD365F8766D1C87\n+B4A866021FB6F6AC3D250CC601989B1B8FE6B1098A48282D2CF258BF38FEE940\n+CE0141FB1344156DE7712A8F2DBF700174F12616EE17C852210D96D03E5E6635\n+D439EB6E84A383DDD32AD72DADE6F931FDBABBDC726C36081C96018FC95EAE13\n+DA1F8DBC2D8355AC9792649653225393F4A7A88F3B9443FEEB75E2C15BF93F09\n+CCBA7FABC022BE26F4C28152D5DA6D690494AD4EC0DA1B598AE12536BADF88B5\n+5E20EB452546389F57FF55459567B453AE1831C57D22FA6A4FDF441EDAFDB7FB\n+4F4B707C1FF9159C40F7B5DD519FC07815EE91B8D756B6C18500BCF47D0D9E45\n+6A2D51B6AA5AEAAC9AB2DEF7F0FDE957B6C179CBADEECAC7E9CEC248AB135EB4\n+FBF83D002FF859B574EF36C371540EF2BCFCEF5C2E7863AEDD7C3C965103453B\n+023A9CEC1D5C45B88827ADF4AE0C6746F3C7E6A944427DAEC493601019583A16\n+0F846CE00EAE89EEFF9CE68A0E1D6EBB8FDD8A45D1BF399B36A8328EC957CB8B\n+D842A56269C8C9A6B472C9E65BCBC090606B4E8A7EF4ABDEA120C9F9B3969A1C\n+2EB102925F4E155160E58000E1ADB0D19E10EFD96F6C3225EEE8FC24D122C069\n+C11F1A69DC383F7DACD2F3929BD135CE69787C6E7560AC4B683FE5D9AAFD2E89\n+EE6D95E38C9B726B416E28169A11E29559DBA9AECD714CF318FCB78F34A0E562\n+9C00FE0C6D5A848557D9A82EC2BEFCD30B5EDC0B23C5BA9F812C864394C8B9D1\n+B08BAC9CF94E70FF842306ACCFE6E39A56777C712904A3AB29FBD19275E19E06\n+B35B37CFFFCEC81CAF2D85A853663FAFCFFED1EA77064AA28C15BC94910683BC\n+D09513079DE9EE18E97CC2403DD206516D7F652A3459870757F34EEDCEF952C3\n+FE8004F4716B5BD6774E455010B0BB1E61FCD66B9F14F9BBCCF3E55A158EE96E\n+9A05BDFDDC7706D4BC28FDDC4004EF3A430C607EBDF115E0C996454D70C8BB42\n+D7C83A454B116663D648C23CE2B33365810DE2B64D4AE011BC8043BC3E05B94D\n+1700F859C6AFC6515C1C42FA104EE3E8F3FA5F80252C2E79B00ED27F675FFD09\n+B50BF7A3C63CF4856F909DF969D7DD3EA05CABDD1E71A58CFC2AB5F614B4E5E0\n+25CF92E9FB66ACEBE05DF5E033DA8AD3EE32D94C02D98DD7DA99FAB5AEA595C3\n+2987DC122F0242D76B782349E4069DE0CDD6EF4375C680CBFE4C8F24F2AE89BF\n+7785F5EA7435A91500F265022C307E8ADEAAE1C6\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n@@ -5492,16 +5479,16 @@\n 51 16[51 5[51 1[51 51 51 40[{}31 99.6264 /CMTT12 rf /Fi\n 134[59 2[59 62 44 44 46 1[62 56 62 93 31 59 1[31 62 56\n 1[51 62 50 1[54 13[62 24[31 56 56 56 56 56 56 56 56 56\n 56 1[31 37 45[{}33 99.6264 /CMBX12 rf /Fj 139[62 62 6[62\n 2[62 3[62 15[62 85[{}6 119.552 /CMTT12 rf /Fk 138[49\n 30 37 38 1[46 46 51 2[42 1[28 46 42 1[42 46 42 1[46 12[65\n 1[66 11[59 62 69 2[68 6[28 58[{}22 90.9091 /CMTI10 rf\n-/Fl 138[51 35 36 11[45 37[68 6[25 4[45 1[45 45 1[45 3[25\n-44[{}11 90.9091 /CMSL10 rf\n+/Fl 134[48 3[51 8[25 33[47 15[25 5[45 1[45 45 45 3[25\n+44[{}10 90.9091 /CMSL10 rf\n %DVIPSBitmapFont: Fm tcrm1095 10.95 1\n [/Grave/Acute/Circumflex/Tilde/Dieresis/Hungarumlaut/Ring/Caron/Breve/Macron\n /Dotaccent/cedilla/ogonek/quotesinglbase.ts1 4{/.notdef}repeat\n /quotedblbase.ts1/.notdef/.notdef/twelveudash/threequartersemdash\n /afii61664.cap/arrowleft/arrowright/tieaccentlowercase/tieaccentcapital\n /tieaccentlowercase.new/tieaccentcapital.new/.notdef/afii61664.asc/uni2422 3\n {/.notdef}repeat/dollar/.notdef/.notdef/quotesingle/.notdef/.notdef\n@@ -5600,33 +5587,33 @@\n b Fq(data)h(\\014elds.)558 4763 y Fp(typedef)45 b(struct)h(_I2OP)h(I2OP)\n f(;)558 4876 y(struct)g(_I2OP)g({)701 4989 y(int)190\n b(value0)94 b(;)701 5101 y(int)190 b(value1)94 b(;)701\n 5214 y(void)142 b(*value2)46 b(;)701 5327 y(I2OP)142\n b(*next)g(;)558 5440 y(})47 b(;)1927 5656 y Fq(1)p eop\n end\n %%Page: 2 2\n-TeXDict begin 2 1 bop 0 100 a Fq(2)p 136 100 1051 4 v\n-1232 w Fp(Utilities)28 b Fl(:)41 b Fk(DRAFT)30 b Fl(August)g(3,)h(2025)\n-p 2850 100 V 0 399 a Fn(1.2)135 b(Protot)l(yp)t(es)46\n-b(and)f(descriptions)g(of)g Fj(Utilities)c Fn(metho)t(ds)0\n-632 y Fq(This)g(section)j(con)m(tains)f(brief)f(descriptions)g\n-(including)f(protot)m(yp)s(es)i(of)f(all)h(metho)s(ds)f(that)h(b)s\n-(elong)f(to)h(the)0 744 y Fp(Utilities)28 b Fq(directory)-8\n-b(.)0 1028 y Fi(1.2.1)112 b Fh(CV)38 b Fi(:)g Fh(char)g\n-Fi(v)m(ector)f(metho)s(ds)111 1230 y Fq(1.)46 b Fp(char)h(*)g(CVinit)f\n-(\\()i(int)f(n,)g(char)g(c)g(\\))h(;)227 1385 y Fq(This)32\n-b(is)h(the)g(allo)s(cator)j(and)c(initializer)j(metho)s(d)d(for)h\n-Fp(char)f Fq(v)m(ectors.)49 b(Storage)35 b(for)d(an)h(arra)m(y)g(with)g\n-(size)227 1498 y Fp(n)d Fq(is)h(found)e(and)h(eac)m(h)h(en)m(try)g(is)f\n-(\\014lled)g(with)g(c)m(haracter)i Fp(c)p Fq(.)41 b(A)30\n-b(p)s(oin)m(ter)h(to)g(the)f(arra)m(y)h(is)g(returned.)111\n-1697 y(2.)46 b Fp(char)h(*)g(CVinit2)f(\\()i(int)f(n)g(\\))g(;)227\n-1852 y Fq(This)34 b(is)h(an)g(allo)s(cator)i(metho)s(d)e(for)g\n-Fp(char)e Fq(v)m(ectors.)56 b(Storage)36 b(for)f(an)g(arra)m(y)h(with)e\n-(size)i Fp(n)f Fq(is)g(found.)53 b(A)227 1965 y(p)s(oin)m(ter)31\n+TeXDict begin 2 1 bop 0 100 a Fq(2)p 136 100 1108 4 v\n+1290 w Fp(Utilities)28 b Fl(:)41 b Fk(DRAFT)30 b Fl(July)g(1,)h(2024)p\n+2792 100 V 0 399 a Fn(1.2)135 b(Protot)l(yp)t(es)46 b(and)f\n+(descriptions)g(of)g Fj(Utilities)c Fn(metho)t(ds)0 632\n+y Fq(This)g(section)j(con)m(tains)f(brief)f(descriptions)g(including)f\n+(protot)m(yp)s(es)i(of)f(all)h(metho)s(ds)f(that)h(b)s(elong)f(to)h\n+(the)0 744 y Fp(Utilities)28 b Fq(directory)-8 b(.)0\n+1028 y Fi(1.2.1)112 b Fh(CV)38 b Fi(:)g Fh(char)g Fi(v)m(ector)f(metho)\n+s(ds)111 1230 y Fq(1.)46 b Fp(char)h(*)g(CVinit)f(\\()i(int)f(n,)g(char)\n+g(c)g(\\))h(;)227 1385 y Fq(This)32 b(is)h(the)g(allo)s(cator)j(and)c\n+(initializer)j(metho)s(d)d(for)h Fp(char)f Fq(v)m(ectors.)49\n+b(Storage)35 b(for)d(an)h(arra)m(y)g(with)g(size)227\n+1498 y Fp(n)d Fq(is)h(found)e(and)h(eac)m(h)h(en)m(try)g(is)f(\\014lled)\n+g(with)g(c)m(haracter)i Fp(c)p Fq(.)41 b(A)30 b(p)s(oin)m(ter)h(to)g\n+(the)f(arra)m(y)h(is)g(returned.)111 1697 y(2.)46 b Fp(char)h(*)g\n+(CVinit2)f(\\()i(int)f(n)g(\\))g(;)227 1852 y Fq(This)34\n+b(is)h(an)g(allo)s(cator)i(metho)s(d)e(for)g Fp(char)e\n+Fq(v)m(ectors.)56 b(Storage)36 b(for)f(an)g(arra)m(y)h(with)e(size)i\n+Fp(n)f Fq(is)g(found.)53 b(A)227 1965 y(p)s(oin)m(ter)31\n b(to)g(the)f(arra)m(y)h(is)g(returned.)39 b(Note,)32\n b(on)e(return,)g(there)g(will)h(lik)m(ely)h(b)s(e)e(garbage)h(in)g(the)\n f(arra)m(y)-8 b(.)111 2163 y(3.)46 b Fp(void)h(CVfree)f(\\()h(char)g\n (cvec[])f(\\))i(;)227 2319 y Fq(This)30 b(metho)s(d)g(releases)h(the)g\n (storage)h(tak)m(en)f(b)m(y)f Fp(cvec[])p Fq(.)111 2517\n y(4.)46 b Fp(void)h(CVcopy)f(\\()h(int)g(n,)h(char)e(y[],)h(char)f(x[])h\n (\\))h(;)227 2673 y Fq(This)30 b(metho)s(d)g(copies)h\n@@ -5666,38 +5653,38 @@\n (val)f(\\))i(;)227 5294 y Fq(This)26 b(is)h(the)g(allo)s(cator)i(and)d\n (initializer)j(metho)s(d)d(for)g Fp(double)f Fq(v)m(ectors.)41\n b(Storage)28 b(for)f(an)f(arra)m(y)i(with)e(size)227\n 5407 y Fp(n)k Fq(is)h(found)e(and)h(eac)m(h)h(en)m(try)g(is)f(\\014lled)\n g(with)g Fp(val)p Fq(.)40 b(A)31 b(p)s(oin)m(ter)f(to)h(the)g(arra)m(y)\n g(is)f(returned.)p eop end\n %%Page: 3 3\n-TeXDict begin 3 2 bop 91 100 1051 4 v 1232 100 a Fp(Utilities)28\n-b Fl(:)40 b Fk(DRAFT)122 b Fl(August)30 b(3,)h(2025)p\n-2803 100 V 1051 w Fq(3)111 399 y(2.)46 b Fp(double)g(*)i(DVinit2)e(\\()h\n-(int)g(n)g(\\))h(;)227 545 y Fq(This)30 b(is)g(an)h(allo)s(cator)h\n-(metho)s(d)e(for)g Fp(double)f Fq(v)m(ectors.)42 b(Storage)32\n-b(for)e(an)g(arra)m(y)h(with)f(size)i Fp(n)e Fq(is)g(found.)40\n-b(A)227 658 y(p)s(oin)m(ter)31 b(to)g(the)f(arra)m(y)h(is)g(returned.)\n-39 b(Note,)32 b(on)e(return,)g(there)g(will)h(lik)m(ely)h(b)s(e)e\n-(garbage)h(in)g(the)f(arra)m(y)-8 b(.)111 838 y(3.)46\n-b Fp(void)h(DVfree)f(\\()h(int)g(vec[])g(\\))g(;)227 985\n-y Fq(This)30 b(metho)s(d)g(releases)h(the)g(storage)h(tak)m(en)f(b)m(y)\n-f Fp(vec[])p Fq(.)111 1165 y(4.)46 b Fp(void)h(DVfprintf)e(\\()j(FILE)e\n-(*fp,)h(int)g(n,)g(double)f(y[])h(\\))g(;)227 1312 y Fq(This)29\n-b(metho)s(d)f(prin)m(ts)h Fp(n)f Fq(en)m(tries)i(in)f\n-Fp(y[])f Fq(to)i(\\014le)f Fp(fp)p Fq(.)40 b(The)28 b(format)i(is)f(new)\n-f(line)i(follo)m(w)m(ed)g(b)m(y)f(lines)h(of)f(six)227\n-1425 y Fp(double)p Fq('s)g(in)h Fp(\"\\04512.4e\")e Fq(format.)111\n-1605 y(5.)46 b Fp(int)h(DVfscanf)f(\\()h(FILE)g(*fp,)f(int)h(n,)h\n-(double)e(y[])h(\\))g(;)227 1752 y Fq(This)27 b(metho)s(d)g(scans)h(in)f\n-Fp(double)p Fq('s)g(from)g(\\014le)h Fp(fp)f Fq(and)g(places)h(them)g\n-(in)g(the)f(arra)m(y)i Fp(y[])p Fq(.)39 b(It)27 b(tries)i(to)f(read)227\n-1865 y(in)i Fp(n)g(double)p Fq('s,)f(and)h(returns)f(the)i(n)m(um)m(b)s\n-(er)e(that)i(w)m(ere)g(actually)h(read.)111 2045 y(6.)46\n-b Fp(void)h(DVadd)f(\\()i(int)f(n,)g(double)f(y[],)h(double)f(x[])h(\\))g\n+TeXDict begin 3 2 bop 91 100 1108 4 v 1290 100 a Fp(Utilities)27\n+b Fl(:)41 b Fk(DRAFT)121 b Fl(July)30 b(1,)h(2024)p 2745\n+100 V 1108 w Fq(3)111 399 y(2.)46 b Fp(double)g(*)i(DVinit2)e(\\()h(int)\n+g(n)g(\\))h(;)227 545 y Fq(This)30 b(is)g(an)h(allo)s(cator)h(metho)s(d)\n+e(for)g Fp(double)f Fq(v)m(ectors.)42 b(Storage)32 b(for)e(an)g(arra)m\n+(y)h(with)f(size)i Fp(n)e Fq(is)g(found.)40 b(A)227 658\n+y(p)s(oin)m(ter)31 b(to)g(the)f(arra)m(y)h(is)g(returned.)39\n+b(Note,)32 b(on)e(return,)g(there)g(will)h(lik)m(ely)h(b)s(e)e(garbage)\n+h(in)g(the)f(arra)m(y)-8 b(.)111 838 y(3.)46 b Fp(void)h(DVfree)f(\\()h\n+(int)g(vec[])g(\\))g(;)227 985 y Fq(This)30 b(metho)s(d)g(releases)h\n+(the)g(storage)h(tak)m(en)f(b)m(y)f Fp(vec[])p Fq(.)111\n+1165 y(4.)46 b Fp(void)h(DVfprintf)e(\\()j(FILE)e(*fp,)h(int)g(n,)g\n+(double)f(y[])h(\\))g(;)227 1312 y Fq(This)29 b(metho)s(d)f(prin)m(ts)h\n+Fp(n)f Fq(en)m(tries)i(in)f Fp(y[])f Fq(to)i(\\014le)f\n+Fp(fp)p Fq(.)40 b(The)28 b(format)i(is)f(new)f(line)i(follo)m(w)m(ed)g\n+(b)m(y)f(lines)h(of)f(six)227 1425 y Fp(double)p Fq('s)g(in)h\n+Fp(\"\\04512.4e\")e Fq(format.)111 1605 y(5.)46 b Fp(int)h(DVfscanf)f(\\()h\n+(FILE)g(*fp,)f(int)h(n,)h(double)e(y[])h(\\))g(;)227 1752\n+y Fq(This)27 b(metho)s(d)g(scans)h(in)f Fp(double)p Fq('s)g(from)g\n+(\\014le)h Fp(fp)f Fq(and)g(places)h(them)g(in)g(the)f(arra)m(y)i\n+Fp(y[])p Fq(.)39 b(It)27 b(tries)i(to)f(read)227 1865\n+y(in)i Fp(n)g(double)p Fq('s,)f(and)h(returns)f(the)i(n)m(um)m(b)s(er)e\n+(that)i(w)m(ere)g(actually)h(read.)111 2045 y(6.)46 b\n+Fp(void)h(DVadd)f(\\()i(int)f(n,)g(double)f(y[],)h(double)f(x[])h(\\))g\n (;)227 2192 y Fq(This)30 b(metho)s(d)g(adds)f Fp(n)h\n Fq(en)m(tries)h(from)f Fp(x[])g Fq(to)h Fp(y[])p Fq(,)f(i.e.,)h\n Fp(y[i])47 b(+=)g(x[i])29 b Fq(for)i Fp(0)47 b(<=)g(i)h(<)f(n)p\n Fq(.)111 2372 y(7.)f Fp(void)h(DVaxpy)f(\\()h(int)g(n,)h(double)e(y[],)g\n (double)g(alpha,)g(double)h(x[])f(\\))i(;)227 2519 y Fq(This)36\n b(metho)s(d)g(adds)g(a)h(scaled)g(m)m(ultiple)g(of)g\n Fp(n)f Fq(en)m(tries)i(from)e Fp(x[])g Fq(in)m(to)h Fp(y[])p\n@@ -5728,17 +5715,17 @@\n (alpha[3])d(*)j(x1[])227 4945 y(y2[])f(=)g(y2[])g(+)g(alpha[4])f(*)h\n (x0[])g(+)h(alpha[5])d(*)j(x1[])66 5148 y Fq(11.)e Fp(void)h(DVaxpy31)e\n (\\()j(int)f(n,)g(double)f(y0[],)g(double)h(y1[],)f(double)g(y2[],)991\n 5261 y(double)g(alpha,)g(double)g(x0[],)h(double)f(x1[])g(\\))i(;)227\n 5407 y Fq(This)30 b(metho)s(d)g(computes)g(this)g(computation.)p\n eop end\n %%Page: 4 4\n-TeXDict begin 4 3 bop 0 100 a Fq(4)p 136 100 1051 4 v\n-1232 w Fp(Utilities)28 b Fl(:)41 b Fk(DRAFT)30 b Fl(August)g(3,)h(2025)\n-p 2850 100 V 227 399 a Fp(y0[])47 b(=)g(y0[])g(+)g(alpha[0])f(*)h(x0[])\n+TeXDict begin 4 3 bop 0 100 a Fq(4)p 136 100 1108 4 v\n+1290 w Fp(Utilities)28 b Fl(:)41 b Fk(DRAFT)30 b Fl(July)g(1,)h(2024)p\n+2792 100 V 227 399 a Fp(y0[])47 b(=)g(y0[])g(+)g(alpha[0])f(*)h(x0[])\n 227 511 y(y1[])g(=)g(y1[])g(+)g(alpha[1])f(*)h(x0[])227\n 624 y(y2[])g(=)g(y2[])g(+)g(alpha[2])f(*)h(x0[])66 850\n y Fq(12.)f Fp(void)h(DVaxpy23)e(\\()j(int)f(n,)g(double)f(y0[],)g\n (double)h(y1[],)991 963 y(double)f(alpha,)g(double)g(x0[],)h(double)f\n (x1[],)g(double)g(x2[])h(\\))g(;)227 1114 y Fq(This)30\n b(metho)s(d)g(computes)g(this)g(computation.)227 1340\n y Fp(y0[])47 b(=)g(y0[])g(+)g(alpha[0])f(*)h(x0[])g(+)h(alpha[1])d(*)j\n@@ -5772,26 +5759,25 @@\n (int)g(index[],)e(double)i(alpha,)f(double)g(x[])h(\\))g(;)227\n 5294 y Fq(This)31 b(metho)s(d)f(scatteradds)i(a)g(scaled)g(m)m(ultiple)\n g(of)f Fp(n)g Fq(en)m(tries)h(from)f Fp(x[])f Fq(in)m(to)i\n Fp(y[])p Fq(,)f(i.e.,)i Fp(y[index[i]])227 5407 y(+=)47\n b(alpha)g(*)g(x[i])29 b Fq(for)i Fp(0)47 b(<=)g(i)h(<)f(n)p\n Fq(.)p eop end\n %%Page: 5 5\n-TeXDict begin 5 4 bop 91 100 1051 4 v 1232 100 a Fp(Utilities)28\n-b Fl(:)40 b Fk(DRAFT)122 b Fl(August)30 b(3,)h(2025)p\n-2803 100 V 1051 w Fq(5)66 399 y(19.)46 b Fp(void)h(DVcompress)e(\\()i\n-(int)g(n1,)g(double)f(x1[],)h(double)f(y1[],)1086 511\n-y(int)h(n2,)g(double)f(x2[],)h(double)f(y2[])g(\\))i(;)227\n-672 y Fq(Giv)m(en)c(a)f(pair)g(of)f(arra)m(ys)i Fp(x1[n1])d\n-Fq(and)h Fp(y1[n1])p Fq(,)i(\\014ll)f Fp(x2[n2])e Fq(and)h\n-Fp(y2[n2])f Fq(with)i(a)g(subset)f(of)h(the)227 785 y\n-Fp(\\(x1[j],y1[j])27 b Fq(en)m(tries)k(whose)g(distribution)e(is)i(an)f\n-(appro)m(ximation.)66 993 y(20.)46 b Fp(void)h(DVcopy)f(\\()h(int)g(n,)h\n-(double)e(y[],)g(double)g(x[])h(\\))h(;)227 1153 y Fq(This)30\n-b(metho)s(d)g(copies)h Fp(n)f Fq(en)m(tries)h(from)f\n+TeXDict begin 5 4 bop 91 100 1108 4 v 1290 100 a Fp(Utilities)27\n+b Fl(:)41 b Fk(DRAFT)121 b Fl(July)30 b(1,)h(2024)p 2745\n+100 V 1108 w Fq(5)66 399 y(19.)46 b Fp(void)h(DVcompress)e(\\()i(int)g\n+(n1,)g(double)f(x1[],)h(double)f(y1[],)1086 511 y(int)h(n2,)g(double)f\n+(x2[],)h(double)f(y2[])g(\\))i(;)227 672 y Fq(Giv)m(en)c(a)f(pair)g(of)f\n+(arra)m(ys)i Fp(x1[n1])d Fq(and)h Fp(y1[n1])p Fq(,)i(\\014ll)f\n+Fp(x2[n2])e Fq(and)h Fp(y2[n2])f Fq(with)i(a)g(subset)f(of)h(the)227\n+785 y Fp(\\(x1[j],y1[j])27 b Fq(en)m(tries)k(whose)g(distribution)e(is)i\n+(an)f(appro)m(ximation.)66 993 y(20.)46 b Fp(void)h(DVcopy)f(\\()h(int)g\n+(n,)h(double)e(y[],)g(double)g(x[])h(\\))h(;)227 1153\n+y Fq(This)30 b(metho)s(d)g(copies)h Fp(n)f Fq(en)m(tries)h(from)f\n Fp(x[])f Fq(to)j Fp(y[])p Fq(,)d(i.e.,)j Fp(y[i])47 b(=)g(x[i])29\n b Fq(for)h Fp(0)48 b(<=)f(i)h(<)f(n)p Fq(.)66 1361 y(21.)f\n Fp(int)h(DVdot)g(\\()g(int)g(n,)g(double)f(y[],)h(double)f(x[])h(\\))g(;)\n 227 1522 y Fq(This)25 b(metho)s(d)h(returns)e(the)i(dot)g(pro)s(duct)f\n (of)h(the)g(v)m(ector)h Fp(x[])e Fq(and)g Fp(y[])p Fq(,)h(i.e.,)i\n (return)3209 1457 y Ff(P)3297 1484 y Fe(n)p Fd(\\000)p\n Fe(1)3297 1545 y(i)p Fc(=)p Fe(0)3426 1522 y Fq(\\()p\n@@ -5872,17 +5858,17 @@\n Fp(row1)p Fq([)p Fp(i)p Fq(])19 b Fg(\\003)i Fp(col0)p\n Fq([)p Fp(i)p Fq(])277 5346 y Fp(sums)p Fq([)p Fp(2)p\n Fq(])j(=)687 5241 y Fe(n)p Fd(\\000)p Fe(1)690 5266 y\n Ff(X)687 5445 y Fe(i)p Fc(=)p Fe(0)828 5346 y Fp(row2)p\n Fq([)p Fp(i)p Fq(])19 b Fg(\\003)i Fp(col0)p Fq([)p Fp(i)p\n Fq(])p eop end\n %%Page: 6 6\n-TeXDict begin 6 5 bop 0 100 a Fq(6)p 136 100 1051 4 v\n-1232 w Fp(Utilities)28 b Fl(:)41 b Fk(DRAFT)30 b Fl(August)g(3,)h(2025)\n-p 2850 100 V 66 399 a Fq(25.)46 b Fp(int)h(DVdot23)f(\\()h(int)g(n,)h\n+TeXDict begin 6 5 bop 0 100 a Fq(6)p 136 100 1108 4 v\n+1290 w Fp(Utilities)28 b Fl(:)41 b Fk(DRAFT)30 b Fl(July)g(1,)h(2024)p\n+2792 100 V 66 399 a Fq(25.)46 b Fp(int)h(DVdot23)f(\\()h(int)g(n,)h\n (double)e(row0[],)f(double)i(row1[],)895 511 y(double)g(col0[],)e\n (double)h(col1[],)g(double)g(col2[],)g(double)g(sums[])g(\\))i(;)227\n 667 y Fq(This)30 b(metho)s(d)g(computes)g(six)h(dot)f(pro)s(ducts.)277\n 891 y Fp(sums)p Fq([)p Fp(0)p Fq(])24 b(=)687 786 y Fe(n)p\n Fd(\\000)p Fe(1)690 810 y Ff(X)687 989 y Fe(i)p Fc(=)p\n Fe(0)828 891 y Fp(row0)p Fq([)p Fp(i)p Fq(])19 b Fg(\\003)i\n Fp(col0)p Fq([)p Fp(i)p Fq(])99 b Fp(sums)p Fq([)p Fp(1)p\n@@ -5962,18 +5948,18 @@\n (double)i(col0[],)e(double)h(sums[])h(\\))g(;)227 5123\n y Fq(This)30 b(metho)s(d)g(computes)g(one)h(dot)f(pro)s(duct.)277\n 5346 y Fp(sums)p Fq([)p Fp(0)p Fq(])24 b(=)687 5241 y\n Fe(n)p Fd(\\000)p Fe(1)690 5266 y Ff(X)687 5445 y Fe(i)p\n Fc(=)p Fe(0)828 5346 y Fp(row0)p Fq([)p Fp(i)p Fq(])19\n b Fg(\\003)i Fp(col0)p Fq([)p Fp(i)p Fq(])p eop end\n %%Page: 7 7\n-TeXDict begin 7 6 bop 91 100 1051 4 v 1232 100 a Fp(Utilities)28\n-b Fl(:)40 b Fk(DRAFT)122 b Fl(August)30 b(3,)h(2025)p\n-2803 100 V 1051 w Fq(7)66 399 y(31.)46 b Fp(int)h(DVdoti)f(\\()i(int)f\n-(n,)g(double)f(y[],)h(int)f(index[],)g(double)g(x[])h(\\))g(;)227\n+TeXDict begin 7 6 bop 91 100 1108 4 v 1290 100 a Fp(Utilities)27\n+b Fl(:)41 b Fk(DRAFT)121 b Fl(July)30 b(1,)h(2024)p 2745\n+100 V 1108 w Fq(7)66 399 y(31.)46 b Fp(int)h(DVdoti)f(\\()i(int)f(n,)g\n+(double)f(y[],)h(int)f(index[],)g(double)g(x[])h(\\))g(;)227\n 616 y Fq(This)30 b(metho)s(d)g(returns)f(the)h(indexed)g(dot)h(pro)s\n (duct)2075 510 y Fe(n)p Fd(\\000)p Fe(1)2078 535 y Ff(X)2075\n 714 y Fe(i)p Fc(=)p Fe(0)2216 616 y Fp(y)p Fq([)p Fp(index)p\n Fq([)p Fp(i)p Fq(]])19 b Fg(\\003)i Fp(x)p Fq([)p Fp(i)p\n Fq(].)66 862 y(32.)46 b Fp(void)h(DVfill)f(\\()h(int)g(n,)h(double)e\n (y[],)g(double)g(val)h(\\))h(;)227 1009 y Fq(This)30 b(metho)s(d)g\n (\\014lls)g Fp(n)g Fq(en)m(tries)h(in)f Fp(y[])g Fq(with)g\n@@ -6026,17 +6012,17 @@\n Fq(,)34 b Fp(start)227 5079 y(+)48 b(3*inc)p Fq(,)29\n b(etc.)66 5260 y(43.)46 b Fp(void)h(DVscale)f(\\()h(int)g(n,)g(double)f\n (y[],)h(double)f(alpha)g(\\))i(;)227 5407 y Fq(This)30\n b(metho)s(d)g(scales)h(a)g(v)m(ector)h Fp(y[])d Fq(b)m(y)i\n Fp(alpha)p Fq(,)e(i.e.,)j Fp(y[i])46 b(*=)h(alpha)p Fq(.)40\n b(for)30 b Fp(0)47 b(<=)g(i)h(<)f(n)p Fq(.)p eop end\n %%Page: 8 8\n-TeXDict begin 8 7 bop 0 100 a Fq(8)p 136 100 1051 4 v\n-1232 w Fp(Utilities)28 b Fl(:)41 b Fk(DRAFT)30 b Fl(August)g(3,)h(2025)\n-p 2850 100 V 66 399 a Fq(44.)46 b Fp(void)h(DVscale2)e(\\()j(int)f(n,)g\n+TeXDict begin 8 7 bop 0 100 a Fq(8)p 136 100 1108 4 v\n+1290 w Fp(Utilities)28 b Fl(:)41 b Fk(DRAFT)30 b Fl(July)g(1,)h(2024)p\n+2792 100 V 66 399 a Fq(44.)46 b Fp(void)h(DVscale2)e(\\()j(int)f(n,)g\n (double)f(x[],)h(double)f(y[],)991 511 y(double)g(a,)h(double)f(b,)h\n (double)g(c,)g(double)f(d)h(\\))h(;)227 668 y Fq(This)30\n b(metho)s(d)g(scales)h(t)m(w)m(o)h(v)m(ectors)g Fp(y[])d\n Fq(b)m(y)h(a)h(2)21 b Fg(\\002)f Fq(2)31 b(matrix,)g(i.e.,)881\n 800 y Ff(\")971 887 y Fp(x)p Fq([)p Fp(0)p Fq(])83 b Fb(:)15\n b(:)g(:)84 b Fp(x)p Fq([)p Fp(n)20 b Fg(\\000)g Fp(1)p\n Fq(])971 1000 y Fp(y)p Fq([)p Fp(0)p Fq(])83 b Fb(:)15\n@@ -6102,28 +6088,27 @@\n h(seed)g(\\))g(;)227 5294 y Fq(This)23 b(metho)s(d)g(sh)m(u\\017es)g(the)\n g(\\014rst)g Fp(n)g Fq(en)m(tries)h(in)f Fp(y[])p Fq(.)38\n b(The)23 b(v)-5 b(alue)24 b Fp(seed)e Fq(is)h(the)h(seed)g(to)g(a)g\n (random)e(n)m(um)m(b)s(er)227 5407 y(generator,)32 b(and)e(one)h(can)f\n (get)i(rep)s(eatable)f(b)s(eha)m(vior)f(b)m(y)h(rep)s(eating)f\n Fp(seed)p Fq(.)p eop end\n %%Page: 9 9\n-TeXDict begin 9 8 bop 91 100 1051 4 v 1232 100 a Fp(Utilities)28\n-b Fl(:)40 b Fk(DRAFT)122 b Fl(August)30 b(3,)h(2025)p\n-2803 100 V 1051 w Fq(9)0 399 y Fi(1.2.3)112 b Fh(ZV)38\n-b Fi(:)g Fh(double)53 b(complex)90 b Fi(v)m(ector)37\n-b(metho)s(ds)0 605 y Fq(A)22 b(double)g(precision)g(complex)g(v)m\n-(ector)i(of)e(length)g Fp(n)g Fq(is)g(simply)f(a)i(double)e(precision)h\n-(v)m(ector)i(of)e(length)g Fp(2n)p Fq(.)37 b(There)0\n-718 y(is)28 b(a)h(separate)g Fp(ZVinit\\(\\))d Fq(allo)s(cator)31\n-b(and)c(initializer)j(metho)s(d,)f(since)f(it)h(requires)f(a)h(real)g\n-(and)e(imaginary)i(part)0 831 y(to)g(\\014ll)g(the)g(v)m(ector.)42\n-b(Ho)m(w)m(ev)m(er,)31 b(there)e(is)g(no)g Fp(ZVinit2\\(\\))d\n-Fq(metho)s(d)i(\\(whic)m(h)h(allo)s(cates)i(without)e(initializing)i\n-(the)0 943 y(en)m(tries\\))h(nor)e(a)h Fp(ZVfree\\(\\))d\n-Fq(metho)s(d)i(to)h(free)g(the)f(en)m(tries;)i(the)f\n+TeXDict begin 9 8 bop 91 100 1108 4 v 1290 100 a Fp(Utilities)27\n+b Fl(:)41 b Fk(DRAFT)121 b Fl(July)30 b(1,)h(2024)p 2745\n+100 V 1108 w Fq(9)0 399 y Fi(1.2.3)112 b Fh(ZV)38 b Fi(:)g\n+Fh(double)53 b(complex)90 b Fi(v)m(ector)37 b(metho)s(ds)0\n+605 y Fq(A)22 b(double)g(precision)g(complex)g(v)m(ector)i(of)e(length)\n+g Fp(n)g Fq(is)g(simply)f(a)i(double)e(precision)h(v)m(ector)i(of)e\n+(length)g Fp(2n)p Fq(.)37 b(There)0 718 y(is)28 b(a)h(separate)g\n+Fp(ZVinit\\(\\))d Fq(allo)s(cator)31 b(and)c(initializer)j(metho)s(d,)f\n+(since)f(it)h(requires)f(a)h(real)g(and)e(imaginary)i(part)0\n+831 y(to)g(\\014ll)g(the)g(v)m(ector.)42 b(Ho)m(w)m(ev)m(er,)31\n+b(there)e(is)g(no)g Fp(ZVinit2\\(\\))d Fq(metho)s(d)i(\\(whic)m(h)h(allo)s\n+(cates)i(without)e(initializing)i(the)0 943 y(en)m(tries\\))h(nor)e(a)h\n+Fp(ZVfree\\(\\))d Fq(metho)s(d)i(to)h(free)g(the)f(en)m(tries;)i(the)f\n Fp(DVinit2\\(\\))d Fq(and)i Fp(DVfree\\(\\))e Fq(metho)s(ds)i(can)h(b)s(e)0\n 1056 y(used.)40 b(Similarly)-8 b(,)31 b(there)g(is)f(no)g\n Fp(ZVfscanf\\(\\))e Fq(metho)s(d,)i(instead)h(the)f Fp(DVfscanf\\(\\))e\n Fq(metho)s(d)i(can)g(b)s(e)g(used.)111 1319 y(1.)46 b\n Fp(double)g(*)i(ZVinit)e(\\()h(int)g(n,)g(double)g(real,)f(double)g\n (imag)h(\\))g(;)227 1479 y Fq(This)25 b(is)h(the)h(allo)s(cator)h(and)d\n (initializer)j(metho)s(d)d(for)h Fp(double)46 b(complex)24\n@@ -6179,18 +6164,18 @@\n 5294 y Fq(This)33 b(metho)s(d)h(adds)f(a)h(scaled)g(m)m(ultiple)h(of)f\n (t)m(w)m(o)h(v)m(ectors)g Fp(x[])e Fq(and)h Fp(y[])f\n Fq(to)h(another)g(v)m(ector)i Fp(z[])p Fq(,)e(i.e.,)227\n 5407 y(i.e.,)e Fp(z[i])47 b(+=)g(\\(areal,aimag\\))d(*)j(x[i])g(+)h\n (\\(breal,bimag\\))c(*)j(y[i])29 b Fq(for)h Fp(0)48 b(<=)f(i)h(<)f(n)p\n Fq(.)p eop end\n %%Page: 10 10\n-TeXDict begin 10 9 bop 0 100 a Fq(10)p 182 100 1028 4\n-v 1210 w Fp(Utilities)28 b Fl(:)41 b Fk(DRAFT)30 b Fl(August)g(3,)h\n-(2025)p 2873 100 V 111 399 a Fq(8.)46 b Fp(void)h(ZVaxpy33)e(\\()j(int)f\n-(n,)g(double)f(y0[],)g(double)h(y1[],)f(double)g(y2[],)991\n+TeXDict begin 10 9 bop 0 100 a Fq(10)p 182 100 1086 4\n+v 1268 w Fp(Utilities)28 b Fl(:)40 b Fk(DRAFT)30 b Fl(July)g(1,)h(2024)\n+p 2815 100 V 111 399 a Fq(8.)46 b Fp(void)h(ZVaxpy33)e(\\()j(int)f(n,)g\n+(double)f(y0[],)g(double)h(y1[],)f(double)g(y2[],)991\n 511 y(double)g(alpha[],)g(double)g(x0[],)g(double)g(x1[],)g(double)h\n (x2[])f(\\))i(;)227 661 y Fq(This)30 b(metho)s(d)g(computes)g(the)h\n (follo)m(wing.)227 881 y Fp(y0[])47 b(=)g(y0[])g(+)g(alpha[0:1])e(*)j\n (x0[])f(+)g(alpha[2:3])e(*)i(x1[])g(+)h(alpha[4:5])d(*)i(x2[])227\n 994 y(y1[])g(=)g(y1[])g(+)g(alpha[6:7])e(*)j(x0[])f(+)g(alpha[8:9])e(*)\n i(x1[])g(+)h(alpha[10:11])c(*)j(x2[])227 1107 y(y2[])g(=)g(y2[])g(+)g\n (alpha[12:13])e(*)i(x0[])g(+)g(alpha[14:15])e(*)i(x1[])g(+)g\n@@ -6225,24 +6210,24 @@\n (int)f(n,)g(double)f(y0[],)g(double)h(y1[],)991 4925\n y(double)f(alpha[],)g(double)g(x0[])g(\\))i(;)227 5074\n y Fq(This)30 b(metho)s(d)g(computes)g(the)h(follo)m(wing.)227\n 5294 y Fp(y0[])47 b(=)g(y0[])g(+)g(alpha[0:1])e(*)j(x0[])227\n 5407 y(y1[])f(=)g(y1[])g(+)g(alpha[2:3])e(*)j(x0[])p\n eop end\n %%Page: 11 11\n-TeXDict begin 11 10 bop 91 100 1028 4 v 1209 100 a Fp(Utilities)28\n-b Fl(:)41 b Fk(DRAFT)121 b Fl(August)30 b(3,)h(2025)p\n-2780 100 V 1028 w Fq(11)66 399 y(14.)46 b Fp(void)h(ZVaxpy13)e(\\()j\n-(int)f(n,)g(double)f(y0[],)991 511 y(double)g(alpha[],)g(double)g\n-(x0[],)g(double)g(x1[],)g(double)h(x2[])f(\\))i(;)227\n-667 y Fq(This)30 b(metho)s(d)g(computes)g(the)h(follo)m(wing.)227\n-907 y Fp(y0[])47 b(=)g(y0[])g(+)g(alpha[0:1])e(*)j(x0[])f(+)g\n-(alpha[2:3])e(*)i(x1[])g(+)h(alpha[4:5])d(*)i(x2[])66\n-1146 y Fq(15.)f Fp(void)h(ZVaxpy12)e(\\()j(int)f(n,)g(double)f(y0[],)g\n-(double)h(alpha[],)e(double)h(x0[],)h(double)f(x1[])g(\\))i(;)227\n+TeXDict begin 11 10 bop 91 100 1086 4 v 1267 100 a Fp(Utilities)28\n+b Fl(:)40 b Fk(DRAFT)121 b Fl(July)30 b(1,)h(2024)p 2722\n+100 V 1086 w Fq(11)66 399 y(14.)46 b Fp(void)h(ZVaxpy13)e(\\()j(int)f\n+(n,)g(double)f(y0[],)991 511 y(double)g(alpha[],)g(double)g(x0[],)g\n+(double)g(x1[],)g(double)h(x2[])f(\\))i(;)227 667 y Fq(This)30\n+b(metho)s(d)g(computes)g(the)h(follo)m(wing.)227 907\n+y Fp(y0[])47 b(=)g(y0[])g(+)g(alpha[0:1])e(*)j(x0[])f(+)g(alpha[2:3])e\n+(*)i(x1[])g(+)h(alpha[4:5])d(*)i(x2[])66 1146 y Fq(15.)f\n+Fp(void)h(ZVaxpy12)e(\\()j(int)f(n,)g(double)f(y0[],)g(double)h\n+(alpha[],)e(double)h(x0[],)h(double)f(x1[])g(\\))i(;)227\n 1302 y Fq(This)30 b(metho)s(d)g(computes)g(the)h(follo)m(wing.)227\n 1541 y Fp(y0[])47 b(=)g(y0[])g(+)g(alpha[0:1])e(*)j(x0[])f(+)g\n (alpha[2:3])e(*)i(x1[])66 1781 y Fq(16.)f Fp(void)h(ZVaxpy11)e(\\()j\n (int)f(n,)g(double)f(y0[],)g(double)h(alpha[],)e(double)h(x0[])h(\\))g\n (;)227 1937 y Fq(This)30 b(metho)s(d)g(computes)g(the)h(follo)m(wing.)\n 227 2176 y Fp(y0[])47 b(=)g(y0[])g(+)g(alpha[0:1])e(*)j(x0[])66\n 2415 y Fq(17.)e Fp(void)h(ZVcopy)f(\\()h(int)g(n,)h(double)e(y[],)g\n@@ -6282,17 +6267,17 @@\n b Fg(\\003)i Fp(x)p Fq([)p Fp(i)p Fq(].)66 5138 y(22.)46\n b Fp(int)h(ZVdotU33)f(\\()h(int)g(n,)g(double)f(row0[],)g(double)g\n (row1[],)g(double)g(row2[],)895 5251 y(double)h(col0[],)e(double)h\n (col1[],)g(double)g(col2[],)g(double)g(sums[])g(\\))i(;)227\n 5407 y Fq(This)30 b(metho)s(d)g(computes)g(nine)g(dot)h(pro)s(ducts.)p\n eop end\n %%Page: 12 12\n-TeXDict begin 12 11 bop 0 100 a Fq(12)p 182 100 1028\n-4 v 1210 w Fp(Utilities)28 b Fl(:)41 b Fk(DRAFT)30 b\n-Fl(August)g(3,)h(2025)p 2873 100 V 277 462 a Fp(sums)p\n+TeXDict begin 12 11 bop 0 100 a Fq(12)p 182 100 1086\n+4 v 1268 w Fp(Utilities)28 b Fl(:)40 b Fk(DRAFT)30 b\n+Fl(July)g(1,)h(2024)p 2815 100 V 277 462 a Fp(sums)p\n Fq([)p Fp(0)p Fq(;)15 b Fp(1)p Fq(])25 b(=)776 356 y\n Fe(n)p Fd(\\000)p Fe(1)778 381 y Ff(X)776 560 y Fe(i)p\n Fc(=)p Fe(0)916 462 y Fp(row0)p Fq([)p Fp(i)p Fq(])20\n b Fg(\\003)g Fp(col0)p Fq([)p Fp(i)p Fq(])230 b Fp(sums)p\n Fq([)p Fp(2)24 b Fq(:)h Fp(3)p Fq(])h(=)2345 356 y Fe(n)p\n Fd(\\000)p Fe(1)2347 381 y Ff(X)2345 560 y Fe(i)p Fc(=)p\n Fe(0)2485 462 y Fp(row0)p Fq([)p Fp(i)p Fq(])20 b Fg(\\003)g\n@@ -6393,18 +6378,18 @@\n Fq(])19 b Fg(\\003)i Fp(col1)p Fq([)p Fp(i)p Fq(])98 b\n Fp(sums)p Fq([)p Fp(10)24 b Fq(:)i Fp(11)p Fq(])f(=)2345\n 5241 y Fe(n)p Fd(\\000)p Fe(1)2347 5266 y Ff(X)2345 5445\n y Fe(i)p Fc(=)p Fe(0)2485 5346 y Fp(row1)p Fq([)p Fp(i)p\n Fq(])20 b Fg(\\003)g Fp(col2)p Fq([)p Fp(i)p Fq(])p eop\n end\n %%Page: 13 13\n-TeXDict begin 13 12 bop 91 100 1028 4 v 1209 100 a Fp(Utilities)28\n-b Fl(:)41 b Fk(DRAFT)121 b Fl(August)30 b(3,)h(2025)p\n-2780 100 V 1028 w Fq(13)66 399 y(26.)46 b Fp(int)h(ZVdotU22)f(\\()h(int)\n-g(n,)g(double)f(row0[],)g(double)g(row1[],)895 511 y(double)h(col0[],)e\n+TeXDict begin 13 12 bop 91 100 1086 4 v 1267 100 a Fp(Utilities)28\n+b Fl(:)40 b Fk(DRAFT)121 b Fl(July)30 b(1,)h(2024)p 2722\n+100 V 1086 w Fq(13)66 399 y(26.)46 b Fp(int)h(ZVdotU22)f(\\()h(int)g(n,)\n+g(double)f(row0[],)g(double)g(row1[],)895 511 y(double)h(col0[],)e\n (double)h(col1[],)g(double)g(sums[])g(\\))i(;)227 681\n y Fq(This)30 b(metho)s(d)g(computes)g(four)g(dot)g(pro)s(ducts.)277\n 918 y Fp(sums)p Fq([)p Fp(0)24 b Fq(:)i Fp(1)p Fq(])f(=)811\n 813 y Fe(n)p Fd(\\000)p Fe(1)814 838 y Ff(X)811 1017 y\n Fe(i)p Fc(=)p Fe(0)952 918 y Fp(row0)p Fq([)p Fp(i)p\n Fq(])19 b Fg(\\003)i Fp(col0)p Fq([)p Fp(i)p Fq(])98 b\n Fp(sums)p Fq([)p Fp(2)24 b Fq(:)i Fp(3)p Fq(])f(=)2249\n@@ -6466,17 +6451,17 @@\n Fq(])19 b Fg(\\003)i Fp(col0)p Fq([)p Fp(i)p Fq(])66 5125\n y(31.)46 b Fp(int)h(ZVdotC33)f(\\()h(int)g(n,)g(double)f(row0[],)g\n (double)g(row1[],)g(double)g(row2[],)895 5238 y(double)h(col0[],)e\n (double)h(col1[],)g(double)g(col2[],)g(double)g(sums[])g(\\))i(;)227\n 5407 y Fq(This)30 b(metho)s(d)g(computes)g(nine)g(dot)h(pro)s(ducts.)p\n eop end\n %%Page: 14 14\n-TeXDict begin 14 13 bop 0 100 a Fq(14)p 182 100 1028\n-4 v 1210 w Fp(Utilities)28 b Fl(:)41 b Fk(DRAFT)30 b\n-Fl(August)g(3,)h(2025)p 2873 100 V 277 462 a Fp(sums)p\n+TeXDict begin 14 13 bop 0 100 a Fq(14)p 182 100 1086\n+4 v 1268 w Fp(Utilities)28 b Fl(:)40 b Fk(DRAFT)30 b\n+Fl(July)g(1,)h(2024)p 2815 100 V 277 462 a Fp(sums)p\n Fq([)p Fp(0)p Fq(;)15 b Fp(1)p Fq(])25 b(=)776 356 y\n Fe(n)p Fd(\\000)p Fe(1)778 381 y Ff(X)776 560 y Fe(i)p\n Fc(=)p Fe(0)p 916 384 290 4 v 916 462 a Fp(row0)p Fq([)p\n Fp(i)p Fq(])20 b Fg(\\003)g Fp(col0)p Fq([)p Fp(i)p Fq(])230\n b Fp(sums)p Fq([)p Fp(2)24 b Fq(:)h Fp(3)p Fq(])h(=)2345\n 356 y Fe(n)p Fd(\\000)p Fe(1)2347 381 y Ff(X)2345 560\n y Fe(i)p Fc(=)p Fe(0)p 2485 384 V 2485 462 a Fp(row0)p\n@@ -6582,18 +6567,18 @@\n b Fg(\\003)i Fp(col1)p Fq([)p Fp(i)p Fq(])98 b Fp(sums)p\n Fq([)p Fp(10)24 b Fq(:)i Fp(11)p Fq(])f(=)2345 5241 y\n Fe(n)p Fd(\\000)p Fe(1)2347 5266 y Ff(X)2345 5445 y Fe(i)p\n Fc(=)p Fe(0)p 2485 5268 V 2485 5346 a Fp(row1)p Fq([)p\n Fp(i)p Fq(])20 b Fg(\\003)g Fp(col2)p Fq([)p Fp(i)p Fq(])p\n eop end\n %%Page: 15 15\n-TeXDict begin 15 14 bop 91 100 1028 4 v 1209 100 a Fp(Utilities)28\n-b Fl(:)41 b Fk(DRAFT)121 b Fl(August)30 b(3,)h(2025)p\n-2780 100 V 1028 w Fq(15)66 399 y(35.)46 b Fp(int)h(ZVdotC22)f(\\()h(int)\n-g(n,)g(double)f(row0[],)g(double)g(row1[],)895 511 y(double)h(col0[],)e\n+TeXDict begin 15 14 bop 91 100 1086 4 v 1267 100 a Fp(Utilities)28\n+b Fl(:)40 b Fk(DRAFT)121 b Fl(July)30 b(1,)h(2024)p 2722\n+100 V 1086 w Fq(15)66 399 y(35.)46 b Fp(int)h(ZVdotC22)f(\\()h(int)g(n,)\n+g(double)f(row0[],)g(double)g(row1[],)895 511 y(double)h(col0[],)e\n (double)h(col1[],)g(double)g(sums[])g(\\))i(;)227 669\n y Fq(This)30 b(metho)s(d)g(computes)g(four)g(dot)g(pro)s(ducts.)277\n 895 y Fp(sums)p Fq([)p Fp(0)24 b Fq(:)i Fp(1)p Fq(])f(=)811\n 789 y Fe(n)p Fd(\\000)p Fe(1)814 814 y Ff(X)811 993 y\n Fe(i)p Fc(=)p Fe(0)p 952 817 290 4 v 952 895 a Fp(row0)p\n Fq([)p Fp(i)p Fq(])19 b Fg(\\003)i Fp(col0)p Fq([)p Fp(i)p\n Fq(])98 b Fp(sums)p Fq([)p Fp(2)24 b Fq(:)i Fp(3)p Fq(])f(=)2249\n@@ -6660,18 +6645,18 @@\n (y[],)h(double)f(x[],)g(int)h(index[])f(\\))i(;)227 5047\n y(y[i])f(=)g(x[index[i]])28 b Fq(for)i Fp(0)47 b(<=)g(i)h(<)f(n)p\n Fq(.)66 5249 y(41.)f Fp(double)g(ZVmaxabs)g(\\()h(int)g(n,)g(double)g\n (y[])f(\\))i(;)227 5407 y Fq(This)30 b(metho)s(d)g(returns)f(the)h\n (maxim)m(um)h(magnitude)f(of)h(en)m(tries)g(in)f Fp(y[0:n-1])p\n Fq(.)p eop end\n %%Page: 16 16\n-TeXDict begin 16 15 bop 0 100 a Fq(16)p 182 100 1028\n-4 v 1210 w Fp(Utilities)28 b Fl(:)41 b Fk(DRAFT)30 b\n-Fl(August)g(3,)h(2025)p 2873 100 V 66 399 a Fq(42.)46\n-b Fp(double)g(ZVminabs)g(\\()h(int)g(n,)g(double)g(y[])f(\\))i(;)227\n+TeXDict begin 16 15 bop 0 100 a Fq(16)p 182 100 1086\n+4 v 1268 w Fp(Utilities)28 b Fl(:)40 b Fk(DRAFT)30 b\n+Fl(July)g(1,)h(2024)p 2815 100 V 66 399 a Fq(42.)46 b\n+Fp(double)g(ZVminabs)g(\\()h(int)g(n,)g(double)g(y[])f(\\))i(;)227\n 560 y Fq(This)30 b(metho)s(d)g(returns)f(the)h(minim)m(um)g(magnitude)g\n (of)h(en)m(tries)g(in)f Fp(y[0:n-1])p Fq(.)66 771 y(43.)46\n b Fp(void)h(ZVscale)f(\\()h(int)g(n,)g(double)f(y[],)h(double)f(areal,)g\n (double)g(aimag)h(\\))g(;)227 933 y Fq(This)29 b(metho)s(d)f(scales)i(a)\n g(v)m(ector)g Fp(y[])e Fq(b)m(y)h Fp(\\(areal,aimag\\))p\n Fq(,)d(i.e.,)31 b Fp(y[i])46 b(*=)i(\\(areal,aimag\\))p\n Fq(.)36 b(for)29 b Fp(0)48 b(<=)227 1046 y(i)g(<)f(n)p\n@@ -6727,17 +6712,17 @@\n y(4.)46 b Fp(void)h(IVfprintf)e(\\()j(FILE)e(*fp,)h(int)g(n,)g(int)g\n (y[])g(\\))g(;)227 5294 y Fq(This)27 b(metho)s(d)g(prin)m(ts)g\n Fp(n)g Fq(en)m(tries)i(in)e Fp(y[])g Fq(to)h(\\014le)g\n Fp(fp)p Fq(.)39 b(The)27 b(format)h(is)f(new)h(line)f(follo)m(w)m(ed)j\n (b)m(y)d(lines)h(of)g(\\014v)m(e)227 5407 y Fp(int)p Fq('s)i(in)g\n Fp(\")47 b(\\0454d\")30 b Fq(format.)p eop end\n %%Page: 17 17\n-TeXDict begin 17 16 bop 91 100 1028 4 v 1209 100 a Fp(Utilities)28\n-b Fl(:)41 b Fk(DRAFT)121 b Fl(August)30 b(3,)h(2025)p\n-2780 100 V 1028 w Fq(17)111 399 y(5.)46 b Fp(int)h(IVfp80)f(\\()i(FILE)e\n+TeXDict begin 17 16 bop 91 100 1086 4 v 1267 100 a Fp(Utilities)28\n+b Fl(:)40 b Fk(DRAFT)121 b Fl(July)30 b(1,)h(2024)p 2722\n+100 V 1086 w Fq(17)111 399 y(5.)46 b Fp(int)h(IVfp80)f(\\()i(FILE)e\n (*fp,)h(int)g(n,)g(int)g(y[],)g(int)g(column,)e(int)i(*pierr)f(\\))i(;)\n 227 549 y Fq(This)21 b(metho)s(d)g(prin)m(ts)g Fp(n)g\n Fq(en)m(tries)h(in)g Fp(y[])e Fq(to)i(\\014le)g Fp(fp)p\n Fq(.)37 b(The)21 b(metho)s(d)g(splices)h(v)m(ectors)h(together)g(or)f\n (naturally)227 662 y(breaks)33 b(the)h(large)g(v)m(ectors)h(in)m(to)f\n (lines.)49 b(The)33 b Fp(column)f Fq(v)-5 b(alue)33 b(is)h(the)f\n (presen)m(t)g(lo)s(cation.)51 b(If)33 b(the)g(prin)m(ted)227\n@@ -6801,20 +6786,20 @@\n Fp(ploc)p Fq(.)66 5144 y(15.)46 b Fp(int)h(IVmaxabs)f(\\()h(int)g(n,)g\n (int)g(y[],)g(int)g(*ploc)f(\\))i(;)227 5294 y Fq(This)c(metho)s(d)g\n (returns)f(the)i(maxim)m(um)f(magnitude)h(of)g(en)m(tries)g(in)f\n Fp(y[0:n-1])e Fq(and)i(puts)g(the)h(\\014rst)227 5407\n y(lo)s(cation)32 b(where)e(it)h(w)m(as)g(found)e(in)m(to)i(the)g\n (address)e Fp(ploc)p Fq(.)p eop end\n %%Page: 18 18\n-TeXDict begin 18 17 bop 0 100 a Fq(18)p 182 100 1028\n-4 v 1210 w Fp(Utilities)28 b Fl(:)41 b Fk(DRAFT)30 b\n-Fl(August)g(3,)h(2025)p 2873 100 V 66 399 a Fq(16.)46\n-b Fp(int)h(IVmin)g(\\()g(int)g(n,)g(int)g(y[],)g(int)g(*ploc)f(\\))h(;)\n-227 554 y Fq(This)25 b(metho)s(d)h(returns)f(the)h(minim)m(um)f(en)m\n-(try)h(in)g Fp(y[0:n-1])d Fq(and)j(puts)f(the)h(\\014rst)f(lo)s(cation)j\n+TeXDict begin 18 17 bop 0 100 a Fq(18)p 182 100 1086\n+4 v 1268 w Fp(Utilities)28 b Fl(:)40 b Fk(DRAFT)30 b\n+Fl(July)g(1,)h(2024)p 2815 100 V 66 399 a Fq(16.)46 b\n+Fp(int)h(IVmin)g(\\()g(int)g(n,)g(int)g(y[],)g(int)g(*ploc)f(\\))h(;)227\n+554 y Fq(This)25 b(metho)s(d)h(returns)f(the)h(minim)m(um)f(en)m(try)h\n+(in)g Fp(y[0:n-1])d Fq(and)j(puts)f(the)h(\\014rst)f(lo)s(cation)j\n (where)d(it)i(w)m(as)227 667 y(found)i(in)m(to)j(the)e(address)g\n Fp(ploc)p Fq(.)66 866 y(17.)46 b Fp(int)h(IVminabs)f(\\()h(int)g(n,)g\n (int)g(y[],)g(int)g(*ploc)f(\\))i(;)227 1022 y Fq(This)29\n b(metho)s(d)f(returns)g(the)h(minim)m(um)f(magnitude)i(of)f(en)m(tries)\n h(in)e Fp(y[0:n-1])f Fq(and)i(puts)f(the)h(\\014rst)g(lo)s(ca-)227\n 1135 y(tion)i(where)f(it)h(w)m(as)g(found)e(in)m(to)i(the)g(address)e\n Fp(ploc)p Fq(.)66 1334 y(18.)46 b Fp(void)h(IVperm)f(\\()h(int)g(n,)h\n@@ -6867,42 +6852,41 @@\n 5294 y Fq(This)30 b(is)g(the)g(allo)s(cator)i(and)e(initializer)i\n (metho)s(d)d(for)h Fp(float)f Fq(v)m(ectors.)42 b(Storage)31\n b(for)f(an)g(arra)m(y)g(with)g(size)227 5407 y Fp(n)g\n Fq(is)h(found)e(and)h(eac)m(h)h(en)m(try)g(is)f(\\014lled)g(with)g\n Fp(val)p Fq(.)40 b(A)31 b(p)s(oin)m(ter)f(to)h(the)g(arra)m(y)g(is)f\n (returned.)p eop end\n %%Page: 19 19\n-TeXDict begin 19 18 bop 91 100 1028 4 v 1209 100 a Fp(Utilities)28\n-b Fl(:)41 b Fk(DRAFT)121 b Fl(August)30 b(3,)h(2025)p\n-2780 100 V 1028 w Fq(19)111 399 y(2.)46 b Fp(float)h(*)g(FVinit2)f(\\()h\n-(int)g(n)h(\\))f(;)227 549 y Fq(This)32 b(is)h(an)f(allo)s(cator)j\n-(metho)s(d)d(for)h Fp(float)e Fq(v)m(ectors.)49 b(Storage)34\n-b(for)f(an)f(arra)m(y)h(with)g(size)g Fp(n)g Fq(is)f(found.)47\n-b(A)227 662 y(p)s(oin)m(ter)31 b(to)g(the)f(arra)m(y)h(is)g(returned.)\n-39 b(Note,)32 b(on)e(return,)g(there)g(will)h(lik)m(ely)h(b)s(e)e\n-(garbage)h(in)g(the)f(arra)m(y)-8 b(.)111 850 y(3.)46\n-b Fp(void)h(FVfree)f(\\()h(int)g(vec[])g(\\))g(;)227 1001\n-y Fq(This)30 b(metho)s(d)g(releases)h(the)g(storage)h(tak)m(en)f(b)m(y)\n-f Fp(vec[])p Fq(.)111 1189 y(4.)46 b Fp(void)h(FVfprintf)e(\\()j(FILE)e\n-(*fp,)h(int)g(n,)g(float)f(y[])h(\\))h(;)227 1340 y Fq(This)29\n-b(metho)s(d)f(prin)m(ts)h Fp(n)f Fq(en)m(tries)i(in)f\n-Fp(y[])f Fq(to)i(\\014le)f Fp(fp)p Fq(.)40 b(The)28 b(format)i(is)f(new)\n-f(line)i(follo)m(w)m(ed)g(b)m(y)f(lines)h(of)f(six)227\n-1453 y Fp(float)p Fq('s)g(in)h Fp(\")48 b(\\04512.4e\")28\n-b Fq(format.)111 1641 y(5.)46 b Fp(int)h(FVfscanf)f(\\()h(FILE)g(*fp,)f\n-(int)h(n,)h(float)e(y[])h(\\))g(;)227 1792 y Fq(This)30\n-b(metho)s(d)g(scans)g(in)g Fp(float)p Fq('s)g(from)g(\\014le)g\n-Fp(fp)g Fq(and)g(places)h(them)g(in)f(the)g(arra)m(y)h\n-Fp(y[])p Fq(.)40 b(It)31 b(tries)g(to)g(read)227 1905\n-y(in)f Fp(n)g(float)p Fq('s,)g(and)f(returns)h(the)g(n)m(um)m(b)s(er)f\n-(that)i(w)m(ere)g(actually)h(read.)111 2093 y(6.)46 b\n-Fp(void)h(FVadd)f(\\()i(int)f(n,)g(float)f(y[],)h(float)f(x[])h(\\))h(;)\n-227 2244 y Fq(This)30 b(metho)s(d)g(adds)f Fp(n)h Fq(en)m(tries)h(from)\n-f Fp(x[])g Fq(to)h Fp(y[])p Fq(,)f(i.e.,)h Fp(y[i])47\n-b(+=)g(x[i])29 b Fq(for)i Fp(0)47 b(<=)g(i)h(<)f(n)p\n+TeXDict begin 19 18 bop 91 100 1086 4 v 1267 100 a Fp(Utilities)28\n+b Fl(:)40 b Fk(DRAFT)121 b Fl(July)30 b(1,)h(2024)p 2722\n+100 V 1086 w Fq(19)111 399 y(2.)46 b Fp(float)h(*)g(FVinit2)f(\\()h(int)\n+g(n)h(\\))f(;)227 549 y Fq(This)32 b(is)h(an)f(allo)s(cator)j(metho)s(d)\n+d(for)h Fp(float)e Fq(v)m(ectors.)49 b(Storage)34 b(for)f(an)f(arra)m\n+(y)h(with)g(size)g Fp(n)g Fq(is)f(found.)47 b(A)227 662\n+y(p)s(oin)m(ter)31 b(to)g(the)f(arra)m(y)h(is)g(returned.)39\n+b(Note,)32 b(on)e(return,)g(there)g(will)h(lik)m(ely)h(b)s(e)e(garbage)\n+h(in)g(the)f(arra)m(y)-8 b(.)111 850 y(3.)46 b Fp(void)h(FVfree)f(\\()h\n+(int)g(vec[])g(\\))g(;)227 1001 y Fq(This)30 b(metho)s(d)g(releases)h\n+(the)g(storage)h(tak)m(en)f(b)m(y)f Fp(vec[])p Fq(.)111\n+1189 y(4.)46 b Fp(void)h(FVfprintf)e(\\()j(FILE)e(*fp,)h(int)g(n,)g\n+(float)f(y[])h(\\))h(;)227 1340 y Fq(This)29 b(metho)s(d)f(prin)m(ts)h\n+Fp(n)f Fq(en)m(tries)i(in)f Fp(y[])f Fq(to)i(\\014le)f\n+Fp(fp)p Fq(.)40 b(The)28 b(format)i(is)f(new)f(line)i(follo)m(w)m(ed)g\n+(b)m(y)f(lines)h(of)f(six)227 1453 y Fp(float)p Fq('s)g(in)h\n+Fp(\")48 b(\\04512.4e\")28 b Fq(format.)111 1641 y(5.)46\n+b Fp(int)h(FVfscanf)f(\\()h(FILE)g(*fp,)f(int)h(n,)h(float)e(y[])h(\\))g\n+(;)227 1792 y Fq(This)30 b(metho)s(d)g(scans)g(in)g Fp(float)p\n+Fq('s)g(from)g(\\014le)g Fp(fp)g Fq(and)g(places)h(them)g(in)f(the)g\n+(arra)m(y)h Fp(y[])p Fq(.)40 b(It)31 b(tries)g(to)g(read)227\n+1905 y(in)f Fp(n)g(float)p Fq('s,)g(and)f(returns)h(the)g(n)m(um)m(b)s\n+(er)f(that)i(w)m(ere)g(actually)h(read.)111 2093 y(6.)46\n+b Fp(void)h(FVadd)f(\\()i(int)f(n,)g(float)f(y[],)h(float)f(x[])h(\\))h\n+(;)227 2244 y Fq(This)30 b(metho)s(d)g(adds)f Fp(n)h\n+Fq(en)m(tries)h(from)f Fp(x[])g Fq(to)h Fp(y[])p Fq(,)f(i.e.,)h\n+Fp(y[i])47 b(+=)g(x[i])29 b Fq(for)i Fp(0)47 b(<=)g(i)h(<)f(n)p\n Fq(.)111 2432 y(7.)f Fp(void)h(FVaxpy)f(\\()h(int)g(n,)h(float)e(y[],)h\n (float)f(alpha,)g(float)g(x[])h(\\))h(;)227 2583 y Fq(This)36\n b(metho)s(d)g(adds)g(a)h(scaled)g(m)m(ultiple)g(of)g\n Fp(n)f Fq(en)m(tries)i(from)e Fp(x[])g Fq(in)m(to)h Fp(y[])p\n Fq(,)h(i.e.,)h Fp(y[i])47 b(+=)g(alpha)f(*)227 2696 y(x[i])29\n b Fq(for)i Fp(0)47 b(<=)g(i)h(<)f(n)p Fq(.)111 2884 y(8.)f\n Fp(void)h(FVaxpyi)f(\\()h(int)g(n,)g(float)g(y[],)f(int)h(index[],)f\n@@ -6937,19 +6921,19 @@\n g(index[])f(\\))h(;)227 5068 y(y[i])g(=)g(x[index[i]])28\n b Fq(for)i Fp(0)47 b(<=)g(i)h(<)f(n)p Fq(.)66 5257 y(14.)f\n Fp(void)h(FVgatherAddZero)d(\\()j(int)g(n,)g(float)f(y[],)h(float)f\n (x[],)h(int)g(index[])f(\\))h(;)227 5407 y(y[i])g(+=)g(x[index[i]])27\n b Fq(and)j Fp(x[index[i]])45 b(=)i(0)30 b Fq(for)g Fp(0)48\n b(<=)f(i)h(<)f(n)p Fq(.)p eop end\n %%Page: 20 20\n-TeXDict begin 20 19 bop 0 100 a Fq(20)p 182 100 1028\n-4 v 1210 w Fp(Utilities)28 b Fl(:)41 b Fk(DRAFT)30 b\n-Fl(August)g(3,)h(2025)p 2873 100 V 66 399 a Fq(15.)46\n-b Fp(void)h(FVgatherZero)d(\\()k(int)f(n,)g(float)f(y[],)h(float)f(x[],)\n-h(int)g(index[])f(\\))h(;)227 549 y(y[i])g(=)g(x[index[i]])28\n+TeXDict begin 20 19 bop 0 100 a Fq(20)p 182 100 1086\n+4 v 1268 w Fp(Utilities)28 b Fl(:)40 b Fk(DRAFT)30 b\n+Fl(July)g(1,)h(2024)p 2815 100 V 66 399 a Fq(15.)46 b\n+Fp(void)h(FVgatherZero)d(\\()k(int)f(n,)g(float)f(y[],)h(float)f(x[],)h\n+(int)g(index[])f(\\))h(;)227 549 y(y[i])g(=)g(x[index[i]])28\n b Fq(and)h Fp(x[index[i]])45 b(=)j(0)66 738 y Fq(16.)e\n Fp(void)h(FVinvPerm)e(\\()j(int)f(n,)g(float)f(y[],)h(int)g(index[])e\n (\\))j(;)227 888 y Fq(This)26 b(metho)s(d)g(p)s(erm)m(utes)g(the)g(v)m\n (ector)j(y)d(as)h(follo)m(ws.)40 b(i.e.,)29 b Fp(y[index[i]])45\n b(:=)i(y[i])p Fq(.)38 b(See)27 b Fp(FVperm\\(\\))d Fq(for)227\n 1001 y(a)31 b(similar)g(function.)66 1189 y(17.)46 b\n Fp(float)h(FVmax)f(\\()h(int)g(n,)h(float)e(y[],)h(int)f(*ploc)h(\\))g(;)\n@@ -7002,18 +6986,18 @@\n (int)g(index[],)e(float)h(x[])h(\\))h(;)227 5294 y Fq(This)27\n b(metho)s(d)g(scatters)i Fp(n)f Fq(en)m(tries)g(of)g\n Fp(x[])f Fq(in)m(to)i Fp(y[])e Fq(as)h(follo)m(ws,)i\n Fp(y[index[i]])44 b(=)k(x[i])26 b Fq(and)i Fp(x[i])e\n Fq(for)227 5407 y Fp(0)48 b(<=)f(i)g(<)h(n)p Fq(.)p eop\n end\n %%Page: 21 21\n-TeXDict begin 21 20 bop 91 100 1028 4 v 1209 100 a Fp(Utilities)28\n-b Fl(:)41 b Fk(DRAFT)121 b Fl(August)30 b(3,)h(2025)p\n-2780 100 V 1028 w Fq(21)66 399 y(27.)46 b Fp(void)h(FVsub)f(\\()i(int)f\n-(n,)g(float)f(y[],)h(float)f(x[])h(\\))h(;)227 546 y Fq(This)30\n+TeXDict begin 21 20 bop 91 100 1086 4 v 1267 100 a Fp(Utilities)28\n+b Fl(:)40 b Fk(DRAFT)121 b Fl(July)30 b(1,)h(2024)p 2722\n+100 V 1086 w Fq(21)66 399 y(27.)46 b Fp(void)h(FVsub)f(\\()i(int)f(n,)g\n+(float)f(y[],)h(float)f(x[])h(\\))h(;)227 546 y Fq(This)30\n b(metho)s(d)g(subtracts)g Fp(n)g Fq(en)m(tries)h(from)f\n Fp(x[])f Fq(to)j Fp(y[])p Fq(,)d(i.e.,)j Fp(y[i])47 b(-=)g(x[i])29\n b Fq(for)h Fp(0)48 b(<=)f(i)g(<)h(n)p Fq(.)66 729 y(28.)e\n Fp(float)h(FVsum)f(\\()h(int)g(n,)h(float)e(y[])h(\\))g(;)227\n 877 y Fq(This)30 b(metho)s(d)g(returns)f(the)h(sum)g(of)g(the)h\n (\\014rst)f Fp(n)g Fq(en)m(tries)h(in)f(the)g(v)m(ector)i\n Fp(x[])p Fq(,)e(i.e.,)i(return)3430 812 y Ff(P)3518 839\n@@ -7075,19 +7059,19 @@\n Fq(is)f(found)f(and)h(eac)m(h)h(en)m(try)g(is)f(\\014lled)h(with)f\n Fp(NULL)p Fq(.)f(A)i(p)s(oin)m(ter)f(to)h(the)g(arra)m(y)g(is)f\n (returned.)111 5259 y(2.)46 b Fp(void)h(PDVfree)f(\\()h(double)f\n (**p_vec)g(\\))i(;)227 5407 y Fq(This)30 b(metho)s(d)g(releases)h(the)g\n (storage)h(tak)m(en)f(b)m(y)f Fp(p)p 1993 5407 V 34 w(vec[])p\n Fq(.)p eop end\n %%Page: 22 22\n-TeXDict begin 22 21 bop 0 100 a Fq(22)p 182 100 1028\n-4 v 1210 w Fp(Utilities)28 b Fl(:)41 b Fk(DRAFT)30 b\n-Fl(August)g(3,)h(2025)p 2873 100 V 111 399 a Fq(3.)46\n-b Fp(void)h(PDVcopy)f(\\()h(int)g(n,)g(double)f(*p_y[],)g(double)g\n-(*p_x[])g(\\))i(;)227 571 y Fq(This)30 b(metho)s(d)g(copies)h\n+TeXDict begin 22 21 bop 0 100 a Fq(22)p 182 100 1086\n+4 v 1268 w Fp(Utilities)28 b Fl(:)40 b Fk(DRAFT)30 b\n+Fl(July)g(1,)h(2024)p 2815 100 V 111 399 a Fq(3.)46 b\n+Fp(void)h(PDVcopy)f(\\()h(int)g(n,)g(double)f(*p_y[],)g(double)g(*p_x[])\n+g(\\))i(;)227 571 y Fq(This)30 b(metho)s(d)g(copies)h\n Fp(n)f Fq(en)m(tries)h(from)f Fp(p)p 1672 571 29 4 v\n 34 w(x[])g Fq(to)h Fp(p)p 2039 571 V 34 w(y[])p Fq(,)e(i.e.,)j\n Fp(p)p 2491 571 V 34 w(y[i])47 b(=)g(p)p 2907 571 V 34\n w(x[i])30 b Fq(for)g Fp(0)47 b(<=)g(i)h(<)f(n)p Fq(.)111\n 803 y(4.)f Fp(void)h(PDVsetup)e(\\()j(int)f(n,)g(int)g(sizes[],)e\n (double)i(vec[],)f(double)g(*p_vec[])f(\\))j(;)227 975\n y Fq(This)29 b(metho)s(d)g(sets)h(the)g(en)m(tries)g(of)g\n@@ -7144,17 +7128,17 @@\n Fp(p)p 1544 5294 V 34 w(vec[])e Fq(as)i(p)s(oin)m(ters)f(in)m(to)i\n Fp(vec[])d Fq(giv)m(en)i(b)m(y)g(the)g Fp(sizes[])d Fq(v)m(ector,)227\n 5407 y(i.e.,)32 b Fp(p)p 453 5407 V 34 w(vec[0])46 b(=)i(vec)p\n Fq(,)29 b(and)h Fp(p)p 1340 5407 V 34 w(vec[i])46 b(=)i(p)p\n 1852 5407 V 34 w(vec[i-1])d(+)j(sizes[i-1])27 b Fq(for)k\n Fp(0)47 b(<)g(i)h(<)f(n)p Fq(.)p eop end\n %%Page: 23 23\n-TeXDict begin 23 22 bop 91 100 1028 4 v 1209 100 a Fp(Utilities)28\n-b Fl(:)41 b Fk(DRAFT)121 b Fl(August)30 b(3,)h(2025)p\n-2780 100 V 1028 w Fq(23)0 399 y Fi(1.2.9)112 b(Sorting)38\n+TeXDict begin 23 22 bop 91 100 1086 4 v 1267 100 a Fp(Utilities)28\n+b Fl(:)40 b Fk(DRAFT)121 b Fl(July)30 b(1,)h(2024)p 2722\n+100 V 1086 w Fq(23)0 399 y Fi(1.2.9)112 b(Sorting)38\n b(routines)0 591 y Fo(V)-9 b(alidation)35 b(routines)111\n 784 y Fq(1.)46 b Fp(int)h(IVisascending)d(\\()k(int)f(n,)g(int)g(ivec[])\n f(\\))h(;)227 897 y(int)g(IVisdescending)d(\\()k(int)e(n,)i(int)f(ivec[])\n f(\\))h(;)227 1044 y Fq(These)29 b(metho)s(ds)f(returns)f\n Fp(1)h Fq(if)h(the)g(arra)m(y)g Fp(ivec[])e Fq(is)i(in)f(ascending)h\n (or)g(descending)f(order)g(and)g(returns)227 1156 y Fp(0)i\n Fq(otherwise.)111 1337 y(2.)46 b Fp(int)h(DVisascending)d(\\()k(int)f\n@@ -7204,18 +7188,18 @@\n b(metho)s(ds)g(sort)g(the)h(arra)m(y)f Fp(ivec1[])e Fq(in)m(to)k\n (ascending)e(or)g(descending)g(order)g(using)g(an)g(insertion)227\n 5294 y(sort)43 b(and)e(p)s(erm)m(utes)h(the)g(companion)h(arra)m(ys)f\n Fp(ivec2[])e Fq(and)i Fp(dvec[])f Fq(in)g(the)i(same)f(fashion.)76\n b(The)227 5407 y Fp(dvec[])29 b Fq(arra)m(y)i(is)f(double)g(precision)h\n (complex.)p eop end\n %%Page: 24 24\n-TeXDict begin 24 23 bop 0 100 a Fq(24)p 182 100 1028\n-4 v 1210 w Fp(Utilities)28 b Fl(:)41 b Fk(DRAFT)30 b\n-Fl(August)g(3,)h(2025)p 2873 100 V 111 399 a Fq(7.)46\n-b Fp(void)h(DVisortUp)e(\\()j(int)f(n,)g(double)f(dvec[])g(\\))h(;)227\n+TeXDict begin 24 23 bop 0 100 a Fq(24)p 182 100 1086\n+4 v 1268 w Fp(Utilities)28 b Fl(:)40 b Fk(DRAFT)30 b\n+Fl(July)g(1,)h(2024)p 2815 100 V 111 399 a Fq(7.)46 b\n+Fp(void)h(DVisortUp)e(\\()j(int)f(n,)g(double)f(dvec[])g(\\))h(;)227\n 511 y(void)g(DVisortDown)e(\\()i(int)g(n,)g(double)f(dvec[])g(\\))i(;)227\n 656 y Fq(These)39 b(metho)s(ds)g(sort)g(a)g Fp(double)f\n Fq(arra)m(y)h(in)m(to)h(ascending)g(or)f(descending)g(order)f(using)h\n (an)g(insertion)227 769 y(sort.)111 945 y(8.)46 b Fp(void)h(DV2isortUp)\n e(\\()i(int)g(n,)g(double)g(dvec1[],)e(double)h(dvec2[])g(\\))h(;)227\n 1058 y(void)g(DV2isortDown)d(\\()k(int)f(n,)g(double)f(dvec1[],)g\n (double)g(dvec2[])f(\\))j(;)227 1202 y Fq(These)29 b(metho)s(ds)g(sort)g\n@@ -7271,19 +7255,19 @@\n 5181 y Fq(These)30 b(metho)s(ds)e(sort)i(the)g(arra)m(y)g\n Fp(ivec1[])d Fq(in)m(to)k(ascending)e(or)h(descending)f(order)g(using)g\n (a)h(quic)m(k)g(sort)227 5294 y(and)j(p)s(erm)m(utes)g(the)g(companion)\n g(arra)m(ys)h Fp(ivec2[])d Fq(and)i Fp(dvec[])f Fq(in)h(the)g(same)h\n (fashion.)49 b(The)33 b Fp(dvec[])227 5407 y Fq(arra)m(y)e(is)g(double)\n e(precision)i(complex.)p eop end\n %%Page: 25 25\n-TeXDict begin 25 24 bop 91 100 1028 4 v 1209 100 a Fp(Utilities)28\n-b Fl(:)41 b Fk(DRAFT)121 b Fl(August)30 b(3,)h(2025)p\n-2780 100 V 1028 w Fq(25)111 399 y(7.)46 b Fp(void)h(DVqsortUp)e(\\()j\n-(int)f(n,)g(double)f(dvec[])g(\\))h(;)227 511 y(void)g(DVqsortDown)e(\\()\n-i(int)g(n,)g(double)f(dvec[])g(\\))i(;)227 658 y Fq(Thes)30\n+TeXDict begin 25 24 bop 91 100 1086 4 v 1267 100 a Fp(Utilities)28\n+b Fl(:)40 b Fk(DRAFT)121 b Fl(July)30 b(1,)h(2024)p 2722\n+100 V 1086 w Fq(25)111 399 y(7.)46 b Fp(void)h(DVqsortUp)e(\\()j(int)f\n+(n,)g(double)f(dvec[])g(\\))h(;)227 511 y(void)g(DVqsortDown)e(\\()i(int)\n+g(n,)g(double)f(dvec[])g(\\))i(;)227 658 y Fq(Thes)30\n b(metho)s(ds)g(sort)g(a)h Fp(double)e Fq(arra)m(y)i(in)m(to)g\n (ascending)g(or)f(descending)g(order)g(using)g(a)h(quic)m(k)f(sort.)111\n 839 y(8.)46 b Fp(void)h(DV2qsortUp)e(\\()i(int)g(n,)g(double)g(dvec1[],)\n e(double)h(dvec2[])g(\\))h(;)227 952 y(void)g(DV2qsortDown)d(\\()k(int)f\n (n,)g(double)f(dvec1[],)g(double)g(dvec2[])f(\\))j(;)227\n 1099 y Fq(These)30 b(metho)s(ds)e(sort)i(the)g(arra)m(y)g\n Fp(dvec1[])d Fq(in)m(to)k(ascending)e(or)h(descending)f(order)g(using)g\n@@ -7347,44 +7331,43 @@\n (stored)g(in)g(the)g(leading)h(lo)s(cations)g(of)f(the)g(v)m(ectors)h\n Fp(ivec1[])d Fq(and)i Fp(ivec2[])p Fq(.)227 5294 y Fk(Err)-5\n b(or)37 b(che)-5 b(cking:)45 b Fq(If)33 b Fp(n)47 b(<)h(0)p\n Fq(,)33 b(or)g(if)g Fp(ivec1)f Fq(or)h Fp(ivec2)e Fq(is)i\n Fp(NULL)p Fq(,)f(an)h(error)g(message)h(is)f(prin)m(ted)f(and)h(the)227\n 5407 y(program)d(exits.)p eop end\n %%Page: 26 26\n-TeXDict begin 26 25 bop 0 100 a Fq(26)p 182 100 1028\n-4 v 1210 w Fp(Utilities)28 b Fl(:)41 b Fk(DRAFT)30 b\n-Fl(August)g(3,)h(2025)p 2873 100 V 111 399 a Fq(5.)46\n-b Fp(int)h(IV2DVsortUpAndCompress)42 b(\\()47 b(int)g(n,)g(int)g\n-(ivec1[],)f(int)h(ivec2[],)e(double)h(dvec[])h(\\))g(;)227\n-549 y Fq(This)39 b(metho)s(d)g(sorts)g Fp(ivec1[])f Fq(in)m(to)i\n-(ascending)g(order)f(with)g Fp(ivec2[])e Fq(and)i Fp(dvec[])f\n-Fq(as)i(companion)227 662 y(v)m(ectors.)56 b(It)35 b(then)f(compresses)\n-h(the)g(pairs,)h(summing)e(the)h Fp(dvec[])e Fq(en)m(tries)i(for)g\n-(iden)m(tical)h Fp(\\(ivec1[],)227 775 y(ivec2[]\\))42\n-b Fq(pairs.)80 b(The)44 b(return)e(v)-5 b(alue)44 b(is)g(the)g(n)m(um)m\n-(b)s(er)f(of)h(unique)e(en)m(tries)j(stored)f(in)f(the)h(leading)227\n-888 y(lo)s(cations)32 b(of)f(the)f(v)m(ectors)i Fp(ivec1[])p\n-Fq(,)d Fp(ivec2[])f Fq(and)i Fp(dvec[])p Fq(.)227 1039\n-y Fk(Err)-5 b(or)32 b(che)-5 b(cking:)39 b Fq(If)27 b\n-Fp(n)47 b(<)h(0)p Fq(,)28 b(or)g(if)f Fp(ivec1)p Fq(,)h\n-Fp(ivec2)e Fq(or)i Fp(dvec)e Fq(is)i Fp(NULL)p Fq(,)f(an)g(error)h\n-(message)g(is)g(prin)m(ted)g(and)227 1151 y(the)j(program)f(exits.)111\n-1340 y(6.)46 b Fp(int)h(IV2ZVsortUpAndCompress)42 b(\\()47\n-b(int)g(n,)g(int)g(ivec1[],)f(int)h(ivec2[],)e(double)h(dvec[])h(\\))g\n-(;)227 1491 y Fq(This)d(metho)s(d)g(sorts)g Fp(ivec1[])e\n-Fq(in)m(to)k(ascending)e(order)g(with)g Fp(ivec2[])f\n-Fq(and)g(the)i(double)f(precision)227 1603 y Fp(dvec[])34\n-b Fq(as)i(companion)g(v)m(ectors.)58 b(It)36 b(then)f(compresses)h(the)\n-g(pairs,)h(summing)d(the)i(complex)h Fp(dvec[])227 1716\n-y Fq(en)m(tries)g(for)f(iden)m(tical)i Fp(\\(ivec1[],)45\n-b(ivec2[]\\))34 b Fq(pairs.)58 b(The)36 b(return)f(v)-5\n-b(alue)36 b(is)g(the)h(n)m(um)m(b)s(er)e(of)h(unique)227\n-1829 y(en)m(tries)31 b(stored)g(in)f(the)h(leading)g(lo)s(cations)g(of)\n-g(the)g(v)m(ectors)g Fp(ivec1[])p Fq(,)e Fp(ivec2[])f\n+TeXDict begin 26 25 bop 0 100 a Fq(26)p 182 100 1086\n+4 v 1268 w Fp(Utilities)28 b Fl(:)40 b Fk(DRAFT)30 b\n+Fl(July)g(1,)h(2024)p 2815 100 V 111 399 a Fq(5.)46 b\n+Fp(int)h(IV2DVsortUpAndCompress)42 b(\\()47 b(int)g(n,)g(int)g(ivec1[],)\n+f(int)h(ivec2[],)e(double)h(dvec[])h(\\))g(;)227 549 y\n+Fq(This)39 b(metho)s(d)g(sorts)g Fp(ivec1[])f Fq(in)m(to)i(ascending)g\n+(order)f(with)g Fp(ivec2[])e Fq(and)i Fp(dvec[])f Fq(as)i(companion)227\n+662 y(v)m(ectors.)56 b(It)35 b(then)f(compresses)h(the)g(pairs,)h\n+(summing)e(the)h Fp(dvec[])e Fq(en)m(tries)i(for)g(iden)m(tical)h\n+Fp(\\(ivec1[],)227 775 y(ivec2[]\\))42 b Fq(pairs.)80 b(The)44\n+b(return)e(v)-5 b(alue)44 b(is)g(the)g(n)m(um)m(b)s(er)f(of)h(unique)e\n+(en)m(tries)j(stored)f(in)f(the)h(leading)227 888 y(lo)s(cations)32\n+b(of)f(the)f(v)m(ectors)i Fp(ivec1[])p Fq(,)d Fp(ivec2[])f\n+Fq(and)i Fp(dvec[])p Fq(.)227 1039 y Fk(Err)-5 b(or)32\n+b(che)-5 b(cking:)39 b Fq(If)27 b Fp(n)47 b(<)h(0)p Fq(,)28\n+b(or)g(if)f Fp(ivec1)p Fq(,)h Fp(ivec2)e Fq(or)i Fp(dvec)e\n+Fq(is)i Fp(NULL)p Fq(,)f(an)g(error)h(message)g(is)g(prin)m(ted)g(and)\n+227 1151 y(the)j(program)f(exits.)111 1340 y(6.)46 b\n+Fp(int)h(IV2ZVsortUpAndCompress)42 b(\\()47 b(int)g(n,)g(int)g(ivec1[],)\n+f(int)h(ivec2[],)e(double)h(dvec[])h(\\))g(;)227 1491\n+y Fq(This)d(metho)s(d)g(sorts)g Fp(ivec1[])e Fq(in)m(to)k(ascending)e\n+(order)g(with)g Fp(ivec2[])f Fq(and)g(the)i(double)f(precision)227\n+1603 y Fp(dvec[])34 b Fq(as)i(companion)g(v)m(ectors.)58\n+b(It)36 b(then)f(compresses)h(the)g(pairs,)h(summing)d(the)i(complex)h\n+Fp(dvec[])227 1716 y Fq(en)m(tries)g(for)f(iden)m(tical)i\n+Fp(\\(ivec1[],)45 b(ivec2[]\\))34 b Fq(pairs.)58 b(The)36\n+b(return)f(v)-5 b(alue)36 b(is)g(the)h(n)m(um)m(b)s(er)e(of)h(unique)\n+227 1829 y(en)m(tries)31 b(stored)g(in)f(the)h(leading)g(lo)s(cations)g\n+(of)g(the)g(v)m(ectors)g Fp(ivec1[])p Fq(,)e Fp(ivec2[])f\n Fq(and)i Fp(dvec[])p Fq(.)227 1980 y Fk(Err)-5 b(or)32\n b(che)-5 b(cking:)39 b Fq(If)27 b Fp(n)47 b(<)h(0)p Fq(,)28\n b(or)g(if)f Fp(ivec1)p Fq(,)h Fp(ivec2)e Fq(or)i Fp(dvec)e\n Fq(is)i Fp(NULL)p Fq(,)f(an)g(error)h(message)g(is)g(prin)m(ted)g(and)\n 227 2093 y(the)j(program)f(exits.)0 2362 y Fi(1.2.11)113\n b Fh(IP)37 b Fi(:)h Fh(\\(int,)52 b(pointer\\))40 b Fi(singly)e(link)m\n (ed-list)h(metho)s(ds)330 2532 y Fp(typedef)46 b(struct)g(_IP)h(IP)g(;)\n@@ -7419,22 +7402,22 @@\n 5144 y(4.)46 b Fp(int)h(IP_fp80)f(\\()h(FILE)g(*fp,)g(int)g(n,)g(int)g\n (y[],)f(int)h(column,)f(int)h(*pierr)f(\\))i(;)227 5294\n y Fq(This)29 b(metho)s(d)h(prin)m(ts)f(the)h(singly)h(link)m(ed)f(list)\n g(that)h(starts)f(with)g Fp(ip)p Fq(.)40 b(See)30 b Fp(IVfp80\\(\\))e\n Fq(for)i(a)g(description)227 5407 y(of)h(ho)m(w)f(the)h(en)m(tries)g\n (are)g(placed)g(on)f(a)h(line.)p eop end\n %%Page: 27 27\n-TeXDict begin 27 26 bop 91 100 1028 4 v 1209 100 a Fp(Utilities)28\n-b Fl(:)41 b Fk(DRAFT)121 b Fl(August)30 b(3,)h(2025)p\n-2780 100 V 1028 w Fq(27)111 399 y(5.)46 b Fp(IP)h(*)h(IP_mergeUp)d(\\()i\n-(IP)h(*ip1,)e(IP)h(*ip2)g(\\))g(;)227 547 y Fq(This)32\n-b(metho)s(d)h(merges)g(t)m(w)m(o)h(singly)f(link)m(ed)g(lists)g(in)m\n-(to)h(one.)49 b(If)32 b(the)h(t)m(w)m(o)h(lists)f(are)h(in)e(ascending)\n-h(order,)227 660 y(the)e(new)f(list)h(is)f(also)h(in)g(ascending)f\n-(order.)40 b(The)30 b(head)g(of)h(the)g(new)e(list)i(is)g(returned.)111\n+TeXDict begin 27 26 bop 91 100 1086 4 v 1267 100 a Fp(Utilities)28\n+b Fl(:)40 b Fk(DRAFT)121 b Fl(July)30 b(1,)h(2024)p 2722\n+100 V 1086 w Fq(27)111 399 y(5.)46 b Fp(IP)h(*)h(IP_mergeUp)d(\\()i(IP)h\n+(*ip1,)e(IP)h(*ip2)g(\\))g(;)227 547 y Fq(This)32 b(metho)s(d)h(merges)g\n+(t)m(w)m(o)h(singly)f(link)m(ed)g(lists)g(in)m(to)h(one.)49\n+b(If)32 b(the)h(t)m(w)m(o)h(lists)f(are)h(in)e(ascending)h(order,)227\n+660 y(the)e(new)f(list)h(is)f(also)h(in)g(ascending)f(order.)40\n+b(The)30 b(head)g(of)h(the)g(new)e(list)i(is)g(returned.)111\n 845 y(6.)46 b Fp(IP)h(*)h(IP_mergeSortUp)c(\\()j(IP)g(*ip)g(\\))h(;)227\n 993 y Fq(This)30 b(metho)s(d)g(sorts)g(a)h(list)g(in)m(to)g(ascending)g\n (order)f(using)g(a)g(merge)h(sort.)111 1178 y(7.)46 b\n Fp(IP)h(*)h(IP_radixSortUp)c(\\()j(IP)g(*ip)g(\\))h(;)227\n 1327 y Fq(This)30 b(metho)s(d)g(sorts)g(a)h(list)g(in)m(to)g(ascending)\n g(order)f(using)g(a)g(radix)g(sort.)111 1511 y(8.)46\n b Fp(IP)h(*)h(IP_radixSortDown)43 b(\\()48 b(IP)f(*ip)g(\\))g(;)227\n@@ -7487,18 +7470,18 @@\n b(=)j(NULL)p Fq(.)337 5294 y Fm(\\210)e Fq(If)20 b Fp(flag)47\n b(=)g(I2OP)p 1040 5294 V 33 w(BACKWARD)p Fq(,)19 b(the)h(elemen)m(ts)i\n (are)e(link)m(ed)h(in)f(a)h(bac)m(kw)m(ard)f(manner,)i(i.e.,)i\n Fp(ips[i].next)427 5407 y(=)48 b(&ips[i-1])28 b Fq(for)i\n Fp(0)47 b(<)h(i)f(<)h(n)30 b Fq(and)f Fp(ips[0].next)45\n b(=)i(NULL)p Fq(.)p eop end\n %%Page: 28 28\n-TeXDict begin 28 27 bop 0 100 a Fq(28)p 182 100 1028\n-4 v 1210 w Fp(Utilities)28 b Fl(:)41 b Fk(DRAFT)30 b\n-Fl(August)g(3,)h(2025)p 2873 100 V 111 399 a Fq(3.)46\n-b Fp(void)h(I2OP_free)e(\\()j(I2OP)e(*i2op)h(\\))g(;)227\n+TeXDict begin 28 27 bop 0 100 a Fq(28)p 182 100 1086\n+4 v 1268 w Fp(Utilities)28 b Fl(:)40 b Fk(DRAFT)30 b\n+Fl(July)g(1,)h(2024)p 2815 100 V 111 399 a Fq(3.)46 b\n+Fp(void)h(I2OP_free)e(\\()j(I2OP)e(*i2op)h(\\))g(;)227\n 546 y Fq(This)30 b(metho)s(d)g(releases)h(the)g(storage)h(based)e(at)h\n Fp(*i2op)p Fq(.)111 729 y(4.)46 b Fp(void)h(I2OP_fprintf)d(\\()k(FILE)e\n (*fp,)h(I2OP)g(*i2op)f(\\))i(;)227 876 y Fq(This)30 b(metho)s(d)g(prin)m\n (ts)g(the)g(singly)h(link)m(ed)f(list)h(that)g(starts)g(with)f\n Fp(i2op)p Fq(.)0 1183 y Fn(1.3)135 b(Driv)l(er)46 b(programs)111\n 1408 y Fq(1.)g Fp(test_sort)g(msglvl)g(msgFile)f(target)i(sortType)e(n)\n j(range)e(mod)h(seed)227 1556 y Fq(This)30 b(driv)m(er)g(program)g\n@@ -7547,18 +7530,18 @@\n (and)f(compress\")h(metho)s(ds.)38 b(Use)24 b(the)g(script)227\n 5089 y(\\014le)31 b Fp(do)p 476 5089 V 34 w(test)p 702\n 5089 V 33 w(sortUpAndCompress)25 b Fq(for)31 b(testing.)337\n 5294 y Fm(\\210)45 b Fq(The)f Fp(msglvl)e Fq(parameter)j(determines)f\n (the)g(amoun)m(t)h(of)f(output.)82 b(Use)44 b Fp(msglvl)i(=)i(1)c\n Fq(for)g(just)427 5407 y(timing)31 b(output.)p eop end\n %%Page: 29 29\n-TeXDict begin 29 28 bop 91 100 1028 4 v 1209 100 a Fp(Utilities)28\n-b Fl(:)41 b Fk(DRAFT)121 b Fl(August)30 b(3,)h(2025)p\n-2780 100 V 1028 w Fq(29)337 399 y Fm(\\210)45 b Fq(The)33\n-b Fp(msgFile)e Fq(parameter)j(determines)f(the)h(message)g(\\014le)f(|)h\n+TeXDict begin 29 28 bop 91 100 1086 4 v 1267 100 a Fp(Utilities)28\n+b Fl(:)40 b Fk(DRAFT)121 b Fl(July)30 b(1,)h(2024)p 2722\n+100 V 1086 w Fq(29)337 399 y Fm(\\210)45 b Fq(The)33 b\n+Fp(msgFile)e Fq(parameter)j(determines)f(the)h(message)g(\\014le)f(|)h\n (if)f Fp(msgFile)e Fq(is)i Fp(stdout)p Fq(,)g(then)g(the)427\n 511 y(message)27 b(\\014le)f(is)g Fk(stdout)p Fq(,)i(otherwise)e(a)h\n (\\014le)f(is)f(op)s(ened)g(with)h Fk(app)-5 b(end)28\n b Fq(status)e(to)g(receiv)m(e)i(an)m(y)e(output)427 624\n y(data.)337 770 y Fm(\\210)45 b Fq(The)30 b Fp(target)f\n Fq(parameter)i(denotes)f(the)h(t)m(yp)s(e)g(of)f(v)m(ector\\(s\\))j(to)e\n (b)s(e)e(sorted.)500 917 y Fo({)45 b Fp(IV)30 b Fq(|)g\n@@ -7622,17 +7605,17 @@\n y Fp(DVzero\\(\\))p Fq(,)g(7)1992 4720 y Fp(FVadd\\(\\))p\n Fq(,)g(16)1992 4835 y Fp(FVaxpy\\(\\))p Fq(,)g(16)1992\n 4949 y Fp(FVaxpyi\\(\\))p Fq(,)g(16)1992 5064 y Fp(FVcompress\\(\\))p\n Fq(,)f(16)1992 5178 y Fp(FVcopy\\(\\))p Fq(,)h(17)1992\n 5293 y Fp(FVdot\\(\\))p Fq(,)g(17)1992 5407 y Fp(FVfill\\(\\))p\n Fq(,)g(17)1905 5656 y(30)p eop end\n %%Page: 31 31\n-TeXDict begin 31 30 bop 91 100 1028 4 v 1209 100 a Fp(Utilities)28\n-b Fl(:)41 b Fk(DRAFT)121 b Fl(August)30 b(3,)h(2025)p\n-2780 100 V 1028 w Fq(31)0 399 y Fp(FVfprintf\\(\\))p Fq(,)d(16)0\n+TeXDict begin 31 30 bop 91 100 1086 4 v 1267 100 a Fp(Utilities)28\n+b Fl(:)40 b Fk(DRAFT)121 b Fl(July)30 b(1,)h(2024)p 2722\n+100 V 1086 w Fq(31)0 399 y Fp(FVfprintf\\(\\))p Fq(,)d(16)0\n 513 y Fp(FVfree\\(\\))p Fq(,)g(16)0 627 y Fp(FVfscanf\\(\\))p\n Fq(,)g(16)0 741 y Fp(FVgather\\(\\))p Fq(,)g(17)0 855 y\n Fp(FVgatherAddZero\\(\\))p Fq(,)e(17)0 969 y Fp(FVgatherZero\\(\\))p\n Fq(,)h(17)0 1083 y Fp(FVinit\\(\\))p Fq(,)h(16)0 1197 y\n Fp(FVinit2\\(\\))p Fq(,)g(16)0 1311 y Fp(FVinvPerm\\(\\))p\n Fq(,)g(17)0 1425 y Fp(FVmax\\(\\))p Fq(,)h(17)0 1539 y\n Fp(FVmaxabs\\(\\))p Fq(,)f(17)0 1654 y Fp(FVmin\\(\\))p Fq(,)h(17)0\n@@ -7691,17 +7674,17 @@\n Fq(,)h(15)1992 4724 y Fp(IVscatter\\(\\))p Fq(,)f(15)1992\n 4838 y Fp(IVshuffle\\(\\))p Fq(,)g(16)1992 4952 y Fp\n (IVsortUpAndCompress\\(\\))p Fq(,)d(22)1992 5066 y Fp(IVsum\\(\\))p\n Fq(,)k(15)1992 5180 y Fp(IVsumabs\\(\\))p Fq(,)f(15)1992\n 5293 y Fp(IVswap\\(\\))p Fq(,)h(15)1992 5407 y Fp(IVzero\\(\\))p\n Fq(,)g(16)p eop end\n %%Page: 32 32\n-TeXDict begin 32 31 bop 0 100 a Fq(32)p 182 100 1028\n-4 v 1210 w Fp(Utilities)28 b Fl(:)41 b Fk(DRAFT)30 b\n-Fl(August)g(3,)h(2025)p 2873 100 V 0 399 a Fp(IVZVisortDown\\(\\))p\n+TeXDict begin 32 31 bop 0 100 a Fq(32)p 182 100 1086\n+4 v 1268 w Fp(Utilities)28 b Fl(:)40 b Fk(DRAFT)30 b\n+Fl(July)g(1,)h(2024)p 2815 100 V 0 399 a Fp(IVZVisortDown\\(\\))p\n Fq(,)26 b(21)0 511 y Fp(IVZVisortUp\\(\\))p Fq(,)h(21)0\n 624 y Fp(IVZVqsortDown\\(\\))p Fq(,)f(22)0 737 y Fp(IVZVqsortUp\\(\\))p\n Fq(,)h(22)0 850 y Fp(IVZVsortUpAndCompress\\(\\))p Fq(,)d(23)0\n 1040 y Fp(PCVcopy\\(\\))p Fq(,)k(19)0 1153 y Fp(PCVfree\\(\\))p\n Fq(,)g(18)0 1266 y Fp(PCVinit\\(\\))p Fq(,)g(18)0 1379\n y Fp(PCVsetup\\(\\))p Fq(,)g(19)0 1491 y Fp(PDVcopy\\(\\))p\n Fq(,)g(19)0 1604 y Fp(PDVfree\\(\\))p Fq(,)g(19)0 1717\n", "details": [{"source1": "ps2ascii {}", "source2": "ps2ascii {}", "unified_diff": "@@ -22,15 +22,15 @@\n struct _I2OP {\r\n int value0 ;\r\n int value1 ;\r\n void *value2 ;\r\n I2OP *next ;\r\n } ;\r\n 1\r\n- 2 Utilities : DRAFT August 3, 2025\r\n+ 2 Utilities : DRAFT July 1, 2024\r\n 1.2 Prototypes and descriptions of Utilities methods\r\n This section contains brief descriptions including prototypes of all methods that belong to the\r\n Utilities directory.\r\n 1.2.1 CV : char vector methods\r\n 1. char * CVinit ( int n, char c ) ;\r\n This is the allocator and initializer method for char vectors. Storage for an array with size\r\n n is found and each entry is \ufb01lled with character c. A pointer to the array is returned.\r\n@@ -54,15 +54,15 @@\n 8. int CVfscanf ( FILE *fp, int n, char y[] ) ;\r\n This method scans in characters from \ufb01le fp and places them in the array y[]. It tries to\r\n read in n characters, and returns the number that were actually read.\r\n 1.2.2 DV : double vector methods\r\n 1. double * DVinit ( int n, double val ) ;\r\n This is the allocator and initializer method for double vectors. Storage for an array with size\r\n n is found and each entry is \ufb01lled with val. A pointer to the array is returned.\r\n- Utilities : DRAFT August 3, 2025 3\r\n+ Utilities : DRAFT July 1, 2024 3\r\n 2. double * DVinit2 ( int n ) ;\r\n This is an allocator method for double vectors. Storage for an array with size n is found. A\r\n pointer to the array is returned. Note, on return, there will likely be garbage in the array.\r\n 3. void DVfree ( int vec[] ) ;\r\n This method releases the storage taken by vec[].\r\n 4. void DVfprintf ( FILE *fp, int n, double y[] ) ;\r\n This method prints n entries in y[] to \ufb01le fp. The format is new line followed by lines of six\r\n@@ -90,15 +90,15 @@\n This method computes this computation.\r\n y0[] = y0[] + alpha[0] * x0[] + alpha[1] * x1[]\r\n y1[] = y1[] + alpha[2] * x0[] + alpha[3] * x1[]\r\n y2[] = y2[] + alpha[4] * x0[] + alpha[5] * x1[]\r\n 11. void DVaxpy31 ( int n, double y0[], double y1[], double y2[],\r\n double alpha, double x0[], double x1[] ) ;\r\n This method computes this computation.\r\n- 4 Utilities : DRAFT August 3, 2025\r\n+ 4 Utilities : DRAFT July 1, 2024\r\n y0[] = y0[] + alpha[0] * x0[]\r\n y1[] = y1[] + alpha[1] * x0[]\r\n y2[] = y2[] + alpha[2] * x0[]\r\n 12. void DVaxpy23 ( int n, double y0[], double y1[],\r\n double alpha, double x0[], double x1[], double x2[] ) ;\r\n This method computes this computation.\r\n y0[] = y0[] + alpha[0] * x0[] + alpha[1] * x1[] + alpha[2] * x2[]\r\n@@ -121,15 +121,15 @@\n y0[] = y0[] + alpha[0] * x0[] + alpha[1] * x1[]\r\n 17. void DVaxpy11 ( int n, double y0[], double alpha, double x0[] ) ;\r\n This method computes this computation.\r\n y0[] = y0[] + alpha[0] * x0[]\r\n 18. void DVaxpyi ( int n, double y[], int index[], double alpha, double x[] ) ;\r\n This method scatteradds a scaled multiple of n entries from x[] into y[], i.e., y[index[i]]\r\n += alpha * x[i] for 0 <= i < n.\r\n- Utilities : DRAFT August 3, 2025 5\r\n+ Utilities : DRAFT July 1, 2024 5\r\n 19. void DVcompress ( int n1, double x1[], double y1[],\r\n int n2, double x2[], double y2[] ) ;\r\n Given a pair of arrays x1[n1] and y1[n1], \ufb01ll x2[n2] and y2[n2] with a subset of the\r\n (x1[j],y1[j] entries whose distribution is an approximation.\r\n 20. void DVcopy ( int n, double y[], double x[] ) ;\r\n This method copies n entries from x[] to y[], i.e., y[i] = x[i] for 0 <= i < n.\r\n 21. int DVdot ( int n, double y[], double x[] ) ;\r\n@@ -167,15 +167,15 @@\n i=0\r\n n\u22121\r\n sums[1] = Xrow1[i]\u2217col0[i]\r\n i=0\r\n n\u22121\r\n sums[2] = Xrow2[i]\u2217col0[i]\r\n i=0\r\n- 6 Utilities : DRAFT August 3, 2025\r\n+ 6 Utilities : DRAFT July 1, 2024\r\n 25. int DVdot23 ( int n, double row0[], double row1[],\r\n double col0[], double col1[], double col2[], double sums[] ) ;\r\n This method computes six dot products.\r\n n\u22121 n\u22121 n\u22121\r\n sums[0] = Xrow0[i]\u2217col0[i] sums[1] = Xrow0[i]\u2217col1[i] sums[2] = Xrow0[i]\u2217col2[i]\r\n i=0 i=0 i=0\r\n n\u22121 n\u22121 n\u22121\r\n@@ -212,15 +212,15 @@\n sums[0] = Xrow0[i]\u2217col0[i] sums[1] = Xrow0[i]\u2217col1[i]\r\n i=0 i=0\r\n 30. int DVdot11 ( int n, double row0[], double col0[], double sums[] ) ;\r\n This method computes one dot product.\r\n n\u22121\r\n sums[0] = Xrow0[i]\u2217col0[i]\r\n i=0\r\n- Utilities : DRAFT August 3, 2025 7\r\n+ Utilities : DRAFT July 1, 2024 7\r\n 31. int DVdoti ( int n, double y[], int index[], double x[] ) ;\r\n n\u22121\r\n This method returns the indexed dot product Xy[index[i]]\u2217x[i].\r\n i=0\r\n 32. void DVfill ( int n, double y[], double val ) ;\r\n This method \ufb01lls n entries in y[] with val, i.e., y[i] = val for 0 <= i < n.\r\n 33. void DVgather ( int n, double y[], double x[], int index[] ) ;\r\n@@ -248,15 +248,15 @@\n This method permutes the vector y as follows. i.e., y[i] := y[index[i]]. See DVinvPerm()\r\n for a similar function.\r\n 42. void DVramp ( int n, double y[], double start, double inc ) ;\r\n This method \ufb01lls n entries in y[] with values start, start + inc, start + 2*inc, start\r\n + 3*inc, etc.\r\n 43. void DVscale ( int n, double y[], double alpha ) ;\r\n This method scales a vector y[] by alpha, i.e., y[i] *= alpha. for 0 <= i < n.\r\n- 8 Utilities : DRAFT August 3, 2025\r\n+ 8 Utilities : DRAFT July 1, 2024\r\n 44. void DVscale2 ( int n, double x[], double y[],\r\n double a, double b, double c, double d ) ;\r\n This method scales two vectors y[] by a 2 \u00d72 matrix, i.e.,\r\n \" x[0] . . . x[n\u22121] # := \" a b #\" x[0] ... x[n\u22121] #.\r\n y[0] . . . y[n\u22121] c d y[0] . . . y[n\u22121]\r\n 45. void DVscatter ( int n, double y[], int index[], double x[] ) ;\r\n This method scatters n entries of x[] into y[] as follows, y[index[i]] = x[i] for 0 <= i\r\n@@ -284,15 +284,15 @@\n This method swaps the x[] and y[] vectors as follows. i.e., y[i] := x[i] and x[i] :=\r\n y[i] for 0 <= i < n.\r\n 53. void DVzero ( int n, double y[] ) ;\r\n This method zeroes n entries in y[], i.e., y[i] = 0 for 0 <= i < n.\r\n 54. void DVshuffle ( int n, double y[], int seed ) ;\r\n This method shu\ufb04es the \ufb01rst n entries in y[]. The value seed is the seed to a random number\r\n generator, and one can get repeatable behavior by repeating seed.\r\n- Utilities : DRAFT August 3, 2025 9\r\n+ Utilities : DRAFT July 1, 2024 9\r\n 1.2.3 ZV : double complex vector methods\r\n Adoubleprecisioncomplexvector oflengthnissimplya doubleprecisionvector oflength2n. There\r\n is a separate ZVinit() allocator and initializer method, since it requires a real and imaginary part\r\n to \ufb01ll the vector. However, there is no ZVinit2() method (which allocates without initializing the\r\n entries) nor a ZVfree() method to free the entries; the DVinit2() and DVfree() methods can be\r\n used. Similarly, there is no ZVfscanf() method, instead the DVfscanf() method can be used.\r\n 1. double * ZVinit ( int n, double real, double imag ) ;\r\n@@ -320,15 +320,15 @@\n 6. void ZVaxpy ( int n, double y[], double areal, double aimag, double x[] ) ;\r\n Thismethodaddsascaledmultipleofnentriesfromx[]intoy[],i.e., y[i] += (areal,aimag)\r\n * x[i] for 0 <= i < n.\r\n 7. void ZVaxpy2 ( int n, double z[], double areal, double aimag,\r\n double x[], double breal, double bimag, double y[] ) ;\r\n This method adds a scaled multiple of two vectors x[] and y[] to another vector z[], i.e.,\r\n i.e., z[i] += (areal,aimag) * x[i] + (breal,bimag) * y[i] for 0 <= i < n.\r\n- 10 Utilities : DRAFT August 3, 2025\r\n+ 10 Utilities : DRAFT July 1, 2024\r\n 8. void ZVaxpy33 ( int n, double y0[], double y1[], double y2[],\r\n double alpha[], double x0[], double x1[], double x2[] ) ;\r\n This method computes the following.\r\n y0[] = y0[] + alpha[0:1] * x0[] + alpha[2:3] * x1[] + alpha[4:5] * x2[]\r\n y1[] = y1[] + alpha[6:7] * x0[] + alpha[8:9] * x1[] + alpha[10:11] * x2[]\r\n y2[] = y2[] + alpha[12:13] * x0[] + alpha[14:15] * x1[] + alpha[16:17] * x2[]\r\n 9. void ZVaxpy32 ( int n, double y0[], double y1[], double y2[],\r\n@@ -354,15 +354,15 @@\n y0[] = y0[] + alpha[0:1] * x0[] + alpha[2:3] * x1[]\r\n y1[] = y1[] + alpha[4:5] * x0[] + alpha[6:7] * x1[]\r\n 13. void ZVaxpy21 ( int n, double y0[], double y1[],\r\n double alpha[], double x0[] ) ;\r\n This method computes the following.\r\n y0[] = y0[] + alpha[0:1] * x0[]\r\n y1[] = y1[] + alpha[2:3] * x0[]\r\n- Utilities : DRAFT August 3, 2025 11\r\n+ Utilities : DRAFT July 1, 2024 11\r\n 14. void ZVaxpy13 ( int n, double y0[],\r\n double alpha[], double x0[], double x1[], double x2[] ) ;\r\n This method computes the following.\r\n y0[] = y0[] + alpha[0:1] * x0[] + alpha[2:3] * x1[] + alpha[4:5] * x2[]\r\n 15. void ZVaxpy12 ( int n, double y0[], double alpha[], double x0[], double x1[] ) ;\r\n This method computes the following.\r\n y0[] = y0[] + alpha[0:1] * x0[] + alpha[2:3] * x1[]\r\n@@ -389,15 +389,15 @@\n This method \ufb01lls *prdot and *pidot with the real and imaginary parts of the indexed dot\r\n n\u22121\r\n product Xy[index[i]]\u2217x[i].\r\n i=0\r\n 22. int ZVdotU33 ( int n, double row0[], double row1[], double row2[],\r\n double col0[], double col1[], double col2[], double sums[] ) ;\r\n This method computes nine dot products.\r\n- 12 Utilities : DRAFT August 3, 2025\r\n+ 12 Utilities : DRAFT July 1, 2024\r\n n\u22121 n\u22121\r\n sums[0;1] = Xrow0[i]\u2217col0[i] sums[2 : 3] = Xrow0[i]\u2217col1[i]\r\n i=0 i=0\r\n n\u22121 n\u22121\r\n sums[4 : 5] = Xrow0[i]\u2217col2[i] sums[6 : 7] = Xrow1[i]\u2217col0[i]\r\n i=0 i=0\r\n n\u22121 n\u22121\r\n@@ -441,15 +441,15 @@\n i=0 i=0\r\n n\u22121 n\u22121\r\n sums[4 : 5] = Xrow0[i]\u2217col2[i] sums[6 : 7] = Xrow1[i]\u2217col0[i]\r\n i=0 i=0\r\n n\u22121 n\u22121\r\n sums[8 : 9] = Xrow1[i]\u2217col1[i] sums[10 : 11] = Xrow1[i]\u2217col2[i]\r\n i=0 i=0\r\n- Utilities : DRAFT August 3, 2025 13\r\n+ Utilities : DRAFT July 1, 2024 13\r\n 26. int ZVdotU22 ( int n, double row0[], double row1[],\r\n double col0[], double col1[], double sums[] ) ;\r\n This method computes four dot products.\r\n n\u22121 n\u22121\r\n sums[0 : 1] = Xrow0[i]\u2217col0[i] sums[2 : 3] = Xrow0[i]\u2217col1[i]\r\n i=0 i=0\r\n n\u22121 n\u22121\r\n@@ -483,15 +483,15 @@\n This method computes one dot product.\r\n n\u22121\r\n sums[0 : 1] = Xrow0[i]\u2217col0[i]\r\n i=0\r\n 31. int ZVdotC33 ( int n, double row0[], double row1[], double row2[],\r\n double col0[], double col1[], double col2[], double sums[] ) ;\r\n This method computes nine dot products.\r\n- 14 Utilities : DRAFT August 3, 2025\r\n+ 14 Utilities : DRAFT July 1, 2024\r\n n\u22121 n\u22121\r\n sums[0;1] = Xrow0[i]\u2217col0[i] sums[2 : 3] = Xrow0[i]\u2217col1[i]\r\n i=0 i=0\r\n n\u22121 n\u22121\r\n sums[4 : 5] = Xrow0[i]\u2217col2[i] sums[6 : 7] = Xrow1[i]\u2217col0[i]\r\n i=0 i=0\r\n n\u22121 n\u22121\r\n@@ -535,15 +535,15 @@\n i=0 i=0\r\n n\u22121 n\u22121\r\n sums[4 : 5] = Xrow0[i]\u2217col2[i] sums[6 : 7] = Xrow1[i]\u2217col0[i]\r\n i=0 i=0\r\n n\u22121 n\u22121\r\n sums[8 : 9] = Xrow1[i]\u2217col1[i] sums[10 : 11] = Xrow1[i]\u2217col2[i]\r\n i=0 i=0\r\n- Utilities : DRAFT August 3, 2025 15\r\n+ Utilities : DRAFT July 1, 2024 15\r\n 35. int ZVdotC22 ( int n, double row0[], double row1[],\r\n double col0[], double col1[], double sums[] ) ;\r\n This method computes four dot products.\r\n n\u22121 n\u22121\r\n sums[0 : 1] = Xrow0[i]\u2217col0[i] sums[2 : 3] = Xrow0[i]\u2217col1[i]\r\n i=0 i=0\r\n n\u22121 n\u22121\r\n@@ -578,15 +578,15 @@\n n\u22121\r\n sums[0 : 1] = Xrow0[i]\u2217col0[i]\r\n i=0\r\n 40. void ZVgather ( int n, double y[], double x[], int index[] ) ;\r\n y[i] = x[index[i]] for 0 <= i < n.\r\n 41. double ZVmaxabs ( int n, double y[] ) ;\r\n This method returns the maximum magnitude of entries in y[0:n-1].\r\n- 16 Utilities : DRAFT August 3, 2025\r\n+ 16 Utilities : DRAFT July 1, 2024\r\n 42. double ZVminabs ( int n, double y[] ) ;\r\n This method returns the minimum magnitude of entries in y[0:n-1].\r\n 43. void ZVscale ( int n, double y[], double areal, double aimag ) ;\r\n This method scales a vector y[] by (areal,aimag), i.e., y[i] *= (areal,aimag). for 0 <=\r\n i < n.\r\n 44. void ZVscale2 ( int n, double x[], double y[],\r\n double areal, double aimag, double breal, double bimag,\r\n@@ -609,15 +609,15 @@\n This is an allocator method for int vectors. Storage for an array with size n is found. A\r\n pointer to the array is returned. Note, on return, there will likely be garbage in the array.\r\n 3. void IVfree ( int vec[] ) ;\r\n This method releases the storage taken by vec[].\r\n 4. void IVfprintf ( FILE *fp, int n, int y[] ) ;\r\n This method prints n entries in y[] to \ufb01le fp. The format is new line followed by lines of \ufb01ve\r\n int\u2019s in \" %4d\" format.\r\n- Utilities : DRAFT August 3, 2025 17\r\n+ Utilities : DRAFT July 1, 2024 17\r\n 5. int IVfp80 ( FILE *fp, int n, int y[], int column, int *pierr ) ;\r\n Thismethodprintsnentriesiny[]to\ufb01lefp. Themethodsplicesvectorstogetherornaturally\r\n breaks the large vectors into lines. The column value is the present location. If the printed\r\n value of an array entry will not \ufb01t within the eighty columns of the present line, a newline\r\n character is written and the value starts a new line. The number of the present column in\r\n the line is returned. If *pierr < 0, an IO error has occured.\r\n 6. int IVfscanf ( FILE *fp, int n, int y[] ) ;\r\n@@ -645,15 +645,15 @@\n returns a location where target is found. If target is not in y[], -1 is returned.\r\n 14. int IVmax ( int n, int y[], int *ploc ) ;\r\n This method returns the maximum entry in y[0:n-1] and puts the \ufb01rst location where it\r\n was found into the address ploc.\r\n 15. int IVmaxabs ( int n, int y[], int *ploc ) ;\r\n This method returns the maximum magnitude of entries in y[0:n-1] and puts the \ufb01rst\r\n location where it was found into the address ploc.\r\n- 18 Utilities : DRAFT August 3, 2025\r\n+ 18 Utilities : DRAFT July 1, 2024\r\n 16. int IVmin ( int n, int y[], int *ploc ) ;\r\n This method returns the minimum entry in y[0:n-1] and puts the \ufb01rst location where it was\r\n found into the address ploc.\r\n 17. int IVminabs ( int n, int y[], int *ploc ) ;\r\n This method returns the minimum magnitude of entries in y[0:n-1] and puts the \ufb01rst loca-\r\n tion where it was found into the address ploc.\r\n 18. void IVperm ( int n, int y[], int index[] ) ;\r\n@@ -681,15 +681,15 @@\n 25. void IVshuffle ( int n, int y[], int seed ) ;\r\n This method shu\ufb04es the \ufb01rst n entries in y[]. The value seed is the seed to a random number\r\n generator, and one can get repeatable behavior by repeating seed.\r\n 1.2.5 FV : float vector methods\r\n 1. float * FVinit ( int n, float val ) ;\r\n This is the allocator and initializer method for float vectors. Storage for an array with size\r\n n is found and each entry is \ufb01lled with val. A pointer to the array is returned.\r\n- Utilities : DRAFT August 3, 2025 19\r\n+ Utilities : DRAFT July 1, 2024 19\r\n 2. float * FVinit2 ( int n ) ;\r\n This is an allocator method for float vectors. Storage for an array with size n is found. A\r\n pointer to the array is returned. Note, on return, there will likely be garbage in the array.\r\n 3. void FVfree ( int vec[] ) ;\r\n This method releases the storage taken by vec[].\r\n 4. void FVfprintf ( FILE *fp, int n, float y[] ) ;\r\n This method prints n entries in y[] to \ufb01le fp. The format is new line followed by lines of six\r\n@@ -716,15 +716,15 @@\n i=0\r\n 12. void FVfill ( int n, float y[], float val ) ;\r\n This method \ufb01lls n entries in y[] with val, i.e., y[i] = val for 0 <= i < n.\r\n 13. void FVgather ( int n, float y[], float x[], int index[] ) ;\r\n y[i] = x[index[i]] for 0 <= i < n.\r\n 14. void FVgatherAddZero ( int n, float y[], float x[], int index[] ) ;\r\n y[i] += x[index[i]] and x[index[i]] = 0 for 0 <= i < n.\r\n- 20 Utilities : DRAFT August 3, 2025\r\n+ 20 Utilities : DRAFT July 1, 2024\r\n 15. void FVgatherZero ( int n, float y[], float x[], int index[] ) ;\r\n y[i] = x[index[i]] and x[index[i]] = 0\r\n 16. void FVinvPerm ( int n, float y[], int index[] ) ;\r\n This method permutes the vector y as follows. i.e., y[index[i]] := y[i]. See FVperm() for\r\n a similar function.\r\n 17. float FVmax ( int n, float y[], int *ploc ) ;\r\n This method returns the maximum entry in y[0:n-1] and puts the \ufb01rst location where it\r\n@@ -751,15 +751,15 @@\n < n.\r\n 25. void FVscatterAddZero ( int n, float y[], int index[], float x[] ) ;\r\n This method scatters/adds n entries of x[] into y[] as follows, y[index[i]] += x[i] and\r\n x[i] for 0 <= i < n.\r\n 26. void FVscatterZero ( int n, float y[], int index[], float x[] ) ;\r\n This method scatters n entries of x[] into y[] as follows, y[index[i]] = x[i] and x[i] for\r\n 0 <= i < n.\r\n- Utilities : DRAFT August 3, 2025 21\r\n+ Utilities : DRAFT July 1, 2024 21\r\n 27. void FVsub ( int n, float y[], float x[] ) ;\r\n This method subtracts n entries from x[] to y[], i.e., y[i] -= x[i] for 0 <= i < n.\r\n 28. float FVsum ( int n, float y[] ) ;\r\n P\r\n This method returns the sum of the \ufb01rst n entries in the vector x[], i.e., return n\u22121x[i].\r\n i=0\r\n 29. float FVsumabs ( int n, float y[] ) ;\r\n@@ -787,15 +787,15 @@\n i.e., p vec[0] = vec, and p vec[i] = p vec[i-1] + sizes[i-1] for 0 < i < n.\r\n 1.2.7 PDV : double * vector methods\r\n 1. double ** PDVinit ( int n ) ;\r\n This is the allocator and initializer method for double* vectors. Storage for an array with\r\n size n is found and each entry is \ufb01lled with NULL. A pointer to the array is returned.\r\n 2. void PDVfree ( double **p_vec ) ;\r\n This method releases the storage taken by p vec[].\r\n- 22 Utilities : DRAFT August 3, 2025\r\n+ 22 Utilities : DRAFT July 1, 2024\r\n 3. void PDVcopy ( int n, double *p_y[], double *p_x[] ) ;\r\n This method copies n entries from p x[] to p y[], i.e., p y[i] = p x[i] for 0 <= i < n.\r\n 4. void PDVsetup ( int n, int sizes[], double vec[], double *p_vec[] ) ;\r\n This method sets the entries of p vec[] as pointers into vec[] given by the sizes[] vector,\r\n i.e., p vec[0] = vec, and p vec[i] = p vec[i-1] + sizes[i-1] for 0 < i < n.\r\n PIV : int * vector methods\r\n 1. int ** PIVinit ( int n ) ;\r\n@@ -815,15 +815,15 @@\n 2. void PFVfree ( float **p_vec ) ;\r\n This method releases the storage taken by p vec[].\r\n 3. void PFVcopy ( int n, float *p_y[], float *p_x[] ) ;\r\n This method copies n entries from p x[] to p y[], i.e., p y[i] = p x[i] for 0 <= i < n.\r\n 4. void PFVsetup ( int n, int sizes[], float vec[], float *p_vec[] ) ;\r\n This method sets the entries of p vec[] as pointers into vec[] given by the sizes[] vector,\r\n i.e., p vec[0] = vec, and p vec[i] = p vec[i-1] + sizes[i-1] for 0 < i < n.\r\n- Utilities : DRAFT August 3, 2025 23\r\n+ Utilities : DRAFT July 1, 2024 23\r\n 1.2.9 Sorting routines\r\n Validation routines\r\n 1. int IVisascending ( int n, int ivec[] ) ;\r\n int IVisdescending ( int n, int ivec[] ) ;\r\n These methods returns 1 if the array ivec[] is in ascending or descending order and returns\r\n 0 otherwise.\r\n 2. int DVisascending ( int n, double dvec[] ) ;\r\n@@ -852,15 +852,15 @@\n This sorts the array ivec[] into ascending or descending order using an insertion sort and\r\n permutes the double precision complex companion array dvec[] in the same fashion.\r\n 6. void IV2ZVisortUp ( int n, int ivec1[], int ivec2[], double dvec[] ) ;\r\n void IV2ZVisortDown ( int n, int ivec1[], int ivec2[], double dvec[] ) ;\r\n These methods sort the array ivec1[] into ascending or descending order using an insertion\r\n sort and permutes the companion arrays ivec2[] and dvec[] in the same fashion. The\r\n dvec[] array is double precision complex.\r\n- 24 Utilities : DRAFT August 3, 2025\r\n+ 24 Utilities : DRAFT July 1, 2024\r\n 7. void DVisortUp ( int n, double dvec[] ) ;\r\n void DVisortDown ( int n, double dvec[] ) ;\r\n These methods sort a double array into ascending or descending order using an insertion\r\n sort.\r\n 8. void DV2isortUp ( int n, double dvec1[], double dvec2[] ) ;\r\n void DV2isortDown ( int n, double dvec1[], double dvec2[] ) ;\r\n These methods sort the array dvec1[] into ascending or descending order using an insertion\r\n@@ -890,15 +890,15 @@\n These methods sort the array ivec[] into ascending or descending order using a quick sort\r\n and permutes the double precision complex companion array dvec[] in the same fashion.\r\n 6. void IV2ZVqsortUp ( int n, int ivec1[], int ivec2[], double dvec[] ) ;\r\n void IV2ZVqsortDown ( int n, int ivec1[], int ivec2[], double dvec[] ) ;\r\n These methods sort the array ivec1[] into ascending or descending order using a quick sort\r\n and permutes the companion arrays ivec2[] and dvec[] in the same fashion. The dvec[]\r\n array is double precision complex.\r\n- Utilities : DRAFT August 3, 2025 25\r\n+ Utilities : DRAFT July 1, 2024 25\r\n 7. void DVqsortUp ( int n, double dvec[] ) ;\r\n void DVqsortDown ( int n, double dvec[] ) ;\r\n Thes methods sort a double array into ascending or descending order using a quick sort.\r\n 8. void DV2qsortUp ( int n, double dvec1[], double dvec2[] ) ;\r\n void DV2qsortDown ( int n, double dvec1[], double dvec2[] ) ;\r\n These methods sort the array dvec1[] into ascending or descending order using a quick sort\r\n and permutes the companion array dvec2[] in the same fashion.\r\n@@ -928,15 +928,15 @@\n program exits.\r\n 4. int IV2sortUpAndCompress ( int n, int ivec1[], int ivec2[] ) ;\r\n This method sorts ivec1[] into ascending order with ivec2[] as a companion vector. It\r\n then compresses the pairs, dropping all but one of identical pairs. The return value is the\r\n number of unique entries stored in the leading locations of the vectors ivec1[] and ivec2[].\r\n Error checking: If n < 0, or if ivec1 or ivec2 is NULL, an error message is printed and the\r\n program exits.\r\n- 26 Utilities : DRAFT August 3, 2025\r\n+ 26 Utilities : DRAFT July 1, 2024\r\n 5. int IV2DVsortUpAndCompress ( int n, int ivec1[], int ivec2[], double dvec[] ) ;\r\n This method sorts ivec1[] into ascending order with ivec2[] and dvec[] as companion\r\n vectors. It then compresses the pairs, summing the dvec[] entries for identical (ivec1[],\r\n ivec2[]) pairs. The return value is the number of unique entries stored in the leading\r\n locations of the vectors ivec1[], ivec2[] and dvec[].\r\n Error checking: If n < 0, or if ivec1, ivec2 or dvec is NULL, an error message is printed and\r\n the program exits.\r\n@@ -965,15 +965,15 @@\n 2. void IP_free ( IP *ip ) ;\r\n This method releases the storage based at *ip.\r\n 3. void IP_fprintf ( FILE *fp, IP *ip ) ;\r\n This method prints the singly linked list that starts with ip.\r\n 4. int IP_fp80 ( FILE *fp, int n, int y[], int column, int *pierr ) ;\r\n This method prints the singly linked list that starts with ip. See IVfp80() for a description\r\n of how the entries are placed on a line.\r\n- Utilities : DRAFT August 3, 2025 27\r\n+ Utilities : DRAFT July 1, 2024 27\r\n 5. IP * IP_mergeUp ( IP *ip1, IP *ip2 ) ;\r\n This method merges two singly linked lists into one. If the two lists are in ascending order,\r\n the new list is also in ascending order. The head of the new list is returned.\r\n 6. IP * IP_mergeSortUp ( IP *ip ) ;\r\n This method sorts a list into ascending order using a merge sort.\r\n 7. IP * IP_radixSortUp ( IP *ip ) ;\r\n This method sorts a list into ascending order using a radix sort.\r\n@@ -1002,15 +1002,15 @@\n base[i].value1 = -1. The flag parameter determines how the next \ufb01eld is \ufb01lled.\r\n \u2022 If flag = I2OP NULL, the elements are not linked, i.e., ips[i].next = NULL for 0 <=\r\n i < n.\r\n \u2022 If flag = I2OP FORWARD,the elements are linked in a forward manner, i.e., ips[i].next\r\n = &ips[i+1] for 0 <= i < n-1 and ips[n-1].next = NULL.\r\n \u2022 If flag = I2OP BACKWARD,theelementsarelinkedinabackwardmanner,i.e., ips[i].next\r\n = &ips[i-1] for 0 < i < n and ips[0].next = NULL.\r\n- 28 Utilities : DRAFT August 3, 2025\r\n+ 28 Utilities : DRAFT July 1, 2024\r\n 3. void I2OP_free ( I2OP *i2op ) ;\r\n This method releases the storage based at *i2op.\r\n 4. void I2OP_fprintf ( FILE *fp, I2OP *i2op ) ;\r\n This method prints the singly linked list that starts with i2op.\r\n 1.3 Driver programs\r\n 1. test_sort msglvl msgFile target sortType n range mod seed\r\n This driver program tests the sort methods. Use the script \ufb01le do test sort for testing.\r\n@@ -1038,15 +1038,15 @@\n \u2022 Integer entries are of the form k mod mod, where k in [0,range].\r\n \u2022 The seed parameter is a random number seed.\r\n 2. test_sortUpAndCompress msglvl msgFile target n range mod seed\r\n This driver program tests the \u201csort in ascending order and compress\u201d methods. Use the script\r\n \ufb01le do test sortUpAndCompress for testing.\r\n \u2022 The msglvl parameter determines the amount of output. Use msglvl = 1 for just\r\n timing output.\r\n- Utilities : DRAFT August 3, 2025 29\r\n+ Utilities : DRAFT July 1, 2024 29\r\n \u2022 The msgFile parameter determines the message \ufb01le \u2014 if msgFile is stdout, then the\r\n message \ufb01le is stdout, otherwise a \ufb01le is opened with append status to receive any output\r\n data.\r\n \u2022 The target parameter denotes the type of vector(s) to be sorted.\r\n \u2013 IV \u2014 int vector sort\r\n \u2013 IV2 \u2014 (int, int) vector sort\r\n \u2013 IVDV \u2014 (int, double) vector sort\r\n@@ -1091,15 +1091,15 @@\n DVfree(), 3 FVaxpy(), 16\r\n DVfscanf(), 3 FVaxpyi(), 16\r\n DVgather(), 5 FVcompress(), 16\r\n DVgatherAddZero(), 5 FVcopy(), 17\r\n DVgatherZero(), 6 FVdot(), 17\r\n DVinit(), 2 FVfill(), 17\r\n 30\r\n- Utilities : DRAFT August 3, 2025 31\r\n+ Utilities : DRAFT July 1, 2024 31\r\n FVfprintf(), 16 IV2qsortDown(), 21\r\n FVfree(), 16 IV2qsortUp(), 21\r\n FVfscanf(), 16 IV2sortUpAndCompress(), 23\r\n FVgather(), 17 IV2ZVisortDown(), 21\r\n FVgatherAddZero(), 17 IV2ZVisortUp(), 21\r\n FVgatherZero(), 17 IV2ZVqsortDown(), 22\r\n FVinit(), 16 IV2ZVqsortUp(), 22\r\n@@ -1137,15 +1137,15 @@\n IV2DVisortDown(), 21 IVscatter(), 15\r\n IV2DVisortUp(), 21 IVshuffle(), 16\r\n IV2DVqsortDown(), 22 IVsortUpAndCompress(), 22\r\n IV2DVqsortUp(), 22 IVsum(), 15\r\n IV2DVsortUpAndCompress(), 23 IVsumabs(), 15\r\n IV2isortDown(), 20 IVswap(), 15\r\n IV2isortUp(), 20 IVzero(), 16\r\n- 32 Utilities : DRAFT August 3, 2025\r\n+ 32 Utilities : DRAFT July 1, 2024\r\n IVZVisortDown(), 21 ZVdotU23(), 10\r\n IVZVisortUp(), 21 ZVdotU31(), 9\r\n IVZVqsortDown(), 22 ZVdotU32(), 9\r\n IVZVqsortUp(), 22 ZVdotU33(), 9\r\n IVZVsortUpAndCompress(), 23 ZVfprintf(), 8\r\n ZVgather(), 13\r\n PCVcopy(), 19 ZVinit(), 7\r\n"}]}]}, {"source1": "./usr/share/doc/spooles-doc/ZV.ps.gz", "source2": "./usr/share/doc/spooles-doc/ZV.ps.gz", "unified_diff": null, "details": [{"source1": "ZV.ps", "source2": "ZV.ps", "unified_diff": "@@ -11,15 +11,15 @@\n %%EndComments\n %%BeginDefaults\n %%ViewingOrientation: 1 0 0 1\n %%EndDefaults\n %DVIPSWebPage: (www.radicaleye.com)\n %DVIPSCommandLine: dvips main -o ZV.ps\n %DVIPSParameters: dpi=600\n-%DVIPSSource: TeX output 2025.08.03:1317\n+%DVIPSSource: TeX output 2024.07.01:0700\n %%BeginProcSet: tex.pro 0 0\n %!\n /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S\n N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72\n mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0\n 0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{\n landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize\n@@ -2350,23 +2350,22 @@\n /UnderlinePosition -100 def\n /UnderlineThickness 50 def\n end readonly def\n /Encoding 256 array\n 0 1 255 {1 index exch /.notdef put} for\n dup 44 /comma put\n dup 48 /zero put\n+dup 49 /one put\n dup 50 /two put\n-dup 51 /three put\n-dup 53 /five put\n+dup 52 /four put\n dup 58 /colon put\n-dup 65 /A put\n-dup 103 /g put\n-dup 115 /s put\n-dup 116 /t put\n+dup 74 /J put\n+dup 108 /l put\n dup 117 /u put\n+dup 121 /y put\n readonly def\n currentdict end\n currentfile eexec\n D9D66F633B846AB284BCF8B0411B772DE5CE32340DC6F28AF40857E4451976E7\n 5182433CF9F333A38BD841C0D4E68BF9E012EB32A8FFB76B5816306B5EDF7C99\n 8B3A16D9B4BC056662E32C7CD0123DFAEB734C7532E64BBFBF5A60336E646716\n EFB852C877F440D329172C71F1E5D59CE9473C26B8AEF7AD68EF0727B6EC2E0C\n@@ -2547,79 +2546,67 @@\n 7CA1534C4D5B05FC33F83790ECFD7641DF3FB94289E2A1F6E7D29AB1228A867A\n 6E1EF0E9C6F899B491DC18401C2C0A05FFFED46A72C245F7529B8EA55A038082\n 8512307217D2A233C37004085BA3AEE379269F9FA7D0ADB4B19A95CC2AFE686E\n 55D88E47257C1FE6F235FEA295910569FE6DD5995512562359CC821E85A6C7A5\n 79B470A9E340A6985189FF8B6AF914A6B0ECF93F47903221F95DE894A8F05B05\n B7D99CD533EC5F931B18E6B39BECF67FA2D6DD1AEC76772B068BE06335A94C05\n 7A4DDEE77B66101DA855C17AC312600370B34E31F5EC3A01300A8EB60B4C9767\n-1B2FA10DF7E91D3BB34A1B1CE7A0015A57C813E0280D873ADB88440048702D1F\n-77994EE04EC3B4531D6E1888C86A8F0DA6CF1F056F16AB0DD76C862830F89DA4\n-28923B3AA543E0D6E41D3BD283E600BC11F889315EE92C675C109C81065ED1BC\n-82A5583D1B723D50051B0557A367887F5B263014C6E77288B4883C50889473D3\n-3787BAD4BEB88BD1353AFA5B73E61814819537E7FF09F53EF94792BB3DD36ED0\n-002D0E7A6CDAB85A9C17AF5664BCB5A71663B861880F3ECCABC8E7A2FC81A4CC\n-AE7A87503FDC1CE0077BA51ECC7B43B60793FED8E9AAD5BBD03ADD6183DCD26D\n-24A74163611C05562437644EF9B8889FD4F9D311911204FEFD35237486F2D2D0\n-B6783A03BF12EA6D19D6D0F87E4D08515F12F9CBF1961CAA71E0D69FE3C4C4D2\n-7C7FB64ED24F8684C8F00C2BEDEA53EA390CDC0B5BEBD7DD982580B2EA1F1F89\n-CFED5916630DC2BA32BB9180277E1ABC339B3B7DE086717BD93F7FF3681BA5B3\n-FCF671C4B293C2DE4A322F0AA3323A4934444C69F23EF90120B8755482757759\n-C457A435FB8BB4922BD92C5F3D9555D978275C510183E29DFF2FCE4ABBFC18DE\n-76CAD3B486BA12047DD808CD4D521A0FD368E4AE79DE262630983A5D6F0B679D\n-2F005306393C520E1B6987302D029939D94B0178DC55D5264E1FEA468AD4134C\n-8C65B2FBBE8DE8284E8E1F6BFE0B648F44D3DA8E9350D266EDBFD4A7054D9355\n-1E0B185DED37BCF32D3731358F1D707C94109428BAD3CEA456A2A43553E3D2C2\n-F549189201F3D3F715310E3E8C6A2E9AA5141AA9125D203694C7D875C2DD320F\n-C5BCDFC924F6C04DBC7A97349B45ECD0FBD7D2123ED1D3A9F440B1112BE62779\n-47A4592F9285CBD9635EC9091CEC0AFD7E6B6976974081DB9C0E43165BD8584D\n-6CDF08DED287F0883A9FBD351B3F8706BA1E94C7CA487338269482EB8DC1A05D\n-F6632A5D834DE29228C49C5BA65EF7C535A53B380BF4B391F43562147538EE97\n-E799DFC2C40315859F56BBCE9CAE1DF9293F6E2C193ABE7A724EC8F32FA220E7\n-6026877A63E318254F2AF7B1325D63FC4C52B536D3EF354814C2F8F1EEA30569\n-6EF04447DB0F809DF35B4985B9FB4F4BB6087310BE633E76F268B32ABA99CE8E\n-03163DFF4AEDB88E60DD0848C15E90026D7C24D81122EBC07113F9851914A9D5\n-D0E09C2BFDDAF10C5D8208E8329BC0C402F231CD84C95EFDD182AD9756662110\n-274650C7A5BB0D8EFA54EC6C5A49C0EB26701A54779AE8EFBBED824262761602\n-680EDFB38F0FE18C0F501F5AA8BF48A8F0DD3E5E1EBEB872F6F6B23964707B32\n-507FC677B9FDDC990E3828B06420F6F968B2F6AE81E76A2144B1ECE905485616\n-CFB29AC96DDE1F5039935D7E385CC13E34DD7EAF276A2EA3A8BF27FD4205AE13\n-7FE620E42F2CF231C6C8DD8EFC5A6CF081E5660D9ADD730D72D15C02B1E15FF3\n-D741D3B1EB1E666C4E562219033C1E2EF3F96E136998B2E1890395A3637A2C02\n-DE1C46AFCA8D898439F06606A2295D3F7ED6C7DB250C61B6B97A0D5EDDB9657E\n-E790B4E07540BB1026036F4A0D00E7F16FD757AD61D686620C6814B7DCEC43E8\n-FD36D9E75BA554F64548A67D9B0A26E11784E58D4357FC251D71B5D6D8BFDDE0\n-D3BF0E825DA5312C1904AF13C5905C2ADF79C357476183D2EC5A95243235E861\n-2F98D9EE77EF8F8CB3EC6BD358C5ED37DD3AF44D60575E7774BF96F1AE9DFAD1\n-F8646DEDF21D10311854726B8F7D25876BB1EF78E2442B16ED4B851816CF0A27\n-11FDFCE525002A1A7C3E62CD2A3EDE6FAADB026D2F3A46C030ADB22422CA8FF5\n-2545ED58C0D9FB5BDB55FE674301E91A75B005B86BD201D246F7ADACE50419FD\n-AC3312CAC5EB78A36F0E5F62E65AC92129CB574AAC59E0A7C1390DFC61F39D9E\n-D7036742F2F6E64D1EF8157E9CCF65F3EEDC6A8220235978B8E06EB80F649F3E\n-204CFB497F49306EA8E1F7B62305978A28F1E771ED82C6592C71022154E4062A\n-A92335EFC65D6DED9C686899FFD7AA2988740618C03C5E362E1AF352E3BE4602\n-5530C51E5FC8E9082DF79199CC91C50174000D337D86127AC807C5A3C81DDE57\n-7A68AEE7230949B925365C214D77C80E87CEE218ABC94023717EA43BA5D8A7C8\n-8A8B9BD1B767996AE33050E3D922ED0574E3579C57E4BDDAD35883806AFDF260\n-3AB5D83D451583262E580FFDB7A27D82396AF18D92B849A3F7A7E621987D5DF0\n-038F876C6E9CA47FB11AF05F0019191C5DDC5F0177AD421E94BC66D0CCB82F1F\n-93A80836284B095503752C600F72E2C89112ABFA5B76152691264103B268B3E5\n-8816724ADADB38740001A9AACE05C8AF02D72918606DC22EFC8BF0DA0FD12FFE\n-D3A09F8E28057F327BFB633E604B1EAD478637B1D9631650B314CC62D7E0E87F\n-9D3FE1FFA23BB6E3006C3E39BED52F6B0C1C651B5913878F36DA0BF776889165\n-68BA3456B40B8B471CA8FF5238E43D9113E052A2B8D2EAA2433D3F89FCA48AFB\n-5E842913E4ED6DF9623354059CD1F1707B126FED80349787C869883120183EDD\n-249185A55503FAC53898F52170D05CAC62BB742CF9702C0518AED6B27CDC401C\n-932E02143FD916703F360CB31049501B35EF3EDDFED791090D0CFA221FD1DB32\n-7D4759CE07983AE29C258C705D11E7D9481EEAAB9B6BA65CDCF0AA0057BD6FEA\n-ABBFBD3ABF2A7BFB550C3D2A16DC447384A89F3DB6D9C2DBDCA997ABE35A7706\n-633D328AECEDB5BD07070C1B96267FD73B45791DD18194F60D358091FBE88409\n-973529806F3D2C9E6E39091F90A14B560A987E0B9490B9B690FB489B8E253070\n-D7C54447BE0E0A0BFEAEFFB581DC1300E6EC382984673BF0665632404E59B5BF\n-5D5F0A1C956E618C0487751CA5DAE8A95C214F76ED756694EF273679CD2D85CB\n-949DF385BD50491649EFEFDA1574921D7460143D42A100D2C76E55F0BC\n+1B2FA10DF7E91D3BB34A1B1CE7A0015A57C813E0280D873ADB8844004B9BA1CC\n+580D3C6BDA4DC1B80B4365F1C80512453FC5316EC2D928FB731C3D6403E3C18B\n+E8424D644DF5E9A2134229C5C91CA68DB8E85BA2BB40F538F585DA6FA4037718\n+B8053EBBA1E765346BCD5BDAA6C38115D31611D8A87A2238C145F2DA2F92E4DF\n+3987BD9C4D2A3D460E8941A68B125BCD9EE4F9FD262C4C8A71F47A2C81975635\n+F1B981C274C53FA2ACCDE4C9D0A7C62D6C1EFF91CFC6712CA6A9F333C9564FCB\n+2A70F0AD715A79B10A08AB069E2A3C93BC0AED19D0CA10134B8DDDE8AF548DB2\n+3A4AAA9C29682CF135BB767DAA16169A127EB50A7EECEB6480CF56A7D0F8AC56\n+4A5090B3D75A790372886AF568D94C8165975A05BFBFDF1FFBA45F70700BB9E0\n+57F3249EF9E9C8AD9CBCF6E4FD592DC4CDD2CC7C0BC3130C1059096C657BE453\n+A2CBACE93420210E27AF56CA229BD6D982FB68B3FDC6D44478B922C4231C47EE\n+E500232F6C11D92DEB955F66DF52B92B22E7352790CC2DCBAC53965D57AC2920\n+68B7D520DE25047146EFEB06B9AD4E2A94243C7E5239F0BC2FC312B16051D52C\n+0B92C217B6B42997321AE4F8BB066754B7AA3F15069EF59224E8A442CE471AA7\n+E8049A3DD9EDA09CCEE4998998661CF7DB35E952F6C65DAEB3013951C59F3E09\n+157F313B0237876E1C0190F0473819570B8C0205AADF05D787CC00979CFB327A\n+289382B22DDA6F12804ED0ED5B179E36A995A2A59E1B66E75130DBE9109C813B\n+94403E0DEA8314A1E9DB474D7FA83C0BAFD08033E6A6215844C1D26BE15F1251\n+A1605E8DF9A9C601ED37379530BC1C82BE5463C6C711C5652BFD6262485AA9CA\n+B8C4A117593001D08D980041E2A83C190DCE8E6CD3D334E5CC19FC05DB30F7F7\n+24A305C4DBB31F0651392B99D44B4302333BDF7E326FD256DD75D309C6E73F85\n+FA71B35FD1F9BEFF4C7A1076362EEB0A85492933B6006086A7B8C1928CF2D1EE\n+FD4344409257BB802C117E739960821CD3C88BFBA5669FF16F610AD638AF3677\n+8674C985E6767253ED5769F71BEA5E9BB02A751F9E62EE2B18AC19D975FDEAE9\n+8B8822367FF177A7E850766DE99ED3366D46464612926430012212A90F8E85F4\n+4760B40D5B86B90819EE410382D22D8ED82D0B0AB00C93E10CD365F8766D1C87\n+B4A866021FB6F6AC3D250CC601989B1B8FE6B1098A48282D2CF258BF38FEE940\n+CE0141FB1344156DE7712A8F2DBF700174F12616EE17C852210D96D03E5E6635\n+D439EB6E84A383DDD32AD72DADE6F931FDBABBDC726C36081C96018FC95EAE13\n+DA1F8DBC2D8355AC9792649653225393F4A7A88F3B9443FEEB75E2C15BF93F09\n+CCBA7FABC022BE26F4C28152D5DA6D690494AD4EC0DA1B598AE12536BADF88B5\n+5E20EB452546389F57FF55459567B453AE1831C57D22FA6A4FDF441EDAFDB7FB\n+4F4B707C1FF9159C40F7B5DD519FC07815EE91B8D756B6C18500BCF47D0D9E45\n+6A2D51B6AA5AEAAC9AB2DEF7F0FDE957B6C179CBADEECAC7E9CEC248AB135EB4\n+FBF83D002FF859B574EF36C371540EF2BCFCEF5C2E7863AEDD7C3C965103453B\n+023A9CEC1D5C45B88827ADF4AE0C6746F3C7E6A944427DAEC493601019583A16\n+0F846CE00EAE89EEFF9CE68A0E1D6EBB8FDD8A45D1BF399B36A8328EC957CB8B\n+D842A56269C8C9A6B472C9E65BCBC090606B4E8A7EF4ABDEA120C9F9B3969A1C\n+2EB102925F4E155160E58000E1ADB0D19E10EFD96F6C3225EEE8FC24D122C069\n+C11F1A69DC383F7DACD2F3929BD135CE69787C6E7560AC4B683FE5D9AAFD2E89\n+EE6D95E38C9B726B416E28169A11E29559DBA9AECD714CF318FCB78F34A0E562\n+9C00FE0C6D5A848557D9A82EC2BEFCD30B5EDC0B23C5BA9F812C864394C8B9D1\n+B08BAC9CF94E70FF842306ACCFE6E39A56777C712904A3AB29FBD19275E19E06\n+B35B37CFFFCEC81CAF2D85A853663FAFCFFED1EA77064AA28C15BC94910683BC\n+D09513079DE9EE18E97CC2403DD206516D7F652A3459870757F34EEDCEF952C3\n+FE8004F4716B5BD6774E455010B0BB1E61FCD66B9F14F9BBCCF3E55A158EE96E\n+9A05BDFDDC7706D4BC28FDDC4004EF3A430C607EBDF115E0C996454D70C8BB42\n+D7C83A454B116663D648C23CE2B33365810DE2B64D4AE011BC8043BC3E05B94D\n+1700F859C6AFC6515C1C42FA104EE3E8F3FA5F80252C2E79B00ED27F675FFD09\n+B50BF7A3C63CF4856F909DF969D7DD3EA05CABDD1E71A58CFC2AB5F614B4E5E0\n+25CF92E9FB66ACEBE05DF5E033DA8AD3EE32D94C02D98DD7DA99FAB5AEA595C3\n+2987DC122F0242D76B782349E4069DE0CDD6EF4375C680CBFE4C8F24F2AE89BF\n+7785F5EA7435A91500F265022C307E8ADEAAE1C6\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n@@ -4002,19 +3989,19 @@\n /Fb 235[71 20[{}1 90.9091 /CMSY10 rf /Fc 206[35 35 48[{}2\n 66.4176 /CMR8 rf /Fd 133[50 59 4[44 44 46 2[56 62 93\n 31 2[31 62 2[51 62 50 1[54 11[86 5[84 5[42 6[80 12[56\n 56 56 56 56 2[31 46[{}25 99.6264 /CMBX12 rf /Fe 139[62\n 4[62 4[62 4[62 1[62 62 7[62 3[62 86[{}8 119.552 /CMTT12\n rf /Ff 138[49 30 37 38 1[46 46 51 74 23 42 1[28 46 42\n 1[42 46 42 42 46 12[65 1[66 11[59 62 69 2[68 6[28 58[{}25\n-90.9091 /CMTI10 rf /Fg 138[51 35 36 11[45 37[68 6[25\n-4[45 1[45 45 1[45 3[25 44[{}11 90.9091 /CMSL10 rf /Fh\n-134[71 2[71 75 52 53 55 1[75 67 75 112 3[37 75 67 41\n-61 75 60 1[65 13[75 2[92 11[103 16[67 67 67 2[37 46[{}25\n-119.552 /CMBX12 rf\n+90.9091 /CMTI10 rf /Fg 134[48 3[51 8[25 33[47 15[25 5[45\n+1[45 45 45 3[25 44[{}10 90.9091 /CMSL10 rf /Fh 134[71\n+2[71 75 52 53 55 1[75 67 75 112 3[37 75 67 41 61 75 60\n+1[65 13[75 2[92 11[103 16[67 67 67 2[37 46[{}25 119.552\n+/CMBX12 rf\n %DVIPSBitmapFont: Fi tcrm1095 10.95 2\n [/Grave/Acute/Circumflex/Tilde/Dieresis/Hungarumlaut/Ring/Caron/Breve/Macron\n /Dotaccent/cedilla/ogonek/quotesinglbase.ts1 4{/.notdef}repeat\n /quotedblbase.ts1/.notdef/.notdef/twelveudash/threequartersemdash\n /afii61664.cap/arrowleft/arrowright/tieaccentlowercase/tieaccentcapital\n /tieaccentlowercase.new/tieaccentcapital.new/.notdef/afii61664.asc/uni2422 3\n {/.notdef}repeat/dollar/.notdef/.notdef/quotesingle/.notdef/.notdef\n@@ -4130,17 +4117,17 @@\n (oin)m(ter)g(to)h(the)g(base)f(arra)m(y)h(from)f(the)g\n Fj(ZV)g Fk(ob)5 b(ject.)41 b(On)29 b(the)g(other)h(hand,)e(the)i(con)m\n (v)m(enience)0 4867 y(mak)m(es)h(it)g(a)g(widely)f(used)g(ob)5\n b(ject.)0 5179 y Fh(1.1)135 b(Data)46 b(Structure)0 5407\n y Fk(The)30 b Fj(ZV)g Fk(structure)g(has)g(three)g(\\014elds.)1927\n 5656 y(1)p eop end\n %%Page: 2 2\n-TeXDict begin 2 1 bop 0 100 a Fk(2)p 136 100 1223 4 v\n-1404 w Fj(ZV)30 b Fg(:)h Ff(DRAFT)f Fg(August)g(3,)h(2025)p\n-2678 100 V 137 399 a Fi(\\210)45 b Fj(int)i(size)29 b\n+TeXDict begin 2 1 bop 0 100 a Fk(2)p 136 100 1280 4 v\n+1462 w Fj(ZV)30 b Fg(:)g Ff(DRAFT)h Fg(July)e(1,)i(2024)p\n+2620 100 V 137 399 a Fi(\\210)45 b Fj(int)i(size)29 b\n Fk(:)41 b(presen)m(t)30 b(size)i(of)e(the)h(v)m(ector.)137\n 595 y Fi(\\210)45 b Fj(int)i(maxsize)29 b Fk(:)40 b(maxim)m(um)30\n b(size)i(of)e(the)h(v)m(ector.)137 791 y Fi(\\210)45 b\n Fj(int)i(owned)27 b Fk(:)40 b(o)m(wner)28 b(\\015ag)h(for)f(the)h(data.)\n 41 b(When)28 b Fj(owned)46 b(=)i(1)p Fk(,)28 b(storage)i(for)f\n Fj(owned)e(double)p Fk('s)f(has)j(b)s(een)227 904 y(allo)s(cated)k(b)m\n (y)d(this)h(ob)5 b(ject)31 b(and)f(can)h(b)s(e)f(free'd)g(b)m(y)h(the)f\n@@ -4195,17 +4182,17 @@\n (storage)i(b)m(y)d(a)i(call)g(to)f Fj(ZV)p 2148 5140\n V 34 w(clearData\\(\\))d Fk(then)i(free's)h(the)g(storage)h(for)f(the)227\n 5253 y(structure)h(with)g(a)h(call)h(to)f Fj(free\\(\\))p\n Fk(.)227 5407 y Ff(Err)-5 b(or)34 b(che)-5 b(cking:)40\n b Fk(If)30 b Fj(zv)g Fk(is)h Fj(NULL)e Fk(an)h(error)g(message)h(is)g\n (prin)m(ted)f(and)g(the)g(program)g(exits.)p eop end\n %%Page: 3 3\n-TeXDict begin 3 2 bop 91 100 1223 4 v 1404 100 a Fj(ZV)30\n-b Fg(:)g Ff(DRAFT)121 b Fg(August)31 b(3,)g(2025)p 2631\n-100 V 1223 w Fk(3)0 399 y Fd(1.2.2)112 b(Instance)38\n+TeXDict begin 3 2 bop 91 100 1280 4 v 1462 100 a Fj(ZV)29\n+b Fg(:)i Ff(DRAFT)121 b Fg(July)30 b(1,)h(2024)p 2573\n+100 V 1280 w Fk(3)0 399 y Fd(1.2.2)112 b(Instance)38\n b(metho)s(ds)0 591 y Fk(These)33 b(metho)s(d)f(allo)m(w)j(access)g(to)e\n (information)h(in)f(the)g(data)h(\\014elds)e(without)i(explicitly)g\n (follo)m(wing)h(p)s(oin)m(ters.)0 704 y(There)g(is)h(o)m(v)m(erhead)h\n (in)m(v)m(olv)m(ed)h(with)d(these)h(metho)s(d)g(due)f(to)h(the)g\n (function)g(call)h(and)e(error)h(c)m(hec)m(king)h(inside)0\n 817 y(the)31 b(metho)s(ds.)111 1029 y(1.)46 b Fj(int)h(ZV_owned)f(\\()h\n (ZV)g(*zv)g(\\))h(;)227 1176 y Fk(This)24 b(metho)s(d)g(returns)g(the)g\n@@ -4269,17 +4256,17 @@\n Fk(with)i(the)g(size)h(of)f(the)g(v)m(ector)h(and)e Fj(**pentries)e\n Fk(with)j(the)g(base)g(address)227 5148 y(of)e(the)f(v)m(ector.)227\n 5294 y Ff(Err)-5 b(or)27 b(che)-5 b(cking:)36 b Fk(If)22\n b Fj(zv)p Fk(,)i Fj(psize)d Fk(or)h Fj(pentries)e Fk(is)i\n Fj(NULL)p Fk(,)g(an)g(error)g(message)i(is)e(prin)m(ted)g(and)g(the)g\n (program)227 5407 y(exits.)p eop end\n %%Page: 4 4\n-TeXDict begin 4 3 bop 0 100 a Fk(4)p 136 100 1223 4 v\n-1404 w Fj(ZV)30 b Fg(:)h Ff(DRAFT)f Fg(August)g(3,)h(2025)p\n-2678 100 V 111 399 a Fk(8.)46 b Fj(void)h(ZV_setEntry)e(\\()i(ZV)g(*zv,)\n+TeXDict begin 4 3 bop 0 100 a Fk(4)p 136 100 1280 4 v\n+1462 w Fj(ZV)30 b Fg(:)g Ff(DRAFT)h Fg(July)e(1,)i(2024)p\n+2620 100 V 111 399 a Fk(8.)46 b Fj(void)h(ZV_setEntry)e(\\()i(ZV)g(*zv,)\n g(int)g(loc,)f(double)h(real,)f(double)g(imag)h(\\))g(;)227\n 551 y Fk(This)30 b(metho)s(d)g(sets)g(the)h Fj(loc)p\n Fk('th)f(en)m(try)g(of)h(the)f(v)m(ector)i(to)f Fj(\\(real,imag\\))p\n Fk(.)227 704 y Ff(Err)-5 b(or)33 b(che)-5 b(cking:)40\n b Fk(If)28 b Fj(zv)h Fk(is)g Fj(NULL)e Fk(or)j Fj(loc)46\n b(<)i(0)p Fk(,)29 b(an)g(error)g(message)h(is)f(prin)m(ted)f(and)h(the)\n g(program)g(exits.)0 978 y Fd(1.2.3)112 b(Initializer)38\n@@ -4355,17 +4342,17 @@\n 5294 y Ff(Err)-5 b(or)37 b(che)-5 b(cking:)46 b Fk(If)33\n b Fj(zv)g Fk(is)g Fj(NULL)p Fk(,)f(or)i Fj(newsize)46\n b(<)h(0)p Fk(,)34 b(or)f(if)h Fj(0)47 b(<)h(maxsize)d(<)j(newsize)31\n b Fk(and)i Fj(owned)46 b(=)227 5407 y(0)p Fk(,)31 b(an)f(error)g\n (message)h(is)g(prin)m(ted)f(and)f(the)i(program)f(exits.)p\n eop end\n %%Page: 5 5\n-TeXDict begin 5 4 bop 91 100 1223 4 v 1404 100 a Fj(ZV)30\n-b Fg(:)g Ff(DRAFT)121 b Fg(August)31 b(3,)g(2025)p 2631\n-100 V 1223 w Fk(5)0 399 y Fd(1.2.4)112 b(Utilit)m(y)38\n+TeXDict begin 5 4 bop 91 100 1280 4 v 1462 100 a Fj(ZV)29\n+b Fg(:)i Ff(DRAFT)121 b Fg(July)30 b(1,)h(2024)p 2573\n+100 V 1280 w Fk(5)0 399 y Fd(1.2.4)112 b(Utilit)m(y)38\n b(metho)s(ds)111 607 y Fk(1.)46 b Fj(void)h(ZV_shiftBase)d(\\()k(ZV)f\n (*zv,)g(int)g(offset)f(\\))h(;)227 770 y Fk(This)32 b(metho)s(d)h\n (shifts)f(the)i(base)f(en)m(tries)g(of)h(the)f(v)m(ector)h(and)f\n (decremen)m(ts)g(the)g(presen)m(t)g(size)h(and)f(max-)227\n 883 y(im)m(um)g(size)g(of)g(the)f(v)m(ector)j(b)m(y)d\n Fj(offset)p Fk(.)46 b(This)31 b(is)i(a)g(dangerous)f(metho)s(d)g(to)h\n (use)g(b)s(ecause)f(the)h(state)h(of)227 996 y(the)j(v)m(ector)h(is)e\n@@ -4425,17 +4412,17 @@\n b(The)24 b(n)m(um)m(b)s(er)f(of)i(en)m(tries)g(that)g(are)g(copied)g\n (is)g(the)f(smaller)227 5244 y(of)31 b(the)f(t)m(w)m(o)i(sizes.)227\n 5407 y Ff(Err)-5 b(or)34 b(che)-5 b(cking:)40 b Fk(If)30\n b Fj(zv1)g Fk(or)g Fj(zv2)g Fk(is)g Fj(NULL)p Fk(,)g(an)g(error)g\n (message)h(is)g(prin)m(ted)f(and)f(the)i(program)f(exits.)p\n eop end\n %%Page: 6 6\n-TeXDict begin 6 5 bop 0 100 a Fk(6)p 136 100 1223 4 v\n-1404 w Fj(ZV)30 b Fg(:)h Ff(DRAFT)f Fg(August)g(3,)h(2025)p\n-2678 100 V 111 399 a Fk(8.)46 b Fj(void)h(ZV_log10profile)d(\\()j(ZV)g\n+TeXDict begin 6 5 bop 0 100 a Fk(6)p 136 100 1280 4 v\n+1462 w Fj(ZV)30 b Fg(:)g Ff(DRAFT)h Fg(July)e(1,)i(2024)p\n+2620 100 V 111 399 a Fk(8.)46 b Fj(void)h(ZV_log10profile)d(\\()j(ZV)g\n (*zv,)g(int)g(npts,)f(DV)h(*xDV,)g(DV)g(*yDV,)f(double)g(tausmall,)1325\n 511 y(double)g(taubig,)g(int)h(*pnzero,)e(int)i(*pnsmall,)f(int)g\n (*pnbig)h(\\))g(;)227 660 y Fk(This)34 b(metho)s(d)f(scans)i(the)f(en)m\n (tries)h(in)f(the)g Fj(ZV)g Fk(ob)5 b(ject)35 b(and)f(\\014lls)g\n Fj(xDV)f Fk(and)h Fj(yDV)f Fk(with)h(data)h(that)g(allo)m(ws)227\n 773 y(a)c(simple)f(log)703 795 y Fc(10)808 773 y Fk(distribution)f\n (plot.)41 b(Only)29 b(en)m(tries)i(whose)f(magnitudes)g(lie)h(in)e(the)\n@@ -4517,17 +4504,17 @@\n 5259 y(the)j(v)-5 b(alue)31 b Fj(1)f Fk(is)g(returned.)40\n b(If)30 b(an)g(IO)g(error)g(is)g(encoun)m(tered)h(from)f\n Fj(fprintf)p Fk(,)e(zero)k(is)e(returned.)227 5407 y\n Ff(Err)-5 b(or)34 b(che)-5 b(cking:)40 b Fk(If)30 b Fj(zv)g\n Fk(or)g Fj(fp)g Fk(are)h Fj(NULL)p Fk(,)e(an)i(error)f(message)h(is)g\n (prin)m(ted)f(and)f(zero)i(is)g(returned.)p eop end\n %%Page: 7 7\n-TeXDict begin 7 6 bop 91 100 1223 4 v 1404 100 a Fj(ZV)30\n-b Fg(:)g Ff(DRAFT)121 b Fg(August)31 b(3,)g(2025)p 2631\n-100 V 1223 w Fk(7)111 399 y(6.)46 b Fj(int)h(ZV_writeToBinaryFile)42\n+TeXDict begin 7 6 bop 91 100 1280 4 v 1462 100 a Fj(ZV)29\n+b Fg(:)i Ff(DRAFT)121 b Fg(July)30 b(1,)h(2024)p 2573\n+100 V 1280 w Fk(7)111 399 y(6.)46 b Fj(int)h(ZV_writeToBinaryFile)42\n b(\\()48 b(ZV)f(*zv,)g(FILE)f(*fp)h(\\))h(;)227 557 y Fk(This)27\n b(metho)s(d)f(writes)h(a)h Fj(ZV)e Fk(ob)5 b(ject)28\n b(to)g(a)f(binary)g(\\014le.)39 b(If)27 b(there)g(are)h(no)e(errors)h\n (in)g(writing)g(the)g(data,)i(the)227 670 y(v)-5 b(alue)31\n b Fj(1)f Fk(is)h(returned.)39 b(If)30 b(an)g(IO)g(error)g(is)h(encoun)m\n (tered)f(from)g Fj(fwrite)p Fk(,)f(zero)i(is)g(returned.)227\n 829 y Ff(Err)-5 b(or)34 b(che)-5 b(cking:)40 b Fk(If)30\n@@ -4583,17 +4570,17 @@\n 5140 y(data.)337 5294 y Fi(\\210)45 b Fk(The)29 b Fj(inFile)f\n Fk(parameter)j(is)e(the)h(name)g(of)g(the)g(\\014le)f(from)h(whic)m(h)f\n (to)h(read)g(in)f(the)h(ob)5 b(ject.)42 b Fj(inFile)427\n 5407 y Fk(m)m(ust)31 b(b)s(e)e(of)i(the)f(form)g Fj(*.zvf)f\n Fk(for)h(a)h(formatted)g(\\014le)g(or)f Fj(*.zvb)f Fk(for)h(a)h(binary)e\n (\\014le.)p eop end\n %%Page: 8 8\n-TeXDict begin 8 7 bop 0 100 a Fk(8)p 136 100 1223 4 v\n-1404 w Fj(ZV)30 b Fg(:)h Ff(DRAFT)f Fg(August)g(3,)h(2025)p\n-2678 100 V 337 399 a Fi(\\210)45 b Fk(The)40 b Fj(outFile)f\n+TeXDict begin 8 7 bop 0 100 a Fk(8)p 136 100 1280 4 v\n+1462 w Fj(ZV)30 b Fg(:)g Ff(DRAFT)h Fg(July)e(1,)i(2024)p\n+2620 100 V 337 399 a Fi(\\210)45 b Fk(The)40 b Fj(outFile)f\n Fk(parameter)i(is)g(the)g(name)g(of)f(the)h(\\014le)g(to)g(whic)m(h)g\n (to)g(write)g(out)g(the)g(ob)5 b(ject.)72 b(If)427 511\n y Fj(outfile)28 b Fk(is)j(of)f(the)g(form)g Fj(*.zvf)p\n Fk(,)f(the)h(ob)5 b(ject)31 b(is)f(written)g(to)h(a)f(formatted)h\n (\\014le.)41 b(If)30 b Fj(outfile)e Fk(is)i(of)427 624\n y(the)e(form)g Fj(*.zvb)p Fk(,)f(the)h(ob)5 b(ject)29\n b(is)f(written)g(to)h(a)f(binary)f(\\014le.)40 b(When)28\n", "details": [{"source1": "ps2ascii {}", "source2": "ps2ascii {}", "unified_diff": "@@ -22,15 +22,15 @@\n Onemustchoose where to use this object. There is a substantial performance penalty for doing the\r\n simplest operations, and so when we need to manipulate an double vector inside a loop, we extract\r\n out the size and pointer to the base array from the ZV object. On the other hand, the convenience\r\n makes it a widely used object.\r\n 1.1 Data Structure\r\n The ZV structure has three \ufb01elds.\r\n 1\r\n- 2 ZV : DRAFT August 3, 2025\r\n+ 2 ZV : DRAFT July 1, 2024\r\n \u2022 int size : present size of the vector.\r\n \u2022 int maxsize : maximum size of the vector.\r\n \u2022 int owned : owner \ufb02ag for the data. When owned = 1, storage for owned double\u2019s has been\r\n allocated by this object and can be free\u2019d by the object. When owned == 0 but size > 0 ,\r\n this object points to entries that have been allocated elsewhere, and these entries will not be\r\n free\u2019d by this object.\r\n \u2022 double *vec : pointer to the base address of the double vector\r\n@@ -54,15 +54,15 @@\n the storage for vec is free\u2019d by a call to ZVfree(). The structure\u2019s default \ufb01elds are then set\r\n with a call to ZV setDefaultFields().\r\n Error checking: If zv is NULL an error message is printed and the program exits.\r\n 4. void ZV_free ( ZV *zv ) ;\r\n This method releases any storage by a call to ZV clearData() then free\u2019s the storage for the\r\n structure with a call to free().\r\n Error checking: If zv is NULL an error message is printed and the program exits.\r\n- ZV : DRAFT August 3, 2025 3\r\n+ ZV : DRAFT July 1, 2024 3\r\n 1.2.2 Instance methods\r\n These method allow access to information in the data \ufb01elds without explicitly following pointers.\r\n There is overhead involved with these method due to the function call and error checking inside\r\n the methods.\r\n 1. int ZV_owned ( ZV *zv ) ;\r\n This method returns the value of owned. If owned > 0, then the object owns the data pointed\r\n to by vec and will free this data with a call to ZVfree() when its data is cleared by a call to\r\n@@ -91,15 +91,15 @@\n This method returns vec, a pointer to the base address of the vector.\r\n Error checking: If zv is NULL, an error message is printed and the program exits.\r\n 7. void ZV_sizeAndEntries ( ZV *zv, int *psize, double **pentries ) ;\r\n This method \ufb01lls *psize with the size of the vector and **pentries with the base address\r\n of the vector.\r\n Error checking: If zv, psize or pentriesis NULL, an error message is printed and the program\r\n exits.\r\n- 4 ZV : DRAFT August 3, 2025\r\n+ 4 ZV : DRAFT July 1, 2024\r\n 8. void ZV_setEntry ( ZV *zv, int loc, double real, double imag ) ;\r\n This method sets the loc\u2019th entry of the vector to (real,imag).\r\n Error checking: If zv is NULL or loc < 0, an error message is printed and the program exits.\r\n 1.2.3 Initializer methods\r\n There are three initializer methods.\r\n 1. void ZV_init ( ZV *zv, int size, double *entries ) ;\r\n This method initializes the object given a size for the vector and a possible pointer to the\r\n@@ -128,15 +128,15 @@\n Error checking: If zv is NULL or newmaxsize < 0, or if 0 < maxsize and owned == 0, an\r\n error message is printed and the program exits.\r\n 5. void ZV_setSize ( ZV *zv, int newsize ) ;\r\n This method sets the size of the vector. If newsize > maxsize, the length of the vector is\r\n increased with a call to ZV setMaxsize(). The size \ufb01eld is set to newsize.\r\n Error checking: If zv is NULL, or newsize < 0, or if 0 < maxsize < newsize and owned =\r\n 0, an error message is printed and the program exits.\r\n- ZV : DRAFT August 3, 2025 5\r\n+ ZV : DRAFT July 1, 2024 5\r\n 1.2.4 Utility methods\r\n 1. void ZV_shiftBase ( ZV *zv, int offset ) ;\r\n This method shifts the base entries of the vector and decrements the present size and max-\r\n imum size of the vector by offset. This is a dangerous method to use because the state of\r\n the vector is lost, namely vec, the base of the entries, is corrupted. If the object owns its\r\n entries and ZV free(), ZV setSize() or ZV setMaxsize() is called before the base has been\r\n shifted back to its original position, a segmentation violation will likely result. This is a very\r\n@@ -162,15 +162,15 @@\n This method \ufb01lls the vector with zeros.\r\n Error checking: If zv is NULL, an error message is printed and the program exits.\r\n 7. void ZV_copy ( ZV *zv1, ZV *zv2 ) ;\r\n This method \ufb01lls the zv1 object with entries in the iv2 object. Note, this is a mapped copy,\r\n zv1 and zv2 need not have the same size. The number of entries that are copied is the smaller\r\n of the two sizes.\r\n Error checking: If zv1 or zv2 is NULL, an error message is printed and the program exits.\r\n- 6 ZV : DRAFT August 3, 2025\r\n+ 6 ZV : DRAFT July 1, 2024\r\n 8. void ZV_log10profile ( ZV *zv, int npts, DV *xDV, DV *yDV, double tausmall,\r\n double taubig, int *pnzero, int *pnsmall, int *pnbig ) ;\r\n This method scans the entries in the ZV object and \ufb01lls xDV and yDV with data that allows\r\n a simple log10 distribution plot. Only entries whose magnitudes lie in the range [tausmall,\r\n taubig] contribute to the distribution. The number of entries whose magnitudes are zero,\r\n smaller than tausmall, or larger than taubig are placed into pnzero, *pnsmall and *pnbig,\r\n respectively. On return, the size of the xDV and yDV objects is npts.\r\n@@ -199,15 +199,15 @@\n and returns the value returned from the called routine.\r\n Error checking: If zv or fn are NULL, or if fn is not of the form *.zvf (for a formatted \ufb01le)\r\n or *.zvb (for a binary \ufb01le), an error message is printed and the method returns zero.\r\n 5. int ZV_writeToFormattedFile ( ZV *zv, FILE *fp ) ;\r\n This method writes a ZV object to a formatted \ufb01le. If there are no errors in writing the data,\r\n the value 1 is returned. If an IO error is encountered from fprintf, zero is returned.\r\n Error checking: If zv or fp are NULL, an error message is printed and zero is returned.\r\n- ZV : DRAFT August 3, 2025 7\r\n+ ZV : DRAFT July 1, 2024 7\r\n 6. int ZV_writeToBinaryFile ( ZV *zv, FILE *fp ) ;\r\n This method writes a ZV object to a binary \ufb01le. If there are no errors in writing the data, the\r\n value 1 is returned. If an IO error is encountered from fwrite, zero is returned.\r\n Error checking: If zv or fp are NULL, an error message is printed and zero is returned.\r\n 7. int ZV_writeForHumanEye ( ZV *zv, FILE *fp ) ;\r\n This method writes a ZV object to a \ufb01le in a human readable format. is called to write out\r\n the header and statistics. The entries of the vector then follow in eighty column format using\r\n@@ -232,15 +232,15 @@\n \u2022 The msglvl parameter determines the amount of output. Use msglvl = 1 for just\r\n timing output.\r\n \u2022 The msgFile parameter determines the message \ufb01le \u2014 if msgFile is stdout, then the\r\n message \ufb01le is stdout, otherwise a \ufb01le is opened with append status to receive any output\r\n data.\r\n \u2022 The inFile parameter is the name of the \ufb01le from which to read in the object. inFile\r\n must be of the form *.zvf for a formatted \ufb01le or *.zvb for a binary \ufb01le.\r\n- 8 ZV : DRAFT August 3, 2025\r\n+ 8 ZV : DRAFT July 1, 2024\r\n \u2022 The outFile parameter is the name of the \ufb01le to which to write out the object. If\r\n outfile is of the form *.zvf, the object is written to a formatted \ufb01le. If outfile is of\r\n the form *.zvb, the object is written to a binary \ufb01le. When outFile is not \"none\", the\r\n object is written to the \ufb01le in a human readable format. When outFile is \"none\", the\r\n object is not written out.\r\n Index\r\n ZV clearData(), 2\r\n"}]}]}, {"source1": "./usr/share/doc/spooles-doc/misc.ps.gz", "source2": "./usr/share/doc/spooles-doc/misc.ps.gz", "unified_diff": null, "details": [{"source1": "misc.ps", "source2": "misc.ps", "unified_diff": "@@ -11,15 +11,15 @@\n %%EndComments\n %%BeginDefaults\n %%ViewingOrientation: 1 0 0 1\n %%EndDefaults\n %DVIPSWebPage: (www.radicaleye.com)\n %DVIPSCommandLine: dvips main -o misc.ps\n %DVIPSParameters: dpi=600\n-%DVIPSSource: TeX output 2025.08.03:1317\n+%DVIPSSource: TeX output 2024.07.01:0700\n %%BeginProcSet: tex.pro 0 0\n %!\n /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S\n N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72\n mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0\n 0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{\n landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize\n@@ -2250,23 +2250,22 @@\n /UnderlinePosition -100 def\n /UnderlineThickness 50 def\n end readonly def\n /Encoding 256 array\n 0 1 255 {1 index exch /.notdef put} for\n dup 44 /comma put\n dup 48 /zero put\n+dup 49 /one put\n dup 50 /two put\n-dup 51 /three put\n-dup 53 /five put\n+dup 52 /four put\n dup 58 /colon put\n-dup 65 /A put\n-dup 103 /g put\n-dup 115 /s put\n-dup 116 /t put\n+dup 74 /J put\n+dup 108 /l put\n dup 117 /u put\n+dup 121 /y put\n readonly def\n currentdict end\n currentfile eexec\n D9D66F633B846AB284BCF8B0411B772DE5CE32340DC6F28AF40857E4451976E7\n 5182433CF9F333A38BD841C0D4E68BF9E012EB32A8FFB76B5816306B5EDF7C99\n 8B3A16D9B4BC056662E32C7CD0123DFAEB734C7532E64BBFBF5A60336E646716\n EFB852C877F440D329172C71F1E5D59CE9473C26B8AEF7AD68EF0727B6EC2E0C\n@@ -2447,79 +2446,67 @@\n 7CA1534C4D5B05FC33F83790ECFD7641DF3FB94289E2A1F6E7D29AB1228A867A\n 6E1EF0E9C6F899B491DC18401C2C0A05FFFED46A72C245F7529B8EA55A038082\n 8512307217D2A233C37004085BA3AEE379269F9FA7D0ADB4B19A95CC2AFE686E\n 55D88E47257C1FE6F235FEA295910569FE6DD5995512562359CC821E85A6C7A5\n 79B470A9E340A6985189FF8B6AF914A6B0ECF93F47903221F95DE894A8F05B05\n B7D99CD533EC5F931B18E6B39BECF67FA2D6DD1AEC76772B068BE06335A94C05\n 7A4DDEE77B66101DA855C17AC312600370B34E31F5EC3A01300A8EB60B4C9767\n-1B2FA10DF7E91D3BB34A1B1CE7A0015A57C813E0280D873ADB88440048702D1F\n-77994EE04EC3B4531D6E1888C86A8F0DA6CF1F056F16AB0DD76C862830F89DA4\n-28923B3AA543E0D6E41D3BD283E600BC11F889315EE92C675C109C81065ED1BC\n-82A5583D1B723D50051B0557A367887F5B263014C6E77288B4883C50889473D3\n-3787BAD4BEB88BD1353AFA5B73E61814819537E7FF09F53EF94792BB3DD36ED0\n-002D0E7A6CDAB85A9C17AF5664BCB5A71663B861880F3ECCABC8E7A2FC81A4CC\n-AE7A87503FDC1CE0077BA51ECC7B43B60793FED8E9AAD5BBD03ADD6183DCD26D\n-24A74163611C05562437644EF9B8889FD4F9D311911204FEFD35237486F2D2D0\n-B6783A03BF12EA6D19D6D0F87E4D08515F12F9CBF1961CAA71E0D69FE3C4C4D2\n-7C7FB64ED24F8684C8F00C2BEDEA53EA390CDC0B5BEBD7DD982580B2EA1F1F89\n-CFED5916630DC2BA32BB9180277E1ABC339B3B7DE086717BD93F7FF3681BA5B3\n-FCF671C4B293C2DE4A322F0AA3323A4934444C69F23EF90120B8755482757759\n-C457A435FB8BB4922BD92C5F3D9555D978275C510183E29DFF2FCE4ABBFC18DE\n-76CAD3B486BA12047DD808CD4D521A0FD368E4AE79DE262630983A5D6F0B679D\n-2F005306393C520E1B6987302D029939D94B0178DC55D5264E1FEA468AD4134C\n-8C65B2FBBE8DE8284E8E1F6BFE0B648F44D3DA8E9350D266EDBFD4A7054D9355\n-1E0B185DED37BCF32D3731358F1D707C94109428BAD3CEA456A2A43553E3D2C2\n-F549189201F3D3F715310E3E8C6A2E9AA5141AA9125D203694C7D875C2DD320F\n-C5BCDFC924F6C04DBC7A97349B45ECD0FBD7D2123ED1D3A9F440B1112BE62779\n-47A4592F9285CBD9635EC9091CEC0AFD7E6B6976974081DB9C0E43165BD8584D\n-6CDF08DED287F0883A9FBD351B3F8706BA1E94C7CA487338269482EB8DC1A05D\n-F6632A5D834DE29228C49C5BA65EF7C535A53B380BF4B391F43562147538EE97\n-E799DFC2C40315859F56BBCE9CAE1DF9293F6E2C193ABE7A724EC8F32FA220E7\n-6026877A63E318254F2AF7B1325D63FC4C52B536D3EF354814C2F8F1EEA30569\n-6EF04447DB0F809DF35B4985B9FB4F4BB6087310BE633E76F268B32ABA99CE8E\n-03163DFF4AEDB88E60DD0848C15E90026D7C24D81122EBC07113F9851914A9D5\n-D0E09C2BFDDAF10C5D8208E8329BC0C402F231CD84C95EFDD182AD9756662110\n-274650C7A5BB0D8EFA54EC6C5A49C0EB26701A54779AE8EFBBED824262761602\n-680EDFB38F0FE18C0F501F5AA8BF48A8F0DD3E5E1EBEB872F6F6B23964707B32\n-507FC677B9FDDC990E3828B06420F6F968B2F6AE81E76A2144B1ECE905485616\n-CFB29AC96DDE1F5039935D7E385CC13E34DD7EAF276A2EA3A8BF27FD4205AE13\n-7FE620E42F2CF231C6C8DD8EFC5A6CF081E5660D9ADD730D72D15C02B1E15FF3\n-D741D3B1EB1E666C4E562219033C1E2EF3F96E136998B2E1890395A3637A2C02\n-DE1C46AFCA8D898439F06606A2295D3F7ED6C7DB250C61B6B97A0D5EDDB9657E\n-E790B4E07540BB1026036F4A0D00E7F16FD757AD61D686620C6814B7DCEC43E8\n-FD36D9E75BA554F64548A67D9B0A26E11784E58D4357FC251D71B5D6D8BFDDE0\n-D3BF0E825DA5312C1904AF13C5905C2ADF79C357476183D2EC5A95243235E861\n-2F98D9EE77EF8F8CB3EC6BD358C5ED37DD3AF44D60575E7774BF96F1AE9DFAD1\n-F8646DEDF21D10311854726B8F7D25876BB1EF78E2442B16ED4B851816CF0A27\n-11FDFCE525002A1A7C3E62CD2A3EDE6FAADB026D2F3A46C030ADB22422CA8FF5\n-2545ED58C0D9FB5BDB55FE674301E91A75B005B86BD201D246F7ADACE50419FD\n-AC3312CAC5EB78A36F0E5F62E65AC92129CB574AAC59E0A7C1390DFC61F39D9E\n-D7036742F2F6E64D1EF8157E9CCF65F3EEDC6A8220235978B8E06EB80F649F3E\n-204CFB497F49306EA8E1F7B62305978A28F1E771ED82C6592C71022154E4062A\n-A92335EFC65D6DED9C686899FFD7AA2988740618C03C5E362E1AF352E3BE4602\n-5530C51E5FC8E9082DF79199CC91C50174000D337D86127AC807C5A3C81DDE57\n-7A68AEE7230949B925365C214D77C80E87CEE218ABC94023717EA43BA5D8A7C8\n-8A8B9BD1B767996AE33050E3D922ED0574E3579C57E4BDDAD35883806AFDF260\n-3AB5D83D451583262E580FFDB7A27D82396AF18D92B849A3F7A7E621987D5DF0\n-038F876C6E9CA47FB11AF05F0019191C5DDC5F0177AD421E94BC66D0CCB82F1F\n-93A80836284B095503752C600F72E2C89112ABFA5B76152691264103B268B3E5\n-8816724ADADB38740001A9AACE05C8AF02D72918606DC22EFC8BF0DA0FD12FFE\n-D3A09F8E28057F327BFB633E604B1EAD478637B1D9631650B314CC62D7E0E87F\n-9D3FE1FFA23BB6E3006C3E39BED52F6B0C1C651B5913878F36DA0BF776889165\n-68BA3456B40B8B471CA8FF5238E43D9113E052A2B8D2EAA2433D3F89FCA48AFB\n-5E842913E4ED6DF9623354059CD1F1707B126FED80349787C869883120183EDD\n-249185A55503FAC53898F52170D05CAC62BB742CF9702C0518AED6B27CDC401C\n-932E02143FD916703F360CB31049501B35EF3EDDFED791090D0CFA221FD1DB32\n-7D4759CE07983AE29C258C705D11E7D9481EEAAB9B6BA65CDCF0AA0057BD6FEA\n-ABBFBD3ABF2A7BFB550C3D2A16DC447384A89F3DB6D9C2DBDCA997ABE35A7706\n-633D328AECEDB5BD07070C1B96267FD73B45791DD18194F60D358091FBE88409\n-973529806F3D2C9E6E39091F90A14B560A987E0B9490B9B690FB489B8E253070\n-D7C54447BE0E0A0BFEAEFFB581DC1300E6EC382984673BF0665632404E59B5BF\n-5D5F0A1C956E618C0487751CA5DAE8A95C214F76ED756694EF273679CD2D85CB\n-949DF385BD50491649EFEFDA1574921D7460143D42A100D2C76E55F0BC\n+1B2FA10DF7E91D3BB34A1B1CE7A0015A57C813E0280D873ADB8844004B9BA1CC\n+580D3C6BDA4DC1B80B4365F1C80512453FC5316EC2D928FB731C3D6403E3C18B\n+E8424D644DF5E9A2134229C5C91CA68DB8E85BA2BB40F538F585DA6FA4037718\n+B8053EBBA1E765346BCD5BDAA6C38115D31611D8A87A2238C145F2DA2F92E4DF\n+3987BD9C4D2A3D460E8941A68B125BCD9EE4F9FD262C4C8A71F47A2C81975635\n+F1B981C274C53FA2ACCDE4C9D0A7C62D6C1EFF91CFC6712CA6A9F333C9564FCB\n+2A70F0AD715A79B10A08AB069E2A3C93BC0AED19D0CA10134B8DDDE8AF548DB2\n+3A4AAA9C29682CF135BB767DAA16169A127EB50A7EECEB6480CF56A7D0F8AC56\n+4A5090B3D75A790372886AF568D94C8165975A05BFBFDF1FFBA45F70700BB9E0\n+57F3249EF9E9C8AD9CBCF6E4FD592DC4CDD2CC7C0BC3130C1059096C657BE453\n+A2CBACE93420210E27AF56CA229BD6D982FB68B3FDC6D44478B922C4231C47EE\n+E500232F6C11D92DEB955F66DF52B92B22E7352790CC2DCBAC53965D57AC2920\n+68B7D520DE25047146EFEB06B9AD4E2A94243C7E5239F0BC2FC312B16051D52C\n+0B92C217B6B42997321AE4F8BB066754B7AA3F15069EF59224E8A442CE471AA7\n+E8049A3DD9EDA09CCEE4998998661CF7DB35E952F6C65DAEB3013951C59F3E09\n+157F313B0237876E1C0190F0473819570B8C0205AADF05D787CC00979CFB327A\n+289382B22DDA6F12804ED0ED5B179E36A995A2A59E1B66E75130DBE9109C813B\n+94403E0DEA8314A1E9DB474D7FA83C0BAFD08033E6A6215844C1D26BE15F1251\n+A1605E8DF9A9C601ED37379530BC1C82BE5463C6C711C5652BFD6262485AA9CA\n+B8C4A117593001D08D980041E2A83C190DCE8E6CD3D334E5CC19FC05DB30F7F7\n+24A305C4DBB31F0651392B99D44B4302333BDF7E326FD256DD75D309C6E73F85\n+FA71B35FD1F9BEFF4C7A1076362EEB0A85492933B6006086A7B8C1928CF2D1EE\n+FD4344409257BB802C117E739960821CD3C88BFBA5669FF16F610AD638AF3677\n+8674C985E6767253ED5769F71BEA5E9BB02A751F9E62EE2B18AC19D975FDEAE9\n+8B8822367FF177A7E850766DE99ED3366D46464612926430012212A90F8E85F4\n+4760B40D5B86B90819EE410382D22D8ED82D0B0AB00C93E10CD365F8766D1C87\n+B4A866021FB6F6AC3D250CC601989B1B8FE6B1098A48282D2CF258BF38FEE940\n+CE0141FB1344156DE7712A8F2DBF700174F12616EE17C852210D96D03E5E6635\n+D439EB6E84A383DDD32AD72DADE6F931FDBABBDC726C36081C96018FC95EAE13\n+DA1F8DBC2D8355AC9792649653225393F4A7A88F3B9443FEEB75E2C15BF93F09\n+CCBA7FABC022BE26F4C28152D5DA6D690494AD4EC0DA1B598AE12536BADF88B5\n+5E20EB452546389F57FF55459567B453AE1831C57D22FA6A4FDF441EDAFDB7FB\n+4F4B707C1FF9159C40F7B5DD519FC07815EE91B8D756B6C18500BCF47D0D9E45\n+6A2D51B6AA5AEAAC9AB2DEF7F0FDE957B6C179CBADEECAC7E9CEC248AB135EB4\n+FBF83D002FF859B574EF36C371540EF2BCFCEF5C2E7863AEDD7C3C965103453B\n+023A9CEC1D5C45B88827ADF4AE0C6746F3C7E6A944427DAEC493601019583A16\n+0F846CE00EAE89EEFF9CE68A0E1D6EBB8FDD8A45D1BF399B36A8328EC957CB8B\n+D842A56269C8C9A6B472C9E65BCBC090606B4E8A7EF4ABDEA120C9F9B3969A1C\n+2EB102925F4E155160E58000E1ADB0D19E10EFD96F6C3225EEE8FC24D122C069\n+C11F1A69DC383F7DACD2F3929BD135CE69787C6E7560AC4B683FE5D9AAFD2E89\n+EE6D95E38C9B726B416E28169A11E29559DBA9AECD714CF318FCB78F34A0E562\n+9C00FE0C6D5A848557D9A82EC2BEFCD30B5EDC0B23C5BA9F812C864394C8B9D1\n+B08BAC9CF94E70FF842306ACCFE6E39A56777C712904A3AB29FBD19275E19E06\n+B35B37CFFFCEC81CAF2D85A853663FAFCFFED1EA77064AA28C15BC94910683BC\n+D09513079DE9EE18E97CC2403DD206516D7F652A3459870757F34EEDCEF952C3\n+FE8004F4716B5BD6774E455010B0BB1E61FCD66B9F14F9BBCCF3E55A158EE96E\n+9A05BDFDDC7706D4BC28FDDC4004EF3A430C607EBDF115E0C996454D70C8BB42\n+D7C83A454B116663D648C23CE2B33365810DE2B64D4AE011BC8043BC3E05B94D\n+1700F859C6AFC6515C1C42FA104EE3E8F3FA5F80252C2E79B00ED27F675FFD09\n+B50BF7A3C63CF4856F909DF969D7DD3EA05CABDD1E71A58CFC2AB5F614B4E5E0\n+25CF92E9FB66ACEBE05DF5E033DA8AD3EE32D94C02D98DD7DA99FAB5AEA595C3\n+2987DC122F0242D76B782349E4069DE0CDD6EF4375C680CBFE4C8F24F2AE89BF\n+7785F5EA7435A91500F265022C307E8ADEAAE1C6\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n 0000000000000000000000000000000000000000000000000000000000000000\n@@ -5626,22 +5613,22 @@\n FFFFFFC0FFFFFFFFC07FFFFFFF807FFFFFFF807FFFFFFF803FFFFFFF003FFFFFFF001FFF\n FFFE000FFFFFFC0007FFFFF80003FFFFF00000FFFFC000003FFF0000000FFC000022227B\n A72D>136 D E\n /Ff load 0 Ff currentfont 91.25 scalefont put/FMat X/FBB\n X/IEn X\n %EndDVIPSBitmapFont\n /Fg 134[45 52 29[62 53 75 2[62 2[69 72 4[62 7[75 1[69\n-68 2[71 2[25 25 58[{}15 90.9091 /CMMI10 rf /Fh 138[51\n-35 36 11[45 37[68 6[25 4[45 1[45 45 1[45 3[25 44[{}11\n-90.9091 /CMSL10 rf /Fi 234[71 71 17[71 1[71{}4 90.9091\n-/CMSY10 rf /Fj 136[60 42 49 30 37 38 1[46 46 51 74 23\n-42 1[28 46 42 1[42 46 42 42 46 12[65 1[66 3[68 7[59 62\n-69 2[68 6[28 12[33 45[{}29 90.9091 /CMTI10 rf /Fk 134[59\n-1[81 1[62 44 44 46 1[62 56 62 93 31 2[31 62 56 1[51 62\n-50 1[54 12[78 5[88 106 67 4[88 18[56 56 56 56 2[31 1[31\n+68 2[71 2[25 25 58[{}15 90.9091 /CMMI10 rf /Fh 134[48\n+3[51 8[25 33[47 15[25 5[45 1[45 45 45 3[25 44[{}10 90.9091\n+/CMSL10 rf /Fi 234[71 71 17[71 1[71{}4 90.9091 /CMSY10\n+rf /Fj 136[60 42 49 30 37 38 1[46 46 51 74 23 42 1[28\n+46 42 1[42 46 42 42 46 12[65 1[66 3[68 7[59 62 69 2[68\n+6[28 12[33 45[{}29 90.9091 /CMTI10 rf /Fk 134[59 1[81\n+1[62 44 44 46 1[62 56 62 93 31 2[31 62 56 1[51 62 50\n+1[54 12[78 5[88 106 67 4[88 18[56 56 56 56 2[31 1[31\n 44[{}29 99.6264 /CMBX12 rf /Fl 130[48 1[48 48 48 48 48\n 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48\n 48 48 48 48 1[48 1[48 48 48 1[48 48 1[48 48 48 48 48\n 48 48 48 48 48 48 2[48 48 48 48 48 48 48 48 48 2[48 48\n 1[48 48 1[48 48 48 1[48 48 48 48 48 1[48 48 48 48 48\n 48 48 48 5[48 33[{}75 90.9091 /CMTT10 rf /Fm 140[62 9[62\n 5[62 21[62 77[{}4 119.552 /CMTT12 rf /Fn 134[71 2[71\n@@ -5711,17 +5698,17 @@\n Fp(,)30 b Fl(south)g Fp(or)h Fl(bottom)e Fp(are)i(less)g(than)g(or)g\n (equal)g(to)h(zero,)g(of)f(if)g Fl(east)25 b Fi(\\025)h\n Fl(n1)o Fp(,)32 b(of)f(if)g Fl(north)24 b Fi(\\025)i Fl(n2)p\n Fp(,)31 b(of)g(if)227 5407 y Fl(top)25 b Fi(\\025)g Fl(n3)o\n Fp(,)31 b(an)f(error)g(message)h(is)g(prin)m(ted)f(and)g(the)g(program)\n g(exits.)1927 5656 y(1)p eop end\n %%Page: 2 2\n-TeXDict begin 2 1 bop 0 100 a Fp(2)p 136 100 1170 4 v\n-1352 w Fl(Misc)29 b Fh(:)41 b Fj(DRAFT)30 b Fh(August)g(3,)h(2025)p\n-2731 100 V 111 399 a Fp(2.)46 b Fl(void)h(mkNDperm2)e(\\()j(int)f(n1,)f\n+TeXDict begin 2 1 bop 0 100 a Fp(2)p 136 100 1228 4 v\n+1409 w Fl(Misc)30 b Fh(:)40 b Fj(DRAFT)30 b Fh(July)g(1,)h(2024)p\n+2673 100 V 111 399 a Fp(2.)46 b Fl(void)h(mkNDperm2)e(\\()j(int)f(n1,)f\n (int)h(n2,)g(int)g(n3,)g(int)g(newToOld[],)e(int)i(west,)1039\n 511 y(int)g(east,)f(int)h(south,)f(int)h(north,)f(int)h(bottom,)f(int)h\n (top)f(\\))i(;)227 655 y Fp(This)c(metho)s(d)f(this)i(v)m(ector)g\n (\\014lls)f(a)h(p)s(erm)m(utation)f(v)m(ector)i(with)e(the)h(nested)f\n (dissection)h(new-to-old)227 768 y(ordering)30 b(of)h(the)f(v)m\n (ertices)j(for)d(the)g(subgrid)f(de\\014ned)g(b)m(y)i(no)s(des)e(whose)h\n (co)s(ordinates)h(lie)h(in)227 955 y Fl([west,)46 b(east])h(x)g\n@@ -5808,18 +5795,18 @@\n Fp(,)26 b(en)m(tries)h(in)f Fl(dsizes2[])d Fp(m)m(ust)227\n 5294 y(sum)28 b(to)h Fl(n2)47 b(-)h(p2)f(+)g(1)p Fp(,)29\n b(and)f(en)m(tries)i(in)e Fl(dsizes3[])e Fp(m)m(ust)i(sum)g(to)h\n Fl(n3)47 b(-)h(p3)f(+)g(1)p Fp(,)29 b(an)g(error)f(message)227\n 5407 y(is)j(prin)m(ted)f(and)f(the)i(program)f(exits.)p\n eop end\n %%Page: 3 3\n-TeXDict begin 3 2 bop 91 100 1170 4 v 1351 100 a Fl(Misc)29\n-b Fh(:)41 b Fj(DRAFT)121 b Fh(August)30 b(3,)h(2025)p\n-2683 100 V 1170 w Fp(3)111 399 y(5.)46 b Fl(void)h(fp2DGrid)e(\\()j(int)\n-f(n1,)g(int)g(n2,)g(int)f(ivec[],)g(FILE)h(*fp)g(\\))g(;)227\n+TeXDict begin 3 2 bop 91 100 1228 4 v 1409 100 a Fl(Misc)29\n+b Fh(:)41 b Fj(DRAFT)121 b Fh(July)30 b(1,)h(2024)p 2626\n+100 V 1228 w Fp(3)111 399 y(5.)46 b Fl(void)h(fp2DGrid)e(\\()j(int)f\n+(n1,)g(int)g(n2,)g(int)f(ivec[],)g(FILE)h(*fp)g(\\))g(;)227\n 562 y Fp(This)40 b(metho)s(d)f(writes)i(the)f Fl(ivec[])f\n Fp(v)m(ector)j(on)m(to)f(an)f Fl(n1)48 b(x)f(n2)40 b\n Fp(grid)g(to)h(\\014le)f Fl(fp)p Fp(.)70 b(This)39 b(is)i(useful)e(to)\n 227 675 y(visualize)32 b(an)e(ordering)g(or)h(a)f(metric)h(on)g(a)g\n (grid.)227 838 y Fj(Err)-5 b(or)34 b(che)-5 b(cking:)40\n b Fp(If)29 b Fl(n1)g Fp(or)h Fl(n2)f Fp(are)h(less)g(than)g(or)g(equal)\n g(to)h(zero,)f(or)g(if)g Fl(ivec)f Fp(or)g Fl(fp)h Fp(are)g\n@@ -5890,17 +5877,17 @@\n (amoun)m(ts)227 5131 y(of)31 b(output.)227 5294 y Fj(Err)-5\n b(or)33 b(che)-5 b(cking:)40 b Fp(If)29 b Fl(graph)f\n Fp(is)h Fl(NULL)p Fp(,)g(or)g(if)h Fl(msglvl)46 b(>)h(0)29\n b Fp(and)g Fl(msgFile)e Fp(is)j Fl(NULL)p Fp(,)e(an)h(error)g(message)i\n (is)227 5407 y(prin)m(ted)f(and)g(the)h(program)f(exits.)p\n eop end\n %%Page: 4 4\n-TeXDict begin 4 3 bop 0 100 a Fp(4)p 136 100 1170 4 v\n-1352 w Fl(Misc)29 b Fh(:)41 b Fj(DRAFT)30 b Fh(August)g(3,)h(2025)p\n-2731 100 V 111 399 a Fp(2.)46 b Fl(ETree)h(*)g(orderViaND)e(\\()j(Graph)\n+TeXDict begin 4 3 bop 0 100 a Fp(4)p 136 100 1228 4 v\n+1409 w Fl(Misc)30 b Fh(:)40 b Fj(DRAFT)30 b Fh(July)g(1,)h(2024)p\n+2673 100 V 111 399 a Fp(2.)46 b Fl(ETree)h(*)g(orderViaND)e(\\()j(Graph)\n e(*graph,)g(int)h(maxdomainsize,)d(int)i(seed,)1230 511\n y(int)g(msglvl,)g(FILE)h(*msgFile)e(\\))j(;)227 664 y\n Fp(This)32 b(metho)s(d)g(returns)g(a)h(fron)m(t)g(tree)g\n Fl(ETree)f Fp(ob)5 b(ject)33 b(for)g(a)g(nested)g(dissection)g\n (ordering)g(of)g(the)f(graph)227 777 y Fl(graph)p Fp(.)45\n b(If)32 b(a)g(subgraph)e(has)i(more)h(v)m(ertices)g(than)f(the)h\n Fl(maxdomainsize)28 b Fp(parameter,)33 b(it)g(is)f(split.)46\n@@ -5978,20 +5965,20 @@\n 5294 y(The)40 b Fl(graph)f Fp(ob)5 b(ject)41 b(de\\014nes)e(the)h\n (connectivit)m(y)i(of)f(the)f(v)m(ertices.)72 b(The)39\n b Fl(coords)g Fp(ob)5 b(ject)41 b(de\\014nes)e(the)227\n 5407 y(lo)s(cations)k(of)f(the)f(v)m(ertices.)76 b(The)41\n b Fl(tagsIV)e Fp(ob)5 b(ject)43 b(is)e(used)g(to)h(de\\014ne)f(whether)f\n (or)i(not)f(an)h(edge)g(is)p eop end\n %%Page: 5 5\n-TeXDict begin 5 4 bop 91 100 1170 4 v 1351 100 a Fl(Misc)29\n-b Fh(:)41 b Fj(DRAFT)121 b Fh(August)30 b(3,)h(2025)p\n-2683 100 V 1170 w Fp(5)227 399 y(dra)m(wn)h(b)s(et)m(w)m(een)h(t)m(w)m\n-(o)h(v)m(ertices)h(adjacen)m(t)f(in)e(the)h(graph.)47\n-b(When)32 b Fl(tagsIV)f Fp(is)i(not)g Fl(NULL)p Fp(,)f(if)g(there)h(is)\n-g(an)227 511 y(edge)g Fl(\\(u,v\\))f Fp(in)g(the)h(graph)f(and)f\n+TeXDict begin 5 4 bop 91 100 1228 4 v 1409 100 a Fl(Misc)29\n+b Fh(:)41 b Fj(DRAFT)121 b Fh(July)30 b(1,)h(2024)p 2626\n+100 V 1228 w Fp(5)227 399 y(dra)m(wn)h(b)s(et)m(w)m(een)h(t)m(w)m(o)h\n+(v)m(ertices)h(adjacen)m(t)f(in)e(the)h(graph.)47 b(When)32\n+b Fl(tagsIV)f Fp(is)i(not)g Fl(NULL)p Fp(,)f(if)g(there)h(is)g(an)227\n+511 y(edge)g Fl(\\(u,v\\))f Fp(in)g(the)h(graph)f(and)f\n Fl(tags[u])46 b(=)i(tags[v])p Fp(,)31 b(then)h(the)h(edge)g(with)f\n (width)g Fl(linewidth1)e Fp(is)227 624 y(dra)m(wn.)54\n b(F)-8 b(or)36 b(edges)f Fl(\\(u,v\\))f Fp(in)g(the)h(graph)g(and)f\n Fl(tags[u])46 b(!=)h(tags[v])p Fp(,)35 b(then)f(the)h(edge)h(with)f\n (width)227 737 y Fl(linewidth2)23 b Fp(is)j(dra)m(wn,)g(assuming)g\n Fl(linewidth2)c Fg(>)j Fp(0.)40 b(If)25 b Fl(tagsIV)f\n Fp(is)i Fl(NULL)p Fp(,)f(than)h(all)g(edges)h(are)f(dra)m(wn)227\n@@ -6071,17 +6058,17 @@\n Fp(is)31 b(computed)g(as)g(the)g(pro)s(duct)f(of)i Fg(A)f\n Fp(with)f Fg(X)7 b Fp(.)44 b Fg(A)31 b Fp(can)g(b)s(e)g(real)g(\\()p\n Fl(type)47 b(=)227 5407 y(1)p Fp(\\))28 b(or)f(complex)i(\\()p\n Fl(type)47 b(=)g(2)p Fp(\\).)40 b(The)27 b(n)m(um)m(b)s(er)f(of)i\n (columns)g(of)f Fg(X)35 b Fp(is)28 b(giv)m(en)h(b)m(y)e\n Fl(nrhs)p Fp(.)39 b(The)27 b(linear)h(system)p eop end\n %%Page: 6 6\n-TeXDict begin 6 5 bop 0 100 a Fp(6)p 136 100 1170 4 v\n-1352 w Fl(Misc)29 b Fh(:)41 b Fj(DRAFT)30 b Fh(August)g(3,)h(2025)p\n-2731 100 V 227 399 a Fp(is)41 b(ordered)f(using)h(theoretical)i(nested)\n+TeXDict begin 6 5 bop 0 100 a Fp(6)p 136 100 1228 4 v\n+1409 w Fl(Misc)30 b Fh(:)40 b Fj(DRAFT)30 b Fh(July)g(1,)h(2024)p\n+2673 100 V 227 399 a Fp(is)41 b(ordered)f(using)h(theoretical)i(nested)\n e(dissection,)j(and)d(the)g(fron)m(t)g(tree)g(is)g(transformed)f(using)\n h(the)227 511 y Fl(maxzeros)31 b Fp(and)i Fl(maxsize)e\n Fp(parameters.)49 b(The)33 b(addresses)f(of)h(the)h(fron)m(t)f(tree,)i\n (sym)m(b)s(olic)e(factorization,)227 624 y(and)d(three)h(matrix)f(ob)5\n b(jects)31 b(are)g(returned)e(in)h(the)h(last)g(\\014v)m(e)g(argumen)m\n (ts)g(of)f(the)h(calling)h(sequence.)227 769 y Fj(Err)-5\n b(or)34 b(che)-5 b(cking:)40 b Fp(None)31 b(presen)m(tly)-8\n@@ -6148,17 +6135,17 @@\n b(Otherwise,)41 b(the)e Fl(ETree)p 3253 5181 V 33 w(writeToFile\\(\\))427\n 5294 y Fp(metho)s(d)g(is)h(called)h(to)f(write)g(the)g(ob)5\n b(ject)40 b(to)g(a)g(formatted)h(\\014le)e(\\(if)h Fl(ETreeFile)d\n Fp(is)j(of)g(the)f(form)427 5407 y Fl(*.etreef)p Fp(\\),)29\n b(or)h(a)h(binary)f(\\014le)g(\\(if)h Fl(ETreeFile)d Fp(is)i(of)h(the)f\n (form)g Fl(*.etreeb)p Fp(\\).)p eop end\n %%Page: 7 7\n-TeXDict begin 7 6 bop 91 100 1170 4 v 1351 100 a Fl(Misc)29\n-b Fh(:)41 b Fj(DRAFT)121 b Fh(August)30 b(3,)h(2025)p\n-2683 100 V 1170 w Fp(7)111 399 y(3.)46 b Fl(testOrderViaND)e(msglvl)i\n+TeXDict begin 7 6 bop 91 100 1228 4 v 1409 100 a Fl(Misc)29\n+b Fh(:)41 b Fj(DRAFT)121 b Fh(July)30 b(1,)h(2024)p 2626\n+100 V 1228 w Fp(7)111 399 y(3.)46 b Fl(testOrderViaND)e(msglvl)i\n (msgFile)g(GraphFile)f(maxdomainsize)g(seed)h(ETreeFile)227\n 550 y Fp(This)23 b(program)h(reads)g(in)g(a)g Fl(Graph)f\n Fp(ob)5 b(ject)25 b(from)e(a)i(\\014le)f(and)f(computes)h(a)h\n (generalized)g(nested)f(dissection)227 663 y(ordering)30\n b(of)h(the)f(graph.)337 878 y Ff(\\210)45 b Fp(The)28\n b Fl(msglvl)f Fp(parameter)i(determines)g(the)g(amoun)m(t)g(of)f\n (output)h(|)f(taking)i Fl(msglvl)46 b(>=)h(3)28 b Fp(means)427\n@@ -6228,17 +6215,17 @@\n Fp(is)j(of)g(the)f(form)427 5079 y Fl(*.etreef)p Fp(\\),)29\n b(or)h(a)h(binary)f(\\014le)g(\\(if)h Fl(ETreeFile)d Fp(is)i(of)h(the)f\n (form)g Fl(*.etreeb)p Fp(\\).)111 5294 y(5.)46 b Fl(drawGraph)g(msglvl)g\n (msgFile)f(inGraphFile)g(inCoordsFile)g(inTagsIVfile)705\n 5407 y(outEPSfile)g(linewidth1)g(linewidth2)g(bbox[4])g(rect[4])h\n (radius)p eop end\n %%Page: 8 8\n-TeXDict begin 8 7 bop 0 100 a Fp(8)p 136 100 1170 4 v\n-1352 w Fl(Misc)29 b Fh(:)41 b Fj(DRAFT)30 b Fh(August)g(3,)h(2025)p\n-2731 100 V 227 399 a Fp(This)41 b(driv)m(er)g(program)h(generates)h(a)f\n+TeXDict begin 8 7 bop 0 100 a Fp(8)p 136 100 1228 4 v\n+1409 w Fl(Misc)30 b Fh(:)40 b Fj(DRAFT)30 b Fh(July)g(1,)h(2024)p\n+2673 100 V 227 399 a Fp(This)41 b(driv)m(er)g(program)h(generates)h(a)f\n (Encapsulated)f(P)m(ostscript)i(\\014le)e Fl(outEPSfile)e\n Fp(of)j(a)g(2-D)g(graph)227 511 y(using)29 b(a)i Fl(Graph)d\n Fp(ob)5 b(ject,)31 b(a)f Fl(Coords)e Fp(ob)5 b(ject)31\n b(and)e(a)h(tags)h Fl(IV)e Fp(ob)5 b(ject)30 b(that)h(con)m(tains)f\n (the)g(comp)s(onen)m(t)g(ids)227 624 y(of)h(the)f(v)m(ertices.)227\n 780 y(See)h(the)f Fl(doDraw)f Fp(script)h(\\014le)h(in)f(this)g\n (directory)h(for)f(an)g(example)i(calling)f(sequence.)337\n@@ -6314,19 +6301,19 @@\n y Fd(1)p Fc(;)p Fd(1)1975 5207 y Fe(#)16 b(\")2129 5294\n y Fg(X)2204 5308 y Fd(0)2129 5407 y Fg(X)2204 5421 y\n Fd(1)2285 5207 y Fe(#)2359 5351 y Fp(=)2455 5207 y Fe(\")2545\n 5294 y Fg(B)2614 5308 y Fd(0)2545 5407 y Fg(B)2614 5421\n y Fd(1)2695 5207 y Fe(#)2768 5351 y Fp(=)25 b Fg(B)5\n b(:)p eop end\n %%Page: 9 9\n-TeXDict begin 9 8 bop 91 100 1170 4 v 1351 100 a Fl(Misc)29\n-b Fh(:)41 b Fj(DRAFT)121 b Fh(August)30 b(3,)h(2025)p\n-2683 100 V 1170 w Fp(9)1541 1617 y(Figure)g(1.1:)42 b\n-Fb(R2D100)750 4143 y @beginspecial 0 @llx 0 @lly 600\n-@urx 600 @ury 2880 @rwi 2880 @rhi @setspecial\n+TeXDict begin 9 8 bop 91 100 1228 4 v 1409 100 a Fl(Misc)29\n+b Fh(:)41 b Fj(DRAFT)121 b Fh(July)30 b(1,)h(2024)p 2626\n+100 V 1228 w Fp(9)1541 1617 y(Figure)g(1.1:)42 b Fb(R2D100)750\n+4143 y @beginspecial 0 @llx 0 @lly 600 @urx 600 @ury\n+2880 @rwi 2880 @rhi @setspecial\n %%BeginDocument: ../../misc/doc/R2D100notags.eps\n %!PS-Adobe-2.0 EPSF-1.2\n %%BoundingBox: 0.0 0.0 600.0 600.0\n /radius 10.000 def\n /Helvetica findfont 12.500 scalefont setfont\n /M {moveto} def\n /L {lineto} def\n@@ -6729,17 +6716,17 @@\n 348.123 444.374 () radius drawLabel\n grestore\n showpage\n \n %%EndDocument\n @endspecial eop end\n %%Page: 10 10\n-TeXDict begin 10 9 bop 0 100 a Fp(10)p 182 100 1147 4\n-v 1329 w Fl(Misc)30 b Fh(:)40 b Fj(DRAFT)30 b Fh(August)h(3,)g(2025)p\n-2753 100 V 813 1617 a Fp(Figure)f(1.2:)42 b Fb(R2D100:)k(fishnet)33\n+TeXDict begin 10 9 bop 0 100 a Fp(10)p 182 100 1205 4\n+v 1387 w Fl(Misc)29 b Fh(:)41 b Fj(DRAFT)30 b Fh(July)g(1,)h(2024)p\n+2696 100 V 813 1617 a Fp(Figure)f(1.2:)42 b Fb(R2D100:)k(fishnet)33\n b(domain)h(decomposition)750 4143 y @beginspecial 0 @llx\n 0 @lly 600 @urx 600 @ury 2880 @rwi 2880 @rhi @setspecial\n %%BeginDocument: ../../misc/doc/R2D100fishnet.eps\n %!PS-Adobe-2.0 EPSF-1.2\n %%BoundingBox: 0.0 0.0 600.0 600.0\n /radius 10.000 def\n /Helvetica findfont 12.500 scalefont setfont\n@@ -7148,17 +7135,17 @@\n 348.123 444.374 (0) radius drawLabel\n grestore\n showpage\n \n %%EndDocument\n @endspecial eop end\n %%Page: 11 11\n-TeXDict begin 11 10 bop 91 100 1147 4 v 1328 100 a Fl(Misc)30\n-b Fh(:)40 b Fj(DRAFT)121 b Fh(August)31 b(3,)g(2025)p\n-2661 100 V 1147 w Fp(11)227 399 y Fg(A)g Fp(is)f(factored)h(as)1106\n+TeXDict begin 11 10 bop 91 100 1205 4 v 1386 100 a Fl(Misc)29\n+b Fh(:)41 b Fj(DRAFT)121 b Fh(July)30 b(1,)h(2024)p 2603\n+100 V 1205 w Fp(11)227 399 y Fg(A)g Fp(is)f(factored)h(as)1106\n 410 y Fe(\")1196 497 y Fg(A)1264 511 y Fd(0)p Fc(;)p Fd(0)1441\n 497 y Fg(A)1509 511 y Fd(0)p Fc(;)p Fd(1)1196 610 y Fg(A)1264\n 624 y Fd(1)p Fc(;)p Fd(0)1441 610 y Fg(A)1509 624 y Fd(1)p\n Fc(;)p Fd(1)1645 410 y Fe(#)1719 554 y Fp(=)1815 410\n y Fe(\")1905 497 y Fg(L)1967 511 y Fd(0)p Fc(;)p Fd(0)2199\n 497 y Fp(0)1905 610 y Fg(L)1967 624 y Fd(1)p Fc(;)p Fd(0)2144\n 610 y Fg(L)2206 624 y Fd(1)p Fc(;)p Fd(1)2342 410 y Fe(#)15\n@@ -7267,17 +7254,17 @@\n Fp(parameter)j(is)g(the)g(input)e(\\014le)i(for)f(the)h\n Fl(Graph)e Fp(ob)5 b(ject.)41 b(It)30 b(m)m(ust)f(b)s(e)g(of)h(the)f\n (form)427 5294 y Fl(*.graphf)18 b Fp(or)j Fl(*.graphb)p\n Fp(.)35 b(The)19 b Fl(Graph)g Fp(ob)5 b(ject)21 b(is)g(read)f(from)g\n (the)g(\\014le)h(via)f(the)h Fl(Graph)p 3368 5294 V 33\n w(readFromFile\\(\\))427 5407 y Fp(metho)s(d.)p eop end\n %%Page: 12 12\n-TeXDict begin 12 11 bop 0 100 a Fp(12)p 182 100 1147\n-4 v 1329 w Fl(Misc)30 b Fh(:)40 b Fj(DRAFT)30 b Fh(August)h(3,)g(2025)p\n-2753 100 V 337 399 a Ff(\\210)45 b Fp(The)29 b Fl(ETreeFile)e\n+TeXDict begin 12 11 bop 0 100 a Fp(12)p 182 100 1205\n+4 v 1387 w Fl(Misc)29 b Fh(:)41 b Fj(DRAFT)30 b Fh(July)g(1,)h(2024)p\n+2696 100 V 337 399 a Ff(\\210)45 b Fp(The)29 b Fl(ETreeFile)e\n Fp(parameter)j(is)g(the)g(input)e(\\014le)i(for)f(the)h\n Fl(ETree)e Fp(ob)5 b(ject.)41 b(It)30 b(m)m(ust)f(b)s(e)g(of)h(the)f\n (form)427 511 y Fl(*.etreef)18 b Fp(or)j Fl(*.etreeb)p\n Fp(.)35 b(The)19 b Fl(ETree)g Fp(ob)5 b(ject)21 b(is)g(read)f(from)g\n (the)g(\\014le)h(via)f(the)h Fl(ETree)p 3368 511 29 4\n v 33 w(readFromFile\\(\\))427 624 y Fp(metho)s(d.)337 769\n y Ff(\\210)45 b Fp(The)31 b Fl(mapFile)f Fp(parameter)i(is)g(the)g\n@@ -7345,17 +7332,17 @@\n Fl(nrow)f Fp(m)m(ust)h(b)s(e)g(equal)h(to)g Fl(ncol)e\n Fp(since)h(w)m(e)h(are)g(factoring)g(a)g(square)f(matrix.\\))50\n b(Eac)m(h)34 b(of)427 5294 y(the)h Fl(nent)e Fp(follo)m(wing)i(lines)g\n (con)m(tain)g(one)f(nonzero)h(en)m(try)-8 b(.)53 b(F)-8\n b(or)35 b(a)f(complex)h(matrix,)h(the)e(\\014le)g(has)427\n 5407 y(this)d(structure.)p eop end\n %%Page: 13 13\n-TeXDict begin 13 12 bop 91 100 1147 4 v 1328 100 a Fl(Misc)30\n-b Fh(:)40 b Fj(DRAFT)121 b Fh(August)31 b(3,)g(2025)p\n-2661 100 V 1147 w Fp(13)427 399 y Fl(nrow)47 b(ncol)g(nent)427\n+TeXDict begin 13 12 bop 91 100 1205 4 v 1386 100 a Fl(Misc)29\n+b Fh(:)41 b Fj(DRAFT)121 b Fh(July)30 b(1,)h(2024)p 2603\n+100 V 1205 w Fp(13)427 399 y Fl(nrow)47 b(ncol)g(nent)427\n 511 y(...)427 624 y(irow)g(jcol)g(real_value)e(imag_value)427\n 737 y(...)427 904 y Fp(F)-8 b(or)30 b(b)s(oth)e(real)i(and)e(complex)h\n (en)m(tries,)i(the)e(en)m(tries)g(need)g(not)g(b)s(e)f(disjoin)m(t,)i\n (i.e.,)h(en)m(tries)e(with)g(the)427 1017 y(same)i Fl(irow)e\n Fp(and)h Fl(jcol)f Fp(v)-5 b(alues)31 b(are)g Fj(summe)-5\n b(d)p Fp(.)337 1163 y Ff(\\210)45 b Fp(The)26 b Fl(rhsFileName)d\n Fp(parameter)k(is)g(the)f(name)h(of)f(the)h(input)e(\\014le)i(for)f(the)\n@@ -7411,17 +7398,17 @@\n (\\(SPOOLES)p 1417 5148 V 32 w(SYMMETRIC\\))28 b Fp(for)i\n Fg(A)g Fp(real)h(or)g(complex)g(symmetric,)500 5278 y\n Fo({)45 b Fl(type)i(=)g(1)h(\\(SPOOLES)p 1417 5278 V 32\n w(HERMITIAN\\))28 b Fp(for)i Fg(A)g Fp(complex)h(Hermitian,)500\n 5407 y Fo({)45 b Fl(type)i(=)g(2)h(\\(SPOOLES)p 1417 5407\n V 32 w(NONSYMMETRIC\\))p eop end\n %%Page: 14 14\n-TeXDict begin 14 13 bop 0 100 a Fp(14)p 182 100 1147\n-4 v 1329 w Fl(Misc)30 b Fh(:)40 b Fj(DRAFT)30 b Fh(August)h(3,)g(2025)p\n-2753 100 V 427 399 a Fp(for)f Fg(A)h Fp(real)g(or)f(complex)h\n+TeXDict begin 14 13 bop 0 100 a Fp(14)p 182 100 1205\n+4 v 1387 w Fl(Misc)29 b Fh(:)41 b Fj(DRAFT)30 b Fh(July)g(1,)h(2024)p\n+2696 100 V 427 399 a Fp(for)f Fg(A)h Fp(real)g(or)f(complex)h\n (nonsymmetric.)337 539 y Ff(\\210)45 b Fp(The)30 b Fl(patchAndGoFlag)d\n Fp(sp)s(eci\\014es)j(the)g(\\\\patc)m(h-and-go\")j(strategy)-8\n b(.)500 680 y Fo({)45 b Fl(patchAndGoFlag)f(=)k(0)21\n b Fp(|)g(if)g(a)h(zero)g(piv)m(ot)g(is)f(detected,)k(stop)c(computing)h\n (the)f(factorization,)597 793 y(set)31 b(the)g(error)f(\\015ag)g(and)g\n (return.)500 920 y Fo({)45 b Fl(patchAndGoFlag)f(=)k(1)30\n b Fp(|)h(if)g(a)h(small)f(or)h(zero)f(piv)m(ot)h(is)g(detected,)g(set)g\n@@ -7482,17 +7469,17 @@\n 5181 y Ff(\\210)45 b Fp(The)33 b Fl(msgFile)e Fp(parameter)j(determines)\n f(the)h(message)g(\\014le)f(|)h(if)f Fl(msgFile)e Fp(is)i\n Fl(stdout)p Fp(,)g(then)g(the)427 5294 y(message)27 b(\\014le)f(is)g\n Fj(stdout)p Fp(,)i(otherwise)e(a)h(\\014le)f(is)f(op)s(ened)g(with)h\n Fj(app)-5 b(end)28 b Fp(status)e(to)g(receiv)m(e)i(an)m(y)e(output)427\n 5407 y(data.)p eop end\n %%Page: 15 15\n-TeXDict begin 15 14 bop 91 100 1147 4 v 1328 100 a Fl(Misc)30\n-b Fh(:)40 b Fj(DRAFT)121 b Fh(August)31 b(3,)g(2025)p\n-2661 100 V 1147 w Fp(15)337 399 y Ff(\\210)45 b Fl(type)29\n+TeXDict begin 15 14 bop 91 100 1205 4 v 1386 100 a Fl(Misc)29\n+b Fh(:)41 b Fj(DRAFT)121 b Fh(July)30 b(1,)h(2024)p 2603\n+100 V 1205 w Fp(15)337 399 y Ff(\\210)45 b Fl(type)29\n b Fp(is)i(the)f(t)m(yp)s(e)h(of)g(en)m(tries)500 545\n y Fo({)45 b Fl(1)30 b Fp(|)h(\\()p Fl(SPOOLES)p 1174 545\n 29 4 v 32 w(REAL)p Fp(\\))f(for)g(real)h(en)m(tries)500\n 674 y Fo({)45 b Fl(2)30 b Fp(|)h(\\()p Fl(SPOOLES)p 1174\n 674 V 32 w(COMPLEX)p Fp(\\))e(for)h(complex)h(en)m(tries)337\n 820 y Ff(\\210)45 b Fp(The)27 b Fl(matrixFileName)d Fp(parameter)k(is)g\n (the)f(name)h(of)g(the)f(input)g(\\014le)h(for)f(the)h(matrix)g(en)m\n", "details": [{"source1": "ps2ascii {}", "source2": "ps2ascii {}", "unified_diff": "@@ -17,15 +17,15 @@\n The method calls itself recursively. To \ufb01nd the permutation for an n1 x n2 x n3 grid, call\r\n mkNDperm(n1, n2, n3, newToOld, 0, n1-1, 0, n2-1, 0, n3-1) ;\r\n from a driver program.\r\n Error checking: If n1, n2 or n3 are less than or equal to zero, or if newToOld is NULL, or if\r\n west, south or bottom are less than or equal to zero, of if east \u2265 n1, of if north \u2265 n2, of if\r\n top \u2265 n3, an error message is printed and the program exits.\r\n 1\r\n- 2 Misc : DRAFT August 3, 2025\r\n+ 2 Misc : DRAFT July 1, 2024\r\n 2. void mkNDperm2 ( int n1, int n2, int n3, int newToOld[], int west,\r\n int east, int south, int north, int bottom, int top ) ;\r\n This method this vector \ufb01lls a permutation vector with the nested dissection new-to-old\r\n ordering of the vertices for the subgrid de\ufb01ned by nodes whose coordinates lie in\r\n [west, east] x [south, north] x [bottom, top].\r\n There is one important di\ufb00erence between this method and mkNDperm() above; this method\r\n \ufb01nds double-wide separators, necessary for an operator with more than nearest neighbor grid\r\n@@ -58,15 +58,15 @@\n tains a dsizes1[q1] x dsizes2[q2] x disizes3[q3] subgrid of points.\r\n Error checking: If n1, n2 or n3 are less than or equal to zero, or if p1, p2 or p3 are less than or\r\n equal to zero, or if 2p1\u22121 > n1, or if 2p2\u22121 > n2, or if 2p3\u22121 > n3, or if oldToNew is NULL,\r\n or if dsizes1[], disizes2[] and dsizes3[] are not NULL but have invalid entries (all entries\r\n must be positive, entries in dsizes1[] must sum to n1 - p1 + 1, entries in dsizes2[] must\r\n sum to n2 - p2 + 1, and entries in dsizes3[] must sum to n3 - p3 + 1, an error message\r\n is printed and the program exits.\r\n- Misc : DRAFT August 3, 2025 3\r\n+ Misc : DRAFT July 1, 2024 3\r\n 5. void fp2DGrid ( int n1, int n2, int ivec[], FILE *fp ) ;\r\n This method writes the ivec[] vector onto an n1 x n2 grid to \ufb01le fp. This is useful to\r\n visualize an ordering or a metric on a grid.\r\n Error checking: If n1 or n2 are less than or equal to zero, or if ivec or fp are NULL, an error\r\n message is printed and the program exits.\r\n 6. void fp3DGrid ( int n1, int n2, int n3, int ivec[], FILE *fp ) ;\r\n This method writes the ivec[] vector onto an n1 x n2 x n3 grid to \ufb01le fp. This is useful\r\n@@ -96,15 +96,15 @@\n This method returns a front tree ETree object for a multiple minimum degree ordering of\r\n the graph graph. The seed parameter is a random number seed. The msglvl and msgFile\r\n parameters govern the diagnostics output. Use msglvl = 0 for no output, msglvl = 1 for\r\n timings and scalar statistics, and use msglvl > 1 with care, for it can generate huge amounts\r\n of output.\r\n Error checking: If graph is NULL, or if msglvl > 0 and msgFile is NULL, an error message is\r\n printed and the program exits.\r\n- 4 Misc : DRAFT August 3, 2025\r\n+ 4 Misc : DRAFT July 1, 2024\r\n 2. ETree * orderViaND ( Graph *graph, int maxdomainsize, int seed,\r\n int msglvl, FILE *msgFile ) ;\r\n This method returns a front tree ETree object for a nested dissection ordering of the graph\r\n graph. If a subgraph has more vertices than the maxdomainsize parameter, it is split. The\r\n seed parameter is a random number seed. The msglvl and msgFile parameters govern\r\n the diagnostics output. Use msglvl = 0 for no output, msglvl = 1 for timings and scalar\r\n statistics, and use msglvl > 1 with care, for it can generate huge amounts of output.\r\n@@ -136,15 +136,15 @@\n double linewidth2, double radius, char *epsFileName,\r\n int msglvl, FILE *msgFile ) ;\r\n This method is used to create an EPS (Encapsulated Postscript) \ufb01le that contains a picture\r\n of a graph in two dimensions. We use this to visualize separators and domain decompositions,\r\n mostly of regular grids and triangulations of a planar region.\r\n The graph object de\ufb01nes the connectivity of the vertices. The coords object de\ufb01nes the\r\n locations of the vertices. The tagsIV object is used to de\ufb01ne whether or not an edge is\r\n- Misc : DRAFT August 3, 2025 5\r\n+ Misc : DRAFT July 1, 2024 5\r\n drawn between two vertices adjacent in the graph. When tagsIV is not NULL, if there is an\r\n edge (u,v) in the graph and tags[u] = tags[v], then the edge with width linewidth1 is\r\n drawn. For edges (u,v) in the graph and tags[u] != tags[v], then the edge with width\r\n linewidth2is drawn, assuming linewidth2> 0. If tagsIV is NULL, than all edges are drawn\r\n with width linewidth1. Each vertex is draw with a \ufb01lled circle with radius radius.\r\n The graph and its Coords object occupy a certain area in 2-D space. We try to plot the\r\n graph inside the area de\ufb01ned by the rect[] array in such a manner that the relative scales\r\n@@ -177,15 +177,15 @@\n InpMtx **pmtxA, DenseMtx **pmtxX, DenseMtx **pmtxB ) ;\r\n This method creates a linear system AX = B for a natural factor formulation of a n1\u00d7n2\u00d7n3\r\n grid. If n1, n2 and n3 are all greater than 1, the grid is formed of linear hexahedral elements\r\n andthematrixAhas8*n1*n2*n3rows. Ifoneofn1,n2andn3isequalto1,thegridisformed\r\n of linear quadrilateral elements and the matrix A has 4*n1*n2*n3 rows. The entries in A and\r\n X are random numbers, B is computed as the product of A with X. A can be real (type =\r\n 1) or complex (type = 2). The number of columns of X is given by nrhs. The linear system\r\n- 6 Misc : DRAFT August 3, 2025\r\n+ 6 Misc : DRAFT July 1, 2024\r\n is ordered using theoretical nested dissection, and the front tree is transformed using the\r\n maxzeros and maxsize parameters. The addresses of the front tree, symbolic factorization,\r\n and three matrix objects are returned in the last \ufb01ve arguments of the calling sequence.\r\n Error checking: None presently.\r\n 1.2 Driver programs found in the Misc directory\r\n This section contains brief descriptions of the driver programs.\r\n 1. testNDperm msglvl msgFile n1 n2 n3 outPermFile\r\n@@ -215,15 +215,15 @@\n *.graphfor*.graphb. TheGraphobjectisreadfromthe\ufb01leviatheGraph readFromFile()\r\n method.\r\n \u2022 The seed parameter is a random number seed.\r\n \u2022 The ETreeFile parameter is the output \ufb01le for the ETree object. If ETreeFile is none\r\n then the ETree object is not written to a \ufb01le. Otherwise, the ETree writeToFile()\r\n method is called to write the object to a formatted \ufb01le (if ETreeFile is of the form\r\n *.etreef), or a binary \ufb01le (if ETreeFile is of the form *.etreeb).\r\n- Misc : DRAFT August 3, 2025 7\r\n+ Misc : DRAFT July 1, 2024 7\r\n 3. testOrderViaND msglvl msgFile GraphFile maxdomainsize seed ETreeFile\r\n This program reads in a Graph object from a \ufb01le and computes a generalized nested dissection\r\n ordering of the graph.\r\n \u2022 The msglvl parameter determines the amount of output \u2014 taking msglvl >= 3 means\r\n the Perm object is written to the output \ufb01le.\r\n \u2022 The msgFile parameter determines the message \ufb01le \u2014 if msgFile is stdout, then the\r\n message \ufb01le is stdout, otherwise a \ufb01le is opened with append status to receive any output\r\n@@ -254,15 +254,15 @@\n \u2022 The seed parameter is a random number seed.\r\n \u2022 The ETreeFile parameter is the output \ufb01le for the ETree object. If ETreeFile is none\r\n then the ETree object is not written to a \ufb01le. Otherwise, the ETree writeToFile()\r\n method is called to write the object to a formatted \ufb01le (if ETreeFile is of the form\r\n *.etreef), or a binary \ufb01le (if ETreeFile is of the form *.etreeb).\r\n 5. drawGraph msglvl msgFile inGraphFile inCoordsFile inTagsIVfile\r\n outEPSfile linewidth1 linewidth2 bbox[4] rect[4] radius\r\n- 8 Misc : DRAFT August 3, 2025\r\n+ 8 Misc : DRAFT July 1, 2024\r\n This driver program generates a Encapsulated Postscript \ufb01le outEPSfile of a 2-D graph\r\n using a Graph object, a Coords object and a tags IV object that contains the component ids\r\n of the vertices.\r\n See the doDraw script \ufb01le in this directory for an example calling sequence.\r\n \u2022 The msglvl parameter determines the amount of output \u2014 taking msglvl >= 3 means\r\n that all objects are written to the output \ufb01le.\r\n \u2022 The msgFile parameter determines the message \ufb01le \u2014 if msgFile is stdout, then the\r\n@@ -293,48 +293,48 @@\n See Figure 1.1 for a plot of the graph of R2D100, a randomly triangulated grid with 100\r\n vertices with linewidth1 = 3. Figure 1.2 illustrates a domain decomposition obtained from\r\n the \ufb01shnet algorithm of Chapter ?? with linewidth1 = 3 and linewidth2 = 0.1.\r\n 6. testSemi msglvl msgFile GraphFile ETreeFile mapFile\r\n This program is used to compute the e\ufb00ect of using a semi-implicit factorization to solve\r\n AX=\" A0,0 A0,1 #\" X0 #=\" B0 #=B.\r\n A1,0 A1,1 X1 B1\r\n- Misc : DRAFT August 3, 2025 9\r\n+ Misc : DRAFT July 1, 2024 9\r\n Figure 1.1: R2D100\r\n- 10 Misc : DRAFT August 3, 2025\r\n- Figure 1.2: R2D100: fishnet domain decomposition\r\n- 3 3 3 3 3 3 3 0 0 5\r\n- 3\r\n- 3 3 3 0 0\r\n- 3 3\r\n- 3 1\r\n- 0 0 1 1\r\n- 3 0 1\r\n- 3 1\r\n- 0 1\r\n- 2 0 1 1\r\n- 0 1 1\r\n- 0 1\r\n- 2 2 1 1 1\r\n- 2 1\r\n- 0 11\r\n- 2 1\r\n- 2 2 0 1 1\r\n- 1 1\r\n- 2 1\r\n- 2 2 0 1 0\r\n- 0 1\r\n- 2 2 0\r\n- 2 2 0 4\r\n- 4 0 0\r\n- 0 4\r\n- 2 2 4\r\n- 2 2 4 4\r\n- 0 4 4\r\n- 2 2 0 4 4 4 4 4 4 4\r\n- Misc : DRAFT August 3, 2025 11\r\n+ 10 Misc : DRAFT July 1, 2024\r\n+ Figure 1.2: R2D100: fishnet domain decomposition\r\n+ 3 3 3 3 3 3 3 0 0 5\r\n+ 3\r\n+ 3 3 3 0 0\r\n+ 3 3\r\n+ 3 1\r\n+ 0 0 1 1\r\n+ 3 0 1\r\n+ 3 1\r\n+ 0 1\r\n+ 2 0 1 1\r\n+ 0 1 1\r\n+ 0 1\r\n+ 2 2 1 1 1\r\n+ 2 1\r\n+ 0 11\r\n+ 2 1\r\n+ 2 2 0 1 1\r\n+ 1 1\r\n+ 2 1\r\n+ 2 2 0 1 0\r\n+ 0 1\r\n+ 2 2 0\r\n+ 2 2 0 4\r\n+ 4 0 0\r\n+ 0 4\r\n+ 2 2 4\r\n+ 2 2 4 4\r\n+ 0 4 4\r\n+ 2 2 0 4 4 4 4 4 4 4\r\n+ Misc : DRAFT July 1, 2024 11\r\n Ais factored as \" # \" #\" #\r\n A A L 0 U U\r\n 0,0 0,1 = 0,0 0,0 0,1 ,\r\n A A L L 0 U\r\n 1,0 1,1 1,0 1,1 1,1\r\n and to solve AX = B, we do the following steps.\r\n \u2022 solve L Y =B\r\n@@ -378,15 +378,15 @@\n \u2022 The msglvl parameter determines the amount of output.\r\n \u2022 The msgFile parameter determines the message \ufb01le \u2014 if msgFile is stdout, then the\r\n message \ufb01le is stdout, otherwise a \ufb01le is opened with append status to receive any output\r\n data.\r\n \u2022 The GraphFile parameter is the input \ufb01le for the Graph object. It must be of the form\r\n *.graphfor*.graphb. TheGraphobjectisreadfromthe\ufb01leviatheGraph readFromFile()\r\n method.\r\n- 12 Misc : DRAFT August 3, 2025\r\n+ 12 Misc : DRAFT July 1, 2024\r\n \u2022 The ETreeFile parameter is the input \ufb01le for the ETree object. It must be of the form\r\n *.etreefor*.etreeb. TheETreeobjectisreadfromthe\ufb01leviatheETree readFromFile()\r\n method.\r\n \u2022 The mapFile parameter is the input \ufb01le for the map IV object. It must be of the form\r\n *.ivfor *.ivb. The IV object is read from the \ufb01le via the IV readFromFile() method.\r\n 7. allInOne msglvl msgFile type symmetryflag pivotingflag\r\n matrixFileName rhsFileName seed\r\n@@ -418,15 +418,15 @@\n ...\r\n irow jcol value\r\n ...\r\n where the \ufb01rst line has the number of rows, columns and entries. (Note, for this driver\r\n program nrow must be equal to ncol since we are factoring a square matrix.) Each of\r\n the nent following lines contain one nonzero entry. For a complex matrix, the \ufb01le has\r\n this structure.\r\n- Misc : DRAFT August 3, 2025 13\r\n+ Misc : DRAFT July 1, 2024 13\r\n nrow ncol nent\r\n ...\r\n irow jcol real_value imag_value\r\n ...\r\n For both real and complex entries, the entries need not be disjoint, i.e., entries with the\r\n same irow and jcol values are summed.\r\n \u2022 The rhsFileNameparameter is the name of the input \ufb01le for the right hand side matrix.\r\n@@ -457,15 +457,15 @@\n \u2022 The type parameter speci\ufb01es a real or complex linear system.\r\n \u2013 type = 1 (SPOOLES REAL) for real,\r\n \u2013 type = 2 (SPOOLES COMPLEX) for complex.\r\n \u2022 The symmetryflag parameter speci\ufb01es the symmetry of the matrix.\r\n \u2013 type = 0 (SPOOLES SYMMETRIC) for A real or complex symmetric,\r\n \u2013 type = 1 (SPOOLES HERMITIAN) for A complex Hermitian,\r\n \u2013 type = 2 (SPOOLES NONSYMMETRIC)\r\n- 14 Misc : DRAFT August 3, 2025\r\n+ 14 Misc : DRAFT July 1, 2024\r\n for A real or complex nonsymmetric.\r\n \u2022 The patchAndGoFlag speci\ufb01es the \u201cpatch-and-go\u201d strategy.\r\n \u2013 patchAndGoFlag = 0\u2014ifazeropivotisdetected, stopcomputingthefactorization,\r\n set the error \ufb02ag and return.\r\n \u2013 patchAndGoFlag = 1 \u2014 if a small or zero pivot is detected, set the diagonal entry\r\n to 1 and the o\ufb00diagonal entries to zero.\r\n \u2013 patchAndGoFlag = 2 \u2014 if a small or zero pivot is detected, perturb the diagonal\r\n@@ -497,15 +497,15 @@\n right hand side entries are read in from a \ufb01le, and the system is solved. One input parameter\r\n speci\ufb01es the type of system (real or complex).\r\n \u2022 The msglvl parameter determines the amount of output \u2014 taking msglvl >= 3 means\r\n the Perm object is written to the output \ufb01le.\r\n \u2022 The msgFile parameter determines the message \ufb01le \u2014 if msgFile is stdout, then the\r\n message \ufb01le is stdout, otherwise a \ufb01le is opened with append status to receive any output\r\n data.\r\n- Misc : DRAFT August 3, 2025 15\r\n+ Misc : DRAFT July 1, 2024 15\r\n \u2022 type is the type of entries\r\n \u2013 1 \u2014 (SPOOLES REAL) for real entries\r\n \u2013 2 \u2014 (SPOOLES COMPLEX) for complex entries\r\n \u2022 The matrixFileName parameter is the name of the input \ufb01le for the matrix entries. For\r\n a real matrix, this \ufb01le must have the following form.\r\n nrow ncol nent\r\n ...\r\n"}]}]}]}]}]}]}