@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,798 @@
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 estimate(elen, e) {
130
+ let Q = e[0];
131
+ for (let i = 1; i < elen; i++) Q += e[i];
132
+ return Q;
133
+ }
134
+ function vec(n) {
135
+ return new Float64Array(n);
136
+ }
137
+ const iccerrboundA = (10 + 96 * epsilon) * epsilon;
138
+ const iccerrboundB = (4 + 48 * epsilon) * epsilon;
139
+ const iccerrboundC = (44 + 576 * epsilon) * epsilon * epsilon;
140
+ const bc = vec(4);
141
+ const ca = vec(4);
142
+ const ab = vec(4);
143
+ const aa = vec(4);
144
+ const bb = vec(4);
145
+ const cc = vec(4);
146
+ const u = vec(4);
147
+ const v = vec(4);
148
+ const axtbc = vec(8);
149
+ const aytbc = vec(8);
150
+ const bxtca = vec(8);
151
+ const bytca = vec(8);
152
+ const cxtab = vec(8);
153
+ const cytab = vec(8);
154
+ const abt = vec(8);
155
+ const bct = vec(8);
156
+ const cat = vec(8);
157
+ const abtt = vec(4);
158
+ const bctt = vec(4);
159
+ const catt = vec(4);
160
+ const _8 = vec(8);
161
+ const _16 = vec(16);
162
+ const _16b = vec(16);
163
+ const _16c = vec(16);
164
+ const _32 = vec(32);
165
+ const _32b = vec(32);
166
+ const _48 = vec(48);
167
+ const _64 = vec(64);
168
+ let fin = vec(1152);
169
+ let fin2 = vec(1152);
170
+ function finadd(finlen, a, alen) {
171
+ finlen = sum(finlen, fin, a, alen, fin2);
172
+ const tmp = fin;
173
+ fin = fin2;
174
+ fin2 = tmp;
175
+ return finlen;
176
+ }
177
+ function incircleadapt(ax, ay, bx, by, cx, cy, dx, dy, permanent) {
178
+ let finlen;
179
+ let adxtail, bdxtail, cdxtail, adytail, bdytail, cdytail;
180
+ let axtbclen, aytbclen, bxtcalen, bytcalen, cxtablen, cytablen;
181
+ let abtlen, bctlen, catlen;
182
+ let abttlen, bcttlen, cattlen;
183
+ let n1, n0;
184
+ let bvirt, c, ahi, alo, bhi, blo, _i, _j, _0, s1, s0, t1, t0, u3;
185
+ const adx = ax - dx;
186
+ const bdx = bx - dx;
187
+ const cdx = cx - dx;
188
+ const ady = ay - dy;
189
+ const bdy = by - dy;
190
+ const cdy = cy - dy;
191
+ s1 = bdx * cdy;
192
+ c = splitter * bdx;
193
+ ahi = c - (c - bdx);
194
+ alo = bdx - ahi;
195
+ c = splitter * cdy;
196
+ bhi = c - (c - cdy);
197
+ blo = cdy - bhi;
198
+ s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
199
+ t1 = cdx * bdy;
200
+ c = splitter * cdx;
201
+ ahi = c - (c - cdx);
202
+ alo = cdx - ahi;
203
+ c = splitter * bdy;
204
+ bhi = c - (c - bdy);
205
+ blo = bdy - bhi;
206
+ t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
207
+ _i = s0 - t0;
208
+ bvirt = s0 - _i;
209
+ bc[0] = s0 - (_i + bvirt) + (bvirt - t0);
210
+ _j = s1 + _i;
211
+ bvirt = _j - s1;
212
+ _0 = s1 - (_j - bvirt) + (_i - bvirt);
213
+ _i = _0 - t1;
214
+ bvirt = _0 - _i;
215
+ bc[1] = _0 - (_i + bvirt) + (bvirt - t1);
216
+ u3 = _j + _i;
217
+ bvirt = u3 - _j;
218
+ bc[2] = _j - (u3 - bvirt) + (_i - bvirt);
219
+ bc[3] = u3;
220
+ s1 = cdx * ady;
221
+ c = splitter * cdx;
222
+ ahi = c - (c - cdx);
223
+ alo = cdx - ahi;
224
+ c = splitter * ady;
225
+ bhi = c - (c - ady);
226
+ blo = ady - bhi;
227
+ s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
228
+ t1 = adx * cdy;
229
+ c = splitter * adx;
230
+ ahi = c - (c - adx);
231
+ alo = adx - ahi;
232
+ c = splitter * cdy;
233
+ bhi = c - (c - cdy);
234
+ blo = cdy - bhi;
235
+ t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
236
+ _i = s0 - t0;
237
+ bvirt = s0 - _i;
238
+ ca[0] = s0 - (_i + bvirt) + (bvirt - t0);
239
+ _j = s1 + _i;
240
+ bvirt = _j - s1;
241
+ _0 = s1 - (_j - bvirt) + (_i - bvirt);
242
+ _i = _0 - t1;
243
+ bvirt = _0 - _i;
244
+ ca[1] = _0 - (_i + bvirt) + (bvirt - t1);
245
+ u3 = _j + _i;
246
+ bvirt = u3 - _j;
247
+ ca[2] = _j - (u3 - bvirt) + (_i - bvirt);
248
+ ca[3] = u3;
249
+ s1 = adx * bdy;
250
+ c = splitter * adx;
251
+ ahi = c - (c - adx);
252
+ alo = adx - ahi;
253
+ c = splitter * bdy;
254
+ bhi = c - (c - bdy);
255
+ blo = bdy - bhi;
256
+ s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
257
+ t1 = bdx * ady;
258
+ c = splitter * bdx;
259
+ ahi = c - (c - bdx);
260
+ alo = bdx - ahi;
261
+ c = splitter * ady;
262
+ bhi = c - (c - ady);
263
+ blo = ady - bhi;
264
+ t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
265
+ _i = s0 - t0;
266
+ bvirt = s0 - _i;
267
+ ab[0] = s0 - (_i + bvirt) + (bvirt - t0);
268
+ _j = s1 + _i;
269
+ bvirt = _j - s1;
270
+ _0 = s1 - (_j - bvirt) + (_i - bvirt);
271
+ _i = _0 - t1;
272
+ bvirt = _0 - _i;
273
+ ab[1] = _0 - (_i + bvirt) + (bvirt - t1);
274
+ u3 = _j + _i;
275
+ bvirt = u3 - _j;
276
+ ab[2] = _j - (u3 - bvirt) + (_i - bvirt);
277
+ ab[3] = u3;
278
+ finlen = sum(sum(sum(scale(scale(4, bc, adx, _8), _8, adx, _16), _16, scale(scale(4, bc, ady, _8), _8, ady, _16b), _16b, _32), _32, sum(scale(scale(4, ca, bdx, _8), _8, bdx, _16), _16, scale(scale(4, ca, bdy, _8), _8, bdy, _16b), _16b, _32b), _32b, _64), _64, sum(scale(scale(4, ab, cdx, _8), _8, cdx, _16), _16, scale(scale(4, ab, cdy, _8), _8, cdy, _16b), _16b, _32), _32, fin);
279
+ let det = estimate(finlen, fin);
280
+ let errbound = iccerrboundB * permanent;
281
+ if (det >= errbound || -det >= errbound) {
282
+ return det;
283
+ }
284
+ bvirt = ax - adx;
285
+ adxtail = ax - (adx + bvirt) + (bvirt - dx);
286
+ bvirt = ay - ady;
287
+ adytail = ay - (ady + bvirt) + (bvirt - dy);
288
+ bvirt = bx - bdx;
289
+ bdxtail = bx - (bdx + bvirt) + (bvirt - dx);
290
+ bvirt = by - bdy;
291
+ bdytail = by - (bdy + bvirt) + (bvirt - dy);
292
+ bvirt = cx - cdx;
293
+ cdxtail = cx - (cdx + bvirt) + (bvirt - dx);
294
+ bvirt = cy - cdy;
295
+ cdytail = cy - (cdy + bvirt) + (bvirt - dy);
296
+ if (adxtail === 0 && bdxtail === 0 && cdxtail === 0 && adytail === 0 && bdytail === 0 && cdytail === 0) {
297
+ return det;
298
+ }
299
+ errbound = iccerrboundC * permanent + resulterrbound * Math.abs(det);
300
+ 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));
301
+ if (det >= errbound || -det >= errbound) {
302
+ return det;
303
+ }
304
+ if (bdxtail !== 0 || bdytail !== 0 || cdxtail !== 0 || cdytail !== 0) {
305
+ s1 = adx * adx;
306
+ c = splitter * adx;
307
+ ahi = c - (c - adx);
308
+ alo = adx - ahi;
309
+ s0 = alo * alo - (s1 - ahi * ahi - (ahi + ahi) * alo);
310
+ t1 = ady * ady;
311
+ c = splitter * ady;
312
+ ahi = c - (c - ady);
313
+ alo = ady - ahi;
314
+ t0 = alo * alo - (t1 - ahi * ahi - (ahi + ahi) * alo);
315
+ _i = s0 + t0;
316
+ bvirt = _i - s0;
317
+ aa[0] = s0 - (_i - bvirt) + (t0 - bvirt);
318
+ _j = s1 + _i;
319
+ bvirt = _j - s1;
320
+ _0 = s1 - (_j - bvirt) + (_i - bvirt);
321
+ _i = _0 + t1;
322
+ bvirt = _i - _0;
323
+ aa[1] = _0 - (_i - bvirt) + (t1 - bvirt);
324
+ u3 = _j + _i;
325
+ bvirt = u3 - _j;
326
+ aa[2] = _j - (u3 - bvirt) + (_i - bvirt);
327
+ aa[3] = u3;
328
+ }
329
+ if (cdxtail !== 0 || cdytail !== 0 || adxtail !== 0 || adytail !== 0) {
330
+ s1 = bdx * bdx;
331
+ c = splitter * bdx;
332
+ ahi = c - (c - bdx);
333
+ alo = bdx - ahi;
334
+ s0 = alo * alo - (s1 - ahi * ahi - (ahi + ahi) * alo);
335
+ t1 = bdy * bdy;
336
+ c = splitter * bdy;
337
+ ahi = c - (c - bdy);
338
+ alo = bdy - ahi;
339
+ t0 = alo * alo - (t1 - ahi * ahi - (ahi + ahi) * alo);
340
+ _i = s0 + t0;
341
+ bvirt = _i - s0;
342
+ bb[0] = s0 - (_i - bvirt) + (t0 - bvirt);
343
+ _j = s1 + _i;
344
+ bvirt = _j - s1;
345
+ _0 = s1 - (_j - bvirt) + (_i - bvirt);
346
+ _i = _0 + t1;
347
+ bvirt = _i - _0;
348
+ bb[1] = _0 - (_i - bvirt) + (t1 - bvirt);
349
+ u3 = _j + _i;
350
+ bvirt = u3 - _j;
351
+ bb[2] = _j - (u3 - bvirt) + (_i - bvirt);
352
+ bb[3] = u3;
353
+ }
354
+ if (adxtail !== 0 || adytail !== 0 || bdxtail !== 0 || bdytail !== 0) {
355
+ s1 = cdx * cdx;
356
+ c = splitter * cdx;
357
+ ahi = c - (c - cdx);
358
+ alo = cdx - ahi;
359
+ s0 = alo * alo - (s1 - ahi * ahi - (ahi + ahi) * alo);
360
+ t1 = cdy * cdy;
361
+ c = splitter * cdy;
362
+ ahi = c - (c - cdy);
363
+ alo = cdy - ahi;
364
+ t0 = alo * alo - (t1 - ahi * ahi - (ahi + ahi) * alo);
365
+ _i = s0 + t0;
366
+ bvirt = _i - s0;
367
+ cc[0] = s0 - (_i - bvirt) + (t0 - bvirt);
368
+ _j = s1 + _i;
369
+ bvirt = _j - s1;
370
+ _0 = s1 - (_j - bvirt) + (_i - bvirt);
371
+ _i = _0 + t1;
372
+ bvirt = _i - _0;
373
+ cc[1] = _0 - (_i - bvirt) + (t1 - bvirt);
374
+ u3 = _j + _i;
375
+ bvirt = u3 - _j;
376
+ cc[2] = _j - (u3 - bvirt) + (_i - bvirt);
377
+ cc[3] = u3;
378
+ }
379
+ if (adxtail !== 0) {
380
+ axtbclen = scale(4, bc, adxtail, axtbc);
381
+ finlen = finadd(finlen, sum_three(scale(axtbclen, axtbc, 2 * adx, _16), _16, scale(scale(4, cc, adxtail, _8), _8, bdy, _16b), _16b, scale(scale(4, bb, adxtail, _8), _8, -cdy, _16c), _16c, _32, _48), _48);
382
+ }
383
+ if (adytail !== 0) {
384
+ aytbclen = scale(4, bc, adytail, aytbc);
385
+ finlen = finadd(finlen, sum_three(scale(aytbclen, aytbc, 2 * ady, _16), _16, scale(scale(4, bb, adytail, _8), _8, cdx, _16b), _16b, scale(scale(4, cc, adytail, _8), _8, -bdx, _16c), _16c, _32, _48), _48);
386
+ }
387
+ if (bdxtail !== 0) {
388
+ bxtcalen = scale(4, ca, bdxtail, bxtca);
389
+ finlen = finadd(finlen, sum_three(scale(bxtcalen, bxtca, 2 * bdx, _16), _16, scale(scale(4, aa, bdxtail, _8), _8, cdy, _16b), _16b, scale(scale(4, cc, bdxtail, _8), _8, -ady, _16c), _16c, _32, _48), _48);
390
+ }
391
+ if (bdytail !== 0) {
392
+ bytcalen = scale(4, ca, bdytail, bytca);
393
+ finlen = finadd(finlen, sum_three(scale(bytcalen, bytca, 2 * bdy, _16), _16, scale(scale(4, cc, bdytail, _8), _8, adx, _16b), _16b, scale(scale(4, aa, bdytail, _8), _8, -cdx, _16c), _16c, _32, _48), _48);
394
+ }
395
+ if (cdxtail !== 0) {
396
+ cxtablen = scale(4, ab, cdxtail, cxtab);
397
+ finlen = finadd(finlen, sum_three(scale(cxtablen, cxtab, 2 * cdx, _16), _16, scale(scale(4, bb, cdxtail, _8), _8, ady, _16b), _16b, scale(scale(4, aa, cdxtail, _8), _8, -bdy, _16c), _16c, _32, _48), _48);
398
+ }
399
+ if (cdytail !== 0) {
400
+ cytablen = scale(4, ab, cdytail, cytab);
401
+ finlen = finadd(finlen, sum_three(scale(cytablen, cytab, 2 * cdy, _16), _16, scale(scale(4, aa, cdytail, _8), _8, bdx, _16b), _16b, scale(scale(4, bb, cdytail, _8), _8, -adx, _16c), _16c, _32, _48), _48);
402
+ }
403
+ if (adxtail !== 0 || adytail !== 0) {
404
+ if (bdxtail !== 0 || bdytail !== 0 || cdxtail !== 0 || cdytail !== 0) {
405
+ s1 = bdxtail * cdy;
406
+ c = splitter * bdxtail;
407
+ ahi = c - (c - bdxtail);
408
+ alo = bdxtail - ahi;
409
+ c = splitter * cdy;
410
+ bhi = c - (c - cdy);
411
+ blo = cdy - bhi;
412
+ s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
413
+ t1 = bdx * cdytail;
414
+ c = splitter * bdx;
415
+ ahi = c - (c - bdx);
416
+ alo = bdx - ahi;
417
+ c = splitter * cdytail;
418
+ bhi = c - (c - cdytail);
419
+ blo = cdytail - bhi;
420
+ t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
421
+ _i = s0 + t0;
422
+ bvirt = _i - s0;
423
+ u[0] = s0 - (_i - bvirt) + (t0 - bvirt);
424
+ _j = s1 + _i;
425
+ bvirt = _j - s1;
426
+ _0 = s1 - (_j - bvirt) + (_i - bvirt);
427
+ _i = _0 + t1;
428
+ bvirt = _i - _0;
429
+ u[1] = _0 - (_i - bvirt) + (t1 - bvirt);
430
+ u3 = _j + _i;
431
+ bvirt = u3 - _j;
432
+ u[2] = _j - (u3 - bvirt) + (_i - bvirt);
433
+ u[3] = u3;
434
+ s1 = cdxtail * -bdy;
435
+ c = splitter * cdxtail;
436
+ ahi = c - (c - cdxtail);
437
+ alo = cdxtail - ahi;
438
+ c = splitter * -bdy;
439
+ bhi = c - (c - -bdy);
440
+ blo = -bdy - bhi;
441
+ s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
442
+ t1 = cdx * -bdytail;
443
+ c = splitter * cdx;
444
+ ahi = c - (c - cdx);
445
+ alo = cdx - ahi;
446
+ c = splitter * -bdytail;
447
+ bhi = c - (c - -bdytail);
448
+ blo = -bdytail - bhi;
449
+ t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
450
+ _i = s0 + t0;
451
+ bvirt = _i - s0;
452
+ v[0] = s0 - (_i - bvirt) + (t0 - bvirt);
453
+ _j = s1 + _i;
454
+ bvirt = _j - s1;
455
+ _0 = s1 - (_j - bvirt) + (_i - bvirt);
456
+ _i = _0 + t1;
457
+ bvirt = _i - _0;
458
+ v[1] = _0 - (_i - bvirt) + (t1 - bvirt);
459
+ u3 = _j + _i;
460
+ bvirt = u3 - _j;
461
+ v[2] = _j - (u3 - bvirt) + (_i - bvirt);
462
+ v[3] = u3;
463
+ bctlen = sum(4, u, 4, v, bct);
464
+ s1 = bdxtail * cdytail;
465
+ c = splitter * bdxtail;
466
+ ahi = c - (c - bdxtail);
467
+ alo = bdxtail - ahi;
468
+ c = splitter * cdytail;
469
+ bhi = c - (c - cdytail);
470
+ blo = cdytail - bhi;
471
+ s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
472
+ t1 = cdxtail * bdytail;
473
+ c = splitter * cdxtail;
474
+ ahi = c - (c - cdxtail);
475
+ alo = cdxtail - ahi;
476
+ c = splitter * bdytail;
477
+ bhi = c - (c - bdytail);
478
+ blo = bdytail - bhi;
479
+ t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
480
+ _i = s0 - t0;
481
+ bvirt = s0 - _i;
482
+ bctt[0] = s0 - (_i + bvirt) + (bvirt - t0);
483
+ _j = s1 + _i;
484
+ bvirt = _j - s1;
485
+ _0 = s1 - (_j - bvirt) + (_i - bvirt);
486
+ _i = _0 - t1;
487
+ bvirt = _0 - _i;
488
+ bctt[1] = _0 - (_i + bvirt) + (bvirt - t1);
489
+ u3 = _j + _i;
490
+ bvirt = u3 - _j;
491
+ bctt[2] = _j - (u3 - bvirt) + (_i - bvirt);
492
+ bctt[3] = u3;
493
+ bcttlen = 4;
494
+ } else {
495
+ bct[0] = 0;
496
+ bctlen = 1;
497
+ bctt[0] = 0;
498
+ bcttlen = 1;
499
+ }
500
+ if (adxtail !== 0) {
501
+ const len = scale(bctlen, bct, adxtail, _16c);
502
+ finlen = finadd(finlen, sum(scale(axtbclen, axtbc, adxtail, _16), _16, scale(len, _16c, 2 * adx, _32), _32, _48), _48);
503
+ const len2 = scale(bcttlen, bctt, adxtail, _8);
504
+ finlen = finadd(finlen, sum_three(scale(len2, _8, 2 * adx, _16), _16, scale(len2, _8, adxtail, _16b), _16b, scale(len, _16c, adxtail, _32), _32, _32b, _64), _64);
505
+ if (bdytail !== 0) {
506
+ finlen = finadd(finlen, scale(scale(4, cc, adxtail, _8), _8, bdytail, _16), _16);
507
+ }
508
+ if (cdytail !== 0) {
509
+ finlen = finadd(finlen, scale(scale(4, bb, -adxtail, _8), _8, cdytail, _16), _16);
510
+ }
511
+ }
512
+ if (adytail !== 0) {
513
+ const len = scale(bctlen, bct, adytail, _16c);
514
+ finlen = finadd(finlen, sum(scale(aytbclen, aytbc, adytail, _16), _16, scale(len, _16c, 2 * ady, _32), _32, _48), _48);
515
+ const len2 = scale(bcttlen, bctt, adytail, _8);
516
+ finlen = finadd(finlen, sum_three(scale(len2, _8, 2 * ady, _16), _16, scale(len2, _8, adytail, _16b), _16b, scale(len, _16c, adytail, _32), _32, _32b, _64), _64);
517
+ }
518
+ }
519
+ if (bdxtail !== 0 || bdytail !== 0) {
520
+ if (cdxtail !== 0 || cdytail !== 0 || adxtail !== 0 || adytail !== 0) {
521
+ s1 = cdxtail * ady;
522
+ c = splitter * cdxtail;
523
+ ahi = c - (c - cdxtail);
524
+ alo = cdxtail - ahi;
525
+ c = splitter * ady;
526
+ bhi = c - (c - ady);
527
+ blo = ady - bhi;
528
+ s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
529
+ t1 = cdx * adytail;
530
+ c = splitter * cdx;
531
+ ahi = c - (c - cdx);
532
+ alo = cdx - ahi;
533
+ c = splitter * adytail;
534
+ bhi = c - (c - adytail);
535
+ blo = adytail - bhi;
536
+ t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
537
+ _i = s0 + t0;
538
+ bvirt = _i - s0;
539
+ u[0] = s0 - (_i - bvirt) + (t0 - bvirt);
540
+ _j = s1 + _i;
541
+ bvirt = _j - s1;
542
+ _0 = s1 - (_j - bvirt) + (_i - bvirt);
543
+ _i = _0 + t1;
544
+ bvirt = _i - _0;
545
+ u[1] = _0 - (_i - bvirt) + (t1 - bvirt);
546
+ u3 = _j + _i;
547
+ bvirt = u3 - _j;
548
+ u[2] = _j - (u3 - bvirt) + (_i - bvirt);
549
+ u[3] = u3;
550
+ n1 = -cdy;
551
+ n0 = -cdytail;
552
+ s1 = adxtail * n1;
553
+ c = splitter * adxtail;
554
+ ahi = c - (c - adxtail);
555
+ alo = adxtail - ahi;
556
+ c = splitter * n1;
557
+ bhi = c - (c - n1);
558
+ blo = n1 - bhi;
559
+ s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
560
+ t1 = adx * n0;
561
+ c = splitter * adx;
562
+ ahi = c - (c - adx);
563
+ alo = adx - ahi;
564
+ c = splitter * n0;
565
+ bhi = c - (c - n0);
566
+ blo = n0 - bhi;
567
+ t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
568
+ _i = s0 + t0;
569
+ bvirt = _i - s0;
570
+ v[0] = s0 - (_i - bvirt) + (t0 - bvirt);
571
+ _j = s1 + _i;
572
+ bvirt = _j - s1;
573
+ _0 = s1 - (_j - bvirt) + (_i - bvirt);
574
+ _i = _0 + t1;
575
+ bvirt = _i - _0;
576
+ v[1] = _0 - (_i - bvirt) + (t1 - bvirt);
577
+ u3 = _j + _i;
578
+ bvirt = u3 - _j;
579
+ v[2] = _j - (u3 - bvirt) + (_i - bvirt);
580
+ v[3] = u3;
581
+ catlen = sum(4, u, 4, v, cat);
582
+ s1 = cdxtail * adytail;
583
+ c = splitter * cdxtail;
584
+ ahi = c - (c - cdxtail);
585
+ alo = cdxtail - ahi;
586
+ c = splitter * adytail;
587
+ bhi = c - (c - adytail);
588
+ blo = adytail - bhi;
589
+ s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
590
+ t1 = adxtail * cdytail;
591
+ c = splitter * adxtail;
592
+ ahi = c - (c - adxtail);
593
+ alo = adxtail - ahi;
594
+ c = splitter * cdytail;
595
+ bhi = c - (c - cdytail);
596
+ blo = cdytail - bhi;
597
+ t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
598
+ _i = s0 - t0;
599
+ bvirt = s0 - _i;
600
+ catt[0] = s0 - (_i + bvirt) + (bvirt - t0);
601
+ _j = s1 + _i;
602
+ bvirt = _j - s1;
603
+ _0 = s1 - (_j - bvirt) + (_i - bvirt);
604
+ _i = _0 - t1;
605
+ bvirt = _0 - _i;
606
+ catt[1] = _0 - (_i + bvirt) + (bvirt - t1);
607
+ u3 = _j + _i;
608
+ bvirt = u3 - _j;
609
+ catt[2] = _j - (u3 - bvirt) + (_i - bvirt);
610
+ catt[3] = u3;
611
+ cattlen = 4;
612
+ } else {
613
+ cat[0] = 0;
614
+ catlen = 1;
615
+ catt[0] = 0;
616
+ cattlen = 1;
617
+ }
618
+ if (bdxtail !== 0) {
619
+ const len = scale(catlen, cat, bdxtail, _16c);
620
+ finlen = finadd(finlen, sum(scale(bxtcalen, bxtca, bdxtail, _16), _16, scale(len, _16c, 2 * bdx, _32), _32, _48), _48);
621
+ const len2 = scale(cattlen, catt, bdxtail, _8);
622
+ finlen = finadd(finlen, sum_three(scale(len2, _8, 2 * bdx, _16), _16, scale(len2, _8, bdxtail, _16b), _16b, scale(len, _16c, bdxtail, _32), _32, _32b, _64), _64);
623
+ if (cdytail !== 0) {
624
+ finlen = finadd(finlen, scale(scale(4, aa, bdxtail, _8), _8, cdytail, _16), _16);
625
+ }
626
+ if (adytail !== 0) {
627
+ finlen = finadd(finlen, scale(scale(4, cc, -bdxtail, _8), _8, adytail, _16), _16);
628
+ }
629
+ }
630
+ if (bdytail !== 0) {
631
+ const len = scale(catlen, cat, bdytail, _16c);
632
+ finlen = finadd(finlen, sum(scale(bytcalen, bytca, bdytail, _16), _16, scale(len, _16c, 2 * bdy, _32), _32, _48), _48);
633
+ const len2 = scale(cattlen, catt, bdytail, _8);
634
+ finlen = finadd(finlen, sum_three(scale(len2, _8, 2 * bdy, _16), _16, scale(len2, _8, bdytail, _16b), _16b, scale(len, _16c, bdytail, _32), _32, _32b, _64), _64);
635
+ }
636
+ }
637
+ if (cdxtail !== 0 || cdytail !== 0) {
638
+ if (adxtail !== 0 || adytail !== 0 || bdxtail !== 0 || bdytail !== 0) {
639
+ s1 = adxtail * bdy;
640
+ c = splitter * adxtail;
641
+ ahi = c - (c - adxtail);
642
+ alo = adxtail - ahi;
643
+ c = splitter * bdy;
644
+ bhi = c - (c - bdy);
645
+ blo = bdy - bhi;
646
+ s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
647
+ t1 = adx * bdytail;
648
+ c = splitter * adx;
649
+ ahi = c - (c - adx);
650
+ alo = adx - ahi;
651
+ c = splitter * bdytail;
652
+ bhi = c - (c - bdytail);
653
+ blo = bdytail - bhi;
654
+ t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
655
+ _i = s0 + t0;
656
+ bvirt = _i - s0;
657
+ u[0] = s0 - (_i - bvirt) + (t0 - bvirt);
658
+ _j = s1 + _i;
659
+ bvirt = _j - s1;
660
+ _0 = s1 - (_j - bvirt) + (_i - bvirt);
661
+ _i = _0 + t1;
662
+ bvirt = _i - _0;
663
+ u[1] = _0 - (_i - bvirt) + (t1 - bvirt);
664
+ u3 = _j + _i;
665
+ bvirt = u3 - _j;
666
+ u[2] = _j - (u3 - bvirt) + (_i - bvirt);
667
+ u[3] = u3;
668
+ n1 = -ady;
669
+ n0 = -adytail;
670
+ s1 = bdxtail * n1;
671
+ c = splitter * bdxtail;
672
+ ahi = c - (c - bdxtail);
673
+ alo = bdxtail - ahi;
674
+ c = splitter * n1;
675
+ bhi = c - (c - n1);
676
+ blo = n1 - bhi;
677
+ s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
678
+ t1 = bdx * n0;
679
+ c = splitter * bdx;
680
+ ahi = c - (c - bdx);
681
+ alo = bdx - ahi;
682
+ c = splitter * n0;
683
+ bhi = c - (c - n0);
684
+ blo = n0 - bhi;
685
+ t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
686
+ _i = s0 + t0;
687
+ bvirt = _i - s0;
688
+ v[0] = s0 - (_i - bvirt) + (t0 - bvirt);
689
+ _j = s1 + _i;
690
+ bvirt = _j - s1;
691
+ _0 = s1 - (_j - bvirt) + (_i - bvirt);
692
+ _i = _0 + t1;
693
+ bvirt = _i - _0;
694
+ v[1] = _0 - (_i - bvirt) + (t1 - bvirt);
695
+ u3 = _j + _i;
696
+ bvirt = u3 - _j;
697
+ v[2] = _j - (u3 - bvirt) + (_i - bvirt);
698
+ v[3] = u3;
699
+ abtlen = sum(4, u, 4, v, abt);
700
+ s1 = adxtail * bdytail;
701
+ c = splitter * adxtail;
702
+ ahi = c - (c - adxtail);
703
+ alo = adxtail - ahi;
704
+ c = splitter * bdytail;
705
+ bhi = c - (c - bdytail);
706
+ blo = bdytail - bhi;
707
+ s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
708
+ t1 = bdxtail * adytail;
709
+ c = splitter * bdxtail;
710
+ ahi = c - (c - bdxtail);
711
+ alo = bdxtail - ahi;
712
+ c = splitter * adytail;
713
+ bhi = c - (c - adytail);
714
+ blo = adytail - bhi;
715
+ t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
716
+ _i = s0 - t0;
717
+ bvirt = s0 - _i;
718
+ abtt[0] = s0 - (_i + bvirt) + (bvirt - t0);
719
+ _j = s1 + _i;
720
+ bvirt = _j - s1;
721
+ _0 = s1 - (_j - bvirt) + (_i - bvirt);
722
+ _i = _0 - t1;
723
+ bvirt = _0 - _i;
724
+ abtt[1] = _0 - (_i + bvirt) + (bvirt - t1);
725
+ u3 = _j + _i;
726
+ bvirt = u3 - _j;
727
+ abtt[2] = _j - (u3 - bvirt) + (_i - bvirt);
728
+ abtt[3] = u3;
729
+ abttlen = 4;
730
+ } else {
731
+ abt[0] = 0;
732
+ abtlen = 1;
733
+ abtt[0] = 0;
734
+ abttlen = 1;
735
+ }
736
+ if (cdxtail !== 0) {
737
+ const len = scale(abtlen, abt, cdxtail, _16c);
738
+ finlen = finadd(finlen, sum(scale(cxtablen, cxtab, cdxtail, _16), _16, scale(len, _16c, 2 * cdx, _32), _32, _48), _48);
739
+ const len2 = scale(abttlen, abtt, cdxtail, _8);
740
+ finlen = finadd(finlen, sum_three(scale(len2, _8, 2 * cdx, _16), _16, scale(len2, _8, cdxtail, _16b), _16b, scale(len, _16c, cdxtail, _32), _32, _32b, _64), _64);
741
+ if (adytail !== 0) {
742
+ finlen = finadd(finlen, scale(scale(4, bb, cdxtail, _8), _8, adytail, _16), _16);
743
+ }
744
+ if (bdytail !== 0) {
745
+ finlen = finadd(finlen, scale(scale(4, aa, -cdxtail, _8), _8, bdytail, _16), _16);
746
+ }
747
+ }
748
+ if (cdytail !== 0) {
749
+ const len = scale(abtlen, abt, cdytail, _16c);
750
+ finlen = finadd(finlen, sum(scale(cytablen, cytab, cdytail, _16), _16, scale(len, _16c, 2 * cdy, _32), _32, _48), _48);
751
+ const len2 = scale(abttlen, abtt, cdytail, _8);
752
+ finlen = finadd(finlen, sum_three(scale(len2, _8, 2 * cdy, _16), _16, scale(len2, _8, cdytail, _16b), _16b, scale(len, _16c, cdytail, _32), _32, _32b, _64), _64);
753
+ }
754
+ }
755
+ return fin[finlen - 1];
756
+ }
757
+ function incircle(ax, ay, bx, by, cx, cy, dx, dy) {
758
+ const adx = ax - dx;
759
+ const bdx = bx - dx;
760
+ const cdx = cx - dx;
761
+ const ady = ay - dy;
762
+ const bdy = by - dy;
763
+ const cdy = cy - dy;
764
+ const bdxcdy = bdx * cdy;
765
+ const cdxbdy = cdx * bdy;
766
+ const alift = adx * adx + ady * ady;
767
+ const cdxady = cdx * ady;
768
+ const adxcdy = adx * cdy;
769
+ const blift = bdx * bdx + bdy * bdy;
770
+ const adxbdy = adx * bdy;
771
+ const bdxady = bdx * ady;
772
+ const clift = cdx * cdx + cdy * cdy;
773
+ const det = alift * (bdxcdy - cdxbdy) + blift * (cdxady - adxcdy) + clift * (adxbdy - bdxady);
774
+ const permanent = (Math.abs(bdxcdy) + Math.abs(cdxbdy)) * alift + (Math.abs(cdxady) + Math.abs(adxcdy)) * blift + (Math.abs(adxbdy) + Math.abs(bdxady)) * clift;
775
+ const errbound = iccerrboundA * permanent;
776
+ if (det > errbound || -det > errbound) {
777
+ return det;
778
+ }
779
+ return incircleadapt(ax, ay, bx, by, cx, cy, dx, dy, permanent);
780
+ }
781
+ function incirclefast(ax, ay, bx, by, cx, cy, dx, dy) {
782
+ const adx = ax - dx;
783
+ const ady = ay - dy;
784
+ const bdx = bx - dx;
785
+ const bdy = by - dy;
786
+ const cdx = cx - dx;
787
+ const cdy = cy - dy;
788
+ const abdet = adx * bdy - bdx * ady;
789
+ const bcdet = bdx * cdy - cdx * bdy;
790
+ const cadet = cdx * ady - adx * cdy;
791
+ const alift = adx * adx + ady * ady;
792
+ const blift = bdx * bdx + bdy * bdy;
793
+ const clift = cdx * cdx + cdy * cdy;
794
+ return alift * bcdet + blift * cadet + clift * abdet;
795
+ }
796
+ exports.incircle = incircle;
797
+ exports.incirclefast = incirclefast;
798
+ });