@knowvah/dot-engine 2.6.12 → 2.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/api.js +18 -4
- package/dist/api.js.map +3 -3
- package/dist/common/attr-get.d.ts +30 -0
- package/dist/common/attr-get.d.ts.map +1 -0
- package/dist/common/htmltable-emit-fill.d.ts +20 -2
- package/dist/common/htmltable-emit-fill.d.ts.map +1 -1
- package/dist/common/htmltable-emit.d.ts.map +1 -1
- package/dist/common/htmltable-lex-expat.d.ts.map +1 -1
- package/dist/common/htmltable-pos-runs.d.ts +7 -4
- package/dist/common/htmltable-pos-runs.d.ts.map +1 -1
- package/dist/common/htmltable.d.ts.map +1 -1
- package/dist/common/libm-trig.d.ts +5 -0
- package/dist/common/libm-trig.d.ts.map +1 -0
- package/dist/common/make-label.d.ts.map +1 -1
- package/dist/common/multicolor.d.ts +21 -13
- package/dist/common/multicolor.d.ts.map +1 -1
- package/dist/common/poly-gencode.d.ts +1 -2
- package/dist/common/poly-gencode.d.ts.map +1 -1
- package/dist/common/poly-init.d.ts +2 -12
- package/dist/common/poly-init.d.ts.map +1 -1
- package/dist/common/splines-clip.d.ts +7 -0
- package/dist/common/splines-clip.d.ts.map +1 -1
- package/dist/gvc/context.d.ts +6 -0
- package/dist/gvc/context.d.ts.map +1 -1
- package/dist/gvc/device-cluster.d.ts +15 -0
- package/dist/gvc/device-cluster.d.ts.map +1 -1
- package/dist/gvc/device.d.ts.map +1 -1
- package/dist/gvc/first-layer.d.ts +9 -0
- package/dist/gvc/first-layer.d.ts.map +1 -0
- package/dist/gvc/gvrender-set-style.d.ts +28 -0
- package/dist/gvc/gvrender-set-style.d.ts.map +1 -0
- package/dist/gvc/usershape.d.ts +18 -0
- package/dist/gvc/usershape.d.ts.map +1 -1
- package/dist/index.js +2478 -912
- package/dist/index.js.map +4 -4
- package/dist/layout/dot/compound.d.ts.map +1 -1
- package/dist/layout/dot/edge-route-clip.d.ts +14 -4
- package/dist/layout/dot/edge-route-clip.d.ts.map +1 -1
- package/dist/layout/dot/edge-route-routing.d.ts.map +1 -1
- package/dist/layout/dot/graph-label.d.ts.map +1 -1
- package/dist/layout/neato/__fixtures__/dijkstra-f.d.ts +11 -0
- package/dist/layout/neato/__fixtures__/dijkstra-f.d.ts.map +1 -0
- package/dist/layout/neato/__fixtures__/hier-imds.d.ts +36 -0
- package/dist/layout/neato/__fixtures__/hier-imds.d.ts.map +1 -0
- package/dist/layout/neato/__fixtures__/hier-majorization.d.ts +32 -0
- package/dist/layout/neato/__fixtures__/hier-majorization.d.ts.map +1 -0
- package/dist/layout/neato/cdt-surface.d.ts.map +1 -1
- package/dist/layout/neato/compute-hierarchy.d.ts +24 -0
- package/dist/layout/neato/compute-hierarchy.d.ts.map +1 -0
- package/dist/layout/neato/conjgrad-mkernel.d.ts +20 -0
- package/dist/layout/neato/conjgrad-mkernel.d.ts.map +1 -0
- package/dist/layout/neato/conjgrad.d.ts +19 -0
- package/dist/layout/neato/conjgrad.d.ts.map +1 -1
- package/dist/layout/neato/constrained-majorization.d.ts +26 -0
- package/dist/layout/neato/constrained-majorization.d.ts.map +1 -0
- package/dist/layout/neato/dijkstra.d.ts +33 -16
- package/dist/layout/neato/dijkstra.d.ts.map +1 -1
- package/dist/layout/neato/gts-triangle.d.ts +14 -0
- package/dist/layout/neato/gts-triangle.d.ts.map +1 -0
- package/dist/layout/neato/init.d.ts +2 -12
- package/dist/layout/neato/init.d.ts.map +1 -1
- package/dist/layout/neato/kkutils.d.ts +20 -0
- package/dist/layout/neato/kkutils.d.ts.map +1 -0
- package/dist/layout/neato/make-graph-data.d.ts +43 -0
- package/dist/layout/neato/make-graph-data.d.ts.map +1 -0
- package/dist/layout/neato/matrix-ops.d.ts +46 -0
- package/dist/layout/neato/matrix-ops.d.ts.map +1 -1
- package/dist/layout/neato/opt-arrangement.d.ts +20 -0
- package/dist/layout/neato/opt-arrangement.d.ts.map +1 -0
- package/dist/layout/neato/quad-prog-solve.d.ts +44 -0
- package/dist/layout/neato/quad-prog-solve.d.ts.map +1 -0
- package/dist/layout/neato/smart-ini-x.d.ts +9 -0
- package/dist/layout/neato/smart-ini-x.d.ts.map +1 -0
- package/dist/layout/neato/splines.d.ts +1 -1
- package/dist/layout/neato/splines.d.ts.map +1 -1
- package/dist/layout/neato/start.d.ts +4 -1
- package/dist/layout/neato/start.d.ts.map +1 -1
- package/dist/layout/neato/stress.d.ts +8 -0
- package/dist/layout/neato/stress.d.ts.map +1 -1
- package/dist/model/edge.d.ts +1 -1
- package/dist/model/edge.d.ts.map +1 -1
- package/dist/model/lazy-attrs.d.ts +10 -0
- package/dist/model/lazy-attrs.d.ts.map +1 -0
- package/dist/model/node.d.ts +1 -1
- package/dist/model/node.d.ts.map +1 -1
- package/dist/ortho/index.d.ts.map +1 -1
- package/dist/render/dot/edge-draw.d.ts +1 -1
- package/dist/render/dot/edge-draw.d.ts.map +1 -1
- package/dist/render/svg-multicolor.d.ts +2 -2
- package/dist/render/svg-multicolor.d.ts.map +1 -1
- package/dist/render.js +2358 -792
- package/dist/render.js.map +4 -4
- package/package.json +1 -1
- package/src/common/attr-get.ts +46 -0
- package/src/common/graph-init.ts +1 -1
- package/src/common/htmltable-emit-fill.ts +56 -11
- package/src/common/htmltable-emit.ts +4 -3
- package/src/common/htmltable-lex-expat.ts +21 -3
- package/src/common/htmltable-pos-runs.ts +11 -6
- package/src/common/htmltable.ts +28 -116
- package/src/common/libm-trig.ts +43 -0
- package/src/common/make-label.ts +14 -2
- package/src/common/multicolor.ts +88 -24
- package/src/common/poly-gencode.ts +16 -8
- package/src/common/poly-init.ts +23 -19
- package/src/common/postproc.ts +2 -2
- package/src/common/splines-clip.ts +15 -12
- package/src/common/splines-routespl.ts +2 -2
- package/src/common/textmeasure-lookup.ts +1 -1
- package/src/gvc/context.ts +8 -0
- package/src/gvc/device-cluster.ts +63 -8
- package/src/gvc/device.ts +16 -2
- package/src/gvc/first-layer.ts +26 -0
- package/src/gvc/gvrender-set-style.ts +114 -0
- package/src/gvc/usershape.ts +26 -0
- package/src/layout/dot/cluster.ts +1 -1
- package/src/layout/dot/compound.ts +3 -4
- package/src/layout/dot/conc.ts +1 -1
- package/src/layout/dot/edge-route-clip.ts +19 -7
- package/src/layout/dot/edge-route-routing.ts +11 -3
- package/src/layout/dot/fastgr.ts +2 -2
- package/src/layout/dot/graph-label.ts +1 -15
- package/src/layout/neato/__fixtures__/dijkstra-f.ts +17 -0
- package/src/layout/neato/__fixtures__/hier/c1554.gv +33 -0
- package/src/layout/neato/__fixtures__/hier/c1554.plain +26 -0
- package/src/layout/neato/__fixtures__/hier/c1554.xdot +161 -0
- package/src/layout/neato/__fixtures__/hier/cases/cycle.gv +1 -0
- package/src/layout/neato/__fixtures__/hier/cases/cycle.plain +10 -0
- package/src/layout/neato/__fixtures__/hier/cases/cycle.stderr +0 -0
- package/src/layout/neato/__fixtures__/hier/cases/dirnone.gv +1 -0
- package/src/layout/neato/__fixtures__/hier/cases/dirnone.plain +11 -0
- package/src/layout/neato/__fixtures__/hier/cases/dirnone.stderr +0 -0
- package/src/layout/neato/__fixtures__/hier/cases/epsilon.gv +1 -0
- package/src/layout/neato/__fixtures__/hier/cases/epsilon.plain +13 -0
- package/src/layout/neato/__fixtures__/hier/cases/epsilon.stderr +0 -0
- package/src/layout/neato/__fixtures__/hier/cases/levelsgap.gv +1 -0
- package/src/layout/neato/__fixtures__/hier/cases/levelsgap.plain +8 -0
- package/src/layout/neato/__fixtures__/hier/cases/levelsgap.stderr +0 -0
- package/src/layout/neato/__fixtures__/hier/cases/mds.gv +1 -0
- package/src/layout/neato/__fixtures__/hier/cases/mds.plain +10 -0
- package/src/layout/neato/__fixtures__/hier/cases/mds.stderr +0 -0
- package/src/layout/neato/__fixtures__/hier/cases/multiedge.gv +1 -0
- package/src/layout/neato/__fixtures__/hier/cases/multiedge.plain +10 -0
- package/src/layout/neato/__fixtures__/hier/cases/multiedge.stderr +0 -0
- package/src/layout/neato/__fixtures__/hier/cases/neglevelsgap.gv +1 -0
- package/src/layout/neato/__fixtures__/hier/cases/neglevelsgap.plain +8 -0
- package/src/layout/neato/__fixtures__/hier/cases/neglevelsgap.stderr +0 -0
- package/src/layout/neato/__fixtures__/hier/cases/startrandom.gv +1 -0
- package/src/layout/neato/__fixtures__/hier/cases/startrandom.plain +10 -0
- package/src/layout/neato/__fixtures__/hier/cases/startrandom.stderr +0 -0
- package/src/layout/neato/__fixtures__/hier/cases/startregular.gv +1 -0
- package/src/layout/neato/__fixtures__/hier/cases/startregular.plain +10 -0
- package/src/layout/neato/__fixtures__/hier/cases/startregular.stderr +0 -0
- package/src/layout/neato/__fixtures__/hier/cases/tdist.gv +1 -0
- package/src/layout/neato/__fixtures__/hier/cases/tdist.plain +13 -0
- package/src/layout/neato/__fixtures__/hier/cases/tdist.stderr +0 -0
- package/src/layout/neato/__fixtures__/hier/cases/undirected.gv +1 -0
- package/src/layout/neato/__fixtures__/hier/cases/undirected.plain +10 -0
- package/src/layout/neato/__fixtures__/hier/cases/undirected.stderr +0 -0
- package/src/layout/neato/__fixtures__/hier/hier-probe.gv +1 -0
- package/src/layout/neato/__fixtures__/hier/hier-probe.plain +16 -0
- package/src/layout/neato/__fixtures__/hier/hier-probe.xdot +62 -0
- package/src/layout/neato/__fixtures__/hier-imds.ts +151 -0
- package/src/layout/neato/__fixtures__/hier-majorization.ts +145 -0
- package/src/layout/neato/cdt-surface.ts +6 -16
- package/src/layout/neato/compute-hierarchy.ts +90 -0
- package/src/layout/neato/conjgrad-mkernel.ts +141 -0
- package/src/layout/neato/conjgrad.ts +208 -0
- package/src/layout/neato/constrained-majorization.ts +479 -0
- package/src/layout/neato/dijkstra.ts +218 -92
- package/src/layout/neato/edge-len.ts +2 -2
- package/src/layout/neato/fdp-adjust.ts +3 -3
- package/src/layout/neato/gts-triangle.ts +42 -0
- package/src/layout/neato/init.ts +57 -57
- package/src/layout/neato/kk.ts +2 -2
- package/src/layout/neato/kkutils.ts +96 -0
- package/src/layout/neato/make-graph-data.ts +166 -0
- package/src/layout/neato/matrix-ops.ts +138 -0
- package/src/layout/neato/opt-arrangement.ts +86 -0
- package/src/layout/neato/quad-prog-solve.ts +489 -0
- package/src/layout/neato/smart-ini-x.ts +503 -0
- package/src/layout/neato/splines.ts +4 -4
- package/src/layout/neato/start.ts +7 -6
- package/src/layout/neato/stress.ts +28 -0
- package/src/model/edge.ts +3 -2
- package/src/model/lazy-attrs.ts +36 -0
- package/src/model/node.ts +3 -2
- package/src/ortho/index.ts +2 -3
- package/src/parser/dot.js +1 -1
- package/src/parser/dot.pegjs +1 -1
- package/src/parser/index.ts +1 -1
- package/src/render/color-resolve.ts +2 -2
- package/src/render/dot/edge-draw.ts +6 -3
- package/src/render/dot.ts +1 -1
- package/src/render/svg-edge-split.ts +2 -2
- package/src/render/svg-multicolor.ts +4 -3
- package/src/render/svg-parallel-edge.ts +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compound.d.ts","sourceRoot":"","sources":["../../../src/layout/dot/compound.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"compound.d.ts","sourceRoot":"","sources":["../../../src/layout/dot/compound.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAShD,OAAO,EACL,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,eAAe,EACxC,cAAc,EAAE,cAAc,EAAE,kBAAkB,EAClD,gBAAgB,EAChB,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,aAAa,GACpE,MAAM,oBAAoB,CAAC;AAM5B,6EAA6E;AAC7E,wBAAgB,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,IAAI,CAOpE;AAED,qGAAqG;AACrG,wBAAgB,UAAU,CAAC,CAAC,EAAE,KAAK,GAAG,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAIvD;AAMD,UAAU,SAAS;IAAG,CAAC,EAAE,IAAI,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;CAAE;AA4CzF,2EAA2E;AAC3E,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,GAAG,IAAI,CAU7E;AAED,2EAA2E;AAC3E,wBAAgB,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,GAAG,GAAG,IAAI,CAgB9D;AAED,iEAAiE;AACjE,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,GAAG,GAAG,OAAO,CAUhE;AAED,gGAAgG;AAChG,wBAAgB,QAAQ,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,OAAO,GAAG,OAAO,CAG/E;AAMD,8EAA8E;AAC9E,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,GAAG,GAAG,IAAI,CAYlE;AAED,2EAA2E;AAC3E,wBAAgB,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,GAAG,GAAG,IAAI,CAgB9D;AAED,uBAAuB;AACvB,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,GAAG,GAAG,OAAO,CAUhE;AAED,gGAAgG;AAChG,wBAAgB,QAAQ,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,OAAO,GAAG,OAAO,CAG/E;AAYD,wBAAgB,kBAAkB,CAChC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,GACpC;IAAE,EAAE,EAAE,KAAK,GAAG,IAAI,CAAC;IAAC,EAAE,EAAE,KAAK,GAAG,IAAI,CAAA;CAAE,CAMxC;AAED,qEAAqE;AACrE,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,IAAI,GAAG,OAAO,CAGvD;AAED,8DAA8D;AAC9D,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,CAMvD;AA0BD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,IAAI,CAU5E;AAMD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI,CAK/C"}
|
|
@@ -85,12 +85,22 @@ export declare function makeBoxInsideFn(halfW: number, halfH: number, penwidth?:
|
|
|
85
85
|
*/
|
|
86
86
|
export declare function makeEllipseInsideFn(rx: number, ry: number, penwidth?: number): (lx: number, ly: number) => boolean;
|
|
87
87
|
/**
|
|
88
|
-
* Clip path START to the tail arrowhead base (
|
|
88
|
+
* Clip path START to the tail arrowhead base (the arrowEndClip counterpart).
|
|
89
89
|
*
|
|
90
|
-
*
|
|
91
|
-
*
|
|
90
|
+
* Ports the bezier part of lib/common/arrows.c:arrowStartClip (:313-339); the
|
|
91
|
+
* `spl->sflag/sp` bookkeeping and the `startp += 3` step live in the caller
|
|
92
|
+
* (compound.ts:arrowStartClipIdx). Line map (C -> here):
|
|
93
|
+
* :323-326 sp[0..2] = ps[startp+3..], sp[3] = spl->sp -> `sp` below
|
|
94
|
+
* :328 if (slen > 0) -> `elen > 0`
|
|
95
|
+
* :329-330 inside_context {p = &sp[3], r = &slen} -> `inside` (centre = tip)
|
|
96
|
+
* :331 bezier_clip(&ctx, inside, sp, false) -> bezierClipNode, right
|
|
97
|
+
* inside, in ABSOLUTE coordinates (centre 0,0), as C does
|
|
98
|
+
* :334-337 ps[startp..startp+3] = sp[3..0] -> returned array
|
|
99
|
+
* :281-283 inside(): DIST(p, a.p[0]) <= a.r[0] -> distFused <= elen
|
|
100
|
+
* path4[0] is the tip (spl->sp) at every call site, so elen <= 0 returns the
|
|
101
|
+
* same points.
|
|
92
102
|
*
|
|
93
|
-
* @see lib/common/arrows.c:
|
|
103
|
+
* @see lib/common/arrows.c:arrowStartClip
|
|
94
104
|
*/
|
|
95
105
|
export declare function tailArrowEndClip(path4: Point[], tailTip: Point, elen: number): Point[];
|
|
96
106
|
//# sourceMappingURL=edge-route-clip.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"edge-route-clip.d.ts","sourceRoot":"","sources":["../../../src/layout/dot/edge-route-clip.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAWjD;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,EAAE,EAAE,KAAK,EAAE,EACX,CAAC,EAAE,MAAM,GACR,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,CAAC,CAK3B;AA2DD;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAC5B,EAAE,EAAE,KAAK,EAAE,EACX,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,KAAK,OAAO,EAC7C,UAAU,EAAE,OAAO,GAClB,KAAK,EAAE,CAMT;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,GAAG,MAAM,CAIpD;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,KAAK,EAAE,EACd,QAAQ,EAAE,KAAK,EACf,IAAI,EAAE,MAAM,GACX,KAAK,EAAE,CAMT;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAG9F;AAED;;GAEG;AACH,eAAO,MAAM,oBAAoB,IAAM,CAAC;AAExC;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,QAAQ,SAAuB,GAC9B,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,KAAK,OAAO,CAKrC;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CACjC,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,QAAQ,SAAuB,GAC9B,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,KAAK,OAAO,CAKrC;AAED
|
|
1
|
+
{"version":3,"file":"edge-route-clip.d.ts","sourceRoot":"","sources":["../../../src/layout/dot/edge-route-clip.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAWjD;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,EAAE,EAAE,KAAK,EAAE,EACX,CAAC,EAAE,MAAM,GACR,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,CAAC,CAK3B;AA2DD;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAC5B,EAAE,EAAE,KAAK,EAAE,EACX,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,KAAK,OAAO,EAC7C,UAAU,EAAE,OAAO,GAClB,KAAK,EAAE,CAMT;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,GAAG,MAAM,CAIpD;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,KAAK,EAAE,EACd,QAAQ,EAAE,KAAK,EACf,IAAI,EAAE,MAAM,GACX,KAAK,EAAE,CAMT;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAG9F;AAED;;GAEG;AACH,eAAO,MAAM,oBAAoB,IAAM,CAAC;AAExC;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,QAAQ,SAAuB,GAC9B,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,KAAK,OAAO,CAKrC;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CACjC,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,QAAQ,SAAuB,GAC9B,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,KAAK,OAAO,CAKrC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,KAAK,EAAE,EACd,OAAO,EAAE,KAAK,EACd,IAAI,EAAE,MAAM,GACX,KAAK,EAAE,CAMT"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"edge-route-routing.d.ts","sourceRoot":"","sources":["../../../src/layout/dot/edge-route-routing.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAIjD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAGpD,OAAO,EACL,WAAW,EACZ,MAAM,uBAAuB,CAAC;AAM/B,uDAAuD;AACvD,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,KAAK,EAAE,CAAC;IACnB,QAAQ,EAAE,KAAK,CAAC;IAChB,QAAQ,EAAE,KAAK,CAAC;CACjB;AAED,wEAAwE;AACxE,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAQD;;;GAGG;AACH;;;;;;GAMG;AACH,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,iEAAiE;AACjE,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,OAAO,CAAC;CACf;AAID,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,YAAY,EAClB,KAAK,CAAC,EAAE;IAAE,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAA;CAAE,GACnD;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,EAAE,CAAA;CAAE,CAe3E;AAOD;;;GAGG;AACH;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,cAAc,CAAC,QAAQ,SAAuB,GAAG,MAAM,CAGtE;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAC1B,GAAG,EAAE,OAAO,GACX,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,KAAK,OAAO,CAOrC;AAED,wBAAgB,WAAW,CACzB,MAAM,EAAE,KAAK,EAAE,EACf,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,EAChB,QAAQ,SAAuB,EAC/B,IAAI,GAAE,SAAqB,GAC1B;IAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAAC,QAAQ,EAAE,KAAK,CAAC;IAAC,QAAQ,EAAE,KAAK,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"edge-route-routing.d.ts","sourceRoot":"","sources":["../../../src/layout/dot/edge-route-routing.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAIjD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAGpD,OAAO,EACL,WAAW,EACZ,MAAM,uBAAuB,CAAC;AAM/B,uDAAuD;AACvD,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,KAAK,EAAE,CAAC;IACnB,QAAQ,EAAE,KAAK,CAAC;IAChB,QAAQ,EAAE,KAAK,CAAC;CACjB;AAED,wEAAwE;AACxE,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAQD;;;GAGG;AACH;;;;;;GAMG;AACH,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,iEAAiE;AACjE,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,OAAO,CAAC;CACf;AAID,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,YAAY,EAClB,KAAK,CAAC,EAAE;IAAE,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAA;CAAE,GACnD;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,EAAE,CAAA;CAAE,CAe3E;AAOD;;;GAGG;AACH;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,cAAc,CAAC,QAAQ,SAAuB,GAAG,MAAM,CAGtE;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAC1B,GAAG,EAAE,OAAO,GACX,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,KAAK,OAAO,CAOrC;AAED,wBAAgB,WAAW,CACzB,MAAM,EAAE,KAAK,EAAE,EACf,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,EAChB,QAAQ,SAAuB,EAC/B,IAAI,GAAE,SAAqB,GAC1B;IAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAAC,QAAQ,EAAE,KAAK,CAAC;IAAC,QAAQ,EAAE,KAAK,CAAA;CAAE,CAuBxD;AAOD;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,YAAY,EAClB,QAAQ,SAAuB,EAC/B,IAAI,CAAC,EAAE,SAAS,GACf,gBAAgB,CASlB;AAOD;;;GAGG;AACH,wBAAgB,WAAW,CACzB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,EAChB,aAAa,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,KAAK,KAAK,EAAE,GACjD,gBAAgB,CAalB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph-label.d.ts","sourceRoot":"","sources":["../../../src/layout/dot/graph-label.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAElD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"graph-label.d.ts","sourceRoot":"","sources":["../../../src/layout/dot/graph-label.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAElD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAMhE,6DAA6D;AAC7D,eAAO,MAAM,WAAW,QAAS,CAAC;AA+BlC;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,KAAK,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAMnG;AAeD;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,GAAG,SAAS,GAAG,IAAI,CAuBhF"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export interface DijkstraFFixture {
|
|
2
|
+
n: number;
|
|
3
|
+
rows: {
|
|
4
|
+
edges: number[];
|
|
5
|
+
ewgts: number[];
|
|
6
|
+
}[];
|
|
7
|
+
/** expected[s][j] = float32 bits of dist(s -> j), as 8-digit hex */
|
|
8
|
+
expected: string[][];
|
|
9
|
+
}
|
|
10
|
+
export declare const DIJKSTRA_F_FIXTURES: Record<'g9' | 'r2' | 'r5', DijkstraFFixture>;
|
|
11
|
+
//# sourceMappingURL=dijkstra-f.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dijkstra-f.d.ts","sourceRoot":"","sources":["../../../../src/layout/neato/__fixtures__/dijkstra-f.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,gBAAgB;IAC/B,CAAC,EAAE,MAAM,CAAC;IACV,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QAAC,KAAK,EAAE,MAAM,EAAE,CAAA;KAAE,EAAE,CAAC;IAC7C,oEAAoE;IACpE,QAAQ,EAAE,MAAM,EAAE,EAAE,CAAC;CACtB;AAED,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI,EAAE,gBAAgB,CAI5E,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Expected vectors for the T17 smart_ini_x tests, captured from a native
|
|
3
|
+
* clang -O3 -arch arm64 (-DDIGCOLA) harness linking lib/neatogen/{smart_ini_x,
|
|
4
|
+
* kkutils,dijkstra,bfs,matrix_ops,conjgrad}.c unmodified (graphviz 16.1.0),
|
|
5
|
+
* run once per case in a fresh process (libc rand() starts at its seed).
|
|
6
|
+
* Graphs follow neatoinit.c:makeGraphData adjacency (out edges, then in edges;
|
|
7
|
+
* duplicate endpoints merged with fmax of len).
|
|
8
|
+
*/
|
|
9
|
+
import type { VtxData } from '../dijkstra.js';
|
|
10
|
+
/** One undirected-adjacency edge . */
|
|
11
|
+
export type HierEdge = readonly [number, number, number];
|
|
12
|
+
/** Names of the harness cases. */
|
|
13
|
+
export type ImdsCaseName = 'probe' | 'probe_nowgt' | 'probe_frac' | 'c1554' | 'disc' | 'dag32' | 'dag32_tight' | 'dag9' | 'dag17' | 'dag24';
|
|
14
|
+
/** Harness case: graph spec plus native results. */
|
|
15
|
+
export interface ImdsCase {
|
|
16
|
+
readonly edges: readonly HierEdge[];
|
|
17
|
+
readonly haveLen: boolean;
|
|
18
|
+
readonly haveDir: boolean;
|
|
19
|
+
/** Native compute_apsp matrix (row-major) or, for n > 7, its row sums. */
|
|
20
|
+
readonly D: readonly number[];
|
|
21
|
+
readonly n: number;
|
|
22
|
+
readonly tol: number;
|
|
23
|
+
readonly rv: number;
|
|
24
|
+
readonly input: readonly number[];
|
|
25
|
+
readonly x: readonly number[];
|
|
26
|
+
readonly y: readonly number[];
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Mirror of neatoinit.c:makeGraphData's adjacency construction. is
|
|
30
|
+
* the empty array (C NULL) unless .
|
|
31
|
+
* @see lib/neatogen/neatoinit.c:makeGraphData
|
|
32
|
+
*/
|
|
33
|
+
export declare function buildGraph(n: number, edges: readonly HierEdge[], haveLen: boolean, haveDir: boolean): VtxData[];
|
|
34
|
+
/** Native results per harness case (see file header). */
|
|
35
|
+
export declare const IMDS_CASES: Readonly<Record<ImdsCaseName, ImdsCase>>;
|
|
36
|
+
//# sourceMappingURL=hier-imds.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hier-imds.d.ts","sourceRoot":"","sources":["../../../../src/layout/neato/__fixtures__/hier-imds.ts"],"names":[],"mappings":"AACA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAE9C,sCAAsC;AACtC,MAAM,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAEzD,kCAAkC;AAClC,MAAM,MAAM,YAAY,GACpB,OAAO,GAAG,aAAa,GAAG,YAAY,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,GAAG,aAAa,GACnF,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;AAE/B,oDAAoD;AACpD,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,KAAK,EAAE,SAAS,QAAQ,EAAE,CAAC;IACpC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,0EAA0E;IAC1E,QAAQ,CAAC,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9B,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9B,QAAQ,CAAC,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC/B;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CACxB,CAAC,EAAE,MAAM,EACT,KAAK,EAAE,SAAS,QAAQ,EAAE,EAC1B,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,GACf,OAAO,EAAE,CAsBX;AAED,yDAAyD;AACzD,eAAO,MAAM,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,YAAY,EAAE,QAAQ,CAAC,CAiF/D,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Expected layouts for the T22 stress_majorization_with_hierarchy tests, captured
|
|
3
|
+
* from a native clang -O3 -flto=thin -arch arm64 (-DDIGCOLA) harness that links the
|
|
4
|
+
* oracle's own lib/neatogen (graphviz 16.1.0) and calls the function with a fresh
|
|
5
|
+
* libc rand()/drand48() stream (srand(1), srand48(seed)). Graphs are neato vtx_data
|
|
6
|
+
* with haveDir (edists); `g40` is a seeded random DAG (40 nodes, 70 edges).
|
|
7
|
+
* Generated data: do not hand-edit.
|
|
8
|
+
*/
|
|
9
|
+
/** One harness invocation and its native result. */
|
|
10
|
+
export interface MajorizationCase {
|
|
11
|
+
readonly name: string;
|
|
12
|
+
readonly graph: 'probe' | 'c1554' | 'rdag' | 'g40';
|
|
13
|
+
readonly dim: number;
|
|
14
|
+
readonly opts: number;
|
|
15
|
+
readonly maxi: number;
|
|
16
|
+
readonly levelsGap: number;
|
|
17
|
+
readonly epsilon: number;
|
|
18
|
+
/** `srand48` seed before the call. */
|
|
19
|
+
readonly seed: number;
|
|
20
|
+
/** Native return value (iterations). */
|
|
21
|
+
readonly rv: number;
|
|
22
|
+
/** Native `d_coords`, one array per axis. */
|
|
23
|
+
readonly coords: readonly (readonly number[])[];
|
|
24
|
+
}
|
|
25
|
+
/** `vtx_data` rows of the `g40` graph. */
|
|
26
|
+
export declare const G40_ROWS: readonly {
|
|
27
|
+
edges: number[];
|
|
28
|
+
ewgts: number[];
|
|
29
|
+
edists: number[];
|
|
30
|
+
}[];
|
|
31
|
+
export declare const MAJORIZATION_CASES: readonly MajorizationCase[];
|
|
32
|
+
//# sourceMappingURL=hier-majorization.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hier-majorization.d.ts","sourceRoot":"","sources":["../../../../src/layout/neato/__fixtures__/hier-majorization.ts"],"names":[],"mappings":"AACA;;;;;;;GAOG;AAEH,oDAAoD;AACpD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,CAAC;IACnD,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,sCAAsC;IACtC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,wCAAwC;IACxC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,6CAA6C;IAC7C,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,CAAC;CACjD;AAED,0CAA0C;AAC1C,eAAO,MAAM,QAAQ,EAAE,SAAS;IAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,EAAgjF,CAAC;AAEvoF,eAAO,MAAM,kBAAkB,EAAE,SAAS,gBAAgB,EAkHzD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cdt-surface.d.ts","sourceRoot":"","sources":["../../../src/layout/neato/cdt-surface.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cdt-surface.d.ts","sourceRoot":"","sources":["../../../src/layout/neato/cdt-surface.ts"],"names":[],"mappings":"AAwCA,mEAAmE;AACnE,MAAM,WAAW,OAAO;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,sDAAsD;IACtD,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,2EAA2E;IAC3E,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAwlBD;;;;;GAKG;AACH,wBAAgB,SAAS,CACvB,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,GACjE,OAAO,GAAG,IAAI,CA+ChB"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Partition graph nodes into levels by the minimizer of the hierarchy energy.
|
|
3
|
+
*
|
|
4
|
+
* @see lib/neatogen/compute_hierarchy.c
|
|
5
|
+
*/
|
|
6
|
+
import type { VtxData } from './dijkstra.js';
|
|
7
|
+
/** Result of `compute_hierarchy` on success (C return value 0). */
|
|
8
|
+
export interface Hierarchy {
|
|
9
|
+
/** Node ids sorted by `y`; level `k` is `ordering[levels[k-1]..levels[k])`. */
|
|
10
|
+
ordering: Int32Array;
|
|
11
|
+
/** Start index (in `ordering`) of every level but the first; `[n]` when there is one level. */
|
|
12
|
+
levels: Int32Array;
|
|
13
|
+
/** C `*num_levelsp` (0 means a single level, `levels = [n]`). */
|
|
14
|
+
numLevels: number;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Order the nodes by `y` (computed by `computeYCoords` unless `given` is
|
|
18
|
+
* supplied) and cut a new level wherever consecutive values differ by more
|
|
19
|
+
* than `max(absTol, relTol * span / (n - 1))`. Returns `null` where C returns
|
|
20
|
+
* nonzero (`compute_y_coords` failed).
|
|
21
|
+
* @see lib/neatogen/compute_hierarchy.c:compute_hierarchy
|
|
22
|
+
*/
|
|
23
|
+
export declare function computeHierarchy(graph: VtxData[], n: number, absTol: number, relTol: number, given: Float64Array | null): Hierarchy | null;
|
|
24
|
+
//# sourceMappingURL=compute-hierarchy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compute-hierarchy.d.ts","sourceRoot":"","sources":["../../../src/layout/neato/compute-hierarchy.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAI7C,mEAAmE;AACnE,MAAM,WAAW,SAAS;IACxB,+EAA+E;IAC/E,QAAQ,EAAE,UAAU,CAAC;IACrB,+FAA+F;IAC/F,MAAM,EAAE,UAAU,CAAC;IACnB,iEAAiE;IACjE,SAAS,EAAE,MAAM,CAAC;CACnB;AAsCD;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,OAAO,EAAE,EAChB,CAAC,EAAE,MAAM,EACT,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,YAAY,GAAG,IAAI,GACzB,SAAS,GAAG,IAAI,CAkBlB"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `result = packed_matrix * vector` for the packed upper triangle of a
|
|
3
|
+
* symmetric matrix: per row the first `16*floor(len/16)` products of the
|
|
4
|
+
* reduction are rounded before their adds, the rest fused; the scatter into
|
|
5
|
+
* `result[j]` is fused throughout.
|
|
6
|
+
* @see lib/neatogen/matrix_ops.c:right_mult_with_vector_ff
|
|
7
|
+
*/
|
|
8
|
+
export declare function rightMultWithVectorFFFused(m: Float32Array, n: number, vector: Float32Array, result: Float32Array): void;
|
|
9
|
+
/** Options of {@link conjugateGradientMkernelFused} (C's trailing `tol`, `max_iterations`). */
|
|
10
|
+
export interface CgMkernelOptions {
|
|
11
|
+
tol: number;
|
|
12
|
+
maxIterations: number;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Solve `A*x = b` by conjugate gradients, `A` packed symmetric; `x` and `b` are
|
|
16
|
+
* centred. Returns 1 on an unexpected zero residual, else 0.
|
|
17
|
+
* @see lib/neatogen/conjgrad.c:conjugate_gradient_mkernel
|
|
18
|
+
*/
|
|
19
|
+
export declare function conjugateGradientMkernelFused(A: Float32Array, x: Float32Array, b: Float32Array, n: number, o: CgMkernelOptions): number;
|
|
20
|
+
//# sourceMappingURL=conjgrad-mkernel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conjgrad-mkernel.d.ts","sourceRoot":"","sources":["../../../src/layout/neato/conjgrad-mkernel.ts"],"names":[],"mappings":"AA8BA;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CACxC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,GACrE,IAAI,CAeN;AAmBD,+FAA+F;AAC/F,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa,EAAE,MAAM,CAAC;CACvB;AAgDD;;;;GAIG;AACH,wBAAgB,6BAA6B,CAC3C,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,gBAAgB,GAChF,MAAM,CAQR"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { VtxData } from './dijkstra.js';
|
|
1
2
|
/**
|
|
2
3
|
* Conjugate gradient solvers for packed symmetric float matrices.
|
|
3
4
|
* @see lib/neatogen/conjgrad.c
|
|
@@ -57,5 +58,23 @@ export interface CgOptions {
|
|
|
57
58
|
* @see lib/neatogen/conjgrad.c:conjugate_gradient_mkernel
|
|
58
59
|
*/
|
|
59
60
|
export declare function conjugateGradientMkernel(A: Float32Array, x: Float32Array, b: Float32Array, n: number, opts: CgOptions): number;
|
|
61
|
+
/**
|
|
62
|
+
* Solve `A x = b` by conjugate gradients; `x` and `b` are orthogonalized
|
|
63
|
+
* against 1. Returns C's `rv` (1 on the zero-length-residual failure).
|
|
64
|
+
* @see lib/neatogen/conjgrad.c:conjugate_gradient
|
|
65
|
+
*/
|
|
66
|
+
export declare function conjugateGradient(A: VtxData[], x: Float64Array, b: Float64Array, n: number, tol: number, maxIterations: number): number;
|
|
67
|
+
/** Stopping rule and centring of {@link conjugateGradientF} (C's trailing parameters). */
|
|
68
|
+
export interface CgfOptions {
|
|
69
|
+
tol: number;
|
|
70
|
+
maxIterations: number;
|
|
71
|
+
ortho1: boolean;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Solves A x = b for a float** matrix with double x, b (x, b centred when
|
|
75
|
+
* `ortho1`). Returns 0, or 1 after a zero-length residual (callers test `< 0`).
|
|
76
|
+
* @see lib/neatogen/conjgrad.c:conjugate_gradient_f
|
|
77
|
+
*/
|
|
78
|
+
export declare function conjugateGradientF(A: readonly Float32Array[], x: Float64Array, b: Float64Array, n: number, opts: CgfOptions): number;
|
|
60
79
|
export {};
|
|
61
80
|
//# sourceMappingURL=conjgrad.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conjgrad.d.ts","sourceRoot":"","sources":["../../../src/layout/neato/conjgrad.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"conjgrad.d.ts","sourceRoot":"","sources":["../../../src/layout/neato/conjgrad.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAc7C;;;GAGG;AAEH;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,YAAY,GAAG,IAAI,CAKzD;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,CAAC,EAAE,YAAY,EACf,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,YAAY,EACf,CAAC,EAAE,YAAY,GACd,IAAI,CASN;AAED,uDAAuD;AACvD,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,YAAY,GAAG,MAAM,CAO1D;AAED,mDAAmD;AACnD,wBAAgB,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,GAAG,MAAM,CAIxE;AAED,iCAAiC;AACjC,UAAU,OAAO;IACf,CAAC,EAAE,YAAY,CAAC;IAChB,CAAC,EAAE,YAAY,CAAC;IAChB,EAAE,EAAE,YAAY,CAAC;IACjB,EAAE,EAAE,MAAM,CAAC;CACZ;AAED;;;GAGG;AACH,wBAAgB,MAAM,CACpB,CAAC,EAAE,YAAY,EACf,CAAC,EAAE,YAAY,EACf,CAAC,EAAE,YAAY,EACf,CAAC,EAAE,MAAM,GACR,OAAO,CAST;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,CAAC,EAAE,MAAM,EACT,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,OAAO,GACb,MAAM,CASR;AAED;;;;GAIG;AACH,wBAAgB,MAAM,CACpB,CAAC,EAAE,YAAY,EACf,CAAC,EAAE,YAAY,EACf,CAAC,EAAE,MAAM,EACT,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,OAAO,GACZ,MAAM,CAWR;AAED,oDAAoD;AACpD,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CACtC,CAAC,EAAE,YAAY,EACf,CAAC,EAAE,YAAY,EACf,CAAC,EAAE,YAAY,EACf,CAAC,EAAE,MAAM,EACT,IAAI,EAAE,SAAS,GACd,MAAM,CASR;AAgED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,CAAC,EAAE,OAAO,EAAE,EACZ,CAAC,EAAE,YAAY,EACf,CAAC,EAAE,YAAY,EACf,CAAC,EAAE,MAAM,EACT,GAAG,EAAE,MAAM,EACX,aAAa,EAAE,MAAM,GACpB,MAAM,CAkBR;AAoED,0FAA0F;AAC1F,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,CAAC,EAAE,SAAS,YAAY,EAAE,EAC1B,CAAC,EAAE,YAAY,EACf,CAAC,EAAE,YAAY,EACf,CAAC,EAAE,MAAM,EACT,IAAI,EAAE,UAAU,GACf,MAAM,CAaR"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { Node } from '../../model/node.js';
|
|
2
|
+
import type { DirectedVtxData } from './opt-arrangement.js';
|
|
3
|
+
/** The scalar parameters of `stress_majorization_with_hierarchy`. */
|
|
4
|
+
export interface HierarchyOpts {
|
|
5
|
+
/** Dimensionality of the layout. */
|
|
6
|
+
dim: number;
|
|
7
|
+
/** `opt_*` bits. */
|
|
8
|
+
opts: number;
|
|
9
|
+
/** `MODEL_*` (neato.h values). */
|
|
10
|
+
model: number;
|
|
11
|
+
/** Maximum number of iterations. */
|
|
12
|
+
maxi: number;
|
|
13
|
+
/** Minimum separation of consecutive levels (`levelsgap`). */
|
|
14
|
+
levelsGap: number;
|
|
15
|
+
/** The `Epsilon` global: convergence tolerance (`epsilon` attribute). */
|
|
16
|
+
epsilon: number;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Stress majorization of the layout under hierarchy constraints. Writes the
|
|
20
|
+
* layout to `dCoords` and returns the iteration count (C's return value; -1
|
|
21
|
+
* on failure). Graphs without directed edges, and layouts that find no
|
|
22
|
+
* hierarchy, go to the unconstrained stress majorization.
|
|
23
|
+
* @see lib/neatogen/constrained_majorization.c:stress_majorization_with_hierarchy
|
|
24
|
+
*/
|
|
25
|
+
export declare function stressMajorizationWithHierarchy(graph: DirectedVtxData[], n: number, dCoords: Float64Array[], nodes: Node[], o: HierarchyOpts): number;
|
|
26
|
+
//# sourceMappingURL=constrained-majorization.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constrained-majorization.d.ts","sourceRoot":"","sources":["../../../src/layout/neato/constrained-majorization.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAQhD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AA8B5D,qEAAqE;AACrE,MAAM,WAAW,aAAa;IAC5B,oCAAoC;IACpC,GAAG,EAAE,MAAM,CAAC;IACZ,oBAAoB;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,kCAAkC;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,oCAAoC;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,8DAA8D;IAC9D,SAAS,EAAE,MAAM,CAAC;IAClB,yEAAyE;IACzE,OAAO,EAAE,MAAM,CAAC;CACjB;AAuXD;;;;;;GAMG;AACH,wBAAgB,+BAA+B,CAC7C,KAAK,EAAE,eAAe,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,aAAa,GAC5F,MAAM,CAyBR"}
|
|
@@ -25,24 +25,41 @@ export interface TermSgd {
|
|
|
25
25
|
d: number;
|
|
26
26
|
w: number;
|
|
27
27
|
}
|
|
28
|
-
/**
|
|
29
|
-
export declare
|
|
30
|
-
/** Sift the root down to restore heap order after replacing it. @internal */
|
|
31
|
-
export declare function heapSiftDown(heap: number[], dist: Float32Array): void;
|
|
32
|
-
/** Pop and return the vertex with minimum distance. @internal */
|
|
33
|
-
export declare function heapPop(heap: number[], dist: Float32Array): number;
|
|
34
|
-
/** Build a min-heap from all nodes except `src`. @internal */
|
|
35
|
-
export declare function heapBuildExcluding(src: number, n: number, dist: Float32Array): number[];
|
|
36
|
-
/** Initialise dist array from source edges. @internal */
|
|
37
|
-
export declare function dijkstraInitDist(src: number, graph: VtxData[], n: number, dist: Float32Array): void;
|
|
38
|
-
/** Relax all outgoing edges of `closest`. @internal */
|
|
39
|
-
export declare function dijkstraRelax(closest: number, closestDist: number, graph: VtxData[], dist: Float32Array, heap: number[]): void;
|
|
28
|
+
/** C `FLT_MAX`: the "unreachable" distance of dijkstra_f. */
|
|
29
|
+
export declare const FLT_MAX = 3.4028234663852886e+38;
|
|
40
30
|
/**
|
|
41
|
-
*
|
|
42
|
-
*
|
|
43
|
-
* Equivalent to `dijkstra_f` in lib/neatogen/dijkstra.c.
|
|
31
|
+
* Weighted single-source shortest paths from `vertex`; assumes a connected
|
|
32
|
+
* graph, unreachable vertices keep `FLT_MAX`. All arithmetic is C `float`.
|
|
44
33
|
*
|
|
45
34
|
* @see lib/neatogen/dijkstra.c:dijkstra_f
|
|
46
35
|
*/
|
|
47
|
-
export declare function dijkstra(
|
|
36
|
+
export declare function dijkstra(vertex: number, graph: VtxData[], n: number, dist: Float32Array): void;
|
|
37
|
+
/** C `(DistType)INT_MAX`. @see lib/neatogen/dijkstra.c:MAX_DIST */
|
|
38
|
+
export declare const MAX_DIST = 2147483647;
|
|
39
|
+
/**
|
|
40
|
+
* The heap of dijkstra.c: `data[i] = vertexNum <=> index[vertexNum] = i`, with
|
|
41
|
+
* the 0-rooted `left = 2i`, `right = 2i + 1`, `parent = i / 2` numbering.
|
|
42
|
+
* @see lib/neatogen/dijkstra.c:heap
|
|
43
|
+
*/
|
|
44
|
+
export interface NgHeap {
|
|
45
|
+
data: number[];
|
|
46
|
+
heapSize: number;
|
|
47
|
+
index: Int32Array;
|
|
48
|
+
}
|
|
49
|
+
/** @see lib/neatogen/dijkstra.c:initHeap */
|
|
50
|
+
export declare function ngInitHeap(startVertex: number, dist: Int32Array, n: number): NgHeap;
|
|
51
|
+
/**
|
|
52
|
+
* Pops the closest vertex; returns -1 (C `false`) when the heap is empty.
|
|
53
|
+
* @see lib/neatogen/dijkstra.c:extractMax
|
|
54
|
+
*/
|
|
55
|
+
export declare function ngExtractMax(h: NgHeap, dist: Int32Array): number;
|
|
56
|
+
/** @see lib/neatogen/dijkstra.c:increaseKey */
|
|
57
|
+
export declare function ngIncreaseKey(h: NgHeap, increasedVertex: number, newDist: number, dist: Int32Array): void;
|
|
58
|
+
/**
|
|
59
|
+
* Single-source shortest paths on the int-truncated edge weights `ewgts`;
|
|
60
|
+
* unreachable vertices get `prevClosestDist + 10` (INT_MAX when that would
|
|
61
|
+
* overflow).
|
|
62
|
+
* @see lib/neatogen/dijkstra.c:ngdijkstra
|
|
63
|
+
*/
|
|
64
|
+
export declare function ngdijkstra(vertex: number, graph: VtxData[], n: number, dist: Int32Array): void;
|
|
48
65
|
//# sourceMappingURL=dijkstra.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dijkstra.d.ts","sourceRoot":"","sources":["../../../src/layout/neato/dijkstra.ts"],"names":[],"mappings":"AACA,mCAAmC;AAEnC;;;;;;;;;GASG;AACH,MAAM,WAAW,OAAO;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED;;;;GAIG;AACH,MAAM,WAAW,OAAO;IACtB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;
|
|
1
|
+
{"version":3,"file":"dijkstra.d.ts","sourceRoot":"","sources":["../../../src/layout/neato/dijkstra.ts"],"names":[],"mappings":"AACA,mCAAmC;AAEnC;;;;;;;;;GASG;AACH,MAAM,WAAW,OAAO;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED;;;;GAIG;AACH,MAAM,WAAW,OAAO;IACtB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAOD,6DAA6D;AAC7D,eAAO,MAAM,OAAO,yBAAwB,CAAC;AAqE7C;;;;;GAKG;AACH,wBAAgB,QAAQ,CACtB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,OAAO,EAAE,EAChB,CAAC,EAAE,MAAM,EACT,IAAI,EAAE,YAAY,GACjB,IAAI,CAeN;AAMD,mEAAmE;AACnE,eAAO,MAAM,QAAQ,aAAa,CAAC;AAEnC;;;;GAIG;AACH,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,UAAU,CAAC;CACnB;AAgDD,4CAA4C;AAC5C,wBAAgB,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAgBnF;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,MAAM,CAQhE;AAED,+CAA+C;AAC/C,wBAAgB,aAAa,CAC3B,CAAC,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GACpE,IAAI,CAUN;AAOD;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,IAAI,CAuB9F"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GTS's enclosing triangle, split from cdt-surface.ts to mirror the GTS source
|
|
3
|
+
* file it ports (the oracle links libgts 0.7.6 for neato's constrained
|
|
4
|
+
* Delaunay triangulation).
|
|
5
|
+
* @see gts-0.7.6 src/triangle.c
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Vertices of the triangle enclosing points (px[0..n), py[0..n)). The oracle's
|
|
9
|
+
* libgts (arm64) fuses r*SQRT3 + xo, r*2 + yo, xo - r*SQRT3 and
|
|
10
|
+
* dx*dx + dy*dy (fmadd/fmsub in _gts_triangle_enclosing), so those are fma.
|
|
11
|
+
* @see gts-0.7.6 src/triangle.c:gts_triangle_enclosing
|
|
12
|
+
*/
|
|
13
|
+
export declare function gtsTriangleEnclosing(px: number[], py: number[], n: number, scale: number): [[number, number], [number, number], [number, number]];
|
|
14
|
+
//# sourceMappingURL=gts-triangle.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gts-triangle.d.ts","sourceRoot":"","sources":["../../../src/layout/neato/gts-triangle.ts"],"names":[],"mappings":"AACA;;;;;GAKG;AAOH;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GACnD,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAoBxD"}
|
|
@@ -12,7 +12,8 @@ import type { Node } from '../../model/node.js';
|
|
|
12
12
|
import type { Edge } from '../../model/edge.js';
|
|
13
13
|
import type { VtxData } from './dijkstra.js';
|
|
14
14
|
import { checkStart } from './start.js';
|
|
15
|
-
|
|
15
|
+
import { makeGraphDataC, graphHasLen } from './make-graph-data.js';
|
|
16
|
+
export { makeGraphDataC, graphHasLen, checkStart };
|
|
16
17
|
/** Kamada-Kawai energy minimization. @see lib/neatogen/neatoprocs.h */
|
|
17
18
|
export declare const MODE_KK = 0;
|
|
18
19
|
/** Stress majorization (default). @see lib/neatogen/neatoprocs.h */
|
|
@@ -143,17 +144,6 @@ export declare function mapModelToStress(model: number): number;
|
|
|
143
144
|
export declare function neatoMaxIter(maxiter: string | undefined, mode: number, n: number): number;
|
|
144
145
|
/** Run stress majorization and write positions back. @see lib/neatogen/neatoinit.c:majorization */
|
|
145
146
|
export declare function runMajorization(g: Graph, mode: number, model: number): void;
|
|
146
|
-
/** Any edge carries a len attr (C: agattr_text(g, AGEDGE, "len")). */
|
|
147
|
-
export declare function graphHasLen(g: Graph): boolean;
|
|
148
|
-
/**
|
|
149
|
-
* C makeGraphData's vtx_data: per node out-edges then in-edges (agfstedge order), self at
|
|
150
|
-
* index 0, duplicate neighbours merged (len keeps the max). ewgts: lens (default 1.0) if any
|
|
151
|
-
* len attr, else 1.0 under haveDir (hier/ipsep), else absent (C NULL). eweights (haveWt)
|
|
152
|
-
* and edists are not built: nothing on a supported path reads them.
|
|
153
|
-
* @see lib/neatogen/neatoinit.c:makeGraphData
|
|
154
|
-
* @see lib/neatogen/stuff.c:setEdgeLen
|
|
155
|
-
*/
|
|
156
|
-
export declare function makeGraphDataC(g: Graph, nodeList: Node[], haveLen: boolean, haveDir: boolean): VtxData[];
|
|
157
147
|
/** Dispatch to the layout solver for the mode. @see lib/neatogen/neatoinit.c:neatoLayout */
|
|
158
148
|
export declare function solveModel(g: Graph, mode: number, model: number): void;
|
|
159
149
|
/** Minimum X and Y across all node positions. @see lib/neatogen/neatoinit.c (translate logic) */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/layout/neato/init.ts"],"names":[],"mappings":"AACA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/layout/neato/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { VtxData } from './dijkstra.js';
|
|
2
|
+
/**
|
|
3
|
+
* Sort `ordering[0..size)` by ascending `place[ordering[i]]`.
|
|
4
|
+
* @see lib/neatogen/kkutils.c:quicksort_place
|
|
5
|
+
*/
|
|
6
|
+
export declare function quicksortPlace(place: Float64Array, ordering: Int32Array, size: number): void;
|
|
7
|
+
/**
|
|
8
|
+
* Sort `ordering[first..last]` (inclusive) by ascending `place[ordering[i]]`
|
|
9
|
+
* (float keys); a no-op unless `first < last`.
|
|
10
|
+
* @see lib/neatogen/kkutils.c:quicksort_placef
|
|
11
|
+
*/
|
|
12
|
+
export declare function quicksortPlacef(place: Float32Array, ordering: Int32Array, first: number, last: number): void;
|
|
13
|
+
/**
|
|
14
|
+
* All-pairs shortest-path lengths as `DistType` (int) rows: Dijkstra when the
|
|
15
|
+
* graph has edge lengths (`graph->ewgts`; the port's empty array is C NULL),
|
|
16
|
+
* BFS otherwise.
|
|
17
|
+
* @see lib/neatogen/kkutils.c:compute_apsp
|
|
18
|
+
*/
|
|
19
|
+
export declare function computeApsp(graph: VtxData[], n: number): Int32Array[];
|
|
20
|
+
//# sourceMappingURL=kkutils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kkutils.d.ts","sourceRoot":"","sources":["../../../src/layout/neato/kkutils.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAyB7C;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAE5F;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,YAAY,EACnB,QAAQ,EAAE,UAAU,EACpB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,GACX,IAAI,CAIN;AAwBD;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,UAAU,EAAE,CAErE"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Neato's sparse graph (`vtx_data`) construction: `makeGraphData` and the
|
|
3
|
+
* DIGCOLA edge-direction pass (`dfsCycle`, `acyclic`) it ends with.
|
|
4
|
+
*
|
|
5
|
+
* @see lib/neatogen/neatoinit.c
|
|
6
|
+
*/
|
|
7
|
+
import type { Graph } from '../../model/graph.js';
|
|
8
|
+
import type { Node } from '../../model/node.js';
|
|
9
|
+
import type { DirectedVtxData } from './opt-arrangement.js';
|
|
10
|
+
/** Any edge carries a len attr (C: agattr_text(g, AGEDGE, "len")). */
|
|
11
|
+
export declare function graphHasLen(g: Graph): boolean;
|
|
12
|
+
/** The visit state C keeps in `ND_mark` / `ND_onstack`. */
|
|
13
|
+
interface DfsState {
|
|
14
|
+
readonly mode: number;
|
|
15
|
+
readonly mark: Uint8Array;
|
|
16
|
+
readonly onstack: Uint8Array;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* dfs for breaking cycles in vtxdata. C recurses; the recursion is replaced by
|
|
20
|
+
* an explicit stack of (vertex, next edge slot) frames, which visits in the
|
|
21
|
+
* same order but cannot overflow the JS stack on a long path.
|
|
22
|
+
* @see lib/neatogen/neatoinit.c:dfsCycle
|
|
23
|
+
*/
|
|
24
|
+
export declare function dfsCycle(graph: DirectedVtxData[], start: number, st: DfsState): void;
|
|
25
|
+
/**
|
|
26
|
+
* do a dfs of the vtx_data, looking for cycles, reversing edges. C keeps the
|
|
27
|
+
* visit state in `ND_mark`/`ND_onstack`; it is local to this pass here.
|
|
28
|
+
* @see lib/neatogen/neatoinit.c:acyclic
|
|
29
|
+
*/
|
|
30
|
+
export declare function acyclic(graph: DirectedVtxData[], nv: number, mode: number): void;
|
|
31
|
+
/**
|
|
32
|
+
* C makeGraphData's vtx_data: per node out-edges then in-edges (agfstedge order), self at
|
|
33
|
+
* index 0, duplicate neighbours merged (len keeps the max). ewgts: lens (default 1.0) if any
|
|
34
|
+
* len attr, else 1.0 under haveDir (hier/ipsep), else absent (C NULL). Under haveDir `edists`
|
|
35
|
+
* holds the direction of each first-seen edge (-1 tail, +1 head, 0 for dir=none) and the
|
|
36
|
+
* graph is then made acyclic. eweights (haveWt) are not built: nothing on a supported path
|
|
37
|
+
* reads them.
|
|
38
|
+
* @see lib/neatogen/neatoinit.c:makeGraphData
|
|
39
|
+
* @see lib/neatogen/stuff.c:setEdgeLen
|
|
40
|
+
*/
|
|
41
|
+
export declare function makeGraphDataC(g: Graph, nodeList: Node[], haveLen: boolean, haveDir: boolean, mode?: number): DirectedVtxData[];
|
|
42
|
+
export {};
|
|
43
|
+
//# sourceMappingURL=make-graph-data.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"make-graph-data.d.ts","sourceRoot":"","sources":["../../../src/layout/neato/make-graph-data.ts"],"names":[],"mappings":"AACA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAY5D,sEAAsE;AACtE,wBAAgB,WAAW,CAAC,CAAC,EAAE,KAAK,GAAG,OAAO,CAK7C;AAWD,2DAA2D;AAC3D,UAAU,QAAQ;IAChB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;CAC9B;AAkBD;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,eAAe,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,GAAG,IAAI,CAwBpF;AAED;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,eAAe,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAMhF;AAuCD;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAC5B,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,GAAE,MAAW,GAChF,eAAe,EAAE,CAQnB"}
|
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
import type { VtxData } from './dijkstra.js';
|
|
2
|
+
/**
|
|
3
|
+
* fmadd: round(a * b + c) once. `common/fma` splits operands (Dekker), which
|
|
4
|
+
* turns an infinite operand into NaN where the hardware fmadd gives inf, so
|
|
5
|
+
* non-finite products and addends take the plain expression (exact then).
|
|
6
|
+
*/
|
|
7
|
+
export declare function fma(a: number, b: number, c: number): number;
|
|
1
8
|
/** Subtract the mean (double precision). @see matrix_ops.c:orthog1 */
|
|
2
9
|
export declare function orthog1(n: number, vec: Float64Array): void;
|
|
3
10
|
/** Subtract the mean (float precision). @see matrix_ops.c:orthog1f */
|
|
@@ -25,4 +32,43 @@ export declare function invertVec(n: number, vec: Float32Array): void;
|
|
|
25
32
|
export declare function sqrtVecF(n: number, source: Float32Array, target: Float32Array): void;
|
|
26
33
|
/** vec = 1/sqrtf(vec) where vec > 0. @see matrix_ops.c:invert_sqrt_vec */
|
|
27
34
|
export declare function invertSqrtVec(n: number, vec: Float32Array): void;
|
|
35
|
+
/** Block width of a call site compiled as a scalar loop (all fmadd). */
|
|
36
|
+
export declare const BLOCK_NONE = 1;
|
|
37
|
+
/**
|
|
38
|
+
* Sum of `a[i] * b[i]` over `n` terms, the first `block * floor(n / block)`
|
|
39
|
+
* unfused and the rest fused, as the oracle's inlined copy of the site.
|
|
40
|
+
* @see lib/neatogen/matrix_ops.c:vectors_inner_product
|
|
41
|
+
*/
|
|
42
|
+
export declare function innerProduct(n: number, v1: Float64Array, v2: Float64Array, block: number): number;
|
|
43
|
+
/** vec1[0..end] += fac * vec2[0..end] (fmadd). @see lib/neatogen/matrix_ops.c:scadd */
|
|
44
|
+
export declare function scadd(vec1: Float64Array, end: number, fac: number, vec2: Float64Array): void;
|
|
45
|
+
/** 2-norm of vec[0..end]. @see lib/neatogen/matrix_ops.c:norm */
|
|
46
|
+
export declare function norm(vec: Float64Array, end: number, block: number): number;
|
|
47
|
+
/** result = vector * alpha (aliasing allowed). @see lib/neatogen/matrix_ops.c:vectors_scalar_mult */
|
|
48
|
+
export declare function vectorsScalarMult(n: number, vector: Float64Array, alpha: number, result: Float64Array): void;
|
|
49
|
+
/** dest = source. @see lib/neatogen/matrix_ops.c:copy_vector */
|
|
50
|
+
export declare function copyVector(n: number, source: Float64Array, dest: Float64Array): void;
|
|
51
|
+
/** result = v1 + v2 (aliasing allowed). @see lib/neatogen/matrix_ops.c:vectors_addition */
|
|
52
|
+
export declare function vectorsAddition(n: number, v1: Float64Array, v2: Float64Array, result: Float64Array): void;
|
|
53
|
+
/** result = v1 - v2 (aliasing allowed). @see lib/neatogen/matrix_ops.c:vectors_subtraction */
|
|
54
|
+
export declare function vectorsSubtraction(n: number, v1: Float64Array, v2: Float64Array, result: Float64Array): void;
|
|
55
|
+
/** Largest |vector[i]| (start -1e50). @see lib/neatogen/matrix_ops.c:max_abs */
|
|
56
|
+
export declare function maxAbs(n: number, vector: Float64Array): number;
|
|
57
|
+
/**
|
|
58
|
+
* result = matrix * vector for an n x n float** matrix and double vector;
|
|
59
|
+
* each row's reduction is blocked as the call site was compiled.
|
|
60
|
+
* @see lib/neatogen/matrix_ops.c:right_mult_with_vector_f
|
|
61
|
+
*/
|
|
62
|
+
export declare function rightMultWithVectorF(matrix: readonly Float32Array[], n: number, vector: Float64Array, result: Float64Array, block: number): void;
|
|
63
|
+
/**
|
|
64
|
+
* result = matrix * vector over the sparse `vtx_data` rows (`ewgts` weights).
|
|
65
|
+
* The loop is scalar in the oracle: every term is an fmadd.
|
|
66
|
+
* @see lib/neatogen/matrix_ops.c:right_mult_with_vector
|
|
67
|
+
*/
|
|
68
|
+
export declare function rightMultWithVector(matrix: VtxData[], n: number, vector: Float64Array, result: Float64Array): void;
|
|
69
|
+
/**
|
|
70
|
+
* `vec[i] = rand() % RANGE`, then orthogonalize against 1.
|
|
71
|
+
* @see lib/neatogen/matrix_ops.c:init_vec_orth1
|
|
72
|
+
*/
|
|
73
|
+
export declare function initVecOrth1(n: number, vec: Float64Array): void;
|
|
28
74
|
//# sourceMappingURL=matrix-ops.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"matrix-ops.d.ts","sourceRoot":"","sources":["../../../src/layout/neato/matrix-ops.ts"],"names":[],"mappings":"AAcA,sEAAsE;AACtE,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY,GAAG,IAAI,CAK1D;AAED,sEAAsE;AACtE,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY,GAAG,IAAI,CAK3D;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,GACrE,IAAI,CAYN;AAED,+DAA+D;AAC/D,wBAAgB,mBAAmB,CACjC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,GAClE,IAAI,CAEN;AAED,+EAA+E;AAC/E,wBAAgB,oBAAoB,CAClC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,YAAY,GAC3D,IAAI,CAGN;AAED,8FAA8F;AAC9F,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,YAAY,GAAG,MAAM,CAI1F;AAED,qCAAqC;AACrC,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE,YAAY,GAAG,IAAI,CAEjF;AAED,iCAAiC;AACjC,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY,GAAG,MAAM,CAO5D;AAED,mCAAmC;AACnC,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY,GAAG,IAAI,CAE5D;AAED,mCAAmC;AACnC,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY,GAAG,IAAI,CAI5D;AAED,4EAA4E;AAC5E,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,GAAG,IAAI,CAIpF;AAED,0EAA0E;AAC1E,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY,GAAG,IAAI,CAIhE"}
|
|
1
|
+
{"version":3,"file":"matrix-ops.d.ts","sourceRoot":"","sources":["../../../src/layout/neato/matrix-ops.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { VtxData } from './dijkstra.js';
|
|
2
|
+
/** `vtx_data` with the `DIGCOLA` `edists` field (`int8_t *`, `NULL` when absent). */
|
|
3
|
+
export interface DirectedVtxData extends VtxData {
|
|
4
|
+
edists?: ArrayLike<number> | null;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Build `b` with `-b[i] = sum_j -w_ij * delta_ij` (the balance vector; the
|
|
8
|
+
* matrix is -L, so `-Lx = -b` is solved). `b` is left untouched when node 0 has
|
|
9
|
+
* no `edists` (C: `continue`, `b` stays calloc-zero).
|
|
10
|
+
* @see lib/neatogen/opt_arrangement.c:construct_b
|
|
11
|
+
*/
|
|
12
|
+
export declare function constructB(graph: DirectedVtxData[], n: number, b: Float64Array): void;
|
|
13
|
+
/**
|
|
14
|
+
* Find the y coordinates of a directed graph by solving `L*y = b`. Starts from
|
|
15
|
+
* a `rand()`-seeded vector, so the result depends on the libc rand stream
|
|
16
|
+
* position (`common/crand`). Returns 1 when conjugate gradient fails.
|
|
17
|
+
* @see lib/neatogen/opt_arrangement.c:compute_y_coords
|
|
18
|
+
*/
|
|
19
|
+
export declare function computeYCoords(graph: VtxData[], n: number, yCoords: Float64Array, maxIterations: number): 0 | 1;
|
|
20
|
+
//# sourceMappingURL=opt-arrangement.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"opt-arrangement.d.ts","sourceRoot":"","sources":["../../../src/layout/neato/opt-arrangement.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAG7C,qFAAqF;AACrF,MAAM,WAAW,eAAgB,SAAQ,OAAO;IAC9C,MAAM,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;CACnC;AAKD;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,YAAY,GAAG,IAAI,CAWrF;AAmBD;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,OAAO,EAAE,EAChB,CAAC,EAAE,MAAM,EACT,OAAO,EAAE,YAAY,EACrB,aAAa,EAAE,MAAM,GACpB,CAAC,GAAG,CAAC,CAgBP"}
|