Offset 1, 5 lines modified | Offset 1, 5 lines modified | ||
1 | ·d85f24c47c28dc574252515c2c36df5f·637600·libdevel·optional·libspooles-dev_2.2-14.1_i386.deb | 1 | ·d85f24c47c28dc574252515c2c36df5f·637600·libdevel·optional·libspooles-dev_2.2-14.1_i386.deb |
2 | ·530e2eceaeafa5350dd07c559d9ede89·1123284·debug·optional·libspooles2.2t64-dbgsym_2.2-14.1_i386.deb | 2 | ·530e2eceaeafa5350dd07c559d9ede89·1123284·debug·optional·libspooles2.2t64-dbgsym_2.2-14.1_i386.deb |
3 | ·e08ec2ed05834e8b29482fe442808ec2·487744·libs·optional·libspooles2.2t64_2.2-14.1_i386.deb | 3 | ·e08ec2ed05834e8b29482fe442808ec2·487744·libs·optional·libspooles2.2t64_2.2-14.1_i386.deb |
4 | · | 4 | ·b8ed84a72a0825a8f85b76e4b27c035a·6766636·doc·optional·spooles-doc_2.2-14.1_all.deb |
Offset 1, 3 lines modified | Offset 1, 3 lines modified | ||
1 | -rw-r--r--···0········0········0········4·2024-02-29·17:18:08.000000·debian-binary | 1 | -rw-r--r--···0········0········0········4·2024-02-29·17:18:08.000000·debian-binary |
2 | -rw-r--r--···0········0········0·····19 | 2 | -rw-r--r--···0········0········0·····1940·2024-02-29·17:18:08.000000·control.tar.xz |
3 | -rw-r--r--···0········0········0··67 | 3 | -rw-r--r--···0········0········0··6764504·2024-02-29·17:18:08.000000·data.tar.xz |
Offset 1, 13 lines modified | Offset 1, 13 lines modified | ||
1 | Package:·spooles-doc | 1 | Package:·spooles-doc |
2 | Source:·spooles | 2 | Source:·spooles |
3 | Version:·2.2-14.1 | 3 | Version:·2.2-14.1 |
4 | Architecture:·all | 4 | Architecture:·all |
5 | Maintainer:·Debian·Science·Maintainers·<debian-science-maintainers@lists.alioth.debian.org> | 5 | Maintainer:·Debian·Science·Maintainers·<debian-science-maintainers@lists.alioth.debian.org> |
6 | Installed-Size:·686 | 6 | Installed-Size:·6863 |
7 | Suggests:·libspooles2.2-dev | 7 | Suggests:·libspooles2.2-dev |
8 | Section:·doc | 8 | Section:·doc |
9 | Priority:·optional | 9 | Priority:·optional |
10 | Homepage:·http://www.netlib.org/linalg/spooles/ | 10 | Homepage:·http://www.netlib.org/linalg/spooles/ |
11 | Description:·SPOOLES·numerical·simulation·pre-·and·post-processor·documentation | 11 | Description:·SPOOLES·numerical·simulation·pre-·and·post-processor·documentation |
12 | ·SPOOLES·is·a·library·for·solving·sparse·real·and·complex·linear·systems·of | 12 | ·SPOOLES·is·a·library·for·solving·sparse·real·and·complex·linear·systems·of |
13 | ·equations,·written·in·the·C·language·using·object·oriented·design. | 13 | ·equations,·written·in·the·C·language·using·object·oriented·design. |
Offset 1, 56 lines modified | Offset 1, 56 lines modified | ||
1 | drwxr-xr-x···0·root·········(0)·root·········(0)········0·2024-02-29·17:18:08.000000·./ | 1 | drwxr-xr-x···0·root·········(0)·root·········(0)········0·2024-02-29·17:18:08.000000·./ |
2 | drwxr-xr-x···0·root·········(0)·root·········(0)········0·2024-02-29·17:18:08.000000·./usr/ | 2 | drwxr-xr-x···0·root·········(0)·root·········(0)········0·2024-02-29·17:18:08.000000·./usr/ |
3 | drwxr-xr-x···0·root·········(0)·root·········(0)········0·2024-02-29·17:18:08.000000·./usr/share/ | 3 | drwxr-xr-x···0·root·········(0)·root·········(0)········0·2024-02-29·17:18:08.000000·./usr/share/ |
4 | drwxr-xr-x···0·root·········(0)·root·········(0)········0·2024-02-29·17:18:08.000000·./usr/share/doc/ | 4 | drwxr-xr-x···0·root·········(0)·root·········(0)········0·2024-02-29·17:18:08.000000·./usr/share/doc/ |
5 | drwxr-xr-x···0·root·········(0)·root·········(0)········0·2024-02-29·17:18:08.000000·./usr/share/doc/spooles-doc/ | 5 | drwxr-xr-x···0·root·········(0)·root·········(0)········0·2024-02-29·17:18:08.000000·./usr/share/doc/spooles-doc/ |
6 | -rw-r--r--···0·root·········(0)·root·········(0)···151 | 6 | -rw-r--r--···0·root·········(0)·root·········(0)···151436·2024-02-29·17:18:08.000000·./usr/share/doc/spooles-doc/A2.ps.gz |
7 | -rw-r--r--···0·root·········(0)·root·········(0)···596035·2024-02-29·17:18:08.000000·./usr/share/doc/spooles-doc/ASHCRAFC.ps.gz | 7 | -rw-r--r--···0·root·········(0)·root·········(0)···596035·2024-02-29·17:18:08.000000·./usr/share/doc/spooles-doc/ASHCRAFC.ps.gz |
8 | -rw-r--r--···0·root·········(0)·root·········(0)····67 | 8 | -rw-r--r--···0·root·········(0)·root·········(0)····67040·2024-02-29·17:18:08.000000·./usr/share/doc/spooles-doc/AllInOne.ps.gz |
9 | -rw-r--r--···0·root·········(0)·root·········(0)···127 | 9 | -rw-r--r--···0·root·········(0)·root·········(0)···127311·2024-02-29·17:18:08.000000·./usr/share/doc/spooles-doc/BKL.ps.gz |
10 | -rw-r--r--···0·root·········(0)·root·········(0)···155 | 10 | -rw-r--r--···0·root·········(0)·root·········(0)···155565·2024-02-29·17:18:08.000000·./usr/share/doc/spooles-doc/BPG.ps.gz |
11 | -rw-r--r--···0·root·········(0)·root·········(0)···189 | 11 | -rw-r--r--···0·root·········(0)·root·········(0)···189747·2024-02-29·17:18:08.000000·./usr/share/doc/spooles-doc/Chv.ps.gz |
12 | -rw-r--r--···0·root·········(0)·root·········(0)···100 | 12 | -rw-r--r--···0·root·········(0)·root·········(0)···100428·2024-02-29·17:18:08.000000·./usr/share/doc/spooles-doc/ChvList.ps.gz |
13 | -rw-r--r--···0·root·········(0)·root·········(0)····94 | 13 | -rw-r--r--···0·root·········(0)·root·········(0)····94120·2024-02-29·17:18:08.000000·./usr/share/doc/spooles-doc/ChvManager.ps.gz |
14 | -rw-r--r--···0·root·········(0)·root·········(0)···120 | 14 | -rw-r--r--···0·root·········(0)·root·········(0)···120355·2024-02-29·17:18:08.000000·./usr/share/doc/spooles-doc/Coords.ps.gz |
15 | -rw-r--r--···0·root·········(0)·root·········(0)···115 | 15 | -rw-r--r--···0·root·········(0)·root·········(0)···115340·2024-02-29·17:18:08.000000·./usr/share/doc/spooles-doc/DSTree.ps.gz |
16 | -rw-r--r--···0·root·········(0)·root·········(0)···133 | 16 | -rw-r--r--···0·root·········(0)·root·········(0)···133508·2024-02-29·17:18:08.000000·./usr/share/doc/spooles-doc/DV.ps.gz |
17 | -rw-r--r--···0·root·········(0)·root·········(0)···117 | 17 | -rw-r--r--···0·root·········(0)·root·········(0)···117162·2024-02-29·17:18:08.000000·./usr/share/doc/spooles-doc/DenseMtx.ps.gz |
18 | -rw-r--r--···0·root·········(0)·root·········(0)···107 | 18 | -rw-r--r--···0·root·········(0)·root·········(0)···107046·2024-02-29·17:18:08.000000·./usr/share/doc/spooles-doc/Drand.ps.gz |
19 | -rw-r--r--···0·root·········(0)·root·········(0)···12 | 19 | -rw-r--r--···0·root·········(0)·root·········(0)···120983·2024-02-29·17:18:08.000000·./usr/share/doc/spooles-doc/EGraph.ps.gz |
20 | -rw-r--r--···0·root·········(0)·root·········(0)···220 | 20 | -rw-r--r--···0·root·········(0)·root·········(0)···220380·2024-02-29·17:18:08.000000·./usr/share/doc/spooles-doc/ETree.ps.gz |
21 | -rw-r--r--···0·root·········(0)·root·········(0)····87 | 21 | -rw-r--r--···0·root·········(0)·root·········(0)····87086·2024-02-29·17:18:08.000000·./usr/share/doc/spooles-doc/Eigen.ps.gz |
22 | -rw-r--r--···0·root·········(0)·root·········(0)···179 | 22 | -rw-r--r--···0·root·········(0)·root·········(0)···179161·2024-02-29·17:18:08.000000·./usr/share/doc/spooles-doc/FrontMtx.ps.gz |
23 | -rw-r--r--···0·root·········(0)·root·········(0)···27 | 23 | -rw-r--r--···0·root·········(0)·root·········(0)···274999·2024-02-29·17:18:08.000000·./usr/share/doc/spooles-doc/FrontTrees.ps.gz |
24 | -rw-r--r--···0·root·········(0)·root·········(0)···18 | 24 | -rw-r--r--···0·root·········(0)·root·········(0)···183955·2024-02-29·17:18:08.000000·./usr/share/doc/spooles-doc/GPart.ps.gz |
25 | -rw-r--r--···0·root·········(0)·root·········(0)···189 | 25 | -rw-r--r--···0·root·········(0)·root·········(0)···189542·2024-02-29·17:18:08.000000·./usr/share/doc/spooles-doc/Graph.ps.gz |
26 | -rw-r--r--···0·root·········(0)·root·········(0)···131 | 26 | -rw-r--r--···0·root·········(0)·root·········(0)···131551·2024-02-29·17:18:08.000000·./usr/share/doc/spooles-doc/I2Ohash.ps.gz |
27 | -rw-r--r--···0·root·········(0)·root·········(0)···109 | 27 | -rw-r--r--···0·root·········(0)·root·········(0)···109346·2024-02-29·17:18:08.000000·./usr/share/doc/spooles-doc/IIheap.ps.gz |
28 | -rw-r--r--···0·root·········(0)·root·········(0)···121 | 28 | -rw-r--r--···0·root·········(0)·root·········(0)···121142·2024-02-29·17:18:08.000000·./usr/share/doc/spooles-doc/IV.ps.gz |
29 | -rw-r--r--···0·root·········(0)·root·········(0)···124 | 29 | -rw-r--r--···0·root·········(0)·root·········(0)···124072·2024-02-29·17:18:08.000000·./usr/share/doc/spooles-doc/IVL.ps.gz |
30 | -rw-r--r--···0·root·········(0)·root·········(0)····95 | 30 | -rw-r--r--···0·root·········(0)·root·········(0)····95103·2024-02-29·17:18:08.000000·./usr/share/doc/spooles-doc/Ideq.ps.gz |
31 | -rw-r--r--···0·root·········(0)·root·········(0)···204 | 31 | -rw-r--r--···0·root·········(0)·root·········(0)···204463·2024-02-29·17:18:08.000000·./usr/share/doc/spooles-doc/InpMtx.ps.gz |
32 | -rw-r--r--···0·root·········(0)·root·········(0)···127 | 32 | -rw-r--r--···0·root·········(0)·root·········(0)···127115·2024-02-29·17:18:08.000000·./usr/share/doc/spooles-doc/LinSol.ps.gz |
33 | -rw-r--r--···0·root·········(0)·root·········(0)····88 | 33 | -rw-r--r--···0·root·········(0)·root·········(0)····88884·2024-02-29·17:18:08.000000·./usr/share/doc/spooles-doc/Lock.ps.gz |
34 | -rw-r--r--···0·root·········(0)·root·········(0)···1760 | 34 | -rw-r--r--···0·root·········(0)·root·········(0)···176076·2024-02-29·17:18:08.000000·./usr/share/doc/spooles-doc/MPI.ps.gz |
35 | -rw-r--r--···0·root·········(0)·root·········(0)···1682 | 35 | -rw-r--r--···0·root·········(0)·root·········(0)···168222·2024-02-29·17:18:08.000000·./usr/share/doc/spooles-doc/MSMD.ps.gz |
36 | -rw-r--r--···0·root·········(0)·root·········(0)···16 | 36 | -rw-r--r--···0·root·········(0)·root·········(0)···162923·2024-02-29·17:18:08.000000·./usr/share/doc/spooles-doc/MT.ps.gz |
37 | -rw-r--r--···0·root·········(0)·root·········(0)···14 | 37 | -rw-r--r--···0·root·········(0)·root·········(0)···145955·2024-02-29·17:18:08.000000·./usr/share/doc/spooles-doc/Network.ps.gz |
38 | -rw-r--r--···0·root·········(0)·root·········(0)···1430 | 38 | -rw-r--r--···0·root·········(0)·root·········(0)···143016·2024-02-29·17:18:08.000000·./usr/share/doc/spooles-doc/PatchAndGoInfo.ps.gz |
39 | -rw-r--r--···0·root·········(0)·root·········(0)···124 | 39 | -rw-r--r--···0·root·········(0)·root·········(0)···124158·2024-02-29·17:18:08.000000·./usr/share/doc/spooles-doc/Pencil.ps.gz |
40 | -rw-r--r--···0·root·········(0)·root·········(0)···106 | 40 | -rw-r--r--···0·root·········(0)·root·········(0)···106724·2024-02-29·17:18:08.000000·./usr/share/doc/spooles-doc/Perm.ps.gz |
41 | -rw-r--r--···0·root·········(0)·root·········(0)···149 | 41 | -rw-r--r--···0·root·········(0)·root·········(0)···149071·2024-02-29·17:18:08.000000·./usr/share/doc/spooles-doc/ReferenceManual.ps.gz |
42 | -rw-r--r--···0·root·········(0)·root·········(0)···152 | 42 | -rw-r--r--···0·root·········(0)·root·········(0)···152496·2024-02-29·17:18:08.000000·./usr/share/doc/spooles-doc/SemiImplMtx.ps.gz |
43 | -rw-r--r--···0·root·········(0)·root·········(0)···1341 | 43 | -rw-r--r--···0·root·········(0)·root·········(0)···134130·2024-02-29·17:18:08.000000·./usr/share/doc/spooles-doc/SolveMap.ps.gz |
44 | -rw-r--r--···0·root·········(0)·root·········(0)···175 | 44 | -rw-r--r--···0·root·········(0)·root·········(0)···175457·2024-02-29·17:18:08.000000·./usr/share/doc/spooles-doc/SubMtx.ps.gz |
45 | -rw-r--r--···0·root·········(0)·root·········(0)···101 | 45 | -rw-r--r--···0·root·········(0)·root·········(0)···101080·2024-02-29·17:18:08.000000·./usr/share/doc/spooles-doc/SubMtxList.ps.gz |
46 | -rw-r--r--···0·root·········(0)·root·········(0)···117 | 46 | -rw-r--r--···0·root·········(0)·root·········(0)···117256·2024-02-29·17:18:08.000000·./usr/share/doc/spooles-doc/SubMtxManager.ps.gz |
47 | -rw-r--r--···0·root·········(0)·root·········(0)···120 | 47 | -rw-r--r--···0·root·········(0)·root·········(0)···120380·2024-02-29·17:18:08.000000·./usr/share/doc/spooles-doc/SymbFac.ps.gz |
48 | -rw-r--r--···0·root·········(0)·root·········(0)···167 | 48 | -rw-r--r--···0·root·········(0)·root·········(0)···167464·2024-02-29·17:18:08.000000·./usr/share/doc/spooles-doc/Tree.ps.gz |
49 | -rw-r--r--···0·root·········(0)·root·········(0)···189 | 49 | -rw-r--r--···0·root·········(0)·root·········(0)···189699·2024-02-29·17:18:08.000000·./usr/share/doc/spooles-doc/Utilities.ps.gz |
50 | -rw-r--r--···0·root·········(0)·root·········(0)···127 | 50 | -rw-r--r--···0·root·········(0)·root·········(0)···127392·2024-02-29·17:18:08.000000·./usr/share/doc/spooles-doc/ZV.ps.gz |
51 | -rw-r--r--···0·root·········(0)·root·········(0)······760·2024-02-29·17:18:08.000000·./usr/share/doc/spooles-doc/changelog.Debian.gz | 51 | -rw-r--r--···0·root·········(0)·root·········(0)······760·2024-02-29·17:18:08.000000·./usr/share/doc/spooles-doc/changelog.Debian.gz |
52 | -rw-r--r--···0·root·········(0)·root·········(0)······378·2018-12-19·22:56:58.000000·./usr/share/doc/spooles-doc/copyright | 52 | -rw-r--r--···0·root·········(0)·root·········(0)······378·2018-12-19·22:56:58.000000·./usr/share/doc/spooles-doc/copyright |
53 | -rw-r--r--···0·root·········(0)·root·········(0)···188 | 53 | -rw-r--r--···0·root·········(0)·root·········(0)···188510·2024-02-29·17:18:08.000000·./usr/share/doc/spooles-doc/misc.ps.gz |
54 | -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 | 54 | -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 |
55 | drwxr-xr-x···0·root·········(0)·root·········(0)········0·2024-02-29·17:18:08.000000·./usr/share/doc-base/ | 55 | drwxr-xr-x···0·root·········(0)·root·········(0)········0·2024-02-29·17:18:08.000000·./usr/share/doc-base/ |
56 | -rw-r--r--···0·root·········(0)·root·········(0)······430·2018-12-19·22:56:58.000000·./usr/share/doc-base/spooles-doc.spooles | 56 | -rw-r--r--···0·root·········(0)·root·········(0)······430·2018-12-19·22:56:58.000000·./usr/share/doc-base/spooles-doc.spooles |
Offset 11, 15 lines modified | Offset 11, 15 lines modified | ||
11 | %%EndComments | 11 | %%EndComments |
12 | %%BeginDefaults | 12 | %%BeginDefaults |
13 | %%ViewingOrientation:·1·0·0·1 | 13 | %%ViewingOrientation:·1·0·0·1 |
14 | %%EndDefaults | 14 | %%EndDefaults |
15 | %DVIPSWebPage:·(www.radicaleye.com) | 15 | %DVIPSWebPage:·(www.radicaleye.com) |
16 | %DVIPSCommandLine:·dvips·main·-o·A2.ps | 16 | %DVIPSCommandLine:·dvips·main·-o·A2.ps |
17 | %DVIPSParameters:·dpi=600 | 17 | %DVIPSParameters:·dpi=600 |
18 | %DVIPSSource:··TeX·output·202 | 18 | %DVIPSSource:··TeX·output·2024.03.20:1839 |
19 | %%BeginProcSet:·tex.pro·0·0 | 19 | %%BeginProcSet:·tex.pro·0·0 |
20 | %! | 20 | %! |
21 | /TeXDict·300·dict·def·TeXDict·begin/N{def}def/B{bind·def}N/S{exch}N/X{S | 21 | /TeXDict·300·dict·def·TeXDict·begin/N{def}def/B{bind·def}N/S{exch}N/X{S |
22 | N}B/A{dup}B/TR{translate}N/isls·false·N/vsize·11·72·mul·N/hsize·8.5·72 | 22 | N}B/A{dup}B/TR{translate}N/isls·false·N/vsize·11·72·mul·N/hsize·8.5·72 |
23 | mul·N/landplus90{false}def/@rigin{isls{[0·landplus90{1·-1}{-1·1}ifelse·0 | 23 | mul·N/landplus90{false}def/@rigin{isls{[0·landplus90{1·-1}{-1·1}ifelse·0 |
24 | 0·0]concat}if·72·Resolution·div·72·VResolution·div·neg·scale·isls{ | 24 | 0·0]concat}if·72·Resolution·div·72·VResolution·div·neg·scale·isls{ |
25 | landplus90{VResolution·72·div·vsize·mul·0·exch}{Resolution·-72·div·hsize | 25 | landplus90{VResolution·72·div·vsize·mul·0·exch}{Resolution·-72·div·hsize |
Offset 20, 15 lines modified | Offset 20, 15 lines modified | ||
20 | ·············•·A2·IS·REAL(mtx)·is·1·if·mtx·has·real·entries·and·0·otherwise.\xd | 20 | ·············•·A2·IS·REAL(mtx)·is·1·if·mtx·has·real·entries·and·0·otherwise.\xd |
21 | ·············•·A2·IS·COMPLEX(mtx)·is·1·if·mtx·has·complex·entries·and·0·otherwise.\xd | 21 | ·············•·A2·IS·COMPLEX(mtx)·is·1·if·mtx·has·complex·entries·and·0·otherwise.\xd |
22 | ···········TheA2·copyEntriesToVector()methodusesthefollowingconstants:·A2·STRICT·LOWER,A2·LOWER,A2·DIAGONAL,\xd | 22 | ···········TheA2·copyEntriesToVector()methodusesthefollowingconstants:·A2·STRICT·LOWER,A2·LOWER,A2·DIAGONAL,\xd |
23 | ···········A2·UPPER,·A2·STRICT·UPPER,·A2·ALL·ENTRIES,·A2·BY·ROWS·and·A2·BY·COLUMNS.\xd | 23 | ···········A2·UPPER,·A2·STRICT·UPPER,·A2·ALL·ENTRIES,·A2·BY·ROWS·and·A2·BY·COLUMNS.\xd |
24 | ···········1.2··Prototypes·and·descriptions·of·A2·methods\xd | 24 | ···········1.2··Prototypes·and·descriptions·of·A2·methods\xd |
25 | ···········This·section·contains·brief·descriptions·including·prototypes·of·all·methods·that·belong·to·the·A2·object.\xd | 25 | ···········This·section·contains·brief·descriptions·including·prototypes·of·all·methods·that·belong·to·the·A2·object.\xd |
26 | ·············································1\xd | 26 | ·············································1\xd |
27 | ··············2·······························A2·:·DRAFT· | 27 | ··············2·······························A2·:·DRAFT·March·20,·2024\xd |
28 | ··············1.2.1··Basic·methods\xd | 28 | ··············1.2.1··Basic·methods\xd |
29 | ··············Asusual,·there·are·four·basic·methods·to·support·object·creation,·setting·default·fields,·clearing·any·allocated\xd | 29 | ··············Asusual,·there·are·four·basic·methods·to·support·object·creation,·setting·default·fields,·clearing·any·allocated\xd |
30 | ··············data,·and·free’ing·the·object.\xd | 30 | ··············data,·and·free’ing·the·object.\xd |
31 | ················1.·A2·*·A2_new·(·void·)·;\xd | 31 | ················1.·A2·*·A2_new·(·void·)·;\xd |
32 | ··················This·method·simply·allocates·storage·for·the·A2·structure·and·then·sets·the·default·fields·by·a·call·to\xd | 32 | ··················This·method·simply·allocates·storage·for·the·A2·structure·and·then·sets·the·default·fields·by·a·call·to\xd |
33 | ··················A2·setDefaultFields().\xd | 33 | ··················A2·setDefaultFields().\xd |
34 | ················2.·void·A2_setDefaultFields·(·A2·*mtx·)·;\xd | 34 | ················2.·void·A2_setDefaultFields·(·A2·*mtx·)·;\xd |
Offset 10, 15 lines modified | Offset 10, 15 lines modified | ||
10 | %%EndComments | 10 | %%EndComments |
11 | %%BeginDefaults | 11 | %%BeginDefaults |
12 | %%ViewingOrientation:·1·0·0·1 | 12 | %%ViewingOrientation:·1·0·0·1 |
13 | %%EndDefaults | 13 | %%EndDefaults |
14 | %DVIPSWebPage:·(www.radicaleye.com) | 14 | %DVIPSWebPage:·(www.radicaleye.com) |
15 | %DVIPSCommandLine:·dvips·main·-o·AllInOne.ps | 15 | %DVIPSCommandLine:·dvips·main·-o·AllInOne.ps |
16 | %DVIPSParameters:·dpi=600 | 16 | %DVIPSParameters:·dpi=600 |
17 | %DVIPSSource:··TeX·output·202 | 17 | %DVIPSSource:··TeX·output·2024.03.20:1839 |
18 | %%BeginProcSet:·tex.pro·0·0 | 18 | %%BeginProcSet:·tex.pro·0·0 |
19 | %! | 19 | %! |
20 | /TeXDict·300·dict·def·TeXDict·begin/N{def}def/B{bind·def}N/S{exch}N/X{S | 20 | /TeXDict·300·dict·def·TeXDict·begin/N{def}def/B{bind·def}N/S{exch}N/X{S |
21 | N}B/A{dup}B/TR{translate}N/isls·false·N/vsize·11·72·mul·N/hsize·8.5·72 | 21 | N}B/A{dup}B/TR{translate}N/isls·false·N/vsize·11·72·mul·N/hsize·8.5·72 |
22 | mul·N/landplus90{false}def/@rigin{isls{[0·landplus90{1·-1}{-1·1}ifelse·0 | 22 | mul·N/landplus90{false}def/@rigin{isls{[0·landplus90{1·-1}{-1·1}ifelse·0 |
23 | 0·0]concat}if·72·Resolution·div·72·VResolution·div·neg·scale·isls{ | 23 | 0·0]concat}if·72·Resolution·div·72·VResolution·div·neg·scale·isls{ |
24 | landplus90{VResolution·72·div·vsize·mul·0·exch}{Resolution·-72·div·hsize | 24 | landplus90{VResolution·72·div·vsize·mul·0·exch}{Resolution·-72·div·hsize |
Offset 1, 8 lines modified | Offset 1, 8 lines modified | ||
1 | ·····························Solving·Linear·Systems·using·SPOOLES·2.2\xd | 1 | ·····························Solving·Linear·Systems·using·SPOOLES·2.2\xd |
2 | ·································C.·C.·Ashcraft,·R.·G.·Grimes,·D.·J.·Pierce,·D.·K.·Wah\xd | 2 | ·································C.·C.·Ashcraft,·R.·G.·Grimes,·D.·J.·Pierce,·D.·K.·Wah\xd |
3 | ·················································Boeing·Phantom·Works∗\xd | 3 | ·················································Boeing·Phantom·Works∗\xd |
4 | ······················································ | 4 | ······················································March·20,·2024\xd |
5 | ·················∗P.·O.·Box·24346,·Mail·Stop·7L-22,·Seattle,·Washington·98124.·This·research·was·supported·in·part·by·the·DARPA\xd | 5 | ·················∗P.·O.·Box·24346,·Mail·Stop·7L-22,·Seattle,·Washington·98124.·This·research·was·supported·in·part·by·the·DARPA\xd |
6 | ···············Contract·DABT63-95-C-0122·and·the·DoD·High·Performance·Computing·Modernization·Program·Common·HPC·Software\xd | 6 | ···············Contract·DABT63-95-C-0122·and·the·DoD·High·Performance·Computing·Modernization·Program·Common·HPC·Software\xd |
7 | ···············Support·Initiative.\xd | 7 | ···············Support·Initiative.\xd |
8 | ·····························································1\xd | 8 | ·····························································1\xd |
Offset 11, 15 lines modified | Offset 11, 15 lines modified | ||
11 | %%EndComments | 11 | %%EndComments |
12 | %%BeginDefaults | 12 | %%BeginDefaults |
13 | %%ViewingOrientation:·1·0·0·1 | 13 | %%ViewingOrientation:·1·0·0·1 |
14 | %%EndDefaults | 14 | %%EndDefaults |
15 | %DVIPSWebPage:·(www.radicaleye.com) | 15 | %DVIPSWebPage:·(www.radicaleye.com) |
16 | %DVIPSCommandLine:·dvips·main·-o·BKL.ps | 16 | %DVIPSCommandLine:·dvips·main·-o·BKL.ps |
17 | %DVIPSParameters:·dpi=600 | 17 | %DVIPSParameters:·dpi=600 |
18 | %DVIPSSource:··TeX·output·202 | 18 | %DVIPSSource:··TeX·output·2024.03.20:1839 |
19 | %%BeginProcSet:·tex.pro·0·0 | 19 | %%BeginProcSet:·tex.pro·0·0 |
20 | %! | 20 | %! |
21 | /TeXDict·300·dict·def·TeXDict·begin/N{def}def/B{bind·def}N/S{exch}N/X{S | 21 | /TeXDict·300·dict·def·TeXDict·begin/N{def}def/B{bind·def}N/S{exch}N/X{S |
22 | N}B/A{dup}B/TR{translate}N/isls·false·N/vsize·11·72·mul·N/hsize·8.5·72 | 22 | N}B/A{dup}B/TR{translate}N/isls·false·N/vsize·11·72·mul·N/hsize·8.5·72 |
23 | mul·N/landplus90{false}def/@rigin{isls{[0·landplus90{1·-1}{-1·1}ifelse·0 | 23 | mul·N/landplus90{false}def/@rigin{isls{[0·landplus90{1·-1}{-1·1}ifelse·0 |
24 | 0·0]concat}if·72·Resolution·div·72·VResolution·div·neg·scale·isls{ | 24 | 0·0]concat}if·72·Resolution·div·72·VResolution·div·neg·scale·isls{ |
25 | landplus90{VResolution·72·div·vsize·mul·0·exch}{Resolution·-72·div·hsize | 25 | landplus90{VResolution·72·div·vsize·mul·0·exch}{Resolution·-72·div·hsize |
Offset 18, 15 lines modified | Offset 18, 15 lines modified | ||
18 | ·············•·int·ngaineval·:·number·of·gain·evaluations,·roughly·equivalent·to·the·number·of·degree\xd | 18 | ·············•·int·ngaineval·:·number·of·gain·evaluations,·roughly·equivalent·to·the·number·of·degree\xd |
19 | ···············evaluations·in·the·minimum·degree·algorithm\xd | 19 | ···············evaluations·in·the·minimum·degree·algorithm\xd |
20 | ·············•·int·*colors·:·pointer·to·an·int·vector·of·size·nreg,·colors[idom]·is·1·or·2·for·domain\xd | 20 | ·············•·int·*colors·:·pointer·to·an·int·vector·of·size·nreg,·colors[idom]·is·1·or·2·for·domain\xd |
21 | ···············idom,·colors[iseg]·is·0,·1·or·2·for·segment·iseg.\xd | 21 | ···············idom,·colors[iseg]·is·0,·1·or·2·for·segment·iseg.\xd |
22 | ·············•·int·*cweights·:·pointer·to·an·int·vector·of·size·3,·cweights[0]·contains·the·weight·of·the\xd | 22 | ·············•·int·*cweights·:·pointer·to·an·int·vector·of·size·3,·cweights[0]·contains·the·weight·of·the\xd |
23 | ···············separator,·cweights[1]·and·cweights[2]·contains·the·weights·of·the·two·components\xd | 23 | ···············separator,·cweights[1]·and·cweights[2]·contains·the·weights·of·the·two·components\xd |
24 | ·············································1\xd | 24 | ·············································1\xd |
25 | ·············2·····························BKL·:·DRAFT· | 25 | ·············2·····························BKL·:·DRAFT·March·20,·2024\xd |
26 | ················•·int·*regwghts·:·pointer·to·an·int·vector·of·size·nreg,·used·to·store·the·weights·of·the\xd | 26 | ················•·int·*regwghts·:·pointer·to·an·int·vector·of·size·nreg,·used·to·store·the·weights·of·the\xd |
27 | ··················domains·and·segments\xd | 27 | ··················domains·and·segments\xd |
28 | ················•·float·alpha·:·number·used·to·store·the·partition·evaluation·parameter,·the·cost·of·the\xd | 28 | ················•·float·alpha·:·number·used·to·store·the·partition·evaluation·parameter,·the·cost·of·the\xd |
29 | ··················partition·is\xd | 29 | ··················partition·is\xd |
30 | ··················balance·=·max(cweights[1],·cweights[2])/min(cweights[1],·cweights[2])·;\xd | 30 | ··················balance·=·max(cweights[1],·cweights[2])/min(cweights[1],·cweights[2])·;\xd |
31 | ··················cost····=·cweights[0]*(1.·+·alpha*balance)·;\xd | 31 | ··················cost····=·cweights[0]*(1.·+·alpha*balance)·;\xd |
32 | ·············1.2····Prototypes·and·descriptions·of·BKL·methods\xd | 32 | ·············1.2····Prototypes·and·descriptions·of·BKL·methods\xd |
Offset 11, 15 lines modified | Offset 11, 15 lines modified | ||
11 | %%EndComments | 11 | %%EndComments |
12 | %%BeginDefaults | 12 | %%BeginDefaults |
13 | %%ViewingOrientation:·1·0·0·1 | 13 | %%ViewingOrientation:·1·0·0·1 |
14 | %%EndDefaults | 14 | %%EndDefaults |
15 | %DVIPSWebPage:·(www.radicaleye.com) | 15 | %DVIPSWebPage:·(www.radicaleye.com) |
16 | %DVIPSCommandLine:·dvips·main·-o·BPG.ps | 16 | %DVIPSCommandLine:·dvips·main·-o·BPG.ps |
17 | %DVIPSParameters:·dpi=600 | 17 | %DVIPSParameters:·dpi=600 |
18 | %DVIPSSource:··TeX·output·202 | 18 | %DVIPSSource:··TeX·output·2024.03.20:1839 |
19 | %%BeginProcSet:·tex.pro·0·0 | 19 | %%BeginProcSet:·tex.pro·0·0 |
20 | %! | 20 | %! |
21 | /TeXDict·300·dict·def·TeXDict·begin/N{def}def/B{bind·def}N/S{exch}N/X{S | 21 | /TeXDict·300·dict·def·TeXDict·begin/N{def}def/B{bind·def}N/S{exch}N/X{S |
22 | N}B/A{dup}B/TR{translate}N/isls·false·N/vsize·11·72·mul·N/hsize·8.5·72 | 22 | N}B/A{dup}B/TR{translate}N/isls·false·N/vsize·11·72·mul·N/hsize·8.5·72 |
23 | mul·N/landplus90{false}def/@rigin{isls{[0·landplus90{1·-1}{-1·1}ifelse·0 | 23 | mul·N/landplus90{false}def/@rigin{isls{[0·landplus90{1·-1}{-1·1}ifelse·0 |
24 | 0·0]concat}if·72·Resolution·div·72·VResolution·div·neg·scale·isls{ | 24 | 0·0]concat}if·72·Resolution·div·72·VResolution·div·neg·scale·isls{ |
25 | landplus90{VResolution·72·div·vsize·mul·0·exch}{Resolution·-72·div·hsize | 25 | landplus90{VResolution·72·div·vsize·mul·0·exch}{Resolution·-72·div·hsize |
Offset 29, 15 lines modified | Offset 29, 15 lines modified | ||
29 | ········code·for·the·process·outweighed·(outline’d?)·the·BPG·code·for·the·data.·Now·if·someone·wants·to·modify\xd | 29 | ········code·for·the·process·outweighed·(outline’d?)·the·BPG·code·for·the·data.·Now·if·someone·wants·to·modify\xd |
30 | ········(and·hopefully·improve)·the·Kernighan-Lin·process,·they·won’t·alter·the·behavior·of·the·bipartite·graph\xd | 30 | ········(and·hopefully·improve)·the·Kernighan-Lin·process,·they·won’t·alter·the·behavior·of·the·bipartite·graph\xd |
31 | ········object.\xd | 31 | ········object.\xd |
32 | ·········Finding·the·Dulmage-Mendelsohn·decomposition·of·a·bipartite·graph·is·a·little·less·clear·cut.·When·the\xd | 32 | ·········Finding·the·Dulmage-Mendelsohn·decomposition·of·a·bipartite·graph·is·a·little·less·clear·cut.·When·the\xd |
33 | ········vertices·in·the·bipartite·graph·have·unit·weight,·the·process·is·straightforward.\xd | 33 | ········vertices·in·the·bipartite·graph·have·unit·weight,·the·process·is·straightforward.\xd |
34 | ·········•·Find·a·maximum·matching.\xd | 34 | ·········•·Find·a·maximum·matching.\xd |
35 | ·······························1\xd | 35 | ·······························1\xd |
36 | ········2················ | 36 | ········2················BPG·:·DRAFT·March·20,·2024\xd |
37 | ·········•·Drop·an·alternating·level·structure·from·exposed·nodes·in·X.\xd | 37 | ·········•·Drop·an·alternating·level·structure·from·exposed·nodes·in·X.\xd |
38 | ·········•·Drop·an·alternating·level·structure·from·exposed·nodes·in·Y·.\xd | 38 | ·········•·Drop·an·alternating·level·structure·from·exposed·nodes·in·Y·.\xd |
39 | ·········•·Based·on·the·two·previous·steps,·partition·X·into·three·pieces·and·Y·into·three·pieces·and·form·a·new\xd | 39 | ·········•·Based·on·the·two·previous·steps,·partition·X·into·three·pieces·and·Y·into·three·pieces·and·form·a·new\xd |
40 | ··········separator·from·the·pieces.\xd | 40 | ··········separator·from·the·pieces.\xd |
41 | ········(If·these·terms·are·not·familiar,·see·[?];·our·present·purpose·is·a·discussion·of·software·design,·not·algorithms.)\xd | 41 | ········(If·these·terms·are·not·familiar,·see·[?];·our·present·purpose·is·a·discussion·of·software·design,·not·algorithms.)\xd |
42 | ········Amatching·is·a·very·common·operation·on·a·bipartite·graph,·so·it·is·not·unreasonable·to·expand·the·data\xd | 42 | ········Amatching·is·a·very·common·operation·on·a·bipartite·graph,·so·it·is·not·unreasonable·to·expand·the·data\xd |
43 | ········object·to·include·some·mechanism·for·matching,·e.g.,·a·mate[]·vector.·Finding·a·maximum·matching·is\xd | 43 | ········object·to·include·some·mechanism·for·matching,·e.g.,·a·mate[]·vector.·Finding·a·maximum·matching·is\xd |
Offset 11, 15 lines modified | Offset 11, 15 lines modified | ||
11 | %%EndComments | 11 | %%EndComments |
12 | %%BeginDefaults | 12 | %%BeginDefaults |
13 | %%ViewingOrientation:·1·0·0·1 | 13 | %%ViewingOrientation:·1·0·0·1 |
14 | %%EndDefaults | 14 | %%EndDefaults |
15 | %DVIPSWebPage:·(www.radicaleye.com) | 15 | %DVIPSWebPage:·(www.radicaleye.com) |
16 | %DVIPSCommandLine:·dvips·main·-o·Chv.ps | 16 | %DVIPSCommandLine:·dvips·main·-o·Chv.ps |
17 | %DVIPSParameters:·dpi=600 | 17 | %DVIPSParameters:·dpi=600 |
18 | %DVIPSSource:··TeX·output·202 | 18 | %DVIPSSource:··TeX·output·2024.03.20:1839 |
19 | %%BeginProcSet:·tex.pro·0·0 | 19 | %%BeginProcSet:·tex.pro·0·0 |
20 | %! | 20 | %! |
21 | /TeXDict·300·dict·def·TeXDict·begin/N{def}def/B{bind·def}N/S{exch}N/X{S | 21 | /TeXDict·300·dict·def·TeXDict·begin/N{def}def/B{bind·def}N/S{exch}N/X{S |
22 | N}B/A{dup}B/TR{translate}N/isls·false·N/vsize·11·72·mul·N/hsize·8.5·72 | 22 | N}B/A{dup}B/TR{translate}N/isls·false·N/vsize·11·72·mul·N/hsize·8.5·72 |
23 | mul·N/landplus90{false}def/@rigin{isls{[0·landplus90{1·-1}{-1·1}ifelse·0 | 23 | mul·N/landplus90{false}def/@rigin{isls{[0·landplus90{1·-1}{-1·1}ifelse·0 |
24 | 0·0]concat}if·72·Resolution·div·72·VResolution·div·neg·scale·isls{ | 24 | 0·0]concat}if·72·Resolution·div·72·VResolution·div·neg·scale·isls{ |
25 | landplus90{VResolution·72·div·vsize·mul·0·exch}{Resolution·-72·div·hsize | 25 | landplus90{VResolution·72·div·vsize·mul·0·exch}{Resolution·-72·div·hsize |
Offset 23, 15 lines modified | Offset 23, 15 lines modified | ||
23 | ·························unnecessary,·that·we·put·on·the·Chv·object·—·the·number·of·rows·in·the·(2,1)·block·and·number·of\xd | 23 | ·························unnecessary,·that·we·put·on·the·Chv·object·—·the·number·of·rows·in·the·(2,1)·block·and·number·of\xd |
24 | ·························columns·in·the·(1,2)·block·are·equal.·The·Chv·object·is·used·within·the·context·of·a·factorization·of\xd | 24 | ·························columns·in·the·(1,2)·block·are·equal.·The·Chv·object·is·used·within·the·context·of·a·factorization·of\xd |
25 | ·························a·sparse·matrix·that·is·assumed·to·have·symmetric·structure.·If·we·ever·extend·the·code·to·handle\xd | 25 | ·························a·sparse·matrix·that·is·assumed·to·have·symmetric·structure.·If·we·ever·extend·the·code·to·handle\xd |
26 | ·························a·true·nonsymmetric·structure·factorization·(e.g.,·umfpack·and·superlu),·then·we·can·modify\xd | 26 | ·························a·true·nonsymmetric·structure·factorization·(e.g.,·umfpack·and·superlu),·then·we·can·modify\xd |
27 | ·························the·Chv·object·to·handle·unequal·rows·and·columns.\xd | 27 | ·························the·Chv·object·to·handle·unequal·rows·and·columns.\xd |
28 | ·······························During·a·factorization,·a·front·has·to·take·part·in·four·distinct·operations.\xd | 28 | ·······························During·a·factorization,·a·front·has·to·take·part·in·four·distinct·operations.\xd |
29 | ·······································································································1\xd | 29 | ·······································································································1\xd |
30 | ····························2································································· | 30 | ····························2·································································Chv·:·DRAFT·March·20,·2024\xd |
31 | ··································1.·Assemble·entries·from·the·original·matrix·(or·matrix·pencil).·(See·the·Chv·addChevron()\xd | 31 | ··································1.·Assemble·entries·from·the·original·matrix·(or·matrix·pencil).·(See·the·Chv·addChevron()\xd |
32 | ·······································method.)\xd | 32 | ·······································method.)\xd |
33 | ··································2.·Accumulate·updates·from·descendant·fronts.·(See·the·Chv·update{S,H,N}()·methods.)\xd | 33 | ··································2.·Accumulate·updates·from·descendant·fronts.·(See·the·Chv·update{S,H,N}()·methods.)\xd |
34 | ··································3.·Assembleanypostponeddatafromitschildrenfronts.·(SeetheChv·assemblePostponedData()\xd | 34 | ··································3.·Assembleanypostponeddatafromitschildrenfronts.·(SeetheChv·assemblePostponedData()\xd |
35 | ·······································method.)\xd | 35 | ·······································method.)\xd |
36 | ··································4.·Computethefactorization·ofthecompletely·assembledfront.·(SeetheChv·factor()method.)\xd | 36 | ··································4.·Computethefactorization·ofthecompletely·assembledfront.·(SeetheChv·factor()method.)\xd |
37 | ···································The·implementor·of·a·front·object·has·a·great·deal·of·freedom·to·design·the·underlying·data\xd | 37 | ···································The·implementor·of·a·front·object·has·a·great·deal·of·freedom·to·design·the·underlying·data\xd |
Offset 10, 15 lines modified | Offset 10, 15 lines modified | ||
10 | %%EndComments | 10 | %%EndComments |
11 | %%BeginDefaults | 11 | %%BeginDefaults |
12 | %%ViewingOrientation:·1·0·0·1 | 12 | %%ViewingOrientation:·1·0·0·1 |
13 | %%EndDefaults | 13 | %%EndDefaults |
14 | %DVIPSWebPage:·(www.radicaleye.com) | 14 | %DVIPSWebPage:·(www.radicaleye.com) |
15 | %DVIPSCommandLine:·dvips·main·-o·ChvList.ps | 15 | %DVIPSCommandLine:·dvips·main·-o·ChvList.ps |
16 | %DVIPSParameters:·dpi=600 | 16 | %DVIPSParameters:·dpi=600 |
17 | %DVIPSSource:··TeX·output·202 | 17 | %DVIPSSource:··TeX·output·2024.03.20:1839 |
18 | %%BeginProcSet:·tex.pro·0·0 | 18 | %%BeginProcSet:·tex.pro·0·0 |
19 | %! | 19 | %! |
20 | /TeXDict·300·dict·def·TeXDict·begin/N{def}def/B{bind·def}N/S{exch}N/X{S | 20 | /TeXDict·300·dict·def·TeXDict·begin/N{def}def/B{bind·def}N/S{exch}N/X{S |
21 | N}B/A{dup}B/TR{translate}N/isls·false·N/vsize·11·72·mul·N/hsize·8.5·72 | 21 | N}B/A{dup}B/TR{translate}N/isls·false·N/vsize·11·72·mul·N/hsize·8.5·72 |
22 | mul·N/landplus90{false}def/@rigin{isls{[0·landplus90{1·-1}{-1·1}ifelse·0 | 22 | mul·N/landplus90{false}def/@rigin{isls{[0·landplus90{1·-1}{-1·1}ifelse·0 |
23 | 0·0]concat}if·72·Resolution·div·72·VResolution·div·neg·scale·isls{ | 23 | 0·0]concat}if·72·Resolution·div·72·VResolution·div·neg·scale·isls{ |
24 | landplus90{VResolution·72·div·vsize·mul·0·exch}{Resolution·-72·div·hsize | 24 | landplus90{VResolution·72·div·vsize·mul·0·exch}{Resolution·-72·div·hsize |
Offset 22, 15 lines modified | Offset 22, 15 lines modified | ||
22 | ·······The·first·two·operations·are·queries,·and·can·be·done·without·locking·the·list.·The·third·operation\xd | 22 | ·······The·first·two·operations·are·queries,·and·can·be·done·without·locking·the·list.·The·third·operation\xd |
23 | ·······needs·a·lock·only·when·two·or·more·threads·will·be·inserting·objects·into·the·list.·The·fourth\xd | 23 | ·······needs·a·lock·only·when·two·or·more·threads·will·be·inserting·objects·into·the·list.·The·fourth\xd |
24 | ·······operation·requires·a·lock·only·when·one·thread·will·add·an·object·while·another·thread·removes\xd | 24 | ·······operation·requires·a·lock·only·when·one·thread·will·add·an·object·while·another·thread·removes\xd |
25 | ·······the·object·and·the·incoming·count·is·not·yet·zero.\xd | 25 | ·······the·object·and·the·incoming·count·is·not·yet·zero.\xd |
26 | ·········Having·a·lock·associated·with·a·ChvList·object·is·optional,·for·example,·it·is·not·needed·during\xd | 26 | ·········Having·a·lock·associated·with·a·ChvList·object·is·optional,·for·example,·it·is·not·needed·during\xd |
27 | ·······a·serial·factorization·nor·a·MPI·factorization.·In·the·latter·case·there·is·one·ChvList·per·process.\xd | 27 | ·······a·serial·factorization·nor·a·MPI·factorization.·In·the·latter·case·there·is·one·ChvList·per·process.\xd |
28 | ·····························1\xd | 28 | ·····························1\xd |
29 | ··············2··························· | 29 | ··············2···························ChvList·:·DRAFT·March·20,·2024\xd |
30 | ··············For·a·multithreaded·factorization·there·is·one·ChvList·object·that·is·shared·by·all·threads.·The\xd | 30 | ··············For·a·multithreaded·factorization·there·is·one·ChvList·object·that·is·shared·by·all·threads.·The\xd |
31 | ··············mutualexclusion·lock·that·is·(optionally)·embedded·in·the·ChvListobject·is·a·Lock·object·from·this\xd | 31 | ··············mutualexclusion·lock·that·is·(optionally)·embedded·in·the·ChvListobject·is·a·Lock·object·from·this\xd |
32 | ··············library.·It·is·inside·the·Lock·object·that·we·have·a·mutual·exclusion·lock.·Presently·we·support·the\xd | 32 | ··············library.·It·is·inside·the·Lock·object·that·we·have·a·mutual·exclusion·lock.·Presently·we·support·the\xd |
33 | ··············Solaris·and·POSIX·thread·packages.·Porting·the·multithreaded·codes·to·another·platform·should\xd | 33 | ··············Solaris·and·POSIX·thread·packages.·Porting·the·multithreaded·codes·to·another·platform·should\xd |
34 | ··············be·simple·if·the·POSIX·thread·package·is·present.·Another·type·of·thread·package·will·require\xd | 34 | ··············be·simple·if·the·POSIX·thread·package·is·present.·Another·type·of·thread·package·will·require\xd |
35 | ··············some·modifications·to·the·Lock·object,·but·none·to·the·ChvList·objects.\xd | 35 | ··············some·modifications·to·the·Lock·object,·but·none·to·the·ChvList·objects.\xd |
36 | ··············1.1···Data·Structure\xd | 36 | ··············1.1···Data·Structure\xd |
Offset 10, 15 lines modified | Offset 10, 15 lines modified | ||
10 | %%EndComments | 10 | %%EndComments |
11 | %%BeginDefaults | 11 | %%BeginDefaults |
12 | %%ViewingOrientation:·1·0·0·1 | 12 | %%ViewingOrientation:·1·0·0·1 |
13 | %%EndDefaults | 13 | %%EndDefaults |
14 | %DVIPSWebPage:·(www.radicaleye.com) | 14 | %DVIPSWebPage:·(www.radicaleye.com) |
15 | %DVIPSCommandLine:·dvips·main·-o·ChvManager.ps | 15 | %DVIPSCommandLine:·dvips·main·-o·ChvManager.ps |
16 | %DVIPSParameters:·dpi=600 | 16 | %DVIPSParameters:·dpi=600 |
17 | %DVIPSSource:··TeX·output·202 | 17 | %DVIPSSource:··TeX·output·2024.03.20:1839 |
18 | %%BeginProcSet:·tex.pro·0·0 | 18 | %%BeginProcSet:·tex.pro·0·0 |
19 | %! | 19 | %! |
20 | /TeXDict·300·dict·def·TeXDict·begin/N{def}def/B{bind·def}N/S{exch}N/X{S | 20 | /TeXDict·300·dict·def·TeXDict·begin/N{def}def/B{bind·def}N/S{exch}N/X{S |
21 | N}B/A{dup}B/TR{translate}N/isls·false·N/vsize·11·72·mul·N/hsize·8.5·72 | 21 | N}B/A{dup}B/TR{translate}N/isls·false·N/vsize·11·72·mul·N/hsize·8.5·72 |
22 | mul·N/landplus90{false}def/@rigin{isls{[0·landplus90{1·-1}{-1·1}ifelse·0 | 22 | mul·N/landplus90{false}def/@rigin{isls{[0·landplus90{1·-1}{-1·1}ifelse·0 |
23 | 0·0]concat}if·72·Resolution·div·72·VResolution·div·neg·scale·isls{ | 23 | 0·0]concat}if·72·Resolution·div·72·VResolution·div·neg·scale·isls{ |
24 | landplus90{VResolution·72·div·vsize·mul·0·exch}{Resolution·-72·div·hsize | 24 | landplus90{VResolution·72·div·vsize·mul·0·exch}{Resolution·-72·div·hsize |
Offset 23, 15 lines modified | Offset 23, 15 lines modified | ||
23 | ····················finds·a·smallest·object·of·that·size·or·larger.)·If·there·is·no·object·on·the·free·pool·of·sufficient\xd | 23 | ····················finds·a·smallest·object·of·that·size·or·larger.)·If·there·is·no·object·on·the·free·pool·of·sufficient\xd |
24 | ····················size,·one·is·created·and·returned.·When·the·user·releases·an·object·to·the·manager,·the·object\xd | 24 | ····················size,·one·is·created·and·returned.·When·the·user·releases·an·object·to·the·manager,·the·object\xd |
25 | ····················is·placed·on·the·free·pool.\xd | 25 | ····················is·placed·on·the·free·pool.\xd |
26 | ···············For·the·factorization,·serial,·multithreaded·or·MPI,·we·recommend·using·the·recycling·mode.\xd | 26 | ···············For·the·factorization,·serial,·multithreaded·or·MPI,·we·recommend·using·the·recycling·mode.\xd |
27 | ··················A·multithreaded·environment·creates·some·difficulties.·Should·there·be·one·manager·object\xd | 27 | ··················A·multithreaded·environment·creates·some·difficulties.·Should·there·be·one·manager·object\xd |
28 | ···············per·thread,·or·should·all·the·threads·share·one·object?·We·have·chosen·the·latter·course,·but·this\xd | 28 | ···············per·thread,·or·should·all·the·threads·share·one·object?·We·have·chosen·the·latter·course,·but·this\xd |
29 | ····························································1\xd | 29 | ····························································1\xd |
30 | ··············2···························DChvList·:·DRAFT· | 30 | ··············2···························DChvList·:·DRAFT·March·20,·2024\xd |
31 | ··············requires·that·a·lock·be·present·to·guard·the·critical·section·of·code·where·one·searches·or·adds·an\xd | 31 | ··············requires·that·a·lock·be·present·to·guard·the·critical·section·of·code·where·one·searches·or·adds·an\xd |
32 | ··············object·to·the·list.·The·lock·we·use·is·a·Lock·object,·and·so·the·ChvManager·code·is·completely\xd | 32 | ··············object·to·the·list.·The·lock·we·use·is·a·Lock·object,·and·so·the·ChvManager·code·is·completely\xd |
33 | ··············independent·of·the·thread·package.·Porting·to·a·new·system·might·require·some·modification·to\xd | 33 | ··············independent·of·the·thread·package.·Porting·to·a·new·system·might·require·some·modification·to\xd |
34 | ··············the·Lock,·but·none·to·the·manager·object.\xd | 34 | ··············the·Lock,·but·none·to·the·manager·object.\xd |
35 | ·················Each·manager·object·keeps·track·of·certain·statistics,·bytes·in·their·workspaces,·the·total\xd | 35 | ·················Each·manager·object·keeps·track·of·certain·statistics,·bytes·in·their·workspaces,·the·total\xd |
36 | ··············number·of·bytes·requested,·the·number·of·requests·for·a·Chv·objects,·the·number·of·releases,·and\xd | 36 | ··············number·of·bytes·requested,·the·number·of·requests·for·a·Chv·objects,·the·number·of·releases,·and\xd |
37 | ··············the·number·of·locks·and·unlocks.\xd | 37 | ··············the·number·of·locks·and·unlocks.\xd |
Offset 11, 15 lines modified | Offset 11, 15 lines modified | ||
11 | %%EndComments | 11 | %%EndComments |
12 | %%BeginDefaults | 12 | %%BeginDefaults |
13 | %%ViewingOrientation:·1·0·0·1 | 13 | %%ViewingOrientation:·1·0·0·1 |
14 | %%EndDefaults | 14 | %%EndDefaults |
15 | %DVIPSWebPage:·(www.radicaleye.com) | 15 | %DVIPSWebPage:·(www.radicaleye.com) |
16 | %DVIPSCommandLine:·dvips·main·-o·Coords.ps | 16 | %DVIPSCommandLine:·dvips·main·-o·Coords.ps |
17 | %DVIPSParameters:·dpi=600 | 17 | %DVIPSParameters:·dpi=600 |
18 | %DVIPSSource:··TeX·output·202 | 18 | %DVIPSSource:··TeX·output·2024.03.20:1839 |
19 | %%BeginProcSet:·tex.pro·0·0 | 19 | %%BeginProcSet:·tex.pro·0·0 |
20 | %! | 20 | %! |
21 | /TeXDict·300·dict·def·TeXDict·begin/N{def}def/B{bind·def}N/S{exch}N/X{S | 21 | /TeXDict·300·dict·def·TeXDict·begin/N{def}def/B{bind·def}N/S{exch}N/X{S |
22 | N}B/A{dup}B/TR{translate}N/isls·false·N/vsize·11·72·mul·N/hsize·8.5·72 | 22 | N}B/A{dup}B/TR{translate}N/isls·false·N/vsize·11·72·mul·N/hsize·8.5·72 |
23 | mul·N/landplus90{false}def/@rigin{isls{[0·landplus90{1·-1}{-1·1}ifelse·0 | 23 | mul·N/landplus90{false}def/@rigin{isls{[0·landplus90{1·-1}{-1·1}ifelse·0 |
24 | 0·0]concat}if·72·Resolution·div·72·VResolution·div·neg·scale·isls{ | 24 | 0·0]concat}if·72·Resolution·div·72·VResolution·div·neg·scale·isls{ |
25 | landplus90{VResolution·72·div·vsize·mul·0·exch}{Resolution·-72·div·hsize | 25 | landplus90{VResolution·72·div·vsize·mul·0·exch}{Resolution·-72·div·hsize |
Offset 18, 15 lines modified | Offset 18, 15 lines modified | ||
18 | ··················1.2·····Prototypes·and·descriptions·of·Coords·methods\xd | 18 | ··················1.2·····Prototypes·and·descriptions·of·Coords·methods\xd |
19 | ··················This·section·contains·brief·descriptions·including·prototypes·of·all·methods·that·belong·to·the\xd | 19 | ··················This·section·contains·brief·descriptions·including·prototypes·of·all·methods·that·belong·to·the\xd |
20 | ··················Coords·object.\xd | 20 | ··················Coords·object.\xd |
21 | ··················1.2.1····Basic·methods\xd | 21 | ··················1.2.1····Basic·methods\xd |
22 | ··················As·usual,·there·are·four·basic·methods·to·support·object·creation,·setting·default·fields,·clearing\xd | 22 | ··················As·usual,·there·are·four·basic·methods·to·support·object·creation,·setting·default·fields,·clearing\xd |
23 | ··················any·allocated·data,·and·free’ing·the·object.\xd | 23 | ··················any·allocated·data,·and·free’ing·the·object.\xd |
24 | ·········································································1\xd | 24 | ·········································································1\xd |
25 | ··············2····························Coords·:·DRAFT· | 25 | ··············2····························Coords·:·DRAFT·March·20,·2024\xd |
26 | ················1.·Coords·*·Coords_new·(·void·)·;\xd | 26 | ················1.·Coords·*·Coords_new·(·void·)·;\xd |
27 | ···················This·method·simply·allocates·storage·for·the·Coords·structure·and·then·sets·the·default·fields\xd | 27 | ···················This·method·simply·allocates·storage·for·the·Coords·structure·and·then·sets·the·default·fields\xd |
28 | ···················by·a·call·to·Coords·setDefaultFields().\xd | 28 | ···················by·a·call·to·Coords·setDefaultFields().\xd |
29 | ················2.·void·Coords_setDefaultFields·(·Coords·*coords·)·;\xd | 29 | ················2.·void·Coords_setDefaultFields·(·Coords·*coords·)·;\xd |
30 | ···················This·method·sets·the·structure’s·fields·are·set·to·default·values:·type·=·COORDS·BY·TUPLE,\xd | 30 | ···················This·method·sets·the·structure’s·fields·are·set·to·default·values:·type·=·COORDS·BY·TUPLE,\xd |
31 | ···················ndim·=·ncoor·=·0·and·coors·=·NULL.\xd | 31 | ···················ndim·=·ncoor·=·0·and·coors·=·NULL.\xd |
32 | ···················Error·checking:·If·coords·is·NULL,·an·error·message·is·printed·and·the·program·exits.\xd | 32 | ···················Error·checking:·If·coords·is·NULL,·an·error·message·is·printed·and·the·program·exits.\xd |
Offset 10, 15 lines modified | Offset 10, 15 lines modified | ||
10 | %%EndComments | 10 | %%EndComments |
11 | %%BeginDefaults | 11 | %%BeginDefaults |
12 | %%ViewingOrientation:·1·0·0·1 | 12 | %%ViewingOrientation:·1·0·0·1 |
13 | %%EndDefaults | 13 | %%EndDefaults |
14 | %DVIPSWebPage:·(www.radicaleye.com) | 14 | %DVIPSWebPage:·(www.radicaleye.com) |
15 | %DVIPSCommandLine:·dvips·main·-o·DSTree.ps | 15 | %DVIPSCommandLine:·dvips·main·-o·DSTree.ps |
16 | %DVIPSParameters:·dpi=600 | 16 | %DVIPSParameters:·dpi=600 |
17 | %DVIPSSource:··TeX·output·202 | 17 | %DVIPSSource:··TeX·output·2024.03.20:1839 |
18 | %%BeginProcSet:·tex.pro·0·0 | 18 | %%BeginProcSet:·tex.pro·0·0 |
19 | %! | 19 | %! |
20 | /TeXDict·300·dict·def·TeXDict·begin/N{def}def/B{bind·def}N/S{exch}N/X{S | 20 | /TeXDict·300·dict·def·TeXDict·begin/N{def}def/B{bind·def}N/S{exch}N/X{S |
21 | N}B/A{dup}B/TR{translate}N/isls·false·N/vsize·11·72·mul·N/hsize·8.5·72 | 21 | N}B/A{dup}B/TR{translate}N/isls·false·N/vsize·11·72·mul·N/hsize·8.5·72 |
22 | mul·N/landplus90{false}def/@rigin{isls{[0·landplus90{1·-1}{-1·1}ifelse·0 | 22 | mul·N/landplus90{false}def/@rigin{isls{[0·landplus90{1·-1}{-1·1}ifelse·0 |
23 | 0·0]concat}if·72·Resolution·div·72·VResolution·div·neg·scale·isls{ | 23 | 0·0]concat}if·72·Resolution·div·72·VResolution·div·neg·scale·isls{ |
24 | landplus90{VResolution·72·div·vsize·mul·0·exch}{Resolution·-72·div·hsize | 24 | landplus90{VResolution·72·div·vsize·mul·0·exch}{Resolution·-72·div·hsize |
Offset 21, 15 lines modified | Offset 21, 15 lines modified | ||
21 | ···········The·DSTree·object·has·a·very·simple·data·structure.·It·contains·a·Tree·object·to·represent·the\xd | 21 | ···········The·DSTree·object·has·a·very·simple·data·structure.·It·contains·a·Tree·object·to·represent·the\xd |
22 | ···········tree·fields·of·the·domains·and·separators,·and·an·IV·object·to·hold·the·map·from·the·vertices·to\xd | 22 | ···········tree·fields·of·the·domains·and·separators,·and·an·IV·object·to·hold·the·map·from·the·vertices·to\xd |
23 | ···········the·domains·and·separators.\xd | 23 | ···········the·domains·and·separators.\xd |
24 | ·············•·Tree·*tree·:·pointer·to·the·Tree·object\xd | 24 | ·············•·Tree·*tree·:·pointer·to·the·Tree·object\xd |
25 | ·············•·IV·*mapIV·:·pointer·to·the·IV·object·that·holds·the·map·from·vertices·to·domains·and\xd | 25 | ·············•·IV·*mapIV·:·pointer·to·the·IV·object·that·holds·the·map·from·vertices·to·domains·and\xd |
26 | ···············separators.\xd | 26 | ···············separators.\xd |
27 | ·············································1\xd | 27 | ·············································1\xd |
28 | ··············2·····························Tree·:·DRAFT· | 28 | ··············2·····························Tree·:·DRAFT·March·20,·2024\xd |
29 | ··············1.2···Prototypes·and·descriptions·of·DSTree·methods\xd | 29 | ··············1.2···Prototypes·and·descriptions·of·DSTree·methods\xd |
30 | ··············This·section·contains·brief·descriptions·including·prototypes·of·all·methods·that·belong·to·the\xd | 30 | ··············This·section·contains·brief·descriptions·including·prototypes·of·all·methods·that·belong·to·the\xd |
31 | ··············DSTree·object.\xd | 31 | ··············DSTree·object.\xd |
32 | ··············1.2.1··Basic·methods\xd | 32 | ··············1.2.1··Basic·methods\xd |
33 | ··············As·usual,·there·are·four·basic·methods·to·support·object·creation,·setting·default·fields,·clearing\xd | 33 | ··············As·usual,·there·are·four·basic·methods·to·support·object·creation,·setting·default·fields,·clearing\xd |
34 | ··············any·allocated·data,·and·free’ing·the·object.\xd | 34 | ··············any·allocated·data,·and·free’ing·the·object.\xd |
35 | ················1.·DSTree·*·DSTree_new·(·void·)·;\xd | 35 | ················1.·DSTree·*·DSTree_new·(·void·)·;\xd |
Offset 11, 15 lines modified | Offset 11, 15 lines modified | ||
11 | %%EndComments | 11 | %%EndComments |
12 | %%BeginDefaults | 12 | %%BeginDefaults |
13 | %%ViewingOrientation:·1·0·0·1 | 13 | %%ViewingOrientation:·1·0·0·1 |
14 | %%EndDefaults | 14 | %%EndDefaults |
15 | %DVIPSWebPage:·(www.radicaleye.com) | 15 | %DVIPSWebPage:·(www.radicaleye.com) |
16 | %DVIPSCommandLine:·dvips·main·-o·DV.ps | 16 | %DVIPSCommandLine:·dvips·main·-o·DV.ps |
17 | %DVIPSParameters:·dpi=600 | 17 | %DVIPSParameters:·dpi=600 |
18 | %DVIPSSource:··TeX·output·202 | 18 | %DVIPSSource:··TeX·output·2024.03.20:1839 |
19 | %%BeginProcSet:·tex.pro·0·0 | 19 | %%BeginProcSet:·tex.pro·0·0 |
20 | %! | 20 | %! |
21 | /TeXDict·300·dict·def·TeXDict·begin/N{def}def/B{bind·def}N/S{exch}N/X{S | 21 | /TeXDict·300·dict·def·TeXDict·begin/N{def}def/B{bind·def}N/S{exch}N/X{S |
22 | N}B/A{dup}B/TR{translate}N/isls·false·N/vsize·11·72·mul·N/hsize·8.5·72 | 22 | N}B/A{dup}B/TR{translate}N/isls·false·N/vsize·11·72·mul·N/hsize·8.5·72 |
23 | mul·N/landplus90{false}def/@rigin{isls{[0·landplus90{1·-1}{-1·1}ifelse·0 | 23 | mul·N/landplus90{false}def/@rigin{isls{[0·landplus90{1·-1}{-1·1}ifelse·0 |
24 | 0·0]concat}if·72·Resolution·div·72·VResolution·div·neg·scale·isls{ | 24 | 0·0]concat}if·72·Resolution·div·72·VResolution·div·neg·scale·isls{ |
25 | landplus90{VResolution·72·div·vsize·mul·0·exch}{Resolution·-72·div·hsize | 25 | landplus90{VResolution·72·div·vsize·mul·0·exch}{Resolution·-72·div·hsize |
Offset 22, 15 lines modified | Offset 22, 15 lines modified | ||
22 | ···············simplest·operations,·and·so·when·we·need·to·manipulate·an·double·vector·inside·a·loop,·we·extract\xd | 22 | ···············simplest·operations,·and·so·when·we·need·to·manipulate·an·double·vector·inside·a·loop,·we·extract\xd |
23 | ···············out·the·size·and·pointer·to·the·base·array·from·the·DV·object.·On·the·other·hand,·the·convenience\xd | 23 | ···············out·the·size·and·pointer·to·the·base·array·from·the·DV·object.·On·the·other·hand,·the·convenience\xd |
24 | ···············makes·it·a·widely·used·object.\xd | 24 | ···············makes·it·a·widely·used·object.\xd |
25 | ···············1.1····Data·Structure\xd | 25 | ···············1.1····Data·Structure\xd |
26 | ···············The·DV·structure·has·three·fields.\xd | 26 | ···············The·DV·structure·has·three·fields.\xd |
27 | ··················•·int·size·:·present·size·of·the·vector.\xd | 27 | ··················•·int·size·:·present·size·of·the·vector.\xd |
28 | ·····························································1\xd | 28 | ·····························································1\xd |
29 | ··············2······························ | 29 | ··············2······························DV·:·DRAFT·March·20,·2024\xd |
30 | ·················•·int·maxsize·:·maximum·size·of·the·vector.\xd | 30 | ·················•·int·maxsize·:·maximum·size·of·the·vector.\xd |
31 | ·················•·int·owned·:·owner·flag·for·the·data.·When·owned·=·1,·storage·for·owned·double’s·has·been\xd | 31 | ·················•·int·owned·:·owner·flag·for·the·data.·When·owned·=·1,·storage·for·owned·double’s·has·been\xd |
32 | ···················allocated·by·this·object·and·can·be·free’d·by·the·object.·When·owned·==·0·but·size·>·0·,\xd | 32 | ···················allocated·by·this·object·and·can·be·free’d·by·the·object.·When·owned·==·0·but·size·>·0·,\xd |
33 | ···················this·object·points·to·entries·that·have·been·allocated·elsewhere,·and·these·entries·will·not·be\xd | 33 | ···················this·object·points·to·entries·that·have·been·allocated·elsewhere,·and·these·entries·will·not·be\xd |
34 | ···················free’d·by·this·object.\xd | 34 | ···················free’d·by·this·object.\xd |
35 | ·················•·double·*vec·:·pointer·to·the·base·address·of·the·double·vector\xd | 35 | ·················•·double·*vec·:·pointer·to·the·base·address·of·the·double·vector\xd |
36 | ··············The·size,·maxsize,·nowned·and·vec·fields·need·never·be·accessed·directly·—·see·the·DV·size(),\xd | 36 | ··············The·size,·maxsize,·nowned·and·vec·fields·need·never·be·accessed·directly·—·see·the·DV·size(),\xd |
Offset 10, 15 lines modified | Offset 10, 15 lines modified | ||
10 | %%EndComments | 10 | %%EndComments |
11 | %%BeginDefaults | 11 | %%BeginDefaults |
12 | %%ViewingOrientation:·1·0·0·1 | 12 | %%ViewingOrientation:·1·0·0·1 |
13 | %%EndDefaults | 13 | %%EndDefaults |
14 | %DVIPSWebPage:·(www.radicaleye.com) | 14 | %DVIPSWebPage:·(www.radicaleye.com) |
15 | %DVIPSCommandLine:·dvips·main·-o·DenseMtx.ps | 15 | %DVIPSCommandLine:·dvips·main·-o·DenseMtx.ps |
16 | %DVIPSParameters:·dpi=600 | 16 | %DVIPSParameters:·dpi=600 |
17 | %DVIPSSource:··TeX·output·202 | 17 | %DVIPSSource:··TeX·output·2024.03.20:1839 |
18 | %%BeginProcSet:·tex.pro·0·0 | 18 | %%BeginProcSet:·tex.pro·0·0 |
19 | %! | 19 | %! |
20 | /TeXDict·300·dict·def·TeXDict·begin/N{def}def/B{bind·def}N/S{exch}N/X{S | 20 | /TeXDict·300·dict·def·TeXDict·begin/N{def}def/B{bind·def}N/S{exch}N/X{S |
21 | N}B/A{dup}B/TR{translate}N/isls·false·N/vsize·11·72·mul·N/hsize·8.5·72 | 21 | N}B/A{dup}B/TR{translate}N/isls·false·N/vsize·11·72·mul·N/hsize·8.5·72 |
22 | mul·N/landplus90{false}def/@rigin{isls{[0·landplus90{1·-1}{-1·1}ifelse·0 | 22 | mul·N/landplus90{false}def/@rigin{isls{[0·landplus90{1·-1}{-1·1}ifelse·0 |
23 | 0·0]concat}if·72·Resolution·div·72·VResolution·div·neg·scale·isls{ | 23 | 0·0]concat}if·72·Resolution·div·72·VResolution·div·neg·scale·isls{ |
24 | landplus90{VResolution·72·div·vsize·mul·0·exch}{Resolution·-72·div·hsize | 24 | landplus90{VResolution·72·div·vsize·mul·0·exch}{Resolution·-72·div·hsize |
Offset 22, 15 lines modified | Offset 22, 15 lines modified | ||
22 | ·············•·double·*entries·:·pointer·to·the·base·address·of·the·double·vector·that·contains·the·entries.\xd | 22 | ·············•·double·*entries·:·pointer·to·the·base·address·of·the·double·vector·that·contains·the·entries.\xd |
23 | ·············•·DV·wrkDV·:·object·that·manages·the·owned·working·storage.\xd | 23 | ·············•·DV·wrkDV·:·object·that·manages·the·owned·working·storage.\xd |
24 | ·············•·DenseMtx·*next·:·link·to·a·next·object·in·a·singly·linked·list.\xd | 24 | ·············•·DenseMtx·*next·:·link·to·a·next·object·in·a·singly·linked·list.\xd |
25 | ·············One·can·query·the·type·of·entries·via·two·macros.\xd | 25 | ·············One·can·query·the·type·of·entries·via·two·macros.\xd |
26 | ·············•·DENSEMTX·IS·REAL(mtx)·returns·1·if·the·matrix·has·real·entries,·and·0·otherwise.\xd | 26 | ·············•·DENSEMTX·IS·REAL(mtx)·returns·1·if·the·matrix·has·real·entries,·and·0·otherwise.\xd |
27 | ·············•·DENSEMTX·IS·COMPLEX(mtx)·returns·1·if·the·matrix·has·complex·entries,·and·0·otherwise.\xd | 27 | ·············•·DENSEMTX·IS·COMPLEX(mtx)·returns·1·if·the·matrix·has·complex·entries,·and·0·otherwise.\xd |
28 | ·············································1\xd | 28 | ·············································1\xd |
29 | ··············2····························DenseMtx·:·DRAFT· | 29 | ··············2····························DenseMtx·:·DRAFT·March·20,·2024\xd |
30 | ··············1.2···Prototypes·and·descriptions·of·DenseMtx·methods\xd | 30 | ··············1.2···Prototypes·and·descriptions·of·DenseMtx·methods\xd |
31 | ··············This·section·contains·brief·descriptions·including·prototypes·of·all·methods·that·belong·to·the·DenseMtx\xd | 31 | ··············This·section·contains·brief·descriptions·including·prototypes·of·all·methods·that·belong·to·the·DenseMtx\xd |
32 | ··············object.\xd | 32 | ··············object.\xd |
33 | ··············1.2.1··Basic·methods\xd | 33 | ··············1.2.1··Basic·methods\xd |
34 | ··············Asusual,·there·are·four·basic·methods·to·support·object·creation,·setting·default·fields,·clearing·any·allocated\xd | 34 | ··············Asusual,·there·are·four·basic·methods·to·support·object·creation,·setting·default·fields,·clearing·any·allocated\xd |
35 | ··············data,·and·free’ing·the·object.\xd | 35 | ··············data,·and·free’ing·the·object.\xd |
36 | ················1.·DenseMtx·*·DenseMtx_new·(·void·)·;\xd | 36 | ················1.·DenseMtx·*·DenseMtx_new·(·void·)·;\xd |
Offset 10, 15 lines modified | Offset 10, 15 lines modified | ||
10 | %%EndComments | 10 | %%EndComments |
11 | %%BeginDefaults | 11 | %%BeginDefaults |
12 | %%ViewingOrientation:·1·0·0·1 | 12 | %%ViewingOrientation:·1·0·0·1 |
13 | %%EndDefaults | 13 | %%EndDefaults |
14 | %DVIPSWebPage:·(www.radicaleye.com) | 14 | %DVIPSWebPage:·(www.radicaleye.com) |
15 | %DVIPSCommandLine:·dvips·main·-o·Drand.ps | 15 | %DVIPSCommandLine:·dvips·main·-o·Drand.ps |
16 | %DVIPSParameters:·dpi=600 | 16 | %DVIPSParameters:·dpi=600 |
17 | %DVIPSSource:··TeX·output·202 | 17 | %DVIPSSource:··TeX·output·2024.03.20:1839 |
18 | %%BeginProcSet:·tex.pro·0·0 | 18 | %%BeginProcSet:·tex.pro·0·0 |
19 | %! | 19 | %! |
20 | /TeXDict·300·dict·def·TeXDict·begin/N{def}def/B{bind·def}N/S{exch}N/X{S | 20 | /TeXDict·300·dict·def·TeXDict·begin/N{def}def/B{bind·def}N/S{exch}N/X{S |
21 | N}B/A{dup}B/TR{translate}N/isls·false·N/vsize·11·72·mul·N/hsize·8.5·72 | 21 | N}B/A{dup}B/TR{translate}N/isls·false·N/vsize·11·72·mul·N/hsize·8.5·72 |
22 | mul·N/landplus90{false}def/@rigin{isls{[0·landplus90{1·-1}{-1·1}ifelse·0 | 22 | mul·N/landplus90{false}def/@rigin{isls{[0·landplus90{1·-1}{-1·1}ifelse·0 |
23 | 0·0]concat}if·72·Resolution·div·72·VResolution·div·neg·scale·isls{ | 23 | 0·0]concat}if·72·Resolution·div·72·VResolution·div·neg·scale·isls{ |
24 | landplus90{VResolution·72·div·vsize·mul·0·exch}{Resolution·-72·div·hsize | 24 | landplus90{VResolution·72·div·vsize·mul·0·exch}{Resolution·-72·div·hsize |
Offset 15, 15 lines modified | Offset 15, 15 lines modified | ||
15 | ·············•·double·mean·:·mean·for·a·normal·distribution\xd | 15 | ·············•·double·mean·:·mean·for·a·normal·distribution\xd |
16 | ·············•·double·sigma·:·variation·for·a·normal·distribution\xd | 16 | ·············•·double·sigma·:·variation·for·a·normal·distribution\xd |
17 | ·············•·int·mode:·mode·of·the·object,·uniform·is·1,·normal·is·2\xd | 17 | ·············•·int·mode:·mode·of·the·object,·uniform·is·1,·normal·is·2\xd |
18 | ···········1.2··Prototypes·and·descriptions·of·Drand·methods\xd | 18 | ···········1.2··Prototypes·and·descriptions·of·Drand·methods\xd |
19 | ···········This·section·contains·brief·descriptions·including·prototypes·of·all·methods·that·belong·to·the\xd | 19 | ···········This·section·contains·brief·descriptions·including·prototypes·of·all·methods·that·belong·to·the\xd |
20 | ···········Drand·object.\xd | 20 | ···········Drand·object.\xd |
21 | ·············································1\xd | 21 | ·············································1\xd |
22 | ··············2···························· | 22 | ··············2····························Drand·:·DRAFT·March·20,·2024\xd |
23 | ··············1.2.1··Basic·methods\xd | 23 | ··············1.2.1··Basic·methods\xd |
24 | ··············As·usual,·there·are·four·basic·methods·to·support·object·creation,·setting·default·fields,·clearing\xd | 24 | ··············As·usual,·there·are·four·basic·methods·to·support·object·creation,·setting·default·fields,·clearing\xd |
25 | ··············any·allocated·data,·and·free’ing·the·object.\xd | 25 | ··············any·allocated·data,·and·free’ing·the·object.\xd |
26 | ················1.·Drand·*·Drand_new·(·void·)·;\xd | 26 | ················1.·Drand·*·Drand_new·(·void·)·;\xd |
27 | ···················This·method·simply·allocates·storage·for·the·Drand·structure·and·then·sets·the·default·fields\xd | 27 | ···················This·method·simply·allocates·storage·for·the·Drand·structure·and·then·sets·the·default·fields\xd |
28 | ···················by·a·call·to·Drand·setDefaultFields().\xd | 28 | ···················by·a·call·to·Drand·setDefaultFields().\xd |
29 | ················2.·void·Drand_setDefaultFields·(·Drand·*drand·)·;\xd | 29 | ················2.·void·Drand_setDefaultFields·(·Drand·*drand·)·;\xd |
Offset 11, 15 lines modified | Offset 11, 15 lines modified | ||
11 | %%EndComments | 11 | %%EndComments |
12 | %%BeginDefaults | 12 | %%BeginDefaults |
13 | %%ViewingOrientation:·1·0·0·1 | 13 | %%ViewingOrientation:·1·0·0·1 |
14 | %%EndDefaults | 14 | %%EndDefaults |
15 | %DVIPSWebPage:·(www.radicaleye.com) | 15 | %DVIPSWebPage:·(www.radicaleye.com) |
16 | %DVIPSCommandLine:·dvips·main·-o·EGraph.ps | 16 | %DVIPSCommandLine:·dvips·main·-o·EGraph.ps |
17 | %DVIPSParameters:·dpi=600 | 17 | %DVIPSParameters:·dpi=600 |
18 | %DVIPSSource:··TeX·output·202 | 18 | %DVIPSSource:··TeX·output·2024.03.20:1839 |
19 | %%BeginProcSet:·tex.pro·0·0 | 19 | %%BeginProcSet:·tex.pro·0·0 |
20 | %! | 20 | %! |
21 | /TeXDict·300·dict·def·TeXDict·begin/N{def}def/B{bind·def}N/S{exch}N/X{S | 21 | /TeXDict·300·dict·def·TeXDict·begin/N{def}def/B{bind·def}N/S{exch}N/X{S |
22 | N}B/A{dup}B/TR{translate}N/isls·false·N/vsize·11·72·mul·N/hsize·8.5·72 | 22 | N}B/A{dup}B/TR{translate}N/isls·false·N/vsize·11·72·mul·N/hsize·8.5·72 |
23 | mul·N/landplus90{false}def/@rigin{isls{[0·landplus90{1·-1}{-1·1}ifelse·0 | 23 | mul·N/landplus90{false}def/@rigin{isls{[0·landplus90{1·-1}{-1·1}ifelse·0 |
24 | 0·0]concat}if·72·Resolution·div·72·VResolution·div·neg·scale·isls{ | 24 | 0·0]concat}if·72·Resolution·div·72·VResolution·div·neg·scale·isls{ |
25 | landplus90{VResolution·72·div·vsize·mul·0·exch}{Resolution·-72·div·hsize | 25 | landplus90{VResolution·72·div·vsize·mul·0·exch}{Resolution·-72·div·hsize |
Offset 21, 15 lines modified | Offset 21, 15 lines modified | ||
21 | ·············•·int·nvtx·:·number·of·vertices·in·the·graph\xd | 21 | ·············•·int·nvtx·:·number·of·vertices·in·the·graph\xd |
22 | ·············•·IVL·*adjIVL·:·pointer·to·a·IVL·structure·that·holds·the·vertex·lists·for·the·elements.\xd | 22 | ·············•·IVL·*adjIVL·:·pointer·to·a·IVL·structure·that·holds·the·vertex·lists·for·the·elements.\xd |
23 | ·············•·int·*vwghts·:·when·type·=·1,·vwghts·points·to·an·int·vector·of·size·nvtx·that·holds·the\xd | 23 | ·············•·int·*vwghts·:·when·type·=·1,·vwghts·points·to·an·int·vector·of·size·nvtx·that·holds·the\xd |
24 | ···············node·weights.\xd | 24 | ···············node·weights.\xd |
25 | ···········A·correctly·initialized·and·nontrivial·EGraph·object·will·have·positive·nelem·and·nvtx·values,·a\xd | 25 | ···········A·correctly·initialized·and·nontrivial·EGraph·object·will·have·positive·nelem·and·nvtx·values,·a\xd |
26 | ···········valid·adjIVL·field.·If·type·=·1,·the·vwghts·will·be·non-NULL.\xd | 26 | ···········valid·adjIVL·field.·If·type·=·1,·the·vwghts·will·be·non-NULL.\xd |
27 | ·············································1\xd | 27 | ·············································1\xd |
28 | ··············2····························EGraph·:·DRAFT· | 28 | ··············2····························EGraph·:·DRAFT·March·20,·2024\xd |
29 | ··············1.2···Prototypes·and·descriptions·of·EGraph·methods\xd | 29 | ··············1.2···Prototypes·and·descriptions·of·EGraph·methods\xd |
30 | ··············This·section·contains·brief·descriptions·including·prototypes·of·all·methods·that·belong·to·the\xd | 30 | ··············This·section·contains·brief·descriptions·including·prototypes·of·all·methods·that·belong·to·the\xd |
31 | ··············EGraph·object.\xd | 31 | ··············EGraph·object.\xd |
32 | ··············1.2.1··Basic·methods\xd | 32 | ··············1.2.1··Basic·methods\xd |
33 | ··············As·usual,·there·are·four·basic·methods·to·support·object·creation,·setting·default·fields,·clearing\xd | 33 | ··············As·usual,·there·are·four·basic·methods·to·support·object·creation,·setting·default·fields,·clearing\xd |
34 | ··············any·allocated·data,·and·free’ing·the·object.\xd | 34 | ··············any·allocated·data,·and·free’ing·the·object.\xd |
35 | ················1.·EGraph·*·EGraph_new·(·void·)·;\xd | 35 | ················1.·EGraph·*·EGraph_new·(·void·)·;\xd |
Offset 11, 15 lines modified | Offset 11, 15 lines modified | ||
11 | %%EndComments | 11 | %%EndComments |
12 | %%BeginDefaults | 12 | %%BeginDefaults |
13 | %%ViewingOrientation:·1·0·0·1 | 13 | %%ViewingOrientation:·1·0·0·1 |
14 | %%EndDefaults | 14 | %%EndDefaults |
15 | %DVIPSWebPage:·(www.radicaleye.com) | 15 | %DVIPSWebPage:·(www.radicaleye.com) |
16 | %DVIPSCommandLine:·dvips·main·-o·ETree.ps | 16 | %DVIPSCommandLine:·dvips·main·-o·ETree.ps |
17 | %DVIPSParameters:·dpi=600 | 17 | %DVIPSParameters:·dpi=600 |
18 | %DVIPSSource:··TeX·output·202 | 18 | %DVIPSSource:··TeX·output·2024.03.20:1839 |
19 | %%BeginProcSet:·tex.pro·0·0 | 19 | %%BeginProcSet:·tex.pro·0·0 |
20 | %! | 20 | %! |
21 | /TeXDict·300·dict·def·TeXDict·begin/N{def}def/B{bind·def}N/S{exch}N/X{S | 21 | /TeXDict·300·dict·def·TeXDict·begin/N{def}def/B{bind·def}N/S{exch}N/X{S |
22 | N}B/A{dup}B/TR{translate}N/isls·false·N/vsize·11·72·mul·N/hsize·8.5·72 | 22 | N}B/A{dup}B/TR{translate}N/isls·false·N/vsize·11·72·mul·N/hsize·8.5·72 |
23 | mul·N/landplus90{false}def/@rigin{isls{[0·landplus90{1·-1}{-1·1}ifelse·0 | 23 | mul·N/landplus90{false}def/@rigin{isls{[0·landplus90{1·-1}{-1·1}ifelse·0 |
24 | 0·0]concat}if·72·Resolution·div·72·VResolution·div·neg·scale·isls{ | 24 | 0·0]concat}if·72·Resolution·div·72·VResolution·div·neg·scale·isls{ |
25 | landplus90{VResolution·72·div·vsize·mul·0·exch}{Resolution·-72·div·hsize | 25 | landplus90{VResolution·72·div·vsize·mul·0·exch}{Resolution·-72·div·hsize |
Offset 21, 15 lines modified | Offset 21, 15 lines modified | ||
21 | ··············•·int·nfront·:·number·of·fronts·in·the·tree\xd | 21 | ··············•·int·nfront·:·number·of·fronts·in·the·tree\xd |
22 | ··············•·int·nvtx·:·number·of·vertices·in·the·tree\xd | 22 | ··············•·int·nvtx·:·number·of·vertices·in·the·tree\xd |
23 | ··············•·Tree·*tree·:·pointer·to·a·Tree·structure\xd | 23 | ··············•·Tree·*tree·:·pointer·to·a·Tree·structure\xd |
24 | ··············•·IV·*nodwghtsIV·:·pointer·to·an·IV·object·to·hold·front·weights,·size·nfront\xd | 24 | ··············•·IV·*nodwghtsIV·:·pointer·to·an·IV·object·to·hold·front·weights,·size·nfront\xd |
25 | ··············•·IV·*bndwghtsIV·:·pointer·to·an·IV·object·to·hold·the·weights·of·the·fronts’·boundaries,·size\xd | 25 | ··············•·IV·*bndwghtsIV·:·pointer·to·an·IV·object·to·hold·the·weights·of·the·fronts’·boundaries,·size\xd |
26 | ···············nfront\xd | 26 | ···············nfront\xd |
27 | ·············································1\xd | 27 | ·············································1\xd |
28 | ··············2···························· | 28 | ··············2····························ETree·:·DRAFT·March·20,·2024\xd |
29 | ·················•·IV·*vtxToFrontIV·:·pointer·to·an·IV·object·to·hold·the·map·from·vertices·to·fronts,·size\xd | 29 | ·················•·IV·*vtxToFrontIV·:·pointer·to·an·IV·object·to·hold·the·map·from·vertices·to·fronts,·size\xd |
30 | ··················nfront\xd | 30 | ··················nfront\xd |
31 | ··············A·correctly·initialized·and·nontrivial·ETree·object·will·have·positive·nfront·and·nvtx·values,·a\xd | 31 | ··············A·correctly·initialized·and·nontrivial·ETree·object·will·have·positive·nfront·and·nvtx·values,·a\xd |
32 | ··············valid·tree·field·and·non-NULL·nodwghtsIV,·bndwghtsIV·and·vtxToFrontIV·pointers.\xd | 32 | ··············valid·tree·field·and·non-NULL·nodwghtsIV,·bndwghtsIV·and·vtxToFrontIV·pointers.\xd |
33 | ··············1.2···Prototypes·and·descriptions·of·ETree·methods\xd | 33 | ··············1.2···Prototypes·and·descriptions·of·ETree·methods\xd |
34 | ··············This·section·contains·brief·descriptions·including·prototypes·of·all·methods·that·belong·to·the\xd | 34 | ··············This·section·contains·brief·descriptions·including·prototypes·of·all·methods·that·belong·to·the\xd |
35 | ··············ETree·object.\xd | 35 | ··············ETree·object.\xd |
Offset 7, 15 lines modified | Offset 7, 15 lines modified | ||
7 | %%BoundingBox:·0·0·612·792 | 7 | %%BoundingBox:·0·0·612·792 |
8 | %%DocumentFonts:·CMR17·CMBX12·CMR12·CMR8·CMR6·CMR9·CMTT9 | 8 | %%DocumentFonts:·CMR17·CMBX12·CMR12·CMR8·CMR6·CMR9·CMTT9 |
9 | %%DocumentPaperSizes:·Letter | 9 | %%DocumentPaperSizes:·Letter |
10 | %%EndComments | 10 | %%EndComments |
11 | %DVIPSWebPage:·(www.radicaleye.com) | 11 | %DVIPSWebPage:·(www.radicaleye.com) |
12 | %DVIPSCommandLine:·dvips·main·-o·Eigen.ps | 12 | %DVIPSCommandLine:·dvips·main·-o·Eigen.ps |
13 | %DVIPSParameters:·dpi=600 | 13 | %DVIPSParameters:·dpi=600 |
14 | %DVIPSSource:··TeX·output·202 | 14 | %DVIPSSource:··TeX·output·2024.03.20:1840 |
15 | %%BeginProcSet:·tex.pro·0·0 | 15 | %%BeginProcSet:·tex.pro·0·0 |
16 | %! | 16 | %! |
17 | /TeXDict·300·dict·def·TeXDict·begin/N{def}def/B{bind·def}N/S{exch}N/X{S | 17 | /TeXDict·300·dict·def·TeXDict·begin/N{def}def/B{bind·def}N/S{exch}N/X{S |
18 | N}B/A{dup}B/TR{translate}N/isls·false·N/vsize·11·72·mul·N/hsize·8.5·72 | 18 | N}B/A{dup}B/TR{translate}N/isls·false·N/vsize·11·72·mul·N/hsize·8.5·72 |
19 | mul·N/landplus90{false}def/@rigin{isls{[0·landplus90{1·-1}{-1·1}ifelse·0 | 19 | mul·N/landplus90{false}def/@rigin{isls{[0·landplus90{1·-1}{-1·1}ifelse·0 |
20 | 0·0]concat}if·72·Resolution·div·72·VResolution·div·neg·scale·isls{ | 20 | 0·0]concat}if·72·Resolution·div·72·VResolution·div·neg·scale·isls{ |
21 | landplus90{VResolution·72·div·vsize·mul·0·exch}{Resolution·-72·div·hsize | 21 | landplus90{VResolution·72·div·vsize·mul·0·exch}{Resolution·-72·div·hsize |
Offset 1, 11 lines modified | Offset 1, 11 lines modified | ||
1 | ····················Integrating·the·SPOOLES·2.2·Sparse·Linear·Algebra·Library\xd | 1 | ····················Integrating·the·SPOOLES·2.2·Sparse·Linear·Algebra·Library\xd |
2 | ·························into·the·LANCZOS·Block-shifted·Lanczos·Eigensolver\xd | 2 | ·························into·the·LANCZOS·Block-shifted·Lanczos·Eigensolver\xd |
3 | ··········································Cleve·Ashcraft·······················Jim·Patterson\xd | 3 | ··········································Cleve·Ashcraft·······················Jim·Patterson\xd |
4 | ····································Boeing·Phantom·Works1················Boeing·Phantom·Works2\xd | 4 | ····································Boeing·Phantom·Works1················Boeing·Phantom·Works2\xd |
5 | ···························································· | 5 | ····························································March·20,·2024\xd |
6 | ···················1P.·O.·Box·24346,·Mail·Stop·7L-22,·Seattle,·Washington·98124,·cleve.ashcraft@boeing.com.·This·research\xd | 6 | ···················1P.·O.·Box·24346,·Mail·Stop·7L-22,·Seattle,·Washington·98124,·cleve.ashcraft@boeing.com.·This·research\xd |
7 | ·················was·supported·in·part·by·the·DARPA·Contract·DABT63-95-C-0122·and·the·DoD·High·Performance·Computing\xd | 7 | ·················was·supported·in·part·by·the·DARPA·Contract·DABT63-95-C-0122·and·the·DoD·High·Performance·Computing\xd |
8 | ·················Modernization·Program·Common·HPC·Software·Support·Initiative.\xd | 8 | ·················Modernization·Program·Common·HPC·Software·Support·Initiative.\xd |
9 | ···················2P.·O.·Box·24346,·Mail·Stop·7L-22,·Seattle,·Washington·98124,·pattersn@redwood.rt.cs.boeing.com.·This·re-\xd | 9 | ···················2P.·O.·Box·24346,·Mail·Stop·7L-22,·Seattle,·Washington·98124,·pattersn@redwood.rt.cs.boeing.com.·This·re-\xd |
10 | ·················search·was·supportedin·part·bytheDARPAContractDABT63-95-C-0122·andtheDoDHighPerformanceComputing\xd | 10 | ·················search·was·supportedin·part·bytheDARPAContractDABT63-95-C-0122·andtheDoDHighPerformanceComputing\xd |
11 | ·················Modernization·Program·Common·HPC·Software·Support·Initiative.\xd | 11 | ·················Modernization·Program·Common·HPC·Software·Support·Initiative.\xd |
Offset 11, 15 lines modified | Offset 11, 15 lines modified | ||
11 | %%EndComments | 11 | %%EndComments |
12 | %%BeginDefaults | 12 | %%BeginDefaults |
13 | %%ViewingOrientation:·1·0·0·1 | 13 | %%ViewingOrientation:·1·0·0·1 |
14 | %%EndDefaults | 14 | %%EndDefaults |
15 | %DVIPSWebPage:·(www.radicaleye.com) | 15 | %DVIPSWebPage:·(www.radicaleye.com) |
16 | %DVIPSCommandLine:·dvips·main·-o·FrontMtx.ps | 16 | %DVIPSCommandLine:·dvips·main·-o·FrontMtx.ps |
17 | %DVIPSParameters:·dpi=600 | 17 | %DVIPSParameters:·dpi=600 |
18 | %DVIPSSource:··TeX·output·202 | 18 | %DVIPSSource:··TeX·output·2024.03.20:1839 |
19 | %%BeginProcSet:·tex.pro·0·0 | 19 | %%BeginProcSet:·tex.pro·0·0 |
20 | %! | 20 | %! |
21 | /TeXDict·300·dict·def·TeXDict·begin/N{def}def/B{bind·def}N/S{exch}N/X{S | 21 | /TeXDict·300·dict·def·TeXDict·begin/N{def}def/B{bind·def}N/S{exch}N/X{S |
22 | N}B/A{dup}B/TR{translate}N/isls·false·N/vsize·11·72·mul·N/hsize·8.5·72 | 22 | N}B/A{dup}B/TR{translate}N/isls·false·N/vsize·11·72·mul·N/hsize·8.5·72 |
23 | mul·N/landplus90{false}def/@rigin{isls{[0·landplus90{1·-1}{-1·1}ifelse·0 | 23 | mul·N/landplus90{false}def/@rigin{isls{[0·landplus90{1·-1}{-1·1}ifelse·0 |
24 | 0·0]concat}if·72·Resolution·div·72·VResolution·div·neg·scale·isls{ | 24 | 0·0]concat}if·72·Resolution·div·72·VResolution·div·neg·scale·isls{ |
25 | landplus90{VResolution·72·div·vsize·mul·0·exch}{Resolution·-72·div·hsize | 25 | landplus90{VResolution·72·div·vsize·mul·0·exch}{Resolution·-72·div·hsize |
Offset 23, 15 lines modified | Offset 23, 15 lines modified | ||
23 | ··········are·disjoint.·P·is·a·permutation·matrix.·If·pivoting·is·not·used,·P·is·the·identity.\xd | 23 | ··········are·disjoint.·P·is·a·permutation·matrix.·If·pivoting·is·not·used,·P·is·the·identity.\xd |
24 | ········2.·(A·+·σB)·=·P(L·+·I)D(I·+·U)QT·for·a·square·nonsymmetric·matrix·A·with·symmetric\xd | 24 | ········2.·(A·+·σB)·=·P(L·+·I)D(I·+·U)QT·for·a·square·nonsymmetric·matrix·A·with·symmetric\xd |
25 | ··········structure.·D·is·a·diagonal·matrix.·U·is·strictly·upper·triangular.·L·is·strictly·lower·triangular.\xd | 25 | ··········structure.·D·is·a·diagonal·matrix.·U·is·strictly·upper·triangular.·L·is·strictly·lower·triangular.\xd |
26 | ··········P·and·Q·are·permutation·matrices.·If·pivoting·is·not·used,·P·and·Q·are·the·identity.\xd | 26 | ··········P·and·Q·are·permutation·matrices.·If·pivoting·is·not·used,·P·and·Q·are·the·identity.\xd |
27 | ········3.·A·=·QR·for·square·or·rectangular·A.·Q·is·an·orthogonal·matrix·that·is·not·explicitly\xd | 27 | ········3.·A·=·QR·for·square·or·rectangular·A.·Q·is·an·orthogonal·matrix·that·is·not·explicitly\xd |
28 | ··········computed·or·stored.·R·is·upper·triangular.\xd | 28 | ··········computed·or·stored.·R·is·upper·triangular.\xd |
29 | ·····························1\xd | 29 | ·····························1\xd |
30 | ············2························· | 30 | ············2·························FrontMtx·:·DRAFT·March·20,·2024\xd |
31 | ···············The·factorization·is·performed·using·a·one·dimensional·decomposition·of·the·global·sparse\xd | 31 | ···············The·factorization·is·performed·using·a·one·dimensional·decomposition·of·the·global·sparse\xd |
32 | ············matrix.·A·typical·front·of·the·matrix·is·found·the·shaded·portion·of·the·figure·below.\xd | 32 | ············matrix.·A·typical·front·of·the·matrix·is·found·the·shaded·portion·of·the·figure·below.\xd |
33 | ············Afront·is·indivisible,·it·is·found·on·one·processor,·and·one·processor·or·one·thread·is·responsible\xd | 33 | ············Afront·is·indivisible,·it·is·found·on·one·processor,·and·one·processor·or·one·thread·is·responsible\xd |
34 | ············for·its·internal·computations.·This·is·extremely·important·if·we·want·to·support·pivoting·for\xd | 34 | ············for·its·internal·computations.·This·is·extremely·important·if·we·want·to·support·pivoting·for\xd |
35 | ············stability,·for·deciding·how·to·choose·the·pivot·elements·in·the·front·requires·continuous·up-to-\xd | 35 | ············stability,·for·deciding·how·to·choose·the·pivot·elements·in·the·front·requires·continuous·up-to-\xd |
36 | ············date·information·about·all·the·entries·in·the·front.·If·a·front·were·partitioned·among·threads·or\xd | 36 | ············date·information·about·all·the·entries·in·the·front.·If·a·front·were·partitioned·among·threads·or\xd |
37 | ············processors,·the·cost·of·the·communication·to·select·pivot·elements·would·be·intolerable.\xd | 37 | ············processors,·the·cost·of·the·communication·to·select·pivot·elements·would·be·intolerable.\xd |
Offset 11, 15 lines modified | Offset 11, 15 lines modified | ||
11 | %%EndComments | 11 | %%EndComments |
12 | %%BeginDefaults | 12 | %%BeginDefaults |
13 | %%ViewingOrientation:·1·0·0·1 | 13 | %%ViewingOrientation:·1·0·0·1 |
14 | %%EndDefaults | 14 | %%EndDefaults |
15 | %DVIPSWebPage:·(www.radicaleye.com) | 15 | %DVIPSWebPage:·(www.radicaleye.com) |
16 | %DVIPSCommandLine:·dvips·main·-o·FrontTrees.ps | 16 | %DVIPSCommandLine:·dvips·main·-o·FrontTrees.ps |
17 | %DVIPSParameters:·dpi=600 | 17 | %DVIPSParameters:·dpi=600 |
18 | %DVIPSSource:··TeX·output·202 | 18 | %DVIPSSource:··TeX·output·2024.03.20:1839 |
19 | %%BeginProcSet:·tex.pro·0·0 | 19 | %%BeginProcSet:·tex.pro·0·0 |
20 | %! | 20 | %! |
21 | /TeXDict·300·dict·def·TeXDict·begin/N{def}def/B{bind·def}N/S{exch}N/X{S | 21 | /TeXDict·300·dict·def·TeXDict·begin/N{def}def/B{bind·def}N/S{exch}N/X{S |
22 | N}B/A{dup}B/TR{translate}N/isls·false·N/vsize·11·72·mul·N/hsize·8.5·72 | 22 | N}B/A{dup}B/TR{translate}N/isls·false·N/vsize·11·72·mul·N/hsize·8.5·72 |
23 | mul·N/landplus90{false}def/@rigin{isls{[0·landplus90{1·-1}{-1·1}ifelse·0 | 23 | mul·N/landplus90{false}def/@rigin{isls{[0·landplus90{1·-1}{-1·1}ifelse·0 |
24 | 0·0]concat}if·72·Resolution·div·72·VResolution·div·neg·scale·isls{ | 24 | 0·0]concat}if·72·Resolution·div·72·VResolution·div·neg·scale·isls{ |
25 | landplus90{VResolution·72·div·vsize·mul·0·exch}{Resolution·-72·div·hsize | 25 | landplus90{VResolution·72·div·vsize·mul·0·exch}{Resolution·-72·div·hsize |
Offset 1, 11 lines modified | Offset 1, 11 lines modified | ||
1 | ·························Ordering·Sparse·Matrices·and·Transforming·Front·Trees\xd | 1 | ·························Ordering·Sparse·Matrices·and·Transforming·Front·Trees\xd |
2 | ·······························································································∗\xd | 2 | ·······························································································∗\xd |
3 | ··········································Cleve·Ashcraft,·Boeing·Shared·Services·Group\xd | 3 | ··········································Cleve·Ashcraft,·Boeing·Shared·Services·Group\xd |
4 | ···························································· | 4 | ····························································March·20,·2024\xd |
5 | ················1·····Introduction\xd | 5 | ················1·····Introduction\xd |
6 | ················If·the·ultimate·goal·is·to·solve·linear·systems·of·the·form·AX·=·B,·one·must·compute·an·A·=·LDU,\xd | 6 | ················If·the·ultimate·goal·is·to·solve·linear·systems·of·the·form·AX·=·B,·one·must·compute·an·A·=·LDU,\xd |
7 | ················A=UTDU·orA=UHDU·factorization,·depending·on·whether·the·matrix·A·is·nonsymmetric,·symmetric\xd | 7 | ················A=UTDU·orA=UHDU·factorization,·depending·on·whether·the·matrix·A·is·nonsymmetric,·symmetric\xd |
8 | ················or·Hermitian.·D·is·a·diagonal·or·block·diagonal·matrix,·L·is·unit·lower·triangular,·and·U·is·unit·upper\xd | 8 | ················or·Hermitian.·D·is·a·diagonal·or·block·diagonal·matrix,·L·is·unit·lower·triangular,·and·U·is·unit·upper\xd |
9 | ················triangular.·A·is·sparse,·but·the·sparsity·structure·of·L·and·U·will·likely·be·much·larger·than·that·of·A,\xd | 9 | ················triangular.·A·is·sparse,·but·the·sparsity·structure·of·L·and·U·will·likely·be·much·larger·than·that·of·A,\xd |
10 | ················i.e.,·they·will·suffer·fill-in.·It·is·crucial·to·find·a·permutation·matrix·such·that·the·factors·of·PAPT·have·as\xd | 10 | ················i.e.,·they·will·suffer·fill-in.·It·is·crucial·to·find·a·permutation·matrix·such·that·the·factors·of·PAPT·have·as\xd |
11 | ················moderate·fill-in·as·can·be·reasonably·expected.\xd | 11 | ················moderate·fill-in·as·can·be·reasonably·expected.\xd |
Offset 11, 15 lines modified | Offset 11, 15 lines modified | ||
11 | %%EndComments | 11 | %%EndComments |
12 | %%BeginDefaults | 12 | %%BeginDefaults |
13 | %%ViewingOrientation:·1·0·0·1 | 13 | %%ViewingOrientation:·1·0·0·1 |
14 | %%EndDefaults | 14 | %%EndDefaults |
15 | %DVIPSWebPage:·(www.radicaleye.com) | 15 | %DVIPSWebPage:·(www.radicaleye.com) |
16 | %DVIPSCommandLine:·dvips·main·-o·GPart.ps | 16 | %DVIPSCommandLine:·dvips·main·-o·GPart.ps |
17 | %DVIPSParameters:·dpi=600 | 17 | %DVIPSParameters:·dpi=600 |
18 | %DVIPSSource:··TeX·output·202 | 18 | %DVIPSSource:··TeX·output·2024.03.20:1839 |
19 | %%BeginProcSet:·tex.pro·0·0 | 19 | %%BeginProcSet:·tex.pro·0·0 |
20 | %! | 20 | %! |
21 | /TeXDict·300·dict·def·TeXDict·begin/N{def}def/B{bind·def}N/S{exch}N/X{S | 21 | /TeXDict·300·dict·def·TeXDict·begin/N{def}def/B{bind·def}N/S{exch}N/X{S |
22 | N}B/A{dup}B/TR{translate}N/isls·false·N/vsize·11·72·mul·N/hsize·8.5·72 | 22 | N}B/A{dup}B/TR{translate}N/isls·false·N/vsize·11·72·mul·N/hsize·8.5·72 |
23 | mul·N/landplus90{false}def/@rigin{isls{[0·landplus90{1·-1}{-1·1}ifelse·0 | 23 | mul·N/landplus90{false}def/@rigin{isls{[0·landplus90{1·-1}{-1·1}ifelse·0 |
24 | 0·0]concat}if·72·Resolution·div·72·VResolution·div·neg·scale·isls{ | 24 | 0·0]concat}if·72·Resolution·div·72·VResolution·div·neg·scale·isls{ |
25 | landplus90{VResolution·72·div·vsize·mul·0·exch}{Resolution·-72·div·hsize | 25 | landplus90{VResolution·72·div·vsize·mul·0·exch}{Resolution·-72·div·hsize |
Offset 30, 15 lines modified | Offset 30, 15 lines modified | ||
30 | ···············condensed·into·the·source·while·the·nodes·in·W·\Y·are·condensed·into·the·sink.·The·rest·of\xd | 30 | ···············condensed·into·the·source·while·the·nodes·in·W·\Y·are·condensed·into·the·sink.·The·rest·of\xd |
31 | ···············the·network·is·formed·using·the·structure·of·the·subgraph·induced·by·Y.·Given·a·min-cut·of\xd | 31 | ···············the·network·is·formed·using·the·structure·of·the·subgraph·induced·by·Y.·Given·a·min-cut·of\xd |
32 | ···········································b\xd | 32 | ···········································b\xd |
33 | ···············the·network·we·can·identify·a·separator·S·⊆·Y·that·has·minimal·weight.·We·examine·two\xd | 33 | ···············the·network·we·can·identify·a·separator·S·⊆·Y·that·has·minimal·weight.·We·examine·two\xd |
34 | ···············(possibly)·different·min-cuts·and·evaluate·the·partitions·induced·via·their·minimal·weight\xd | 34 | ···············(possibly)·different·min-cuts·and·evaluate·the·partitions·induced·via·their·minimal·weight\xd |
35 | ···············separators,·and·accept·a·better·partition·if·present.\xd | 35 | ···············separators,·and·accept·a·better·partition·if·present.\xd |
36 | ············································1\xd | 36 | ············································1\xd |
37 | ···········2·······················GPart·:·DRAFT· | 37 | ···········2·······················GPart·:·DRAFT·March·20,·2024\xd |
38 | ···········This·process·we·call·DDSEP,·which·is·short·for·Domain·Decomposition·SEParator,·explained·in·more\xd | 38 | ···········This·process·we·call·DDSEP,·which·is·short·for·Domain·Decomposition·SEParator,·explained·in·more\xd |
39 | ···········detail·in·[?]·and·[?].\xd | 39 | ···········detail·in·[?]·and·[?].\xd |
40 | ···········1.1··Data·Structures\xd | 40 | ···········1.1··Data·Structures\xd |
41 | ···········The·GPart·structure·has·a·pointer·to·a·Graph·object·and·other·fields·that·contain·information\xd | 41 | ···········The·GPart·structure·has·a·pointer·to·a·Graph·object·and·other·fields·that·contain·information\xd |
42 | ···········about·the·partition·of·the·graph.\xd | 42 | ···········about·the·partition·of·the·graph.\xd |
43 | ··············The·following·fields·are·always·active.\xd | 43 | ··············The·following·fields·are·always·active.\xd |
44 | ·············•·Graph·*graph·:·pointer·to·the·Graph·object\xd | 44 | ·············•·Graph·*graph·:·pointer·to·the·Graph·object\xd |
Offset 11, 15 lines modified | Offset 11, 15 lines modified | ||
11 | %%EndComments | 11 | %%EndComments |
12 | %%BeginDefaults | 12 | %%BeginDefaults |
13 | %%ViewingOrientation:·1·0·0·1 | 13 | %%ViewingOrientation:·1·0·0·1 |
14 | %%EndDefaults | 14 | %%EndDefaults |
15 | %DVIPSWebPage:·(www.radicaleye.com) | 15 | %DVIPSWebPage:·(www.radicaleye.com) |
16 | %DVIPSCommandLine:·dvips·main·-o·Graph.ps | 16 | %DVIPSCommandLine:·dvips·main·-o·Graph.ps |
17 | %DVIPSParameters:·dpi=600 | 17 | %DVIPSParameters:·dpi=600 |
18 | %DVIPSSource:··TeX·output·202 | 18 | %DVIPSSource:··TeX·output·2024.03.20:1839 |
19 | %%BeginProcSet:·tex.pro·0·0 | 19 | %%BeginProcSet:·tex.pro·0·0 |
20 | %! | 20 | %! |
21 | /TeXDict·300·dict·def·TeXDict·begin/N{def}def/B{bind·def}N/S{exch}N/X{S | 21 | /TeXDict·300·dict·def·TeXDict·begin/N{def}def/B{bind·def}N/S{exch}N/X{S |
22 | N}B/A{dup}B/TR{translate}N/isls·false·N/vsize·11·72·mul·N/hsize·8.5·72 | 22 | N}B/A{dup}B/TR{translate}N/isls·false·N/vsize·11·72·mul·N/hsize·8.5·72 |
23 | mul·N/landplus90{false}def/@rigin{isls{[0·landplus90{1·-1}{-1·1}ifelse·0 | 23 | mul·N/landplus90{false}def/@rigin{isls{[0·landplus90{1·-1}{-1·1}ifelse·0 |
24 | 0·0]concat}if·72·Resolution·div·72·VResolution·div·neg·scale·isls{ | 24 | 0·0]concat}if·72·Resolution·div·72·VResolution·div·neg·scale·isls{ |
25 | landplus90{VResolution·72·div·vsize·mul·0·exch}{Resolution·-72·div·hsize | 25 | landplus90{VResolution·72·div·vsize·mul·0·exch}{Resolution·-72·div·hsize |
Offset 27, 15 lines modified | Offset 27, 15 lines modified | ||
27 | ················weight·vertices·in·the·weighted·vertex.·The·weight·of·an·edge·is·w(u,v),·the·number·of·(u,v)·edges\xd | 27 | ················weight·vertices·in·the·weighted·vertex.·The·weight·of·an·edge·is·w(u,v),·the·number·of·(u,v)·edges\xd |
28 | ················in·the·unit·weight·graph·where·u·∈·u·and·v·∈·v.\xd | 28 | ················in·the·unit·weight·graph·where·u·∈·u·and·v·∈·v.\xd |
29 | ····················Thenaturalcompressedgraph[?],[?]isveryimportantformanymatricesfromstructralanalysis\xd | 29 | ····················Thenaturalcompressedgraph[?],[?]isveryimportantformanymatricesfromstructralanalysis\xd |
30 | ················and·computational·fluid·mechanics.·This·type·of·graph·has·one·special·property:\xd | 30 | ················and·computational·fluid·mechanics.·This·type·of·graph·has·one·special·property:\xd |
31 | ························································w(u,v)·=·w(u)·w(v)\xd | 31 | ························································w(u,v)·=·w(u)·w(v)\xd |
32 | ···················1The·EGraph·object·represents·a·graph·of·the·matrix,·but·stores·a·list·of·covering·cliques·in·an·IVL·object.\xd | 32 | ···················1The·EGraph·object·represents·a·graph·of·the·matrix,·but·stores·a·list·of·covering·cliques·in·an·IVL·object.\xd |
33 | ··································································1\xd | 33 | ··································································1\xd |
34 | ················2·································Graph·:·DRAFT· | 34 | ················2·································Graph·:·DRAFT·March·20,·2024\xd |
35 | ················and·it·is·the·smallest·graph·with·this·property.·The·compression·is·loss-less,·for·given·G(V,E)\xd | 35 | ················and·it·is·the·smallest·graph·with·this·property.·The·compression·is·loss-less,·for·given·G(V,E)\xd |
36 | ················and·φ,·we·can·reconstruct·the·unit·weight·graph·G(V,E).·In·effect,·we·can·work·with·the·natural\xd | 36 | ················and·φ,·we·can·reconstruct·the·unit·weight·graph·G(V,E).·In·effect,·we·can·work·with·the·natural\xd |
37 | ················compressed·graph·to·find·separators·and·orderings·and·map·back·to·the·unit·weight·graph.·The\xd | 37 | ················compressed·graph·to·find·separators·and·orderings·and·map·back·to·the·unit·weight·graph.·The\xd |
38 | ················savings·in·time·and·space·can·be·considerable.\xd | 38 | ················savings·in·time·and·space·can·be·considerable.\xd |
39 | ···················The·Graph·object·has·a·method·to·find·the·φ·map·for·the·natural·compressed·graph;·it·requires\xd | 39 | ···················The·Graph·object·has·a·method·to·find·the·φ·map·for·the·natural·compressed·graph;·it·requires\xd |
40 | ················O(|V|)·space·and·O(|E|)·time.·There·is·a·method·to·compress·a·graph·(i.e.,·given·G(V,E)·and\xd | 40 | ················O(|V|)·space·and·O(|E|)·time.·There·is·a·method·to·compress·a·graph·(i.e.,·given·G(V,E)·and\xd |
41 | ················an·arbitrary·φ,·construct·G(V,E))·and·a·method·to·expand·a·graph·(i.e.,·given·G(V,E)·and·an\xd | 41 | ················an·arbitrary·φ,·construct·G(V,E))·and·a·method·to·expand·a·graph·(i.e.,·given·G(V,E)·and·an\xd |
Offset 11, 15 lines modified | Offset 11, 15 lines modified | ||
11 | %%EndComments | 11 | %%EndComments |
12 | %%BeginDefaults | 12 | %%BeginDefaults |
13 | %%ViewingOrientation:·1·0·0·1 | 13 | %%ViewingOrientation:·1·0·0·1 |
14 | %%EndDefaults | 14 | %%EndDefaults |
15 | %DVIPSWebPage:·(www.radicaleye.com) | 15 | %DVIPSWebPage:·(www.radicaleye.com) |
16 | %DVIPSCommandLine:·dvips·main·-o·I2Ohash.ps | 16 | %DVIPSCommandLine:·dvips·main·-o·I2Ohash.ps |
17 | %DVIPSParameters:·dpi=600 | 17 | %DVIPSParameters:·dpi=600 |
18 | %DVIPSSource:··TeX·output·202 | 18 | %DVIPSSource:··TeX·output·2024.03.20:1839 |
19 | %%BeginProcSet:·tex.pro·0·0 | 19 | %%BeginProcSet:·tex.pro·0·0 |
20 | %! | 20 | %! |
21 | /TeXDict·300·dict·def·TeXDict·begin/N{def}def/B{bind·def}N/S{exch}N/X{S | 21 | /TeXDict·300·dict·def·TeXDict·begin/N{def}def/B{bind·def}N/S{exch}N/X{S |
22 | N}B/A{dup}B/TR{translate}N/isls·false·N/vsize·11·72·mul·N/hsize·8.5·72 | 22 | N}B/A{dup}B/TR{translate}N/isls·false·N/vsize·11·72·mul·N/hsize·8.5·72 |
23 | mul·N/landplus90{false}def/@rigin{isls{[0·landplus90{1·-1}{-1·1}ifelse·0 | 23 | mul·N/landplus90{false}def/@rigin{isls{[0·landplus90{1·-1}{-1·1}ifelse·0 |
24 | 0·0]concat}if·72·Resolution·div·72·VResolution·div·neg·scale·isls{ | 24 | 0·0]concat}if·72·Resolution·div·72·VResolution·div·neg·scale·isls{ |
25 | landplus90{VResolution·72·div·vsize·mul·0·exch}{Resolution·-72·div·hsize | 25 | landplus90{VResolution·72·div·vsize·mul·0·exch}{Resolution·-72·div·hsize |
Offset 21, 15 lines modified | Offset 21, 15 lines modified | ||
21 | ······················•·int·nlist·:·number·of·lists·in·the·hash·table\xd | 21 | ······················•·int·nlist·:·number·of·lists·in·the·hash·table\xd |
22 | ······················•·int·grow·:·when·no·I2OP·objects·are·available·to·insert·a·new·<key1,key2,value>·triple,\xd | 22 | ······················•·int·grow·:·when·no·I2OP·objects·are·available·to·insert·a·new·<key1,key2,value>·triple,\xd |
23 | ························the·object·can·allocate·grow·more·I2OP·objects·and·put·them·on·the·free·list.\xd | 23 | ························the·object·can·allocate·grow·more·I2OP·objects·and·put·them·on·the·free·list.\xd |
24 | ······················•·nitem·:·number·of·items·in·the·hash·table.\xd | 24 | ······················•·nitem·:·number·of·items·in·the·hash·table.\xd |
25 | ······················•·I2OP·*baseI2OP·:·pointer·to·an·I2OP·object·that·keeps·track·of·all·the·I2OP·objects·that\xd | 25 | ······················•·I2OP·*baseI2OP·:·pointer·to·an·I2OP·object·that·keeps·track·of·all·the·I2OP·objects·that\xd |
26 | ························have·been·allocated·by·the·hash·table.\xd | 26 | ························have·been·allocated·by·the·hash·table.\xd |
27 | ·········································································1\xd | 27 | ·········································································1\xd |
28 | ··············2··························· | 28 | ··············2···························I2Ohash·:·DRAFT·March·20,·2024\xd |
29 | ·················•·I2OP·*freeI2OP·:·pointer·to·the·first·I2OP·object·on·the·free·list.\xd | 29 | ·················•·I2OP·*freeI2OP·:·pointer·to·the·first·I2OP·object·on·the·free·list.\xd |
30 | ·················•·I2OP·**heads·:·pointer·to·a·vector·of·pointers·to·I2OP·objects,·used·to·hold·a·pointer·to·the\xd | 30 | ·················•·I2OP·**heads·:·pointer·to·a·vector·of·pointers·to·I2OP·objects,·used·to·hold·a·pointer·to·the\xd |
31 | ···················first·I2OP·object·in·each·list.\xd | 31 | ···················first·I2OP·object·in·each·list.\xd |
32 | ·················Acorrectly·initialized·and·nontrivial·I2Ohash·object·will·have·nlist·>·0.·If·grow·is·zero·and\xd | 32 | ·················Acorrectly·initialized·and·nontrivial·I2Ohash·object·will·have·nlist·>·0.·If·grow·is·zero·and\xd |
33 | ··············a·new·<key1,key2,value>·triple·is·given·to·the·hash·table·to·be·inserted,·a·fatal·error·occurs.\xd | 33 | ··············a·new·<key1,key2,value>·triple·is·given·to·the·hash·table·to·be·inserted,·a·fatal·error·occurs.\xd |
34 | ··············1.2···Prototypes·and·descriptions·of·I2Ohash·methods\xd | 34 | ··············1.2···Prototypes·and·descriptions·of·I2Ohash·methods\xd |
35 | ··············This·section·contains·brief·descriptions·including·prototypes·of·all·methods·that·belong·to·the\xd | 35 | ··············This·section·contains·brief·descriptions·including·prototypes·of·all·methods·that·belong·to·the\xd |
Offset 11, 15 lines modified | Offset 11, 15 lines modified | ||
11 | %%EndComments | 11 | %%EndComments |
12 | %%BeginDefaults | 12 | %%BeginDefaults |
13 | %%ViewingOrientation:·1·0·0·1 | 13 | %%ViewingOrientation:·1·0·0·1 |
14 | %%EndDefaults | 14 | %%EndDefaults |
15 | %DVIPSWebPage:·(www.radicaleye.com) | 15 | %DVIPSWebPage:·(www.radicaleye.com) |
16 | %DVIPSCommandLine:·dvips·main·-o·IIheap.ps | 16 | %DVIPSCommandLine:·dvips·main·-o·IIheap.ps |
17 | %DVIPSParameters:·dpi=600 | 17 | %DVIPSParameters:·dpi=600 |
18 | %DVIPSSource:··TeX·output·202 | 18 | %DVIPSSource:··TeX·output·2024.03.20:1839 |
19 | %%BeginProcSet:·tex.pro·0·0 | 19 | %%BeginProcSet:·tex.pro·0·0 |
20 | %! | 20 | %! |
21 | /TeXDict·300·dict·def·TeXDict·begin/N{def}def/B{bind·def}N/S{exch}N/X{S | 21 | /TeXDict·300·dict·def·TeXDict·begin/N{def}def/B{bind·def}N/S{exch}N/X{S |
22 | N}B/A{dup}B/TR{translate}N/isls·false·N/vsize·11·72·mul·N/hsize·8.5·72 | 22 | N}B/A{dup}B/TR{translate}N/isls·false·N/vsize·11·72·mul·N/hsize·8.5·72 |
23 | mul·N/landplus90{false}def/@rigin{isls{[0·landplus90{1·-1}{-1·1}ifelse·0 | 23 | mul·N/landplus90{false}def/@rigin{isls{[0·landplus90{1·-1}{-1·1}ifelse·0 |
24 | 0·0]concat}if·72·Resolution·div·72·VResolution·div·neg·scale·isls{ | 24 | 0·0]concat}if·72·Resolution·div·72·VResolution·div·neg·scale·isls{ |
25 | landplus90{VResolution·72·div·vsize·mul·0·exch}{Resolution·-72·div·hsize | 25 | landplus90{VResolution·72·div·vsize·mul·0·exch}{Resolution·-72·div·hsize |
Offset 17, 15 lines modified | Offset 17, 15 lines modified | ||
17 | ···············location·loc\xd | 17 | ···············location·loc\xd |
18 | ···········A·correctly·initialized·and·nontrivial·IIheap·object·will·have·maxsize·>·0·and·0·<=·size·<\xd | 18 | ···········A·correctly·initialized·and·nontrivial·IIheap·object·will·have·maxsize·>·0·and·0·<=·size·<\xd |
19 | ···········maxsize.\xd | 19 | ···········maxsize.\xd |
20 | ···········1.2··Prototypes·and·descriptions·of·IIheap·methods\xd | 20 | ···········1.2··Prototypes·and·descriptions·of·IIheap·methods\xd |
21 | ···········This·section·contains·brief·descriptions·including·prototypes·of·all·methods·that·belong·to·the\xd | 21 | ···········This·section·contains·brief·descriptions·including·prototypes·of·all·methods·that·belong·to·the\xd |
22 | ···········IIheap·object.\xd | 22 | ···········IIheap·object.\xd |
23 | ·············································1\xd | 23 | ·············································1\xd |
24 | ···············2······························· | 24 | ···············2·······························IIheap·:·DRAFT·March·20,·2024\xd |
25 | ···············1.2.1···Basic·methods\xd | 25 | ···············1.2.1···Basic·methods\xd |
26 | ···············As·usual,·there·are·four·basic·methods·to·support·object·creation,·setting·default·fields,·clearing\xd | 26 | ···············As·usual,·there·are·four·basic·methods·to·support·object·creation,·setting·default·fields,·clearing\xd |
27 | ···············any·allocated·data,·and·free’ing·the·object.\xd | 27 | ···············any·allocated·data,·and·free’ing·the·object.\xd |
28 | ··················1.·IIheap·*·IIheap_new·(·void·)·;\xd | 28 | ··················1.·IIheap·*·IIheap_new·(·void·)·;\xd |
29 | ····················This·method·simply·allocates·storage·for·the·IIheap·structure·and·then·sets·the·default·fields\xd | 29 | ····················This·method·simply·allocates·storage·for·the·IIheap·structure·and·then·sets·the·default·fields\xd |
30 | ····················by·a·call·to·IIheap·setDefaultFields().\xd | 30 | ····················by·a·call·to·IIheap·setDefaultFields().\xd |
31 | ··················2.·void·IIheap_setDefaultFields·(·IIheap·*heap·)·;\xd | 31 | ··················2.·void·IIheap_setDefaultFields·(·IIheap·*heap·)·;\xd |
Offset 10, 15 lines modified | Offset 10, 15 lines modified | ||
10 | %%EndComments | 10 | %%EndComments |
11 | %%BeginDefaults | 11 | %%BeginDefaults |
12 | %%ViewingOrientation:·1·0·0·1 | 12 | %%ViewingOrientation:·1·0·0·1 |
13 | %%EndDefaults | 13 | %%EndDefaults |
14 | %DVIPSWebPage:·(www.radicaleye.com) | 14 | %DVIPSWebPage:·(www.radicaleye.com) |
15 | %DVIPSCommandLine:·dvips·main·-o·IV.ps | 15 | %DVIPSCommandLine:·dvips·main·-o·IV.ps |
16 | %DVIPSParameters:·dpi=600 | 16 | %DVIPSParameters:·dpi=600 |
17 | %DVIPSSource:··TeX·output·202 | 17 | %DVIPSSource:··TeX·output·2024.03.20:1839 |
18 | %%BeginProcSet:·tex.pro·0·0 | 18 | %%BeginProcSet:·tex.pro·0·0 |
19 | %! | 19 | %! |
20 | /TeXDict·300·dict·def·TeXDict·begin/N{def}def/B{bind·def}N/S{exch}N/X{S | 20 | /TeXDict·300·dict·def·TeXDict·begin/N{def}def/B{bind·def}N/S{exch}N/X{S |
21 | N}B/A{dup}B/TR{translate}N/isls·false·N/vsize·11·72·mul·N/hsize·8.5·72 | 21 | N}B/A{dup}B/TR{translate}N/isls·false·N/vsize·11·72·mul·N/hsize·8.5·72 |
22 | mul·N/landplus90{false}def/@rigin{isls{[0·landplus90{1·-1}{-1·1}ifelse·0 | 22 | mul·N/landplus90{false}def/@rigin{isls{[0·landplus90{1·-1}{-1·1}ifelse·0 |
23 | 0·0]concat}if·72·Resolution·div·72·VResolution·div·neg·scale·isls{ | 23 | 0·0]concat}if·72·Resolution·div·72·VResolution·div·neg·scale·isls{ |
24 | landplus90{VResolution·72·div·vsize·mul·0·exch}{Resolution·-72·div·hsize | 24 | landplus90{VResolution·72·div·vsize·mul·0·exch}{Resolution·-72·div·hsize |
Offset 24, 15 lines modified | Offset 24, 15 lines modified | ||
24 | ····················IV·setMaxsize()·methods)·than·it·is·to·duplicate·code·to·work·on·an·int·vector.\xd | 24 | ····················IV·setMaxsize()·methods)·than·it·is·to·duplicate·code·to·work·on·an·int·vector.\xd |
25 | ···············Onemustchoose·where·to·use·this·object.·There·is·a·substantial·performance·penalty·for·doing·the\xd | 25 | ···············Onemustchoose·where·to·use·this·object.·There·is·a·substantial·performance·penalty·for·doing·the\xd |
26 | ···············simplest·operations,·and·so·when·we·need·to·manipulate·an·int·vector·inside·a·loop,·we·extract\xd | 26 | ···············simplest·operations,·and·so·when·we·need·to·manipulate·an·int·vector·inside·a·loop,·we·extract\xd |
27 | ···············out·the·size·and·pointer·to·the·base·array·from·the·IV·object.·On·the·other·hand,·the·convenience\xd | 27 | ···············out·the·size·and·pointer·to·the·base·array·from·the·IV·object.·On·the·other·hand,·the·convenience\xd |
28 | ···············makes·it·a·widely·used·object.·Originally·its·use·was·restricted·to·reading·and·writing·*.iv{f,b}\xd | 28 | ···············makes·it·a·widely·used·object.·Originally·its·use·was·restricted·to·reading·and·writing·*.iv{f,b}\xd |
29 | ···············files,·but·now·IV·objects·appear·much·more·frequently·in·new·development.\xd | 29 | ···············files,·but·now·IV·objects·appear·much·more·frequently·in·new·development.\xd |
30 | ·····························································1\xd | 30 | ·····························································1\xd |
31 | ··············2······························ | 31 | ··············2······························IV·:·DRAFT·March·20,·2024\xd |
32 | ··············1.1···Data·Structure\xd | 32 | ··············1.1···Data·Structure\xd |
33 | ··············The·IV·structure·has·four·fields.\xd | 33 | ··············The·IV·structure·has·four·fields.\xd |
34 | ·················•·int·size·:·present·size·of·the·vector.\xd | 34 | ·················•·int·size·:·present·size·of·the·vector.\xd |
35 | ·················•·int·maxsize·:·maximum·size·of·the·vector.\xd | 35 | ·················•·int·maxsize·:·maximum·size·of·the·vector.\xd |
36 | ·················•·int·owned·:·owner·flag·for·the·data.·When·owned·=·1,·storage·for·maxsize·int’s·has·been\xd | 36 | ·················•·int·owned·:·owner·flag·for·the·data.·When·owned·=·1,·storage·for·maxsize·int’s·has·been\xd |
37 | ···················allocated·by·this·object·and·can·be·free’d·by·the·object.·When·nowned·=·0·but·maxsize·>\xd | 37 | ···················allocated·by·this·object·and·can·be·free’d·by·the·object.·When·nowned·=·0·but·maxsize·>\xd |
38 | ···················0,·this·object·points·to·entries·that·have·been·allocated·elsewhere,·and·these·entries·will·not\xd | 38 | ···················0,·this·object·points·to·entries·that·have·been·allocated·elsewhere,·and·these·entries·will·not\xd |
Offset 10, 15 lines modified | Offset 10, 15 lines modified | ||
10 | %%EndComments | 10 | %%EndComments |
11 | %%BeginDefaults | 11 | %%BeginDefaults |
12 | %%ViewingOrientation:·1·0·0·1 | 12 | %%ViewingOrientation:·1·0·0·1 |
13 | %%EndDefaults | 13 | %%EndDefaults |
14 | %DVIPSWebPage:·(www.radicaleye.com) | 14 | %DVIPSWebPage:·(www.radicaleye.com) |
15 | %DVIPSCommandLine:·dvips·main·-o·IVL.ps | 15 | %DVIPSCommandLine:·dvips·main·-o·IVL.ps |
16 | %DVIPSParameters:·dpi=600 | 16 | %DVIPSParameters:·dpi=600 |
17 | %DVIPSSource:··TeX·output·202 | 17 | %DVIPSSource:··TeX·output·2024.03.20:1839 |
18 | %%BeginProcSet:·tex.pro·0·0 | 18 | %%BeginProcSet:·tex.pro·0·0 |
19 | %! | 19 | %! |
20 | /TeXDict·300·dict·def·TeXDict·begin/N{def}def/B{bind·def}N/S{exch}N/X{S | 20 | /TeXDict·300·dict·def·TeXDict·begin/N{def}def/B{bind·def}N/S{exch}N/X{S |
21 | N}B/A{dup}B/TR{translate}N/isls·false·N/vsize·11·72·mul·N/hsize·8.5·72 | 21 | N}B/A{dup}B/TR{translate}N/isls·false·N/vsize·11·72·mul·N/hsize·8.5·72 |
22 | mul·N/landplus90{false}def/@rigin{isls{[0·landplus90{1·-1}{-1·1}ifelse·0 | 22 | mul·N/landplus90{false}def/@rigin{isls{[0·landplus90{1·-1}{-1·1}ifelse·0 |
23 | 0·0]concat}if·72·Resolution·div·72·VResolution·div·neg·scale·isls{ | 23 | 0·0]concat}if·72·Resolution·div·72·VResolution·div·neg·scale·isls{ |
24 | landplus90{VResolution·72·div·vsize·mul·0·exch}{Resolution·-72·div·hsize | 24 | landplus90{VResolution·72·div·vsize·mul·0·exch}{Resolution·-72·div·hsize |
Offset 22, 15 lines modified | Offset 22, 15 lines modified | ||
22 | ···················Each·list·is·allocated·separately·using·the·IVinit()·function.·When·the·IVL·object·is\xd | 22 | ···················Each·list·is·allocated·separately·using·the·IVinit()·function.·When·the·IVL·object·is\xd |
23 | ···················free’d,·each·list·is·free’d·separately·using·the·IVfree()·function.\xd | 23 | ···················free’d,·each·list·is·free’d·separately·using·the·IVfree()·function.\xd |
24 | ·················–·IVL·UNKNOWN\xd | 24 | ·················–·IVL·UNKNOWN\xd |
25 | ···················This·storage·mode·is·available·for·the·cases·where·storage·for·a·list·is·aliased·to·another\xd | 25 | ···················This·storage·mode·is·available·for·the·cases·where·storage·for·a·list·is·aliased·to·another\xd |
26 | ···················location.·Absolutely·no·free’ing·of·data·is·done·when·the·IVL·object·is·free’d.\xd | 26 | ···················location.·Absolutely·no·free’ing·of·data·is·done·when·the·IVL·object·is·free’d.\xd |
27 | ···············The·storage·management·is·handled·by·IVL·setList()·and·IVL·setPointerToList().\xd | 27 | ···············The·storage·management·is·handled·by·IVL·setList()·and·IVL·setPointerToList().\xd |
28 | ·············································1\xd | 28 | ·············································1\xd |
29 | ··············2····························· | 29 | ··············2·····························IVL·:·DRAFT·March·20,·2024\xd |
30 | ·················•·int·maxnlist·:·maximum·number·of·lists.\xd | 30 | ·················•·int·maxnlist·:·maximum·number·of·lists.\xd |
31 | ···················int·nlist·:·number·of·lists.\xd | 31 | ···················int·nlist·:·number·of·lists.\xd |
32 | ···················We·may·not·know·how·many·lists·we·will·need·for·the·object·—·maxnlist·is·the·dimension\xd | 32 | ···················We·may·not·know·how·many·lists·we·will·need·for·the·object·—·maxnlist·is·the·dimension\xd |
33 | ···················of·the·sizes[]·and·p·vec[]·arrays·and·nlist·is·the·present·number·of·active·lists.·When\xd | 33 | ···················of·the·sizes[]·and·p·vec[]·arrays·and·nlist·is·the·present·number·of·active·lists.·When\xd |
34 | ···················we·initialize·the·object·using·one·of·the·IVL·init{1,2,3}()·methods,·we·set·nlist·equal·to\xd | 34 | ···················we·initialize·the·object·using·one·of·the·IVL·init{1,2,3}()·methods,·we·set·nlist·equal·to\xd |
35 | ···················maxnlist.·We·resize·the·object·using·IVL·setMaxnlist().\xd | 35 | ···················maxnlist.·We·resize·the·object·using·IVL·setMaxnlist().\xd |
36 | ·················•·int·tsize·:·total·number·of·list·entries.\xd | 36 | ·················•·int·tsize·:·total·number·of·list·entries.\xd |
Offset 10, 15 lines modified | Offset 10, 15 lines modified | ||
10 | %%EndComments | 10 | %%EndComments |
11 | %%BeginDefaults | 11 | %%BeginDefaults |
12 | %%ViewingOrientation:·1·0·0·1 | 12 | %%ViewingOrientation:·1·0·0·1 |
13 | %%EndDefaults | 13 | %%EndDefaults |
14 | %DVIPSWebPage:·(www.radicaleye.com) | 14 | %DVIPSWebPage:·(www.radicaleye.com) |
15 | %DVIPSCommandLine:·dvips·main·-o·Ideq.ps | 15 | %DVIPSCommandLine:·dvips·main·-o·Ideq.ps |
16 | %DVIPSParameters:·dpi=600 | 16 | %DVIPSParameters:·dpi=600 |
17 | %DVIPSSource:··TeX·output·202 | 17 | %DVIPSSource:··TeX·output·2024.03.20:1839 |
18 | %%BeginProcSet:·tex.pro·0·0 | 18 | %%BeginProcSet:·tex.pro·0·0 |
19 | %! | 19 | %! |
20 | /TeXDict·300·dict·def·TeXDict·begin/N{def}def/B{bind·def}N/S{exch}N/X{S | 20 | /TeXDict·300·dict·def·TeXDict·begin/N{def}def/B{bind·def}N/S{exch}N/X{S |
21 | N}B/A{dup}B/TR{translate}N/isls·false·N/vsize·11·72·mul·N/hsize·8.5·72 | 21 | N}B/A{dup}B/TR{translate}N/isls·false·N/vsize·11·72·mul·N/hsize·8.5·72 |
22 | mul·N/landplus90{false}def/@rigin{isls{[0·landplus90{1·-1}{-1·1}ifelse·0 | 22 | mul·N/landplus90{false}def/@rigin{isls{[0·landplus90{1·-1}{-1·1}ifelse·0 |
23 | 0·0]concat}if·72·Resolution·div·72·VResolution·div·neg·scale·isls{ | 23 | 0·0]concat}if·72·Resolution·div·72·VResolution·div·neg·scale·isls{ |
24 | landplus90{VResolution·72·div·vsize·mul·0·exch}{Resolution·-72·div·hsize | 24 | landplus90{VResolution·72·div·vsize·mul·0·exch}{Resolution·-72·div·hsize |
Offset 16, 15 lines modified | Offset 16, 15 lines modified | ||
16 | ·············•·IV·iv·:·an·IV·object·to·hold·the·list·vector.\xd | 16 | ·············•·IV·iv·:·an·IV·object·to·hold·the·list·vector.\xd |
17 | ···········A·correctly·initialized·and·nontrivial·Ideq·object·will·have·maxsize·>·0.·When·the·dequeue·is\xd | 17 | ···········A·correctly·initialized·and·nontrivial·Ideq·object·will·have·maxsize·>·0.·When·the·dequeue·is\xd |
18 | ···········empty,·head·=·tail·=·-1.\xd | 18 | ···········empty,·head·=·tail·=·-1.\xd |
19 | ···········1.2··Prototypes·and·descriptions·of·Ideq·methods\xd | 19 | ···········1.2··Prototypes·and·descriptions·of·Ideq·methods\xd |
20 | ···········This·section·contains·brief·descriptions·including·prototypes·of·all·methods·that·belong·to·the·Ideq\xd | 20 | ···········This·section·contains·brief·descriptions·including·prototypes·of·all·methods·that·belong·to·the·Ideq\xd |
21 | ···········object.\xd | 21 | ···········object.\xd |
22 | ·············································1\xd | 22 | ·············································1\xd |
23 | ··············2·····························Ideq·:·DRAFT· | 23 | ··············2·····························Ideq·:·DRAFT·March·20,·2024\xd |
24 | ··············1.2.1··Basic·methods\xd | 24 | ··············1.2.1··Basic·methods\xd |
25 | ··············As·usual,·there·are·four·basic·methods·to·support·object·creation,·setting·default·fields,·clearing\xd | 25 | ··············As·usual,·there·are·four·basic·methods·to·support·object·creation,·setting·default·fields,·clearing\xd |
26 | ··············any·allocated·data,·and·free’ing·the·object.\xd | 26 | ··············any·allocated·data,·and·free’ing·the·object.\xd |
27 | ················1.·Ideq·*·Ideq_new·(·void·)·;\xd | 27 | ················1.·Ideq·*·Ideq_new·(·void·)·;\xd |
28 | ···················This·method·simply·allocates·storage·for·the·Ideq·structure·and·then·sets·the·default·fields\xd | 28 | ···················This·method·simply·allocates·storage·for·the·Ideq·structure·and·then·sets·the·default·fields\xd |
29 | ···················by·a·call·to·Ideq·setDefaultFields().\xd | 29 | ···················by·a·call·to·Ideq·setDefaultFields().\xd |
30 | ················2.·void·Ideq_setDefaultFields·(·Ideq·*deq·)·;\xd | 30 | ················2.·void·Ideq_setDefaultFields·(·Ideq·*deq·)·;\xd |
Offset 11, 15 lines modified | Offset 11, 15 lines modified | ||
11 | %%EndComments | 11 | %%EndComments |
12 | %%BeginDefaults | 12 | %%BeginDefaults |
13 | %%ViewingOrientation:·1·0·0·1 | 13 | %%ViewingOrientation:·1·0·0·1 |
14 | %%EndDefaults | 14 | %%EndDefaults |
15 | %DVIPSWebPage:·(www.radicaleye.com) | 15 | %DVIPSWebPage:·(www.radicaleye.com) |
16 | %DVIPSCommandLine:·dvips·main·-o·InpMtx.ps | 16 | %DVIPSCommandLine:·dvips·main·-o·InpMtx.ps |
17 | %DVIPSParameters:·dpi=600 | 17 | %DVIPSParameters:·dpi=600 |
18 | %DVIPSSource:··TeX·output·202 | 18 | %DVIPSSource:··TeX·output·2024.03.20:1839 |
19 | %%BeginProcSet:·tex.pro·0·0 | 19 | %%BeginProcSet:·tex.pro·0·0 |
20 | %! | 20 | %! |
21 | /TeXDict·300·dict·def·TeXDict·begin/N{def}def/B{bind·def}N/S{exch}N/X{S | 21 | /TeXDict·300·dict·def·TeXDict·begin/N{def}def/B{bind·def}N/S{exch}N/X{S |
22 | N}B/A{dup}B/TR{translate}N/isls·false·N/vsize·11·72·mul·N/hsize·8.5·72 | 22 | N}B/A{dup}B/TR{translate}N/isls·false·N/vsize·11·72·mul·N/hsize·8.5·72 |
23 | mul·N/landplus90{false}def/@rigin{isls{[0·landplus90{1·-1}{-1·1}ifelse·0 | 23 | mul·N/landplus90{false}def/@rigin{isls{[0·landplus90{1·-1}{-1·1}ifelse·0 |
24 | 0·0]concat}if·72·Resolution·div·72·VResolution·div·neg·scale·isls{ | 24 | 0·0]concat}if·72·Resolution·div·72·VResolution·div·neg·scale·isls{ |
25 | landplus90{VResolution·72·div·vsize·mul·0·exch}{Resolution·-72·div·hsize | 25 | landplus90{VResolution·72·div·vsize·mul·0·exch}{Resolution·-72·div·hsize |
Offset 28, 15 lines modified | Offset 28, 15 lines modified | ||
28 | ·······················be·efficient·to·have·sufficient·elbow·room·to·minimize·the·number·of·sorts·and·compressions.·In·this\xd | 28 | ·······················be·efficient·to·have·sufficient·elbow·room·to·minimize·the·number·of·sorts·and·compressions.·In·this\xd |
29 | ·······················case,·a·tight·upper·bound·on·the·necessary·storage·is·the·sum·of·the·sizes·of·the·elemental·matrices.\xd | 29 | ·······················case,·a·tight·upper·bound·on·the·necessary·storage·is·the·sum·of·the·sizes·of·the·elemental·matrices.\xd |
30 | ·······················The·entries·are·assembled·by·a·call·to·InpMtx·changeStorageMode().\xd | 30 | ·······················The·entries·are·assembled·by·a·call·to·InpMtx·changeStorageMode().\xd |
31 | ··················································································T\xd | 31 | ··················································································T\xd |
32 | ····················5.·CreateanIVLobjectthatcontainsthefull·adjacencyofA+A·bycallingtheInpMtx·fullAdjacency()\xd | 32 | ····················5.·CreateanIVLobjectthatcontainsthefull·adjacencyofA+A·bycallingtheInpMtx·fullAdjacency()\xd |
33 | ·······················method.\xd | 33 | ·······················method.\xd |
34 | ·····································································1\xd | 34 | ·····································································1\xd |
35 | ················2····································InpMtx·:·DRAFT· | 35 | ················2····································InpMtx·:·DRAFT·March·20,·2024\xd |
36 | ···················6.·Create·a·Graph·object·using·the·Graph·init2()·method·and·the·IVL·object·as·an·input·argument.\xd | 36 | ···················6.·Create·a·Graph·object·using·the·Graph·init2()·method·and·the·IVL·object·as·an·input·argument.\xd |
37 | ················A·similar·functionality·exists·for·creating·a·Graph·object·from·a·linear·combination·of·two·InpMtx·objects\xd | 37 | ················A·similar·functionality·exists·for·creating·a·Graph·object·from·a·linear·combination·of·two·InpMtx·objects\xd |
38 | ················that·contains·the·matrices·A·and·B.·The·InpMtx·fullAdjacency2()·method·returns·an·IVL·object·with\xd | 38 | ················that·contains·the·matrices·A·and·B.·The·InpMtx·fullAdjacency2()·method·returns·an·IVL·object·with\xd |
39 | ················the·full·adjacency·of·(A+B)+(A+B)T.·These·two·methods·are·called·by·the·DPencil·fullAdjacency()\xd | 39 | ················the·full·adjacency·of·(A+B)+(A+B)T.·These·two·methods·are·called·by·the·DPencil·fullAdjacency()\xd |
40 | ················methods·to·return·the·full·adjacency·of·a·matrix·pencil.\xd | 40 | ················methods·to·return·the·full·adjacency·of·a·matrix·pencil.\xd |
41 | ···················Here·is·a·common·sequence·of·events·to·use·this·object·when·we·want·to·assemble·the·entries·of·a·sparse\xd | 41 | ···················Here·is·a·common·sequence·of·events·to·use·this·object·when·we·want·to·assemble·the·entries·of·a·sparse\xd |
42 | ················matrix.\xd | 42 | ················matrix.\xd |
Offset 7, 15 lines modified | Offset 7, 15 lines modified | ||
7 | %%BoundingBox:·0·0·612·792 | 7 | %%BoundingBox:·0·0·612·792 |
8 | %%DocumentFonts:·CMR17·CMBX12·CMR12·CMR8·CMR6·CMR9·CMBX10·CMR10·CMTT10 | 8 | %%DocumentFonts:·CMR17·CMBX12·CMR12·CMR8·CMR6·CMR9·CMBX10·CMR10·CMTT10 |
9 | %%DocumentPaperSizes:·Letter | 9 | %%DocumentPaperSizes:·Letter |
10 | %%EndComments | 10 | %%EndComments |
11 | %DVIPSWebPage:·(www.radicaleye.com) | 11 | %DVIPSWebPage:·(www.radicaleye.com) |
12 | %DVIPSCommandLine:·dvips·main·-o·LinSol.ps | 12 | %DVIPSCommandLine:·dvips·main·-o·LinSol.ps |
13 | %DVIPSParameters:·dpi=600 | 13 | %DVIPSParameters:·dpi=600 |
14 | %DVIPSSource:··TeX·output·202 | 14 | %DVIPSSource:··TeX·output·2024.03.20:1840 |
15 | %%BeginProcSet:·tex.pro·0·0 | 15 | %%BeginProcSet:·tex.pro·0·0 |
16 | %! | 16 | %! |
17 | /TeXDict·300·dict·def·TeXDict·begin/N{def}def/B{bind·def}N/S{exch}N/X{S | 17 | /TeXDict·300·dict·def·TeXDict·begin/N{def}def/B{bind·def}N/S{exch}N/X{S |
18 | N}B/A{dup}B/TR{translate}N/isls·false·N/vsize·11·72·mul·N/hsize·8.5·72 | 18 | N}B/A{dup}B/TR{translate}N/isls·false·N/vsize·11·72·mul·N/hsize·8.5·72 |
19 | mul·N/landplus90{false}def/@rigin{isls{[0·landplus90{1·-1}{-1·1}ifelse·0 | 19 | mul·N/landplus90{false}def/@rigin{isls{[0·landplus90{1·-1}{-1·1}ifelse·0 |
20 | 0·0]concat}if·72·Resolution·div·72·VResolution·div·neg·scale·isls{ | 20 | 0·0]concat}if·72·Resolution·div·72·VResolution·div·neg·scale·isls{ |
21 | landplus90{VResolution·72·div·vsize·mul·0·exch}{Resolution·-72·div·hsize | 21 | landplus90{VResolution·72·div·vsize·mul·0·exch}{Resolution·-72·div·hsize |
Offset 1, 13 lines modified | Offset 1, 13 lines modified | ||
1 | ············································Wrapper·Objects·for·Solving\xd | 1 | ············································Wrapper·Objects·for·Solving\xd |
2 | ···········································a·Linear·System·of·Equations\xd | 2 | ···········································a·Linear·System·of·Equations\xd |
3 | ·················································using·SPOOLES·2.2\xd | 3 | ·················································using·SPOOLES·2.2\xd |
4 | ··········································Cleve·Ashcraft······················Peter·Schartz\xd | 4 | ··········································Cleve·Ashcraft······················Peter·Schartz\xd |
5 | ·································Boeing·Shared·Services·Group1·············CSARCorporation2\xd | 5 | ·································Boeing·Shared·Services·Group1·············CSARCorporation2\xd |
6 | ························································· | 6 | ·························································March·20,·2024\xd |
7 | ··················1P.·O.·Box·24346,·Mail·Stop·7L-21,·Seattle,·Washington·98124.·This·research·was·supported·in·part·by·the\xd | 7 | ··················1P.·O.·Box·24346,·Mail·Stop·7L-21,·Seattle,·Washington·98124.·This·research·was·supported·in·part·by·the\xd |
8 | ················DARPAContract·DABT63-95-C-0122·and·the·DoD·High·Performance·Computing·Modernization·Program·Common\xd | 8 | ················DARPAContract·DABT63-95-C-0122·and·the·DoD·High·Performance·Computing·Modernization·Program·Common\xd |
9 | ················HPCSoftware·Support·Initiative.\xd | 9 | ················HPCSoftware·Support·Initiative.\xd |
10 | ··················228035·Dorothy·Drive,·Agoura·Hills,·CA·91301.·This·research·was·supported·in·part·by·the·DARPA·Contract\xd | 10 | ··················228035·Dorothy·Drive,·Agoura·Hills,·CA·91301.·This·research·was·supported·in·part·by·the·DARPA·Contract\xd |
11 | ················DABT63-95-C-0122·and·the·DoD·High·Performance·Computing·Modernization·Program·Common·HPC·Software\xd | 11 | ················DABT63-95-C-0122·and·the·DoD·High·Performance·Computing·Modernization·Program·Common·HPC·Software\xd |
12 | ················Support·Initiative.\xd | 12 | ················Support·Initiative.\xd |
13 | ·····························Abstract\xd | 13 | ·····························Abstract\xd |
Offset 10, 15 lines modified | Offset 10, 15 lines modified | ||
10 | %%EndComments | 10 | %%EndComments |
11 | %%BeginDefaults | 11 | %%BeginDefaults |
12 | %%ViewingOrientation:·1·0·0·1 | 12 | %%ViewingOrientation:·1·0·0·1 |
13 | %%EndDefaults | 13 | %%EndDefaults |
14 | %DVIPSWebPage:·(www.radicaleye.com) | 14 | %DVIPSWebPage:·(www.radicaleye.com) |
15 | %DVIPSCommandLine:·dvips·main·-o·Lock.ps | 15 | %DVIPSCommandLine:·dvips·main·-o·Lock.ps |
16 | %DVIPSParameters:·dpi=600 | 16 | %DVIPSParameters:·dpi=600 |
17 | %DVIPSSource:··TeX·output·202 | 17 | %DVIPSSource:··TeX·output·2024.03.20:1839 |
18 | %%BeginProcSet:·tex.pro·0·0 | 18 | %%BeginProcSet:·tex.pro·0·0 |
19 | %! | 19 | %! |
20 | /TeXDict·300·dict·def·TeXDict·begin/N{def}def/B{bind·def}N/S{exch}N/X{S | 20 | /TeXDict·300·dict·def·TeXDict·begin/N{def}def/B{bind·def}N/S{exch}N/X{S |
21 | N}B/A{dup}B/TR{translate}N/isls·false·N/vsize·11·72·mul·N/hsize·8.5·72 | 21 | N}B/A{dup}B/TR{translate}N/isls·false·N/vsize·11·72·mul·N/hsize·8.5·72 |
22 | mul·N/landplus90{false}def/@rigin{isls{[0·landplus90{1·-1}{-1·1}ifelse·0 | 22 | mul·N/landplus90{false}def/@rigin{isls{[0·landplus90{1·-1}{-1·1}ifelse·0 |
23 | 0·0]concat}if·72·Resolution·div·72·VResolution·div·neg·scale·isls{ | 23 | 0·0]concat}if·72·Resolution·div·72·VResolution·div·neg·scale·isls{ |
24 | landplus90{VResolution·72·div·vsize·mul·0·exch}{Resolution·-72·div·hsize | 24 | landplus90{VResolution·72·div·vsize·mul·0·exch}{Resolution·-72·div·hsize |
Offset 19, 15 lines modified | Offset 19, 15 lines modified | ||
19 | ··············•·int·nlocks·:·number·of·locks·made.\xd | 19 | ··············•·int·nlocks·:·number·of·locks·made.\xd |
20 | ··············•·int·nunlocks·:·number·of·unlocks·made.\xd | 20 | ··············•·int·nunlocks·:·number·of·unlocks·made.\xd |
21 | ··············•·the·mutual·exclusion·lock\xd | 21 | ··············•·the·mutual·exclusion·lock\xd |
22 | ···············For·Solaris·threads·we·have·mutex·t·*mutex.\xd | 22 | ···············For·Solaris·threads·we·have·mutex·t·*mutex.\xd |
23 | ···············For·POSIX·threads·we·have·pthread·mutex·t·*mutex.\xd | 23 | ···············For·POSIX·threads·we·have·pthread·mutex·t·*mutex.\xd |
24 | ···············For·no·threads·we·have·void·*mutex.\xd | 24 | ···············For·no·threads·we·have·void·*mutex.\xd |
25 | ·············································1\xd | 25 | ·············································1\xd |
26 | ··············2·····························Lock·:·DRAFT· | 26 | ··············2·····························Lock·:·DRAFT·March·20,·2024\xd |
27 | ··············1.2···Prototypes·and·descriptions·of·Lock·methods\xd | 27 | ··············1.2···Prototypes·and·descriptions·of·Lock·methods\xd |
28 | ··············1.2.1··Basic·methods\xd | 28 | ··············1.2.1··Basic·methods\xd |
29 | ··············As·usual,·there·are·four·basic·methods·to·support·object·creation,·setting·default·fields,·clearing\xd | 29 | ··············As·usual,·there·are·four·basic·methods·to·support·object·creation,·setting·default·fields,·clearing\xd |
30 | ··············any·allocated·data,·and·free’ing·the·object.\xd | 30 | ··············any·allocated·data,·and·free’ing·the·object.\xd |
31 | ················1.·Lock·*·Lock_new·(·void·)·;\xd | 31 | ················1.·Lock·*·Lock_new·(·void·)·;\xd |
32 | ··················This·method·simply·allocates·storage·for·the·Lock·structure·and·then·sets·the·default·fields\xd | 32 | ··················This·method·simply·allocates·storage·for·the·Lock·structure·and·then·sets·the·default·fields\xd |
33 | ··················by·a·call·to·Lock·setDefaultFields().\xd | 33 | ··················by·a·call·to·Lock·setDefaultFields().\xd |
Offset 11, 15 lines modified | Offset 11, 15 lines modified | ||
11 | %%EndComments | 11 | %%EndComments |
12 | %%BeginDefaults | 12 | %%BeginDefaults |
13 | %%ViewingOrientation:·1·0·0·1 | 13 | %%ViewingOrientation:·1·0·0·1 |
14 | %%EndDefaults | 14 | %%EndDefaults |
15 | %DVIPSWebPage:·(www.radicaleye.com) | 15 | %DVIPSWebPage:·(www.radicaleye.com) |
16 | %DVIPSCommandLine:·dvips·main·-o·MPI.ps | 16 | %DVIPSCommandLine:·dvips·main·-o·MPI.ps |
17 | %DVIPSParameters:·dpi=600 | 17 | %DVIPSParameters:·dpi=600 |
18 | %DVIPSSource:··TeX·output·202 | 18 | %DVIPSSource:··TeX·output·2024.03.20:1840 |
19 | %%BeginProcSet:·tex.pro·0·0 | 19 | %%BeginProcSet:·tex.pro·0·0 |
20 | %! | 20 | %! |
21 | /TeXDict·300·dict·def·TeXDict·begin/N{def}def/B{bind·def}N/S{exch}N/X{S | 21 | /TeXDict·300·dict·def·TeXDict·begin/N{def}def/B{bind·def}N/S{exch}N/X{S |
22 | N}B/A{dup}B/TR{translate}N/isls·false·N/vsize·11·72·mul·N/hsize·8.5·72 | 22 | N}B/A{dup}B/TR{translate}N/isls·false·N/vsize·11·72·mul·N/hsize·8.5·72 |
23 | mul·N/landplus90{false}def/@rigin{isls{[0·landplus90{1·-1}{-1·1}ifelse·0 | 23 | mul·N/landplus90{false}def/@rigin{isls{[0·landplus90{1·-1}{-1·1}ifelse·0 |
24 | 0·0]concat}if·72·Resolution·div·72·VResolution·div·neg·scale·isls{ | 24 | 0·0]concat}if·72·Resolution·div·72·VResolution·div·neg·scale·isls{ |
25 | landplus90{VResolution·72·div·vsize·mul·0·exch}{Resolution·-72·div·hsize | 25 | landplus90{VResolution·72·div·vsize·mul·0·exch}{Resolution·-72·div·hsize |
Offset 31, 15 lines modified | Offset 31, 15 lines modified | ||
31 | ·················scatter/added·into·Y.\xd | 31 | ·················scatter/added·into·Y.\xd |
32 | ····················TheMatMulInfoobjectstoresallthenecessaryinformationtomakethishappen.·ThereisoneMatMulInfo\xd | 32 | ····················TheMatMulInfoobjectstoresallthenecessaryinformationtomakethishappen.·ThereisoneMatMulInfo\xd |
33 | ·················object·per·processor.·It·has·the·following·fields.\xd | 33 | ·················object·per·processor.·It·has·the·following·fields.\xd |
34 | ····················•·symflag·—·symmetry·flag·for·A\xd | 34 | ····················•·symflag·—·symmetry·flag·for·A\xd |
35 | ·························–·0·(SPOOLES·SYMMETRIC)·–·symmetric·matrix\xd | 35 | ·························–·0·(SPOOLES·SYMMETRIC)·–·symmetric·matrix\xd |
36 | ·························–·1·(SPOOLES·HERMITIAN)·–·hermitian·matrix\xd | 36 | ·························–·1·(SPOOLES·HERMITIAN)·–·hermitian·matrix\xd |
37 | ·····································································1\xd | 37 | ·····································································1\xd |
38 | ·················2······································· | 38 | ·················2·······································MPI·:·DRAFT·March·20,·2024\xd |
39 | ·························–·2·(SPOOLES·NONSYMMETRIC)·–·nonsymmetric·matrix\xd | 39 | ·························–·2·(SPOOLES·NONSYMMETRIC)·–·nonsymmetric·matrix\xd |
40 | ····················•·opflag·—·operation·flag·for·the·multiply\xd | 40 | ····················•·opflag·—·operation·flag·for·the·multiply\xd |
41 | ·························–·0·(MMM·WITH·A)·—·perform·Y·:=·Y·+αAX\xd | 41 | ·························–·0·(MMM·WITH·A)·—·perform·Y·:=·Y·+αAX\xd |
42 | ·························–·1·(MMM·WITH·AT)·—·perform·Y·:=·Y·+αATX\xd | 42 | ·························–·1·(MMM·WITH·AT)·—·perform·Y·:=·Y·+αATX\xd |
43 | ·························–·2·(MMM·WITH·AH)·—·perform·Y·:=·Y·+αAHX\xd | 43 | ·························–·2·(MMM·WITH·AH)·—·perform·Y·:=·Y·+αAHX\xd |
44 | ····················•·IV·*XownedIV·—·list·of·rows·of·X·that·are·owned·by·this·processor,·these·form·the·rows·of·Xq.\xd | 44 | ····················•·IV·*XownedIV·—·list·of·rows·of·X·that·are·owned·by·this·processor,·these·form·the·rows·of·Xq.\xd |
45 | ····················•·IV·*XsupIV·—·list·of·rows·of·X·that·are·accessed·by·this·processor,·these·form·the·rows·of·Xq\xd | 45 | ····················•·IV·*XsupIV·—·list·of·rows·of·X·that·are·accessed·by·this·processor,·these·form·the·rows·of·Xq\xd |
Offset 11, 15 lines modified | Offset 11, 15 lines modified | ||
11 | %%EndComments | 11 | %%EndComments |
12 | %%BeginDefaults | 12 | %%BeginDefaults |
13 | %%ViewingOrientation:·1·0·0·1 | 13 | %%ViewingOrientation:·1·0·0·1 |
14 | %%EndDefaults | 14 | %%EndDefaults |
15 | %DVIPSWebPage:·(www.radicaleye.com) | 15 | %DVIPSWebPage:·(www.radicaleye.com) |
16 | %DVIPSCommandLine:·dvips·main·-o·MSMD.ps | 16 | %DVIPSCommandLine:·dvips·main·-o·MSMD.ps |
17 | %DVIPSParameters:·dpi=600 | 17 | %DVIPSParameters:·dpi=600 |
18 | %DVIPSSource:··TeX·output·202 | 18 | %DVIPSSource:··TeX·output·2024.03.20:1839 |
19 | %%BeginProcSet:·tex.pro·0·0 | 19 | %%BeginProcSet:·tex.pro·0·0 |
20 | %! | 20 | %! |
21 | /TeXDict·300·dict·def·TeXDict·begin/N{def}def/B{bind·def}N/S{exch}N/X{S | 21 | /TeXDict·300·dict·def·TeXDict·begin/N{def}def/B{bind·def}N/S{exch}N/X{S |
22 | N}B/A{dup}B/TR{translate}N/isls·false·N/vsize·11·72·mul·N/hsize·8.5·72 | 22 | N}B/A{dup}B/TR{translate}N/isls·false·N/vsize·11·72·mul·N/hsize·8.5·72 |
23 | mul·N/landplus90{false}def/@rigin{isls{[0·landplus90{1·-1}{-1·1}ifelse·0 | 23 | mul·N/landplus90{false}def/@rigin{isls{[0·landplus90{1·-1}{-1·1}ifelse·0 |
24 | 0·0]concat}if·72·Resolution·div·72·VResolution·div·neg·scale·isls{ | 24 | 0·0]concat}if·72·Resolution·div·72·VResolution·div·neg·scale·isls{ |
25 | landplus90{VResolution·72·div·vsize·mul·0·exch}{Resolution·-72·div·hsize | 25 | landplus90{VResolution·72·div·vsize·mul·0·exch}{Resolution·-72·div·hsize |
Offset 21, 15 lines modified | Offset 21, 15 lines modified | ||
21 | ····················•·approximate·external·degree,·(d·from·[?])·and·[?],·or\xd | 21 | ····················•·approximate·external·degree,·(d·from·[?])·and·[?],·or\xd |
22 | ······························································˜\xd | 22 | ······························································˜\xd |
23 | ····················•·half·external·and·half·approximate,·(d·from·[?]),·or\xd | 23 | ····················•·half·external·and·half·approximate,·(d·from·[?]),·or\xd |
24 | ····················•·a·constant·priority·(to·induce·maximal·independent·set·elimination).\xd | 24 | ····················•·a·constant·priority·(to·induce·maximal·independent·set·elimination).\xd |
25 | ···················1The·ETree·object·has·the·Tree·object·that·defines·the·connectivity·of·the·fronts,·knows·the·internal·and·external\xd | 25 | ···················1The·ETree·object·has·the·Tree·object·that·defines·the·connectivity·of·the·fronts,·knows·the·internal·and·external\xd |
26 | ················size·of·each·front,·and·has·a·map·from·the·vertices·to·the·fronts.\xd | 26 | ················size·of·each·front,·and·has·a·map·from·the·vertices·to·the·fronts.\xd |
27 | ···································································1\xd | 27 | ···································································1\xd |
28 | ···········2························MSMD·:·DRAFT· | 28 | ···········2························MSMD·:·DRAFT·March·20,·2024\xd |
29 | ···········We·intend·to·add·more·priorities,·e.g.,·approximate·deficiency·from·[?],·[?]·and·[?].\xd | 29 | ···········We·intend·to·add·more·priorities,·e.g.,·approximate·deficiency·from·[?],·[?]·and·[?].\xd |
30 | ··············Choose·a·priority,·then·specify·the·definition·of·a·step,·how·to·choose·an·independent·set·of\xd | 30 | ··············Choose·a·priority,·then·specify·the·definition·of·a·step,·how·to·choose·an·independent·set·of\xd |
31 | ···········vertices·to·eliminate·at·a·time.·Then·provide·a·map·from·each·vertex·to·the·stage·at·which·it·will\xd | 31 | ···········vertices·to·eliminate·at·a·time.·Then·provide·a·map·from·each·vertex·to·the·stage·at·which·it·will\xd |
32 | ···········be·eliminated.\xd | 32 | ···········be·eliminated.\xd |
33 | ··············Presently·there·is·one·ordering·method,·MSMD·order().·It·orders·the·vertices·by·stages,·i.e.\xd | 33 | ··············Presently·there·is·one·ordering·method,·MSMD·order().·It·orders·the·vertices·by·stages,·i.e.\xd |
34 | ···········vertices·in·stage·k·will·be·ordered·before·vertices·in·stage·k·+·1.·Inside·each·stage·the·vertices·are\xd | 34 | ···········vertices·in·stage·k·will·be·ordered·before·vertices·in·stage·k·+·1.·Inside·each·stage·the·vertices·are\xd |
35 | ···········ordered·by·steps.·At·each·step·an·independent·set·of·vertices·is·eliminated,·and·the·choice·is·based\xd | 35 | ···········ordered·by·steps.·At·each·step·an·independent·set·of·vertices·is·eliminated,·and·the·choice·is·based\xd |
Offset 11, 15 lines modified | Offset 11, 15 lines modified | ||
11 | %%EndComments | 11 | %%EndComments |
12 | %%BeginDefaults | 12 | %%BeginDefaults |
13 | %%ViewingOrientation:·1·0·0·1 | 13 | %%ViewingOrientation:·1·0·0·1 |
14 | %%EndDefaults | 14 | %%EndDefaults |
15 | %DVIPSWebPage:·(www.radicaleye.com) | 15 | %DVIPSWebPage:·(www.radicaleye.com) |
16 | %DVIPSCommandLine:·dvips·main·-o·MT.ps | 16 | %DVIPSCommandLine:·dvips·main·-o·MT.ps |
17 | %DVIPSParameters:·dpi=600 | 17 | %DVIPSParameters:·dpi=600 |
18 | %DVIPSSource:··TeX·output·202 | 18 | %DVIPSSource:··TeX·output·2024.03.20:1840 |
19 | %%BeginProcSet:·tex.pro·0·0 | 19 | %%BeginProcSet:·tex.pro·0·0 |
20 | %! | 20 | %! |
21 | /TeXDict·300·dict·def·TeXDict·begin/N{def}def/B{bind·def}N/S{exch}N/X{S | 21 | /TeXDict·300·dict·def·TeXDict·begin/N{def}def/B{bind·def}N/S{exch}N/X{S |
22 | N}B/A{dup}B/TR{translate}N/isls·false·N/vsize·11·72·mul·N/hsize·8.5·72 | 22 | N}B/A{dup}B/TR{translate}N/isls·false·N/vsize·11·72·mul·N/hsize·8.5·72 |
23 | mul·N/landplus90{false}def/@rigin{isls{[0·landplus90{1·-1}{-1·1}ifelse·0 | 23 | mul·N/landplus90{false}def/@rigin{isls{[0·landplus90{1·-1}{-1·1}ifelse·0 |
24 | 0·0]concat}if·72·Resolution·div·72·VResolution·div·neg·scale·isls{ | 24 | 0·0]concat}if·72·Resolution·div·72·VResolution·div·neg·scale·isls{ |
25 | landplus90{VResolution·72·div·vsize·mul·0·exch}{Resolution·-72·div·hsize | 25 | landplus90{VResolution·72·div·vsize·mul·0·exch}{Resolution·-72·div·hsize |
Offset 35, 15 lines modified | Offset 35, 15 lines modified | ||
35 | ················by·independent·topological·traversals·of·the·front·tree.·It·is·the·list·and·working·storage·data·structures·(the\xd | 35 | ················by·independent·topological·traversals·of·the·front·tree.·It·is·the·list·and·working·storage·data·structures·(the\xd |
36 | ················ChvList,·ChvManager·and·SubMtxManager·objects)·that·have·locks.·What·is·done·is·common·code·between\xd | 36 | ················ChvList,·ChvManager·and·SubMtxManager·objects)·that·have·locks.·What·is·done·is·common·code·between\xd |
37 | ················the·serial·and·multithreaded·environments,·it·is·the·choreography,·i.e.,·who·does·what,·that·differs.\xd | 37 | ················the·serial·and·multithreaded·environments,·it·is·the·choreography,·i.e.,·who·does·what,·that·differs.\xd |
38 | ···················Most·of·these·same·comments·apply·to·the·multithreaded·solve·methods.·The·calling·sequences·between\xd | 38 | ···················Most·of·these·same·comments·apply·to·the·multithreaded·solve·methods.·The·calling·sequences·between\xd |
39 | ················the·serial·and·multithreaded·solves·differs·by·one·parameter,·a·SolveMap·object·that·maps·the·submatrices\xd | 39 | ················the·serial·and·multithreaded·solves·differs·by·one·parameter,·a·SolveMap·object·that·maps·the·submatrices\xd |
40 | ················of·the·factor·matrix·to·the·threads·that·will·compute·with·them.\xd | 40 | ················of·the·factor·matrix·to·the·threads·that·will·compute·with·them.\xd |
41 | ·································································1\xd | 41 | ·································································1\xd |
42 | ··············2····························Multithreaded·:·DRAFT· | 42 | ··············2····························Multithreaded·:·DRAFT·March·20,·2024\xd |
43 | ··············1.1····Data·Structure\xd | 43 | ··············1.1····Data·Structure\xd |
44 | ··············There·are·no·multithreaded·specific·data·structures.·See·the·Lock·object·which·is·used·to·hide·the·particular\xd | 44 | ··············There·are·no·multithreaded·specific·data·structures.·See·the·Lock·object·which·is·used·to·hide·the·particular\xd |
45 | ··············mutual·exclusion·device·used·by·a·thread·library.\xd | 45 | ··············mutual·exclusion·device·used·by·a·thread·library.\xd |
46 | ··············1.2····Prototypes·and·descriptions·of·MT·methods\xd | 46 | ··············1.2····Prototypes·and·descriptions·of·MT·methods\xd |
47 | ··············This·section·contains·brief·descriptions·including·prototypes·of·all·methods·found·in·the·MT·source·directory.\xd | 47 | ··············This·section·contains·brief·descriptions·including·prototypes·of·all·methods·found·in·the·MT·source·directory.\xd |
48 | ··············1.2.1···Matrix-matrix·multiply·methods\xd | 48 | ··············1.2.1···Matrix-matrix·multiply·methods\xd |
49 | ··············Therearefivemethodstomultiplyavectortimesadensematrix.·Thefirstthreemethods,calledInpMtx·MT·nonsym·mmm*(),\xd | 49 | ··············Therearefivemethodstomultiplyavectortimesadensematrix.·Thefirstthreemethods,calledInpMtx·MT·nonsym·mmm*(),\xd |
Offset 11, 15 lines modified | Offset 11, 15 lines modified | ||
11 | %%EndComments | 11 | %%EndComments |
12 | %%BeginDefaults | 12 | %%BeginDefaults |
13 | %%ViewingOrientation:·1·0·0·1 | 13 | %%ViewingOrientation:·1·0·0·1 |
14 | %%EndDefaults | 14 | %%EndDefaults |
15 | %DVIPSWebPage:·(www.radicaleye.com) | 15 | %DVIPSWebPage:·(www.radicaleye.com) |
16 | %DVIPSCommandLine:·dvips·main·-o·Network.ps | 16 | %DVIPSCommandLine:·dvips·main·-o·Network.ps |
17 | %DVIPSParameters:·dpi=600 | 17 | %DVIPSParameters:·dpi=600 |
18 | %DVIPSSource:··TeX·output·202 | 18 | %DVIPSSource:··TeX·output·2024.03.20:1839 |
19 | %%BeginProcSet:·tex.pro·0·0 | 19 | %%BeginProcSet:·tex.pro·0·0 |
20 | %! | 20 | %! |
21 | /TeXDict·300·dict·def·TeXDict·begin/N{def}def/B{bind·def}N/S{exch}N/X{S | 21 | /TeXDict·300·dict·def·TeXDict·begin/N{def}def/B{bind·def}N/S{exch}N/X{S |
22 | N}B/A{dup}B/TR{translate}N/isls·false·N/vsize·11·72·mul·N/hsize·8.5·72 | 22 | N}B/A{dup}B/TR{translate}N/isls·false·N/vsize·11·72·mul·N/hsize·8.5·72 |
23 | mul·N/landplus90{false}def/@rigin{isls{[0·landplus90{1·-1}{-1·1}ifelse·0 | 23 | mul·N/landplus90{false}def/@rigin{isls{[0·landplus90{1·-1}{-1·1}ifelse·0 |
24 | 0·0]concat}if·72·Resolution·div·72·VResolution·div·neg·scale·isls{ | 24 | 0·0]concat}if·72·Resolution·div·72·VResolution·div·neg·scale·isls{ |
25 | landplus90{VResolution·72·div·vsize·mul·0·exch}{Resolution·-72·div·hsize | 25 | landplus90{VResolution·72·div·vsize·mul·0·exch}{Resolution·-72·div·hsize |
Offset 31, 15 lines modified | Offset 31, 15 lines modified | ||
31 | ················································B···········B\xd | 31 | ················································B···········B\xd |
32 | ·····················Similarly,·an·edge·(x,y)·where·x·∈·Y··and·y·∈·Y····is·not·found·in·the·network.\xd | 32 | ·····················Similarly,·an·edge·(x,y)·where·x·∈·Y··and·y·∈·Y····is·not·found·in·the·network.\xd |
33 | ·························································W···········W\xd | 33 | ·························································W···········W\xd |
34 | ···················•·An·edge·(x,y)·where·x·∈·Y····and·y·∈·Y·becomes·two·edges,·(x,y−)·and·(y+,x),·both·with\xd | 34 | ···················•·An·edge·(x,y)·where·x·∈·Y····and·y·∈·Y·becomes·two·edges,·(x,y−)·and·(y+,x),·both·with\xd |
35 | ················································B···········I\xd | 35 | ················································B···········I\xd |
36 | ·····················infinite·capacity.\xd | 36 | ·····················infinite·capacity.\xd |
37 | ·······························································1\xd | 37 | ·······························································1\xd |
38 | ··············2·····························Network·:·DRAFT· | 38 | ··············2·····························Network·:·DRAFT·March·20,·2024\xd |
39 | ·················•·An·edge·(y,z)·where·y·∈·Y·and·z·∈·Y···becomes·two·edges,·(y+,z)·and·(z,y−),·both·with\xd | 39 | ·················•·An·edge·(y,z)·where·y·∈·Y·and·z·∈·Y···becomes·two·edges,·(y+,z)·and·(z,y−),·both·with\xd |
40 | ············································I·········W\xd | 40 | ············································I·········W\xd |
41 | ···················infinite·capacity.\xd | 41 | ···················infinite·capacity.\xd |
42 | ···········································································+·−·········+·−\xd | 42 | ···········································································+·−·········+·−\xd |
43 | ·················•·An·edge·(x,y)·where·x·∈·Y·and·y·∈·Y·becomes·two·edges,·(x·,y·)·and·(y·,x·),·both·with\xd | 43 | ·················•·An·edge·(x,y)·where·x·∈·Y·and·y·∈·Y·becomes·two·edges,·(x·,y·)·and·(y·,x·),·both·with\xd |
44 | ···········································I·········I\xd | 44 | ···········································I·········I\xd |
45 | ···················infinite·capacity.\xd | 45 | ···················infinite·capacity.\xd |
Offset 11, 15 lines modified | Offset 11, 15 lines modified | ||
11 | %%EndComments | 11 | %%EndComments |
12 | %%BeginDefaults | 12 | %%BeginDefaults |
13 | %%ViewingOrientation:·1·0·0·1 | 13 | %%ViewingOrientation:·1·0·0·1 |
14 | %%EndDefaults | 14 | %%EndDefaults |
15 | %DVIPSWebPage:·(www.radicaleye.com) | 15 | %DVIPSWebPage:·(www.radicaleye.com) |
16 | %DVIPSCommandLine:·dvips·main·-o·PatchAndGoInfo.ps | 16 | %DVIPSCommandLine:·dvips·main·-o·PatchAndGoInfo.ps |
17 | %DVIPSParameters:·dpi=600 | 17 | %DVIPSParameters:·dpi=600 |
18 | %DVIPSSource:··TeX·output·202 | 18 | %DVIPSSource:··TeX·output·2024.03.20:1839 |
19 | %%BeginProcSet:·tex.pro·0·0 | 19 | %%BeginProcSet:·tex.pro·0·0 |
20 | %! | 20 | %! |
21 | /TeXDict·300·dict·def·TeXDict·begin/N{def}def/B{bind·def}N/S{exch}N/X{S | 21 | /TeXDict·300·dict·def·TeXDict·begin/N{def}def/B{bind·def}N/S{exch}N/X{S |
22 | N}B/A{dup}B/TR{translate}N/isls·false·N/vsize·11·72·mul·N/hsize·8.5·72 | 22 | N}B/A{dup}B/TR{translate}N/isls·false·N/vsize·11·72·mul·N/hsize·8.5·72 |
23 | mul·N/landplus90{false}def/@rigin{isls{[0·landplus90{1·-1}{-1·1}ifelse·0 | 23 | mul·N/landplus90{false}def/@rigin{isls{[0·landplus90{1·-1}{-1·1}ifelse·0 |
24 | 0·0]concat}if·72·Resolution·div·72·VResolution·div·neg·scale·isls{ | 24 | 0·0]concat}if·72·Resolution·div·72·VResolution·div·neg·scale·isls{ |
25 | landplus90{VResolution·72·div·vsize·mul·0·exch}{Resolution·-72·div·hsize | 25 | landplus90{VResolution·72·div·vsize·mul·0·exch}{Resolution·-72·div·hsize |
Offset 26, 15 lines modified | Offset 26, 15 lines modified | ||
26 | ····························If·A······is·singular,·the·solution·X·=·0·and·X·=·A−1B·is·perfectly·acceptable.·In·other\xd | 26 | ····························If·A······is·singular,·the·solution·X·=·0·and·X·=·A−1B·is·perfectly·acceptable.·In·other\xd |
27 | ··································1,1·····································1················2·······2,2···2\xd | 27 | ··································1,1·····································1················2·······2,2···2\xd |
28 | ····························cases,·the·location·of·the·singularity·can·be·communicated·back·to·the·user·to·supply·useful\xd | 28 | ····························cases,·the·location·of·the·singularity·can·be·communicated·back·to·the·user·to·supply·useful\xd |
29 | ····························information·about·the·finite·element·model.·One·common·practice·is·to·not·use·pivoting,·but\xd | 29 | ····························information·about·the·finite·element·model.·One·common·practice·is·to·not·use·pivoting,·but\xd |
30 | ····························to·check·the·magnitude·of·the·diagonal·entry·as·a·row·and·column·is·to·be·eliminated.·If\xd | 30 | ····························to·check·the·magnitude·of·the·diagonal·entry·as·a·row·and·column·is·to·be·eliminated.·If\xd |
31 | ····························the·magnitude·is·smaller·than·a·user-supplied·parameter,·the·diagonal·entry·is·set·to·some\xd | 31 | ····························the·magnitude·is·smaller·than·a·user-supplied·parameter,·the·diagonal·entry·is·set·to·some\xd |
32 | ·····················································································1\xd | 32 | ·····················································································1\xd |
33 | ···············2···························PatchAndGoInfo·:·DRAFT· | 33 | ···············2···························PatchAndGoInfo·:·DRAFT·March·20,·2024\xd |
34 | ·····················multiple·of·the·largest·offdiagonal·entry·in·that·row·and·column·of·the·front,·the·location·and\xd | 34 | ·····················multiple·of·the·largest·offdiagonal·entry·in·that·row·and·column·of·the·front,·the·location·and\xd |
35 | ·····················perturbation·is·noted,·and·the·factorization·proceeds.\xd | 35 | ·····················perturbation·is·noted,·and·the·factorization·proceeds.\xd |
36 | ··················Other·strategies·can·be·added·to·the·PatchAndGoInfo·object.·For·example,·if·a·matrix·is·being\xd | 36 | ··················Other·strategies·can·be·added·to·the·PatchAndGoInfo·object.·For·example,·if·a·matrix·is·being\xd |
37 | ···············factored·that·is·believed·to·be·positive·definite,·and·a·negative·value·is·found·in·a·pivot·element,\xd | 37 | ···············factored·that·is·believed·to·be·positive·definite,·and·a·negative·value·is·found·in·a·pivot·element,\xd |
38 | ···············one·could·abort·the·factorization,·or·perturb·the·element·so·that·it·is·positive.\xd | 38 | ···············one·could·abort·the·factorization,·or·perturb·the·element·so·that·it·is·positive.\xd |
39 | ···············1.1····Data·Structure\xd | 39 | ···············1.1····Data·Structure\xd |
40 | ···············The·PatchAndGoInfo·structure·has·five·fields.\xd | 40 | ···············The·PatchAndGoInfo·structure·has·five·fields.\xd |
Offset 11, 15 lines modified | Offset 11, 15 lines modified | ||
11 | %%EndComments | 11 | %%EndComments |
12 | %%BeginDefaults | 12 | %%BeginDefaults |
13 | %%ViewingOrientation:·1·0·0·1 | 13 | %%ViewingOrientation:·1·0·0·1 |
14 | %%EndDefaults | 14 | %%EndDefaults |
15 | %DVIPSWebPage:·(www.radicaleye.com) | 15 | %DVIPSWebPage:·(www.radicaleye.com) |
16 | %DVIPSCommandLine:·dvips·main·-o·Pencil.ps | 16 | %DVIPSCommandLine:·dvips·main·-o·Pencil.ps |
17 | %DVIPSParameters:·dpi=600 | 17 | %DVIPSParameters:·dpi=600 |
18 | %DVIPSSource:··TeX·output·202 | 18 | %DVIPSSource:··TeX·output·2024.03.20:1839 |
19 | %%BeginProcSet:·tex.pro·0·0 | 19 | %%BeginProcSet:·tex.pro·0·0 |
20 | %! | 20 | %! |
21 | /TeXDict·300·dict·def·TeXDict·begin/N{def}def/B{bind·def}N/S{exch}N/X{S | 21 | /TeXDict·300·dict·def·TeXDict·begin/N{def}def/B{bind·def}N/S{exch}N/X{S |
22 | N}B/A{dup}B/TR{translate}N/isls·false·N/vsize·11·72·mul·N/hsize·8.5·72 | 22 | N}B/A{dup}B/TR{translate}N/isls·false·N/vsize·11·72·mul·N/hsize·8.5·72 |
23 | mul·N/landplus90{false}def/@rigin{isls{[0·landplus90{1·-1}{-1·1}ifelse·0 | 23 | mul·N/landplus90{false}def/@rigin{isls{[0·landplus90{1·-1}{-1·1}ifelse·0 |
24 | 0·0]concat}if·72·Resolution·div·72·VResolution·div·neg·scale·isls{ | 24 | 0·0]concat}if·72·Resolution·div·72·VResolution·div·neg·scale·isls{ |
25 | landplus90{VResolution·72·div·vsize·mul·0·exch}{Resolution·-72·div·hsize | 25 | landplus90{VResolution·72·div·vsize·mul·0·exch}{Resolution·-72·div·hsize |
Offset 16, 15 lines modified | Offset 16, 15 lines modified | ||
16 | ··············•·InpMtx·*inpmtxB·:·pointer·to·the·matrix·object·for·B.·If·inpmtxB·is·NULL,·then·B·is·the\xd | 16 | ··············•·InpMtx·*inpmtxB·:·pointer·to·the·matrix·object·for·B.·If·inpmtxB·is·NULL,·then·B·is·the\xd |
17 | ···············identity·matrix.\xd | 17 | ···············identity·matrix.\xd |
18 | ··············•·double·sigma[2]·:·real·or·complex·scalar·shift·value.\xd | 18 | ··············•·double·sigma[2]·:·real·or·complex·scalar·shift·value.\xd |
19 | ···········1.2··Prototypes·and·descriptions·of·Pencil·methods\xd | 19 | ···········1.2··Prototypes·and·descriptions·of·Pencil·methods\xd |
20 | ···········This·section·contains·brief·descriptions·including·prototypes·of·all·methods·that·belong·to·the\xd | 20 | ···········This·section·contains·brief·descriptions·including·prototypes·of·all·methods·that·belong·to·the\xd |
21 | ···········Pencil·object.\xd | 21 | ···········Pencil·object.\xd |
22 | ·············································1\xd | 22 | ·············································1\xd |
23 | ··············2····························· | 23 | ··············2·····························Chv·:·DRAFT·March·20,·2024\xd |
24 | ··············1.2.1··Basic·methods\xd | 24 | ··············1.2.1··Basic·methods\xd |
25 | ··············As·usual,·there·are·four·basic·methods·to·support·object·creation,·setting·default·fields,·clearing\xd | 25 | ··············As·usual,·there·are·four·basic·methods·to·support·object·creation,·setting·default·fields,·clearing\xd |
26 | ··············any·allocated·data,·and·free’ing·the·object.\xd | 26 | ··············any·allocated·data,·and·free’ing·the·object.\xd |
27 | ················1.·Pencil·*·Pencil_new·(·void·)·;\xd | 27 | ················1.·Pencil·*·Pencil_new·(·void·)·;\xd |
28 | ··················This·method·simply·allocates·storage·for·the·Pencil·structure·and·then·sets·the·default·fields\xd | 28 | ··················This·method·simply·allocates·storage·for·the·Pencil·structure·and·then·sets·the·default·fields\xd |
29 | ··················by·a·call·to·Pencil·setDefaultFields().\xd | 29 | ··················by·a·call·to·Pencil·setDefaultFields().\xd |
30 | ················2.·void·Pencil_setDefaultFields·(·Pencil·*pencil·)·;\xd | 30 | ················2.·void·Pencil_setDefaultFields·(·Pencil·*pencil·)·;\xd |
Offset 10, 15 lines modified | Offset 10, 15 lines modified | ||
10 | %%EndComments | 10 | %%EndComments |
11 | %%BeginDefaults | 11 | %%BeginDefaults |
12 | %%ViewingOrientation:·1·0·0·1 | 12 | %%ViewingOrientation:·1·0·0·1 |
13 | %%EndDefaults | 13 | %%EndDefaults |
14 | %DVIPSWebPage:·(www.radicaleye.com) | 14 | %DVIPSWebPage:·(www.radicaleye.com) |
15 | %DVIPSCommandLine:·dvips·main·-o·Perm.ps | 15 | %DVIPSCommandLine:·dvips·main·-o·Perm.ps |
16 | %DVIPSParameters:·dpi=600 | 16 | %DVIPSParameters:·dpi=600 |
17 | %DVIPSSource:··TeX·output·202 | 17 | %DVIPSSource:··TeX·output·2024.03.20:1840 |
18 | %%BeginProcSet:·tex.pro·0·0 | 18 | %%BeginProcSet:·tex.pro·0·0 |
19 | %! | 19 | %! |
20 | /TeXDict·300·dict·def·TeXDict·begin/N{def}def/B{bind·def}N/S{exch}N/X{S | 20 | /TeXDict·300·dict·def·TeXDict·begin/N{def}def/B{bind·def}N/S{exch}N/X{S |
21 | N}B/A{dup}B/TR{translate}N/isls·false·N/vsize·11·72·mul·N/hsize·8.5·72 | 21 | N}B/A{dup}B/TR{translate}N/isls·false·N/vsize·11·72·mul·N/hsize·8.5·72 |
22 | mul·N/landplus90{false}def/@rigin{isls{[0·landplus90{1·-1}{-1·1}ifelse·0 | 22 | mul·N/landplus90{false}def/@rigin{isls{[0·landplus90{1·-1}{-1·1}ifelse·0 |
23 | 0·0]concat}if·72·Resolution·div·72·VResolution·div·neg·scale·isls{ | 23 | 0·0]concat}if·72·Resolution·div·72·VResolution·div·neg·scale·isls{ |
24 | landplus90{VResolution·72·div·vsize·mul·0·exch}{Resolution·-72·div·hsize | 24 | landplus90{VResolution·72·div·vsize·mul·0·exch}{Resolution·-72·div·hsize |
Offset 14, 15 lines modified | Offset 14, 15 lines modified | ||
14 | ·············•·int·size·:·dimension·of·the·vectors\xd | 14 | ·············•·int·size·:·dimension·of·the·vectors\xd |
15 | ·············•·int·*newToOld·:·pointer·to·the·new-to-old·vector\xd | 15 | ·············•·int·*newToOld·:·pointer·to·the·new-to-old·vector\xd |
16 | ·············•·int·*oldToNew·:·pointer·to·the·old-to-new·vector\xd | 16 | ·············•·int·*oldToNew·:·pointer·to·the·old-to-new·vector\xd |
17 | ···········1.2··Prototypes·and·descriptions·of·Perm·methods\xd | 17 | ···········1.2··Prototypes·and·descriptions·of·Perm·methods\xd |
18 | ···········This·section·contains·brief·descriptions·including·prototypes·of·all·methods·that·belong·to·the·Perm\xd | 18 | ···········This·section·contains·brief·descriptions·including·prototypes·of·all·methods·that·belong·to·the·Perm\xd |
19 | ···········object.\xd | 19 | ···········object.\xd |
20 | ·············································1\xd | 20 | ·············································1\xd |
21 | ··············2·····························PERM·:·DRAFT· | 21 | ··············2·····························PERM·:·DRAFT·March·20,·2024\xd |
22 | ··············1.2.1··Basic·methods\xd | 22 | ··············1.2.1··Basic·methods\xd |
23 | ··············As·usual,·there·are·four·basic·methods·to·support·object·creation,·setting·default·fields,·clearing\xd | 23 | ··············As·usual,·there·are·four·basic·methods·to·support·object·creation,·setting·default·fields,·clearing\xd |
24 | ··············any·allocated·data,·and·free’ing·the·object.\xd | 24 | ··············any·allocated·data,·and·free’ing·the·object.\xd |
25 | ················1.·Perm·*·Perm_new·(·void·)·;\xd | 25 | ················1.·Perm·*·Perm_new·(·void·)·;\xd |
26 | ···················This·method·simply·allocates·storage·for·the·Perm·structure·and·then·sets·the·default·fields\xd | 26 | ···················This·method·simply·allocates·storage·for·the·Perm·structure·and·then·sets·the·default·fields\xd |
27 | ···················by·a·call·to·Perm·setDefaultFields().\xd | 27 | ···················by·a·call·to·Perm·setDefaultFields().\xd |
28 | ················2.·void·Perm_setDefaultFields·(·Perm·*perm·)·;\xd | 28 | ················2.·void·Perm_setDefaultFields·(·Perm·*perm·)·;\xd |
Offset 8, 15 lines modified | Offset 8, 15 lines modified | ||
8 | %%DocumentFonts:·CMR17·CMBX12·CMR12·CMR8·CMR6·CMR9·CMTT9·CMBX10·CMR10 | 8 | %%DocumentFonts:·CMR17·CMBX12·CMR12·CMR8·CMR6·CMR9·CMTT9·CMBX10·CMR10 |
9 | %%+·CMR7·CMBX8 | 9 | %%+·CMR7·CMBX8 |
10 | %%DocumentPaperSizes:·Letter | 10 | %%DocumentPaperSizes:·Letter |
11 | %%EndComments | 11 | %%EndComments |
12 | %DVIPSWebPage:·(www.radicaleye.com) | 12 | %DVIPSWebPage:·(www.radicaleye.com) |
13 | %DVIPSCommandLine:·dvips·main·-o·ReferenceManual.ps | 13 | %DVIPSCommandLine:·dvips·main·-o·ReferenceManual.ps |
14 | %DVIPSParameters:·dpi=600 | 14 | %DVIPSParameters:·dpi=600 |
15 | %DVIPSSource:··TeX·output·202 | 15 | %DVIPSSource:··TeX·output·2024.03.20:1839 |
16 | %%BeginProcSet:·tex.pro·0·0 | 16 | %%BeginProcSet:·tex.pro·0·0 |
17 | %! | 17 | %! |
18 | /TeXDict·300·dict·def·TeXDict·begin/N{def}def/B{bind·def}N/S{exch}N/X{S | 18 | /TeXDict·300·dict·def·TeXDict·begin/N{def}def/B{bind·def}N/S{exch}N/X{S |
19 | N}B/A{dup}B/TR{translate}N/isls·false·N/vsize·11·72·mul·N/hsize·8.5·72 | 19 | N}B/A{dup}B/TR{translate}N/isls·false·N/vsize·11·72·mul·N/hsize·8.5·72 |
20 | mul·N/landplus90{false}def/@rigin{isls{[0·landplus90{1·-1}{-1·1}ifelse·0 | 20 | mul·N/landplus90{false}def/@rigin{isls{[0·landplus90{1·-1}{-1·1}ifelse·0 |
21 | 0·0]concat}if·72·Resolution·div·72·VResolution·div·neg·scale·isls{ | 21 | 0·0]concat}if·72·Resolution·div·72·VResolution·div·neg·scale·isls{ |
22 | landplus90{VResolution·72·div·vsize·mul·0·exch}{Resolution·-72·div·hsize | 22 | landplus90{VResolution·72·div·vsize·mul·0·exch}{Resolution·-72·div·hsize |
Offset 1, 13 lines modified | Offset 1, 13 lines modified | ||
1 | ····························The·Reference·Manual·for·SPOOLES,·Release·2.2:\xd | 1 | ····························The·Reference·Manual·for·SPOOLES,·Release·2.2:\xd |
2 | ·······························An·Object·Oriented·Software·Library·for·Solving\xd | 2 | ·······························An·Object·Oriented·Software·Library·for·Solving\xd |
3 | ·········································Sparse·Linear·Systems·of·Equations\xd | 3 | ·········································Sparse·Linear·Systems·of·Equations\xd |
4 | ············································1······················2·······················3··················4\xd | 4 | ············································1······················2·······················3··················4\xd |
5 | ···························Cleve·Ashcraft··········Daniel·Pierce···········David·K.·Wah············Jason·Wu\xd | 5 | ···························Cleve·Ashcraft··········Daniel·Pierce···········David·K.·Wah············Jason·Wu\xd |
6 | ···························································· | 6 | ····························································March·20,·2024\xd |
7 | ···················1Boeing·Shared·Services·Group,·P.·O.·Box·24346,·Mail·Stop·7L-22,·Seattle,·Washington·98124,\xd | 7 | ···················1Boeing·Shared·Services·Group,·P.·O.·Box·24346,·Mail·Stop·7L-22,·Seattle,·Washington·98124,\xd |
8 | ·················cleve.ashcraft@boeing.com.·This·research·was·supported·in·part·by·the·DARPA·Contract·DABT63-95-C-0122\xd | 8 | ·················cleve.ashcraft@boeing.com.·This·research·was·supported·in·part·by·the·DARPA·Contract·DABT63-95-C-0122\xd |
9 | ·················and·the·DoD·High·Performance·Computing·Modernization·Program·Common·HPC·Software·Support·Initiative.\xd | 9 | ·················and·the·DoD·High·Performance·Computing·Modernization·Program·Common·HPC·Software·Support·Initiative.\xd |
10 | ···················2Boeing·Shared·Services·Group,·P.·O.·Box·24346,·Mail·Stop·7L-22,·Seattle,·Washington·98124,\xd | 10 | ···················2Boeing·Shared·Services·Group,·P.·O.·Box·24346,·Mail·Stop·7L-22,·Seattle,·Washington·98124,\xd |
11 | ·················dpierce@redwood.rt.cs.boeing.com.···This·research·was·supported·in·part·by·the·DARPA·Contract·DABT63-\xd | 11 | ·················dpierce@redwood.rt.cs.boeing.com.···This·research·was·supported·in·part·by·the·DARPA·Contract·DABT63-\xd |
12 | ·················95-C-0122·and·the·DoD·High·Performance·Computing·Modernization·Program·Common·HPC·Software·Support\xd | 12 | ·················95-C-0122·and·the·DoD·High·Performance·Computing·Modernization·Program·Common·HPC·Software·Support\xd |
13 | ·················Initiative.\xd | 13 | ·················Initiative.\xd |
Offset 11, 15 lines modified | Offset 11, 15 lines modified | ||
11 | %%EndComments | 11 | %%EndComments |
12 | %%BeginDefaults | 12 | %%BeginDefaults |
13 | %%ViewingOrientation:·1·0·0·1 | 13 | %%ViewingOrientation:·1·0·0·1 |
14 | %%EndDefaults | 14 | %%EndDefaults |
15 | %DVIPSWebPage:·(www.radicaleye.com) | 15 | %DVIPSWebPage:·(www.radicaleye.com) |
16 | %DVIPSCommandLine:·dvips·main·-o·SemiImplMtx.ps | 16 | %DVIPSCommandLine:·dvips·main·-o·SemiImplMtx.ps |
17 | %DVIPSParameters:·dpi=600 | 17 | %DVIPSParameters:·dpi=600 |
18 | %DVIPSSource:··TeX·output·202 | 18 | %DVIPSSource:··TeX·output·2024.03.20:1840 |
19 | %%BeginProcSet:·tex.pro·0·0 | 19 | %%BeginProcSet:·tex.pro·0·0 |
20 | %! | 20 | %! |
21 | /TeXDict·300·dict·def·TeXDict·begin/N{def}def/B{bind·def}N/S{exch}N/X{S | 21 | /TeXDict·300·dict·def·TeXDict·begin/N{def}def/B{bind·def}N/S{exch}N/X{S |
22 | N}B/A{dup}B/TR{translate}N/isls·false·N/vsize·11·72·mul·N/hsize·8.5·72 | 22 | N}B/A{dup}B/TR{translate}N/isls·false·N/vsize·11·72·mul·N/hsize·8.5·72 |
23 | mul·N/landplus90{false}def/@rigin{isls{[0·landplus90{1·-1}{-1·1}ifelse·0 | 23 | mul·N/landplus90{false}def/@rigin{isls{[0·landplus90{1·-1}{-1·1}ifelse·0 |
24 | 0·0]concat}if·72·Resolution·div·72·VResolution·div·neg·scale·isls{ | 24 | 0·0]concat}if·72·Resolution·div·72·VResolution·div·neg·scale·isls{ |
25 | landplus90{VResolution·72·div·vsize·mul·0·exch}{Resolution·-72·div·hsize | 25 | landplus90{VResolution·72·div·vsize·mul·0·exch}{Resolution·-72·div·hsize |
Offset 51, 15 lines modified | Offset 51, 15 lines modified | ||
51 | ·····················in·a·semi-implicit·form)·can·pay·off·—·storage·can·be·saved·when·the·number·of·entries·in·L····································and·U\xd | 51 | ·····················in·a·semi-implicit·form)·can·pay·off·—·storage·can·be·saved·when·the·number·of·entries·in·L····································and·U\xd |
52 | ··············································································································································2,1·········1,2\xd | 52 | ··············································································································································2,1·········1,2\xd |
53 | ·····················are·larger·than·the·number·of·entries·in·A····················and·A·.·The·number·of·solve·operations·is·reduced·by\xd | 53 | ·····················are·larger·than·the·number·of·entries·in·A····················and·A·.·The·number·of·solve·operations·is·reduced·by\xd |
54 | ··············································································2,1··········1,2\xd | 54 | ··············································································2,1··········1,2\xd |
55 | ·····················|L····|·+·|U·····|·−·2|D·····|·−·|A····|·−·|A·····|,·where·|···|·denotes·the·number·of·nonzeroes·in·a·matrix.\xd | 55 | ·····················|L····|·+·|U·····|·−·2|D·····|·−·|A····|·−·|A·····|,·where·|···|·denotes·the·number·of·nonzeroes·in·a·matrix.\xd |
56 | ························2,1·······1,2··········1,1·······2,1········1,2\xd | 56 | ························2,1·······1,2··········1,1·······2,1········1,2\xd |
57 | ·························································································1\xd | 57 | ·························································································1\xd |
58 | ················2··································SemiImplMtx·:·DRAFT· | 58 | ················2··································SemiImplMtx·:·DRAFT·March·20,·2024\xd |
59 | ················1.1······Data·Structure\xd | 59 | ················1.1······Data·Structure\xd |
60 | ················The·SemiImplMtx·structure·has·the·following·fields.\xd | 60 | ················The·SemiImplMtx·structure·has·the·following·fields.\xd |
61 | ····················•·int·neqns·:·number·of·equations.\xd | 61 | ····················•·int·neqns·:·number·of·equations.\xd |
62 | ····················•·int·type·:·type·of·entries,·SPOOLES·REAL·or·SPOOLES·COMPLEX.\xd | 62 | ····················•·int·type·:·type·of·entries,·SPOOLES·REAL·or·SPOOLES·COMPLEX.\xd |
63 | ····················•·int·symmetryflag:·typeofmatrixsymmetry,SPOOLES·SYMMETRIC,SPOOLES·HERMITIANorSPOOLES·NONSYMMETRIC.\xd | 63 | ····················•·int·symmetryflag:·typeofmatrixsymmetry,SPOOLES·SYMMETRIC,SPOOLES·HERMITIANorSPOOLES·NONSYMMETRIC.\xd |
64 | ····················•·int·ndomeqns·:·number·of·equations·in·the·domains,·or·(1,1)·block.\xd | 64 | ····················•·int·ndomeqns·:·number·of·equations·in·the·domains,·or·(1,1)·block.\xd |
65 | ····················•·int·nschureqns·:·number·of·equations·in·the·Schur·complement,·or·(2,2)·block.\xd | 65 | ····················•·int·nschureqns·:·number·of·equations·in·the·Schur·complement,·or·(2,2)·block.\xd |
Offset 11, 15 lines modified | Offset 11, 15 lines modified | ||
11 | %%EndComments | 11 | %%EndComments |
12 | %%BeginDefaults | 12 | %%BeginDefaults |
13 | %%ViewingOrientation:·1·0·0·1 | 13 | %%ViewingOrientation:·1·0·0·1 |
14 | %%EndDefaults | 14 | %%EndDefaults |
15 | %DVIPSWebPage:·(www.radicaleye.com) | 15 | %DVIPSWebPage:·(www.radicaleye.com) |
16 | %DVIPSCommandLine:·dvips·main·-o·SolveMap.ps | 16 | %DVIPSCommandLine:·dvips·main·-o·SolveMap.ps |
17 | %DVIPSParameters:·dpi=600 | 17 | %DVIPSParameters:·dpi=600 |
18 | %DVIPSSource:··TeX·output·202 | 18 | %DVIPSSource:··TeX·output·2024.03.20:1840 |
19 | %%BeginProcSet:·tex.pro·0·0 | 19 | %%BeginProcSet:·tex.pro·0·0 |
20 | %! | 20 | %! |
21 | /TeXDict·300·dict·def·TeXDict·begin/N{def}def/B{bind·def}N/S{exch}N/X{S | 21 | /TeXDict·300·dict·def·TeXDict·begin/N{def}def/B{bind·def}N/S{exch}N/X{S |
22 | N}B/A{dup}B/TR{translate}N/isls·false·N/vsize·11·72·mul·N/hsize·8.5·72 | 22 | N}B/A{dup}B/TR{translate}N/isls·false·N/vsize·11·72·mul·N/hsize·8.5·72 |
23 | mul·N/landplus90{false}def/@rigin{isls{[0·landplus90{1·-1}{-1·1}ifelse·0 | 23 | mul·N/landplus90{false}def/@rigin{isls{[0·landplus90{1·-1}{-1·1}ifelse·0 |
24 | 0·0]concat}if·72·Resolution·div·72·VResolution·div·neg·scale·isls{ | 24 | 0·0]concat}if·72·Resolution·div·72·VResolution·div·neg·scale·isls{ |
25 | landplus90{VResolution·72·div·vsize·mul·0·exch}{Resolution·-72·div·hsize | 25 | landplus90{VResolution·72·div·vsize·mul·0·exch}{Resolution·-72·div·hsize |
Offset 19, 15 lines modified | Offset 19, 15 lines modified | ||
19 | ················•·int·nproc·–·number·of·threads·or·processes\xd | 19 | ················•·int·nproc·–·number·of·threads·or·processes\xd |
20 | ················•·int·*owners·–·vector·mapping·fronts·to·owning·threads·or·processes\xd | 20 | ················•·int·*owners·–·vector·mapping·fronts·to·owning·threads·or·processes\xd |
21 | ················•·int·nblockUpper·–·number·of·submatrices·in·the·upper·triangle\xd | 21 | ················•·int·nblockUpper·–·number·of·submatrices·in·the·upper·triangle\xd |
22 | ················•·int·*rowidsUpper·–·vector·of·row·ids·for·the·upper·triangle\xd | 22 | ················•·int·*rowidsUpper·–·vector·of·row·ids·for·the·upper·triangle\xd |
23 | ················•·int·*colidsUpper·–·vector·of·column·ids·for·the·upper·triangle\xd | 23 | ················•·int·*colidsUpper·–·vector·of·column·ids·for·the·upper·triangle\xd |
24 | ················•·int·*mapUpper·–·map·from·submatrices·to·threads·or·processes\xd | 24 | ················•·int·*mapUpper·–·map·from·submatrices·to·threads·or·processes\xd |
25 | ·······················································1\xd | 25 | ·······················································1\xd |
26 | ··············2···························SolveMap·:·DRAFT· | 26 | ··············2···························SolveMap·:·DRAFT·March·20,·2024\xd |
27 | ·················•·int·nblockLower·–·number·of·submatrices·in·the·lower·triangle\xd | 27 | ·················•·int·nblockLower·–·number·of·submatrices·in·the·lower·triangle\xd |
28 | ·················•·int·*rowidsLower·–·vector·of·row·ids·for·the·lower·triangle\xd | 28 | ·················•·int·*rowidsLower·–·vector·of·row·ids·for·the·lower·triangle\xd |
29 | ·················•·int·*colidsLower·–·vector·of·column·ids·for·the·lower·triangle\xd | 29 | ·················•·int·*colidsLower·–·vector·of·column·ids·for·the·lower·triangle\xd |
30 | ·················•·int·*mapLower·–·map·from·submatrices·to·threads·or·processes·processes\xd | 30 | ·················•·int·*mapLower·–·map·from·submatrices·to·threads·or·processes·processes\xd |
31 | ··············1.2···Prototypes·and·descriptions·of·SolveMap·methods\xd | 31 | ··············1.2···Prototypes·and·descriptions·of·SolveMap·methods\xd |
32 | ··············This·section·contains·brief·descriptions·including·prototypes·of·all·methods·that·belong·to·the\xd | 32 | ··············This·section·contains·brief·descriptions·including·prototypes·of·all·methods·that·belong·to·the\xd |
33 | ··············SolveMap·object.\xd | 33 | ··············SolveMap·object.\xd |
Offset 11, 15 lines modified | Offset 11, 15 lines modified | ||
11 | %%EndComments | 11 | %%EndComments |
12 | %%BeginDefaults | 12 | %%BeginDefaults |
13 | %%ViewingOrientation:·1·0·0·1 | 13 | %%ViewingOrientation:·1·0·0·1 |
14 | %%EndDefaults | 14 | %%EndDefaults |
15 | %DVIPSWebPage:·(www.radicaleye.com) | 15 | %DVIPSWebPage:·(www.radicaleye.com) |
16 | %DVIPSCommandLine:·dvips·main·-o·SubMtx.ps | 16 | %DVIPSCommandLine:·dvips·main·-o·SubMtx.ps |
17 | %DVIPSParameters:·dpi=600 | 17 | %DVIPSParameters:·dpi=600 |
18 | %DVIPSSource:··TeX·output·202 | 18 | %DVIPSSource:··TeX·output·2024.03.20:1840 |
19 | %%BeginProcSet:·tex.pro·0·0 | 19 | %%BeginProcSet:·tex.pro·0·0 |
20 | %! | 20 | %! |
21 | /TeXDict·300·dict·def·TeXDict·begin/N{def}def/B{bind·def}N/S{exch}N/X{S | 21 | /TeXDict·300·dict·def·TeXDict·begin/N{def}def/B{bind·def}N/S{exch}N/X{S |
22 | N}B/A{dup}B/TR{translate}N/isls·false·N/vsize·11·72·mul·N/hsize·8.5·72 | 22 | N}B/A{dup}B/TR{translate}N/isls·false·N/vsize·11·72·mul·N/hsize·8.5·72 |
23 | mul·N/landplus90{false}def/@rigin{isls{[0·landplus90{1·-1}{-1·1}ifelse·0 | 23 | mul·N/landplus90{false}def/@rigin{isls{[0·landplus90{1·-1}{-1·1}ifelse·0 |
24 | 0·0]concat}if·72·Resolution·div·72·VResolution·div·neg·scale·isls{ | 24 | 0·0]concat}if·72·Resolution·div·72·VResolution·div·neg·scale·isls{ |
25 | landplus90{VResolution·72·div·vsize·mul·0·exch}{Resolution·-72·div·hsize | 25 | landplus90{VResolution·72·div·vsize·mul·0·exch}{Resolution·-72·div·hsize |
Offset 23, 15 lines modified | Offset 23, 15 lines modified | ||
23 | ···········–·dense·by·columns,·i.e.,·dense·and·column·major\xd | 23 | ···········–·dense·by·columns,·i.e.,·dense·and·column·major\xd |
24 | ···········–·sparse·using·dense·subrows\xd | 24 | ···········–·sparse·using·dense·subrows\xd |
25 | ···········–·sparse·using·dense·subcolumns\xd | 25 | ···········–·sparse·using·dense·subcolumns\xd |
26 | ···········–·sparse·using·sparse·rows\xd | 26 | ···········–·sparse·using·sparse·rows\xd |
27 | ···········–·sparse·using·sparse·columns\xd | 27 | ···········–·sparse·using·sparse·columns\xd |
28 | ···········–·sparse·using·(i,j,ai,j)·triples\xd | 28 | ···········–·sparse·using·(i,j,ai,j)·triples\xd |
29 | ·····························1\xd | 29 | ·····························1\xd |
30 | ···········2·······················SubMtx·:·DRAFT· | 30 | ···········2·······················SubMtx·:·DRAFT·March·20,·2024\xd |
31 | ·················–·a·diagonal·matrix\xd | 31 | ·················–·a·diagonal·matrix\xd |
32 | ·················–·a·block·diagonal·symmetric·matrix·where·the·blocks·are·1·×·1·or·2·×·2,·used·in·the\xd | 32 | ·················–·a·block·diagonal·symmetric·matrix·where·the·blocks·are·1·×·1·or·2·×·2,·used·in·the\xd |
33 | ···················symmetric·indefinite·factorization.\xd | 33 | ···················symmetric·indefinite·factorization.\xd |
34 | ·················–·a·block·diagonal·Hermitian·matrix·where·the·blocks·are·1·×·1·or·2·×·2,·used·in·the\xd | 34 | ·················–·a·block·diagonal·Hermitian·matrix·where·the·blocks·are·1·×·1·or·2·×·2,·used·in·the\xd |
35 | ···················hermitian·indefinite·factorization.\xd | 35 | ···················hermitian·indefinite·factorization.\xd |
36 | ··············•·The·SubMtx·object·can·be·self-contained,·in·the·sense·that·its·structure·contains·a·DV·object\xd | 36 | ··············•·The·SubMtx·object·can·be·self-contained,·in·the·sense·that·its·structure·contains·a·DV·object\xd |
37 | ···············that·manages·a·contiguous·vector·of·workspace·that·is·used·to·store·all·information·about·the\xd | 37 | ···············that·manages·a·contiguous·vector·of·workspace·that·is·used·to·store·all·information·about·the\xd |
Offset 10, 15 lines modified | Offset 10, 15 lines modified | ||
10 | %%EndComments | 10 | %%EndComments |
11 | %%BeginDefaults | 11 | %%BeginDefaults |
12 | %%ViewingOrientation:·1·0·0·1 | 12 | %%ViewingOrientation:·1·0·0·1 |
13 | %%EndDefaults | 13 | %%EndDefaults |
14 | %DVIPSWebPage:·(www.radicaleye.com) | 14 | %DVIPSWebPage:·(www.radicaleye.com) |
15 | %DVIPSCommandLine:·dvips·main·-o·SubMtxList.ps | 15 | %DVIPSCommandLine:·dvips·main·-o·SubMtxList.ps |
16 | %DVIPSParameters:·dpi=600 | 16 | %DVIPSParameters:·dpi=600 |
17 | %DVIPSSource:··TeX·output·202 | 17 | %DVIPSSource:··TeX·output·2024.03.20:1840 |
18 | %%BeginProcSet:·tex.pro·0·0 | 18 | %%BeginProcSet:·tex.pro·0·0 |
19 | %! | 19 | %! |
20 | /TeXDict·300·dict·def·TeXDict·begin/N{def}def/B{bind·def}N/S{exch}N/X{S | 20 | /TeXDict·300·dict·def·TeXDict·begin/N{def}def/B{bind·def}N/S{exch}N/X{S |
21 | N}B/A{dup}B/TR{translate}N/isls·false·N/vsize·11·72·mul·N/hsize·8.5·72 | 21 | N}B/A{dup}B/TR{translate}N/isls·false·N/vsize·11·72·mul·N/hsize·8.5·72 |
22 | mul·N/landplus90{false}def/@rigin{isls{[0·landplus90{1·-1}{-1·1}ifelse·0 | 22 | mul·N/landplus90{false}def/@rigin{isls{[0·landplus90{1·-1}{-1·1}ifelse·0 |
23 | 0·0]concat}if·72·Resolution·div·72·VResolution·div·neg·scale·isls{ | 23 | 0·0]concat}if·72·Resolution·div·72·VResolution·div·neg·scale·isls{ |
24 | landplus90{VResolution·72·div·vsize·mul·0·exch}{Resolution·-72·div·hsize | 24 | landplus90{VResolution·72·div·vsize·mul·0·exch}{Resolution·-72·div·hsize |
Offset 22, 15 lines modified | Offset 22, 15 lines modified | ||
22 | ·······The·first·two·operations·are·queries,·and·can·be·done·without·locking·the·list.·The·third·operation\xd | 22 | ·······The·first·two·operations·are·queries,·and·can·be·done·without·locking·the·list.·The·third·operation\xd |
23 | ·······needs·a·lock·only·when·two·or·more·threads·will·be·inserting·objects·into·the·list.·The·fourth\xd | 23 | ·······needs·a·lock·only·when·two·or·more·threads·will·be·inserting·objects·into·the·list.·The·fourth\xd |
24 | ·······operation·requires·a·lock·only·when·one·thread·will·add·an·object·while·another·thread·removes\xd | 24 | ·······operation·requires·a·lock·only·when·one·thread·will·add·an·object·while·another·thread·removes\xd |
25 | ·······the·object·and·the·incoming·count·is·not·yet·zero.\xd | 25 | ·······the·object·and·the·incoming·count·is·not·yet·zero.\xd |
26 | ·········Having·a·lock·associated·with·a·SubMtxList·object·is·optional,·for·example,·it·is·not·needed\xd | 26 | ·········Having·a·lock·associated·with·a·SubMtxList·object·is·optional,·for·example,·it·is·not·needed\xd |
27 | ·······during·a·serial·factorization·nor·a·MPI·solve.·In·the·latter·case·there·is·one·SubMtxList·per·process.\xd | 27 | ·······during·a·serial·factorization·nor·a·MPI·solve.·In·the·latter·case·there·is·one·SubMtxList·per·process.\xd |
28 | ·····························1\xd | 28 | ·····························1\xd |
29 | ··············2··························SubMtxList·:·DRAFT· | 29 | ··············2··························SubMtxList·:·DRAFT·March·20,·2024\xd |
30 | ··············For·a·multithreaded·solve·there·is·one·SubMtxList·object·that·is·shared·by·all·threads.·The·mutual\xd | 30 | ··············For·a·multithreaded·solve·there·is·one·SubMtxList·object·that·is·shared·by·all·threads.·The·mutual\xd |
31 | ··············exclusion·lock·that·is·(optionally)·embedded·in·the·SubMtxList·object·is·a·Lock·object·from·this\xd | 31 | ··············exclusion·lock·that·is·(optionally)·embedded·in·the·SubMtxList·object·is·a·Lock·object·from·this\xd |
32 | ··············library.·It·is·inside·the·Lock·object·that·we·have·a·mutual·exclusion·lock.·Presently·we·support·the\xd | 32 | ··············library.·It·is·inside·the·Lock·object·that·we·have·a·mutual·exclusion·lock.·Presently·we·support·the\xd |
33 | ··············Solaris·and·POSIX·thread·packages.·Porting·the·multithreaded·codes·to·another·platform·should\xd | 33 | ··············Solaris·and·POSIX·thread·packages.·Porting·the·multithreaded·codes·to·another·platform·should\xd |
34 | ··············be·simple·if·the·POSIX·thread·package·is·present.·Another·type·of·thread·package·will·require\xd | 34 | ··············be·simple·if·the·POSIX·thread·package·is·present.·Another·type·of·thread·package·will·require\xd |
35 | ··············some·modifications·to·the·Lock·object,·but·none·to·the·SubMtxList·objects.\xd | 35 | ··············some·modifications·to·the·Lock·object,·but·none·to·the·SubMtxList·objects.\xd |
36 | ··············1.1···Data·Structure\xd | 36 | ··············1.1···Data·Structure\xd |
Offset 11, 15 lines modified | Offset 11, 15 lines modified | ||
11 | %%EndComments | 11 | %%EndComments |
12 | %%BeginDefaults | 12 | %%BeginDefaults |
13 | %%ViewingOrientation:·1·0·0·1 | 13 | %%ViewingOrientation:·1·0·0·1 |
14 | %%EndDefaults | 14 | %%EndDefaults |
15 | %DVIPSWebPage:·(www.radicaleye.com) | 15 | %DVIPSWebPage:·(www.radicaleye.com) |
16 | %DVIPSCommandLine:·dvips·main·-o·SubMtxManager.ps | 16 | %DVIPSCommandLine:·dvips·main·-o·SubMtxManager.ps |
17 | %DVIPSParameters:·dpi=600 | 17 | %DVIPSParameters:·dpi=600 |
18 | %DVIPSSource:··TeX·output·202 | 18 | %DVIPSSource:··TeX·output·2024.03.20:1840 |
19 | %%BeginProcSet:·tex.pro·0·0 | 19 | %%BeginProcSet:·tex.pro·0·0 |
20 | %! | 20 | %! |
21 | /TeXDict·300·dict·def·TeXDict·begin/N{def}def/B{bind·def}N/S{exch}N/X{S | 21 | /TeXDict·300·dict·def·TeXDict·begin/N{def}def/B{bind·def}N/S{exch}N/X{S |
22 | N}B/A{dup}B/TR{translate}N/isls·false·N/vsize·11·72·mul·N/hsize·8.5·72 | 22 | N}B/A{dup}B/TR{translate}N/isls·false·N/vsize·11·72·mul·N/hsize·8.5·72 |
23 | mul·N/landplus90{false}def/@rigin{isls{[0·landplus90{1·-1}{-1·1}ifelse·0 | 23 | mul·N/landplus90{false}def/@rigin{isls{[0·landplus90{1·-1}{-1·1}ifelse·0 |
24 | 0·0]concat}if·72·Resolution·div·72·VResolution·div·neg·scale·isls{ | 24 | 0·0]concat}if·72·Resolution·div·72·VResolution·div·neg·scale·isls{ |
25 | landplus90{VResolution·72·div·vsize·mul·0·exch}{Resolution·-72·div·hsize | 25 | landplus90{VResolution·72·div·vsize·mul·0·exch}{Resolution·-72·div·hsize |
Offset 27, 15 lines modified | Offset 27, 15 lines modified | ||
27 | ···············with·sufficient·work·space,·and·returns·a·pointer·to·the·object.·When·a·SubMtx·object·is·no·longer\xd | 27 | ···············with·sufficient·work·space,·and·returns·a·pointer·to·the·object.·When·a·SubMtx·object·is·no·longer\xd |
28 | ···············necessary,·it·is·released·to·the·manager·object,·which·then·inserts·it·into·the·free·list.·A·list·of\xd | 28 | ···············necessary,·it·is·released·to·the·manager·object,·which·then·inserts·it·into·the·free·list.·A·list·of\xd |
29 | ···············SubMtx·objects·can·be·released·in·one·call.\xd | 29 | ···············SubMtx·objects·can·be·released·in·one·call.\xd |
30 | ···················One·can·specify·whether·the·object·is·to·be·locked·via·a·mutual·exclusion·lock.·This·is·not\xd | 30 | ···················One·can·specify·whether·the·object·is·to·be·locked·via·a·mutual·exclusion·lock.·This·is·not\xd |
31 | ···············necessary·for·a·serial·or·MPI·factorization·or·solve·(where·there·is·one·SubMtxManager·object·for\xd | 31 | ···············necessary·for·a·serial·or·MPI·factorization·or·solve·(where·there·is·one·SubMtxManager·object·for\xd |
32 | ···············each·processor),·but·it·is·necessary·for·in·a·multithreaded·environment.\xd | 32 | ···············each·processor),·but·it·is·necessary·for·in·a·multithreaded·environment.\xd |
33 | ·······························································1\xd | 33 | ·······························································1\xd |
34 | ··············2························ | 34 | ··············2························SubMtxManager·:·DRAFT·March·20,·2024\xd |
35 | ·················Eachmanagerobjectkeepstrackofcertainstatistics,·bytesintheirworkspaces,·thetotal·number\xd | 35 | ·················Eachmanagerobjectkeepstrackofcertainstatistics,·bytesintheirworkspaces,·thetotal·number\xd |
36 | ··············of·bytes·requested,·the·number·of·requests·for·a·SubMtx·objects,·the·number·of·releases,·and·the\xd | 36 | ··············of·bytes·requested,·the·number·of·requests·for·a·SubMtx·objects,·the·number·of·releases,·and·the\xd |
37 | ··············number·of·locks·and·unlocks.\xd | 37 | ··············number·of·locks·and·unlocks.\xd |
38 | ··············1.1···Data·Structure\xd | 38 | ··············1.1···Data·Structure\xd |
39 | ··············The·SubMtxManager·structure·has·the·following·fields.\xd | 39 | ··············The·SubMtxManager·structure·has·the·following·fields.\xd |
40 | ·················•·SubMtx·*head·:·head·of·the·free·list·of·SubMtx·objects.\xd | 40 | ·················•·SubMtx·*head·:·head·of·the·free·list·of·SubMtx·objects.\xd |
41 | ·················•·Lock·*lock·:·mutual·exclusion·lock.\xd | 41 | ·················•·Lock·*lock·:·mutual·exclusion·lock.\xd |
Offset 11, 15 lines modified | Offset 11, 15 lines modified | ||
11 | %%EndComments | 11 | %%EndComments |
12 | %%BeginDefaults | 12 | %%BeginDefaults |
13 | %%ViewingOrientation:·1·0·0·1 | 13 | %%ViewingOrientation:·1·0·0·1 |
14 | %%EndDefaults | 14 | %%EndDefaults |
15 | %DVIPSWebPage:·(www.radicaleye.com) | 15 | %DVIPSWebPage:·(www.radicaleye.com) |
16 | %DVIPSCommandLine:·dvips·main·-o·SymbFac.ps | 16 | %DVIPSCommandLine:·dvips·main·-o·SymbFac.ps |
17 | %DVIPSParameters:·dpi=600 | 17 | %DVIPSParameters:·dpi=600 |
18 | %DVIPSSource:··TeX·output·202 | 18 | %DVIPSSource:··TeX·output·2024.03.20:1840 |
19 | %%BeginProcSet:·tex.pro·0·0 | 19 | %%BeginProcSet:·tex.pro·0·0 |
20 | %! | 20 | %! |
21 | /TeXDict·300·dict·def·TeXDict·begin/N{def}def/B{bind·def}N/S{exch}N/X{S | 21 | /TeXDict·300·dict·def·TeXDict·begin/N{def}def/B{bind·def}N/S{exch}N/X{S |
22 | N}B/A{dup}B/TR{translate}N/isls·false·N/vsize·11·72·mul·N/hsize·8.5·72 | 22 | N}B/A{dup}B/TR{translate}N/isls·false·N/vsize·11·72·mul·N/hsize·8.5·72 |
23 | mul·N/landplus90{false}def/@rigin{isls{[0·landplus90{1·-1}{-1·1}ifelse·0 | 23 | mul·N/landplus90{false}def/@rigin{isls{[0·landplus90{1·-1}{-1·1}ifelse·0 |
24 | 0·0]concat}if·72·Resolution·div·72·VResolution·div·neg·scale·isls{ | 24 | 0·0]concat}if·72·Resolution·div·72·VResolution·div·neg·scale·isls{ |
25 | landplus90{VResolution·72·div·vsize·mul·0·exch}{Resolution·-72·div·hsize | 25 | landplus90{VResolution·72·div·vsize·mul·0·exch}{Resolution·-72·div·hsize |
Offset 22, 15 lines modified | Offset 22, 15 lines modified | ||
22 | ···········to·have·chevron·coordinate·type·and·storage·mode·must·be·by·vectors.\xd | 22 | ···········to·have·chevron·coordinate·type·and·storage·mode·must·be·by·vectors.\xd |
23 | ···········1.1··Data·Structure\xd | 23 | ···········1.1··Data·Structure\xd |
24 | ···········There·is·no·struct·or·data·associated·with·the·SymbFac·object.\xd | 24 | ···········There·is·no·struct·or·data·associated·with·the·SymbFac·object.\xd |
25 | ···········1.2··Prototypes·and·descriptions·of·SymbFac·methods\xd | 25 | ···········1.2··Prototypes·and·descriptions·of·SymbFac·methods\xd |
26 | ···········This·section·contains·brief·descriptions·including·prototypes·of·all·methods·that·belong·to·the\xd | 26 | ···········This·section·contains·brief·descriptions·including·prototypes·of·all·methods·that·belong·to·the\xd |
27 | ···········SymbFac·object.\xd | 27 | ···········SymbFac·object.\xd |
28 | ·············································1\xd | 28 | ·············································1\xd |
29 | ··············2··························· | 29 | ··············2···························SymbFac·:·DRAFT·March·20,·2024\xd |
30 | ··············1.2.1··Symbolic·factorization·methods\xd | 30 | ··············1.2.1··Symbolic·factorization·methods\xd |
31 | ················1.·IVL·*·SymbFac_initFromGraph·(·ETree·*etree,·Graph·*graph·)·;\xd | 31 | ················1.·IVL·*·SymbFac_initFromGraph·(·ETree·*etree,·Graph·*graph·)·;\xd |
32 | ···················This·symbolic·factorization·method·takes·a·Graph·object·as·input.·This·method·constructs\xd | 32 | ···················This·symbolic·factorization·method·takes·a·Graph·object·as·input.·This·method·constructs\xd |
33 | ···················an·IVL·object·that·contains·one·list·per·front.·List·ilist·contains·the·internal·and·external\xd | 33 | ···················an·IVL·object·that·contains·one·list·per·front.·List·ilist·contains·the·internal·and·external\xd |
34 | ···················vertices·for·front·ilist.·If·the·input·graph·is·a·compressed·graph,·then·the·lists·of·compressed\xd | 34 | ···················vertices·for·front·ilist.·If·the·input·graph·is·a·compressed·graph,·then·the·lists·of·compressed\xd |
35 | ···················vertices·make·little·sense;·they·must·be·converted·to·original·vertices.·To·do·this,·see·the\xd | 35 | ···················vertices·make·little·sense;·they·must·be·converted·to·original·vertices.·To·do·this,·see·the\xd |
36 | ···················IVL·expand()·method.·The·nodwghtsIV·and·bndwghtsIV·objects·for·the·ETree·object·are\xd | 36 | ···················IVL·expand()·method.·The·nodwghtsIV·and·bndwghtsIV·objects·for·the·ETree·object·are\xd |
Offset 11, 15 lines modified | Offset 11, 15 lines modified | ||
11 | %%EndComments | 11 | %%EndComments |
12 | %%BeginDefaults | 12 | %%BeginDefaults |
13 | %%ViewingOrientation:·1·0·0·1 | 13 | %%ViewingOrientation:·1·0·0·1 |
14 | %%EndDefaults | 14 | %%EndDefaults |
15 | %DVIPSWebPage:·(www.radicaleye.com) | 15 | %DVIPSWebPage:·(www.radicaleye.com) |
16 | %DVIPSCommandLine:·dvips·main·-o·Tree.ps | 16 | %DVIPSCommandLine:·dvips·main·-o·Tree.ps |
17 | %DVIPSParameters:·dpi=600 | 17 | %DVIPSParameters:·dpi=600 |
18 | %DVIPSSource:··TeX·output·202 | 18 | %DVIPSSource:··TeX·output·2024.03.20:1840 |
19 | %%BeginProcSet:·tex.pro·0·0 | 19 | %%BeginProcSet:·tex.pro·0·0 |
20 | %! | 20 | %! |
21 | /TeXDict·300·dict·def·TeXDict·begin/N{def}def/B{bind·def}N/S{exch}N/X{S | 21 | /TeXDict·300·dict·def·TeXDict·begin/N{def}def/B{bind·def}N/S{exch}N/X{S |
22 | N}B/A{dup}B/TR{translate}N/isls·false·N/vsize·11·72·mul·N/hsize·8.5·72 | 22 | N}B/A{dup}B/TR{translate}N/isls·false·N/vsize·11·72·mul·N/hsize·8.5·72 |
23 | mul·N/landplus90{false}def/@rigin{isls{[0·landplus90{1·-1}{-1·1}ifelse·0 | 23 | mul·N/landplus90{false}def/@rigin{isls{[0·landplus90{1·-1}{-1·1}ifelse·0 |
24 | 0·0]concat}if·72·Resolution·div·72·VResolution·div·neg·scale·isls{ | 24 | 0·0]concat}if·72·Resolution·div·72·VResolution·div·neg·scale·isls{ |
25 | landplus90{VResolution·72·div·vsize·mul·0·exch}{Resolution·-72·div·hsize | 25 | landplus90{VResolution·72·div·vsize·mul·0·exch}{Resolution·-72·div·hsize |
Offset 20, 15 lines modified | Offset 20, 15 lines modified | ||
20 | ··············•·int·*sib·:·pointer·to·sibling·vector,·size·n,·entries·in·the·range·[-1,n-1]\xd | 20 | ··············•·int·*sib·:·pointer·to·sibling·vector,·size·n,·entries·in·the·range·[-1,n-1]\xd |
21 | ···········The·user·should·rarely·if·ever·change·these·five·fields.·In·particular,·throughout·the·code·we\xd | 21 | ···········The·user·should·rarely·if·ever·change·these·five·fields.·In·particular,·throughout·the·code·we\xd |
22 | ···········assume·that·the·Tree·object·was·correctly·initialized·using·one·of·the·three·initializer·methods.\xd | 22 | ···········assume·that·the·Tree·object·was·correctly·initialized·using·one·of·the·three·initializer·methods.\xd |
23 | ···········Inside·almost·every·method·we·check·to·ensure·n·>·0.·If·n·>·0·then·we·assume·that·the·structure\xd | 23 | ···········Inside·almost·every·method·we·check·to·ensure·n·>·0.·If·n·>·0·then·we·assume·that·the·structure\xd |
24 | ···········was·intialized·correctly·and·that·the·par,·fch·and·sib·fields·point·to·storage·that·was·allocated·by\xd | 24 | ···········was·intialized·correctly·and·that·the·par,·fch·and·sib·fields·point·to·storage·that·was·allocated·by\xd |
25 | ···········the·initializer·method.\xd | 25 | ···········the·initializer·method.\xd |
26 | ·············································1\xd | 26 | ·············································1\xd |
27 | ··············2·····························Tree·:·DRAFT· | 27 | ··············2·····························Tree·:·DRAFT·March·20,·2024\xd |
28 | ··············1.2···Prototypes·and·descriptions·of·Tree·methods\xd | 28 | ··············1.2···Prototypes·and·descriptions·of·Tree·methods\xd |
29 | ··············This·section·contains·brief·descriptions·including·prototypes·of·all·methods·that·belong·to·the·Tree\xd | 29 | ··············This·section·contains·brief·descriptions·including·prototypes·of·all·methods·that·belong·to·the·Tree\xd |
30 | ··············object.\xd | 30 | ··············object.\xd |
31 | ··············1.2.1··Basic·methods\xd | 31 | ··············1.2.1··Basic·methods\xd |
32 | ··············As·usual,·there·are·four·basic·methods·to·support·object·creation,·setting·default·fields,·clearing\xd | 32 | ··············As·usual,·there·are·four·basic·methods·to·support·object·creation,·setting·default·fields,·clearing\xd |
33 | ··············any·allocated·data,·and·free’ing·the·object.\xd | 33 | ··············any·allocated·data,·and·free’ing·the·object.\xd |
34 | ················1.·Tree·*·Tree_new·(·void·)·;\xd | 34 | ················1.·Tree·*·Tree_new·(·void·)·;\xd |
Offset 11, 15 lines modified | Offset 11, 15 lines modified | ||
11 | %%EndComments | 11 | %%EndComments |
12 | %%BeginDefaults | 12 | %%BeginDefaults |
13 | %%ViewingOrientation:·1·0·0·1 | 13 | %%ViewingOrientation:·1·0·0·1 |
14 | %%EndDefaults | 14 | %%EndDefaults |
15 | %DVIPSWebPage:·(www.radicaleye.com) | 15 | %DVIPSWebPage:·(www.radicaleye.com) |
16 | %DVIPSCommandLine:·dvips·main·-o·Utilities.ps | 16 | %DVIPSCommandLine:·dvips·main·-o·Utilities.ps |
17 | %DVIPSParameters:·dpi=600 | 17 | %DVIPSParameters:·dpi=600 |
18 | %DVIPSSource:··TeX·output·202 | 18 | %DVIPSSource:··TeX·output·2024.03.20:1840 |
19 | %%BeginProcSet:·tex.pro·0·0 | 19 | %%BeginProcSet:·tex.pro·0·0 |
20 | %! | 20 | %! |
21 | /TeXDict·300·dict·def·TeXDict·begin/N{def}def/B{bind·def}N/S{exch}N/X{S | 21 | /TeXDict·300·dict·def·TeXDict·begin/N{def}def/B{bind·def}N/S{exch}N/X{S |
22 | N}B/A{dup}B/TR{translate}N/isls·false·N/vsize·11·72·mul·N/hsize·8.5·72 | 22 | N}B/A{dup}B/TR{translate}N/isls·false·N/vsize·11·72·mul·N/hsize·8.5·72 |
23 | mul·N/landplus90{false}def/@rigin{isls{[0·landplus90{1·-1}{-1·1}ifelse·0 | 23 | mul·N/landplus90{false}def/@rigin{isls{[0·landplus90{1·-1}{-1·1}ifelse·0 |
24 | 0·0]concat}if·72·Resolution·div·72·VResolution·div·neg·scale·isls{ | 24 | 0·0]concat}if·72·Resolution·div·72·VResolution·div·neg·scale·isls{ |
25 | landplus90{VResolution·72·div·vsize·mul·0·exch}{Resolution·-72·div·hsize | 25 | landplus90{VResolution·72·div·vsize·mul·0·exch}{Resolution·-72·div·hsize |
Offset 22, 15 lines modified | Offset 22, 15 lines modified | ||
22 | ·····················struct·_I2OP·{\xd | 22 | ·····················struct·_I2OP·{\xd |
23 | ·······················int···value0·;\xd | 23 | ·······················int···value0·;\xd |
24 | ·······················int···value1·;\xd | 24 | ·······················int···value1·;\xd |
25 | ·······················void··*value2·;\xd | 25 | ·······················void··*value2·;\xd |
26 | ·······················I2OP··*next··;\xd | 26 | ·······················I2OP··*next··;\xd |
27 | ·····················}·;\xd | 27 | ·····················}·;\xd |
28 | ·············································1\xd | 28 | ·············································1\xd |
29 | ··············2·························· | 29 | ··············2··························Utilities·:·DRAFT·March·20,·2024\xd |
30 | ··············1.2···Prototypes·and·descriptions·of·Utilities·methods\xd | 30 | ··············1.2···Prototypes·and·descriptions·of·Utilities·methods\xd |
31 | ··············This·section·contains·brief·descriptions·including·prototypes·of·all·methods·that·belong·to·the\xd | 31 | ··············This·section·contains·brief·descriptions·including·prototypes·of·all·methods·that·belong·to·the\xd |
32 | ··············Utilities·directory.\xd | 32 | ··············Utilities·directory.\xd |
33 | ··············1.2.1··CV·:·char·vector·methods\xd | 33 | ··············1.2.1··CV·:·char·vector·methods\xd |
34 | ················1.·char·*·CVinit·(·int·n,·char·c·)·;\xd | 34 | ················1.·char·*·CVinit·(·int·n,·char·c·)·;\xd |
35 | ···················This·is·the·allocator·and·initializer·method·for·char·vectors.·Storage·for·an·array·with·size\xd | 35 | ···················This·is·the·allocator·and·initializer·method·for·char·vectors.·Storage·for·an·array·with·size\xd |
36 | ···················n·is·found·and·each·entry·is·filled·with·character·c.·A·pointer·to·the·array·is·returned.\xd | 36 | ···················n·is·found·and·each·entry·is·filled·with·character·c.·A·pointer·to·the·array·is·returned.\xd |
Offset 11, 15 lines modified | Offset 11, 15 lines modified | ||
11 | %%EndComments | 11 | %%EndComments |
12 | %%BeginDefaults | 12 | %%BeginDefaults |
13 | %%ViewingOrientation:·1·0·0·1 | 13 | %%ViewingOrientation:·1·0·0·1 |
14 | %%EndDefaults | 14 | %%EndDefaults |
15 | %DVIPSWebPage:·(www.radicaleye.com) | 15 | %DVIPSWebPage:·(www.radicaleye.com) |
16 | %DVIPSCommandLine:·dvips·main·-o·ZV.ps | 16 | %DVIPSCommandLine:·dvips·main·-o·ZV.ps |
17 | %DVIPSParameters:·dpi=600 | 17 | %DVIPSParameters:·dpi=600 |
18 | %DVIPSSource:··TeX·output·202 | 18 | %DVIPSSource:··TeX·output·2024.03.20:1840 |
19 | %%BeginProcSet:·tex.pro·0·0 | 19 | %%BeginProcSet:·tex.pro·0·0 |
20 | %! | 20 | %! |
21 | /TeXDict·300·dict·def·TeXDict·begin/N{def}def/B{bind·def}N/S{exch}N/X{S | 21 | /TeXDict·300·dict·def·TeXDict·begin/N{def}def/B{bind·def}N/S{exch}N/X{S |
22 | N}B/A{dup}B/TR{translate}N/isls·false·N/vsize·11·72·mul·N/hsize·8.5·72 | 22 | N}B/A{dup}B/TR{translate}N/isls·false·N/vsize·11·72·mul·N/hsize·8.5·72 |
23 | mul·N/landplus90{false}def/@rigin{isls{[0·landplus90{1·-1}{-1·1}ifelse·0 | 23 | mul·N/landplus90{false}def/@rigin{isls{[0·landplus90{1·-1}{-1·1}ifelse·0 |
24 | 0·0]concat}if·72·Resolution·div·72·VResolution·div·neg·scale·isls{ | 24 | 0·0]concat}if·72·Resolution·div·72·VResolution·div·neg·scale·isls{ |
25 | landplus90{VResolution·72·div·vsize·mul·0·exch}{Resolution·-72·div·hsize | 25 | landplus90{VResolution·72·div·vsize·mul·0·exch}{Resolution·-72·div·hsize |
Offset 22, 15 lines modified | Offset 22, 15 lines modified | ||
22 | ···············Onemustchoose·where·to·use·this·object.·There·is·a·substantial·performance·penalty·for·doing·the\xd | 22 | ···············Onemustchoose·where·to·use·this·object.·There·is·a·substantial·performance·penalty·for·doing·the\xd |
23 | ···············simplest·operations,·and·so·when·we·need·to·manipulate·an·double·vector·inside·a·loop,·we·extract\xd | 23 | ···············simplest·operations,·and·so·when·we·need·to·manipulate·an·double·vector·inside·a·loop,·we·extract\xd |
24 | ···············out·the·size·and·pointer·to·the·base·array·from·the·ZV·object.·On·the·other·hand,·the·convenience\xd | 24 | ···············out·the·size·and·pointer·to·the·base·array·from·the·ZV·object.·On·the·other·hand,·the·convenience\xd |
25 | ···············makes·it·a·widely·used·object.\xd | 25 | ···············makes·it·a·widely·used·object.\xd |
26 | ···············1.1····Data·Structure\xd | 26 | ···············1.1····Data·Structure\xd |
27 | ···············The·ZV·structure·has·three·fields.\xd | 27 | ···············The·ZV·structure·has·three·fields.\xd |
28 | ·····························································1\xd | 28 | ·····························································1\xd |
29 | ··············2······························ | 29 | ··············2······························ZV·:·DRAFT·March·20,·2024\xd |
30 | ·················•·int·size·:·present·size·of·the·vector.\xd | 30 | ·················•·int·size·:·present·size·of·the·vector.\xd |
31 | ·················•·int·maxsize·:·maximum·size·of·the·vector.\xd | 31 | ·················•·int·maxsize·:·maximum·size·of·the·vector.\xd |
32 | ·················•·int·owned·:·owner·flag·for·the·data.·When·owned·=·1,·storage·for·owned·double’s·has·been\xd | 32 | ·················•·int·owned·:·owner·flag·for·the·data.·When·owned·=·1,·storage·for·owned·double’s·has·been\xd |
33 | ···················allocated·by·this·object·and·can·be·free’d·by·the·object.·When·owned·==·0·but·size·>·0·,\xd | 33 | ···················allocated·by·this·object·and·can·be·free’d·by·the·object.·When·owned·==·0·but·size·>·0·,\xd |
34 | ···················this·object·points·to·entries·that·have·been·allocated·elsewhere,·and·these·entries·will·not·be\xd | 34 | ···················this·object·points·to·entries·that·have·been·allocated·elsewhere,·and·these·entries·will·not·be\xd |
35 | ···················free’d·by·this·object.\xd | 35 | ···················free’d·by·this·object.\xd |
36 | ·················•·double·*vec·:·pointer·to·the·base·address·of·the·double·vector\xd | 36 | ·················•·double·*vec·:·pointer·to·the·base·address·of·the·double·vector\xd |
Offset 11, 15 lines modified | Offset 11, 15 lines modified | ||
11 | %%EndComments | 11 | %%EndComments |
12 | %%BeginDefaults | 12 | %%BeginDefaults |
13 | %%ViewingOrientation:·1·0·0·1 | 13 | %%ViewingOrientation:·1·0·0·1 |
14 | %%EndDefaults | 14 | %%EndDefaults |
15 | %DVIPSWebPage:·(www.radicaleye.com) | 15 | %DVIPSWebPage:·(www.radicaleye.com) |
16 | %DVIPSCommandLine:·dvips·main·-o·misc.ps | 16 | %DVIPSCommandLine:·dvips·main·-o·misc.ps |
17 | %DVIPSParameters:·dpi=600 | 17 | %DVIPSParameters:·dpi=600 |
18 | %DVIPSSource:··TeX·output·202 | 18 | %DVIPSSource:··TeX·output·2024.03.20:1840 |
19 | %%BeginProcSet:·tex.pro·0·0 | 19 | %%BeginProcSet:·tex.pro·0·0 |
20 | %! | 20 | %! |
21 | /TeXDict·300·dict·def·TeXDict·begin/N{def}def/B{bind·def}N/S{exch}N/X{S | 21 | /TeXDict·300·dict·def·TeXDict·begin/N{def}def/B{bind·def}N/S{exch}N/X{S |
22 | N}B/A{dup}B/TR{translate}N/isls·false·N/vsize·11·72·mul·N/hsize·8.5·72 | 22 | N}B/A{dup}B/TR{translate}N/isls·false·N/vsize·11·72·mul·N/hsize·8.5·72 |
23 | mul·N/landplus90{false}def/@rigin{isls{[0·landplus90{1·-1}{-1·1}ifelse·0 | 23 | mul·N/landplus90{false}def/@rigin{isls{[0·landplus90{1·-1}{-1·1}ifelse·0 |
24 | 0·0]concat}if·72·Resolution·div·72·VResolution·div·neg·scale·isls{ | 24 | 0·0]concat}if·72·Resolution·div·72·VResolution·div·neg·scale·isls{ |
25 | landplus90{VResolution·72·div·vsize·mul·0·exch}{Resolution·-72·div·hsize | 25 | landplus90{VResolution·72·div·vsize·mul·0·exch}{Resolution·-72·div·hsize |
Offset 17, 15 lines modified | Offset 17, 15 lines modified | ||
17 | ··················The·method·calls·itself·recursively.·To·find·the·permutation·for·an·n1·x·n2·x·n3·grid,·call\xd | 17 | ··················The·method·calls·itself·recursively.·To·find·the·permutation·for·an·n1·x·n2·x·n3·grid,·call\xd |
18 | ··················mkNDperm(n1,·n2,·n3,·newToOld,·0,·n1-1,·0,·n2-1,·0,·n3-1)·;\xd | 18 | ··················mkNDperm(n1,·n2,·n3,·newToOld,·0,·n1-1,·0,·n2-1,·0,·n3-1)·;\xd |
19 | ··················from·a·driver·program.\xd | 19 | ··················from·a·driver·program.\xd |
20 | ··················Error·checking:·If·n1,·n2·or·n3·are·less·than·or·equal·to·zero,·or·if·newToOld·is·NULL,·or·if\xd | 20 | ··················Error·checking:·If·n1,·n2·or·n3·are·less·than·or·equal·to·zero,·or·if·newToOld·is·NULL,·or·if\xd |
21 | ··················west,·south·or·bottom·are·less·than·or·equal·to·zero,·of·if·east·≥·n1,·of·if·north·≥·n2,·of·if\xd | 21 | ··················west,·south·or·bottom·are·less·than·or·equal·to·zero,·of·if·east·≥·n1,·of·if·north·≥·n2,·of·if\xd |
22 | ··················top·≥·n3,·an·error·message·is·printed·and·the·program·exits.\xd | 22 | ··················top·≥·n3,·an·error·message·is·printed·and·the·program·exits.\xd |
23 | ·······················································1\xd | 23 | ·······················································1\xd |
24 | ·······2···············Misc·:·DRAFT· | 24 | ·······2···············Misc·:·DRAFT·March·20,·2024\xd |
25 | ········2.·void·mkNDperm2·(·int·n1,·int·n2,·int·n3,·int·newToOld[],·int·west,\xd | 25 | ········2.·void·mkNDperm2·(·int·n1,·int·n2,·int·n3,·int·newToOld[],·int·west,\xd |
26 | ···················int·east,·int·south,·int·north,·int·bottom,·int·top·)·;\xd | 26 | ···················int·east,·int·south,·int·north,·int·bottom,·int·top·)·;\xd |
27 | ··········This·method·this·vector·fills·a·permutation·vector·with·the·nested·dissection·new-to-old\xd | 27 | ··········This·method·this·vector·fills·a·permutation·vector·with·the·nested·dissection·new-to-old\xd |
28 | ··········ordering·of·the·vertices·for·the·subgrid·defined·by·nodes·whose·coordinates·lie·in\xd | 28 | ··········ordering·of·the·vertices·for·the·subgrid·defined·by·nodes·whose·coordinates·lie·in\xd |
29 | ··········[west,·east]·x·[south,·north]·x·[bottom,·top].\xd | 29 | ··········[west,·east]·x·[south,·north]·x·[bottom,·top].\xd |
30 | ··········There·is·one·important·difference·between·this·method·and·mkNDperm()·above;·this·method\xd | 30 | ··········There·is·one·important·difference·between·this·method·and·mkNDperm()·above;·this·method\xd |
31 | ··········finds·double-wide·separators,·necessary·for·an·operator·with·more·than·nearest·neighbor·grid\xd | 31 | ··········finds·double-wide·separators,·necessary·for·an·operator·with·more·than·nearest·neighbor·grid\xd |