@knowvah/dot-engine 0.1.0

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.
Files changed (986) hide show
  1. package/LICENSE +277 -0
  2. package/README.md +292 -0
  3. package/dist/api/builder.d.ts +78 -0
  4. package/dist/api/builder.d.ts.map +1 -0
  5. package/dist/api/edge-ops.d.ts +45 -0
  6. package/dist/api/edge-ops.d.ts.map +1 -0
  7. package/dist/api/geometry.d.ts +159 -0
  8. package/dist/api/geometry.d.ts.map +1 -0
  9. package/dist/api/index.d.ts +24 -0
  10. package/dist/api/index.d.ts.map +1 -0
  11. package/dist/api.js +719 -0
  12. package/dist/api.js.map +7 -0
  13. package/dist/bundle.js +101 -0
  14. package/dist/cdt/bag.d.ts +58 -0
  15. package/dist/cdt/bag.d.ts.map +1 -0
  16. package/dist/cdt/hash-core.d.ts +40 -0
  17. package/dist/cdt/hash-core.d.ts.map +1 -0
  18. package/dist/cdt/hash.d.ts +74 -0
  19. package/dist/cdt/hash.d.ts.map +1 -0
  20. package/dist/cdt/index.d.ts +16 -0
  21. package/dist/cdt/index.d.ts.map +1 -0
  22. package/dist/cdt/splay-core.d.ts +78 -0
  23. package/dist/cdt/splay-core.d.ts.map +1 -0
  24. package/dist/cdt/splay.d.ts +63 -0
  25. package/dist/cdt/splay.d.ts.map +1 -0
  26. package/dist/cdt/strhash.d.ts +26 -0
  27. package/dist/cdt/strhash.d.ts.map +1 -0
  28. package/dist/cdt/types.d.ts +11 -0
  29. package/dist/cdt/types.d.ts.map +1 -0
  30. package/dist/common/arith.d.ts +35 -0
  31. package/dist/common/arith.d.ts.map +1 -0
  32. package/dist/common/arm-pow-data.d.ts +17 -0
  33. package/dist/common/arm-pow-data.d.ts.map +1 -0
  34. package/dist/common/arm-pow.d.ts +12 -0
  35. package/dist/common/arm-pow.d.ts.map +1 -0
  36. package/dist/common/arrows-constants.d.ts +97 -0
  37. package/dist/common/arrows-constants.d.ts.map +1 -0
  38. package/dist/common/arrows-geometry.d.ts +24 -0
  39. package/dist/common/arrows-geometry.d.ts.map +1 -0
  40. package/dist/common/arrows-miter.d.ts +24 -0
  41. package/dist/common/arrows-miter.d.ts.map +1 -0
  42. package/dist/common/arrows-shapes-poly.d.ts +24 -0
  43. package/dist/common/arrows-shapes-poly.d.ts.map +1 -0
  44. package/dist/common/arrows-shapes-util.d.ts +77 -0
  45. package/dist/common/arrows-shapes-util.d.ts.map +1 -0
  46. package/dist/common/arrows-shapes.d.ts +48 -0
  47. package/dist/common/arrows-shapes.d.ts.map +1 -0
  48. package/dist/common/arrows-types.d.ts +59 -0
  49. package/dist/common/arrows-types.d.ts.map +1 -0
  50. package/dist/common/arrows.d.ts +69 -0
  51. package/dist/common/arrows.d.ts.map +1 -0
  52. package/dist/common/color.d.ts +66 -0
  53. package/dist/common/color.d.ts.map +1 -0
  54. package/dist/common/colorData.d.ts +10 -0
  55. package/dist/common/colorData.d.ts.map +1 -0
  56. package/dist/common/compass-port.d.ts +39 -0
  57. package/dist/common/compass-port.d.ts.map +1 -0
  58. package/dist/common/crand.d.ts +42 -0
  59. package/dist/common/crand.d.ts.map +1 -0
  60. package/dist/common/edge-label-init.d.ts +51 -0
  61. package/dist/common/edge-label-init.d.ts.map +1 -0
  62. package/dist/common/edge-offset.d.ts +66 -0
  63. package/dist/common/edge-offset.d.ts.map +1 -0
  64. package/dist/common/ellipse-wedge.d.ts +10 -0
  65. package/dist/common/ellipse-wedge.d.ts.map +1 -0
  66. package/dist/common/emit-types.d.ts +255 -0
  67. package/dist/common/emit-types.d.ts.map +1 -0
  68. package/dist/common/fma.d.ts +10 -0
  69. package/dist/common/fma.d.ts.map +1 -0
  70. package/dist/common/graph-init.d.ts +61 -0
  71. package/dist/common/graph-init.d.ts.map +1 -0
  72. package/dist/common/html-entities.d.ts +17 -0
  73. package/dist/common/html-entities.d.ts.map +1 -0
  74. package/dist/common/html-string.d.ts +14 -0
  75. package/dist/common/html-string.d.ts.map +1 -0
  76. package/dist/common/htmltable-emit-fill.d.ts +84 -0
  77. package/dist/common/htmltable-emit-fill.d.ts.map +1 -0
  78. package/dist/common/htmltable-emit-rules.d.ts +79 -0
  79. package/dist/common/htmltable-emit-rules.d.ts.map +1 -0
  80. package/dist/common/htmltable-emit.d.ts +63 -0
  81. package/dist/common/htmltable-emit.d.ts.map +1 -0
  82. package/dist/common/htmltable-lex.d.ts +16 -0
  83. package/dist/common/htmltable-lex.d.ts.map +1 -0
  84. package/dist/common/htmltable-parse.d.ts +37 -0
  85. package/dist/common/htmltable-parse.d.ts.map +1 -0
  86. package/dist/common/htmltable-port.d.ts +15 -0
  87. package/dist/common/htmltable-port.d.ts.map +1 -0
  88. package/dist/common/htmltable-pos-runs.d.ts +88 -0
  89. package/dist/common/htmltable-pos-runs.d.ts.map +1 -0
  90. package/dist/common/htmltable-pos.d.ts +192 -0
  91. package/dist/common/htmltable-pos.d.ts.map +1 -0
  92. package/dist/common/htmltable-types.d.ts +237 -0
  93. package/dist/common/htmltable-types.d.ts.map +1 -0
  94. package/dist/common/htmltable.d.ts +74 -0
  95. package/dist/common/htmltable.d.ts.map +1 -0
  96. package/dist/common/layers.d.ts +20 -0
  97. package/dist/common/layers.d.ts.map +1 -0
  98. package/dist/common/make-label.d.ts +60 -0
  99. package/dist/common/make-label.d.ts.map +1 -0
  100. package/dist/common/multicolor.d.ts +46 -0
  101. package/dist/common/multicolor.d.ts.map +1 -0
  102. package/dist/common/nodeinit.d.ts +45 -0
  103. package/dist/common/nodeinit.d.ts.map +1 -0
  104. package/dist/common/poly-gencode.d.ts +40 -0
  105. package/dist/common/poly-gencode.d.ts.map +1 -0
  106. package/dist/common/poly-init.d.ts +51 -0
  107. package/dist/common/poly-init.d.ts.map +1 -0
  108. package/dist/common/poly-inside.d.ts +37 -0
  109. package/dist/common/poly-inside.d.ts.map +1 -0
  110. package/dist/common/poly-shapes-cases.d.ts +31 -0
  111. package/dist/common/poly-shapes-cases.d.ts.map +1 -0
  112. package/dist/common/poly-shapes-cases2.d.ts +25 -0
  113. package/dist/common/poly-shapes-cases2.d.ts.map +1 -0
  114. package/dist/common/poly-shapes-util.d.ts +42 -0
  115. package/dist/common/poly-shapes-util.d.ts.map +1 -0
  116. package/dist/common/poly-shapes.d.ts +39 -0
  117. package/dist/common/poly-shapes.d.ts.map +1 -0
  118. package/dist/common/poly-sizing.d.ts +189 -0
  119. package/dist/common/poly-sizing.d.ts.map +1 -0
  120. package/dist/common/poly-vertices.d.ts +42 -0
  121. package/dist/common/poly-vertices.d.ts.map +1 -0
  122. package/dist/common/postproc.d.ts +49 -0
  123. package/dist/common/postproc.d.ts.map +1 -0
  124. package/dist/common/ps-fontalias.d.ts +36 -0
  125. package/dist/common/ps-fontalias.d.ts.map +1 -0
  126. package/dist/common/random.d.ts +8 -0
  127. package/dist/common/random.d.ts.map +1 -0
  128. package/dist/common/record-port.d.ts +34 -0
  129. package/dist/common/record-port.d.ts.map +1 -0
  130. package/dist/common/record.d.ts +105 -0
  131. package/dist/common/record.d.ts.map +1 -0
  132. package/dist/common/shapeData.d.ts +186 -0
  133. package/dist/common/shapeData.d.ts.map +1 -0
  134. package/dist/common/shapes.d.ts +36 -0
  135. package/dist/common/shapes.d.ts.map +1 -0
  136. package/dist/common/spline-midpoint.d.ts +31 -0
  137. package/dist/common/spline-midpoint.d.ts.map +1 -0
  138. package/dist/common/splines-clip.d.ts +21 -0
  139. package/dist/common/splines-clip.d.ts.map +1 -0
  140. package/dist/common/splines-constants.d.ts +42 -0
  141. package/dist/common/splines-constants.d.ts.map +1 -0
  142. package/dist/common/splines-geom.d.ts +51 -0
  143. package/dist/common/splines-geom.d.ts.map +1 -0
  144. package/dist/common/splines-path-begin.d.ts +17 -0
  145. package/dist/common/splines-path-begin.d.ts.map +1 -0
  146. package/dist/common/splines-path-end.d.ts +17 -0
  147. package/dist/common/splines-path-end.d.ts.map +1 -0
  148. package/dist/common/splines-path-shared.d.ts +53 -0
  149. package/dist/common/splines-path-shared.d.ts.map +1 -0
  150. package/dist/common/splines-routespl.d.ts +40 -0
  151. package/dist/common/splines-routespl.d.ts.map +1 -0
  152. package/dist/common/splines-selfedge.d.ts +21 -0
  153. package/dist/common/splines-selfedge.d.ts.map +1 -0
  154. package/dist/common/splines.d.ts +18 -0
  155. package/dist/common/splines.d.ts.map +1 -0
  156. package/dist/common/style-resolve.d.ts +197 -0
  157. package/dist/common/style-resolve.d.ts.map +1 -0
  158. package/dist/common/subst.d.ts +31 -0
  159. package/dist/common/subst.d.ts.map +1 -0
  160. package/dist/common/taper.d.ts +23 -0
  161. package/dist/common/taper.d.ts.map +1 -0
  162. package/dist/common/textmeasure-factory.d.ts +33 -0
  163. package/dist/common/textmeasure-factory.d.ts.map +1 -0
  164. package/dist/common/textmeasure-lookup.d.ts +17 -0
  165. package/dist/common/textmeasure-lookup.d.ts.map +1 -0
  166. package/dist/common/textmeasure-lut-data-a.d.ts +13 -0
  167. package/dist/common/textmeasure-lut-data-a.d.ts.map +1 -0
  168. package/dist/common/textmeasure-lut-data-b.d.ts +12 -0
  169. package/dist/common/textmeasure-lut-data-b.d.ts.map +1 -0
  170. package/dist/common/textmeasure-lut-data-c.d.ts +13 -0
  171. package/dist/common/textmeasure-lut-data-c.d.ts.map +1 -0
  172. package/dist/common/textmeasure-lut-data.d.ts +27 -0
  173. package/dist/common/textmeasure-lut-data.d.ts.map +1 -0
  174. package/dist/common/textmeasure.d.ts +120 -0
  175. package/dist/common/textmeasure.d.ts.map +1 -0
  176. package/dist/common/types.d.ts +316 -0
  177. package/dist/common/types.d.ts.map +1 -0
  178. package/dist/common/xlabels-place.d.ts +125 -0
  179. package/dist/common/xlabels-place.d.ts.map +1 -0
  180. package/dist/debug.d.ts +58 -0
  181. package/dist/debug.d.ts.map +1 -0
  182. package/dist/errors.d.ts +63 -0
  183. package/dist/errors.d.ts.map +1 -0
  184. package/dist/gvc/anchor.d.ts +86 -0
  185. package/dist/gvc/anchor.d.ts.map +1 -0
  186. package/dist/gvc/context.d.ts +177 -0
  187. package/dist/gvc/context.d.ts.map +1 -0
  188. package/dist/gvc/default-context.d.ts +20 -0
  189. package/dist/gvc/default-context.d.ts.map +1 -0
  190. package/dist/gvc/device-cluster.d.ts +25 -0
  191. package/dist/gvc/device-cluster.d.ts.map +1 -0
  192. package/dist/gvc/device.d.ts +99 -0
  193. package/dist/gvc/device.d.ts.map +1 -0
  194. package/dist/gvc/edge-labels.d.ts +10 -0
  195. package/dist/gvc/edge-labels.d.ts.map +1 -0
  196. package/dist/gvc/emit-walk.d.ts +22 -0
  197. package/dist/gvc/emit-walk.d.ts.map +1 -0
  198. package/dist/gvc/image-resolver.d.ts +44 -0
  199. package/dist/gvc/image-resolver.d.ts.map +1 -0
  200. package/dist/gvc/job.d.ts +234 -0
  201. package/dist/gvc/job.d.ts.map +1 -0
  202. package/dist/gvc/textlayout.d.ts +33 -0
  203. package/dist/gvc/textlayout.d.ts.map +1 -0
  204. package/dist/gvc/textspan-emit.d.ts +41 -0
  205. package/dist/gvc/textspan-emit.d.ts.map +1 -0
  206. package/dist/gvc/usershape.d.ts +25 -0
  207. package/dist/gvc/usershape.d.ts.map +1 -0
  208. package/dist/gvc/viewport.d.ts +71 -0
  209. package/dist/gvc/viewport.d.ts.map +1 -0
  210. package/dist/index.d.ts +54 -0
  211. package/dist/index.d.ts.map +1 -0
  212. package/dist/index.js +52862 -0
  213. package/dist/index.js.map +7 -0
  214. package/dist/label/index.d.ts +74 -0
  215. package/dist/label/index.d.ts.map +1 -0
  216. package/dist/label/node.d.ts +108 -0
  217. package/dist/label/node.d.ts.map +1 -0
  218. package/dist/label/rectangle.d.ts +60 -0
  219. package/dist/label/rectangle.d.ts.map +1 -0
  220. package/dist/label/split-q.d.ts +13 -0
  221. package/dist/label/split-q.d.ts.map +1 -0
  222. package/dist/label/xlabels-geom.d.ts +46 -0
  223. package/dist/label/xlabels-geom.d.ts.map +1 -0
  224. package/dist/label/xlabels-intersect.d.ts +79 -0
  225. package/dist/label/xlabels-intersect.d.ts.map +1 -0
  226. package/dist/label/xlabels.d.ts +67 -0
  227. package/dist/label/xlabels.d.ts.map +1 -0
  228. package/dist/layout/circo/blockpath.d.ts +120 -0
  229. package/dist/layout/circo/blockpath.d.ts.map +1 -0
  230. package/dist/layout/circo/blocks.d.ts +135 -0
  231. package/dist/layout/circo/blocks.d.ts.map +1 -0
  232. package/dist/layout/circo/blocktree.d.ts +51 -0
  233. package/dist/layout/circo/blocktree.d.ts.map +1 -0
  234. package/dist/layout/circo/circular.d.ts +59 -0
  235. package/dist/layout/circo/circular.d.ts.map +1 -0
  236. package/dist/layout/circo/index.d.ts +35 -0
  237. package/dist/layout/circo/index.d.ts.map +1 -0
  238. package/dist/layout/circo/init.d.ts +50 -0
  239. package/dist/layout/circo/init.d.ts.map +1 -0
  240. package/dist/layout/circo/position-helpers.d.ts +33 -0
  241. package/dist/layout/circo/position-helpers.d.ts.map +1 -0
  242. package/dist/layout/circo/position.d.ts +66 -0
  243. package/dist/layout/circo/position.d.ts.map +1 -0
  244. package/dist/layout/dot/acyclic.d.ts +8 -0
  245. package/dist/layout/dot/acyclic.d.ts.map +1 -0
  246. package/dist/layout/dot/aspect.d.ts +17 -0
  247. package/dist/layout/dot/aspect.d.ts.map +1 -0
  248. package/dist/layout/dot/classify.d.ts +52 -0
  249. package/dist/layout/dot/classify.d.ts.map +1 -0
  250. package/dist/layout/dot/cluster-path.d.ts +38 -0
  251. package/dist/layout/dot/cluster-path.d.ts.map +1 -0
  252. package/dist/layout/dot/cluster.d.ts +102 -0
  253. package/dist/layout/dot/cluster.d.ts.map +1 -0
  254. package/dist/layout/dot/compound-clip.d.ts +69 -0
  255. package/dist/layout/dot/compound-clip.d.ts.map +1 -0
  256. package/dist/layout/dot/compound-geom.d.ts +115 -0
  257. package/dist/layout/dot/compound-geom.d.ts.map +1 -0
  258. package/dist/layout/dot/compound.d.ts +56 -0
  259. package/dist/layout/dot/compound.d.ts.map +1 -0
  260. package/dist/layout/dot/conc.d.ts +88 -0
  261. package/dist/layout/dot/conc.d.ts.map +1 -0
  262. package/dist/layout/dot/decomp.d.ts +66 -0
  263. package/dist/layout/dot/decomp.d.ts.map +1 -0
  264. package/dist/layout/dot/edge-order.d.ts +27 -0
  265. package/dist/layout/dot/edge-order.d.ts.map +1 -0
  266. package/dist/layout/dot/edge-route-arrow.d.ts +46 -0
  267. package/dist/layout/dot/edge-route-arrow.d.ts.map +1 -0
  268. package/dist/layout/dot/edge-route-boxes.d.ts +75 -0
  269. package/dist/layout/dot/edge-route-boxes.d.ts.map +1 -0
  270. package/dist/layout/dot/edge-route-chain.d.ts +67 -0
  271. package/dist/layout/dot/edge-route-chain.d.ts.map +1 -0
  272. package/dist/layout/dot/edge-route-clip.d.ts +88 -0
  273. package/dist/layout/dot/edge-route-clip.d.ts.map +1 -0
  274. package/dist/layout/dot/edge-route-faithful.d.ts +94 -0
  275. package/dist/layout/dot/edge-route-faithful.d.ts.map +1 -0
  276. package/dist/layout/dot/edge-route-geom.d.ts +43 -0
  277. package/dist/layout/dot/edge-route-geom.d.ts.map +1 -0
  278. package/dist/layout/dot/edge-route-helpers.d.ts +50 -0
  279. package/dist/layout/dot/edge-route-helpers.d.ts.map +1 -0
  280. package/dist/layout/dot/edge-route-poly.d.ts +48 -0
  281. package/dist/layout/dot/edge-route-poly.d.ts.map +1 -0
  282. package/dist/layout/dot/edge-route-rank.d.ts +57 -0
  283. package/dist/layout/dot/edge-route-rank.d.ts.map +1 -0
  284. package/dist/layout/dot/edge-route-routing.d.ts +99 -0
  285. package/dist/layout/dot/edge-route-routing.d.ts.map +1 -0
  286. package/dist/layout/dot/edge-route.d.ts +57 -0
  287. package/dist/layout/dot/edge-route.d.ts.map +1 -0
  288. package/dist/layout/dot/fastgr.d.ts +147 -0
  289. package/dist/layout/dot/fastgr.d.ts.map +1 -0
  290. package/dist/layout/dot/flat-utils.d.ts +21 -0
  291. package/dist/layout/dot/flat-utils.d.ts.map +1 -0
  292. package/dist/layout/dot/flat.d.ts +152 -0
  293. package/dist/layout/dot/flat.d.ts.map +1 -0
  294. package/dist/layout/dot/graph-label.d.ts +18 -0
  295. package/dist/layout/dot/graph-label.d.ts.map +1 -0
  296. package/dist/layout/dot/index.d.ts +128 -0
  297. package/dist/layout/dot/index.d.ts.map +1 -0
  298. package/dist/layout/dot/init.d.ts +93 -0
  299. package/dist/layout/dot/init.d.ts.map +1 -0
  300. package/dist/layout/dot/label-order.d.ts +45 -0
  301. package/dist/layout/dot/label-order.d.ts.map +1 -0
  302. package/dist/layout/dot/mincross-build.d.ts +52 -0
  303. package/dist/layout/dot/mincross-build.d.ts.map +1 -0
  304. package/dist/layout/dot/mincross-cross.d.ts +80 -0
  305. package/dist/layout/dot/mincross-cross.d.ts.map +1 -0
  306. package/dist/layout/dot/mincross-flat.d.ts +27 -0
  307. package/dist/layout/dot/mincross-flat.d.ts.map +1 -0
  308. package/dist/layout/dot/mincross-order.d.ts +89 -0
  309. package/dist/layout/dot/mincross-order.d.ts.map +1 -0
  310. package/dist/layout/dot/mincross-utils.d.ts +60 -0
  311. package/dist/layout/dot/mincross-utils.d.ts.map +1 -0
  312. package/dist/layout/dot/mincross.d.ts +75 -0
  313. package/dist/layout/dot/mincross.d.ts.map +1 -0
  314. package/dist/layout/dot/ns-core.d.ts +37 -0
  315. package/dist/layout/dot/ns-core.d.ts.map +1 -0
  316. package/dist/layout/dot/ns-range.d.ts +17 -0
  317. package/dist/layout/dot/ns-range.d.ts.map +1 -0
  318. package/dist/layout/dot/ns-subtree.d.ts +78 -0
  319. package/dist/layout/dot/ns-subtree.d.ts.map +1 -0
  320. package/dist/layout/dot/ns.d.ts +86 -0
  321. package/dist/layout/dot/ns.d.ts.map +1 -0
  322. package/dist/layout/dot/ortho-adapter.d.ts +19 -0
  323. package/dist/layout/dot/ortho-adapter.d.ts.map +1 -0
  324. package/dist/layout/dot/pack-components.d.ts +100 -0
  325. package/dist/layout/dot/pack-components.d.ts.map +1 -0
  326. package/dist/layout/dot/position-aux.d.ts +110 -0
  327. package/dist/layout/dot/position-aux.d.ts.map +1 -0
  328. package/dist/layout/dot/position-bbox.d.ts +57 -0
  329. package/dist/layout/dot/position-bbox.d.ts.map +1 -0
  330. package/dist/layout/dot/position-cluster.d.ts +48 -0
  331. package/dist/layout/dot/position-cluster.d.ts.map +1 -0
  332. package/dist/layout/dot/position-ycoords.d.ts +42 -0
  333. package/dist/layout/dot/position-ycoords.d.ts.map +1 -0
  334. package/dist/layout/dot/position.d.ts +47 -0
  335. package/dist/layout/dot/position.d.ts.map +1 -0
  336. package/dist/layout/dot/rank-dot2.d.ts +114 -0
  337. package/dist/layout/dot/rank-dot2.d.ts.map +1 -0
  338. package/dist/layout/dot/rank.d.ts +119 -0
  339. package/dist/layout/dot/rank.d.ts.map +1 -0
  340. package/dist/layout/dot/sameport.d.ts +70 -0
  341. package/dist/layout/dot/sameport.d.ts.map +1 -0
  342. package/dist/layout/dot/self-loop.d.ts +54 -0
  343. package/dist/layout/dot/self-loop.d.ts.map +1 -0
  344. package/dist/layout/dot/splines-clone.d.ts +33 -0
  345. package/dist/layout/dot/splines-clone.d.ts.map +1 -0
  346. package/dist/layout/dot/splines-flat-labeled.d.ts +101 -0
  347. package/dist/layout/dot/splines-flat-labeled.d.ts.map +1 -0
  348. package/dist/layout/dot/splines-flat-multi.d.ts +35 -0
  349. package/dist/layout/dot/splines-flat-multi.d.ts.map +1 -0
  350. package/dist/layout/dot/splines-flat.d.ts +116 -0
  351. package/dist/layout/dot/splines-flat.d.ts.map +1 -0
  352. package/dist/layout/dot/splines-groups.d.ts +38 -0
  353. package/dist/layout/dot/splines-groups.d.ts.map +1 -0
  354. package/dist/layout/dot/splines-label.d.ts +105 -0
  355. package/dist/layout/dot/splines-label.d.ts.map +1 -0
  356. package/dist/layout/dot/splines-route-type.d.ts +28 -0
  357. package/dist/layout/dot/splines-route-type.d.ts.map +1 -0
  358. package/dist/layout/dot/splines-route.d.ts +99 -0
  359. package/dist/layout/dot/splines-route.d.ts.map +1 -0
  360. package/dist/layout/dot/splines.d.ts +157 -0
  361. package/dist/layout/dot/splines.d.ts.map +1 -0
  362. package/dist/layout/dot/straight-edges.d.ts +39 -0
  363. package/dist/layout/dot/straight-edges.d.ts.map +1 -0
  364. package/dist/layout/fdp/cluster-edges.d.ts +31 -0
  365. package/dist/layout/fdp/cluster-edges.d.ts.map +1 -0
  366. package/dist/layout/fdp/comp.d.ts +29 -0
  367. package/dist/layout/fdp/comp.d.ts.map +1 -0
  368. package/dist/layout/fdp/derive.d.ts +39 -0
  369. package/dist/layout/fdp/derive.d.ts.map +1 -0
  370. package/dist/layout/fdp/fdp-model.d.ts +101 -0
  371. package/dist/layout/fdp/fdp-model.d.ts.map +1 -0
  372. package/dist/layout/fdp/grid.d.ts +49 -0
  373. package/dist/layout/fdp/grid.d.ts.map +1 -0
  374. package/dist/layout/fdp/index.d.ts +36 -0
  375. package/dist/layout/fdp/index.d.ts.map +1 -0
  376. package/dist/layout/fdp/init.d.ts +26 -0
  377. package/dist/layout/fdp/init.d.ts.map +1 -0
  378. package/dist/layout/fdp/layout.d.ts +57 -0
  379. package/dist/layout/fdp/layout.d.ts.map +1 -0
  380. package/dist/layout/fdp/normalize.d.ts +18 -0
  381. package/dist/layout/fdp/normalize.d.ts.map +1 -0
  382. package/dist/layout/fdp/ports.d.ts +41 -0
  383. package/dist/layout/fdp/ports.d.ts.map +1 -0
  384. package/dist/layout/fdp/tlayout-init.d.ts +21 -0
  385. package/dist/layout/fdp/tlayout-init.d.ts.map +1 -0
  386. package/dist/layout/fdp/tlayout-parms.d.ts +98 -0
  387. package/dist/layout/fdp/tlayout-parms.d.ts.map +1 -0
  388. package/dist/layout/fdp/tlayout.d.ts +43 -0
  389. package/dist/layout/fdp/tlayout.d.ts.map +1 -0
  390. package/dist/layout/fdp/xlayout.d.ts +26 -0
  391. package/dist/layout/fdp/xlayout.d.ts.map +1 -0
  392. package/dist/layout/neato/bfs.d.ts +43 -0
  393. package/dist/layout/neato/bfs.d.ts.map +1 -0
  394. package/dist/layout/neato/cdt-surface.d.ts +16 -0
  395. package/dist/layout/neato/cdt-surface.d.ts.map +1 -0
  396. package/dist/layout/neato/conjgrad.d.ts +61 -0
  397. package/dist/layout/neato/conjgrad.d.ts.map +1 -0
  398. package/dist/layout/neato/delaunay.d.ts +28 -0
  399. package/dist/layout/neato/delaunay.d.ts.map +1 -0
  400. package/dist/layout/neato/dijkstra.d.ts +80 -0
  401. package/dist/layout/neato/dijkstra.d.ts.map +1 -0
  402. package/dist/layout/neato/fdp-adjust.d.ts +31 -0
  403. package/dist/layout/neato/fdp-adjust.d.ts.map +1 -0
  404. package/dist/layout/neato/index.d.ts +58 -0
  405. package/dist/layout/neato/index.d.ts.map +1 -0
  406. package/dist/layout/neato/init.d.ts +207 -0
  407. package/dist/layout/neato/init.d.ts.map +1 -0
  408. package/dist/layout/neato/legal.d.ts +7 -0
  409. package/dist/layout/neato/legal.d.ts.map +1 -0
  410. package/dist/layout/neato/matrix-ops.d.ts +28 -0
  411. package/dist/layout/neato/matrix-ops.d.ts.map +1 -0
  412. package/dist/layout/neato/multispline-router.d.ts +80 -0
  413. package/dist/layout/neato/multispline-router.d.ts.map +1 -0
  414. package/dist/layout/neato/multispline.d.ts +24 -0
  415. package/dist/layout/neato/multispline.d.ts.map +1 -0
  416. package/dist/layout/neato/overlap-prism.d.ts +26 -0
  417. package/dist/layout/neato/overlap-prism.d.ts.map +1 -0
  418. package/dist/layout/neato/overlap.d.ts +85 -0
  419. package/dist/layout/neato/overlap.d.ts.map +1 -0
  420. package/dist/layout/neato/sc-adjust.d.ts +33 -0
  421. package/dist/layout/neato/sc-adjust.d.ts.map +1 -0
  422. package/dist/layout/neato/sep-factor.d.ts +41 -0
  423. package/dist/layout/neato/sep-factor.d.ts.map +1 -0
  424. package/dist/layout/neato/set-aspect.d.ts +33 -0
  425. package/dist/layout/neato/set-aspect.d.ts.map +1 -0
  426. package/dist/layout/neato/sgd.d.ts +166 -0
  427. package/dist/layout/neato/sgd.d.ts.map +1 -0
  428. package/dist/layout/neato/splines.d.ts +153 -0
  429. package/dist/layout/neato/splines.d.ts.map +1 -0
  430. package/dist/layout/neato/stress-kernel.d.ts +53 -0
  431. package/dist/layout/neato/stress-kernel.d.ts.map +1 -0
  432. package/dist/layout/neato/stress.d.ts +158 -0
  433. package/dist/layout/neato/stress.d.ts.map +1 -0
  434. package/dist/layout/osage/index.d.ts +158 -0
  435. package/dist/layout/osage/index.d.ts.map +1 -0
  436. package/dist/layout/osage/layout.d.ts +49 -0
  437. package/dist/layout/osage/layout.d.ts.map +1 -0
  438. package/dist/layout/osage/types.d.ts +28 -0
  439. package/dist/layout/osage/types.d.ts.map +1 -0
  440. package/dist/layout/pack/array-pack.d.ts +114 -0
  441. package/dist/layout/pack/array-pack.d.ts.map +1 -0
  442. package/dist/layout/pack/index.d.ts +157 -0
  443. package/dist/layout/pack/index.d.ts.map +1 -0
  444. package/dist/layout/pack/poly-pack.d.ts +126 -0
  445. package/dist/layout/pack/poly-pack.d.ts.map +1 -0
  446. package/dist/layout/pack/poly-place.d.ts +27 -0
  447. package/dist/layout/pack/poly-place.d.ts.map +1 -0
  448. package/dist/layout/pack/spiral-search.d.ts +18 -0
  449. package/dist/layout/pack/spiral-search.d.ts.map +1 -0
  450. package/dist/layout/pack/test-helpers.d.ts +7 -0
  451. package/dist/layout/pack/test-helpers.d.ts.map +1 -0
  452. package/dist/layout/pack/types.d.ts +74 -0
  453. package/dist/layout/pack/types.d.ts.map +1 -0
  454. package/dist/layout/patchwork/index.d.ts +136 -0
  455. package/dist/layout/patchwork/index.d.ts.map +1 -0
  456. package/dist/layout/patchwork/tree-map.d.ts +32 -0
  457. package/dist/layout/patchwork/tree-map.d.ts.map +1 -0
  458. package/dist/layout/patchwork/tree-node.d.ts +46 -0
  459. package/dist/layout/patchwork/tree-node.d.ts.map +1 -0
  460. package/dist/layout/sfdp/index.d.ts +39 -0
  461. package/dist/layout/sfdp/index.d.ts.map +1 -0
  462. package/dist/layout/sfdp/init.d.ts +61 -0
  463. package/dist/layout/sfdp/init.d.ts.map +1 -0
  464. package/dist/layout/sfdp/multilevel.d.ts +23 -0
  465. package/dist/layout/sfdp/multilevel.d.ts.map +1 -0
  466. package/dist/layout/sfdp/quadtree.d.ts +45 -0
  467. package/dist/layout/sfdp/quadtree.d.ts.map +1 -0
  468. package/dist/layout/sfdp/sparse-matrix-multiply.d.ts +34 -0
  469. package/dist/layout/sfdp/sparse-matrix-multiply.d.ts.map +1 -0
  470. package/dist/layout/sfdp/sparse-matrix.d.ts +101 -0
  471. package/dist/layout/sfdp/sparse-matrix.d.ts.map +1 -0
  472. package/dist/layout/sfdp/sparse-solve.d.ts +14 -0
  473. package/dist/layout/sfdp/sparse-solve.d.ts.map +1 -0
  474. package/dist/layout/sfdp/spring-driver.d.ts +18 -0
  475. package/dist/layout/sfdp/spring-driver.d.ts.map +1 -0
  476. package/dist/layout/sfdp/spring-electrical.d.ts +61 -0
  477. package/dist/layout/sfdp/spring-electrical.d.ts.map +1 -0
  478. package/dist/layout/twopi/circle.d.ts +83 -0
  479. package/dist/layout/twopi/circle.d.ts.map +1 -0
  480. package/dist/layout/twopi/index.d.ts +24 -0
  481. package/dist/layout/twopi/index.d.ts.map +1 -0
  482. package/dist/layout/twopi/init.d.ts +85 -0
  483. package/dist/layout/twopi/init.d.ts.map +1 -0
  484. package/dist/layout/twopi/pipeline.d.ts +37 -0
  485. package/dist/layout/twopi/pipeline.d.ts.map +1 -0
  486. package/dist/layout/twopi/twopi-test-helpers.d.ts +12 -0
  487. package/dist/layout/twopi/twopi-test-helpers.d.ts.map +1 -0
  488. package/dist/model/algData.d.ts +175 -0
  489. package/dist/model/algData.d.ts.map +1 -0
  490. package/dist/model/cgraph-ops.d.ts +86 -0
  491. package/dist/model/cgraph-ops.d.ts.map +1 -0
  492. package/dist/model/edge.d.ts +80 -0
  493. package/dist/model/edge.d.ts.map +1 -0
  494. package/dist/model/edgeInfo.d.ts +299 -0
  495. package/dist/model/edgeInfo.d.ts.map +1 -0
  496. package/dist/model/geom.d.ts +149 -0
  497. package/dist/model/geom.d.ts.map +1 -0
  498. package/dist/model/graph.d.ts +135 -0
  499. package/dist/model/graph.d.ts.map +1 -0
  500. package/dist/model/graphInfo.d.ts +418 -0
  501. package/dist/model/graphInfo.d.ts.map +1 -0
  502. package/dist/model/index.d.ts +10 -0
  503. package/dist/model/index.d.ts.map +1 -0
  504. package/dist/model/layoutParams.d.ts +85 -0
  505. package/dist/model/layoutParams.d.ts.map +1 -0
  506. package/dist/model/node.d.ts +101 -0
  507. package/dist/model/node.d.ts.map +1 -0
  508. package/dist/model/nodeInfo.d.ts +278 -0
  509. package/dist/model/nodeInfo.d.ts.map +1 -0
  510. package/dist/model/rankEntry.d.ts +80 -0
  511. package/dist/model/rankEntry.d.ts.map +1 -0
  512. package/dist/ortho/chan-dict.d.ts +82 -0
  513. package/dist/ortho/chan-dict.d.ts.map +1 -0
  514. package/dist/ortho/fpq.d.ts +54 -0
  515. package/dist/ortho/fpq.d.ts.map +1 -0
  516. package/dist/ortho/index.d.ts +35 -0
  517. package/dist/ortho/index.d.ts.map +1 -0
  518. package/dist/ortho/maze-channels.d.ts +47 -0
  519. package/dist/ortho/maze-channels.d.ts.map +1 -0
  520. package/dist/ortho/maze.d.ts +27 -0
  521. package/dist/ortho/maze.d.ts.map +1 -0
  522. package/dist/ortho/ortho-parallel.d.ts +26 -0
  523. package/dist/ortho/ortho-parallel.d.ts.map +1 -0
  524. package/dist/ortho/ortho-route.d.ts +31 -0
  525. package/dist/ortho/ortho-route.d.ts.map +1 -0
  526. package/dist/ortho/partition.d.ts +34 -0
  527. package/dist/ortho/partition.d.ts.map +1 -0
  528. package/dist/ortho/rawgraph.d.ts +41 -0
  529. package/dist/ortho/rawgraph.d.ts.map +1 -0
  530. package/dist/ortho/sgraph.d.ts +74 -0
  531. package/dist/ortho/sgraph.d.ts.map +1 -0
  532. package/dist/ortho/trap-query.d.ts +32 -0
  533. package/dist/ortho/trap-query.d.ts.map +1 -0
  534. package/dist/ortho/trap-segment.d.ts +23 -0
  535. package/dist/ortho/trap-segment.d.ts.map +1 -0
  536. package/dist/ortho/trap-types.d.ts +91 -0
  537. package/dist/ortho/trap-types.d.ts.map +1 -0
  538. package/dist/ortho/trap-update.d.ts +12 -0
  539. package/dist/ortho/trap-update.d.ts.map +1 -0
  540. package/dist/ortho/trapezoid.d.ts +18 -0
  541. package/dist/ortho/trapezoid.d.ts.map +1 -0
  542. package/dist/ortho/types.d.ts +241 -0
  543. package/dist/ortho/types.d.ts.map +1 -0
  544. package/dist/parser/ast.d.ts +49 -0
  545. package/dist/parser/ast.d.ts.map +1 -0
  546. package/dist/parser/builder.d.ts +75 -0
  547. package/dist/parser/builder.d.ts.map +1 -0
  548. package/dist/parser/index.d.ts +97 -0
  549. package/dist/parser/index.d.ts.map +1 -0
  550. package/dist/pathplan/index.d.ts +8 -0
  551. package/dist/pathplan/index.d.ts.map +1 -0
  552. package/dist/pathplan/route.d.ts +9 -0
  553. package/dist/pathplan/route.d.ts.map +1 -0
  554. package/dist/pathplan/shortest.d.ts +5 -0
  555. package/dist/pathplan/shortest.d.ts.map +1 -0
  556. package/dist/pathplan/solvers.d.ts +5 -0
  557. package/dist/pathplan/solvers.d.ts.map +1 -0
  558. package/dist/pathplan/triang.d.ts +25 -0
  559. package/dist/pathplan/triang.d.ts.map +1 -0
  560. package/dist/pathplan/types.d.ts +22 -0
  561. package/dist/pathplan/types.d.ts.map +1 -0
  562. package/dist/pathplan/visibility.d.ts +13 -0
  563. package/dist/pathplan/visibility.d.ts.map +1 -0
  564. package/dist/pathplan/vispath.d.ts +9 -0
  565. package/dist/pathplan/vispath.d.ts.map +1 -0
  566. package/dist/rbtree/index.d.ts +127 -0
  567. package/dist/rbtree/index.d.ts.map +1 -0
  568. package/dist/render/color-resolve.d.ts +38 -0
  569. package/dist/render/color-resolve.d.ts.map +1 -0
  570. package/dist/render/dot.d.ts +379 -0
  571. package/dist/render/dot.d.ts.map +1 -0
  572. package/dist/render/index.d.ts +24 -0
  573. package/dist/render/index.d.ts.map +1 -0
  574. package/dist/render/json.d.ts +89 -0
  575. package/dist/render/json.d.ts.map +1 -0
  576. package/dist/render/map-test-helpers.d.ts +13 -0
  577. package/dist/render/map-test-helpers.d.ts.map +1 -0
  578. package/dist/render/map.d.ts +197 -0
  579. package/dist/render/map.d.ts.map +1 -0
  580. package/dist/render/public.d.ts +64 -0
  581. package/dist/render/public.d.ts.map +1 -0
  582. package/dist/render/svg-arrow-ops.d.ts +10 -0
  583. package/dist/render/svg-arrow-ops.d.ts.map +1 -0
  584. package/dist/render/svg-cluster.d.ts +9 -0
  585. package/dist/render/svg-cluster.d.ts.map +1 -0
  586. package/dist/render/svg-edge-ortho-radius.d.ts +31 -0
  587. package/dist/render/svg-edge-ortho-radius.d.ts.map +1 -0
  588. package/dist/render/svg-edge-split.d.ts +48 -0
  589. package/dist/render/svg-edge-split.d.ts.map +1 -0
  590. package/dist/render/svg-gradient.d.ts +46 -0
  591. package/dist/render/svg-gradient.d.ts.map +1 -0
  592. package/dist/render/svg-graph.d.ts +97 -0
  593. package/dist/render/svg-graph.d.ts.map +1 -0
  594. package/dist/render/svg-helpers.d.ts +122 -0
  595. package/dist/render/svg-helpers.d.ts.map +1 -0
  596. package/dist/render/svg-id.d.ts +28 -0
  597. package/dist/render/svg-id.d.ts.map +1 -0
  598. package/dist/render/svg-multicolor.d.ts +60 -0
  599. package/dist/render/svg-multicolor.d.ts.map +1 -0
  600. package/dist/render/svg-parallel-edge.d.ts +28 -0
  601. package/dist/render/svg-parallel-edge.d.ts.map +1 -0
  602. package/dist/render/svg-tapered-edge.d.ts +18 -0
  603. package/dist/render/svg-tapered-edge.d.ts.map +1 -0
  604. package/dist/render/svg.d.ts +104 -0
  605. package/dist/render/svg.d.ts.map +1 -0
  606. package/dist/render/xdot-public.d.ts +95 -0
  607. package/dist/render/xdot-public.d.ts.map +1 -0
  608. package/dist/render/xml-escape.d.ts +21 -0
  609. package/dist/render/xml-escape.d.ts.map +1 -0
  610. package/dist/render.js +52556 -0
  611. package/dist/render.js.map +7 -0
  612. package/dist/util/agxbuf.d.ts +72 -0
  613. package/dist/util/agxbuf.d.ts.map +1 -0
  614. package/dist/util/bsd-qsort.d.ts +22 -0
  615. package/dist/util/bsd-qsort.d.ts.map +1 -0
  616. package/dist/util/index.d.ts +11 -0
  617. package/dist/util/index.d.ts.map +1 -0
  618. package/dist/util/list.d.ts +47 -0
  619. package/dist/util/list.d.ts.map +1 -0
  620. package/dist/util/math.d.ts +54 -0
  621. package/dist/util/math.d.ts.map +1 -0
  622. package/dist/util/mt19937.d.ts +40 -0
  623. package/dist/util/mt19937.d.ts.map +1 -0
  624. package/dist/util/printf-round.d.ts +45 -0
  625. package/dist/util/printf-round.d.ts.map +1 -0
  626. package/dist/util/xml.d.ts +24 -0
  627. package/dist/util/xml.d.ts.map +1 -0
  628. package/dist/vpsc/Block.d.ts +116 -0
  629. package/dist/vpsc/Block.d.ts.map +1 -0
  630. package/dist/vpsc/Blocks.d.ts +66 -0
  631. package/dist/vpsc/Blocks.d.ts.map +1 -0
  632. package/dist/vpsc/Constraint.d.ts +51 -0
  633. package/dist/vpsc/Constraint.d.ts.map +1 -0
  634. package/dist/vpsc/HeapUtils.d.ts +37 -0
  635. package/dist/vpsc/HeapUtils.d.ts.map +1 -0
  636. package/dist/vpsc/Solver.d.ts +107 -0
  637. package/dist/vpsc/Solver.d.ts.map +1 -0
  638. package/dist/vpsc/SweepLine.d.ts +38 -0
  639. package/dist/vpsc/SweepLine.d.ts.map +1 -0
  640. package/dist/vpsc/Variable.d.ts +38 -0
  641. package/dist/vpsc/Variable.d.ts.map +1 -0
  642. package/dist/vpsc/index.d.ts +54 -0
  643. package/dist/vpsc/index.d.ts.map +1 -0
  644. package/dist/vpsc/sweepTypes.d.ts +29 -0
  645. package/dist/vpsc/sweepTypes.d.ts.map +1 -0
  646. package/dist/xdot/index.d.ts +6 -0
  647. package/dist/xdot/index.d.ts.map +1 -0
  648. package/dist/xdot/lex.d.ts +22 -0
  649. package/dist/xdot/lex.d.ts.map +1 -0
  650. package/dist/xdot/misc.d.ts +13 -0
  651. package/dist/xdot/misc.d.ts.map +1 -0
  652. package/dist/xdot/parse.d.ts +21 -0
  653. package/dist/xdot/parse.d.ts.map +1 -0
  654. package/dist/xdot/types.d.ts +152 -0
  655. package/dist/xdot/types.d.ts.map +1 -0
  656. package/package.json +113 -0
  657. package/src/api/builder.ts +277 -0
  658. package/src/api/edge-ops.ts +113 -0
  659. package/src/api/geometry.ts +307 -0
  660. package/src/api/index.ts +46 -0
  661. package/src/cdt/bag.ts +196 -0
  662. package/src/cdt/hash-core.ts +84 -0
  663. package/src/cdt/hash.ts +207 -0
  664. package/src/cdt/index.ts +17 -0
  665. package/src/cdt/splay-core.ts +301 -0
  666. package/src/cdt/splay.ts +191 -0
  667. package/src/cdt/strhash.ts +52 -0
  668. package/src/cdt/types.ts +13 -0
  669. package/src/common/arith.ts +39 -0
  670. package/src/common/arm-pow-data.ts +201 -0
  671. package/src/common/arm-pow.ts +296 -0
  672. package/src/common/arrows-constants.ts +175 -0
  673. package/src/common/arrows-geometry.ts +62 -0
  674. package/src/common/arrows-miter.ts +84 -0
  675. package/src/common/arrows-shapes-poly.ts +241 -0
  676. package/src/common/arrows-shapes-util.ts +162 -0
  677. package/src/common/arrows-shapes.ts +360 -0
  678. package/src/common/arrows-types.ts +59 -0
  679. package/src/common/arrows.ts +209 -0
  680. package/src/common/color.ts +340 -0
  681. package/src/common/colorData.ts +264 -0
  682. package/src/common/compass-port.ts +384 -0
  683. package/src/common/crand.ts +79 -0
  684. package/src/common/edge-label-init.ts +310 -0
  685. package/src/common/edge-offset.ts +140 -0
  686. package/src/common/ellipse-wedge.ts +189 -0
  687. package/src/common/emit-types.ts +332 -0
  688. package/src/common/fma.ts +52 -0
  689. package/src/common/graph-init.ts +359 -0
  690. package/src/common/html-entities.ts +299 -0
  691. package/src/common/html-string.ts +22 -0
  692. package/src/common/htmltable-emit-fill.ts +367 -0
  693. package/src/common/htmltable-emit-rules.ts +293 -0
  694. package/src/common/htmltable-emit.ts +345 -0
  695. package/src/common/htmltable-lex.ts +138 -0
  696. package/src/common/htmltable-parse.ts +539 -0
  697. package/src/common/htmltable-port.ts +32 -0
  698. package/src/common/htmltable-pos-runs.ts +313 -0
  699. package/src/common/htmltable-pos.ts +601 -0
  700. package/src/common/htmltable-types.ts +262 -0
  701. package/src/common/htmltable.ts +477 -0
  702. package/src/common/layers.ts +113 -0
  703. package/src/common/make-label.ts +192 -0
  704. package/src/common/multicolor.ts +167 -0
  705. package/src/common/nodeinit.ts +339 -0
  706. package/src/common/poly-gencode.ts +475 -0
  707. package/src/common/poly-init.ts +133 -0
  708. package/src/common/poly-inside.ts +202 -0
  709. package/src/common/poly-shapes-cases.ts +253 -0
  710. package/src/common/poly-shapes-cases2.ts +170 -0
  711. package/src/common/poly-shapes-util.ts +124 -0
  712. package/src/common/poly-shapes.ts +181 -0
  713. package/src/common/poly-sizing.ts +639 -0
  714. package/src/common/poly-vertices.ts +237 -0
  715. package/src/common/postproc.ts +436 -0
  716. package/src/common/ps-fontalias.ts +112 -0
  717. package/src/common/random.ts +37 -0
  718. package/src/common/record-port.ts +89 -0
  719. package/src/common/record.ts +523 -0
  720. package/src/common/shapeData.ts +502 -0
  721. package/src/common/shapes.ts +187 -0
  722. package/src/common/spline-midpoint.ts +105 -0
  723. package/src/common/splines-clip.ts +449 -0
  724. package/src/common/splines-constants.ts +53 -0
  725. package/src/common/splines-geom.ts +194 -0
  726. package/src/common/splines-path-begin.ts +243 -0
  727. package/src/common/splines-path-end.ts +231 -0
  728. package/src/common/splines-path-shared.ts +258 -0
  729. package/src/common/splines-routespl.ts +444 -0
  730. package/src/common/splines-selfedge.ts +403 -0
  731. package/src/common/splines.ts +33 -0
  732. package/src/common/style-resolve.ts +481 -0
  733. package/src/common/subst.ts +126 -0
  734. package/src/common/taper.ts +219 -0
  735. package/src/common/textmeasure-factory.ts +86 -0
  736. package/src/common/textmeasure-lookup.ts +50 -0
  737. package/src/common/textmeasure-lut-data-a.ts +182 -0
  738. package/src/common/textmeasure-lut-data-b.ts +140 -0
  739. package/src/common/textmeasure-lut-data-c.ts +221 -0
  740. package/src/common/textmeasure-lut-data.ts +78 -0
  741. package/src/common/textmeasure.ts +321 -0
  742. package/src/common/types.ts +425 -0
  743. package/src/common/xlabels-place.ts +475 -0
  744. package/src/debug.ts +38 -0
  745. package/src/errors.ts +95 -0
  746. package/src/gvc/anchor.ts +530 -0
  747. package/src/gvc/context.ts +260 -0
  748. package/src/gvc/default-context.ts +70 -0
  749. package/src/gvc/device-cluster.ts +114 -0
  750. package/src/gvc/device.ts +598 -0
  751. package/src/gvc/edge-labels.ts +116 -0
  752. package/src/gvc/emit-walk.ts +98 -0
  753. package/src/gvc/image-resolver.ts +137 -0
  754. package/src/gvc/job.ts +401 -0
  755. package/src/gvc/textlayout.ts +44 -0
  756. package/src/gvc/textspan-emit.ts +100 -0
  757. package/src/gvc/usershape.ts +33 -0
  758. package/src/gvc/viewport.ts +203 -0
  759. package/src/index.ts +165 -0
  760. package/src/label/index.ts +302 -0
  761. package/src/label/node.ts +278 -0
  762. package/src/label/rectangle.ts +123 -0
  763. package/src/label/split-q.ts +237 -0
  764. package/src/label/xlabels-geom.ts +132 -0
  765. package/src/label/xlabels-intersect.ts +421 -0
  766. package/src/label/xlabels.ts +212 -0
  767. package/src/layout/circo/blockpath.ts +560 -0
  768. package/src/layout/circo/blocks.ts +234 -0
  769. package/src/layout/circo/blocktree.ts +246 -0
  770. package/src/layout/circo/circular.ts +227 -0
  771. package/src/layout/circo/index.ts +90 -0
  772. package/src/layout/circo/init.ts +84 -0
  773. package/src/layout/circo/position-helpers.ts +104 -0
  774. package/src/layout/circo/position.ts +196 -0
  775. package/src/layout/dot/__fixtures__/xcoord-pivot-divergence.gv +79 -0
  776. package/src/layout/dot/acyclic.ts +60 -0
  777. package/src/layout/dot/aspect.ts +22 -0
  778. package/src/layout/dot/classify.ts +462 -0
  779. package/src/layout/dot/cluster-path.ts +200 -0
  780. package/src/layout/dot/cluster.ts +480 -0
  781. package/src/layout/dot/compound-clip.ts +224 -0
  782. package/src/layout/dot/compound-geom.ts +282 -0
  783. package/src/layout/dot/compound.ts +294 -0
  784. package/src/layout/dot/conc.ts +433 -0
  785. package/src/layout/dot/decomp.ts +165 -0
  786. package/src/layout/dot/edge-order.ts +62 -0
  787. package/src/layout/dot/edge-route-arrow.ts +87 -0
  788. package/src/layout/dot/edge-route-boxes.ts +99 -0
  789. package/src/layout/dot/edge-route-chain.ts +420 -0
  790. package/src/layout/dot/edge-route-clip.ts +253 -0
  791. package/src/layout/dot/edge-route-faithful.ts +404 -0
  792. package/src/layout/dot/edge-route-geom.ts +90 -0
  793. package/src/layout/dot/edge-route-helpers.ts +170 -0
  794. package/src/layout/dot/edge-route-poly.ts +174 -0
  795. package/src/layout/dot/edge-route-rank.ts +136 -0
  796. package/src/layout/dot/edge-route-routing.ts +219 -0
  797. package/src/layout/dot/edge-route.ts +490 -0
  798. package/src/layout/dot/fastgr.ts +377 -0
  799. package/src/layout/dot/flat-utils.ts +52 -0
  800. package/src/layout/dot/flat.ts +518 -0
  801. package/src/layout/dot/graph-label.ts +114 -0
  802. package/src/layout/dot/index.ts +302 -0
  803. package/src/layout/dot/init.ts +300 -0
  804. package/src/layout/dot/label-order.ts +161 -0
  805. package/src/layout/dot/mincross-build.ts +373 -0
  806. package/src/layout/dot/mincross-cross.ts +409 -0
  807. package/src/layout/dot/mincross-flat.ts +213 -0
  808. package/src/layout/dot/mincross-order.ts +401 -0
  809. package/src/layout/dot/mincross-utils.ts +170 -0
  810. package/src/layout/dot/mincross.ts +386 -0
  811. package/src/layout/dot/ns-core.ts +122 -0
  812. package/src/layout/dot/ns-range.ts +228 -0
  813. package/src/layout/dot/ns-subtree.ts +347 -0
  814. package/src/layout/dot/ns.ts +506 -0
  815. package/src/layout/dot/ortho-adapter.ts +133 -0
  816. package/src/layout/dot/pack-components.ts +433 -0
  817. package/src/layout/dot/position-aux.ts +382 -0
  818. package/src/layout/dot/position-bbox.ts +221 -0
  819. package/src/layout/dot/position-cluster.ts +286 -0
  820. package/src/layout/dot/position-ycoords.ts +287 -0
  821. package/src/layout/dot/position.ts +194 -0
  822. package/src/layout/dot/rank-dot2.ts +528 -0
  823. package/src/layout/dot/rank.ts +547 -0
  824. package/src/layout/dot/sameport.ts +278 -0
  825. package/src/layout/dot/self-loop.ts +147 -0
  826. package/src/layout/dot/splines-clone.ts +121 -0
  827. package/src/layout/dot/splines-flat-labeled.ts +408 -0
  828. package/src/layout/dot/splines-flat-multi.ts +188 -0
  829. package/src/layout/dot/splines-flat.ts +598 -0
  830. package/src/layout/dot/splines-groups.ts +190 -0
  831. package/src/layout/dot/splines-label.ts +432 -0
  832. package/src/layout/dot/splines-route-type.ts +44 -0
  833. package/src/layout/dot/splines-route.ts +478 -0
  834. package/src/layout/dot/splines.ts +538 -0
  835. package/src/layout/dot/straight-edges.ts +332 -0
  836. package/src/layout/fdp/cluster-edges.ts +0 -0
  837. package/src/layout/fdp/comp.ts +160 -0
  838. package/src/layout/fdp/derive.ts +272 -0
  839. package/src/layout/fdp/fdp-model.ts +238 -0
  840. package/src/layout/fdp/grid.ts +77 -0
  841. package/src/layout/fdp/index.ts +113 -0
  842. package/src/layout/fdp/init.ts +116 -0
  843. package/src/layout/fdp/layout.ts +485 -0
  844. package/src/layout/fdp/normalize.ts +100 -0
  845. package/src/layout/fdp/ports.ts +161 -0
  846. package/src/layout/fdp/tlayout-init.ts +230 -0
  847. package/src/layout/fdp/tlayout-parms.ts +234 -0
  848. package/src/layout/fdp/tlayout.ts +317 -0
  849. package/src/layout/fdp/xlayout.ts +350 -0
  850. package/src/layout/neato/bfs.ts +131 -0
  851. package/src/layout/neato/cdt-surface.ts +693 -0
  852. package/src/layout/neato/conjgrad.ts +159 -0
  853. package/src/layout/neato/delaunay.ts +259 -0
  854. package/src/layout/neato/dijkstra.ts +296 -0
  855. package/src/layout/neato/fdp-adjust.ts +124 -0
  856. package/src/layout/neato/index.ts +310 -0
  857. package/src/layout/neato/init.ts +505 -0
  858. package/src/layout/neato/legal.ts +316 -0
  859. package/src/layout/neato/matrix-ops.ts +112 -0
  860. package/src/layout/neato/multispline-router.ts +417 -0
  861. package/src/layout/neato/multispline.ts +427 -0
  862. package/src/layout/neato/overlap-prism.ts +503 -0
  863. package/src/layout/neato/overlap.ts +158 -0
  864. package/src/layout/neato/sc-adjust.ts +206 -0
  865. package/src/layout/neato/sep-factor.ts +118 -0
  866. package/src/layout/neato/set-aspect.ts +178 -0
  867. package/src/layout/neato/sgd.ts +461 -0
  868. package/src/layout/neato/splines.ts +1014 -0
  869. package/src/layout/neato/stress-kernel.ts +362 -0
  870. package/src/layout/neato/stress.ts +420 -0
  871. package/src/layout/osage/index.ts +548 -0
  872. package/src/layout/osage/layout.ts +254 -0
  873. package/src/layout/osage/types.ts +31 -0
  874. package/src/layout/pack/array-pack.ts +254 -0
  875. package/src/layout/pack/index.ts +570 -0
  876. package/src/layout/pack/poly-pack.ts +266 -0
  877. package/src/layout/pack/poly-place.ts +426 -0
  878. package/src/layout/pack/spiral-search.ts +106 -0
  879. package/src/layout/pack/test-helpers.ts +46 -0
  880. package/src/layout/pack/types.ts +85 -0
  881. package/src/layout/patchwork/index.ts +441 -0
  882. package/src/layout/patchwork/tree-map.ts +183 -0
  883. package/src/layout/patchwork/tree-node.ts +120 -0
  884. package/src/layout/sfdp/index.ts +231 -0
  885. package/src/layout/sfdp/init.ts +224 -0
  886. package/src/layout/sfdp/multilevel.ts +262 -0
  887. package/src/layout/sfdp/quadtree.ts +267 -0
  888. package/src/layout/sfdp/sparse-matrix-multiply.ts +160 -0
  889. package/src/layout/sfdp/sparse-matrix.ts +367 -0
  890. package/src/layout/sfdp/sparse-solve.ts +122 -0
  891. package/src/layout/sfdp/spring-driver.ts +209 -0
  892. package/src/layout/sfdp/spring-electrical.ts +431 -0
  893. package/src/layout/twopi/circle.ts +339 -0
  894. package/src/layout/twopi/index.ts +78 -0
  895. package/src/layout/twopi/init.ts +174 -0
  896. package/src/layout/twopi/pipeline.ts +98 -0
  897. package/src/layout/twopi/twopi-test-helpers.ts +44 -0
  898. package/src/model/algData.ts +194 -0
  899. package/src/model/cgraph-ops.ts +175 -0
  900. package/src/model/edge.ts +104 -0
  901. package/src/model/edgeInfo.ts +431 -0
  902. package/src/model/geom.ts +204 -0
  903. package/src/model/graph.ts +172 -0
  904. package/src/model/graphInfo.ts +528 -0
  905. package/src/model/index.ts +10 -0
  906. package/src/model/layoutParams.ts +127 -0
  907. package/src/model/node.ts +138 -0
  908. package/src/model/nodeInfo.ts +424 -0
  909. package/src/model/rankEntry.ts +95 -0
  910. package/src/ortho/chan-dict.ts +236 -0
  911. package/src/ortho/fpq.ts +149 -0
  912. package/src/ortho/index.ts +206 -0
  913. package/src/ortho/maze-channels.ts +196 -0
  914. package/src/ortho/maze.ts +311 -0
  915. package/src/ortho/ortho-parallel.ts +254 -0
  916. package/src/ortho/ortho-route.ts +349 -0
  917. package/src/ortho/partition.ts +303 -0
  918. package/src/ortho/rawgraph.ts +119 -0
  919. package/src/ortho/sgraph.ts +283 -0
  920. package/src/ortho/trap-query.ts +174 -0
  921. package/src/ortho/trap-segment.ts +303 -0
  922. package/src/ortho/trap-types.ts +171 -0
  923. package/src/ortho/trap-update.ts +89 -0
  924. package/src/ortho/trapezoid.ts +120 -0
  925. package/src/ortho/types.ts +286 -0
  926. package/src/parser/__fixtures__/directed.dot +10 -0
  927. package/src/parser/__fixtures__/simple.dot +7 -0
  928. package/src/parser/__fixtures__/subgraph.dot +17 -0
  929. package/src/parser/ast.ts +64 -0
  930. package/src/parser/builder.ts +401 -0
  931. package/src/parser/dot.d.ts +208 -0
  932. package/src/parser/dot.js +3321 -0
  933. package/src/parser/dot.pegjs +263 -0
  934. package/src/parser/index.ts +353 -0
  935. package/src/pathplan/index.ts +9 -0
  936. package/src/pathplan/route.ts +284 -0
  937. package/src/pathplan/shortest.ts +268 -0
  938. package/src/pathplan/solvers.ts +65 -0
  939. package/src/pathplan/triang.ts +221 -0
  940. package/src/pathplan/types.ts +16 -0
  941. package/src/pathplan/visibility.ts +170 -0
  942. package/src/pathplan/vispath.ts +118 -0
  943. package/src/rbtree/index.ts +418 -0
  944. package/src/render/color-resolve.ts +171 -0
  945. package/src/render/dot.ts +1514 -0
  946. package/src/render/index.ts +29 -0
  947. package/src/render/json.ts +734 -0
  948. package/src/render/map-test-helpers.ts +61 -0
  949. package/src/render/map.ts +528 -0
  950. package/src/render/public.ts +131 -0
  951. package/src/render/svg-arrow-ops.ts +113 -0
  952. package/src/render/svg-cluster.ts +24 -0
  953. package/src/render/svg-edge-ortho-radius.ts +228 -0
  954. package/src/render/svg-edge-split.ts +180 -0
  955. package/src/render/svg-gradient.ts +185 -0
  956. package/src/render/svg-graph.ts +415 -0
  957. package/src/render/svg-helpers.ts +623 -0
  958. package/src/render/svg-id.ts +76 -0
  959. package/src/render/svg-multicolor.ts +313 -0
  960. package/src/render/svg-parallel-edge.ts +123 -0
  961. package/src/render/svg-tapered-edge.ts +56 -0
  962. package/src/render/svg.ts +307 -0
  963. package/src/render/xdot-public.ts +164 -0
  964. package/src/render/xml-escape.ts +56 -0
  965. package/src/util/agxbuf.ts +138 -0
  966. package/src/util/bsd-qsort.ts +251 -0
  967. package/src/util/index.ts +25 -0
  968. package/src/util/list.ts +122 -0
  969. package/src/util/math.ts +104 -0
  970. package/src/util/mt19937.ts +143 -0
  971. package/src/util/printf-round.ts +163 -0
  972. package/src/util/xml.ts +184 -0
  973. package/src/vpsc/Block.ts +375 -0
  974. package/src/vpsc/Blocks.ts +164 -0
  975. package/src/vpsc/Constraint.ts +94 -0
  976. package/src/vpsc/HeapUtils.ts +88 -0
  977. package/src/vpsc/Solver.ts +274 -0
  978. package/src/vpsc/SweepLine.ts +214 -0
  979. package/src/vpsc/Variable.ts +54 -0
  980. package/src/vpsc/index.ts +122 -0
  981. package/src/vpsc/sweepTypes.ts +31 -0
  982. package/src/xdot/index.ts +7 -0
  983. package/src/xdot/lex.ts +151 -0
  984. package/src/xdot/misc.ts +226 -0
  985. package/src/xdot/parse.ts +349 -0
  986. package/src/xdot/types.ts +158 -0
@@ -0,0 +1,166 @@
1
+ /**
2
+ * Stochastic Gradient Descent (SGD) layout engine for neato.
3
+ * Ported from lib/neatogen/sgd.c.
4
+ *
5
+ * @see lib/neatogen/sgd.c
6
+ * @see lib/neatogen/sgd.h
7
+ */
8
+ import type { Graph } from '../../model/graph.js';
9
+ import type { TermSgd } from './dijkstra.js';
10
+ import type { RkState } from '../../util/mt19937.js';
11
+ /** Shortest-path distance model. @see lib/neatogen/defs.h */
12
+ export declare const MODEL_SHORTPATH = 0;
13
+ /** Circuit resistance distance model (falls back to MODEL_SHORTPATH). */
14
+ export declare const MODEL_CIRCUIT = 1;
15
+ /** Subset / Jaccard distance model. @see lib/neatogen/defs.h */
16
+ export declare const MODEL_SUBSET = 2;
17
+ /** MDS distance model (falls back to MODEL_SHORTPATH). */
18
+ export declare const MODEL_MDS = 3;
19
+ /**
20
+ * Compressed-sparse-row adjacency structure for the SGD Dijkstra pass.
21
+ * `pinneds[i]` is true if node i is position-fixed.
22
+ *
23
+ * @see lib/neatogen/sgd.h:graph_sgd
24
+ */
25
+ export interface GraphSgd {
26
+ n: number;
27
+ /** CSR row pointers, length n+1. */
28
+ sources: number[];
29
+ /** CSR column indices. */
30
+ targets: number[];
31
+ weights: Float32Array;
32
+ /** true if node is position-fixed. */
33
+ pinneds: boolean[];
34
+ }
35
+ /**
36
+ * Assign sequential `info.id` to all nodes and count non-self-loop edge ends.
37
+ * @internal
38
+ * @see lib/neatogen/sgd.c:extract_adjacency (first pass)
39
+ */
40
+ export declare function assignNodeIds(g: Graph): {
41
+ nNodes: number;
42
+ nEdges: number;
43
+ };
44
+ /**
45
+ * Append CSR entries for all non-self-loop edges incident on node `np`.
46
+ * Returns the number of edges appended.
47
+ * @internal
48
+ */
49
+ export declare function fillNodeEdges(np: import('../../model/node.js').Node, g: Graph, graph: GraphSgd, edgeOffset: number): number;
50
+ /**
51
+ * Populate the CSR sources/targets/weights/pinneds arrays.
52
+ * @internal
53
+ * @see lib/neatogen/sgd.c:extract_adjacency (second pass)
54
+ */
55
+ export declare function fillCsrEdges(g: Graph, graph: GraphSgd): void;
56
+ /**
57
+ * Compute degree of node `j` and its intersection with neighbour-set `nI`.
58
+ * Populates scratch array `nJ` (reset on return).
59
+ * Returns `{ degJ, intersect }`.
60
+ * @internal
61
+ */
62
+ export declare function subsetDegreeJ(graph: GraphSgd, j: number, nI: Uint8Array, nJ: Uint8Array): {
63
+ degJ: number;
64
+ intersect: number;
65
+ };
66
+ /**
67
+ * Process all edges from node `i` in the subset model, updating weights.
68
+ * @internal
69
+ */
70
+ export declare function subsetNodeWeights(graph: GraphSgd, i: number, nI: Uint8Array, nJ: Uint8Array): void;
71
+ /**
72
+ * Recompute CSR edge weights using the Jaccard (subset) model.
73
+ * @internal
74
+ * @see lib/neatogen/sgd.c:extract_adjacency (MODEL_SUBSET block)
75
+ */
76
+ export declare function applySubsetWeights(graph: GraphSgd): void;
77
+ /**
78
+ * Build a GraphSgd CSR structure from the graph.
79
+ * Self-loops are skipped. For MODEL_SUBSET, edge weights are recomputed.
80
+ *
81
+ * @see lib/neatogen/sgd.c:extract_adjacency
82
+ */
83
+ export declare function extractAdjacency(g: Graph, model: number): GraphSgd;
84
+ /**
85
+ * Run Dijkstra from each unfixed node and accumulate SGD terms.
86
+ * Matches the term-building loop in sgd.c.
87
+ *
88
+ * @see lib/neatogen/sgd.c:sgd (term-building loop)
89
+ */
90
+ export declare function sgdBuildTerms(graph: GraphSgd): TermSgd[];
91
+ /**
92
+ * In-place Fisher-Yates shuffle of a TermSgd array using MT19937.
93
+ *
94
+ * @see lib/neatogen/sgd.c:fisheryates_shuffle
95
+ */
96
+ export declare function fisheryatesShuffle(terms: TermSgd[], state: RkState): void;
97
+ /**
98
+ * Assign random initial positions to unpinned nodes with no position set.
99
+ * Uses MT19937 for deterministic, seed-controlled output.
100
+ *
101
+ * @see lib/neatogen/stuff.c:initial_positions
102
+ * @see lib/neatogen/stuff.c:randompos
103
+ */
104
+ export declare function initialPositions(g: Graph, state: RkState): void;
105
+ /**
106
+ * Compute the annealing schedule parameters from the term weights.
107
+ *
108
+ * eta_max = 1/w_min; eta_min = DFLT_TOLERANCE/w_max
109
+ * lambda = log(eta_max/eta_min) / (maxIter - 1)
110
+ *
111
+ * @see lib/neatogen/sgd.c:sgd (initialise annealing schedule)
112
+ */
113
+ export declare function computeSchedule(terms: TermSgd[], maxIter: number): {
114
+ etaMax: number;
115
+ lambda: number;
116
+ };
117
+ /**
118
+ * Apply one SGD sweep over all terms at step size `eta`.
119
+ *
120
+ * @see lib/neatogen/sgd.c:sgd (inner ij-loop)
121
+ */
122
+ export declare function sgdIteration(pos: Float64Array, terms: TermSgd[], unfixed: boolean[], eta: number): void;
123
+ /**
124
+ * Copy node positions from graph into a flat Float64Array (x, y interleaved).
125
+ * @internal
126
+ * @see lib/neatogen/sgd.c:sgd (copy initial positions into pos[])
127
+ */
128
+ export declare function posToArray(g: Graph, n: number): Float64Array;
129
+ /**
130
+ * Write positions from flat Float64Array back into graph node info.
131
+ * @internal
132
+ * @see lib/neatogen/sgd.c:sgd (copy temporary positions back into graph_t)
133
+ */
134
+ export declare function posFromArray(g: Graph, pos: Float64Array): void;
135
+ /**
136
+ * Build the `unfixed` boolean array (true = node may be moved).
137
+ * @internal
138
+ * @see lib/neatogen/sgd.c:sgd (unfixed[] array setup)
139
+ */
140
+ export declare function buildUnfixed(g: Graph, n: number): boolean[];
141
+ /**
142
+ * Normalise the model constant, falling back unsupported models to
143
+ * MODEL_SHORTPATH with a warning.
144
+ *
145
+ * @see lib/neatogen/sgd.c:sgd (model fallback block)
146
+ */
147
+ export declare function resolveModel(model: number): number;
148
+ /** Optimisation loop: shuffle and step for MAX_ITER iterations. @see lib/neatogen/sgd.c:sgd */
149
+ export declare function runSgdLoop(pos: Float64Array, terms: TermSgd[], unfixed: boolean[], sched: {
150
+ etaMax: number;
151
+ lambda: number;
152
+ }, state: RkState): void;
153
+ /**
154
+ * Run the SGD layout algorithm on graph `g`.
155
+ *
156
+ * MODEL_CIRCUIT and MODEL_MDS are not yet supported and fall back to
157
+ * MODEL_SHORTPATH with a console.warn (matching agwarningf in C).
158
+ *
159
+ * Node positions are written to `node.info.pos` ([x, y]).
160
+ * Nodes with `node.info.pinned === true` are not moved.
161
+ * `g.info.seed` controls the MT19937 seed (default 0).
162
+ *
163
+ * @see lib/neatogen/sgd.c:sgd
164
+ */
165
+ export declare function sgdLayout(g: Graph, model: number): void;
166
+ //# sourceMappingURL=sgd.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sgd.d.ts","sourceRoot":"","sources":["../../../src/layout/neato/sgd.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,153 @@
1
+ /**
2
+ * Neato spline routing entry point.
3
+ *
4
+ * Faithful port of lib/neatogen/neatosplines.c — splineEdges dispatch,
5
+ * makeObstacle, makeSelfArcs, and supporting helpers.
6
+ *
7
+ * Full multispline.c routing is stubbed: when pathplan-based routing is
8
+ * attempted but would require multi-path resolution, the code falls back to
9
+ * straight-line edges. This covers the acceptance criteria surface area.
10
+ *
11
+ * @see lib/neatogen/neatosplines.c
12
+ */
13
+ import type { Graph } from '../../model/graph.js';
14
+ import type { Node } from '../../model/node.js';
15
+ import type { Edge } from '../../model/edge.js';
16
+ import type { Point } from '../../model/geom.js';
17
+ import type { SplineInfo } from '../../common/types.js';
18
+ import type { ExpandT } from './sep-factor.js';
19
+ import type { Poly, VConfig } from '../../pathplan/types.js';
20
+ import { newSpline } from '../../common/splines-clip.js';
21
+ export { EDGETYPE_NONE, EDGETYPE_LINE, EDGETYPE_ORTHO, EDGETYPE_PLINE, EDGETYPE_SPLINE, } from '../dot/splines.js';
22
+ export declare const EDGETYPE_CURVED = 2;
23
+ /** Open visibility config produced by obsOpen(). */
24
+ type VisConfig = VConfig;
25
+ /** @see lib/neatogen/neatosplines.c:swap_ends_p */
26
+ export declare function swapEndsP(_e: unknown): boolean;
27
+ /** @see lib/neatogen/neatosplines.c:spline_merge */
28
+ export declare function splineMerge(_n: unknown): boolean;
29
+ /** @see lib/neatogen/neatosplines.c:sinfo */
30
+ export declare const SINFO: SplineInfo;
31
+ /**
32
+ * Obstacle polygon reflecting the node's geometry, vertices in CW order:
33
+ * the shape's own outline-periphery vertices (+margin) for polygons, an
34
+ * 8-gon circumscribed about the outline ellipse for ellipses, the field
35
+ * box for records, the node box for EPSF. Null = unsupported shape (the
36
+ * node is skipped as an obstacle, C returns NULL).
37
+ *
38
+ * @see lib/neatogen/neatosplines.c:makeObstacle
39
+ */
40
+ export declare function makeObstacle(n: Node, pmargin: ExpandT): Poly | null;
41
+ /**
42
+ * The isOrtho branch of C makeObstacle for SH_POLY/SH_POINT nodes: the
43
+ * obstacle is the node's OUTLINE box (size + penwidth outline) with NO
44
+ * margin — margin stays {0,0}, so tightly packed layouts (osage's 4pt
45
+ * gutters) remain a legal arrangement and the maze routes them; the
46
+ * margined rectangle makes neighbours touch and forces the straight
47
+ * fallback. Records fall through to the margined box like C's SH_RECORD
48
+ * branch (no isOrtho special case there).
49
+ *
50
+ * @see lib/neatogen/neatosplines.c:makeObstacle (isOrtho, vs[0..3])
51
+ */
52
+ export declare function makeOrthoObstacle(n: Node, sep: ExpandT): Poly | null;
53
+ /**
54
+ * Install a straight-line (two-point) spline on an edge.
55
+ *
56
+ * Used when pathplan routing is unavailable or edgetype == EDGETYPE_LINE.
57
+ *
58
+ * @see lib/neatogen/neatosplines.c (straight-line fallback in spline_edges_)
59
+ */
60
+ export declare function makeStraightEdge(e: Edge, sinfo: SplineInfo): void;
61
+ /**
62
+ * Route self-loop edges via makeSelfEdge, handling single and chained cases.
63
+ * Under concentrate only the representative is routed (C: cnt==1||Concentrate).
64
+ *
65
+ * @see lib/neatogen/neatosplines.c:makeSelfArcs
66
+ */
67
+ export declare function makeSelfArcs(e: Edge, stepx: number): void;
68
+ /**
69
+ * Coalesce equivalent edges, mirroring the C splineEdges wrapper
70
+ * (neatosplines.c:753-773): the FIRST edge of a class (agfstnode/agfstout
71
+ * order) becomes the leader with ED_count = 1 (set by newitem on dict
72
+ * insert); each later member increments the leader's count, gets count 0,
73
+ * and is prepended to the leader's ED_to_virt chain. The routing loop then
74
+ * skips count==0 members and routes the leader's whole chain (or only the
75
+ * representative under concentrate).
76
+ *
77
+ * @see lib/neatogen/neatosplines.c:splineEdges (find equivalent edges)
78
+ * @see lib/neatogen/neatosplines.c:newitem (ED_count(leader) = 1)
79
+ */
80
+ export declare function coalesceEdges(g: Graph): void;
81
+ /**
82
+ * The pathfinding half of C's two passes: ED_path(e) = getPath(e, vconfig).
83
+ * @see lib/neatogen/neatosplines.c:getPath
84
+ */
85
+ export declare function edgePath(e: Edge, vconfig: VisConfig): Point[];
86
+ /** @see lib/neatogen/neatosplines.c:makeSpline */
87
+ export declare function makeSplineEdge(e: Edge, obstacles: Poly[], vconfig: VisConfig, edgetype: number): void;
88
+ /** @see lib/neatogen/neatosplines.c:spline_edges_ */
89
+ export declare function splineEdgesImpl(g: Graph, sep: ExpandT, edgetype: number): void;
90
+ /**
91
+ * Main spline routing entry point for neato layout.
92
+ *
93
+ * Dispatch:
94
+ * 1. EDGETYPE_NONE → skip
95
+ * 2. EDGETYPE_LINE → straight lines for all edges
96
+ * 3. EDGETYPE_ORTHO → orthoEdges (if obstacles legal, else straight)
97
+ * 4. EDGETYPE_SPLINE / EDGETYPE_PLINE → pathplan routing with straight fallback
98
+ *
99
+ * @see lib/neatogen/neatosplines.c:spline_edges0, spline_edges1, splineEdges
100
+ */
101
+ export declare function splineEdges(g: Graph): void;
102
+ /**
103
+ * Graph bounding box in points derived from node pos (inches) and node
104
+ * sizes, expanded by any existing edge splines. xlabels are not ported
105
+ * (no engine sets them yet).
106
+ * @see lib/common/utils.c:compute_bb
107
+ */
108
+ export declare function computeBBFromPos(g: Graph): {
109
+ ll: Point;
110
+ ur: Point;
111
+ };
112
+ /**
113
+ * T1 (iterative-parity-campaign, batch-1) injection hook: when
114
+ * `GVTS_POS_INJECT` names a dump file, overwrite `n.info.pos` for every
115
+ * matching node name before this module's own routing runs — mirroring the
116
+ * native `spline_edges` entry point where the session-local POS_DUMP patch
117
+ * captures oracle `ND_pos` (see
118
+ * `plans/iterative-parity-campaign/diagrams/injection-recipe.md`). This lets
119
+ * the attribution harness separate "port routing/emission is wrong" from
120
+ * "the port's own node placement is just a different (but internally
121
+ * consistent) FP-drift outcome" for the iterative engines (D1: pre-routing
122
+ * `ND_pos` stage only).
123
+ *
124
+ * Dump lines look like `GVTS_POS <name> <x> <y>` (any other line, e.g. dot's
125
+ * own stderr warnings mixed into the same capture, is ignored). Reads via
126
+ * `process.getBuiltinModule` rather than a static `node:fs` import so the
127
+ * browser bundle (esbuild, no `--platform=node`) never tries to resolve a
128
+ * Node builtin — this whole function is inert (returns immediately) unless
129
+ * `process` exists and `GVTS_POS_INJECT` is set, which is true only inside
130
+ * the Node test harness, never in a browser render.
131
+ *
132
+ * An optional `GVTS_BB <llx> <lly> <urx> <ury>` line (points) overwrites the
133
+ * graph bb as well. It is emitted only by the *fdp* dump site, and it is
134
+ * load-bearing there: neato/sfdp reach this hook at the top of `spline_edges`,
135
+ * one line ABOVE the `compute_bb` that derives GD_bb — so their bb is a pure
136
+ * function of the injected positions and needs no injection of its own. fdp is
137
+ * the exception: `GD_bb` is a product of `fdpLayout` itself (`finalCC` →
138
+ * `setBB`, layout.c:1030), which has already run and returned by the time the
139
+ * hook fires, so without this line the injected render keeps the port's OWN
140
+ * (drifted) bb while emitting the oracle's node positions — a bb that belongs
141
+ * to neither layout. That mismatch, not any defect in the port's bb code, is
142
+ * what made `graph/bb`+`graph/_draw_` the largest not-cleared fdp bucket (60
143
+ * ids, bb short on 24 and TALL on 18 — a sign-split no bb bug can produce).
144
+ * The bb is layout-stage state exactly like `ND_pos`; neutralizing it is what
145
+ * lets the comparison isolate routing/emission, which is all the harness
146
+ * claims to measure.
147
+ * @see lib/fdpgen/layout.c:1063 fdp_layout
148
+ */
149
+ export declare function injectOraclePositions(g: Graph): void;
150
+ export declare function splineEdgesShifted(g: Graph): void;
151
+ export { newSpline };
152
+ export type { Poly as NeatoPoly };
153
+ //# sourceMappingURL=splines.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"splines.d.ts","sourceRoot":"","sources":["../../../src/layout/neato/splines.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;GAWG;AAEH,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,KAAK,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,KAAK,EAAE,UAAU,EAAwB,MAAM,uBAAuB,CAAC;AAG9E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAO7D,OAAO,EAAE,SAAS,EAAkB,MAAM,8BAA8B,CAAC;AAwBzE,OAAO,EACL,aAAa,EAAE,aAAa,EAAE,cAAc,EAC5C,cAAc,EAAE,eAAe,GAChC,MAAM,mBAAmB,CAAC;AAC3B,eAAO,MAAM,eAAe,IAAI,CAAC;AAYjC,oDAAoD;AACpD,KAAK,SAAS,GAAG,OAAO,CAAC;AAOzB,mDAAmD;AACnD,wBAAgB,SAAS,CAAC,EAAE,EAAE,OAAO,GAAG,OAAO,CAAkB;AAEjE,oDAAoD;AACpD,wBAAgB,WAAW,CAAC,EAAE,EAAE,OAAO,GAAG,OAAO,CAAkB;AAEnE,6CAA6C;AAC7C,eAAO,MAAM,KAAK,EAAE,UAKnB,CAAC;AA2JF;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,GAAG,IAAI,CAkBnE;AAcD;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,GAAG,IAAI,GAAG,IAAI,CAkCpE;AA0BD;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,GAAG,IAAI,CAIjE;AAyBD;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAiBzD;AAkCD;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI,CAkB5C;AA4DD;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,GAAG,KAAK,EAAE,CAO7D;AAED,kDAAkD;AAClD,wBAAgB,cAAc,CAC5B,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,GAC/D,IAAI,CAIN;AA8ND,qDAAqD;AACrD,wBAAgB,eAAe,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAS9E;AAMD;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI,CAqB1C;AAMD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,KAAK,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,EAAE,EAAE,KAAK,CAAA;CAAE,CAoBnE;AA4BD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI,CA0DpD;AAED,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI,CAkBjD;AAMD,OAAO,EAAE,SAAS,EAAE,CAAC;AACrB,YAAY,EAAE,IAAI,IAAI,SAAS,EAAE,CAAC"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Dense k-D stress majorization — a float32-faithful port of
3
+ * stress_majorization_kD_mkernel and conjugate_gradient_mkernel.
4
+ * Replicates C numerics exactly (decision D3): float storage and
5
+ * chained-operation rounding via Math.fround, double accumulators
6
+ * where C uses double/long double (long double == double on AArch64
7
+ * macOS, where the reference SVGs were generated).
8
+ *
9
+ * smart_init (sparse subspace estimation) is not ported — no `start`
10
+ * attr in the suite, so checkStart always yields INIT_RANDOM.
11
+ *
12
+ * @see lib/neatogen/stress.c:stress_majorization_kD_mkernel
13
+ * @see lib/neatogen/conjgrad.c:conjugate_gradient_mkernel
14
+ */
15
+ import type { Node } from '../../model/node.js';
16
+ import { type VtxData } from './dijkstra.js';
17
+ /** Stress options bit: weight exponent (1 or 2). @see lib/neatogen/stress.h */
18
+ export declare const OPT_EXP_FLAG = 2;
19
+ /** Stress options bit: smart initialisation. @see lib/neatogen/stress.h */
20
+ export declare const OPT_SMART_INIT = 1;
21
+ /**
22
+ * Packed all-pairs shortest paths over unit weights (BFS hops).
23
+ * @see lib/neatogen/stress.c:compute_apsp_packed
24
+ */
25
+ export declare function computeApspPacked(graph: VtxData[], n: number): Float32Array;
26
+ /**
27
+ * Packed all-pairs shortest paths over float edge lengths.
28
+ * @see lib/neatogen/stress.c:compute_weighted_apsp_packed
29
+ */
30
+ export declare function computeWeightedApspPacked(graph: VtxData[], n: number): Float32Array;
31
+ /**
32
+ * Random (drand48) or user-position layout initialisation; centers
33
+ * each axis. Returns true if some node is pinned.
34
+ * @see lib/neatogen/stress.c:initLayout
35
+ */
36
+ export declare function initLayout(n: number, dim: number, coords: Float64Array[], nodes: Node[]): boolean;
37
+ export declare function conjugateGradientMkernel(A: Float32Array, x: Float32Array, b: Float32Array, n: number, tol: number, maxIterations: number): number;
38
+ /** Options for stressMajorizationKDMkernel. */
39
+ export interface StressOpts {
40
+ dim: number;
41
+ /** opt_exp_flag (2 = squared weights, default) | opt_smart_init. */
42
+ opts: number;
43
+ /** MODEL_* — only the resulting Dij matters here; pass it in. */
44
+ maxi: number;
45
+ epsilon: number;
46
+ }
47
+ /**
48
+ * Dense stress majorization. Mutates dCoords in place; returns the
49
+ * iteration count (negative on error).
50
+ * @see lib/neatogen/stress.c:stress_majorization_kD_mkernel
51
+ */
52
+ export declare function stressMajorizationKDMkernel(Dij: Float32Array, n: number, dCoords: Float64Array[], nodes: Node[], o: StressOpts): number;
53
+ //# sourceMappingURL=stress-kernel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stress-kernel.d.ts","sourceRoot":"","sources":["../../../src/layout/neato/stress-kernel.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAGhD,OAAO,EAAY,KAAK,OAAO,EAAE,MAAM,eAAe,CAAC;AAqBvD,+EAA+E;AAC/E,eAAO,MAAM,YAAY,IAAI,CAAC;AAC9B,2EAA2E;AAC3E,eAAO,MAAM,cAAc,IAAI,CAAC;AAEhC;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,YAAY,CAS3E;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,YAAY,CASnF;AAkBD;;;;GAIG;AACH,wBAAgB,UAAU,CACxB,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,GAC5D,OAAO,CAgBT;AA0CD,wBAAgB,wBAAwB,CACtC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,MAAM,EAC5D,GAAG,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GACjC,MAAM,CAqBR;AAqHD,+CAA+C;AAC/C,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,oEAAoE;IACpE,IAAI,EAAE,MAAM,CAAC;IACb,iEAAiE;IACjE,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,CACzC,GAAG,EAAE,YAAY,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,UAAU,GAClF,MAAM,CA8CR"}
@@ -0,0 +1,158 @@
1
+ /**
2
+ * Stress majorization layout engine for neato.
3
+ *
4
+ * Ports lib/neatogen/stress.c: stress_majorization_kD_mkernel and helpers.
5
+ * Kahan summation replaces C's `long double DegType` for diagonal accumulation.
6
+ *
7
+ * Implementation note: all logic lives in static class methods. Lizard 1.22.1
8
+ * loses function boundaries between consecutive top-level functions — it
9
+ * correctly resets its parser at class boundaries. Thin exported wrappers
10
+ * delegate to static methods so the public API is unchanged.
11
+ *
12
+ * @see lib/neatogen/stress.c
13
+ * @see lib/neatogen/stress.h
14
+ */
15
+ import type { VtxData } from './dijkstra.js';
16
+ /** Inner CG solver tolerance. @see lib/neatogen/stress.h:tolerance_cg */
17
+ export declare const TOLERANCE_CG = 0.001;
18
+ /** Default max outer iterations. @see lib/neatogen/stress.h:DFLT_ITERATIONS */
19
+ export declare const DFLT_ITERATIONS = 200;
20
+ /** Outer stress convergence epsilon. @see lib/neatogen/stress.h:DFLT_TOLERANCE */
21
+ export declare const DFLT_TOLERANCE = 0.0001;
22
+ /** Smart-init flag in opts bitmask. */
23
+ export declare const OPT_SMART_INIT = 4;
24
+ /** Exponent flag in opts bitmask (exp=2 when set, exp=1 when clear). */
25
+ export declare const OPT_EXP_FLAG = 3;
26
+ /** Model: MDS (user-supplied edge lengths). */
27
+ export declare const MODEL_MDS = 1;
28
+ /** Model: circuit (effective resistance, falls back to BFS). */
29
+ export declare const MODEL_CIRCUIT = 2;
30
+ /** Model: subset (degree-reweighted BFS). */
31
+ export declare const MODEL_SUBSET = 3;
32
+ /** Kahan compensated-summation accumulator for Laplacian diagonal. */
33
+ export interface KahanAcc {
34
+ sum: number;
35
+ c: number;
36
+ }
37
+ /** Argument bundle for stressMajorizationKD — keeps param count ≤5. */
38
+ export interface StressOpts {
39
+ dim: number;
40
+ opts: number;
41
+ model: number;
42
+ maxi: number;
43
+ /**
44
+ * Distance exponent: 1 (default) or 2.
45
+ * Derived from opts bitmask inside stressMajorizationKD and injected
46
+ * into the bundle before each inner-loop call; not supplied by callers.
47
+ * @see lib/neatogen/stress.c:stress_majorization_kD_mkernel (exp assignment)
48
+ */
49
+ exp?: number;
50
+ }
51
+ /** Context bundle for position Laplacian construction. */
52
+ export interface Lap1Ctx {
53
+ coords: Float32Array[];
54
+ lap1: Float32Array;
55
+ lap2: Float32Array;
56
+ degrees: KahanAcc[];
57
+ n: number;
58
+ dim: number;
59
+ exp: number;
60
+ }
61
+ /** Kahan summation helpers. */
62
+ export declare class KahanHelper {
63
+ /** Add `v` to `acc` with Kahan compensation. */
64
+ static add(acc: KahanAcc, v: number): void;
65
+ /** Allocate n zero-initialised KahanAcc entries. */
66
+ static makeArr(n: number): KahanAcc[];
67
+ }
68
+ /** Helpers for building and using the weight Laplacian lap2. */
69
+ export declare class Lap2Helper {
70
+ /** Invert non-zero packed entries in-place. */
71
+ static invertPacked(Dij: Float32Array): void;
72
+ /** Accumulate off-diagonal row i into degrees[] via Kahan. */
73
+ static accumRow(Dij: Float32Array, degrees: KahanAcc[], n: number, i: number): void;
74
+ /** Write Kahan sums into packed diagonal entries of arr. */
75
+ static writeDiag(arr: Float32Array, degrees: KahanAcc[], n: number): void;
76
+ /**
77
+ * Build weight Laplacian from packed Dij in-place.
78
+ * Off-diagonal w_ij = 1/d^exp; diagonal via Kahan summation.
79
+ * @see lib/neatogen/stress.c (Laplacian section)
80
+ */
81
+ static buildLap2(Dij: Float32Array, n: number, exp: number): void;
82
+ }
83
+ /** @see Lap2Helper.buildLap2 */
84
+ export declare function buildLap2(Dij: Float32Array, n: number, exp: number): void;
85
+ /** Helpers for building position Laplacian lap1. */
86
+ export declare class Lap1Helper {
87
+ /** Squared Euclidean distance between node i and node i+1+j. */
88
+ static squaredDist(ctx: Lap1Ctx, i: number, j: number): number;
89
+ /** Compute invDist[0..n-i-2] = 1/dist clamped for overflow. */
90
+ static computeInvDist(ctx: Lap1Ctx, i: number, invDist: Float32Array): void;
91
+ /** Fill off-diagonal entries for row i; accumulate into degrees[]. */
92
+ static fillRow(ctx: Lap1Ctx, invDist: Float32Array, i: number): void;
93
+ /** Seed lap1 off-diagonals with sqrt(lap2) for exp=2. */
94
+ static seedSqrt(ctx: Lap1Ctx): void;
95
+ /**
96
+ * Build position-weighted Laplacian from current coords.
97
+ * @see lib/neatogen/stress.c (inner Laplacian construction loop)
98
+ */
99
+ static buildLap1(ctx: Lap1Ctx): void;
100
+ }
101
+ /** @see Lap1Helper.buildLap1 */
102
+ export declare function buildLap1(ctx: Lap1Ctx): void;
103
+ /** Stress and quadratic form helpers. */
104
+ export declare class StressHelper {
105
+ /** Compute coords[k] · (Lap * coords[k]) summed over k. */
106
+ static quadForm(coords: Float32Array[], lap: Float32Array, dim: number, n: number): number;
107
+ /**
108
+ * Compute stress = 2·trace(X'L1X) + n(n-1)/2 - trace(X'L2X).
109
+ * @see lib/neatogen/stress.c (new_stress computation block)
110
+ */
111
+ static computeStress(coords: Float32Array[], lap1: Float32Array, lap2: Float32Array, dim: number, n: number): number;
112
+ }
113
+ /** @see StressHelper.computeStress */
114
+ export declare function computeStress(coords: Float32Array[], lap1: Float32Array, lap2: Float32Array, dim: number, n: number): number;
115
+ /** Distance model and orthogonalization helpers. */
116
+ export declare class DijHelper {
117
+ /** True if any edge has a non-unit weight. */
118
+ static hasNonUnitWeights(graph: VtxData[]): boolean;
119
+ /**
120
+ * Compute packed APSP for the given model.
121
+ * MODEL_CIRCUIT falls back to BFS (not yet ported).
122
+ */
123
+ static computeDij(graph: VtxData[], n: number, model: number): Float32Array;
124
+ /** Orthogonalize a Float64Array against the constant vector. */
125
+ static orthog1d(n: number, v: Float64Array): void;
126
+ }
127
+ /** Coordinate helpers: conversion, copying, random initialization. */
128
+ export declare class CoordHelper {
129
+ /** Copy a Float64Array axis into a new Float32Array. */
130
+ static toF32(src: Float64Array, n: number): Float32Array;
131
+ /** Build dim Float32 working arrays from dCoords. */
132
+ static makeFloat(dCoords: Float64Array[], dim: number, n: number): Float32Array[];
133
+ /** Copy Float32 working coords back to Float64 output. */
134
+ static copyBack(coords: Float32Array[], dCoords: Float64Array[], dim: number, n: number): void;
135
+ /**
136
+ * Initialise dCoords from rng() and orthogonalize each axis.
137
+ * @see lib/neatogen/stress.c:initLayout (random branch)
138
+ */
139
+ static initRandom(n: number, dim: number, dCoords: Float64Array[], rng: () => number): void;
140
+ }
141
+ /** @see CoordHelper.initRandom */
142
+ export declare function initCoords(n: number, dim: number, dCoords: Float64Array[], rng: () => number): void;
143
+ /** CG solver helpers. */
144
+ export declare class SolveHelper {
145
+ /** Solve one axis via CG. Returns true on failure. */
146
+ static solveAxis(lap2: Float32Array, coord: Float32Array, bk: Float32Array, n: number): boolean;
147
+ /** Solve all dim axes. Returns true if any fails. */
148
+ static solveAll(coords: Float32Array[], b: Float32Array[], lap2: Float32Array, dim: number, n: number): boolean;
149
+ /** Compute b[k] = lap1 * coords[k] for all axes. */
150
+ static computeB(lap1: Float32Array, coords: Float32Array[], b: Float32Array[], dim: number, n: number): void;
151
+ }
152
+ /**
153
+ * Full dense k-D stress majorization (Kamada-Kawai energy minimization).
154
+ * Returns iteration count or -1 on CG failure.
155
+ * @see lib/neatogen/stress.c:stress_majorization_kD_mkernel
156
+ */
157
+ export declare function stressMajorizationKD(graph: VtxData[], n: number, dCoords: Float64Array[], sopts: StressOpts): number;
158
+ //# sourceMappingURL=stress.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stress.d.ts","sourceRoot":"","sources":["../../../src/layout/neato/stress.ts"],"names":[],"mappings":"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"}