| 34352 | |
| 34353 | function inSphere4(sum, diff, prod, scale) { |
| 34354 | function exactInSphere4(m0, m1, m2, m3) { |
| 34355 | var w0 = sum(prod(m0[0], m0[0]), prod(m0[1], m0[1])) |
| 34356 | var w0m1 = scale(w0, m1[0]) |
| 34357 | var w0m2 = scale(w0, m2[0]) |
| 34358 | var w0m3 = scale(w0, m3[0]) |
| 34359 | var w1 = sum(prod(m1[0], m1[0]), prod(m1[1], m1[1])) |
| 34360 | var w1m0 = scale(w1, m0[0]) |
| 34361 | var w1m2 = scale(w1, m2[0]) |
| 34362 | var w1m3 = scale(w1, m3[0]) |
| 34363 | var w2 = sum(prod(m2[0], m2[0]), prod(m2[1], m2[1])) |
| 34364 | var w2m0 = scale(w2, m0[0]) |
| 34365 | var w2m1 = scale(w2, m1[0]) |
| 34366 | var w2m3 = scale(w2, m3[0]) |
| 34367 | var w3 = sum(prod(m3[0], m3[0]), prod(m3[1], m3[1])) |
| 34368 | var w3m0 = scale(w3, m0[0]) |
| 34369 | var w3m1 = scale(w3, m1[0]) |
| 34370 | var w3m2 = scale(w3, m2[0]) |
| 34371 | var p = sum(sum(scale(diff(w3m2, w2m3), m1[1]), sum(scale(diff(w3m1, w1m3), -m2[1]), scale(diff(w2m1, w1m2), m3[1]))), sum(scale(diff(w3m1, w1m3), m0[1]), sum(scale(diff(w3m0, w0m3), -m1[1]), scale(diff(w1m0, w0m1), m3[1])))) |
| 34372 | var n = sum(sum(scale(diff(w3m2, w2m3), m0[1]), sum(scale(diff(w3m0, w0m3), -m2[1]), scale(diff(w2m0, w0m2), m3[1]))), sum(scale(diff(w2m1, w1m2), m0[1]), sum(scale(diff(w2m0, w0m2), -m1[1]), scale(diff(w1m0, w0m1), m2[1])))) |
| 34373 | var d = diff(p, n) |
| 34374 | return d[d.length - 1] |
| 34375 | } |
| 34376 | return exactInSphere4 |
| 34377 | } |
| 34378 | |