@mui/x-charts-vendor 8.14.0 → 8.15.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 (43) hide show
  1. package/README.md +2 -7
  2. package/package.json +3 -6
  3. package/d3-delaunay.d.ts +0 -5
  4. package/d3-delaunay.js +0 -7
  5. package/delaunator.d.ts +0 -5
  6. package/delaunator.js +0 -7
  7. package/es/d3-delaunay.mjs +0 -6
  8. package/es/delaunator.mjs +0 -6
  9. package/es/robust-predicates.mjs +0 -6
  10. package/lib/d3-delaunay.js +0 -6
  11. package/lib/delaunator.js +0 -6
  12. package/lib/robust-predicates.js +0 -6
  13. package/lib-vendor/d3-delaunay/LICENSE +0 -14
  14. package/lib-vendor/d3-delaunay/dist/d3-delaunay.js +0 -1398
  15. package/lib-vendor/d3-delaunay/dist/d3-delaunay.min.js +0 -853
  16. package/lib-vendor/d3-delaunay/src/delaunay.js +0 -282
  17. package/lib-vendor/d3-delaunay/src/index.js +0 -20
  18. package/lib-vendor/d3-delaunay/src/path.js +0 -43
  19. package/lib-vendor/d3-delaunay/src/polygon.js +0 -24
  20. package/lib-vendor/d3-delaunay/src/voronoi.js +0 -390
  21. package/lib-vendor/delaunator/LICENSE +0 -15
  22. package/lib-vendor/delaunator/delaunator.js +0 -688
  23. package/lib-vendor/delaunator/delaunator.min.js +0 -316
  24. package/lib-vendor/delaunator/index.js +0 -440
  25. package/lib-vendor/robust-predicates/LICENSE +0 -24
  26. package/lib-vendor/robust-predicates/esm/incircle.js +0 -667
  27. package/lib-vendor/robust-predicates/esm/insphere.js +0 -693
  28. package/lib-vendor/robust-predicates/esm/orient2d.js +0 -174
  29. package/lib-vendor/robust-predicates/esm/orient3d.js +0 -422
  30. package/lib-vendor/robust-predicates/esm/util.js +0 -147
  31. package/lib-vendor/robust-predicates/index.js +0 -57
  32. package/lib-vendor/robust-predicates/umd/incircle.js +0 -798
  33. package/lib-vendor/robust-predicates/umd/incircle.min.js +0 -170
  34. package/lib-vendor/robust-predicates/umd/insphere.js +0 -828
  35. package/lib-vendor/robust-predicates/umd/insphere.min.js +0 -223
  36. package/lib-vendor/robust-predicates/umd/orient2d.js +0 -260
  37. package/lib-vendor/robust-predicates/umd/orient2d.min.js +0 -69
  38. package/lib-vendor/robust-predicates/umd/orient3d.js +0 -550
  39. package/lib-vendor/robust-predicates/umd/orient3d.min.js +0 -133
  40. package/lib-vendor/robust-predicates/umd/predicates.js +0 -2073
  41. package/lib-vendor/robust-predicates/umd/predicates.min.js +0 -468
  42. package/robust-predicates.d.ts +0 -5
  43. package/robust-predicates.js +0 -7
@@ -1,2073 +0,0 @@
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
- });