@mui/x-charts-vendor 7.12.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 (312) hide show
  1. package/README.md +76 -0
  2. package/d3-color.d.ts +5 -0
  3. package/d3-color.js +7 -0
  4. package/d3-delaunay.d.ts +5 -0
  5. package/d3-delaunay.js +7 -0
  6. package/d3-interpolate.d.ts +5 -0
  7. package/d3-interpolate.js +7 -0
  8. package/d3-scale.d.ts +5 -0
  9. package/d3-scale.js +7 -0
  10. package/d3-shape.d.ts +5 -0
  11. package/d3-shape.js +7 -0
  12. package/d3-time.d.ts +5 -0
  13. package/d3-time.js +7 -0
  14. package/es/d3-array.js +6 -0
  15. package/es/d3-color.js +6 -0
  16. package/es/d3-delaunay.js +6 -0
  17. package/es/d3-format.js +6 -0
  18. package/es/d3-interpolate.js +6 -0
  19. package/es/d3-path.js +6 -0
  20. package/es/d3-scale.js +6 -0
  21. package/es/d3-shape.js +6 -0
  22. package/es/d3-time-format.js +6 -0
  23. package/es/d3-time.js +6 -0
  24. package/es/delaunator.js +6 -0
  25. package/es/internmap.js +6 -0
  26. package/es/robust-predicates.js +6 -0
  27. package/lib/d3-array.js +6 -0
  28. package/lib/d3-color.js +6 -0
  29. package/lib/d3-delaunay.js +6 -0
  30. package/lib/d3-format.js +6 -0
  31. package/lib/d3-interpolate.js +6 -0
  32. package/lib/d3-path.js +6 -0
  33. package/lib/d3-scale.js +6 -0
  34. package/lib/d3-shape.js +6 -0
  35. package/lib/d3-time-format.js +6 -0
  36. package/lib/d3-time.js +6 -0
  37. package/lib/delaunator.js +6 -0
  38. package/lib/internmap.js +6 -0
  39. package/lib/robust-predicates.js +6 -0
  40. package/lib-vendor/d3-array/LICENSE +13 -0
  41. package/lib-vendor/d3-array/dist/d3-array.js +1349 -0
  42. package/lib-vendor/d3-array/dist/d3-array.min.js +777 -0
  43. package/lib-vendor/d3-array/src/array.js +9 -0
  44. package/lib-vendor/d3-array/src/ascending.js +9 -0
  45. package/lib-vendor/d3-array/src/bin.js +126 -0
  46. package/lib-vendor/d3-array/src/bisect.js +15 -0
  47. package/lib-vendor/d3-array/src/bisector.js +59 -0
  48. package/lib-vendor/d3-array/src/blur.js +122 -0
  49. package/lib-vendor/d3-array/src/constant.js +9 -0
  50. package/lib-vendor/d3-array/src/count.js +24 -0
  51. package/lib-vendor/d3-array/src/cross.js +35 -0
  52. package/lib-vendor/d3-array/src/cumsum.js +11 -0
  53. package/lib-vendor/d3-array/src/descending.js +9 -0
  54. package/lib-vendor/d3-array/src/deviation.js +12 -0
  55. package/lib-vendor/d3-array/src/difference.js +16 -0
  56. package/lib-vendor/d3-array/src/disjoint.js +24 -0
  57. package/lib-vendor/d3-array/src/every.js +16 -0
  58. package/lib-vendor/d3-array/src/extent.js +35 -0
  59. package/lib-vendor/d3-array/src/filter.js +17 -0
  60. package/lib-vendor/d3-array/src/fsum.js +77 -0
  61. package/lib-vendor/d3-array/src/greatest.js +31 -0
  62. package/lib-vendor/d3-array/src/greatestIndex.js +23 -0
  63. package/lib-vendor/d3-array/src/group.js +67 -0
  64. package/lib-vendor/d3-array/src/groupSort.js +15 -0
  65. package/lib-vendor/d3-array/src/identity.js +9 -0
  66. package/lib-vendor/d3-array/src/index.js +539 -0
  67. package/lib-vendor/d3-array/src/intersection.js +23 -0
  68. package/lib-vendor/d3-array/src/least.js +31 -0
  69. package/lib-vendor/d3-array/src/leastIndex.js +23 -0
  70. package/lib-vendor/d3-array/src/map.js +11 -0
  71. package/lib-vendor/d3-array/src/max.js +24 -0
  72. package/lib-vendor/d3-array/src/maxIndex.js +26 -0
  73. package/lib-vendor/d3-array/src/mean.js +25 -0
  74. package/lib-vendor/d3-array/src/median.js +16 -0
  75. package/lib-vendor/d3-array/src/merge.js +14 -0
  76. package/lib-vendor/d3-array/src/min.js +24 -0
  77. package/lib-vendor/d3-array/src/minIndex.js +26 -0
  78. package/lib-vendor/d3-array/src/mode.js +33 -0
  79. package/lib-vendor/d3-array/src/nice.js +23 -0
  80. package/lib-vendor/d3-array/src/number.js +26 -0
  81. package/lib-vendor/d3-array/src/pairs.js +21 -0
  82. package/lib-vendor/d3-array/src/permute.js +9 -0
  83. package/lib-vendor/d3-array/src/quantile.js +55 -0
  84. package/lib-vendor/d3-array/src/quickselect.js +47 -0
  85. package/lib-vendor/d3-array/src/range.js +16 -0
  86. package/lib-vendor/d3-array/src/rank.js +30 -0
  87. package/lib-vendor/d3-array/src/reduce.js +28 -0
  88. package/lib-vendor/d3-array/src/reverse.js +10 -0
  89. package/lib-vendor/d3-array/src/scan.js +12 -0
  90. package/lib-vendor/d3-array/src/shuffle.js +20 -0
  91. package/lib-vendor/d3-array/src/some.js +16 -0
  92. package/lib-vendor/d3-array/src/sort.js +45 -0
  93. package/lib-vendor/d3-array/src/subset.js +11 -0
  94. package/lib-vendor/d3-array/src/sum.js +24 -0
  95. package/lib-vendor/d3-array/src/superset.js +28 -0
  96. package/lib-vendor/d3-array/src/threshold/freedmanDiaconis.js +14 -0
  97. package/lib-vendor/d3-array/src/threshold/scott.js +14 -0
  98. package/lib-vendor/d3-array/src/threshold/sturges.js +11 -0
  99. package/lib-vendor/d3-array/src/ticks.js +60 -0
  100. package/lib-vendor/d3-array/src/transpose.js +20 -0
  101. package/lib-vendor/d3-array/src/union.js +16 -0
  102. package/lib-vendor/d3-array/src/variance.js +31 -0
  103. package/lib-vendor/d3-array/src/zip.js +11 -0
  104. package/lib-vendor/d3-color/LICENSE +13 -0
  105. package/lib-vendor/d3-color/dist/d3-color.js +532 -0
  106. package/lib-vendor/d3-color/dist/d3-color.min.js +446 -0
  107. package/lib-vendor/d3-color/src/color.js +366 -0
  108. package/lib-vendor/d3-color/src/cubehelix.js +61 -0
  109. package/lib-vendor/d3-color/src/define.js +16 -0
  110. package/lib-vendor/d3-color/src/index.js +59 -0
  111. package/lib-vendor/d3-color/src/lab.js +117 -0
  112. package/lib-vendor/d3-color/src/math.js +8 -0
  113. package/lib-vendor/d3-delaunay/LICENSE +14 -0
  114. package/lib-vendor/d3-delaunay/dist/d3-delaunay.js +1398 -0
  115. package/lib-vendor/d3-delaunay/dist/d3-delaunay.min.js +853 -0
  116. package/lib-vendor/d3-delaunay/src/delaunay.js +282 -0
  117. package/lib-vendor/d3-delaunay/src/index.js +20 -0
  118. package/lib-vendor/d3-delaunay/src/path.js +43 -0
  119. package/lib-vendor/d3-delaunay/src/polygon.js +24 -0
  120. package/lib-vendor/d3-delaunay/src/voronoi.js +390 -0
  121. package/lib-vendor/d3-format/LICENSE +13 -0
  122. package/lib-vendor/d3-format/dist/d3-format.js +313 -0
  123. package/lib-vendor/d3-format/dist/d3-format.min.js +193 -0
  124. package/lib-vendor/d3-format/src/defaultLocale.js +23 -0
  125. package/lib-vendor/d3-format/src/exponent.js +10 -0
  126. package/lib-vendor/d3-format/src/formatDecimal.js +23 -0
  127. package/lib-vendor/d3-format/src/formatGroup.js +22 -0
  128. package/lib-vendor/d3-format/src/formatNumerals.js +13 -0
  129. package/lib-vendor/d3-format/src/formatPrefixAuto.js +18 -0
  130. package/lib-vendor/d3-format/src/formatRounded.js +14 -0
  131. package/lib-vendor/d3-format/src/formatSpecifier.js +42 -0
  132. package/lib-vendor/d3-format/src/formatTrim.js +25 -0
  133. package/lib-vendor/d3-format/src/formatTypes.js +25 -0
  134. package/lib-vendor/d3-format/src/identity.js +9 -0
  135. package/lib-vendor/d3-format/src/index.js +68 -0
  136. package/lib-vendor/d3-format/src/locale.js +152 -0
  137. package/lib-vendor/d3-format/src/precisionFixed.js +11 -0
  138. package/lib-vendor/d3-format/src/precisionPrefix.js +11 -0
  139. package/lib-vendor/d3-format/src/precisionRound.js +12 -0
  140. package/lib-vendor/d3-interpolate/LICENSE +13 -0
  141. package/lib-vendor/d3-interpolate/dist/d3-interpolate.js +543 -0
  142. package/lib-vendor/d3-interpolate/dist/d3-interpolate.min.js +362 -0
  143. package/lib-vendor/d3-interpolate/src/array.js +28 -0
  144. package/lib-vendor/d3-interpolate/src/basis.js +23 -0
  145. package/lib-vendor/d3-interpolate/src/basisClosed.js +18 -0
  146. package/lib-vendor/d3-interpolate/src/color.js +33 -0
  147. package/lib-vendor/d3-interpolate/src/constant.js +8 -0
  148. package/lib-vendor/d3-interpolate/src/cubehelix.js +32 -0
  149. package/lib-vendor/d3-interpolate/src/date.js +12 -0
  150. package/lib-vendor/d3-interpolate/src/discrete.js +12 -0
  151. package/lib-vendor/d3-interpolate/src/hcl.js +27 -0
  152. package/lib-vendor/d3-interpolate/src/hsl.js +27 -0
  153. package/lib-vendor/d3-interpolate/src/hue.js +14 -0
  154. package/lib-vendor/d3-interpolate/src/index.js +191 -0
  155. package/lib-vendor/d3-interpolate/src/lab.js +22 -0
  156. package/lib-vendor/d3-interpolate/src/number.js +11 -0
  157. package/lib-vendor/d3-interpolate/src/numberArray.js +20 -0
  158. package/lib-vendor/d3-interpolate/src/object.js +26 -0
  159. package/lib-vendor/d3-interpolate/src/piecewise.js +20 -0
  160. package/lib-vendor/d3-interpolate/src/quantize.js +11 -0
  161. package/lib-vendor/d3-interpolate/src/rgb.js +59 -0
  162. package/lib-vendor/d3-interpolate/src/round.js +11 -0
  163. package/lib-vendor/d3-interpolate/src/string.js +75 -0
  164. package/lib-vendor/d3-interpolate/src/transform/decompose.js +31 -0
  165. package/lib-vendor/d3-interpolate/src/transform/index.js +83 -0
  166. package/lib-vendor/d3-interpolate/src/transform/parse.js +25 -0
  167. package/lib-vendor/d3-interpolate/src/value.js +23 -0
  168. package/lib-vendor/d3-interpolate/src/zoom.js +66 -0
  169. package/lib-vendor/d3-path/LICENSE +13 -0
  170. package/lib-vendor/d3-path/dist/d3-path.js +161 -0
  171. package/lib-vendor/d3-path/dist/d3-path.min.js +92 -0
  172. package/lib-vendor/d3-path/src/index.js +24 -0
  173. package/lib-vendor/d3-path/src/path.js +158 -0
  174. package/lib-vendor/d3-scale/LICENSE +13 -0
  175. package/lib-vendor/d3-scale/dist/d3-scale.js +944 -0
  176. package/lib-vendor/d3-scale/dist/d3-scale.min.js +690 -0
  177. package/lib-vendor/d3-scale/src/band.js +87 -0
  178. package/lib-vendor/d3-scale/src/colors.js +11 -0
  179. package/lib-vendor/d3-scale/src/constant.js +11 -0
  180. package/lib-vendor/d3-scale/src/continuous.js +116 -0
  181. package/lib-vendor/d3-scale/src/diverging.js +91 -0
  182. package/lib-vendor/d3-scale/src/identity.js +27 -0
  183. package/lib-vendor/d3-scale/src/index.js +193 -0
  184. package/lib-vendor/d3-scale/src/init.js +38 -0
  185. package/lib-vendor/d3-scale/src/linear.js +67 -0
  186. package/lib-vendor/d3-scale/src/log.js +123 -0
  187. package/lib-vendor/d3-scale/src/nice.js +21 -0
  188. package/lib-vendor/d3-scale/src/number.js +9 -0
  189. package/lib-vendor/d3-scale/src/ordinal.js +44 -0
  190. package/lib-vendor/d3-scale/src/pow.js +44 -0
  191. package/lib-vendor/d3-scale/src/quantile.js +48 -0
  192. package/lib-vendor/d3-scale/src/quantize.js +46 -0
  193. package/lib-vendor/d3-scale/src/radial.js +53 -0
  194. package/lib-vendor/d3-scale/src/sequential.js +90 -0
  195. package/lib-vendor/d3-scale/src/sequentialQuantile.js +38 -0
  196. package/lib-vendor/d3-scale/src/symlog.js +35 -0
  197. package/lib-vendor/d3-scale/src/threshold.js +34 -0
  198. package/lib-vendor/d3-scale/src/tickFormat.js +37 -0
  199. package/lib-vendor/d3-scale/src/time.js +62 -0
  200. package/lib-vendor/d3-scale/src/utcTime.js +13 -0
  201. package/lib-vendor/d3-shape/LICENSE +13 -0
  202. package/lib-vendor/d3-shape/dist/d3-shape.js +2004 -0
  203. package/lib-vendor/d3-shape/dist/d3-shape.min.js +1389 -0
  204. package/lib-vendor/d3-shape/src/arc.js +250 -0
  205. package/lib-vendor/d3-shape/src/area.js +98 -0
  206. package/lib-vendor/d3-shape/src/areaRadial.js +42 -0
  207. package/lib-vendor/d3-shape/src/array.js +12 -0
  208. package/lib-vendor/d3-shape/src/constant.js +11 -0
  209. package/lib-vendor/d3-shape/src/curve/basis.js +62 -0
  210. package/lib-vendor/d3-shape/src/curve/basisClosed.js +70 -0
  211. package/lib-vendor/d3-shape/src/curve/basisOpen.js +54 -0
  212. package/lib-vendor/d3-shape/src/curve/bump.js +81 -0
  213. package/lib-vendor/d3-shape/src/curve/bundle.js +50 -0
  214. package/lib-vendor/d3-shape/src/curve/cardinal.js +69 -0
  215. package/lib-vendor/d3-shape/src/curve/cardinalClosed.js +76 -0
  216. package/lib-vendor/d3-shape/src/curve/cardinalOpen.js +60 -0
  217. package/lib-vendor/d3-shape/src/curve/catmullRom.js +92 -0
  218. package/lib-vendor/d3-shape/src/curve/catmullRomClosed.js +83 -0
  219. package/lib-vendor/d3-shape/src/curve/catmullRomOpen.js +67 -0
  220. package/lib-vendor/d3-shape/src/curve/linear.js +42 -0
  221. package/lib-vendor/d3-shape/src/curve/linearClosed.js +28 -0
  222. package/lib-vendor/d3-shape/src/curve/monotone.js +121 -0
  223. package/lib-vendor/d3-shape/src/curve/natural.js +67 -0
  224. package/lib-vendor/d3-shape/src/curve/radial.js +37 -0
  225. package/lib-vendor/d3-shape/src/curve/step.js +63 -0
  226. package/lib-vendor/d3-shape/src/descending.js +9 -0
  227. package/lib-vendor/d3-shape/src/identity.js +9 -0
  228. package/lib-vendor/d3-shape/src/index.js +436 -0
  229. package/lib-vendor/d3-shape/src/line.js +52 -0
  230. package/lib-vendor/d3-shape/src/lineRadial.js +24 -0
  231. package/lib-vendor/d3-shape/src/link.js +70 -0
  232. package/lib-vendor/d3-shape/src/math.js +26 -0
  233. package/lib-vendor/d3-shape/src/noop.js +7 -0
  234. package/lib-vendor/d3-shape/src/offset/diverging.js +20 -0
  235. package/lib-vendor/d3-shape/src/offset/expand.js +16 -0
  236. package/lib-vendor/d3-shape/src/offset/none.js +15 -0
  237. package/lib-vendor/d3-shape/src/offset/silhouette.js +16 -0
  238. package/lib-vendor/d3-shape/src/offset/wiggle.js +30 -0
  239. package/lib-vendor/d3-shape/src/order/appearance.js +23 -0
  240. package/lib-vendor/d3-shape/src/order/ascending.js +23 -0
  241. package/lib-vendor/d3-shape/src/order/descending.js +11 -0
  242. package/lib-vendor/d3-shape/src/order/insideOut.js +31 -0
  243. package/lib-vendor/d3-shape/src/order/none.js +12 -0
  244. package/lib-vendor/d3-shape/src/order/reverse.js +11 -0
  245. package/lib-vendor/d3-shape/src/path.js +22 -0
  246. package/lib-vendor/d3-shape/src/pie.js +79 -0
  247. package/lib-vendor/d3-shape/src/point.js +13 -0
  248. package/lib-vendor/d3-shape/src/pointRadial.js +9 -0
  249. package/lib-vendor/d3-shape/src/stack.js +55 -0
  250. package/lib-vendor/d3-shape/src/symbol/asterisk.js +21 -0
  251. package/lib-vendor/d3-shape/src/symbol/circle.js +14 -0
  252. package/lib-vendor/d3-shape/src/symbol/cross.js +25 -0
  253. package/lib-vendor/d3-shape/src/symbol/diamond.js +20 -0
  254. package/lib-vendor/d3-shape/src/symbol/diamond2.js +17 -0
  255. package/lib-vendor/d3-shape/src/symbol/plus.js +16 -0
  256. package/lib-vendor/d3-shape/src/symbol/square.js +14 -0
  257. package/lib-vendor/d3-shape/src/symbol/square2.js +17 -0
  258. package/lib-vendor/d3-shape/src/symbol/star.js +28 -0
  259. package/lib-vendor/d3-shape/src/symbol/times.js +16 -0
  260. package/lib-vendor/d3-shape/src/symbol/triangle.js +17 -0
  261. package/lib-vendor/d3-shape/src/symbol/triangle2.js +19 -0
  262. package/lib-vendor/d3-shape/src/symbol/wye.js +32 -0
  263. package/lib-vendor/d3-shape/src/symbol.js +50 -0
  264. package/lib-vendor/d3-time/LICENSE +13 -0
  265. package/lib-vendor/d3-time/dist/d3-time.js +367 -0
  266. package/lib-vendor/d3-time/dist/d3-time.min.js +190 -0
  267. package/lib-vendor/d3-time/src/day.js +30 -0
  268. package/lib-vendor/d3-time/src/duration.js +13 -0
  269. package/lib-vendor/d3-time/src/hour.js +28 -0
  270. package/lib-vendor/d3-time/src/index.js +417 -0
  271. package/lib-vendor/d3-time/src/interval.js +61 -0
  272. package/lib-vendor/d3-time/src/millisecond.js +29 -0
  273. package/lib-vendor/d3-time/src/minute.js +28 -0
  274. package/lib-vendor/d3-time/src/month.js +29 -0
  275. package/lib-vendor/d3-time/src/second.js +18 -0
  276. package/lib-vendor/d3-time/src/ticks.js +41 -0
  277. package/lib-vendor/d3-time/src/week.js +56 -0
  278. package/lib-vendor/d3-time/src/year.js +51 -0
  279. package/lib-vendor/d3-time-format/LICENSE +13 -0
  280. package/lib-vendor/d3-time-format/dist/d3-time-format.js +648 -0
  281. package/lib-vendor/d3-time-format/dist/d3-time-format.min.js +528 -0
  282. package/lib-vendor/d3-time-format/src/defaultLocale.js +32 -0
  283. package/lib-vendor/d3-time-format/src/index.js +60 -0
  284. package/lib-vendor/d3-time-format/src/isoFormat.js +13 -0
  285. package/lib-vendor/d3-time-format/src/isoParse.js +14 -0
  286. package/lib-vendor/d3-time-format/src/locale.js +606 -0
  287. package/lib-vendor/delaunator/LICENSE +15 -0
  288. package/lib-vendor/delaunator/delaunator.js +688 -0
  289. package/lib-vendor/delaunator/delaunator.min.js +316 -0
  290. package/lib-vendor/delaunator/index.js +440 -0
  291. package/lib-vendor/internmap/LICENSE +13 -0
  292. package/lib-vendor/internmap/dist/internmap.js +93 -0
  293. package/lib-vendor/internmap/dist/internmap.min.js +81 -0
  294. package/lib-vendor/internmap/src/index.js +87 -0
  295. package/lib-vendor/robust-predicates/LICENSE +24 -0
  296. package/lib-vendor/robust-predicates/esm/incircle.js +667 -0
  297. package/lib-vendor/robust-predicates/esm/insphere.js +693 -0
  298. package/lib-vendor/robust-predicates/esm/orient2d.js +174 -0
  299. package/lib-vendor/robust-predicates/esm/orient3d.js +422 -0
  300. package/lib-vendor/robust-predicates/esm/util.js +147 -0
  301. package/lib-vendor/robust-predicates/index.js +57 -0
  302. package/lib-vendor/robust-predicates/umd/incircle.js +798 -0
  303. package/lib-vendor/robust-predicates/umd/incircle.min.js +170 -0
  304. package/lib-vendor/robust-predicates/umd/insphere.js +828 -0
  305. package/lib-vendor/robust-predicates/umd/insphere.min.js +223 -0
  306. package/lib-vendor/robust-predicates/umd/orient2d.js +260 -0
  307. package/lib-vendor/robust-predicates/umd/orient2d.min.js +69 -0
  308. package/lib-vendor/robust-predicates/umd/orient3d.js +550 -0
  309. package/lib-vendor/robust-predicates/umd/orient3d.min.js +133 -0
  310. package/lib-vendor/robust-predicates/umd/predicates.js +2073 -0
  311. package/lib-vendor/robust-predicates/umd/predicates.min.js +468 -0
  312. package/package.json +63 -0
@@ -0,0 +1,2073 @@
1
+ "use strict";
2
+
3
+ (function (global, factory) {
4
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : typeof define === 'function' && define.amd ? define(['exports'], factory) : (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.predicates = {}));
5
+ })(this, function (exports) {
6
+ 'use strict';
7
+
8
+ const epsilon = 1.1102230246251565e-16;
9
+ const splitter = 134217729;
10
+ const resulterrbound = (3 + 8 * epsilon) * epsilon;
11
+
12
+ // fast_expansion_sum_zeroelim routine from oritinal code
13
+ function sum(elen, e, flen, f, h) {
14
+ let Q, Qnew, hh, bvirt;
15
+ let enow = e[0];
16
+ let fnow = f[0];
17
+ let eindex = 0;
18
+ let findex = 0;
19
+ if (fnow > enow === fnow > -enow) {
20
+ Q = enow;
21
+ enow = e[++eindex];
22
+ } else {
23
+ Q = fnow;
24
+ fnow = f[++findex];
25
+ }
26
+ let hindex = 0;
27
+ if (eindex < elen && findex < flen) {
28
+ if (fnow > enow === fnow > -enow) {
29
+ Qnew = enow + Q;
30
+ hh = Q - (Qnew - enow);
31
+ enow = e[++eindex];
32
+ } else {
33
+ Qnew = fnow + Q;
34
+ hh = Q - (Qnew - fnow);
35
+ fnow = f[++findex];
36
+ }
37
+ Q = Qnew;
38
+ if (hh !== 0) {
39
+ h[hindex++] = hh;
40
+ }
41
+ while (eindex < elen && findex < flen) {
42
+ if (fnow > enow === fnow > -enow) {
43
+ Qnew = Q + enow;
44
+ bvirt = Qnew - Q;
45
+ hh = Q - (Qnew - bvirt) + (enow - bvirt);
46
+ enow = e[++eindex];
47
+ } else {
48
+ Qnew = Q + fnow;
49
+ bvirt = Qnew - Q;
50
+ hh = Q - (Qnew - bvirt) + (fnow - bvirt);
51
+ fnow = f[++findex];
52
+ }
53
+ Q = Qnew;
54
+ if (hh !== 0) {
55
+ h[hindex++] = hh;
56
+ }
57
+ }
58
+ }
59
+ while (eindex < elen) {
60
+ Qnew = Q + enow;
61
+ bvirt = Qnew - Q;
62
+ hh = Q - (Qnew - bvirt) + (enow - bvirt);
63
+ enow = e[++eindex];
64
+ Q = Qnew;
65
+ if (hh !== 0) {
66
+ h[hindex++] = hh;
67
+ }
68
+ }
69
+ while (findex < flen) {
70
+ Qnew = Q + fnow;
71
+ bvirt = Qnew - Q;
72
+ hh = Q - (Qnew - bvirt) + (fnow - bvirt);
73
+ fnow = f[++findex];
74
+ Q = Qnew;
75
+ if (hh !== 0) {
76
+ h[hindex++] = hh;
77
+ }
78
+ }
79
+ if (Q !== 0 || hindex === 0) {
80
+ h[hindex++] = Q;
81
+ }
82
+ return hindex;
83
+ }
84
+ function sum_three(alen, a, blen, b, clen, c, tmp, out) {
85
+ return sum(sum(alen, a, blen, b, tmp), tmp, clen, c, out);
86
+ }
87
+
88
+ // scale_expansion_zeroelim routine from oritinal code
89
+ function scale(elen, e, b, h) {
90
+ let Q, sum, hh, product1, product0;
91
+ let bvirt, c, ahi, alo, bhi, blo;
92
+ c = splitter * b;
93
+ bhi = c - (c - b);
94
+ blo = b - bhi;
95
+ let enow = e[0];
96
+ Q = enow * b;
97
+ c = splitter * enow;
98
+ ahi = c - (c - enow);
99
+ alo = enow - ahi;
100
+ hh = alo * blo - (Q - ahi * bhi - alo * bhi - ahi * blo);
101
+ let hindex = 0;
102
+ if (hh !== 0) {
103
+ h[hindex++] = hh;
104
+ }
105
+ for (let i = 1; i < elen; i++) {
106
+ enow = e[i];
107
+ product1 = enow * b;
108
+ c = splitter * enow;
109
+ ahi = c - (c - enow);
110
+ alo = enow - ahi;
111
+ product0 = alo * blo - (product1 - ahi * bhi - alo * bhi - ahi * blo);
112
+ sum = Q + product0;
113
+ bvirt = sum - Q;
114
+ hh = Q - (sum - bvirt) + (product0 - bvirt);
115
+ if (hh !== 0) {
116
+ h[hindex++] = hh;
117
+ }
118
+ Q = product1 + sum;
119
+ hh = sum - (Q - product1);
120
+ if (hh !== 0) {
121
+ h[hindex++] = hh;
122
+ }
123
+ }
124
+ if (Q !== 0 || hindex === 0) {
125
+ h[hindex++] = Q;
126
+ }
127
+ return hindex;
128
+ }
129
+ function negate(elen, e) {
130
+ for (let i = 0; i < elen; i++) e[i] = -e[i];
131
+ return elen;
132
+ }
133
+ function estimate(elen, e) {
134
+ let Q = e[0];
135
+ for (let i = 1; i < elen; i++) Q += e[i];
136
+ return Q;
137
+ }
138
+ function vec(n) {
139
+ return new Float64Array(n);
140
+ }
141
+ const ccwerrboundA = (3 + 16 * epsilon) * epsilon;
142
+ const ccwerrboundB = (2 + 12 * epsilon) * epsilon;
143
+ const ccwerrboundC = (9 + 64 * epsilon) * epsilon * epsilon;
144
+ const B = vec(4);
145
+ const C1 = vec(8);
146
+ const C2 = vec(12);
147
+ const D = vec(16);
148
+ const u$2 = vec(4);
149
+ function orient2dadapt(ax, ay, bx, by, cx, cy, detsum) {
150
+ let acxtail, acytail, bcxtail, bcytail;
151
+ let bvirt, c, ahi, alo, bhi, blo, _i, _j, _0, s1, s0, t1, t0, u3;
152
+ const acx = ax - cx;
153
+ const bcx = bx - cx;
154
+ const acy = ay - cy;
155
+ const bcy = by - cy;
156
+ s1 = acx * bcy;
157
+ c = splitter * acx;
158
+ ahi = c - (c - acx);
159
+ alo = acx - ahi;
160
+ c = splitter * bcy;
161
+ bhi = c - (c - bcy);
162
+ blo = bcy - bhi;
163
+ s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
164
+ t1 = acy * bcx;
165
+ c = splitter * acy;
166
+ ahi = c - (c - acy);
167
+ alo = acy - ahi;
168
+ c = splitter * bcx;
169
+ bhi = c - (c - bcx);
170
+ blo = bcx - bhi;
171
+ t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
172
+ _i = s0 - t0;
173
+ bvirt = s0 - _i;
174
+ B[0] = s0 - (_i + bvirt) + (bvirt - t0);
175
+ _j = s1 + _i;
176
+ bvirt = _j - s1;
177
+ _0 = s1 - (_j - bvirt) + (_i - bvirt);
178
+ _i = _0 - t1;
179
+ bvirt = _0 - _i;
180
+ B[1] = _0 - (_i + bvirt) + (bvirt - t1);
181
+ u3 = _j + _i;
182
+ bvirt = u3 - _j;
183
+ B[2] = _j - (u3 - bvirt) + (_i - bvirt);
184
+ B[3] = u3;
185
+ let det = estimate(4, B);
186
+ let errbound = ccwerrboundB * detsum;
187
+ if (det >= errbound || -det >= errbound) {
188
+ return det;
189
+ }
190
+ bvirt = ax - acx;
191
+ acxtail = ax - (acx + bvirt) + (bvirt - cx);
192
+ bvirt = bx - bcx;
193
+ bcxtail = bx - (bcx + bvirt) + (bvirt - cx);
194
+ bvirt = ay - acy;
195
+ acytail = ay - (acy + bvirt) + (bvirt - cy);
196
+ bvirt = by - bcy;
197
+ bcytail = by - (bcy + bvirt) + (bvirt - cy);
198
+ if (acxtail === 0 && acytail === 0 && bcxtail === 0 && bcytail === 0) {
199
+ return det;
200
+ }
201
+ errbound = ccwerrboundC * detsum + resulterrbound * Math.abs(det);
202
+ det += acx * bcytail + bcy * acxtail - (acy * bcxtail + bcx * acytail);
203
+ if (det >= errbound || -det >= errbound) return det;
204
+ s1 = acxtail * bcy;
205
+ c = splitter * acxtail;
206
+ ahi = c - (c - acxtail);
207
+ alo = acxtail - ahi;
208
+ c = splitter * bcy;
209
+ bhi = c - (c - bcy);
210
+ blo = bcy - bhi;
211
+ s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
212
+ t1 = acytail * bcx;
213
+ c = splitter * acytail;
214
+ ahi = c - (c - acytail);
215
+ alo = acytail - ahi;
216
+ c = splitter * bcx;
217
+ bhi = c - (c - bcx);
218
+ blo = bcx - bhi;
219
+ t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
220
+ _i = s0 - t0;
221
+ bvirt = s0 - _i;
222
+ u$2[0] = s0 - (_i + bvirt) + (bvirt - t0);
223
+ _j = s1 + _i;
224
+ bvirt = _j - s1;
225
+ _0 = s1 - (_j - bvirt) + (_i - bvirt);
226
+ _i = _0 - t1;
227
+ bvirt = _0 - _i;
228
+ u$2[1] = _0 - (_i + bvirt) + (bvirt - t1);
229
+ u3 = _j + _i;
230
+ bvirt = u3 - _j;
231
+ u$2[2] = _j - (u3 - bvirt) + (_i - bvirt);
232
+ u$2[3] = u3;
233
+ const C1len = sum(4, B, 4, u$2, C1);
234
+ s1 = acx * bcytail;
235
+ c = splitter * acx;
236
+ ahi = c - (c - acx);
237
+ alo = acx - ahi;
238
+ c = splitter * bcytail;
239
+ bhi = c - (c - bcytail);
240
+ blo = bcytail - bhi;
241
+ s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
242
+ t1 = acy * bcxtail;
243
+ c = splitter * acy;
244
+ ahi = c - (c - acy);
245
+ alo = acy - ahi;
246
+ c = splitter * bcxtail;
247
+ bhi = c - (c - bcxtail);
248
+ blo = bcxtail - bhi;
249
+ t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
250
+ _i = s0 - t0;
251
+ bvirt = s0 - _i;
252
+ u$2[0] = s0 - (_i + bvirt) + (bvirt - t0);
253
+ _j = s1 + _i;
254
+ bvirt = _j - s1;
255
+ _0 = s1 - (_j - bvirt) + (_i - bvirt);
256
+ _i = _0 - t1;
257
+ bvirt = _0 - _i;
258
+ u$2[1] = _0 - (_i + bvirt) + (bvirt - t1);
259
+ u3 = _j + _i;
260
+ bvirt = u3 - _j;
261
+ u$2[2] = _j - (u3 - bvirt) + (_i - bvirt);
262
+ u$2[3] = u3;
263
+ const C2len = sum(C1len, C1, 4, u$2, C2);
264
+ s1 = acxtail * bcytail;
265
+ c = splitter * acxtail;
266
+ ahi = c - (c - acxtail);
267
+ alo = acxtail - ahi;
268
+ c = splitter * bcytail;
269
+ bhi = c - (c - bcytail);
270
+ blo = bcytail - bhi;
271
+ s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
272
+ t1 = acytail * bcxtail;
273
+ c = splitter * acytail;
274
+ ahi = c - (c - acytail);
275
+ alo = acytail - ahi;
276
+ c = splitter * bcxtail;
277
+ bhi = c - (c - bcxtail);
278
+ blo = bcxtail - bhi;
279
+ t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
280
+ _i = s0 - t0;
281
+ bvirt = s0 - _i;
282
+ u$2[0] = s0 - (_i + bvirt) + (bvirt - t0);
283
+ _j = s1 + _i;
284
+ bvirt = _j - s1;
285
+ _0 = s1 - (_j - bvirt) + (_i - bvirt);
286
+ _i = _0 - t1;
287
+ bvirt = _0 - _i;
288
+ u$2[1] = _0 - (_i + bvirt) + (bvirt - t1);
289
+ u3 = _j + _i;
290
+ bvirt = u3 - _j;
291
+ u$2[2] = _j - (u3 - bvirt) + (_i - bvirt);
292
+ u$2[3] = u3;
293
+ const Dlen = sum(C2len, C2, 4, u$2, D);
294
+ return D[Dlen - 1];
295
+ }
296
+ function orient2d(ax, ay, bx, by, cx, cy) {
297
+ const detleft = (ay - cy) * (bx - cx);
298
+ const detright = (ax - cx) * (by - cy);
299
+ const det = detleft - detright;
300
+ const detsum = Math.abs(detleft + detright);
301
+ if (Math.abs(det) >= ccwerrboundA * detsum) return det;
302
+ return -orient2dadapt(ax, ay, bx, by, cx, cy, detsum);
303
+ }
304
+ function orient2dfast(ax, ay, bx, by, cx, cy) {
305
+ return (ay - cy) * (bx - cx) - (ax - cx) * (by - cy);
306
+ }
307
+ const o3derrboundA = (7 + 56 * epsilon) * epsilon;
308
+ const o3derrboundB = (3 + 28 * epsilon) * epsilon;
309
+ const o3derrboundC = (26 + 288 * epsilon) * epsilon * epsilon;
310
+ const bc$2 = vec(4);
311
+ const ca$1 = vec(4);
312
+ const ab$2 = vec(4);
313
+ const at_b = vec(4);
314
+ const at_c = vec(4);
315
+ const bt_c = vec(4);
316
+ const bt_a = vec(4);
317
+ const ct_a = vec(4);
318
+ const ct_b = vec(4);
319
+ const bct$1 = vec(8);
320
+ const cat$1 = vec(8);
321
+ const abt$1 = vec(8);
322
+ const u$1 = vec(4);
323
+ const _8$2 = vec(8);
324
+ const _8b$1 = vec(8);
325
+ const _16$2 = vec(8);
326
+ const _12 = vec(12);
327
+ let fin$2 = vec(192);
328
+ let fin2$1 = vec(192);
329
+ function finadd$1(finlen, alen, a) {
330
+ finlen = sum(finlen, fin$2, alen, a, fin2$1);
331
+ const tmp = fin$2;
332
+ fin$2 = fin2$1;
333
+ fin2$1 = tmp;
334
+ return finlen;
335
+ }
336
+ function tailinit(xtail, ytail, ax, ay, bx, by, a, b) {
337
+ let bvirt, c, ahi, alo, bhi, blo, _i, _j, _0, s1, s0, t1, t0, u3, negate;
338
+ if (xtail === 0) {
339
+ if (ytail === 0) {
340
+ a[0] = 0;
341
+ b[0] = 0;
342
+ return 1;
343
+ } else {
344
+ negate = -ytail;
345
+ s1 = negate * ax;
346
+ c = splitter * negate;
347
+ ahi = c - (c - negate);
348
+ alo = negate - ahi;
349
+ c = splitter * ax;
350
+ bhi = c - (c - ax);
351
+ blo = ax - bhi;
352
+ a[0] = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
353
+ a[1] = s1;
354
+ s1 = ytail * bx;
355
+ c = splitter * ytail;
356
+ ahi = c - (c - ytail);
357
+ alo = ytail - ahi;
358
+ c = splitter * bx;
359
+ bhi = c - (c - bx);
360
+ blo = bx - bhi;
361
+ b[0] = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
362
+ b[1] = s1;
363
+ return 2;
364
+ }
365
+ } else {
366
+ if (ytail === 0) {
367
+ s1 = xtail * ay;
368
+ c = splitter * xtail;
369
+ ahi = c - (c - xtail);
370
+ alo = xtail - ahi;
371
+ c = splitter * ay;
372
+ bhi = c - (c - ay);
373
+ blo = ay - bhi;
374
+ a[0] = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
375
+ a[1] = s1;
376
+ negate = -xtail;
377
+ s1 = negate * by;
378
+ c = splitter * negate;
379
+ ahi = c - (c - negate);
380
+ alo = negate - ahi;
381
+ c = splitter * by;
382
+ bhi = c - (c - by);
383
+ blo = by - bhi;
384
+ b[0] = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
385
+ b[1] = s1;
386
+ return 2;
387
+ } else {
388
+ s1 = xtail * ay;
389
+ c = splitter * xtail;
390
+ ahi = c - (c - xtail);
391
+ alo = xtail - ahi;
392
+ c = splitter * ay;
393
+ bhi = c - (c - ay);
394
+ blo = ay - bhi;
395
+ s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
396
+ t1 = ytail * ax;
397
+ c = splitter * ytail;
398
+ ahi = c - (c - ytail);
399
+ alo = ytail - ahi;
400
+ c = splitter * ax;
401
+ bhi = c - (c - ax);
402
+ blo = ax - bhi;
403
+ t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
404
+ _i = s0 - t0;
405
+ bvirt = s0 - _i;
406
+ a[0] = s0 - (_i + bvirt) + (bvirt - t0);
407
+ _j = s1 + _i;
408
+ bvirt = _j - s1;
409
+ _0 = s1 - (_j - bvirt) + (_i - bvirt);
410
+ _i = _0 - t1;
411
+ bvirt = _0 - _i;
412
+ a[1] = _0 - (_i + bvirt) + (bvirt - t1);
413
+ u3 = _j + _i;
414
+ bvirt = u3 - _j;
415
+ a[2] = _j - (u3 - bvirt) + (_i - bvirt);
416
+ a[3] = u3;
417
+ s1 = ytail * bx;
418
+ c = splitter * ytail;
419
+ ahi = c - (c - ytail);
420
+ alo = ytail - ahi;
421
+ c = splitter * bx;
422
+ bhi = c - (c - bx);
423
+ blo = bx - bhi;
424
+ s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
425
+ t1 = xtail * by;
426
+ c = splitter * xtail;
427
+ ahi = c - (c - xtail);
428
+ alo = xtail - ahi;
429
+ c = splitter * by;
430
+ bhi = c - (c - by);
431
+ blo = by - bhi;
432
+ t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
433
+ _i = s0 - t0;
434
+ bvirt = s0 - _i;
435
+ b[0] = s0 - (_i + bvirt) + (bvirt - t0);
436
+ _j = s1 + _i;
437
+ bvirt = _j - s1;
438
+ _0 = s1 - (_j - bvirt) + (_i - bvirt);
439
+ _i = _0 - t1;
440
+ bvirt = _0 - _i;
441
+ b[1] = _0 - (_i + bvirt) + (bvirt - t1);
442
+ u3 = _j + _i;
443
+ bvirt = u3 - _j;
444
+ b[2] = _j - (u3 - bvirt) + (_i - bvirt);
445
+ b[3] = u3;
446
+ return 4;
447
+ }
448
+ }
449
+ }
450
+ function tailadd(finlen, a, b, k, z) {
451
+ let bvirt, c, ahi, alo, bhi, blo, _i, _j, _k, _0, s1, s0, u3;
452
+ s1 = a * b;
453
+ c = splitter * a;
454
+ ahi = c - (c - a);
455
+ alo = a - ahi;
456
+ c = splitter * b;
457
+ bhi = c - (c - b);
458
+ blo = b - bhi;
459
+ s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
460
+ c = splitter * k;
461
+ bhi = c - (c - k);
462
+ blo = k - bhi;
463
+ _i = s0 * k;
464
+ c = splitter * s0;
465
+ ahi = c - (c - s0);
466
+ alo = s0 - ahi;
467
+ u$1[0] = alo * blo - (_i - ahi * bhi - alo * bhi - ahi * blo);
468
+ _j = s1 * k;
469
+ c = splitter * s1;
470
+ ahi = c - (c - s1);
471
+ alo = s1 - ahi;
472
+ _0 = alo * blo - (_j - ahi * bhi - alo * bhi - ahi * blo);
473
+ _k = _i + _0;
474
+ bvirt = _k - _i;
475
+ u$1[1] = _i - (_k - bvirt) + (_0 - bvirt);
476
+ u3 = _j + _k;
477
+ u$1[2] = _k - (u3 - _j);
478
+ u$1[3] = u3;
479
+ finlen = finadd$1(finlen, 4, u$1);
480
+ if (z !== 0) {
481
+ c = splitter * z;
482
+ bhi = c - (c - z);
483
+ blo = z - bhi;
484
+ _i = s0 * z;
485
+ c = splitter * s0;
486
+ ahi = c - (c - s0);
487
+ alo = s0 - ahi;
488
+ u$1[0] = alo * blo - (_i - ahi * bhi - alo * bhi - ahi * blo);
489
+ _j = s1 * z;
490
+ c = splitter * s1;
491
+ ahi = c - (c - s1);
492
+ alo = s1 - ahi;
493
+ _0 = alo * blo - (_j - ahi * bhi - alo * bhi - ahi * blo);
494
+ _k = _i + _0;
495
+ bvirt = _k - _i;
496
+ u$1[1] = _i - (_k - bvirt) + (_0 - bvirt);
497
+ u3 = _j + _k;
498
+ u$1[2] = _k - (u3 - _j);
499
+ u$1[3] = u3;
500
+ finlen = finadd$1(finlen, 4, u$1);
501
+ }
502
+ return finlen;
503
+ }
504
+ function orient3dadapt(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz, permanent) {
505
+ let finlen;
506
+ let adxtail, bdxtail, cdxtail;
507
+ let adytail, bdytail, cdytail;
508
+ let adztail, bdztail, cdztail;
509
+ let bvirt, c, ahi, alo, bhi, blo, _i, _j, _0, s1, s0, t1, t0, u3;
510
+ const adx = ax - dx;
511
+ const bdx = bx - dx;
512
+ const cdx = cx - dx;
513
+ const ady = ay - dy;
514
+ const bdy = by - dy;
515
+ const cdy = cy - dy;
516
+ const adz = az - dz;
517
+ const bdz = bz - dz;
518
+ const cdz = cz - dz;
519
+ s1 = bdx * cdy;
520
+ c = splitter * bdx;
521
+ ahi = c - (c - bdx);
522
+ alo = bdx - ahi;
523
+ c = splitter * cdy;
524
+ bhi = c - (c - cdy);
525
+ blo = cdy - bhi;
526
+ s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
527
+ t1 = cdx * bdy;
528
+ c = splitter * cdx;
529
+ ahi = c - (c - cdx);
530
+ alo = cdx - ahi;
531
+ c = splitter * bdy;
532
+ bhi = c - (c - bdy);
533
+ blo = bdy - bhi;
534
+ t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
535
+ _i = s0 - t0;
536
+ bvirt = s0 - _i;
537
+ bc$2[0] = s0 - (_i + bvirt) + (bvirt - t0);
538
+ _j = s1 + _i;
539
+ bvirt = _j - s1;
540
+ _0 = s1 - (_j - bvirt) + (_i - bvirt);
541
+ _i = _0 - t1;
542
+ bvirt = _0 - _i;
543
+ bc$2[1] = _0 - (_i + bvirt) + (bvirt - t1);
544
+ u3 = _j + _i;
545
+ bvirt = u3 - _j;
546
+ bc$2[2] = _j - (u3 - bvirt) + (_i - bvirt);
547
+ bc$2[3] = u3;
548
+ s1 = cdx * ady;
549
+ c = splitter * cdx;
550
+ ahi = c - (c - cdx);
551
+ alo = cdx - ahi;
552
+ c = splitter * ady;
553
+ bhi = c - (c - ady);
554
+ blo = ady - bhi;
555
+ s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
556
+ t1 = adx * cdy;
557
+ c = splitter * adx;
558
+ ahi = c - (c - adx);
559
+ alo = adx - ahi;
560
+ c = splitter * cdy;
561
+ bhi = c - (c - cdy);
562
+ blo = cdy - bhi;
563
+ t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
564
+ _i = s0 - t0;
565
+ bvirt = s0 - _i;
566
+ ca$1[0] = s0 - (_i + bvirt) + (bvirt - t0);
567
+ _j = s1 + _i;
568
+ bvirt = _j - s1;
569
+ _0 = s1 - (_j - bvirt) + (_i - bvirt);
570
+ _i = _0 - t1;
571
+ bvirt = _0 - _i;
572
+ ca$1[1] = _0 - (_i + bvirt) + (bvirt - t1);
573
+ u3 = _j + _i;
574
+ bvirt = u3 - _j;
575
+ ca$1[2] = _j - (u3 - bvirt) + (_i - bvirt);
576
+ ca$1[3] = u3;
577
+ s1 = adx * bdy;
578
+ c = splitter * adx;
579
+ ahi = c - (c - adx);
580
+ alo = adx - ahi;
581
+ c = splitter * bdy;
582
+ bhi = c - (c - bdy);
583
+ blo = bdy - bhi;
584
+ s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
585
+ t1 = bdx * ady;
586
+ c = splitter * bdx;
587
+ ahi = c - (c - bdx);
588
+ alo = bdx - ahi;
589
+ c = splitter * ady;
590
+ bhi = c - (c - ady);
591
+ blo = ady - bhi;
592
+ t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
593
+ _i = s0 - t0;
594
+ bvirt = s0 - _i;
595
+ ab$2[0] = s0 - (_i + bvirt) + (bvirt - t0);
596
+ _j = s1 + _i;
597
+ bvirt = _j - s1;
598
+ _0 = s1 - (_j - bvirt) + (_i - bvirt);
599
+ _i = _0 - t1;
600
+ bvirt = _0 - _i;
601
+ ab$2[1] = _0 - (_i + bvirt) + (bvirt - t1);
602
+ u3 = _j + _i;
603
+ bvirt = u3 - _j;
604
+ ab$2[2] = _j - (u3 - bvirt) + (_i - bvirt);
605
+ ab$2[3] = u3;
606
+ finlen = sum(sum(scale(4, bc$2, adz, _8$2), _8$2, scale(4, ca$1, bdz, _8b$1), _8b$1, _16$2), _16$2, scale(4, ab$2, cdz, _8$2), _8$2, fin$2);
607
+ let det = estimate(finlen, fin$2);
608
+ let errbound = o3derrboundB * permanent;
609
+ if (det >= errbound || -det >= errbound) {
610
+ return det;
611
+ }
612
+ bvirt = ax - adx;
613
+ adxtail = ax - (adx + bvirt) + (bvirt - dx);
614
+ bvirt = bx - bdx;
615
+ bdxtail = bx - (bdx + bvirt) + (bvirt - dx);
616
+ bvirt = cx - cdx;
617
+ cdxtail = cx - (cdx + bvirt) + (bvirt - dx);
618
+ bvirt = ay - ady;
619
+ adytail = ay - (ady + bvirt) + (bvirt - dy);
620
+ bvirt = by - bdy;
621
+ bdytail = by - (bdy + bvirt) + (bvirt - dy);
622
+ bvirt = cy - cdy;
623
+ cdytail = cy - (cdy + bvirt) + (bvirt - dy);
624
+ bvirt = az - adz;
625
+ adztail = az - (adz + bvirt) + (bvirt - dz);
626
+ bvirt = bz - bdz;
627
+ bdztail = bz - (bdz + bvirt) + (bvirt - dz);
628
+ bvirt = cz - cdz;
629
+ cdztail = cz - (cdz + bvirt) + (bvirt - dz);
630
+ if (adxtail === 0 && bdxtail === 0 && cdxtail === 0 && adytail === 0 && bdytail === 0 && cdytail === 0 && adztail === 0 && bdztail === 0 && cdztail === 0) {
631
+ return det;
632
+ }
633
+ errbound = o3derrboundC * permanent + resulterrbound * Math.abs(det);
634
+ det += adz * (bdx * cdytail + cdy * bdxtail - (bdy * cdxtail + cdx * bdytail)) + adztail * (bdx * cdy - bdy * cdx) + bdz * (cdx * adytail + ady * cdxtail - (cdy * adxtail + adx * cdytail)) + bdztail * (cdx * ady - cdy * adx) + cdz * (adx * bdytail + bdy * adxtail - (ady * bdxtail + bdx * adytail)) + cdztail * (adx * bdy - ady * bdx);
635
+ if (det >= errbound || -det >= errbound) {
636
+ return det;
637
+ }
638
+ const at_len = tailinit(adxtail, adytail, bdx, bdy, cdx, cdy, at_b, at_c);
639
+ const bt_len = tailinit(bdxtail, bdytail, cdx, cdy, adx, ady, bt_c, bt_a);
640
+ const ct_len = tailinit(cdxtail, cdytail, adx, ady, bdx, bdy, ct_a, ct_b);
641
+ const bctlen = sum(bt_len, bt_c, ct_len, ct_b, bct$1);
642
+ finlen = finadd$1(finlen, scale(bctlen, bct$1, adz, _16$2), _16$2);
643
+ const catlen = sum(ct_len, ct_a, at_len, at_c, cat$1);
644
+ finlen = finadd$1(finlen, scale(catlen, cat$1, bdz, _16$2), _16$2);
645
+ const abtlen = sum(at_len, at_b, bt_len, bt_a, abt$1);
646
+ finlen = finadd$1(finlen, scale(abtlen, abt$1, cdz, _16$2), _16$2);
647
+ if (adztail !== 0) {
648
+ finlen = finadd$1(finlen, scale(4, bc$2, adztail, _12), _12);
649
+ finlen = finadd$1(finlen, scale(bctlen, bct$1, adztail, _16$2), _16$2);
650
+ }
651
+ if (bdztail !== 0) {
652
+ finlen = finadd$1(finlen, scale(4, ca$1, bdztail, _12), _12);
653
+ finlen = finadd$1(finlen, scale(catlen, cat$1, bdztail, _16$2), _16$2);
654
+ }
655
+ if (cdztail !== 0) {
656
+ finlen = finadd$1(finlen, scale(4, ab$2, cdztail, _12), _12);
657
+ finlen = finadd$1(finlen, scale(abtlen, abt$1, cdztail, _16$2), _16$2);
658
+ }
659
+ if (adxtail !== 0) {
660
+ if (bdytail !== 0) {
661
+ finlen = tailadd(finlen, adxtail, bdytail, cdz, cdztail);
662
+ }
663
+ if (cdytail !== 0) {
664
+ finlen = tailadd(finlen, -adxtail, cdytail, bdz, bdztail);
665
+ }
666
+ }
667
+ if (bdxtail !== 0) {
668
+ if (cdytail !== 0) {
669
+ finlen = tailadd(finlen, bdxtail, cdytail, adz, adztail);
670
+ }
671
+ if (adytail !== 0) {
672
+ finlen = tailadd(finlen, -bdxtail, adytail, cdz, cdztail);
673
+ }
674
+ }
675
+ if (cdxtail !== 0) {
676
+ if (adytail !== 0) {
677
+ finlen = tailadd(finlen, cdxtail, adytail, bdz, bdztail);
678
+ }
679
+ if (bdytail !== 0) {
680
+ finlen = tailadd(finlen, -cdxtail, bdytail, adz, adztail);
681
+ }
682
+ }
683
+ return fin$2[finlen - 1];
684
+ }
685
+ function orient3d(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz) {
686
+ const adx = ax - dx;
687
+ const bdx = bx - dx;
688
+ const cdx = cx - dx;
689
+ const ady = ay - dy;
690
+ const bdy = by - dy;
691
+ const cdy = cy - dy;
692
+ const adz = az - dz;
693
+ const bdz = bz - dz;
694
+ const cdz = cz - dz;
695
+ const bdxcdy = bdx * cdy;
696
+ const cdxbdy = cdx * bdy;
697
+ const cdxady = cdx * ady;
698
+ const adxcdy = adx * cdy;
699
+ const adxbdy = adx * bdy;
700
+ const bdxady = bdx * ady;
701
+ const det = adz * (bdxcdy - cdxbdy) + bdz * (cdxady - adxcdy) + cdz * (adxbdy - bdxady);
702
+ const permanent = (Math.abs(bdxcdy) + Math.abs(cdxbdy)) * Math.abs(adz) + (Math.abs(cdxady) + Math.abs(adxcdy)) * Math.abs(bdz) + (Math.abs(adxbdy) + Math.abs(bdxady)) * Math.abs(cdz);
703
+ const errbound = o3derrboundA * permanent;
704
+ if (det > errbound || -det > errbound) {
705
+ return det;
706
+ }
707
+ return orient3dadapt(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz, permanent);
708
+ }
709
+ function orient3dfast(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz) {
710
+ const adx = ax - dx;
711
+ const bdx = bx - dx;
712
+ const cdx = cx - dx;
713
+ const ady = ay - dy;
714
+ const bdy = by - dy;
715
+ const cdy = cy - dy;
716
+ const adz = az - dz;
717
+ const bdz = bz - dz;
718
+ const cdz = cz - dz;
719
+ return adx * (bdy * cdz - bdz * cdy) + bdx * (cdy * adz - cdz * ady) + cdx * (ady * bdz - adz * bdy);
720
+ }
721
+ const iccerrboundA = (10 + 96 * epsilon) * epsilon;
722
+ const iccerrboundB = (4 + 48 * epsilon) * epsilon;
723
+ const iccerrboundC = (44 + 576 * epsilon) * epsilon * epsilon;
724
+ const bc$1 = vec(4);
725
+ const ca = vec(4);
726
+ const ab$1 = vec(4);
727
+ const aa = vec(4);
728
+ const bb = vec(4);
729
+ const cc = vec(4);
730
+ const u = vec(4);
731
+ const v = vec(4);
732
+ const axtbc = vec(8);
733
+ const aytbc = vec(8);
734
+ const bxtca = vec(8);
735
+ const bytca = vec(8);
736
+ const cxtab = vec(8);
737
+ const cytab = vec(8);
738
+ const abt = vec(8);
739
+ const bct = vec(8);
740
+ const cat = vec(8);
741
+ const abtt = vec(4);
742
+ const bctt = vec(4);
743
+ const catt = vec(4);
744
+ const _8$1 = vec(8);
745
+ const _16$1 = vec(16);
746
+ const _16b = vec(16);
747
+ const _16c = vec(16);
748
+ const _32 = vec(32);
749
+ const _32b = vec(32);
750
+ const _48$1 = vec(48);
751
+ const _64 = vec(64);
752
+ let fin$1 = vec(1152);
753
+ let fin2 = vec(1152);
754
+ function finadd(finlen, a, alen) {
755
+ finlen = sum(finlen, fin$1, a, alen, fin2);
756
+ const tmp = fin$1;
757
+ fin$1 = fin2;
758
+ fin2 = tmp;
759
+ return finlen;
760
+ }
761
+ function incircleadapt(ax, ay, bx, by, cx, cy, dx, dy, permanent) {
762
+ let finlen;
763
+ let adxtail, bdxtail, cdxtail, adytail, bdytail, cdytail;
764
+ let axtbclen, aytbclen, bxtcalen, bytcalen, cxtablen, cytablen;
765
+ let abtlen, bctlen, catlen;
766
+ let abttlen, bcttlen, cattlen;
767
+ let n1, n0;
768
+ let bvirt, c, ahi, alo, bhi, blo, _i, _j, _0, s1, s0, t1, t0, u3;
769
+ const adx = ax - dx;
770
+ const bdx = bx - dx;
771
+ const cdx = cx - dx;
772
+ const ady = ay - dy;
773
+ const bdy = by - dy;
774
+ const cdy = cy - dy;
775
+ s1 = bdx * cdy;
776
+ c = splitter * bdx;
777
+ ahi = c - (c - bdx);
778
+ alo = bdx - ahi;
779
+ c = splitter * cdy;
780
+ bhi = c - (c - cdy);
781
+ blo = cdy - bhi;
782
+ s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
783
+ t1 = cdx * bdy;
784
+ c = splitter * cdx;
785
+ ahi = c - (c - cdx);
786
+ alo = cdx - ahi;
787
+ c = splitter * bdy;
788
+ bhi = c - (c - bdy);
789
+ blo = bdy - bhi;
790
+ t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
791
+ _i = s0 - t0;
792
+ bvirt = s0 - _i;
793
+ bc$1[0] = s0 - (_i + bvirt) + (bvirt - t0);
794
+ _j = s1 + _i;
795
+ bvirt = _j - s1;
796
+ _0 = s1 - (_j - bvirt) + (_i - bvirt);
797
+ _i = _0 - t1;
798
+ bvirt = _0 - _i;
799
+ bc$1[1] = _0 - (_i + bvirt) + (bvirt - t1);
800
+ u3 = _j + _i;
801
+ bvirt = u3 - _j;
802
+ bc$1[2] = _j - (u3 - bvirt) + (_i - bvirt);
803
+ bc$1[3] = u3;
804
+ s1 = cdx * ady;
805
+ c = splitter * cdx;
806
+ ahi = c - (c - cdx);
807
+ alo = cdx - ahi;
808
+ c = splitter * ady;
809
+ bhi = c - (c - ady);
810
+ blo = ady - bhi;
811
+ s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
812
+ t1 = adx * cdy;
813
+ c = splitter * adx;
814
+ ahi = c - (c - adx);
815
+ alo = adx - ahi;
816
+ c = splitter * cdy;
817
+ bhi = c - (c - cdy);
818
+ blo = cdy - bhi;
819
+ t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
820
+ _i = s0 - t0;
821
+ bvirt = s0 - _i;
822
+ ca[0] = s0 - (_i + bvirt) + (bvirt - t0);
823
+ _j = s1 + _i;
824
+ bvirt = _j - s1;
825
+ _0 = s1 - (_j - bvirt) + (_i - bvirt);
826
+ _i = _0 - t1;
827
+ bvirt = _0 - _i;
828
+ ca[1] = _0 - (_i + bvirt) + (bvirt - t1);
829
+ u3 = _j + _i;
830
+ bvirt = u3 - _j;
831
+ ca[2] = _j - (u3 - bvirt) + (_i - bvirt);
832
+ ca[3] = u3;
833
+ s1 = adx * bdy;
834
+ c = splitter * adx;
835
+ ahi = c - (c - adx);
836
+ alo = adx - ahi;
837
+ c = splitter * bdy;
838
+ bhi = c - (c - bdy);
839
+ blo = bdy - bhi;
840
+ s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
841
+ t1 = bdx * ady;
842
+ c = splitter * bdx;
843
+ ahi = c - (c - bdx);
844
+ alo = bdx - ahi;
845
+ c = splitter * ady;
846
+ bhi = c - (c - ady);
847
+ blo = ady - bhi;
848
+ t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
849
+ _i = s0 - t0;
850
+ bvirt = s0 - _i;
851
+ ab$1[0] = s0 - (_i + bvirt) + (bvirt - t0);
852
+ _j = s1 + _i;
853
+ bvirt = _j - s1;
854
+ _0 = s1 - (_j - bvirt) + (_i - bvirt);
855
+ _i = _0 - t1;
856
+ bvirt = _0 - _i;
857
+ ab$1[1] = _0 - (_i + bvirt) + (bvirt - t1);
858
+ u3 = _j + _i;
859
+ bvirt = u3 - _j;
860
+ ab$1[2] = _j - (u3 - bvirt) + (_i - bvirt);
861
+ ab$1[3] = u3;
862
+ finlen = sum(sum(sum(scale(scale(4, bc$1, adx, _8$1), _8$1, adx, _16$1), _16$1, scale(scale(4, bc$1, ady, _8$1), _8$1, ady, _16b), _16b, _32), _32, sum(scale(scale(4, ca, bdx, _8$1), _8$1, bdx, _16$1), _16$1, scale(scale(4, ca, bdy, _8$1), _8$1, bdy, _16b), _16b, _32b), _32b, _64), _64, sum(scale(scale(4, ab$1, cdx, _8$1), _8$1, cdx, _16$1), _16$1, scale(scale(4, ab$1, cdy, _8$1), _8$1, cdy, _16b), _16b, _32), _32, fin$1);
863
+ let det = estimate(finlen, fin$1);
864
+ let errbound = iccerrboundB * permanent;
865
+ if (det >= errbound || -det >= errbound) {
866
+ return det;
867
+ }
868
+ bvirt = ax - adx;
869
+ adxtail = ax - (adx + bvirt) + (bvirt - dx);
870
+ bvirt = ay - ady;
871
+ adytail = ay - (ady + bvirt) + (bvirt - dy);
872
+ bvirt = bx - bdx;
873
+ bdxtail = bx - (bdx + bvirt) + (bvirt - dx);
874
+ bvirt = by - bdy;
875
+ bdytail = by - (bdy + bvirt) + (bvirt - dy);
876
+ bvirt = cx - cdx;
877
+ cdxtail = cx - (cdx + bvirt) + (bvirt - dx);
878
+ bvirt = cy - cdy;
879
+ cdytail = cy - (cdy + bvirt) + (bvirt - dy);
880
+ if (adxtail === 0 && bdxtail === 0 && cdxtail === 0 && adytail === 0 && bdytail === 0 && cdytail === 0) {
881
+ return det;
882
+ }
883
+ errbound = iccerrboundC * permanent + resulterrbound * Math.abs(det);
884
+ det += (adx * adx + ady * ady) * (bdx * cdytail + cdy * bdxtail - (bdy * cdxtail + cdx * bdytail)) + 2 * (adx * adxtail + ady * adytail) * (bdx * cdy - bdy * cdx) + ((bdx * bdx + bdy * bdy) * (cdx * adytail + ady * cdxtail - (cdy * adxtail + adx * cdytail)) + 2 * (bdx * bdxtail + bdy * bdytail) * (cdx * ady - cdy * adx)) + ((cdx * cdx + cdy * cdy) * (adx * bdytail + bdy * adxtail - (ady * bdxtail + bdx * adytail)) + 2 * (cdx * cdxtail + cdy * cdytail) * (adx * bdy - ady * bdx));
885
+ if (det >= errbound || -det >= errbound) {
886
+ return det;
887
+ }
888
+ if (bdxtail !== 0 || bdytail !== 0 || cdxtail !== 0 || cdytail !== 0) {
889
+ s1 = adx * adx;
890
+ c = splitter * adx;
891
+ ahi = c - (c - adx);
892
+ alo = adx - ahi;
893
+ s0 = alo * alo - (s1 - ahi * ahi - (ahi + ahi) * alo);
894
+ t1 = ady * ady;
895
+ c = splitter * ady;
896
+ ahi = c - (c - ady);
897
+ alo = ady - ahi;
898
+ t0 = alo * alo - (t1 - ahi * ahi - (ahi + ahi) * alo);
899
+ _i = s0 + t0;
900
+ bvirt = _i - s0;
901
+ aa[0] = s0 - (_i - bvirt) + (t0 - bvirt);
902
+ _j = s1 + _i;
903
+ bvirt = _j - s1;
904
+ _0 = s1 - (_j - bvirt) + (_i - bvirt);
905
+ _i = _0 + t1;
906
+ bvirt = _i - _0;
907
+ aa[1] = _0 - (_i - bvirt) + (t1 - bvirt);
908
+ u3 = _j + _i;
909
+ bvirt = u3 - _j;
910
+ aa[2] = _j - (u3 - bvirt) + (_i - bvirt);
911
+ aa[3] = u3;
912
+ }
913
+ if (cdxtail !== 0 || cdytail !== 0 || adxtail !== 0 || adytail !== 0) {
914
+ s1 = bdx * bdx;
915
+ c = splitter * bdx;
916
+ ahi = c - (c - bdx);
917
+ alo = bdx - ahi;
918
+ s0 = alo * alo - (s1 - ahi * ahi - (ahi + ahi) * alo);
919
+ t1 = bdy * bdy;
920
+ c = splitter * bdy;
921
+ ahi = c - (c - bdy);
922
+ alo = bdy - ahi;
923
+ t0 = alo * alo - (t1 - ahi * ahi - (ahi + ahi) * alo);
924
+ _i = s0 + t0;
925
+ bvirt = _i - s0;
926
+ bb[0] = s0 - (_i - bvirt) + (t0 - bvirt);
927
+ _j = s1 + _i;
928
+ bvirt = _j - s1;
929
+ _0 = s1 - (_j - bvirt) + (_i - bvirt);
930
+ _i = _0 + t1;
931
+ bvirt = _i - _0;
932
+ bb[1] = _0 - (_i - bvirt) + (t1 - bvirt);
933
+ u3 = _j + _i;
934
+ bvirt = u3 - _j;
935
+ bb[2] = _j - (u3 - bvirt) + (_i - bvirt);
936
+ bb[3] = u3;
937
+ }
938
+ if (adxtail !== 0 || adytail !== 0 || bdxtail !== 0 || bdytail !== 0) {
939
+ s1 = cdx * cdx;
940
+ c = splitter * cdx;
941
+ ahi = c - (c - cdx);
942
+ alo = cdx - ahi;
943
+ s0 = alo * alo - (s1 - ahi * ahi - (ahi + ahi) * alo);
944
+ t1 = cdy * cdy;
945
+ c = splitter * cdy;
946
+ ahi = c - (c - cdy);
947
+ alo = cdy - ahi;
948
+ t0 = alo * alo - (t1 - ahi * ahi - (ahi + ahi) * alo);
949
+ _i = s0 + t0;
950
+ bvirt = _i - s0;
951
+ cc[0] = s0 - (_i - bvirt) + (t0 - bvirt);
952
+ _j = s1 + _i;
953
+ bvirt = _j - s1;
954
+ _0 = s1 - (_j - bvirt) + (_i - bvirt);
955
+ _i = _0 + t1;
956
+ bvirt = _i - _0;
957
+ cc[1] = _0 - (_i - bvirt) + (t1 - bvirt);
958
+ u3 = _j + _i;
959
+ bvirt = u3 - _j;
960
+ cc[2] = _j - (u3 - bvirt) + (_i - bvirt);
961
+ cc[3] = u3;
962
+ }
963
+ if (adxtail !== 0) {
964
+ axtbclen = scale(4, bc$1, adxtail, axtbc);
965
+ finlen = finadd(finlen, sum_three(scale(axtbclen, axtbc, 2 * adx, _16$1), _16$1, scale(scale(4, cc, adxtail, _8$1), _8$1, bdy, _16b), _16b, scale(scale(4, bb, adxtail, _8$1), _8$1, -cdy, _16c), _16c, _32, _48$1), _48$1);
966
+ }
967
+ if (adytail !== 0) {
968
+ aytbclen = scale(4, bc$1, adytail, aytbc);
969
+ finlen = finadd(finlen, sum_three(scale(aytbclen, aytbc, 2 * ady, _16$1), _16$1, scale(scale(4, bb, adytail, _8$1), _8$1, cdx, _16b), _16b, scale(scale(4, cc, adytail, _8$1), _8$1, -bdx, _16c), _16c, _32, _48$1), _48$1);
970
+ }
971
+ if (bdxtail !== 0) {
972
+ bxtcalen = scale(4, ca, bdxtail, bxtca);
973
+ finlen = finadd(finlen, sum_three(scale(bxtcalen, bxtca, 2 * bdx, _16$1), _16$1, scale(scale(4, aa, bdxtail, _8$1), _8$1, cdy, _16b), _16b, scale(scale(4, cc, bdxtail, _8$1), _8$1, -ady, _16c), _16c, _32, _48$1), _48$1);
974
+ }
975
+ if (bdytail !== 0) {
976
+ bytcalen = scale(4, ca, bdytail, bytca);
977
+ finlen = finadd(finlen, sum_three(scale(bytcalen, bytca, 2 * bdy, _16$1), _16$1, scale(scale(4, cc, bdytail, _8$1), _8$1, adx, _16b), _16b, scale(scale(4, aa, bdytail, _8$1), _8$1, -cdx, _16c), _16c, _32, _48$1), _48$1);
978
+ }
979
+ if (cdxtail !== 0) {
980
+ cxtablen = scale(4, ab$1, cdxtail, cxtab);
981
+ finlen = finadd(finlen, sum_three(scale(cxtablen, cxtab, 2 * cdx, _16$1), _16$1, scale(scale(4, bb, cdxtail, _8$1), _8$1, ady, _16b), _16b, scale(scale(4, aa, cdxtail, _8$1), _8$1, -bdy, _16c), _16c, _32, _48$1), _48$1);
982
+ }
983
+ if (cdytail !== 0) {
984
+ cytablen = scale(4, ab$1, cdytail, cytab);
985
+ finlen = finadd(finlen, sum_three(scale(cytablen, cytab, 2 * cdy, _16$1), _16$1, scale(scale(4, aa, cdytail, _8$1), _8$1, bdx, _16b), _16b, scale(scale(4, bb, cdytail, _8$1), _8$1, -adx, _16c), _16c, _32, _48$1), _48$1);
986
+ }
987
+ if (adxtail !== 0 || adytail !== 0) {
988
+ if (bdxtail !== 0 || bdytail !== 0 || cdxtail !== 0 || cdytail !== 0) {
989
+ s1 = bdxtail * cdy;
990
+ c = splitter * bdxtail;
991
+ ahi = c - (c - bdxtail);
992
+ alo = bdxtail - ahi;
993
+ c = splitter * cdy;
994
+ bhi = c - (c - cdy);
995
+ blo = cdy - bhi;
996
+ s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
997
+ t1 = bdx * cdytail;
998
+ c = splitter * bdx;
999
+ ahi = c - (c - bdx);
1000
+ alo = bdx - ahi;
1001
+ c = splitter * cdytail;
1002
+ bhi = c - (c - cdytail);
1003
+ blo = cdytail - bhi;
1004
+ t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
1005
+ _i = s0 + t0;
1006
+ bvirt = _i - s0;
1007
+ u[0] = s0 - (_i - bvirt) + (t0 - bvirt);
1008
+ _j = s1 + _i;
1009
+ bvirt = _j - s1;
1010
+ _0 = s1 - (_j - bvirt) + (_i - bvirt);
1011
+ _i = _0 + t1;
1012
+ bvirt = _i - _0;
1013
+ u[1] = _0 - (_i - bvirt) + (t1 - bvirt);
1014
+ u3 = _j + _i;
1015
+ bvirt = u3 - _j;
1016
+ u[2] = _j - (u3 - bvirt) + (_i - bvirt);
1017
+ u[3] = u3;
1018
+ s1 = cdxtail * -bdy;
1019
+ c = splitter * cdxtail;
1020
+ ahi = c - (c - cdxtail);
1021
+ alo = cdxtail - ahi;
1022
+ c = splitter * -bdy;
1023
+ bhi = c - (c - -bdy);
1024
+ blo = -bdy - bhi;
1025
+ s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
1026
+ t1 = cdx * -bdytail;
1027
+ c = splitter * cdx;
1028
+ ahi = c - (c - cdx);
1029
+ alo = cdx - ahi;
1030
+ c = splitter * -bdytail;
1031
+ bhi = c - (c - -bdytail);
1032
+ blo = -bdytail - bhi;
1033
+ t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
1034
+ _i = s0 + t0;
1035
+ bvirt = _i - s0;
1036
+ v[0] = s0 - (_i - bvirt) + (t0 - bvirt);
1037
+ _j = s1 + _i;
1038
+ bvirt = _j - s1;
1039
+ _0 = s1 - (_j - bvirt) + (_i - bvirt);
1040
+ _i = _0 + t1;
1041
+ bvirt = _i - _0;
1042
+ v[1] = _0 - (_i - bvirt) + (t1 - bvirt);
1043
+ u3 = _j + _i;
1044
+ bvirt = u3 - _j;
1045
+ v[2] = _j - (u3 - bvirt) + (_i - bvirt);
1046
+ v[3] = u3;
1047
+ bctlen = sum(4, u, 4, v, bct);
1048
+ s1 = bdxtail * cdytail;
1049
+ c = splitter * bdxtail;
1050
+ ahi = c - (c - bdxtail);
1051
+ alo = bdxtail - ahi;
1052
+ c = splitter * cdytail;
1053
+ bhi = c - (c - cdytail);
1054
+ blo = cdytail - bhi;
1055
+ s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
1056
+ t1 = cdxtail * bdytail;
1057
+ c = splitter * cdxtail;
1058
+ ahi = c - (c - cdxtail);
1059
+ alo = cdxtail - ahi;
1060
+ c = splitter * bdytail;
1061
+ bhi = c - (c - bdytail);
1062
+ blo = bdytail - bhi;
1063
+ t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
1064
+ _i = s0 - t0;
1065
+ bvirt = s0 - _i;
1066
+ bctt[0] = s0 - (_i + bvirt) + (bvirt - t0);
1067
+ _j = s1 + _i;
1068
+ bvirt = _j - s1;
1069
+ _0 = s1 - (_j - bvirt) + (_i - bvirt);
1070
+ _i = _0 - t1;
1071
+ bvirt = _0 - _i;
1072
+ bctt[1] = _0 - (_i + bvirt) + (bvirt - t1);
1073
+ u3 = _j + _i;
1074
+ bvirt = u3 - _j;
1075
+ bctt[2] = _j - (u3 - bvirt) + (_i - bvirt);
1076
+ bctt[3] = u3;
1077
+ bcttlen = 4;
1078
+ } else {
1079
+ bct[0] = 0;
1080
+ bctlen = 1;
1081
+ bctt[0] = 0;
1082
+ bcttlen = 1;
1083
+ }
1084
+ if (adxtail !== 0) {
1085
+ const len = scale(bctlen, bct, adxtail, _16c);
1086
+ finlen = finadd(finlen, sum(scale(axtbclen, axtbc, adxtail, _16$1), _16$1, scale(len, _16c, 2 * adx, _32), _32, _48$1), _48$1);
1087
+ const len2 = scale(bcttlen, bctt, adxtail, _8$1);
1088
+ finlen = finadd(finlen, sum_three(scale(len2, _8$1, 2 * adx, _16$1), _16$1, scale(len2, _8$1, adxtail, _16b), _16b, scale(len, _16c, adxtail, _32), _32, _32b, _64), _64);
1089
+ if (bdytail !== 0) {
1090
+ finlen = finadd(finlen, scale(scale(4, cc, adxtail, _8$1), _8$1, bdytail, _16$1), _16$1);
1091
+ }
1092
+ if (cdytail !== 0) {
1093
+ finlen = finadd(finlen, scale(scale(4, bb, -adxtail, _8$1), _8$1, cdytail, _16$1), _16$1);
1094
+ }
1095
+ }
1096
+ if (adytail !== 0) {
1097
+ const len = scale(bctlen, bct, adytail, _16c);
1098
+ finlen = finadd(finlen, sum(scale(aytbclen, aytbc, adytail, _16$1), _16$1, scale(len, _16c, 2 * ady, _32), _32, _48$1), _48$1);
1099
+ const len2 = scale(bcttlen, bctt, adytail, _8$1);
1100
+ finlen = finadd(finlen, sum_three(scale(len2, _8$1, 2 * ady, _16$1), _16$1, scale(len2, _8$1, adytail, _16b), _16b, scale(len, _16c, adytail, _32), _32, _32b, _64), _64);
1101
+ }
1102
+ }
1103
+ if (bdxtail !== 0 || bdytail !== 0) {
1104
+ if (cdxtail !== 0 || cdytail !== 0 || adxtail !== 0 || adytail !== 0) {
1105
+ s1 = cdxtail * ady;
1106
+ c = splitter * cdxtail;
1107
+ ahi = c - (c - cdxtail);
1108
+ alo = cdxtail - ahi;
1109
+ c = splitter * ady;
1110
+ bhi = c - (c - ady);
1111
+ blo = ady - bhi;
1112
+ s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
1113
+ t1 = cdx * adytail;
1114
+ c = splitter * cdx;
1115
+ ahi = c - (c - cdx);
1116
+ alo = cdx - ahi;
1117
+ c = splitter * adytail;
1118
+ bhi = c - (c - adytail);
1119
+ blo = adytail - bhi;
1120
+ t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
1121
+ _i = s0 + t0;
1122
+ bvirt = _i - s0;
1123
+ u[0] = s0 - (_i - bvirt) + (t0 - bvirt);
1124
+ _j = s1 + _i;
1125
+ bvirt = _j - s1;
1126
+ _0 = s1 - (_j - bvirt) + (_i - bvirt);
1127
+ _i = _0 + t1;
1128
+ bvirt = _i - _0;
1129
+ u[1] = _0 - (_i - bvirt) + (t1 - bvirt);
1130
+ u3 = _j + _i;
1131
+ bvirt = u3 - _j;
1132
+ u[2] = _j - (u3 - bvirt) + (_i - bvirt);
1133
+ u[3] = u3;
1134
+ n1 = -cdy;
1135
+ n0 = -cdytail;
1136
+ s1 = adxtail * n1;
1137
+ c = splitter * adxtail;
1138
+ ahi = c - (c - adxtail);
1139
+ alo = adxtail - ahi;
1140
+ c = splitter * n1;
1141
+ bhi = c - (c - n1);
1142
+ blo = n1 - bhi;
1143
+ s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
1144
+ t1 = adx * n0;
1145
+ c = splitter * adx;
1146
+ ahi = c - (c - adx);
1147
+ alo = adx - ahi;
1148
+ c = splitter * n0;
1149
+ bhi = c - (c - n0);
1150
+ blo = n0 - bhi;
1151
+ t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
1152
+ _i = s0 + t0;
1153
+ bvirt = _i - s0;
1154
+ v[0] = s0 - (_i - bvirt) + (t0 - bvirt);
1155
+ _j = s1 + _i;
1156
+ bvirt = _j - s1;
1157
+ _0 = s1 - (_j - bvirt) + (_i - bvirt);
1158
+ _i = _0 + t1;
1159
+ bvirt = _i - _0;
1160
+ v[1] = _0 - (_i - bvirt) + (t1 - bvirt);
1161
+ u3 = _j + _i;
1162
+ bvirt = u3 - _j;
1163
+ v[2] = _j - (u3 - bvirt) + (_i - bvirt);
1164
+ v[3] = u3;
1165
+ catlen = sum(4, u, 4, v, cat);
1166
+ s1 = cdxtail * adytail;
1167
+ c = splitter * cdxtail;
1168
+ ahi = c - (c - cdxtail);
1169
+ alo = cdxtail - ahi;
1170
+ c = splitter * adytail;
1171
+ bhi = c - (c - adytail);
1172
+ blo = adytail - bhi;
1173
+ s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
1174
+ t1 = adxtail * cdytail;
1175
+ c = splitter * adxtail;
1176
+ ahi = c - (c - adxtail);
1177
+ alo = adxtail - ahi;
1178
+ c = splitter * cdytail;
1179
+ bhi = c - (c - cdytail);
1180
+ blo = cdytail - bhi;
1181
+ t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
1182
+ _i = s0 - t0;
1183
+ bvirt = s0 - _i;
1184
+ catt[0] = s0 - (_i + bvirt) + (bvirt - t0);
1185
+ _j = s1 + _i;
1186
+ bvirt = _j - s1;
1187
+ _0 = s1 - (_j - bvirt) + (_i - bvirt);
1188
+ _i = _0 - t1;
1189
+ bvirt = _0 - _i;
1190
+ catt[1] = _0 - (_i + bvirt) + (bvirt - t1);
1191
+ u3 = _j + _i;
1192
+ bvirt = u3 - _j;
1193
+ catt[2] = _j - (u3 - bvirt) + (_i - bvirt);
1194
+ catt[3] = u3;
1195
+ cattlen = 4;
1196
+ } else {
1197
+ cat[0] = 0;
1198
+ catlen = 1;
1199
+ catt[0] = 0;
1200
+ cattlen = 1;
1201
+ }
1202
+ if (bdxtail !== 0) {
1203
+ const len = scale(catlen, cat, bdxtail, _16c);
1204
+ finlen = finadd(finlen, sum(scale(bxtcalen, bxtca, bdxtail, _16$1), _16$1, scale(len, _16c, 2 * bdx, _32), _32, _48$1), _48$1);
1205
+ const len2 = scale(cattlen, catt, bdxtail, _8$1);
1206
+ finlen = finadd(finlen, sum_three(scale(len2, _8$1, 2 * bdx, _16$1), _16$1, scale(len2, _8$1, bdxtail, _16b), _16b, scale(len, _16c, bdxtail, _32), _32, _32b, _64), _64);
1207
+ if (cdytail !== 0) {
1208
+ finlen = finadd(finlen, scale(scale(4, aa, bdxtail, _8$1), _8$1, cdytail, _16$1), _16$1);
1209
+ }
1210
+ if (adytail !== 0) {
1211
+ finlen = finadd(finlen, scale(scale(4, cc, -bdxtail, _8$1), _8$1, adytail, _16$1), _16$1);
1212
+ }
1213
+ }
1214
+ if (bdytail !== 0) {
1215
+ const len = scale(catlen, cat, bdytail, _16c);
1216
+ finlen = finadd(finlen, sum(scale(bytcalen, bytca, bdytail, _16$1), _16$1, scale(len, _16c, 2 * bdy, _32), _32, _48$1), _48$1);
1217
+ const len2 = scale(cattlen, catt, bdytail, _8$1);
1218
+ finlen = finadd(finlen, sum_three(scale(len2, _8$1, 2 * bdy, _16$1), _16$1, scale(len2, _8$1, bdytail, _16b), _16b, scale(len, _16c, bdytail, _32), _32, _32b, _64), _64);
1219
+ }
1220
+ }
1221
+ if (cdxtail !== 0 || cdytail !== 0) {
1222
+ if (adxtail !== 0 || adytail !== 0 || bdxtail !== 0 || bdytail !== 0) {
1223
+ s1 = adxtail * bdy;
1224
+ c = splitter * adxtail;
1225
+ ahi = c - (c - adxtail);
1226
+ alo = adxtail - ahi;
1227
+ c = splitter * bdy;
1228
+ bhi = c - (c - bdy);
1229
+ blo = bdy - bhi;
1230
+ s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
1231
+ t1 = adx * bdytail;
1232
+ c = splitter * adx;
1233
+ ahi = c - (c - adx);
1234
+ alo = adx - ahi;
1235
+ c = splitter * bdytail;
1236
+ bhi = c - (c - bdytail);
1237
+ blo = bdytail - bhi;
1238
+ t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
1239
+ _i = s0 + t0;
1240
+ bvirt = _i - s0;
1241
+ u[0] = s0 - (_i - bvirt) + (t0 - bvirt);
1242
+ _j = s1 + _i;
1243
+ bvirt = _j - s1;
1244
+ _0 = s1 - (_j - bvirt) + (_i - bvirt);
1245
+ _i = _0 + t1;
1246
+ bvirt = _i - _0;
1247
+ u[1] = _0 - (_i - bvirt) + (t1 - bvirt);
1248
+ u3 = _j + _i;
1249
+ bvirt = u3 - _j;
1250
+ u[2] = _j - (u3 - bvirt) + (_i - bvirt);
1251
+ u[3] = u3;
1252
+ n1 = -ady;
1253
+ n0 = -adytail;
1254
+ s1 = bdxtail * n1;
1255
+ c = splitter * bdxtail;
1256
+ ahi = c - (c - bdxtail);
1257
+ alo = bdxtail - ahi;
1258
+ c = splitter * n1;
1259
+ bhi = c - (c - n1);
1260
+ blo = n1 - bhi;
1261
+ s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
1262
+ t1 = bdx * n0;
1263
+ c = splitter * bdx;
1264
+ ahi = c - (c - bdx);
1265
+ alo = bdx - ahi;
1266
+ c = splitter * n0;
1267
+ bhi = c - (c - n0);
1268
+ blo = n0 - bhi;
1269
+ t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
1270
+ _i = s0 + t0;
1271
+ bvirt = _i - s0;
1272
+ v[0] = s0 - (_i - bvirt) + (t0 - bvirt);
1273
+ _j = s1 + _i;
1274
+ bvirt = _j - s1;
1275
+ _0 = s1 - (_j - bvirt) + (_i - bvirt);
1276
+ _i = _0 + t1;
1277
+ bvirt = _i - _0;
1278
+ v[1] = _0 - (_i - bvirt) + (t1 - bvirt);
1279
+ u3 = _j + _i;
1280
+ bvirt = u3 - _j;
1281
+ v[2] = _j - (u3 - bvirt) + (_i - bvirt);
1282
+ v[3] = u3;
1283
+ abtlen = sum(4, u, 4, v, abt);
1284
+ s1 = adxtail * bdytail;
1285
+ c = splitter * adxtail;
1286
+ ahi = c - (c - adxtail);
1287
+ alo = adxtail - ahi;
1288
+ c = splitter * bdytail;
1289
+ bhi = c - (c - bdytail);
1290
+ blo = bdytail - bhi;
1291
+ s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
1292
+ t1 = bdxtail * adytail;
1293
+ c = splitter * bdxtail;
1294
+ ahi = c - (c - bdxtail);
1295
+ alo = bdxtail - ahi;
1296
+ c = splitter * adytail;
1297
+ bhi = c - (c - adytail);
1298
+ blo = adytail - bhi;
1299
+ t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
1300
+ _i = s0 - t0;
1301
+ bvirt = s0 - _i;
1302
+ abtt[0] = s0 - (_i + bvirt) + (bvirt - t0);
1303
+ _j = s1 + _i;
1304
+ bvirt = _j - s1;
1305
+ _0 = s1 - (_j - bvirt) + (_i - bvirt);
1306
+ _i = _0 - t1;
1307
+ bvirt = _0 - _i;
1308
+ abtt[1] = _0 - (_i + bvirt) + (bvirt - t1);
1309
+ u3 = _j + _i;
1310
+ bvirt = u3 - _j;
1311
+ abtt[2] = _j - (u3 - bvirt) + (_i - bvirt);
1312
+ abtt[3] = u3;
1313
+ abttlen = 4;
1314
+ } else {
1315
+ abt[0] = 0;
1316
+ abtlen = 1;
1317
+ abtt[0] = 0;
1318
+ abttlen = 1;
1319
+ }
1320
+ if (cdxtail !== 0) {
1321
+ const len = scale(abtlen, abt, cdxtail, _16c);
1322
+ finlen = finadd(finlen, sum(scale(cxtablen, cxtab, cdxtail, _16$1), _16$1, scale(len, _16c, 2 * cdx, _32), _32, _48$1), _48$1);
1323
+ const len2 = scale(abttlen, abtt, cdxtail, _8$1);
1324
+ finlen = finadd(finlen, sum_three(scale(len2, _8$1, 2 * cdx, _16$1), _16$1, scale(len2, _8$1, cdxtail, _16b), _16b, scale(len, _16c, cdxtail, _32), _32, _32b, _64), _64);
1325
+ if (adytail !== 0) {
1326
+ finlen = finadd(finlen, scale(scale(4, bb, cdxtail, _8$1), _8$1, adytail, _16$1), _16$1);
1327
+ }
1328
+ if (bdytail !== 0) {
1329
+ finlen = finadd(finlen, scale(scale(4, aa, -cdxtail, _8$1), _8$1, bdytail, _16$1), _16$1);
1330
+ }
1331
+ }
1332
+ if (cdytail !== 0) {
1333
+ const len = scale(abtlen, abt, cdytail, _16c);
1334
+ finlen = finadd(finlen, sum(scale(cytablen, cytab, cdytail, _16$1), _16$1, scale(len, _16c, 2 * cdy, _32), _32, _48$1), _48$1);
1335
+ const len2 = scale(abttlen, abtt, cdytail, _8$1);
1336
+ finlen = finadd(finlen, sum_three(scale(len2, _8$1, 2 * cdy, _16$1), _16$1, scale(len2, _8$1, cdytail, _16b), _16b, scale(len, _16c, cdytail, _32), _32, _32b, _64), _64);
1337
+ }
1338
+ }
1339
+ return fin$1[finlen - 1];
1340
+ }
1341
+ function incircle(ax, ay, bx, by, cx, cy, dx, dy) {
1342
+ const adx = ax - dx;
1343
+ const bdx = bx - dx;
1344
+ const cdx = cx - dx;
1345
+ const ady = ay - dy;
1346
+ const bdy = by - dy;
1347
+ const cdy = cy - dy;
1348
+ const bdxcdy = bdx * cdy;
1349
+ const cdxbdy = cdx * bdy;
1350
+ const alift = adx * adx + ady * ady;
1351
+ const cdxady = cdx * ady;
1352
+ const adxcdy = adx * cdy;
1353
+ const blift = bdx * bdx + bdy * bdy;
1354
+ const adxbdy = adx * bdy;
1355
+ const bdxady = bdx * ady;
1356
+ const clift = cdx * cdx + cdy * cdy;
1357
+ const det = alift * (bdxcdy - cdxbdy) + blift * (cdxady - adxcdy) + clift * (adxbdy - bdxady);
1358
+ const permanent = (Math.abs(bdxcdy) + Math.abs(cdxbdy)) * alift + (Math.abs(cdxady) + Math.abs(adxcdy)) * blift + (Math.abs(adxbdy) + Math.abs(bdxady)) * clift;
1359
+ const errbound = iccerrboundA * permanent;
1360
+ if (det > errbound || -det > errbound) {
1361
+ return det;
1362
+ }
1363
+ return incircleadapt(ax, ay, bx, by, cx, cy, dx, dy, permanent);
1364
+ }
1365
+ function incirclefast(ax, ay, bx, by, cx, cy, dx, dy) {
1366
+ const adx = ax - dx;
1367
+ const ady = ay - dy;
1368
+ const bdx = bx - dx;
1369
+ const bdy = by - dy;
1370
+ const cdx = cx - dx;
1371
+ const cdy = cy - dy;
1372
+ const abdet = adx * bdy - bdx * ady;
1373
+ const bcdet = bdx * cdy - cdx * bdy;
1374
+ const cadet = cdx * ady - adx * cdy;
1375
+ const alift = adx * adx + ady * ady;
1376
+ const blift = bdx * bdx + bdy * bdy;
1377
+ const clift = cdx * cdx + cdy * cdy;
1378
+ return alift * bcdet + blift * cadet + clift * abdet;
1379
+ }
1380
+ const isperrboundA = (16 + 224 * epsilon) * epsilon;
1381
+ const isperrboundB = (5 + 72 * epsilon) * epsilon;
1382
+ const isperrboundC = (71 + 1408 * epsilon) * epsilon * epsilon;
1383
+ const ab = vec(4);
1384
+ const bc = vec(4);
1385
+ const cd = vec(4);
1386
+ const de = vec(4);
1387
+ const ea = vec(4);
1388
+ const ac = vec(4);
1389
+ const bd = vec(4);
1390
+ const ce = vec(4);
1391
+ const da = vec(4);
1392
+ const eb = vec(4);
1393
+ const abc = vec(24);
1394
+ const bcd = vec(24);
1395
+ const cde = vec(24);
1396
+ const dea = vec(24);
1397
+ const eab = vec(24);
1398
+ const abd = vec(24);
1399
+ const bce = vec(24);
1400
+ const cda = vec(24);
1401
+ const deb = vec(24);
1402
+ const eac = vec(24);
1403
+ const adet = vec(1152);
1404
+ const bdet = vec(1152);
1405
+ const cdet = vec(1152);
1406
+ const ddet = vec(1152);
1407
+ const edet = vec(1152);
1408
+ const abdet = vec(2304);
1409
+ const cddet = vec(2304);
1410
+ const cdedet = vec(3456);
1411
+ const deter = vec(5760);
1412
+ const _8 = vec(8);
1413
+ const _8b = vec(8);
1414
+ const _8c = vec(8);
1415
+ const _16 = vec(16);
1416
+ const _24 = vec(24);
1417
+ const _48 = vec(48);
1418
+ const _48b = vec(48);
1419
+ const _96 = vec(96);
1420
+ const _192 = vec(192);
1421
+ const _384x = vec(384);
1422
+ const _384y = vec(384);
1423
+ const _384z = vec(384);
1424
+ const _768 = vec(768);
1425
+ function sum_three_scale(a, b, c, az, bz, cz, out) {
1426
+ return sum_three(scale(4, a, az, _8), _8, scale(4, b, bz, _8b), _8b, scale(4, c, cz, _8c), _8c, _16, out);
1427
+ }
1428
+ function liftexact(alen, a, blen, b, clen, c, dlen, d, x, y, z, out) {
1429
+ const len = sum(sum(alen, a, blen, b, _48), _48, negate(sum(clen, c, dlen, d, _48b), _48b), _48b, _96);
1430
+ return sum_three(scale(scale(len, _96, x, _192), _192, x, _384x), _384x, scale(scale(len, _96, y, _192), _192, y, _384y), _384y, scale(scale(len, _96, z, _192), _192, z, _384z), _384z, _768, out);
1431
+ }
1432
+ function insphereexact(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz, ex, ey, ez) {
1433
+ let bvirt, c, ahi, alo, bhi, blo, _i, _j, _0, s1, s0, t1, t0, u3;
1434
+ s1 = ax * by;
1435
+ c = splitter * ax;
1436
+ ahi = c - (c - ax);
1437
+ alo = ax - ahi;
1438
+ c = splitter * by;
1439
+ bhi = c - (c - by);
1440
+ blo = by - bhi;
1441
+ s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
1442
+ t1 = bx * ay;
1443
+ c = splitter * bx;
1444
+ ahi = c - (c - bx);
1445
+ alo = bx - ahi;
1446
+ c = splitter * ay;
1447
+ bhi = c - (c - ay);
1448
+ blo = ay - bhi;
1449
+ t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
1450
+ _i = s0 - t0;
1451
+ bvirt = s0 - _i;
1452
+ ab[0] = s0 - (_i + bvirt) + (bvirt - t0);
1453
+ _j = s1 + _i;
1454
+ bvirt = _j - s1;
1455
+ _0 = s1 - (_j - bvirt) + (_i - bvirt);
1456
+ _i = _0 - t1;
1457
+ bvirt = _0 - _i;
1458
+ ab[1] = _0 - (_i + bvirt) + (bvirt - t1);
1459
+ u3 = _j + _i;
1460
+ bvirt = u3 - _j;
1461
+ ab[2] = _j - (u3 - bvirt) + (_i - bvirt);
1462
+ ab[3] = u3;
1463
+ s1 = bx * cy;
1464
+ c = splitter * bx;
1465
+ ahi = c - (c - bx);
1466
+ alo = bx - ahi;
1467
+ c = splitter * cy;
1468
+ bhi = c - (c - cy);
1469
+ blo = cy - bhi;
1470
+ s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
1471
+ t1 = cx * by;
1472
+ c = splitter * cx;
1473
+ ahi = c - (c - cx);
1474
+ alo = cx - ahi;
1475
+ c = splitter * by;
1476
+ bhi = c - (c - by);
1477
+ blo = by - bhi;
1478
+ t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
1479
+ _i = s0 - t0;
1480
+ bvirt = s0 - _i;
1481
+ bc[0] = s0 - (_i + bvirt) + (bvirt - t0);
1482
+ _j = s1 + _i;
1483
+ bvirt = _j - s1;
1484
+ _0 = s1 - (_j - bvirt) + (_i - bvirt);
1485
+ _i = _0 - t1;
1486
+ bvirt = _0 - _i;
1487
+ bc[1] = _0 - (_i + bvirt) + (bvirt - t1);
1488
+ u3 = _j + _i;
1489
+ bvirt = u3 - _j;
1490
+ bc[2] = _j - (u3 - bvirt) + (_i - bvirt);
1491
+ bc[3] = u3;
1492
+ s1 = cx * dy;
1493
+ c = splitter * cx;
1494
+ ahi = c - (c - cx);
1495
+ alo = cx - ahi;
1496
+ c = splitter * dy;
1497
+ bhi = c - (c - dy);
1498
+ blo = dy - bhi;
1499
+ s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
1500
+ t1 = dx * cy;
1501
+ c = splitter * dx;
1502
+ ahi = c - (c - dx);
1503
+ alo = dx - ahi;
1504
+ c = splitter * cy;
1505
+ bhi = c - (c - cy);
1506
+ blo = cy - bhi;
1507
+ t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
1508
+ _i = s0 - t0;
1509
+ bvirt = s0 - _i;
1510
+ cd[0] = s0 - (_i + bvirt) + (bvirt - t0);
1511
+ _j = s1 + _i;
1512
+ bvirt = _j - s1;
1513
+ _0 = s1 - (_j - bvirt) + (_i - bvirt);
1514
+ _i = _0 - t1;
1515
+ bvirt = _0 - _i;
1516
+ cd[1] = _0 - (_i + bvirt) + (bvirt - t1);
1517
+ u3 = _j + _i;
1518
+ bvirt = u3 - _j;
1519
+ cd[2] = _j - (u3 - bvirt) + (_i - bvirt);
1520
+ cd[3] = u3;
1521
+ s1 = dx * ey;
1522
+ c = splitter * dx;
1523
+ ahi = c - (c - dx);
1524
+ alo = dx - ahi;
1525
+ c = splitter * ey;
1526
+ bhi = c - (c - ey);
1527
+ blo = ey - bhi;
1528
+ s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
1529
+ t1 = ex * dy;
1530
+ c = splitter * ex;
1531
+ ahi = c - (c - ex);
1532
+ alo = ex - ahi;
1533
+ c = splitter * dy;
1534
+ bhi = c - (c - dy);
1535
+ blo = dy - bhi;
1536
+ t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
1537
+ _i = s0 - t0;
1538
+ bvirt = s0 - _i;
1539
+ de[0] = s0 - (_i + bvirt) + (bvirt - t0);
1540
+ _j = s1 + _i;
1541
+ bvirt = _j - s1;
1542
+ _0 = s1 - (_j - bvirt) + (_i - bvirt);
1543
+ _i = _0 - t1;
1544
+ bvirt = _0 - _i;
1545
+ de[1] = _0 - (_i + bvirt) + (bvirt - t1);
1546
+ u3 = _j + _i;
1547
+ bvirt = u3 - _j;
1548
+ de[2] = _j - (u3 - bvirt) + (_i - bvirt);
1549
+ de[3] = u3;
1550
+ s1 = ex * ay;
1551
+ c = splitter * ex;
1552
+ ahi = c - (c - ex);
1553
+ alo = ex - ahi;
1554
+ c = splitter * ay;
1555
+ bhi = c - (c - ay);
1556
+ blo = ay - bhi;
1557
+ s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
1558
+ t1 = ax * ey;
1559
+ c = splitter * ax;
1560
+ ahi = c - (c - ax);
1561
+ alo = ax - ahi;
1562
+ c = splitter * ey;
1563
+ bhi = c - (c - ey);
1564
+ blo = ey - bhi;
1565
+ t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
1566
+ _i = s0 - t0;
1567
+ bvirt = s0 - _i;
1568
+ ea[0] = s0 - (_i + bvirt) + (bvirt - t0);
1569
+ _j = s1 + _i;
1570
+ bvirt = _j - s1;
1571
+ _0 = s1 - (_j - bvirt) + (_i - bvirt);
1572
+ _i = _0 - t1;
1573
+ bvirt = _0 - _i;
1574
+ ea[1] = _0 - (_i + bvirt) + (bvirt - t1);
1575
+ u3 = _j + _i;
1576
+ bvirt = u3 - _j;
1577
+ ea[2] = _j - (u3 - bvirt) + (_i - bvirt);
1578
+ ea[3] = u3;
1579
+ s1 = ax * cy;
1580
+ c = splitter * ax;
1581
+ ahi = c - (c - ax);
1582
+ alo = ax - ahi;
1583
+ c = splitter * cy;
1584
+ bhi = c - (c - cy);
1585
+ blo = cy - bhi;
1586
+ s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
1587
+ t1 = cx * ay;
1588
+ c = splitter * cx;
1589
+ ahi = c - (c - cx);
1590
+ alo = cx - ahi;
1591
+ c = splitter * ay;
1592
+ bhi = c - (c - ay);
1593
+ blo = ay - bhi;
1594
+ t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
1595
+ _i = s0 - t0;
1596
+ bvirt = s0 - _i;
1597
+ ac[0] = s0 - (_i + bvirt) + (bvirt - t0);
1598
+ _j = s1 + _i;
1599
+ bvirt = _j - s1;
1600
+ _0 = s1 - (_j - bvirt) + (_i - bvirt);
1601
+ _i = _0 - t1;
1602
+ bvirt = _0 - _i;
1603
+ ac[1] = _0 - (_i + bvirt) + (bvirt - t1);
1604
+ u3 = _j + _i;
1605
+ bvirt = u3 - _j;
1606
+ ac[2] = _j - (u3 - bvirt) + (_i - bvirt);
1607
+ ac[3] = u3;
1608
+ s1 = bx * dy;
1609
+ c = splitter * bx;
1610
+ ahi = c - (c - bx);
1611
+ alo = bx - ahi;
1612
+ c = splitter * dy;
1613
+ bhi = c - (c - dy);
1614
+ blo = dy - bhi;
1615
+ s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
1616
+ t1 = dx * by;
1617
+ c = splitter * dx;
1618
+ ahi = c - (c - dx);
1619
+ alo = dx - ahi;
1620
+ c = splitter * by;
1621
+ bhi = c - (c - by);
1622
+ blo = by - bhi;
1623
+ t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
1624
+ _i = s0 - t0;
1625
+ bvirt = s0 - _i;
1626
+ bd[0] = s0 - (_i + bvirt) + (bvirt - t0);
1627
+ _j = s1 + _i;
1628
+ bvirt = _j - s1;
1629
+ _0 = s1 - (_j - bvirt) + (_i - bvirt);
1630
+ _i = _0 - t1;
1631
+ bvirt = _0 - _i;
1632
+ bd[1] = _0 - (_i + bvirt) + (bvirt - t1);
1633
+ u3 = _j + _i;
1634
+ bvirt = u3 - _j;
1635
+ bd[2] = _j - (u3 - bvirt) + (_i - bvirt);
1636
+ bd[3] = u3;
1637
+ s1 = cx * ey;
1638
+ c = splitter * cx;
1639
+ ahi = c - (c - cx);
1640
+ alo = cx - ahi;
1641
+ c = splitter * ey;
1642
+ bhi = c - (c - ey);
1643
+ blo = ey - bhi;
1644
+ s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
1645
+ t1 = ex * cy;
1646
+ c = splitter * ex;
1647
+ ahi = c - (c - ex);
1648
+ alo = ex - ahi;
1649
+ c = splitter * cy;
1650
+ bhi = c - (c - cy);
1651
+ blo = cy - bhi;
1652
+ t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
1653
+ _i = s0 - t0;
1654
+ bvirt = s0 - _i;
1655
+ ce[0] = s0 - (_i + bvirt) + (bvirt - t0);
1656
+ _j = s1 + _i;
1657
+ bvirt = _j - s1;
1658
+ _0 = s1 - (_j - bvirt) + (_i - bvirt);
1659
+ _i = _0 - t1;
1660
+ bvirt = _0 - _i;
1661
+ ce[1] = _0 - (_i + bvirt) + (bvirt - t1);
1662
+ u3 = _j + _i;
1663
+ bvirt = u3 - _j;
1664
+ ce[2] = _j - (u3 - bvirt) + (_i - bvirt);
1665
+ ce[3] = u3;
1666
+ s1 = dx * ay;
1667
+ c = splitter * dx;
1668
+ ahi = c - (c - dx);
1669
+ alo = dx - ahi;
1670
+ c = splitter * ay;
1671
+ bhi = c - (c - ay);
1672
+ blo = ay - bhi;
1673
+ s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
1674
+ t1 = ax * dy;
1675
+ c = splitter * ax;
1676
+ ahi = c - (c - ax);
1677
+ alo = ax - ahi;
1678
+ c = splitter * dy;
1679
+ bhi = c - (c - dy);
1680
+ blo = dy - bhi;
1681
+ t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
1682
+ _i = s0 - t0;
1683
+ bvirt = s0 - _i;
1684
+ da[0] = s0 - (_i + bvirt) + (bvirt - t0);
1685
+ _j = s1 + _i;
1686
+ bvirt = _j - s1;
1687
+ _0 = s1 - (_j - bvirt) + (_i - bvirt);
1688
+ _i = _0 - t1;
1689
+ bvirt = _0 - _i;
1690
+ da[1] = _0 - (_i + bvirt) + (bvirt - t1);
1691
+ u3 = _j + _i;
1692
+ bvirt = u3 - _j;
1693
+ da[2] = _j - (u3 - bvirt) + (_i - bvirt);
1694
+ da[3] = u3;
1695
+ s1 = ex * by;
1696
+ c = splitter * ex;
1697
+ ahi = c - (c - ex);
1698
+ alo = ex - ahi;
1699
+ c = splitter * by;
1700
+ bhi = c - (c - by);
1701
+ blo = by - bhi;
1702
+ s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
1703
+ t1 = bx * ey;
1704
+ c = splitter * bx;
1705
+ ahi = c - (c - bx);
1706
+ alo = bx - ahi;
1707
+ c = splitter * ey;
1708
+ bhi = c - (c - ey);
1709
+ blo = ey - bhi;
1710
+ t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
1711
+ _i = s0 - t0;
1712
+ bvirt = s0 - _i;
1713
+ eb[0] = s0 - (_i + bvirt) + (bvirt - t0);
1714
+ _j = s1 + _i;
1715
+ bvirt = _j - s1;
1716
+ _0 = s1 - (_j - bvirt) + (_i - bvirt);
1717
+ _i = _0 - t1;
1718
+ bvirt = _0 - _i;
1719
+ eb[1] = _0 - (_i + bvirt) + (bvirt - t1);
1720
+ u3 = _j + _i;
1721
+ bvirt = u3 - _j;
1722
+ eb[2] = _j - (u3 - bvirt) + (_i - bvirt);
1723
+ eb[3] = u3;
1724
+ const abclen = sum_three_scale(ab, bc, ac, cz, az, -bz, abc);
1725
+ const bcdlen = sum_three_scale(bc, cd, bd, dz, bz, -cz, bcd);
1726
+ const cdelen = sum_three_scale(cd, de, ce, ez, cz, -dz, cde);
1727
+ const dealen = sum_three_scale(de, ea, da, az, dz, -ez, dea);
1728
+ const eablen = sum_three_scale(ea, ab, eb, bz, ez, -az, eab);
1729
+ const abdlen = sum_three_scale(ab, bd, da, dz, az, bz, abd);
1730
+ const bcelen = sum_three_scale(bc, ce, eb, ez, bz, cz, bce);
1731
+ const cdalen = sum_three_scale(cd, da, ac, az, cz, dz, cda);
1732
+ const deblen = sum_three_scale(de, eb, bd, bz, dz, ez, deb);
1733
+ const eaclen = sum_three_scale(ea, ac, ce, cz, ez, az, eac);
1734
+ const deterlen = sum_three(liftexact(cdelen, cde, bcelen, bce, deblen, deb, bcdlen, bcd, ax, ay, az, adet), adet, liftexact(dealen, dea, cdalen, cda, eaclen, eac, cdelen, cde, bx, by, bz, bdet), bdet, sum_three(liftexact(eablen, eab, deblen, deb, abdlen, abd, dealen, dea, cx, cy, cz, cdet), cdet, liftexact(abclen, abc, eaclen, eac, bcelen, bce, eablen, eab, dx, dy, dz, ddet), ddet, liftexact(bcdlen, bcd, abdlen, abd, cdalen, cda, abclen, abc, ex, ey, ez, edet), edet, cddet, cdedet), cdedet, abdet, deter);
1735
+ return deter[deterlen - 1];
1736
+ }
1737
+ const xdet = vec(96);
1738
+ const ydet = vec(96);
1739
+ const zdet = vec(96);
1740
+ const fin = vec(1152);
1741
+ function liftadapt(a, b, c, az, bz, cz, x, y, z, out) {
1742
+ const len = sum_three_scale(a, b, c, az, bz, cz, _24);
1743
+ return sum_three(scale(scale(len, _24, x, _48), _48, x, xdet), xdet, scale(scale(len, _24, y, _48), _48, y, ydet), ydet, scale(scale(len, _24, z, _48), _48, z, zdet), zdet, _192, out);
1744
+ }
1745
+ function insphereadapt(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz, ex, ey, ez, permanent) {
1746
+ let ab3, bc3, cd3, da3, ac3, bd3;
1747
+ let aextail, bextail, cextail, dextail;
1748
+ let aeytail, beytail, ceytail, deytail;
1749
+ let aeztail, beztail, ceztail, deztail;
1750
+ let bvirt, c, ahi, alo, bhi, blo, _i, _j, _0, s1, s0, t1, t0;
1751
+ const aex = ax - ex;
1752
+ const bex = bx - ex;
1753
+ const cex = cx - ex;
1754
+ const dex = dx - ex;
1755
+ const aey = ay - ey;
1756
+ const bey = by - ey;
1757
+ const cey = cy - ey;
1758
+ const dey = dy - ey;
1759
+ const aez = az - ez;
1760
+ const bez = bz - ez;
1761
+ const cez = cz - ez;
1762
+ const dez = dz - ez;
1763
+ s1 = aex * bey;
1764
+ c = splitter * aex;
1765
+ ahi = c - (c - aex);
1766
+ alo = aex - ahi;
1767
+ c = splitter * bey;
1768
+ bhi = c - (c - bey);
1769
+ blo = bey - bhi;
1770
+ s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
1771
+ t1 = bex * aey;
1772
+ c = splitter * bex;
1773
+ ahi = c - (c - bex);
1774
+ alo = bex - ahi;
1775
+ c = splitter * aey;
1776
+ bhi = c - (c - aey);
1777
+ blo = aey - bhi;
1778
+ t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
1779
+ _i = s0 - t0;
1780
+ bvirt = s0 - _i;
1781
+ ab[0] = s0 - (_i + bvirt) + (bvirt - t0);
1782
+ _j = s1 + _i;
1783
+ bvirt = _j - s1;
1784
+ _0 = s1 - (_j - bvirt) + (_i - bvirt);
1785
+ _i = _0 - t1;
1786
+ bvirt = _0 - _i;
1787
+ ab[1] = _0 - (_i + bvirt) + (bvirt - t1);
1788
+ ab3 = _j + _i;
1789
+ bvirt = ab3 - _j;
1790
+ ab[2] = _j - (ab3 - bvirt) + (_i - bvirt);
1791
+ ab[3] = ab3;
1792
+ s1 = bex * cey;
1793
+ c = splitter * bex;
1794
+ ahi = c - (c - bex);
1795
+ alo = bex - ahi;
1796
+ c = splitter * cey;
1797
+ bhi = c - (c - cey);
1798
+ blo = cey - bhi;
1799
+ s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
1800
+ t1 = cex * bey;
1801
+ c = splitter * cex;
1802
+ ahi = c - (c - cex);
1803
+ alo = cex - ahi;
1804
+ c = splitter * bey;
1805
+ bhi = c - (c - bey);
1806
+ blo = bey - bhi;
1807
+ t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
1808
+ _i = s0 - t0;
1809
+ bvirt = s0 - _i;
1810
+ bc[0] = s0 - (_i + bvirt) + (bvirt - t0);
1811
+ _j = s1 + _i;
1812
+ bvirt = _j - s1;
1813
+ _0 = s1 - (_j - bvirt) + (_i - bvirt);
1814
+ _i = _0 - t1;
1815
+ bvirt = _0 - _i;
1816
+ bc[1] = _0 - (_i + bvirt) + (bvirt - t1);
1817
+ bc3 = _j + _i;
1818
+ bvirt = bc3 - _j;
1819
+ bc[2] = _j - (bc3 - bvirt) + (_i - bvirt);
1820
+ bc[3] = bc3;
1821
+ s1 = cex * dey;
1822
+ c = splitter * cex;
1823
+ ahi = c - (c - cex);
1824
+ alo = cex - ahi;
1825
+ c = splitter * dey;
1826
+ bhi = c - (c - dey);
1827
+ blo = dey - bhi;
1828
+ s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
1829
+ t1 = dex * cey;
1830
+ c = splitter * dex;
1831
+ ahi = c - (c - dex);
1832
+ alo = dex - ahi;
1833
+ c = splitter * cey;
1834
+ bhi = c - (c - cey);
1835
+ blo = cey - bhi;
1836
+ t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
1837
+ _i = s0 - t0;
1838
+ bvirt = s0 - _i;
1839
+ cd[0] = s0 - (_i + bvirt) + (bvirt - t0);
1840
+ _j = s1 + _i;
1841
+ bvirt = _j - s1;
1842
+ _0 = s1 - (_j - bvirt) + (_i - bvirt);
1843
+ _i = _0 - t1;
1844
+ bvirt = _0 - _i;
1845
+ cd[1] = _0 - (_i + bvirt) + (bvirt - t1);
1846
+ cd3 = _j + _i;
1847
+ bvirt = cd3 - _j;
1848
+ cd[2] = _j - (cd3 - bvirt) + (_i - bvirt);
1849
+ cd[3] = cd3;
1850
+ s1 = dex * aey;
1851
+ c = splitter * dex;
1852
+ ahi = c - (c - dex);
1853
+ alo = dex - ahi;
1854
+ c = splitter * aey;
1855
+ bhi = c - (c - aey);
1856
+ blo = aey - bhi;
1857
+ s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
1858
+ t1 = aex * dey;
1859
+ c = splitter * aex;
1860
+ ahi = c - (c - aex);
1861
+ alo = aex - ahi;
1862
+ c = splitter * dey;
1863
+ bhi = c - (c - dey);
1864
+ blo = dey - bhi;
1865
+ t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
1866
+ _i = s0 - t0;
1867
+ bvirt = s0 - _i;
1868
+ da[0] = s0 - (_i + bvirt) + (bvirt - t0);
1869
+ _j = s1 + _i;
1870
+ bvirt = _j - s1;
1871
+ _0 = s1 - (_j - bvirt) + (_i - bvirt);
1872
+ _i = _0 - t1;
1873
+ bvirt = _0 - _i;
1874
+ da[1] = _0 - (_i + bvirt) + (bvirt - t1);
1875
+ da3 = _j + _i;
1876
+ bvirt = da3 - _j;
1877
+ da[2] = _j - (da3 - bvirt) + (_i - bvirt);
1878
+ da[3] = da3;
1879
+ s1 = aex * cey;
1880
+ c = splitter * aex;
1881
+ ahi = c - (c - aex);
1882
+ alo = aex - ahi;
1883
+ c = splitter * cey;
1884
+ bhi = c - (c - cey);
1885
+ blo = cey - bhi;
1886
+ s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
1887
+ t1 = cex * aey;
1888
+ c = splitter * cex;
1889
+ ahi = c - (c - cex);
1890
+ alo = cex - ahi;
1891
+ c = splitter * aey;
1892
+ bhi = c - (c - aey);
1893
+ blo = aey - bhi;
1894
+ t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
1895
+ _i = s0 - t0;
1896
+ bvirt = s0 - _i;
1897
+ ac[0] = s0 - (_i + bvirt) + (bvirt - t0);
1898
+ _j = s1 + _i;
1899
+ bvirt = _j - s1;
1900
+ _0 = s1 - (_j - bvirt) + (_i - bvirt);
1901
+ _i = _0 - t1;
1902
+ bvirt = _0 - _i;
1903
+ ac[1] = _0 - (_i + bvirt) + (bvirt - t1);
1904
+ ac3 = _j + _i;
1905
+ bvirt = ac3 - _j;
1906
+ ac[2] = _j - (ac3 - bvirt) + (_i - bvirt);
1907
+ ac[3] = ac3;
1908
+ s1 = bex * dey;
1909
+ c = splitter * bex;
1910
+ ahi = c - (c - bex);
1911
+ alo = bex - ahi;
1912
+ c = splitter * dey;
1913
+ bhi = c - (c - dey);
1914
+ blo = dey - bhi;
1915
+ s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
1916
+ t1 = dex * bey;
1917
+ c = splitter * dex;
1918
+ ahi = c - (c - dex);
1919
+ alo = dex - ahi;
1920
+ c = splitter * bey;
1921
+ bhi = c - (c - bey);
1922
+ blo = bey - bhi;
1923
+ t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
1924
+ _i = s0 - t0;
1925
+ bvirt = s0 - _i;
1926
+ bd[0] = s0 - (_i + bvirt) + (bvirt - t0);
1927
+ _j = s1 + _i;
1928
+ bvirt = _j - s1;
1929
+ _0 = s1 - (_j - bvirt) + (_i - bvirt);
1930
+ _i = _0 - t1;
1931
+ bvirt = _0 - _i;
1932
+ bd[1] = _0 - (_i + bvirt) + (bvirt - t1);
1933
+ bd3 = _j + _i;
1934
+ bvirt = bd3 - _j;
1935
+ bd[2] = _j - (bd3 - bvirt) + (_i - bvirt);
1936
+ bd[3] = bd3;
1937
+ const finlen = sum(sum(negate(liftadapt(bc, cd, bd, dez, bez, -cez, aex, aey, aez, adet), adet), adet, liftadapt(cd, da, ac, aez, cez, dez, bex, bey, bez, bdet), bdet, abdet), abdet, sum(negate(liftadapt(da, ab, bd, bez, dez, aez, cex, cey, cez, cdet), cdet), cdet, liftadapt(ab, bc, ac, cez, aez, -bez, dex, dey, dez, ddet), ddet, cddet), cddet, fin);
1938
+ let det = estimate(finlen, fin);
1939
+ let errbound = isperrboundB * permanent;
1940
+ if (det >= errbound || -det >= errbound) {
1941
+ return det;
1942
+ }
1943
+ bvirt = ax - aex;
1944
+ aextail = ax - (aex + bvirt) + (bvirt - ex);
1945
+ bvirt = ay - aey;
1946
+ aeytail = ay - (aey + bvirt) + (bvirt - ey);
1947
+ bvirt = az - aez;
1948
+ aeztail = az - (aez + bvirt) + (bvirt - ez);
1949
+ bvirt = bx - bex;
1950
+ bextail = bx - (bex + bvirt) + (bvirt - ex);
1951
+ bvirt = by - bey;
1952
+ beytail = by - (bey + bvirt) + (bvirt - ey);
1953
+ bvirt = bz - bez;
1954
+ beztail = bz - (bez + bvirt) + (bvirt - ez);
1955
+ bvirt = cx - cex;
1956
+ cextail = cx - (cex + bvirt) + (bvirt - ex);
1957
+ bvirt = cy - cey;
1958
+ ceytail = cy - (cey + bvirt) + (bvirt - ey);
1959
+ bvirt = cz - cez;
1960
+ ceztail = cz - (cez + bvirt) + (bvirt - ez);
1961
+ bvirt = dx - dex;
1962
+ dextail = dx - (dex + bvirt) + (bvirt - ex);
1963
+ bvirt = dy - dey;
1964
+ deytail = dy - (dey + bvirt) + (bvirt - ey);
1965
+ bvirt = dz - dez;
1966
+ deztail = dz - (dez + bvirt) + (bvirt - ez);
1967
+ if (aextail === 0 && aeytail === 0 && aeztail === 0 && bextail === 0 && beytail === 0 && beztail === 0 && cextail === 0 && ceytail === 0 && ceztail === 0 && dextail === 0 && deytail === 0 && deztail === 0) {
1968
+ return det;
1969
+ }
1970
+ errbound = isperrboundC * permanent + resulterrbound * Math.abs(det);
1971
+ const abeps = aex * beytail + bey * aextail - (aey * bextail + bex * aeytail);
1972
+ const bceps = bex * ceytail + cey * bextail - (bey * cextail + cex * beytail);
1973
+ const cdeps = cex * deytail + dey * cextail - (cey * dextail + dex * ceytail);
1974
+ const daeps = dex * aeytail + aey * dextail - (dey * aextail + aex * deytail);
1975
+ const aceps = aex * ceytail + cey * aextail - (aey * cextail + cex * aeytail);
1976
+ const bdeps = bex * deytail + dey * bextail - (bey * dextail + dex * beytail);
1977
+ det += (bex * bex + bey * bey + bez * bez) * (cez * daeps + dez * aceps + aez * cdeps + (ceztail * da3 + deztail * ac3 + aeztail * cd3)) + (dex * dex + dey * dey + dez * dez) * (aez * bceps - bez * aceps + cez * abeps + (aeztail * bc3 - beztail * ac3 + ceztail * ab3)) - ((aex * aex + aey * aey + aez * aez) * (bez * cdeps - cez * bdeps + dez * bceps + (beztail * cd3 - ceztail * bd3 + deztail * bc3)) + (cex * cex + cey * cey + cez * cez) * (dez * abeps + aez * bdeps + bez * daeps + (deztail * ab3 + aeztail * bd3 + beztail * da3))) + 2 * ((bex * bextail + bey * beytail + bez * beztail) * (cez * da3 + dez * ac3 + aez * cd3) + (dex * dextail + dey * deytail + dez * deztail) * (aez * bc3 - bez * ac3 + cez * ab3) - ((aex * aextail + aey * aeytail + aez * aeztail) * (bez * cd3 - cez * bd3 + dez * bc3) + (cex * cextail + cey * ceytail + cez * ceztail) * (dez * ab3 + aez * bd3 + bez * da3)));
1978
+ if (det >= errbound || -det >= errbound) {
1979
+ return det;
1980
+ }
1981
+ return insphereexact(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz, ex, ey, ez);
1982
+ }
1983
+ function insphere(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz, ex, ey, ez) {
1984
+ const aex = ax - ex;
1985
+ const bex = bx - ex;
1986
+ const cex = cx - ex;
1987
+ const dex = dx - ex;
1988
+ const aey = ay - ey;
1989
+ const bey = by - ey;
1990
+ const cey = cy - ey;
1991
+ const dey = dy - ey;
1992
+ const aez = az - ez;
1993
+ const bez = bz - ez;
1994
+ const cez = cz - ez;
1995
+ const dez = dz - ez;
1996
+ const aexbey = aex * bey;
1997
+ const bexaey = bex * aey;
1998
+ const ab = aexbey - bexaey;
1999
+ const bexcey = bex * cey;
2000
+ const cexbey = cex * bey;
2001
+ const bc = bexcey - cexbey;
2002
+ const cexdey = cex * dey;
2003
+ const dexcey = dex * cey;
2004
+ const cd = cexdey - dexcey;
2005
+ const dexaey = dex * aey;
2006
+ const aexdey = aex * dey;
2007
+ const da = dexaey - aexdey;
2008
+ const aexcey = aex * cey;
2009
+ const cexaey = cex * aey;
2010
+ const ac = aexcey - cexaey;
2011
+ const bexdey = bex * dey;
2012
+ const dexbey = dex * bey;
2013
+ const bd = bexdey - dexbey;
2014
+ const alift = aex * aex + aey * aey + aez * aez;
2015
+ const blift = bex * bex + bey * bey + bez * bez;
2016
+ const clift = cex * cex + cey * cey + cez * cez;
2017
+ const dlift = dex * dex + dey * dey + dez * dez;
2018
+ const det = clift * (dez * ab + aez * bd + bez * da) - dlift * (aez * bc - bez * ac + cez * ab) + (alift * (bez * cd - cez * bd + dez * bc) - blift * (cez * da + dez * ac + aez * cd));
2019
+ const aezplus = Math.abs(aez);
2020
+ const bezplus = Math.abs(bez);
2021
+ const cezplus = Math.abs(cez);
2022
+ const dezplus = Math.abs(dez);
2023
+ const aexbeyplus = Math.abs(aexbey) + Math.abs(bexaey);
2024
+ const bexceyplus = Math.abs(bexcey) + Math.abs(cexbey);
2025
+ const cexdeyplus = Math.abs(cexdey) + Math.abs(dexcey);
2026
+ const dexaeyplus = Math.abs(dexaey) + Math.abs(aexdey);
2027
+ const aexceyplus = Math.abs(aexcey) + Math.abs(cexaey);
2028
+ const bexdeyplus = Math.abs(bexdey) + Math.abs(dexbey);
2029
+ const permanent = (cexdeyplus * bezplus + bexdeyplus * cezplus + bexceyplus * dezplus) * alift + (dexaeyplus * cezplus + aexceyplus * dezplus + cexdeyplus * aezplus) * blift + (aexbeyplus * dezplus + bexdeyplus * aezplus + dexaeyplus * bezplus) * clift + (bexceyplus * aezplus + aexceyplus * bezplus + aexbeyplus * cezplus) * dlift;
2030
+ const errbound = isperrboundA * permanent;
2031
+ if (det > errbound || -det > errbound) {
2032
+ return det;
2033
+ }
2034
+ return -insphereadapt(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz, ex, ey, ez, permanent);
2035
+ }
2036
+ function inspherefast(pax, pay, paz, pbx, pby, pbz, pcx, pcy, pcz, pdx, pdy, pdz, pex, pey, pez) {
2037
+ const aex = pax - pex;
2038
+ const bex = pbx - pex;
2039
+ const cex = pcx - pex;
2040
+ const dex = pdx - pex;
2041
+ const aey = pay - pey;
2042
+ const bey = pby - pey;
2043
+ const cey = pcy - pey;
2044
+ const dey = pdy - pey;
2045
+ const aez = paz - pez;
2046
+ const bez = pbz - pez;
2047
+ const cez = pcz - pez;
2048
+ const dez = pdz - pez;
2049
+ const ab = aex * bey - bex * aey;
2050
+ const bc = bex * cey - cex * bey;
2051
+ const cd = cex * dey - dex * cey;
2052
+ const da = dex * aey - aex * dey;
2053
+ const ac = aex * cey - cex * aey;
2054
+ const bd = bex * dey - dex * bey;
2055
+ const abc = aez * bc - bez * ac + cez * ab;
2056
+ const bcd = bez * cd - cez * bd + dez * bc;
2057
+ const cda = cez * da + dez * ac + aez * cd;
2058
+ const dab = dez * ab + aez * bd + bez * da;
2059
+ const alift = aex * aex + aey * aey + aez * aez;
2060
+ const blift = bex * bex + bey * bey + bez * bez;
2061
+ const clift = cex * cex + cey * cey + cez * cez;
2062
+ const dlift = dex * dex + dey * dey + dez * dez;
2063
+ return clift * dab - dlift * abc + (alift * bcd - blift * cda);
2064
+ }
2065
+ exports.incircle = incircle;
2066
+ exports.incirclefast = incirclefast;
2067
+ exports.insphere = insphere;
2068
+ exports.inspherefast = inspherefast;
2069
+ exports.orient2d = orient2d;
2070
+ exports.orient2dfast = orient2dfast;
2071
+ exports.orient3d = orient3d;
2072
+ exports.orient3dfast = orient3dfast;
2073
+ });