node-red-contrib-tak-registration 0.11.4 → 0.11.6

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 (202) hide show
  1. package/node_modules/@types/node/README.md +1 -1
  2. package/node_modules/@types/node/buffer.d.ts +8 -7
  3. package/node_modules/@types/node/crypto.d.ts +38 -7
  4. package/node_modules/@types/node/dgram.d.ts +10 -0
  5. package/node_modules/@types/node/diagnostics_channel.d.ts +355 -1
  6. package/node_modules/@types/node/fs.d.ts +28 -8
  7. package/node_modules/@types/node/globals.d.ts +26 -0
  8. package/node_modules/@types/node/http.d.ts +6 -7
  9. package/node_modules/@types/node/module.d.ts +14 -0
  10. package/node_modules/@types/node/net.d.ts +8 -3
  11. package/node_modules/@types/node/package.json +3 -4
  12. package/node_modules/@types/node/perf_hooks.d.ts +12 -6
  13. package/node_modules/@types/node/process.d.ts +25 -3
  14. package/node_modules/@types/node/querystring.d.ts +3 -3
  15. package/node_modules/@types/node/stream/web.d.ts +17 -1
  16. package/node_modules/@types/node/string_decoder.d.ts +2 -2
  17. package/node_modules/@types/node/test.d.ts +98 -15
  18. package/node_modules/@types/node/tls.d.ts +1 -1
  19. package/node_modules/@types/node/ts4.8/buffer.d.ts +8 -7
  20. package/node_modules/@types/node/ts4.8/crypto.d.ts +41 -9
  21. package/node_modules/@types/node/ts4.8/dgram.d.ts +10 -0
  22. package/node_modules/@types/node/ts4.8/diagnostics_channel.d.ts +355 -1
  23. package/node_modules/@types/node/ts4.8/fs.d.ts +28 -8
  24. package/node_modules/@types/node/ts4.8/globals.d.ts +26 -0
  25. package/node_modules/@types/node/ts4.8/http.d.ts +6 -7
  26. package/node_modules/@types/node/ts4.8/module.d.ts +14 -0
  27. package/node_modules/@types/node/ts4.8/net.d.ts +8 -3
  28. package/node_modules/@types/node/ts4.8/perf_hooks.d.ts +13 -7
  29. package/node_modules/@types/node/ts4.8/process.d.ts +25 -3
  30. package/node_modules/@types/node/ts4.8/querystring.d.ts +3 -3
  31. package/node_modules/@types/node/ts4.8/stream/web.d.ts +17 -1
  32. package/node_modules/@types/node/ts4.8/string_decoder.d.ts +2 -2
  33. package/node_modules/@types/node/ts4.8/test.d.ts +98 -15
  34. package/node_modules/@types/node/ts4.8/tls.d.ts +1 -1
  35. package/node_modules/@types/node/ts4.8/url.d.ts +59 -42
  36. package/node_modules/@types/node/ts4.8/util.d.ts +1 -1
  37. package/node_modules/@types/node/ts4.8/v8.d.ts +134 -5
  38. package/node_modules/@types/node/ts4.8/wasi.d.ts +26 -5
  39. package/node_modules/@types/node/url.d.ts +59 -42
  40. package/node_modules/@types/node/v8.d.ts +134 -5
  41. package/node_modules/@types/node/wasi.d.ts +26 -5
  42. package/node_modules/axios/CHANGELOG.md +53 -0
  43. package/node_modules/axios/README.md +47 -5
  44. package/node_modules/axios/dist/axios.js +368 -4
  45. package/node_modules/axios/dist/axios.js.map +1 -1
  46. package/node_modules/axios/dist/axios.min.js +1 -1
  47. package/node_modules/axios/dist/axios.min.js.map +1 -1
  48. package/node_modules/axios/dist/browser/axios.cjs +28 -4
  49. package/node_modules/axios/dist/browser/axios.cjs.map +1 -1
  50. package/node_modules/axios/dist/esm/axios.js +28 -4
  51. package/node_modules/axios/dist/esm/axios.js.map +1 -1
  52. package/node_modules/axios/dist/esm/axios.min.js +1 -1
  53. package/node_modules/axios/dist/esm/axios.min.js.map +1 -1
  54. package/node_modules/axios/dist/node/axios.cjs +34 -6
  55. package/node_modules/axios/dist/node/axios.cjs.map +1 -1
  56. package/node_modules/axios/index.d.cts +1 -1
  57. package/node_modules/axios/index.d.ts +1 -1
  58. package/node_modules/axios/lib/adapters/http.js +6 -2
  59. package/node_modules/axios/lib/core/Axios.js +22 -1
  60. package/node_modules/axios/lib/env/data.js +1 -1
  61. package/node_modules/axios/lib/helpers/combineURLs.js +1 -1
  62. package/node_modules/axios/lib/helpers/formDataToJSON.js +3 -0
  63. package/node_modules/axios/package.json +2 -2
  64. package/node_modules/call-bind/CHANGELOG.md +16 -0
  65. package/node_modules/call-bind/index.js +2 -11
  66. package/node_modules/call-bind/package.json +11 -6
  67. package/node_modules/define-data-property/CHANGELOG.md +29 -0
  68. package/node_modules/define-data-property/index.d.ts +12 -3
  69. package/node_modules/define-data-property/index.js +4 -16
  70. package/node_modules/define-data-property/package.json +26 -33
  71. package/node_modules/define-data-property/test/index.js +10 -10
  72. package/node_modules/es-define-property/.eslintrc +13 -0
  73. package/node_modules/es-define-property/.github/FUNDING.yml +12 -0
  74. package/node_modules/es-define-property/.nycrc +9 -0
  75. package/node_modules/es-define-property/CHANGELOG.md +15 -0
  76. package/node_modules/es-define-property/LICENSE +21 -0
  77. package/node_modules/es-define-property/README.md +49 -0
  78. package/node_modules/es-define-property/index.d.ts +3 -0
  79. package/node_modules/es-define-property/index.js +16 -0
  80. package/node_modules/es-define-property/package.json +81 -0
  81. package/node_modules/es-define-property/test/index.js +55 -0
  82. package/node_modules/es-define-property/tsconfig.json +50 -0
  83. package/node_modules/es-errors/.eslintrc +5 -0
  84. package/node_modules/es-errors/.github/FUNDING.yml +12 -0
  85. package/node_modules/es-errors/CHANGELOG.md +40 -0
  86. package/node_modules/es-errors/LICENSE +21 -0
  87. package/node_modules/es-errors/README.md +55 -0
  88. package/node_modules/es-errors/eval.d.ts +3 -0
  89. package/node_modules/es-errors/eval.js +4 -0
  90. package/node_modules/es-errors/index.d.ts +3 -0
  91. package/node_modules/es-errors/index.js +4 -0
  92. package/node_modules/es-errors/package.json +80 -0
  93. package/node_modules/es-errors/range.d.ts +3 -0
  94. package/node_modules/es-errors/range.js +4 -0
  95. package/node_modules/es-errors/ref.d.ts +3 -0
  96. package/node_modules/es-errors/ref.js +4 -0
  97. package/node_modules/es-errors/syntax.d.ts +3 -0
  98. package/node_modules/es-errors/syntax.js +4 -0
  99. package/node_modules/es-errors/test/index.js +19 -0
  100. package/node_modules/es-errors/tsconfig.json +49 -0
  101. package/node_modules/es-errors/type.d.ts +3 -0
  102. package/node_modules/es-errors/type.js +4 -0
  103. package/node_modules/es-errors/uri.d.ts +3 -0
  104. package/node_modules/es-errors/uri.js +4 -0
  105. package/node_modules/fast-xml-parser/CHANGELOG.md +3 -0
  106. package/node_modules/fast-xml-parser/README.md +2 -1
  107. package/node_modules/fast-xml-parser/package.json +4 -1
  108. package/node_modules/fast-xml-parser/src/fxp.d.ts +363 -69
  109. package/node_modules/fast-xml-parser/src/xmlparser/OrderedObjParser.js +5 -5
  110. package/node_modules/follow-redirects/index.js +114 -75
  111. package/node_modules/follow-redirects/package.json +1 -1
  112. package/node_modules/get-intrinsic/CHANGELOG.md +18 -0
  113. package/node_modules/get-intrinsic/index.js +15 -7
  114. package/node_modules/get-intrinsic/package.json +12 -12
  115. package/node_modules/has-property-descriptors/CHANGELOG.md +8 -0
  116. package/node_modules/has-property-descriptors/index.js +3 -14
  117. package/node_modules/has-property-descriptors/package.json +5 -5
  118. package/node_modules/has-proto/CHANGELOG.md +15 -0
  119. package/node_modules/has-proto/index.d.ts +3 -0
  120. package/node_modules/has-proto/index.js +5 -1
  121. package/node_modules/has-proto/package.json +9 -5
  122. package/node_modules/has-proto/tsconfig.json +49 -0
  123. package/node_modules/has-tostringtag/.eslintrc +0 -6
  124. package/node_modules/has-tostringtag/.nycrc +13 -0
  125. package/node_modules/has-tostringtag/CHANGELOG.md +22 -0
  126. package/node_modules/has-tostringtag/index.d.ts +3 -0
  127. package/node_modules/has-tostringtag/index.js +1 -0
  128. package/node_modules/has-tostringtag/package.json +37 -13
  129. package/node_modules/has-tostringtag/shams.d.ts +3 -0
  130. package/node_modules/has-tostringtag/shams.js +1 -0
  131. package/node_modules/has-tostringtag/test/shams/core-js.js +3 -0
  132. package/node_modules/has-tostringtag/test/shams/get-own-property-symbols.js +2 -0
  133. package/node_modules/has-tostringtag/test/tests.js +2 -1
  134. package/node_modules/has-tostringtag/tsconfig.json +49 -0
  135. package/node_modules/hasown/CHANGELOG.md +8 -0
  136. package/node_modules/hasown/index.d.ts +3 -3
  137. package/node_modules/hasown/index.js +1 -1
  138. package/node_modules/hasown/package.json +13 -15
  139. package/node_modules/polygon-clipping/README.md +29 -26
  140. package/node_modules/polygon-clipping/dist/polygon-clipping.cjs.js +1398 -1421
  141. package/node_modules/polygon-clipping/dist/polygon-clipping.d.ts +13 -10
  142. package/node_modules/polygon-clipping/dist/polygon-clipping.esm.js +1139 -1427
  143. package/node_modules/polygon-clipping/dist/polygon-clipping.umd.js +1770 -1831
  144. package/node_modules/polygon-clipping/dist/polygon-clipping.umd.min.js +22 -8
  145. package/node_modules/polygon-clipping/dist/polygon-clipping.umd.min.js.map +1 -1
  146. package/node_modules/polygon-clipping/node_modules/robust-predicates/LICENSE +24 -0
  147. package/node_modules/polygon-clipping/node_modules/robust-predicates/README.md +82 -0
  148. package/node_modules/polygon-clipping/node_modules/robust-predicates/esm/incircle.js +765 -0
  149. package/node_modules/polygon-clipping/node_modules/robust-predicates/esm/insphere.js +766 -0
  150. package/node_modules/polygon-clipping/node_modules/robust-predicates/esm/orient2d.js +184 -0
  151. package/node_modules/polygon-clipping/node_modules/robust-predicates/esm/orient3d.js +462 -0
  152. package/node_modules/polygon-clipping/node_modules/robust-predicates/esm/util.js +138 -0
  153. package/node_modules/polygon-clipping/node_modules/robust-predicates/index.d.ts +49 -0
  154. package/node_modules/polygon-clipping/node_modules/robust-predicates/index.js +5 -0
  155. package/node_modules/polygon-clipping/node_modules/robust-predicates/package.json +75 -0
  156. package/node_modules/polygon-clipping/node_modules/robust-predicates/umd/incircle.js +908 -0
  157. package/node_modules/polygon-clipping/node_modules/robust-predicates/umd/incircle.min.js +1 -0
  158. package/node_modules/polygon-clipping/node_modules/robust-predicates/umd/insphere.js +914 -0
  159. package/node_modules/polygon-clipping/node_modules/robust-predicates/umd/insphere.min.js +1 -0
  160. package/node_modules/polygon-clipping/node_modules/robust-predicates/umd/orient2d.js +280 -0
  161. package/node_modules/polygon-clipping/node_modules/robust-predicates/umd/orient2d.min.js +1 -0
  162. package/node_modules/polygon-clipping/node_modules/robust-predicates/umd/orient3d.js +601 -0
  163. package/node_modules/polygon-clipping/node_modules/robust-predicates/umd/orient3d.min.js +1 -0
  164. package/node_modules/polygon-clipping/node_modules/robust-predicates/umd/predicates.js +2328 -0
  165. package/node_modules/polygon-clipping/node_modules/robust-predicates/umd/predicates.min.js +1 -0
  166. package/node_modules/polygon-clipping/package.json +30 -25
  167. package/node_modules/protobufjs/dist/light/protobuf.js +4 -4
  168. package/node_modules/protobufjs/dist/light/protobuf.js.map +1 -1
  169. package/node_modules/protobufjs/dist/light/protobuf.min.js +3 -3
  170. package/node_modules/protobufjs/dist/light/protobuf.min.js.map +1 -1
  171. package/node_modules/protobufjs/dist/minimal/protobuf.js +2 -2
  172. package/node_modules/protobufjs/dist/minimal/protobuf.min.js +2 -2
  173. package/node_modules/protobufjs/dist/protobuf.js +4 -4
  174. package/node_modules/protobufjs/dist/protobuf.js.map +1 -1
  175. package/node_modules/protobufjs/dist/protobuf.min.js +3 -3
  176. package/node_modules/protobufjs/dist/protobuf.min.js.map +1 -1
  177. package/node_modules/protobufjs/package.json +1 -1
  178. package/node_modules/protobufjs/src/root.js +2 -2
  179. package/node_modules/regexp.prototype.flags/CHANGELOG.md +13 -0
  180. package/node_modules/regexp.prototype.flags/implementation.js +2 -2
  181. package/node_modules/regexp.prototype.flags/package.json +11 -10
  182. package/node_modules/regexp.prototype.flags/test/tests.js +13 -13
  183. package/node_modules/set-function-length/CHANGELOG.md +18 -0
  184. package/node_modules/set-function-length/env.d.ts +6 -0
  185. package/node_modules/set-function-length/env.d.ts.map +1 -0
  186. package/node_modules/set-function-length/env.js +9 -4
  187. package/node_modules/set-function-length/index.d.ts +7 -0
  188. package/node_modules/set-function-length/index.d.ts.map +1 -0
  189. package/node_modules/set-function-length/index.js +6 -3
  190. package/node_modules/set-function-length/package.json +33 -13
  191. package/node_modules/set-function-length/tsconfig.json +59 -0
  192. package/node_modules/set-function-name/.eslintrc +1 -0
  193. package/node_modules/set-function-name/CHANGELOG.md +9 -0
  194. package/node_modules/set-function-name/index.d.ts +5 -0
  195. package/node_modules/set-function-name/index.js +4 -3
  196. package/node_modules/set-function-name/package.json +28 -9
  197. package/node_modules/set-function-name/tsconfig.json +59 -0
  198. package/package.json +4 -4
  199. package/tak-ingest.js +15 -7
  200. package/node_modules/define-data-property/index.d.ts.map +0 -1
  201. package/node_modules/hasown/index.d.ts.map +0 -1
  202. package/node_modules/polygon-clipping/CHANGELOG.md +0 -129
@@ -0,0 +1,765 @@
1
+ import {epsilon, splitter, resulterrbound, estimate, vec, sum, sum_three, scale} from './util.js';
2
+
3
+ const iccerrboundA = (10 + 96 * epsilon) * epsilon;
4
+ const iccerrboundB = (4 + 48 * epsilon) * epsilon;
5
+ const iccerrboundC = (44 + 576 * epsilon) * epsilon * epsilon;
6
+
7
+ const bc = vec(4);
8
+ const ca = vec(4);
9
+ const ab = vec(4);
10
+ const aa = vec(4);
11
+ const bb = vec(4);
12
+ const cc = vec(4);
13
+ const u = vec(4);
14
+ const v = vec(4);
15
+ const axtbc = vec(8);
16
+ const aytbc = vec(8);
17
+ const bxtca = vec(8);
18
+ const bytca = vec(8);
19
+ const cxtab = vec(8);
20
+ const cytab = vec(8);
21
+ const abt = vec(8);
22
+ const bct = vec(8);
23
+ const cat = vec(8);
24
+ const abtt = vec(4);
25
+ const bctt = vec(4);
26
+ const catt = vec(4);
27
+
28
+ const _8 = vec(8);
29
+ const _16 = vec(16);
30
+ const _16b = vec(16);
31
+ const _16c = vec(16);
32
+ const _32 = vec(32);
33
+ const _32b = vec(32);
34
+ const _48 = vec(48);
35
+ const _64 = vec(64);
36
+
37
+ let fin = vec(1152);
38
+ let fin2 = vec(1152);
39
+
40
+ function finadd(finlen, a, alen) {
41
+ finlen = sum(finlen, fin, a, alen, fin2);
42
+ const tmp = fin; fin = fin2; fin2 = tmp;
43
+ return finlen;
44
+ }
45
+
46
+ function incircleadapt(ax, ay, bx, by, cx, cy, dx, dy, permanent) {
47
+ let finlen;
48
+ let adxtail, bdxtail, cdxtail, adytail, bdytail, cdytail;
49
+ let axtbclen, aytbclen, bxtcalen, bytcalen, cxtablen, cytablen;
50
+ let abtlen, bctlen, catlen;
51
+ let abttlen, bcttlen, cattlen;
52
+ let n1, n0;
53
+
54
+ let bvirt, c, ahi, alo, bhi, blo, _i, _j, _0, s1, s0, t1, t0, u3;
55
+
56
+ const adx = ax - dx;
57
+ const bdx = bx - dx;
58
+ const cdx = cx - dx;
59
+ const ady = ay - dy;
60
+ const bdy = by - dy;
61
+ const cdy = cy - dy;
62
+
63
+ s1 = bdx * cdy;
64
+ c = splitter * bdx;
65
+ ahi = c - (c - bdx);
66
+ alo = bdx - ahi;
67
+ c = splitter * cdy;
68
+ bhi = c - (c - cdy);
69
+ blo = cdy - bhi;
70
+ s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
71
+ t1 = cdx * bdy;
72
+ c = splitter * cdx;
73
+ ahi = c - (c - cdx);
74
+ alo = cdx - ahi;
75
+ c = splitter * bdy;
76
+ bhi = c - (c - bdy);
77
+ blo = bdy - bhi;
78
+ t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
79
+ _i = s0 - t0;
80
+ bvirt = s0 - _i;
81
+ bc[0] = s0 - (_i + bvirt) + (bvirt - t0);
82
+ _j = s1 + _i;
83
+ bvirt = _j - s1;
84
+ _0 = s1 - (_j - bvirt) + (_i - bvirt);
85
+ _i = _0 - t1;
86
+ bvirt = _0 - _i;
87
+ bc[1] = _0 - (_i + bvirt) + (bvirt - t1);
88
+ u3 = _j + _i;
89
+ bvirt = u3 - _j;
90
+ bc[2] = _j - (u3 - bvirt) + (_i - bvirt);
91
+ bc[3] = u3;
92
+ s1 = cdx * ady;
93
+ c = splitter * cdx;
94
+ ahi = c - (c - cdx);
95
+ alo = cdx - ahi;
96
+ c = splitter * ady;
97
+ bhi = c - (c - ady);
98
+ blo = ady - bhi;
99
+ s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
100
+ t1 = adx * cdy;
101
+ c = splitter * adx;
102
+ ahi = c - (c - adx);
103
+ alo = adx - ahi;
104
+ c = splitter * cdy;
105
+ bhi = c - (c - cdy);
106
+ blo = cdy - bhi;
107
+ t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
108
+ _i = s0 - t0;
109
+ bvirt = s0 - _i;
110
+ ca[0] = s0 - (_i + bvirt) + (bvirt - t0);
111
+ _j = s1 + _i;
112
+ bvirt = _j - s1;
113
+ _0 = s1 - (_j - bvirt) + (_i - bvirt);
114
+ _i = _0 - t1;
115
+ bvirt = _0 - _i;
116
+ ca[1] = _0 - (_i + bvirt) + (bvirt - t1);
117
+ u3 = _j + _i;
118
+ bvirt = u3 - _j;
119
+ ca[2] = _j - (u3 - bvirt) + (_i - bvirt);
120
+ ca[3] = u3;
121
+ s1 = adx * bdy;
122
+ c = splitter * adx;
123
+ ahi = c - (c - adx);
124
+ alo = adx - ahi;
125
+ c = splitter * bdy;
126
+ bhi = c - (c - bdy);
127
+ blo = bdy - bhi;
128
+ s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
129
+ t1 = bdx * ady;
130
+ c = splitter * bdx;
131
+ ahi = c - (c - bdx);
132
+ alo = bdx - ahi;
133
+ c = splitter * ady;
134
+ bhi = c - (c - ady);
135
+ blo = ady - bhi;
136
+ t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
137
+ _i = s0 - t0;
138
+ bvirt = s0 - _i;
139
+ ab[0] = s0 - (_i + bvirt) + (bvirt - t0);
140
+ _j = s1 + _i;
141
+ bvirt = _j - s1;
142
+ _0 = s1 - (_j - bvirt) + (_i - bvirt);
143
+ _i = _0 - t1;
144
+ bvirt = _0 - _i;
145
+ ab[1] = _0 - (_i + bvirt) + (bvirt - t1);
146
+ u3 = _j + _i;
147
+ bvirt = u3 - _j;
148
+ ab[2] = _j - (u3 - bvirt) + (_i - bvirt);
149
+ ab[3] = u3;
150
+
151
+ finlen = sum(
152
+ sum(
153
+ sum(
154
+ scale(scale(4, bc, adx, _8), _8, adx, _16), _16,
155
+ scale(scale(4, bc, ady, _8), _8, ady, _16b), _16b, _32), _32,
156
+ sum(
157
+ scale(scale(4, ca, bdx, _8), _8, bdx, _16), _16,
158
+ scale(scale(4, ca, bdy, _8), _8, bdy, _16b), _16b, _32b), _32b, _64), _64,
159
+ sum(
160
+ scale(scale(4, ab, cdx, _8), _8, cdx, _16), _16,
161
+ scale(scale(4, ab, cdy, _8), _8, cdy, _16b), _16b, _32), _32, fin);
162
+
163
+ let det = estimate(finlen, fin);
164
+ let errbound = iccerrboundB * permanent;
165
+ if (det >= errbound || -det >= errbound) {
166
+ return det;
167
+ }
168
+
169
+ bvirt = ax - adx;
170
+ adxtail = ax - (adx + bvirt) + (bvirt - dx);
171
+ bvirt = ay - ady;
172
+ adytail = ay - (ady + bvirt) + (bvirt - dy);
173
+ bvirt = bx - bdx;
174
+ bdxtail = bx - (bdx + bvirt) + (bvirt - dx);
175
+ bvirt = by - bdy;
176
+ bdytail = by - (bdy + bvirt) + (bvirt - dy);
177
+ bvirt = cx - cdx;
178
+ cdxtail = cx - (cdx + bvirt) + (bvirt - dx);
179
+ bvirt = cy - cdy;
180
+ cdytail = cy - (cdy + bvirt) + (bvirt - dy);
181
+ if (adxtail === 0 && bdxtail === 0 && cdxtail === 0 && adytail === 0 && bdytail === 0 && cdytail === 0) {
182
+ return det;
183
+ }
184
+
185
+ errbound = iccerrboundC * permanent + resulterrbound * Math.abs(det);
186
+ det += ((adx * adx + ady * ady) * ((bdx * cdytail + cdy * bdxtail) - (bdy * cdxtail + cdx * bdytail)) +
187
+ 2 * (adx * adxtail + ady * adytail) * (bdx * cdy - bdy * cdx)) +
188
+ ((bdx * bdx + bdy * bdy) * ((cdx * adytail + ady * cdxtail) - (cdy * adxtail + adx * cdytail)) +
189
+ 2 * (bdx * bdxtail + bdy * bdytail) * (cdx * ady - cdy * adx)) +
190
+ ((cdx * cdx + cdy * cdy) * ((adx * bdytail + bdy * adxtail) - (ady * bdxtail + bdx * adytail)) +
191
+ 2 * (cdx * cdxtail + cdy * cdytail) * (adx * bdy - ady * bdx));
192
+
193
+ if (det >= errbound || -det >= errbound) {
194
+ return det;
195
+ }
196
+
197
+ if (bdxtail !== 0 || bdytail !== 0 || cdxtail !== 0 || cdytail !== 0) {
198
+ s1 = adx * adx;
199
+ c = splitter * adx;
200
+ ahi = c - (c - adx);
201
+ alo = adx - ahi;
202
+ s0 = alo * alo - (s1 - ahi * ahi - (ahi + ahi) * alo);
203
+ t1 = ady * ady;
204
+ c = splitter * ady;
205
+ ahi = c - (c - ady);
206
+ alo = ady - ahi;
207
+ t0 = alo * alo - (t1 - ahi * ahi - (ahi + ahi) * alo);
208
+ _i = s0 + t0;
209
+ bvirt = _i - s0;
210
+ aa[0] = s0 - (_i - bvirt) + (t0 - bvirt);
211
+ _j = s1 + _i;
212
+ bvirt = _j - s1;
213
+ _0 = s1 - (_j - bvirt) + (_i - bvirt);
214
+ _i = _0 + t1;
215
+ bvirt = _i - _0;
216
+ aa[1] = _0 - (_i - bvirt) + (t1 - bvirt);
217
+ u3 = _j + _i;
218
+ bvirt = u3 - _j;
219
+ aa[2] = _j - (u3 - bvirt) + (_i - bvirt);
220
+ aa[3] = u3;
221
+ }
222
+ if (cdxtail !== 0 || cdytail !== 0 || adxtail !== 0 || adytail !== 0) {
223
+ s1 = bdx * bdx;
224
+ c = splitter * bdx;
225
+ ahi = c - (c - bdx);
226
+ alo = bdx - ahi;
227
+ s0 = alo * alo - (s1 - ahi * ahi - (ahi + ahi) * alo);
228
+ t1 = bdy * bdy;
229
+ c = splitter * bdy;
230
+ ahi = c - (c - bdy);
231
+ alo = bdy - ahi;
232
+ t0 = alo * alo - (t1 - ahi * ahi - (ahi + ahi) * alo);
233
+ _i = s0 + t0;
234
+ bvirt = _i - s0;
235
+ bb[0] = s0 - (_i - bvirt) + (t0 - bvirt);
236
+ _j = s1 + _i;
237
+ bvirt = _j - s1;
238
+ _0 = s1 - (_j - bvirt) + (_i - bvirt);
239
+ _i = _0 + t1;
240
+ bvirt = _i - _0;
241
+ bb[1] = _0 - (_i - bvirt) + (t1 - bvirt);
242
+ u3 = _j + _i;
243
+ bvirt = u3 - _j;
244
+ bb[2] = _j - (u3 - bvirt) + (_i - bvirt);
245
+ bb[3] = u3;
246
+ }
247
+ if (adxtail !== 0 || adytail !== 0 || bdxtail !== 0 || bdytail !== 0) {
248
+ s1 = cdx * cdx;
249
+ c = splitter * cdx;
250
+ ahi = c - (c - cdx);
251
+ alo = cdx - ahi;
252
+ s0 = alo * alo - (s1 - ahi * ahi - (ahi + ahi) * alo);
253
+ t1 = cdy * cdy;
254
+ c = splitter * cdy;
255
+ ahi = c - (c - cdy);
256
+ alo = cdy - ahi;
257
+ t0 = alo * alo - (t1 - ahi * ahi - (ahi + ahi) * alo);
258
+ _i = s0 + t0;
259
+ bvirt = _i - s0;
260
+ cc[0] = s0 - (_i - bvirt) + (t0 - bvirt);
261
+ _j = s1 + _i;
262
+ bvirt = _j - s1;
263
+ _0 = s1 - (_j - bvirt) + (_i - bvirt);
264
+ _i = _0 + t1;
265
+ bvirt = _i - _0;
266
+ cc[1] = _0 - (_i - bvirt) + (t1 - bvirt);
267
+ u3 = _j + _i;
268
+ bvirt = u3 - _j;
269
+ cc[2] = _j - (u3 - bvirt) + (_i - bvirt);
270
+ cc[3] = u3;
271
+ }
272
+
273
+ if (adxtail !== 0) {
274
+ axtbclen = scale(4, bc, adxtail, axtbc);
275
+ finlen = finadd(finlen, sum_three(
276
+ scale(axtbclen, axtbc, 2 * adx, _16), _16,
277
+ scale(scale(4, cc, adxtail, _8), _8, bdy, _16b), _16b,
278
+ scale(scale(4, bb, adxtail, _8), _8, -cdy, _16c), _16c, _32, _48), _48);
279
+ }
280
+ if (adytail !== 0) {
281
+ aytbclen = scale(4, bc, adytail, aytbc);
282
+ finlen = finadd(finlen, sum_three(
283
+ scale(aytbclen, aytbc, 2 * ady, _16), _16,
284
+ scale(scale(4, bb, adytail, _8), _8, cdx, _16b), _16b,
285
+ scale(scale(4, cc, adytail, _8), _8, -bdx, _16c), _16c, _32, _48), _48);
286
+ }
287
+ if (bdxtail !== 0) {
288
+ bxtcalen = scale(4, ca, bdxtail, bxtca);
289
+ finlen = finadd(finlen, sum_three(
290
+ scale(bxtcalen, bxtca, 2 * bdx, _16), _16,
291
+ scale(scale(4, aa, bdxtail, _8), _8, cdy, _16b), _16b,
292
+ scale(scale(4, cc, bdxtail, _8), _8, -ady, _16c), _16c, _32, _48), _48);
293
+ }
294
+ if (bdytail !== 0) {
295
+ bytcalen = scale(4, ca, bdytail, bytca);
296
+ finlen = finadd(finlen, sum_three(
297
+ scale(bytcalen, bytca, 2 * bdy, _16), _16,
298
+ scale(scale(4, cc, bdytail, _8), _8, adx, _16b), _16b,
299
+ scale(scale(4, aa, bdytail, _8), _8, -cdx, _16c), _16c, _32, _48), _48);
300
+ }
301
+ if (cdxtail !== 0) {
302
+ cxtablen = scale(4, ab, cdxtail, cxtab);
303
+ finlen = finadd(finlen, sum_three(
304
+ scale(cxtablen, cxtab, 2 * cdx, _16), _16,
305
+ scale(scale(4, bb, cdxtail, _8), _8, ady, _16b), _16b,
306
+ scale(scale(4, aa, cdxtail, _8), _8, -bdy, _16c), _16c, _32, _48), _48);
307
+ }
308
+ if (cdytail !== 0) {
309
+ cytablen = scale(4, ab, cdytail, cytab);
310
+ finlen = finadd(finlen, sum_three(
311
+ scale(cytablen, cytab, 2 * cdy, _16), _16,
312
+ scale(scale(4, aa, cdytail, _8), _8, bdx, _16b), _16b,
313
+ scale(scale(4, bb, cdytail, _8), _8, -adx, _16c), _16c, _32, _48), _48);
314
+ }
315
+
316
+ if (adxtail !== 0 || adytail !== 0) {
317
+ if (bdxtail !== 0 || bdytail !== 0 || cdxtail !== 0 || cdytail !== 0) {
318
+ s1 = bdxtail * cdy;
319
+ c = splitter * bdxtail;
320
+ ahi = c - (c - bdxtail);
321
+ alo = bdxtail - ahi;
322
+ c = splitter * cdy;
323
+ bhi = c - (c - cdy);
324
+ blo = cdy - bhi;
325
+ s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
326
+ t1 = bdx * cdytail;
327
+ c = splitter * bdx;
328
+ ahi = c - (c - bdx);
329
+ alo = bdx - ahi;
330
+ c = splitter * cdytail;
331
+ bhi = c - (c - cdytail);
332
+ blo = cdytail - bhi;
333
+ t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
334
+ _i = s0 + t0;
335
+ bvirt = _i - s0;
336
+ u[0] = s0 - (_i - bvirt) + (t0 - bvirt);
337
+ _j = s1 + _i;
338
+ bvirt = _j - s1;
339
+ _0 = s1 - (_j - bvirt) + (_i - bvirt);
340
+ _i = _0 + t1;
341
+ bvirt = _i - _0;
342
+ u[1] = _0 - (_i - bvirt) + (t1 - bvirt);
343
+ u3 = _j + _i;
344
+ bvirt = u3 - _j;
345
+ u[2] = _j - (u3 - bvirt) + (_i - bvirt);
346
+ u[3] = u3;
347
+ s1 = cdxtail * -bdy;
348
+ c = splitter * cdxtail;
349
+ ahi = c - (c - cdxtail);
350
+ alo = cdxtail - ahi;
351
+ c = splitter * -bdy;
352
+ bhi = c - (c - -bdy);
353
+ blo = -bdy - bhi;
354
+ s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
355
+ t1 = cdx * -bdytail;
356
+ c = splitter * cdx;
357
+ ahi = c - (c - cdx);
358
+ alo = cdx - ahi;
359
+ c = splitter * -bdytail;
360
+ bhi = c - (c - -bdytail);
361
+ blo = -bdytail - bhi;
362
+ t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
363
+ _i = s0 + t0;
364
+ bvirt = _i - s0;
365
+ v[0] = s0 - (_i - bvirt) + (t0 - bvirt);
366
+ _j = s1 + _i;
367
+ bvirt = _j - s1;
368
+ _0 = s1 - (_j - bvirt) + (_i - bvirt);
369
+ _i = _0 + t1;
370
+ bvirt = _i - _0;
371
+ v[1] = _0 - (_i - bvirt) + (t1 - bvirt);
372
+ u3 = _j + _i;
373
+ bvirt = u3 - _j;
374
+ v[2] = _j - (u3 - bvirt) + (_i - bvirt);
375
+ v[3] = u3;
376
+ bctlen = sum(4, u, 4, v, bct);
377
+ s1 = bdxtail * cdytail;
378
+ c = splitter * bdxtail;
379
+ ahi = c - (c - bdxtail);
380
+ alo = bdxtail - ahi;
381
+ c = splitter * cdytail;
382
+ bhi = c - (c - cdytail);
383
+ blo = cdytail - bhi;
384
+ s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
385
+ t1 = cdxtail * bdytail;
386
+ c = splitter * cdxtail;
387
+ ahi = c - (c - cdxtail);
388
+ alo = cdxtail - ahi;
389
+ c = splitter * bdytail;
390
+ bhi = c - (c - bdytail);
391
+ blo = bdytail - bhi;
392
+ t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
393
+ _i = s0 - t0;
394
+ bvirt = s0 - _i;
395
+ bctt[0] = s0 - (_i + bvirt) + (bvirt - t0);
396
+ _j = s1 + _i;
397
+ bvirt = _j - s1;
398
+ _0 = s1 - (_j - bvirt) + (_i - bvirt);
399
+ _i = _0 - t1;
400
+ bvirt = _0 - _i;
401
+ bctt[1] = _0 - (_i + bvirt) + (bvirt - t1);
402
+ u3 = _j + _i;
403
+ bvirt = u3 - _j;
404
+ bctt[2] = _j - (u3 - bvirt) + (_i - bvirt);
405
+ bctt[3] = u3;
406
+ bcttlen = 4;
407
+ } else {
408
+ bct[0] = 0;
409
+ bctlen = 1;
410
+ bctt[0] = 0;
411
+ bcttlen = 1;
412
+ }
413
+ if (adxtail !== 0) {
414
+ const len = scale(bctlen, bct, adxtail, _16c);
415
+ finlen = finadd(finlen, sum(
416
+ scale(axtbclen, axtbc, adxtail, _16), _16,
417
+ scale(len, _16c, 2 * adx, _32), _32, _48), _48);
418
+
419
+ const len2 = scale(bcttlen, bctt, adxtail, _8);
420
+ finlen = finadd(finlen, sum_three(
421
+ scale(len2, _8, 2 * adx, _16), _16,
422
+ scale(len2, _8, adxtail, _16b), _16b,
423
+ scale(len, _16c, adxtail, _32), _32, _32b, _64), _64);
424
+
425
+ if (bdytail !== 0) {
426
+ finlen = finadd(finlen, scale(scale(4, cc, adxtail, _8), _8, bdytail, _16), _16);
427
+ }
428
+ if (cdytail !== 0) {
429
+ finlen = finadd(finlen, scale(scale(4, bb, -adxtail, _8), _8, cdytail, _16), _16);
430
+ }
431
+ }
432
+ if (adytail !== 0) {
433
+ const len = scale(bctlen, bct, adytail, _16c);
434
+ finlen = finadd(finlen, sum(
435
+ scale(aytbclen, aytbc, adytail, _16), _16,
436
+ scale(len, _16c, 2 * ady, _32), _32, _48), _48);
437
+
438
+ const len2 = scale(bcttlen, bctt, adytail, _8);
439
+ finlen = finadd(finlen, sum_three(
440
+ scale(len2, _8, 2 * ady, _16), _16,
441
+ scale(len2, _8, adytail, _16b), _16b,
442
+ scale(len, _16c, adytail, _32), _32, _32b, _64), _64);
443
+ }
444
+ }
445
+ if (bdxtail !== 0 || bdytail !== 0) {
446
+ if (cdxtail !== 0 || cdytail !== 0 || adxtail !== 0 || adytail !== 0) {
447
+ s1 = cdxtail * ady;
448
+ c = splitter * cdxtail;
449
+ ahi = c - (c - cdxtail);
450
+ alo = cdxtail - ahi;
451
+ c = splitter * ady;
452
+ bhi = c - (c - ady);
453
+ blo = ady - bhi;
454
+ s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
455
+ t1 = cdx * adytail;
456
+ c = splitter * cdx;
457
+ ahi = c - (c - cdx);
458
+ alo = cdx - ahi;
459
+ c = splitter * adytail;
460
+ bhi = c - (c - adytail);
461
+ blo = adytail - bhi;
462
+ t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
463
+ _i = s0 + t0;
464
+ bvirt = _i - s0;
465
+ u[0] = s0 - (_i - bvirt) + (t0 - bvirt);
466
+ _j = s1 + _i;
467
+ bvirt = _j - s1;
468
+ _0 = s1 - (_j - bvirt) + (_i - bvirt);
469
+ _i = _0 + t1;
470
+ bvirt = _i - _0;
471
+ u[1] = _0 - (_i - bvirt) + (t1 - bvirt);
472
+ u3 = _j + _i;
473
+ bvirt = u3 - _j;
474
+ u[2] = _j - (u3 - bvirt) + (_i - bvirt);
475
+ u[3] = u3;
476
+ n1 = -cdy;
477
+ n0 = -cdytail;
478
+ s1 = adxtail * n1;
479
+ c = splitter * adxtail;
480
+ ahi = c - (c - adxtail);
481
+ alo = adxtail - ahi;
482
+ c = splitter * n1;
483
+ bhi = c - (c - n1);
484
+ blo = n1 - bhi;
485
+ s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
486
+ t1 = adx * n0;
487
+ c = splitter * adx;
488
+ ahi = c - (c - adx);
489
+ alo = adx - ahi;
490
+ c = splitter * n0;
491
+ bhi = c - (c - n0);
492
+ blo = n0 - bhi;
493
+ t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
494
+ _i = s0 + t0;
495
+ bvirt = _i - s0;
496
+ v[0] = s0 - (_i - bvirt) + (t0 - bvirt);
497
+ _j = s1 + _i;
498
+ bvirt = _j - s1;
499
+ _0 = s1 - (_j - bvirt) + (_i - bvirt);
500
+ _i = _0 + t1;
501
+ bvirt = _i - _0;
502
+ v[1] = _0 - (_i - bvirt) + (t1 - bvirt);
503
+ u3 = _j + _i;
504
+ bvirt = u3 - _j;
505
+ v[2] = _j - (u3 - bvirt) + (_i - bvirt);
506
+ v[3] = u3;
507
+ catlen = sum(4, u, 4, v, cat);
508
+ s1 = cdxtail * adytail;
509
+ c = splitter * cdxtail;
510
+ ahi = c - (c - cdxtail);
511
+ alo = cdxtail - ahi;
512
+ c = splitter * adytail;
513
+ bhi = c - (c - adytail);
514
+ blo = adytail - bhi;
515
+ s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
516
+ t1 = adxtail * cdytail;
517
+ c = splitter * adxtail;
518
+ ahi = c - (c - adxtail);
519
+ alo = adxtail - ahi;
520
+ c = splitter * cdytail;
521
+ bhi = c - (c - cdytail);
522
+ blo = cdytail - bhi;
523
+ t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
524
+ _i = s0 - t0;
525
+ bvirt = s0 - _i;
526
+ catt[0] = s0 - (_i + bvirt) + (bvirt - t0);
527
+ _j = s1 + _i;
528
+ bvirt = _j - s1;
529
+ _0 = s1 - (_j - bvirt) + (_i - bvirt);
530
+ _i = _0 - t1;
531
+ bvirt = _0 - _i;
532
+ catt[1] = _0 - (_i + bvirt) + (bvirt - t1);
533
+ u3 = _j + _i;
534
+ bvirt = u3 - _j;
535
+ catt[2] = _j - (u3 - bvirt) + (_i - bvirt);
536
+ catt[3] = u3;
537
+ cattlen = 4;
538
+ } else {
539
+ cat[0] = 0;
540
+ catlen = 1;
541
+ catt[0] = 0;
542
+ cattlen = 1;
543
+ }
544
+ if (bdxtail !== 0) {
545
+ const len = scale(catlen, cat, bdxtail, _16c);
546
+ finlen = finadd(finlen, sum(
547
+ scale(bxtcalen, bxtca, bdxtail, _16), _16,
548
+ scale(len, _16c, 2 * bdx, _32), _32, _48), _48);
549
+
550
+ const len2 = scale(cattlen, catt, bdxtail, _8);
551
+ finlen = finadd(finlen, sum_three(
552
+ scale(len2, _8, 2 * bdx, _16), _16,
553
+ scale(len2, _8, bdxtail, _16b), _16b,
554
+ scale(len, _16c, bdxtail, _32), _32, _32b, _64), _64);
555
+
556
+ if (cdytail !== 0) {
557
+ finlen = finadd(finlen, scale(scale(4, aa, bdxtail, _8), _8, cdytail, _16), _16);
558
+ }
559
+ if (adytail !== 0) {
560
+ finlen = finadd(finlen, scale(scale(4, cc, -bdxtail, _8), _8, adytail, _16), _16);
561
+ }
562
+ }
563
+ if (bdytail !== 0) {
564
+ const len = scale(catlen, cat, bdytail, _16c);
565
+ finlen = finadd(finlen, sum(
566
+ scale(bytcalen, bytca, bdytail, _16), _16,
567
+ scale(len, _16c, 2 * bdy, _32), _32, _48), _48);
568
+
569
+ const len2 = scale(cattlen, catt, bdytail, _8);
570
+ finlen = finadd(finlen, sum_three(
571
+ scale(len2, _8, 2 * bdy, _16), _16,
572
+ scale(len2, _8, bdytail, _16b), _16b,
573
+ scale(len, _16c, bdytail, _32), _32, _32b, _64), _64);
574
+ }
575
+ }
576
+ if (cdxtail !== 0 || cdytail !== 0) {
577
+ if (adxtail !== 0 || adytail !== 0 || bdxtail !== 0 || bdytail !== 0) {
578
+ s1 = adxtail * bdy;
579
+ c = splitter * adxtail;
580
+ ahi = c - (c - adxtail);
581
+ alo = adxtail - ahi;
582
+ c = splitter * bdy;
583
+ bhi = c - (c - bdy);
584
+ blo = bdy - bhi;
585
+ s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
586
+ t1 = adx * bdytail;
587
+ c = splitter * adx;
588
+ ahi = c - (c - adx);
589
+ alo = adx - ahi;
590
+ c = splitter * bdytail;
591
+ bhi = c - (c - bdytail);
592
+ blo = bdytail - bhi;
593
+ t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
594
+ _i = s0 + t0;
595
+ bvirt = _i - s0;
596
+ u[0] = s0 - (_i - bvirt) + (t0 - bvirt);
597
+ _j = s1 + _i;
598
+ bvirt = _j - s1;
599
+ _0 = s1 - (_j - bvirt) + (_i - bvirt);
600
+ _i = _0 + t1;
601
+ bvirt = _i - _0;
602
+ u[1] = _0 - (_i - bvirt) + (t1 - bvirt);
603
+ u3 = _j + _i;
604
+ bvirt = u3 - _j;
605
+ u[2] = _j - (u3 - bvirt) + (_i - bvirt);
606
+ u[3] = u3;
607
+ n1 = -ady;
608
+ n0 = -adytail;
609
+ s1 = bdxtail * n1;
610
+ c = splitter * bdxtail;
611
+ ahi = c - (c - bdxtail);
612
+ alo = bdxtail - ahi;
613
+ c = splitter * n1;
614
+ bhi = c - (c - n1);
615
+ blo = n1 - bhi;
616
+ s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
617
+ t1 = bdx * n0;
618
+ c = splitter * bdx;
619
+ ahi = c - (c - bdx);
620
+ alo = bdx - ahi;
621
+ c = splitter * n0;
622
+ bhi = c - (c - n0);
623
+ blo = n0 - bhi;
624
+ t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
625
+ _i = s0 + t0;
626
+ bvirt = _i - s0;
627
+ v[0] = s0 - (_i - bvirt) + (t0 - bvirt);
628
+ _j = s1 + _i;
629
+ bvirt = _j - s1;
630
+ _0 = s1 - (_j - bvirt) + (_i - bvirt);
631
+ _i = _0 + t1;
632
+ bvirt = _i - _0;
633
+ v[1] = _0 - (_i - bvirt) + (t1 - bvirt);
634
+ u3 = _j + _i;
635
+ bvirt = u3 - _j;
636
+ v[2] = _j - (u3 - bvirt) + (_i - bvirt);
637
+ v[3] = u3;
638
+ abtlen = sum(4, u, 4, v, abt);
639
+ s1 = adxtail * bdytail;
640
+ c = splitter * adxtail;
641
+ ahi = c - (c - adxtail);
642
+ alo = adxtail - ahi;
643
+ c = splitter * bdytail;
644
+ bhi = c - (c - bdytail);
645
+ blo = bdytail - bhi;
646
+ s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
647
+ t1 = bdxtail * adytail;
648
+ c = splitter * bdxtail;
649
+ ahi = c - (c - bdxtail);
650
+ alo = bdxtail - ahi;
651
+ c = splitter * adytail;
652
+ bhi = c - (c - adytail);
653
+ blo = adytail - bhi;
654
+ t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
655
+ _i = s0 - t0;
656
+ bvirt = s0 - _i;
657
+ abtt[0] = s0 - (_i + bvirt) + (bvirt - t0);
658
+ _j = s1 + _i;
659
+ bvirt = _j - s1;
660
+ _0 = s1 - (_j - bvirt) + (_i - bvirt);
661
+ _i = _0 - t1;
662
+ bvirt = _0 - _i;
663
+ abtt[1] = _0 - (_i + bvirt) + (bvirt - t1);
664
+ u3 = _j + _i;
665
+ bvirt = u3 - _j;
666
+ abtt[2] = _j - (u3 - bvirt) + (_i - bvirt);
667
+ abtt[3] = u3;
668
+ abttlen = 4;
669
+ } else {
670
+ abt[0] = 0;
671
+ abtlen = 1;
672
+ abtt[0] = 0;
673
+ abttlen = 1;
674
+ }
675
+ if (cdxtail !== 0) {
676
+ const len = scale(abtlen, abt, cdxtail, _16c);
677
+ finlen = finadd(finlen, sum(
678
+ scale(cxtablen, cxtab, cdxtail, _16), _16,
679
+ scale(len, _16c, 2 * cdx, _32), _32, _48), _48);
680
+
681
+ const len2 = scale(abttlen, abtt, cdxtail, _8);
682
+ finlen = finadd(finlen, sum_three(
683
+ scale(len2, _8, 2 * cdx, _16), _16,
684
+ scale(len2, _8, cdxtail, _16b), _16b,
685
+ scale(len, _16c, cdxtail, _32), _32, _32b, _64), _64);
686
+
687
+ if (adytail !== 0) {
688
+ finlen = finadd(finlen, scale(scale(4, bb, cdxtail, _8), _8, adytail, _16), _16);
689
+ }
690
+ if (bdytail !== 0) {
691
+ finlen = finadd(finlen, scale(scale(4, aa, -cdxtail, _8), _8, bdytail, _16), _16);
692
+ }
693
+ }
694
+ if (cdytail !== 0) {
695
+ const len = scale(abtlen, abt, cdytail, _16c);
696
+ finlen = finadd(finlen, sum(
697
+ scale(cytablen, cytab, cdytail, _16), _16,
698
+ scale(len, _16c, 2 * cdy, _32), _32, _48), _48);
699
+
700
+ const len2 = scale(abttlen, abtt, cdytail, _8);
701
+ finlen = finadd(finlen, sum_three(
702
+ scale(len2, _8, 2 * cdy, _16), _16,
703
+ scale(len2, _8, cdytail, _16b), _16b,
704
+ scale(len, _16c, cdytail, _32), _32, _32b, _64), _64);
705
+ }
706
+ }
707
+
708
+ return fin[finlen - 1];
709
+ }
710
+
711
+ export function incircle(ax, ay, bx, by, cx, cy, dx, dy) {
712
+ const adx = ax - dx;
713
+ const bdx = bx - dx;
714
+ const cdx = cx - dx;
715
+ const ady = ay - dy;
716
+ const bdy = by - dy;
717
+ const cdy = cy - dy;
718
+
719
+ const bdxcdy = bdx * cdy;
720
+ const cdxbdy = cdx * bdy;
721
+ const alift = adx * adx + ady * ady;
722
+
723
+ const cdxady = cdx * ady;
724
+ const adxcdy = adx * cdy;
725
+ const blift = bdx * bdx + bdy * bdy;
726
+
727
+ const adxbdy = adx * bdy;
728
+ const bdxady = bdx * ady;
729
+ const clift = cdx * cdx + cdy * cdy;
730
+
731
+ const det =
732
+ alift * (bdxcdy - cdxbdy) +
733
+ blift * (cdxady - adxcdy) +
734
+ clift * (adxbdy - bdxady);
735
+
736
+ const permanent =
737
+ (Math.abs(bdxcdy) + Math.abs(cdxbdy)) * alift +
738
+ (Math.abs(cdxady) + Math.abs(adxcdy)) * blift +
739
+ (Math.abs(adxbdy) + Math.abs(bdxady)) * clift;
740
+
741
+ const errbound = iccerrboundA * permanent;
742
+
743
+ if (det > errbound || -det > errbound) {
744
+ return det;
745
+ }
746
+ return incircleadapt(ax, ay, bx, by, cx, cy, dx, dy, permanent);
747
+ }
748
+
749
+ export function incirclefast(ax, ay, bx, by, cx, cy, dx, dy) {
750
+ const adx = ax - dx;
751
+ const ady = ay - dy;
752
+ const bdx = bx - dx;
753
+ const bdy = by - dy;
754
+ const cdx = cx - dx;
755
+ const cdy = cy - dy;
756
+
757
+ const abdet = adx * bdy - bdx * ady;
758
+ const bcdet = bdx * cdy - cdx * bdy;
759
+ const cadet = cdx * ady - adx * cdy;
760
+ const alift = adx * adx + ady * ady;
761
+ const blift = bdx * bdx + bdy * bdy;
762
+ const clift = cdx * cdx + cdy * cdy;
763
+
764
+ return alift * bcdet + blift * cadet + clift * abdet;
765
+ }