Herbie run

Date:Wednesday, May 14th, 2025
Commit:e1bd7262 on artem-rules-updates
Seed:2025134
Parameters:256 points for 4 iterations
Flags:
reduce:regimesreduce:binary-searchreduce:branch-expressionssetup:searchrules:arithmeticrules:polynomialsrules:fractionsrules:exponentsrules:trigonometryrules:hyperbolicrules:numericsrules:specialrules:boolsrules:branchesgenerate:rrgenerate:taylorgenerate:proofs
default
Memory:464 947.3 MB

Time bar (total: 6.1min)

sample3.6min (59%)

Memory
4 164.5MiB live, 283 935.0MiB allocated; 1.7min collecting garbage
Samples
2.1min14 576×3exit
41.1s268 022×0valid
5.6s28 855×1valid
1.6s10 957×0invalid
728.0ms2 548×2valid
239.0ms1 543×1exit
155.0ms693×1invalid
81.0ms5exit
28.0ms4exit
0.0ms3valid
Precisions
Click to see histograms. Total time spent on operations: 2.6min
ival-mult!: 25.1s (16.3% of total)
ival-log: 20.7s (13.4% of total)
adjust: 20.0s (12.9% of total)
ival-exp: 18.9s (12.3% of total)
ival-pow2: 18.7s (12.1% of total)
ival-div!: 10.9s (7% of total)
ival-sqrt: 7.4s (4.8% of total)
ival-add!: 7.2s (4.7% of total)
ival-sub!: 6.8s (4.4% of total)
ival-neg: 5.8s (3.7% of total)
ival-fmax: 2.2s (1.4% of total)
ival-sin: 1.8s (1.2% of total)
ival-fabs: 1.5s (1% of total)
ival-fmin: 1.3s (0.9% of total)
ival-sinu: 997.0ms (0.6% of total)
ival-cos: 990.0ms (0.6% of total)
ival-floor: 747.0ms (0.5% of total)
ival-<=: 571.0ms (0.4% of total)
ival-expm1: 546.0ms (0.4% of total)
ival-cosu: 524.0ms (0.3% of total)
ival-tan: 487.0ms (0.3% of total)
ival-and: 295.0ms (0.2% of total)
ival-if: 267.0ms (0.2% of total)
ival-log2: 187.0ms (0.1% of total)
ival-asin: 155.0ms (0.1% of total)
ival-log1p: 146.0ms (0.1% of total)
ival-atan: 102.0ms (0.1% of total)
ival-sinh: 80.0ms (0.1% of total)
ival->=: 43.0ms (0% of total)
ival->: 42.0ms (0% of total)
ival-assert: 29.0ms (0% of total)
ival-<: 26.0ms (0% of total)
const: 1.0ms (0% of total)
ival-pi: 0.0ms (0% of total)
Bogosity

rewrite36.1s (9.8%)

Memory
739.2MiB live, 37 383.2MiB allocated; 7.8s collecting garbage
Stop Event
153×iter-limit
142×saturated
136×node-limit
unsound
Counts
24 365 → 57 039

analyze32.6s (8.8%)

Memory
501.8MiB live, 39 028.9MiB allocated; 14.8s collecting garbage
Algorithm
37×search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%21%79%0%0%0%0
25.7%5.4%15.6%79%0%0%0%1
26.5%5.6%15.5%79%0%0%0%2
26.5%5.6%15.4%79%0%0%0%3
28.6%6%15%79%0%0%0%4
40.9%8.6%12.4%79%0%0%0%5
46.2%9.7%11.3%79%0%0%0%6
53.2%11%9.7%79%0%0.4%0%7
55.6%11.5%9.2%79%0%0.4%0%8
60.6%12.5%8.1%79%0%0.4%0%9
63.8%13.1%7.4%79%0%0.5%0%10
66.1%13.6%7%79%0%0.5%0%11
67.5%13.9%6.7%79%0%0.5%0%12
Compiler

Compiled 20 293 to 1 873 computations (90.8% saved)

regimes24.2s (6.6%)

Memory
-22.5MiB live, 30 508.3MiB allocated; 12.0s collecting garbage
Counts
8 482 → 449
Calls

167 calls:

1.5s
(+.f32 #s(literal 1 binary32) c)
1.0s
x
962.0ms
uy
875.0ms
u2
712.0ms
(*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))
Compiler

Compiled 18 246 to 17 433 computations (4.5% saved)

series17.8s (4.8%)

Memory
538.3MiB live, 25 921.0MiB allocated; 7.6s collecting garbage
Counts
5 824 → 18 541
Calls

1521 calls:

TimeVariablePointExpression
449.0ms
w
@0
((if (>= (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v)))) (/ (* dX.u (floor w)) (sqrt (fmax (+ (* (* (* dX.v (floor h)) dX.v) (floor h)) (* (* (* dX.u (floor w)) dX.u) (floor w))) (+ (* (* (* dY.u (floor w)) dY.u) (floor w)) (* (* dY.v dY.v) (* (floor h) (floor h))))))) (/ (* dY.u (floor w)) (sqrt (fmax (+ (* (* dX.u dX.u) (* (floor w) (floor w))) (* (* dX.v dX.v) (* (floor h) (floor h)))) (+ (* (* (* dY.v (floor h)) dY.v) (floor h)) (* (* (* dY.u (floor w)) dY.u) (floor w))))))) (>= (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v)))) (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (floor w) dX.u) (floor w) w dX.u (* (* (floor h) dX.v) (* (floor h) dX.v)) (* (floor h) dX.v) (floor h) h dX.v (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v))) (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (floor w) dY.u) dY.u (* (* (floor h) dY.v) (* (floor h) dY.v)) (* (floor h) dY.v) dY.v (/ (* dX.u (floor w)) (sqrt (fmax (+ (* (* (* dX.v (floor h)) dX.v) (floor h)) (* (* (* dX.u (floor w)) dX.u) (floor w))) (+ (* (* (* dY.u (floor w)) dY.u) (floor w)) (* (* dY.v dY.v) (* (floor h) (floor h))))))) (* dX.u (floor w)) (sqrt (fmax (+ (* (* (* dX.v (floor h)) dX.v) (floor h)) (* (* (* dX.u (floor w)) dX.u) (floor w))) (+ (* (* (* dY.u (floor w)) dY.u) (floor w)) (* (* dY.v dY.v) (* (floor h) (floor h)))))) (fmax (+ (* (* (* dX.v (floor h)) dX.v) (floor h)) (* (* (* dX.u (floor w)) dX.u) (floor w))) (+ (* (* (* dY.u (floor w)) dY.u) (floor w)) (* (* dY.v dY.v) (* (floor h) (floor h))))) (+ (* (* (* dX.v (floor h)) dX.v) (floor h)) (* (* (* dX.u (floor w)) dX.u) (floor w))) (* (* dX.v (floor h)) dX.v) (* dX.v (floor h)) (* (* (* dX.u (floor w)) dX.u) (floor w)) (* (* dX.u (floor w)) dX.u) (+ (* (* (* dY.u (floor w)) dY.u) (floor w)) (* (* dY.v dY.v) (* (floor h) (floor h)))) (* (* dY.u (floor w)) dY.u) (* dY.u (floor w)) (* (* dY.v dY.v) (* (floor h) (floor h))) (* dY.v dY.v) (* (floor h) (floor h)) (/ (* dY.u (floor w)) (sqrt (fmax (+ (* (* dX.u dX.u) (* (floor w) (floor w))) (* (* dX.v dX.v) (* (floor h) (floor h)))) (+ (* (* (* dY.v (floor h)) dY.v) (floor h)) (* (* (* dY.u (floor w)) dY.u) (floor w)))))) (sqrt (fmax (+ (* (* dX.u dX.u) (* (floor w) (floor w))) (* (* dX.v dX.v) (* (floor h) (floor h)))) (+ (* (* (* dY.v (floor h)) dY.v) (floor h)) (* (* (* dY.u (floor w)) dY.u) (floor w))))) (fmax (+ (* (* dX.u dX.u) (* (floor w) (floor w))) (* (* dX.v dX.v) (* (floor h) (floor h)))) (+ (* (* (* dY.v (floor h)) dY.v) (floor h)) (* (* (* dY.u (floor w)) dY.u) (floor w)))) (+ (* (* dX.u dX.u) (* (floor w) (floor w))) (* (* dX.v dX.v) (* (floor h) (floor h)))) (* dX.u dX.u) (* (floor w) (floor w)) (* (* dX.v dX.v) (* (floor h) (floor h))) (* dX.v dX.v) (+ (* (* (* dY.v (floor h)) dY.v) (floor h)) (* (* (* dY.u (floor w)) dY.u) (floor w))) (* (* dY.v (floor h)) dY.v) (* dY.v (floor h)) (* (* (* dY.u (floor w)) dY.u) (floor w)) (if (>= (+ (* (* (* (floor w) (floor w)) dX.u) dX.u) (* (* (floor h) (floor h)) (* dX.v dX.v))) (+ (* (* (* dY.u (floor w)) (floor w)) dY.u) (* (* dY.v dY.v) (* (floor h) (floor h))))) (* (/ (floor w) (sqrt (fmax (+ (* (* dX.u dX.u) (* (floor w) (floor w))) (* (* dX.v dX.v) (* (floor h) (floor h)))) (+ (* (* (* dY.v (floor h)) dY.v) (floor h)) (* (* (* dY.u (floor w)) dY.u) (floor w)))))) dX.u) (* (/ (floor w) (sqrt (fmax (+ (* (* dX.u dX.u) (* (floor w) (floor w))) (* (* dX.v dX.v) (* (floor h) (floor h)))) (+ (* (* (* dY.v (floor h)) dY.v) (floor h)) (* (* (* dY.u (floor w)) dY.u) (floor w)))))) dY.u)) (>= (+ (* (* (* (floor w) (floor w)) dX.u) dX.u) (* (* (floor h) (floor h)) (* dX.v dX.v))) (+ (* (* (* dY.u (floor w)) (floor w)) dY.u) (* (* dY.v dY.v) (* (floor h) (floor h))))) (+ (* (* (* (floor w) (floor w)) dX.u) dX.u) (* (* (floor h) (floor h)) (* dX.v dX.v))) (* (* (floor w) (floor w)) dX.u) (* (* (floor h) (floor h)) (* dX.v dX.v)) (+ (* (* (* dY.u (floor w)) (floor w)) dY.u) (* (* dY.v dY.v) (* (floor h) (floor h)))) (* (* dY.u (floor w)) (floor w)) (* (/ (floor w) (sqrt (fmax (+ (* (* dX.u dX.u) (* (floor w) (floor w))) (* (* dX.v dX.v) (* (floor h) (floor h)))) (+ (* (* (* dY.v (floor h)) dY.v) (floor h)) (* (* (* dY.u (floor w)) dY.u) (floor w)))))) dX.u) (/ (floor w) (sqrt (fmax (+ (* (* dX.u dX.u) (* (floor w) (floor w))) (* (* dX.v dX.v) (* (floor h) (floor h)))) (+ (* (* (* dY.v (floor h)) dY.v) (floor h)) (* (* (* dY.u (floor w)) dY.u) (floor w)))))) (* (/ (floor w) (sqrt (fmax (+ (* (* dX.u dX.u) (* (floor w) (floor w))) (* (* dX.v dX.v) (* (floor h) (floor h)))) (+ (* (* (* dY.v (floor h)) dY.v) (floor h)) (* (* (* dY.u (floor w)) dY.u) (floor w)))))) dY.u) (if (>= (+ (* (* dX.u dX.u) (* (floor w) (floor w))) (* (* dX.v dX.v) (* (floor h) (floor h)))) (+ (* (* (* dY.v (floor h)) dY.v) (floor h)) (* (* (* dY.u (floor w)) dY.u) (floor w)))) (* (floor w) (/ dX.u (sqrt (fmax (+ (* (* (* dX.v (floor h)) dX.v) (floor h)) (* (* (* dX.u (floor w)) dX.u) (floor w))) (+ (* (* (* dY.u (floor w)) dY.u) (floor w)) (* (* dY.v dY.v) (* (floor h) (floor h)))))))) (* (floor w) (/ dY.u (sqrt (fmax (+ (* (* (* (floor w) (floor w)) dX.u) dX.u) (* (* (floor h) (floor h)) (* dX.v dX.v))) (+ (* (* (* (floor w) (floor w)) dY.u) dY.u) (* (* dY.v dY.v) (* (floor h) (floor h))))))))) (>= (+ (* (* dX.u dX.u) (* (floor w) (floor w))) (* (* dX.v dX.v) (* (floor h) (floor h)))) (+ (* (* (* dY.v (floor h)) dY.v) (floor h)) (* (* (* dY.u (floor w)) dY.u) (floor w)))) (* (floor w) (/ dX.u (sqrt (fmax (+ (* (* (* dX.v (floor h)) dX.v) (floor h)) (* (* (* dX.u (floor w)) dX.u) (floor w))) (+ (* (* (* dY.u (floor w)) dY.u) (floor w)) (* (* dY.v dY.v) (* (floor h) (floor h)))))))) (/ dX.u (sqrt (fmax (+ (* (* (* dX.v (floor h)) dX.v) (floor h)) (* (* (* dX.u (floor w)) dX.u) (floor w))) (+ (* (* (* dY.u (floor w)) dY.u) (floor w)) (* (* dY.v dY.v) (* (floor h) (floor h))))))) (* (floor w) (/ dY.u (sqrt (fmax (+ (* (* (* (floor w) (floor w)) dX.u) dX.u) (* (* (floor h) (floor h)) (* dX.v dX.v))) (+ (* (* (* (floor w) (floor w)) dY.u) dY.u) (* (* dY.v dY.v) (* (floor h) (floor h)))))))) (/ dY.u (sqrt (fmax (+ (* (* (* (floor w) (floor w)) dX.u) dX.u) (* (* (floor h) (floor h)) (* dX.v dX.v))) (+ (* (* (* (floor w) (floor w)) dY.u) dY.u) (* (* dY.v dY.v) (* (floor h) (floor h))))))) (sqrt (fmax (+ (* (* (* (floor w) (floor w)) dX.u) dX.u) (* (* (floor h) (floor h)) (* dX.v dX.v))) (+ (* (* (* (floor w) (floor w)) dY.u) dY.u) (* (* dY.v dY.v) (* (floor h) (floor h)))))) (fmax (+ (* (* (* (floor w) (floor w)) dX.u) dX.u) (* (* (floor h) (floor h)) (* dX.v dX.v))) (+ (* (* (* (floor w) (floor w)) dY.u) dY.u) (* (* dY.v dY.v) (* (floor h) (floor h))))) (+ (* (* (* (floor w) (floor w)) dY.u) dY.u) (* (* dY.v dY.v) (* (floor h) (floor h)))) (* (* (floor w) (floor w)) dY.u) (if (>= (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v)))) (/ (* dX.u (floor w)) (sqrt (fmax (+ (* (* (* dX.v dX.v) (floor h)) (floor h)) (* (* (* dX.u (floor w)) dX.u) (floor w))) (+ (* (* (* dY.u (floor w)) dY.u) (floor w)) (* (* dY.v dY.v) (* (floor h) (floor h))))))) (* (floor w) (/ dY.u (sqrt (fmax (+ (* (* (* (floor w) (floor w)) dX.u) dX.u) (* (* (floor h) (floor h)) (* dX.v dX.v))) (+ (* (* (* (floor w) (floor w)) dY.u) dY.u) (* (* dY.v dY.v) (* (floor h) (floor h))))))))) (/ (* dX.u (floor w)) (sqrt (fmax (+ (* (* (* dX.v dX.v) (floor h)) (floor h)) (* (* (* dX.u (floor w)) dX.u) (floor w))) (+ (* (* (* dY.u (floor w)) dY.u) (floor w)) (* (* dY.v dY.v) (* (floor h) (floor h))))))) (sqrt (fmax (+ (* (* (* dX.v dX.v) (floor h)) (floor h)) (* (* (* dX.u (floor w)) dX.u) (floor w))) (+ (* (* (* dY.u (floor w)) dY.u) (floor w)) (* (* dY.v dY.v) (* (floor h) (floor h)))))) (fmax (+ (* (* (* dX.v dX.v) (floor h)) (floor h)) (* (* (* dX.u (floor w)) dX.u) (floor w))) (+ (* (* (* dY.u (floor w)) dY.u) (floor w)) (* (* dY.v dY.v) (* (floor h) (floor h))))) (+ (* (* (* dX.v dX.v) (floor h)) (floor h)) (* (* (* dX.u (floor w)) dX.u) (floor w))) (* (* dX.v dX.v) (floor h)) (if (>= (+ (* (* (* (floor w) (floor w)) dX.u) dX.u) (* (* (* dX.v (floor h)) dX.v) (floor h))) (+ (* (* (* dY.v dY.v) (floor h)) (floor h)) (* (* dY.u dY.u) (* (floor w) (floor w))))) (* (pow (fmax (+ (* (* dX.u dX.u) (* (floor w) (floor w))) (* (* dX.v dX.v) (* (floor h) (floor h)))) (+ (* (* (* dY.v (floor h)) dY.v) (floor h)) (* (* (* dY.u (floor w)) dY.u) (floor w)))) -1/2) (* (floor w) dX.u)) (* (pow (fmax (+ (* (* dX.u dX.u) (* (floor w) (floor w))) (* (* dX.v dX.v) (* (floor h) (floor h)))) (+ (* (* (* dY.v (floor h)) dY.v) (floor h)) (* (* (* dY.u (floor w)) dY.u) (floor w)))) -1/2) (* (floor w) dY.u))) (>= (+ (* (* (* (floor w) (floor w)) dX.u) dX.u) (* (* (* dX.v (floor h)) dX.v) (floor h))) (+ (* (* (* dY.v dY.v) (floor h)) (floor h)) (* (* dY.u dY.u) (* (floor w) (floor w))))) (+ (* (* (* (floor w) (floor w)) dX.u) dX.u) (* (* (* dX.v (floor h)) dX.v) (floor h))) (* (* (* dX.v (floor h)) dX.v) (floor h)) (+ (* (* (* dY.v dY.v) (floor h)) (floor h)) (* (* dY.u dY.u) (* (floor w) (floor w)))) (* (* dY.v dY.v) (floor h)) (* (* dY.u dY.u) (* (floor w) (floor w))) (* dY.u dY.u) (* (pow (fmax (+ (* (* dX.u dX.u) (* (floor w) (floor w))) (* (* dX.v dX.v) (* (floor h) (floor h)))) (+ (* (* (* dY.v (floor h)) dY.v) (floor h)) (* (* (* dY.u (floor w)) dY.u) (floor w)))) -1/2) (* (floor w) dX.u)) (pow (fmax (+ (* (* dX.u dX.u) (* (floor w) (floor w))) (* (* dX.v dX.v) (* (floor h) (floor h)))) (+ (* (* (* dY.v (floor h)) dY.v) (floor h)) (* (* (* dY.u (floor w)) dY.u) (floor w)))) -1/2) -1/2 (* (pow (fmax (+ (* (* dX.u dX.u) (* (floor w) (floor w))) (* (* dX.v dX.v) (* (floor h) (floor h)))) (+ (* (* (* dY.v (floor h)) dY.v) (floor h)) (* (* (* dY.u (floor w)) dY.u) (floor w)))) -1/2) (* (floor w) dY.u)))
142.0ms
s
@-inf
((* (* (neg (log (+ 1 (* -4/3 (- u 1/4))))) s) 3) (* (neg (log (+ 1 (* -4/3 (- u 1/4))))) s) (neg (log (+ 1 (* -4/3 (- u 1/4))))) (log (+ 1 (* -4/3 (- u 1/4)))) (* -4/3 (- u 1/4)) -4/3 (- u 1/4) u 1/4 s 3 (* (* 3 s) (log (/ 1 (- 1 (/ (- u 1/4) 3/4))))) (* (log 3/4) (* s 3)) (log 3/4) 3/4 (* s 3) (* (* (neg (log (- 1 (* 4/3 (- u 1/4))))) s) 3) (* 3 (+ (* u s) (* (log 3/4) s))) (+ (* u s) (* (log 3/4) s)) (* (log 3/4) s) (* (* (neg (log (- 1 (* 4/3 (- u 1/4))))) s) 3) (* (* (log (- 1 (* 4/3 (- u 1/4)))) s) -3) (* (log (- 1 (* 4/3 (- u 1/4)))) s) (log (- 1 (* 4/3 (- u 1/4)))) (- 1 (* 4/3 (- u 1/4))) 1 (* 4/3 (- u 1/4)) 4/3 -3 (* (* (neg (log (/ (- 3/2 (* 2 (- u 1/4))) 3/2))) s) 3) (* (neg (log (/ (- 3/2 (* 2 (- u 1/4))) 3/2))) s) (neg (log (/ (- 3/2 (* 2 (- u 1/4))) 3/2))) (log (/ (- 3/2 (* 2 (- u 1/4))) 3/2)) (/ (- 3/2 (* 2 (- u 1/4))) 3/2) (- 3/2 (* 2 (- u 1/4))) 3/2 (* 2 (- u 1/4)) 2)
130.0ms
n1_i
@-inf
((+ (* (* (sin (* (- 1 u) normAngle)) (/ 1 (sin normAngle))) n0_i) (* (* (sin (* u normAngle)) (/ 1 (sin normAngle))) n1_i)) (+ (* (- 1 u) n0_i) (+ (* (- (* -1/6 (+ (* (* (* (- 1 u) (- 1 u)) (- 1 u)) n0_i) (* (* (* u u) u) n1_i))) (* -1/6 (+ (* (- 1 u) n0_i) (* n1_i u)))) (* normAngle normAngle)) (* n1_i u))) (- 1 u) 1 u n0_i (+ (* (- (* -1/6 (+ (* (* (* (- 1 u) (- 1 u)) (- 1 u)) n0_i) (* (* (* u u) u) n1_i))) (* -1/6 (+ (* (- 1 u) n0_i) (* n1_i u)))) (* normAngle normAngle)) (* n1_i u)) (- (* -1/6 (+ (* (* (* (- 1 u) (- 1 u)) (- 1 u)) n0_i) (* (* (* u u) u) n1_i))) (* -1/6 (+ (* (- 1 u) n0_i) (* n1_i u)))) (* -1/6 (+ (* (* (* (- 1 u) (- 1 u)) (- 1 u)) n0_i) (* (* (* u u) u) n1_i))) -1/6 (+ (* (* (* (- 1 u) (- 1 u)) (- 1 u)) n0_i) (* (* (* u u) u) n1_i)) (* (* (- 1 u) (- 1 u)) (- 1 u)) (* (- 1 u) (- 1 u)) (* (* (* u u) u) n1_i) (* (* u u) u) (* u u) n1_i (* -1/6 (+ (* (- 1 u) n0_i) (* n1_i u))) (+ (* (- 1 u) n0_i) (* n1_i u)) (* n1_i u) (* normAngle normAngle) normAngle (+ (* (* (sin (* (- 1 u) normAngle)) (/ 1 (sin normAngle))) n0_i) (* (* (sin (* u normAngle)) (/ 1 (sin normAngle))) n1_i)) (+ (* (* (sin (* (- 1 u) normAngle)) (/ 1 (sin normAngle))) n0_i) (* (* (sin (* u normAngle)) (/ 1 (sin normAngle))) n1_i)) (* (* (sin (* (- 1 u) normAngle)) (/ 1 (sin normAngle))) n0_i) (* (sin (* (- 1 u) normAngle)) (/ 1 (sin normAngle))) (sin (* (- 1 u) normAngle)) (* (- 1 u) normAngle) (/ 1 (sin normAngle)) (sin normAngle) (* (* (sin (* u normAngle)) (/ 1 (sin normAngle))) n1_i) (* (sin (* u normAngle)) (/ 1 (sin normAngle))) (/ (+ (* (sin (* (- 1 u) normAngle)) n0_i) (* (sin (* normAngle u)) n1_i)) (sin normAngle)) (+ (* (sin (* (- 1 u) normAngle)) n0_i) (* (sin (* normAngle u)) n1_i)) (* (sin (* normAngle u)) n1_i) (sin (* normAngle u)) (* normAngle u) (+ (* (/ (sin (* (- 1 u) normAngle)) (sin normAngle)) n0_i) (* (/ (sin (* normAngle u)) (sin normAngle)) n1_i)) (/ (sin (* (- 1 u) normAngle)) (sin normAngle)) (* (/ (sin (* normAngle u)) (sin normAngle)) n1_i) (/ (sin (* normAngle u)) (sin normAngle)))
125.0ms
alphay
@inf
((/ 1 (sqrt (+ 1 (/ (* (/ 1 (+ (* (cos (atan (* (tan (+ (* (+ (PI) (PI)) u1) (* (PI) 1/2))) (/ alphay alphax)))) (/ (cos (atan (* (tan (+ (* (+ (PI) (PI)) u1) (* (PI) 1/2))) (/ alphay alphax)))) (* alphax alphax))) (/ (- 1/2 (* 1/2 (cos (* 2 (atan (* (tan (+ (* (+ (PI) (PI)) u1) (* (PI) 1/2))) (/ alphay alphax))))))) (* alphay alphay)))) u0) (- 1 u0))))) 1 (sqrt (+ 1 (/ (* (/ 1 (+ (* (cos (atan (* (tan (+ (* (+ (PI) (PI)) u1) (* (PI) 1/2))) (/ alphay alphax)))) (/ (cos (atan (* (tan (+ (* (+ (PI) (PI)) u1) (* (PI) 1/2))) (/ alphay alphax)))) (* alphax alphax))) (/ (- 1/2 (* 1/2 (cos (* 2 (atan (* (tan (+ (* (+ (PI) (PI)) u1) (* (PI) 1/2))) (/ alphay alphax))))))) (* alphay alphay)))) u0) (- 1 u0)))) (+ 1 (/ (* (/ 1 (+ (* (cos (atan (* (tan (+ (* (+ (PI) (PI)) u1) (* (PI) 1/2))) (/ alphay alphax)))) (/ (cos (atan (* (tan (+ (* (+ (PI) (PI)) u1) (* (PI) 1/2))) (/ alphay alphax)))) (* alphax alphax))) (/ (- 1/2 (* 1/2 (cos (* 2 (atan (* (tan (+ (* (+ (PI) (PI)) u1) (* (PI) 1/2))) (/ alphay alphax))))))) (* alphay alphay)))) u0) (- 1 u0))) (/ (* (/ 1 (+ (* (cos (atan (* (tan (+ (* (+ (PI) (PI)) u1) (* (PI) 1/2))) (/ alphay alphax)))) (/ (cos (atan (* (tan (+ (* (+ (PI) (PI)) u1) (* (PI) 1/2))) (/ alphay alphax)))) (* alphax alphax))) (/ (- 1/2 (* 1/2 (cos (* 2 (atan (* (tan (+ (* (+ (PI) (PI)) u1) (* (PI) 1/2))) (/ alphay alphax))))))) (* alphay alphay)))) u0) (- 1 u0)) (* (/ 1 (+ (* (cos (atan (* (tan (+ (* (+ (PI) (PI)) u1) (* (PI) 1/2))) (/ alphay alphax)))) (/ (cos (atan (* (tan (+ (* (+ (PI) (PI)) u1) (* (PI) 1/2))) (/ alphay alphax)))) (* alphax alphax))) (/ (- 1/2 (* 1/2 (cos (* 2 (atan (* (tan (+ (* (+ (PI) (PI)) u1) (* (PI) 1/2))) (/ alphay alphax))))))) (* alphay alphay)))) u0) (/ 1 (+ (* (cos (atan (* (tan (+ (* (+ (PI) (PI)) u1) (* (PI) 1/2))) (/ alphay alphax)))) (/ (cos (atan (* (tan (+ (* (+ (PI) (PI)) u1) (* (PI) 1/2))) (/ alphay alphax)))) (* alphax alphax))) (/ (- 1/2 (* 1/2 (cos (* 2 (atan (* (tan (+ (* (+ (PI) (PI)) u1) (* (PI) 1/2))) (/ alphay alphax))))))) (* alphay alphay)))) (+ (* (cos (atan (* (tan (+ (* (+ (PI) (PI)) u1) (* (PI) 1/2))) (/ alphay alphax)))) (/ (cos (atan (* (tan (+ (* (+ (PI) (PI)) u1) (* (PI) 1/2))) (/ alphay alphax)))) (* alphax alphax))) (/ (- 1/2 (* 1/2 (cos (* 2 (atan (* (tan (+ (* (+ (PI) (PI)) u1) (* (PI) 1/2))) (/ alphay alphax))))))) (* alphay alphay))) (cos (atan (* (tan (+ (* (+ (PI) (PI)) u1) (* (PI) 1/2))) (/ alphay alphax)))) (atan (* (tan (+ (* (+ (PI) (PI)) u1) (* (PI) 1/2))) (/ alphay alphax))) (* (tan (+ (* (+ (PI) (PI)) u1) (* (PI) 1/2))) (/ alphay alphax)) (tan (+ (* (+ (PI) (PI)) u1) (* (PI) 1/2))) (+ (* (+ (PI) (PI)) u1) (* (PI) 1/2)) (+ (PI) (PI)) (PI) u1 (* (PI) 1/2) 1/2 (/ alphay alphax) alphay alphax (/ (cos (atan (* (tan (+ (* (+ (PI) (PI)) u1) (* (PI) 1/2))) (/ alphay alphax)))) (* alphax alphax)) (* alphax alphax) (/ (- 1/2 (* 1/2 (cos (* 2 (atan (* (tan (+ (* (+ (PI) (PI)) u1) (* (PI) 1/2))) (/ alphay alphax))))))) (* alphay alphay)) (- 1/2 (* 1/2 (cos (* 2 (atan (* (tan (+ (* (+ (PI) (PI)) u1) (* (PI) 1/2))) (/ alphay alphax))))))) (* 1/2 (cos (* 2 (atan (* (tan (+ (* (+ (PI) (PI)) u1) (* (PI) 1/2))) (/ alphay alphax)))))) (cos (* 2 (atan (* (tan (+ (* (+ (PI) (PI)) u1) (* (PI) 1/2))) (/ alphay alphax))))) (* 2 (atan (* (tan (+ (* (+ (PI) (PI)) u1) (* (PI) 1/2))) (/ alphay alphax)))) 2 (* alphay alphay) u0 (- 1 u0) (/ 1 (sqrt (+ 1 (/ (* (/ 1 (+ (/ (* (cos (atan (* (/ alphay alphax) (tan (+ (* (* 2 (PI)) u1) (* 1/2 (PI))))))) (cos (atan (* (/ alphay alphax) (tan (+ (* (* 2 (PI)) u1) (* 1/2 (PI)))))))) (* alphax alphax)) (/ (* (sin (atan (* (/ alphay alphax) (tan (+ (* (* 2 (PI)) u1) (* 1/2 (PI))))))) (sin (atan (* (/ alphay alphax) (tan (+ (* (* 2 (PI)) u1) (* 1/2 (PI)))))))) (* alphay alphay)))) u0) (- 1 u0))))) (/ 1 (sqrt (+ 1 (/ (* (/ 1 (+ (/ (* (cos (atan (* (/ alphay alphax) (tan (+ (* (* 2 (PI)) u1) (* 1/2 (PI))))))) (cos (atan (* (/ alphay alphax) (tan (+ (* (* 2 (PI)) u1) (* 1/2 (PI)))))))) (* alphax alphax)) (/ (* (sin (atan (* (/ alphay alphax) (tan (+ (* (* 2 (PI)) u1) (* 1/2 (PI))))))) (sin (atan (* (/ alphay alphax) (tan (+ (* (* 2 (PI)) u1) (* 1/2 (PI)))))))) (* alphay alphay)))) u0) (- 1 u0))))) (sqrt (+ 1 (/ (* (/ 1 (+ (/ (* (cos (atan (* (/ alphay alphax) (tan (+ (* (* 2 (PI)) u1) (* 1/2 (PI))))))) (cos (atan (* (/ alphay alphax) (tan (+ (* (* 2 (PI)) u1) (* 1/2 (PI)))))))) (* alphax alphax)) (/ (* (sin (atan (* (/ alphay alphax) (tan (+ (* (* 2 (PI)) u1) (* 1/2 (PI))))))) (sin (atan (* (/ alphay alphax) (tan (+ (* (* 2 (PI)) u1) (* 1/2 (PI)))))))) (* alphay alphay)))) u0) (- 1 u0)))) (+ 1 (/ (* (/ 1 (+ (/ (* (cos (atan (* (/ alphay alphax) (tan (+ (* (* 2 (PI)) u1) (* 1/2 (PI))))))) (cos (atan (* (/ alphay alphax) (tan (+ (* (* 2 (PI)) u1) (* 1/2 (PI)))))))) (* alphax alphax)) (/ (* (sin (atan (* (/ alphay alphax) (tan (+ (* (* 2 (PI)) u1) (* 1/2 (PI))))))) (sin (atan (* (/ alphay alphax) (tan (+ (* (* 2 (PI)) u1) (* 1/2 (PI)))))))) (* alphay alphay)))) u0) (- 1 u0))) (+ (* (* alphay alphay) (/ u0 (* (- 1/2 (* 1/2 (cos (* 2 (atan (* (tan (+ (* (+ (PI) (PI)) u1) (* (PI) 1/2))) (/ alphay alphax))))))) (- 1 u0)))) 1) (/ u0 (* (- 1/2 (* 1/2 (cos (* 2 (atan (* (tan (+ (* (+ (PI) (PI)) u1) (* (PI) 1/2))) (/ alphay alphax))))))) (- 1 u0))) (* (- 1/2 (* 1/2 (cos (* 2 (atan (* (tan (+ (* (+ (PI) (PI)) u1) (* (PI) 1/2))) (/ alphay alphax))))))) (- 1 u0)) (/ 1 (sqrt (+ 1 (/ (* (/ 1 (+ (/ (* (cos (atan (* (/ alphay alphax) (tan (+ (* (* 2 (PI)) u1) (* 1/2 (PI))))))) (cos (atan (* (/ alphay alphax) (tan (+ (* (* 2 (PI)) u1) (* 1/2 (PI)))))))) (* alphax alphax)) (/ (* (sin (atan (* (/ alphay alphax) (tan (+ (* (* 2 (PI)) u1) (* 1/2 (PI))))))) (sin (atan (* (/ alphay alphax) (tan (+ (* (* 2 (PI)) u1) (* 1/2 (PI)))))))) (* alphay alphay)))) u0) (- 1 u0))))) (sqrt (+ 1 (/ (* (/ 1 (+ (/ (* (cos (atan (* (/ alphay alphax) (tan (+ (* (* 2 (PI)) u1) (* 1/2 (PI))))))) (cos (atan (* (/ alphay alphax) (tan (+ (* (* 2 (PI)) u1) (* 1/2 (PI)))))))) (* alphax alphax)) (/ (* (sin (atan (* (/ alphay alphax) (tan (+ (* (* 2 (PI)) u1) (* 1/2 (PI))))))) (sin (atan (* (/ alphay alphax) (tan (+ (* (* 2 (PI)) u1) (* 1/2 (PI)))))))) (* alphay alphay)))) u0) (- 1 u0)))) (+ (* (/ u0 (+ (/ (- 1/2 (* 1/2 (cos (* 2 (atan (* (tan (+ (* (+ (PI) (PI)) u1) (* (PI) 1/2))) (/ alphay alphax))))))) (* alphay alphay)) (/ (+ 1/2 (* 1/2 (cos (* 2 (atan (* (tan (+ (* (+ (PI) (PI)) u1) (* (PI) 1/2))) (/ alphay alphax))))))) (* alphax alphax)))) 1/2) 1) (/ u0 (+ (/ (- 1/2 (* 1/2 (cos (* 2 (atan (* (tan (+ (* (+ (PI) (PI)) u1) (* (PI) 1/2))) (/ alphay alphax))))))) (* alphay alphay)) (/ (+ 1/2 (* 1/2 (cos (* 2 (atan (* (tan (+ (* (+ (PI) (PI)) u1) (* (PI) 1/2))) (/ alphay alphax))))))) (* alphax alphax)))) (+ (/ (- 1/2 (* 1/2 (cos (* 2 (atan (* (tan (+ (* (+ (PI) (PI)) u1) (* (PI) 1/2))) (/ alphay alphax))))))) (* alphay alphay)) (/ (+ 1/2 (* 1/2 (cos (* 2 (atan (* (tan (+ (* (+ (PI) (PI)) u1) (* (PI) 1/2))) (/ alphay alphax))))))) (* alphax alphax))) (/ (+ 1/2 (* 1/2 (cos (* 2 (atan (* (tan (+ (* (+ (PI) (PI)) u1) (* (PI) 1/2))) (/ alphay alphax))))))) (* alphax alphax)) (+ 1/2 (* 1/2 (cos (* 2 (atan (* (tan (+ (* (+ (PI) (PI)) u1) (* (PI) 1/2))) (/ alphay alphax))))))) (/ 1 (sqrt (+ 1 (/ (* (/ 1 (+ (* (sin (atan (* (tan (+ (* (+ (PI) (PI)) u1) (* (PI) 1/2))) (/ alphay alphax)))) (/ (sin (atan (* (tan (+ (* (+ (PI) (PI)) u1) (* (PI) 1/2))) (/ alphay alphax)))) (* alphay alphay))) (/ (+ 1/2 (* 1/2 (cos (* 2 (atan (* (tan (+ (* (+ (PI) (PI)) u1) (* (PI) 1/2))) (/ alphay alphax))))))) (* alphax alphax)))) u0) (- 1 u0))))) (sqrt (+ 1 (/ (* (/ 1 (+ (* (sin (atan (* (tan (+ (* (+ (PI) (PI)) u1) (* (PI) 1/2))) (/ alphay alphax)))) (/ (sin (atan (* (tan (+ (* (+ (PI) (PI)) u1) (* (PI) 1/2))) (/ alphay alphax)))) (* alphay alphay))) (/ (+ 1/2 (* 1/2 (cos (* 2 (atan (* (tan (+ (* (+ (PI) (PI)) u1) (* (PI) 1/2))) (/ alphay alphax))))))) (* alphax alphax)))) u0) (- 1 u0)))) (+ 1 (/ (* (/ 1 (+ (* (sin (atan (* (tan (+ (* (+ (PI) (PI)) u1) (* (PI) 1/2))) (/ alphay alphax)))) (/ (sin (atan (* (tan (+ (* (+ (PI) (PI)) u1) (* (PI) 1/2))) (/ alphay alphax)))) (* alphay alphay))) (/ (+ 1/2 (* 1/2 (cos (* 2 (atan (* (tan (+ (* (+ (PI) (PI)) u1) (* (PI) 1/2))) (/ alphay alphax))))))) (* alphax alphax)))) u0) (- 1 u0))) (/ (* (/ 1 (+ (* (sin (atan (* (tan (+ (* (+ (PI) (PI)) u1) (* (PI) 1/2))) (/ alphay alphax)))) (/ (sin (atan (* (tan (+ (* (+ (PI) (PI)) u1) (* (PI) 1/2))) (/ alphay alphax)))) (* alphay alphay))) (/ (+ 1/2 (* 1/2 (cos (* 2 (atan (* (tan (+ (* (+ (PI) (PI)) u1) (* (PI) 1/2))) (/ alphay alphax))))))) (* alphax alphax)))) u0) (- 1 u0)) (* (/ 1 (+ (* (sin (atan (* (tan (+ (* (+ (PI) (PI)) u1) (* (PI) 1/2))) (/ alphay alphax)))) (/ (sin (atan (* (tan (+ (* (+ (PI) (PI)) u1) (* (PI) 1/2))) (/ alphay alphax)))) (* alphay alphay))) (/ (+ 1/2 (* 1/2 (cos (* 2 (atan (* (tan (+ (* (+ (PI) (PI)) u1) (* (PI) 1/2))) (/ alphay alphax))))))) (* alphax alphax)))) u0) (/ 1 (+ (* (sin (atan (* (tan (+ (* (+ (PI) (PI)) u1) (* (PI) 1/2))) (/ alphay alphax)))) (/ (sin (atan (* (tan (+ (* (+ (PI) (PI)) u1) (* (PI) 1/2))) (/ alphay alphax)))) (* alphay alphay))) (/ (+ 1/2 (* 1/2 (cos (* 2 (atan (* (tan (+ (* (+ (PI) (PI)) u1) (* (PI) 1/2))) (/ alphay alphax))))))) (* alphax alphax)))) (+ (* (sin (atan (* (tan (+ (* (+ (PI) (PI)) u1) (* (PI) 1/2))) (/ alphay alphax)))) (/ (sin (atan (* (tan (+ (* (+ (PI) (PI)) u1) (* (PI) 1/2))) (/ alphay alphax)))) (* alphay alphay))) (/ (+ 1/2 (* 1/2 (cos (* 2 (atan (* (tan (+ (* (+ (PI) (PI)) u1) (* (PI) 1/2))) (/ alphay alphax))))))) (* alphax alphax))) (sin (atan (* (tan (+ (* (+ (PI) (PI)) u1) (* (PI) 1/2))) (/ alphay alphax)))) (/ (sin (atan (* (tan (+ (* (+ (PI) (PI)) u1) (* (PI) 1/2))) (/ alphay alphax)))) (* alphay alphay)))
116.0ms
dX.v
@inf
((if (>= (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v)))) (/ (* dX.u (floor w)) (sqrt (fmax (+ (* (* (* dX.v (floor h)) dX.v) (floor h)) (* (* (* dX.u (floor w)) dX.u) (floor w))) (+ (* (* (* dY.u (floor w)) dY.u) (floor w)) (* (* dY.v dY.v) (* (floor h) (floor h))))))) (/ (* dY.u (floor w)) (sqrt (fmax (+ (* (* dX.u dX.u) (* (floor w) (floor w))) (* (* dX.v dX.v) (* (floor h) (floor h)))) (+ (* (* (* dY.v (floor h)) dY.v) (floor h)) (* (* (* dY.u (floor w)) dY.u) (floor w))))))) (>= (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v)))) (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (floor w) dX.u) (floor w) w dX.u (* (* (floor h) dX.v) (* (floor h) dX.v)) (* (floor h) dX.v) (floor h) h dX.v (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v))) (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (floor w) dY.u) dY.u (* (* (floor h) dY.v) (* (floor h) dY.v)) (* (floor h) dY.v) dY.v (/ (* dX.u (floor w)) (sqrt (fmax (+ (* (* (* dX.v (floor h)) dX.v) (floor h)) (* (* (* dX.u (floor w)) dX.u) (floor w))) (+ (* (* (* dY.u (floor w)) dY.u) (floor w)) (* (* dY.v dY.v) (* (floor h) (floor h))))))) (* dX.u (floor w)) (sqrt (fmax (+ (* (* (* dX.v (floor h)) dX.v) (floor h)) (* (* (* dX.u (floor w)) dX.u) (floor w))) (+ (* (* (* dY.u (floor w)) dY.u) (floor w)) (* (* dY.v dY.v) (* (floor h) (floor h)))))) (fmax (+ (* (* (* dX.v (floor h)) dX.v) (floor h)) (* (* (* dX.u (floor w)) dX.u) (floor w))) (+ (* (* (* dY.u (floor w)) dY.u) (floor w)) (* (* dY.v dY.v) (* (floor h) (floor h))))) (+ (* (* (* dX.v (floor h)) dX.v) (floor h)) (* (* (* dX.u (floor w)) dX.u) (floor w))) (* (* dX.v (floor h)) dX.v) (* dX.v (floor h)) (* (* (* dX.u (floor w)) dX.u) (floor w)) (* (* dX.u (floor w)) dX.u) (+ (* (* (* dY.u (floor w)) dY.u) (floor w)) (* (* dY.v dY.v) (* (floor h) (floor h)))) (* (* dY.u (floor w)) dY.u) (* dY.u (floor w)) (* (* dY.v dY.v) (* (floor h) (floor h))) (* dY.v dY.v) (* (floor h) (floor h)) (/ (* dY.u (floor w)) (sqrt (fmax (+ (* (* dX.u dX.u) (* (floor w) (floor w))) (* (* dX.v dX.v) (* (floor h) (floor h)))) (+ (* (* (* dY.v (floor h)) dY.v) (floor h)) (* (* (* dY.u (floor w)) dY.u) (floor w)))))) (sqrt (fmax (+ (* (* dX.u dX.u) (* (floor w) (floor w))) (* (* dX.v dX.v) (* (floor h) (floor h)))) (+ (* (* (* dY.v (floor h)) dY.v) (floor h)) (* (* (* dY.u (floor w)) dY.u) (floor w))))) (fmax (+ (* (* dX.u dX.u) (* (floor w) (floor w))) (* (* dX.v dX.v) (* (floor h) (floor h)))) (+ (* (* (* dY.v (floor h)) dY.v) (floor h)) (* (* (* dY.u (floor w)) dY.u) (floor w)))) (+ (* (* dX.u dX.u) (* (floor w) (floor w))) (* (* dX.v dX.v) (* (floor h) (floor h)))) (* dX.u dX.u) (* (floor w) (floor w)) (* (* dX.v dX.v) (* (floor h) (floor h))) (* dX.v dX.v) (+ (* (* (* dY.v (floor h)) dY.v) (floor h)) (* (* (* dY.u (floor w)) dY.u) (floor w))) (* (* dY.v (floor h)) dY.v) (* dY.v (floor h)) (* (* (* dY.u (floor w)) dY.u) (floor w)) (if (>= (+ (* (* (* (floor w) (floor w)) dX.u) dX.u) (* (* (floor h) (floor h)) (* dX.v dX.v))) (+ (* (* (* dY.u (floor w)) (floor w)) dY.u) (* (* dY.v dY.v) (* (floor h) (floor h))))) (* (/ (floor w) (sqrt (fmax (+ (* (* dX.u dX.u) (* (floor w) (floor w))) (* (* dX.v dX.v) (* (floor h) (floor h)))) (+ (* (* (* dY.v (floor h)) dY.v) (floor h)) (* (* (* dY.u (floor w)) dY.u) (floor w)))))) dX.u) (* (/ (floor w) (sqrt (fmax (+ (* (* dX.u dX.u) (* (floor w) (floor w))) (* (* dX.v dX.v) (* (floor h) (floor h)))) (+ (* (* (* dY.v (floor h)) dY.v) (floor h)) (* (* (* dY.u (floor w)) dY.u) (floor w)))))) dY.u)) (>= (+ (* (* (* (floor w) (floor w)) dX.u) dX.u) (* (* (floor h) (floor h)) (* dX.v dX.v))) (+ (* (* (* dY.u (floor w)) (floor w)) dY.u) (* (* dY.v dY.v) (* (floor h) (floor h))))) (+ (* (* (* (floor w) (floor w)) dX.u) dX.u) (* (* (floor h) (floor h)) (* dX.v dX.v))) (* (* (floor w) (floor w)) dX.u) (* (* (floor h) (floor h)) (* dX.v dX.v)) (+ (* (* (* dY.u (floor w)) (floor w)) dY.u) (* (* dY.v dY.v) (* (floor h) (floor h)))) (* (* dY.u (floor w)) (floor w)) (* (/ (floor w) (sqrt (fmax (+ (* (* dX.u dX.u) (* (floor w) (floor w))) (* (* dX.v dX.v) (* (floor h) (floor h)))) (+ (* (* (* dY.v (floor h)) dY.v) (floor h)) (* (* (* dY.u (floor w)) dY.u) (floor w)))))) dX.u) (/ (floor w) (sqrt (fmax (+ (* (* dX.u dX.u) (* (floor w) (floor w))) (* (* dX.v dX.v) (* (floor h) (floor h)))) (+ (* (* (* dY.v (floor h)) dY.v) (floor h)) (* (* (* dY.u (floor w)) dY.u) (floor w)))))) (* (/ (floor w) (sqrt (fmax (+ (* (* dX.u dX.u) (* (floor w) (floor w))) (* (* dX.v dX.v) (* (floor h) (floor h)))) (+ (* (* (* dY.v (floor h)) dY.v) (floor h)) (* (* (* dY.u (floor w)) dY.u) (floor w)))))) dY.u) (if (>= (+ (* (* dX.u dX.u) (* (floor w) (floor w))) (* (* dX.v dX.v) (* (floor h) (floor h)))) (+ (* (* (* dY.v (floor h)) dY.v) (floor h)) (* (* (* dY.u (floor w)) dY.u) (floor w)))) (* (floor w) (/ dX.u (sqrt (fmax (+ (* (* (* dX.v (floor h)) dX.v) (floor h)) (* (* (* dX.u (floor w)) dX.u) (floor w))) (+ (* (* (* dY.u (floor w)) dY.u) (floor w)) (* (* dY.v dY.v) (* (floor h) (floor h)))))))) (* (floor w) (/ dY.u (sqrt (fmax (+ (* (* (* (floor w) (floor w)) dX.u) dX.u) (* (* (floor h) (floor h)) (* dX.v dX.v))) (+ (* (* (* (floor w) (floor w)) dY.u) dY.u) (* (* dY.v dY.v) (* (floor h) (floor h))))))))) (>= (+ (* (* dX.u dX.u) (* (floor w) (floor w))) (* (* dX.v dX.v) (* (floor h) (floor h)))) (+ (* (* (* dY.v (floor h)) dY.v) (floor h)) (* (* (* dY.u (floor w)) dY.u) (floor w)))) (* (floor w) (/ dX.u (sqrt (fmax (+ (* (* (* dX.v (floor h)) dX.v) (floor h)) (* (* (* dX.u (floor w)) dX.u) (floor w))) (+ (* (* (* dY.u (floor w)) dY.u) (floor w)) (* (* dY.v dY.v) (* (floor h) (floor h)))))))) (/ dX.u (sqrt (fmax (+ (* (* (* dX.v (floor h)) dX.v) (floor h)) (* (* (* dX.u (floor w)) dX.u) (floor w))) (+ (* (* (* dY.u (floor w)) dY.u) (floor w)) (* (* dY.v dY.v) (* (floor h) (floor h))))))) (* (floor w) (/ dY.u (sqrt (fmax (+ (* (* (* (floor w) (floor w)) dX.u) dX.u) (* (* (floor h) (floor h)) (* dX.v dX.v))) (+ (* (* (* (floor w) (floor w)) dY.u) dY.u) (* (* dY.v dY.v) (* (floor h) (floor h)))))))) (/ dY.u (sqrt (fmax (+ (* (* (* (floor w) (floor w)) dX.u) dX.u) (* (* (floor h) (floor h)) (* dX.v dX.v))) (+ (* (* (* (floor w) (floor w)) dY.u) dY.u) (* (* dY.v dY.v) (* (floor h) (floor h))))))) (sqrt (fmax (+ (* (* (* (floor w) (floor w)) dX.u) dX.u) (* (* (floor h) (floor h)) (* dX.v dX.v))) (+ (* (* (* (floor w) (floor w)) dY.u) dY.u) (* (* dY.v dY.v) (* (floor h) (floor h)))))) (fmax (+ (* (* (* (floor w) (floor w)) dX.u) dX.u) (* (* (floor h) (floor h)) (* dX.v dX.v))) (+ (* (* (* (floor w) (floor w)) dY.u) dY.u) (* (* dY.v dY.v) (* (floor h) (floor h))))) (+ (* (* (* (floor w) (floor w)) dY.u) dY.u) (* (* dY.v dY.v) (* (floor h) (floor h)))) (* (* (floor w) (floor w)) dY.u) (if (>= (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v)))) (/ (* dX.u (floor w)) (sqrt (fmax (+ (* (* (* dX.v dX.v) (floor h)) (floor h)) (* (* (* dX.u (floor w)) dX.u) (floor w))) (+ (* (* (* dY.u (floor w)) dY.u) (floor w)) (* (* dY.v dY.v) (* (floor h) (floor h))))))) (* (floor w) (/ dY.u (sqrt (fmax (+ (* (* (* (floor w) (floor w)) dX.u) dX.u) (* (* (floor h) (floor h)) (* dX.v dX.v))) (+ (* (* (* (floor w) (floor w)) dY.u) dY.u) (* (* dY.v dY.v) (* (floor h) (floor h))))))))) (/ (* dX.u (floor w)) (sqrt (fmax (+ (* (* (* dX.v dX.v) (floor h)) (floor h)) (* (* (* dX.u (floor w)) dX.u) (floor w))) (+ (* (* (* dY.u (floor w)) dY.u) (floor w)) (* (* dY.v dY.v) (* (floor h) (floor h))))))) (sqrt (fmax (+ (* (* (* dX.v dX.v) (floor h)) (floor h)) (* (* (* dX.u (floor w)) dX.u) (floor w))) (+ (* (* (* dY.u (floor w)) dY.u) (floor w)) (* (* dY.v dY.v) (* (floor h) (floor h)))))) (fmax (+ (* (* (* dX.v dX.v) (floor h)) (floor h)) (* (* (* dX.u (floor w)) dX.u) (floor w))) (+ (* (* (* dY.u (floor w)) dY.u) (floor w)) (* (* dY.v dY.v) (* (floor h) (floor h))))) (+ (* (* (* dX.v dX.v) (floor h)) (floor h)) (* (* (* dX.u (floor w)) dX.u) (floor w))) (* (* dX.v dX.v) (floor h)) (if (>= (+ (* (* (* (floor w) (floor w)) dX.u) dX.u) (* (* (* dX.v (floor h)) dX.v) (floor h))) (+ (* (* (* dY.v dY.v) (floor h)) (floor h)) (* (* dY.u dY.u) (* (floor w) (floor w))))) (* (pow (fmax (+ (* (* dX.u dX.u) (* (floor w) (floor w))) (* (* dX.v dX.v) (* (floor h) (floor h)))) (+ (* (* (* dY.v (floor h)) dY.v) (floor h)) (* (* (* dY.u (floor w)) dY.u) (floor w)))) -1/2) (* (floor w) dX.u)) (* (pow (fmax (+ (* (* dX.u dX.u) (* (floor w) (floor w))) (* (* dX.v dX.v) (* (floor h) (floor h)))) (+ (* (* (* dY.v (floor h)) dY.v) (floor h)) (* (* (* dY.u (floor w)) dY.u) (floor w)))) -1/2) (* (floor w) dY.u))) (>= (+ (* (* (* (floor w) (floor w)) dX.u) dX.u) (* (* (* dX.v (floor h)) dX.v) (floor h))) (+ (* (* (* dY.v dY.v) (floor h)) (floor h)) (* (* dY.u dY.u) (* (floor w) (floor w))))) (+ (* (* (* (floor w) (floor w)) dX.u) dX.u) (* (* (* dX.v (floor h)) dX.v) (floor h))) (* (* (* dX.v (floor h)) dX.v) (floor h)) (+ (* (* (* dY.v dY.v) (floor h)) (floor h)) (* (* dY.u dY.u) (* (floor w) (floor w)))) (* (* dY.v dY.v) (floor h)) (* (* dY.u dY.u) (* (floor w) (floor w))) (* dY.u dY.u) (* (pow (fmax (+ (* (* dX.u dX.u) (* (floor w) (floor w))) (* (* dX.v dX.v) (* (floor h) (floor h)))) (+ (* (* (* dY.v (floor h)) dY.v) (floor h)) (* (* (* dY.u (floor w)) dY.u) (floor w)))) -1/2) (* (floor w) dX.u)) (pow (fmax (+ (* (* dX.u dX.u) (* (floor w) (floor w))) (* (* dX.v dX.v) (* (floor h) (floor h)))) (+ (* (* (* dY.v (floor h)) dY.v) (floor h)) (* (* (* dY.u (floor w)) dY.u) (floor w)))) -1/2) -1/2 (* (pow (fmax (+ (* (* dX.u dX.u) (* (floor w) (floor w))) (* (* dX.v dX.v) (* (floor h) (floor h)))) (+ (* (* (* dY.v (floor h)) dY.v) (floor h)) (* (* (* dY.u (floor w)) dY.u) (floor w)))) -1/2) (* (floor w) dY.u)))

derivations16.6s (4.5%)

Memory
-118.1MiB live, 11 798.7MiB allocated; 6.5s collecting garbage
Stop Event
34×fuel
done
Compiler

Compiled 8 163 to 3 603 computations (55.9% saved)

eval10.1s (2.7%)

Memory
143.6MiB live, 15 428.8MiB allocated; 5.0s collecting garbage
Compiler

Compiled 1 806 939 to 351 380 computations (80.6% saved)

preprocess6.7s (1.8%)

Memory
-128.1MiB live, 9 273.8MiB allocated; 2.6s collecting garbage
Stop Event
36×node-limit
Compiler

Compiled 52 204 to 35 337 computations (32.3% saved)

prune5.9s (1.6%)

Memory
239.9MiB live, 9 819.7MiB allocated; 1.5s collecting garbage
Counts
60 005 → 3 328
Compiler

Compiled 249 450 to 170 202 computations (31.8% saved)

bsearch1.2s (0.3%)

Memory
197.2MiB live, 1 779.1MiB allocated; 373ms collecting garbage
Algorithm
84×binary-search
39×left-value
Stop Event
82×narrow-enough
predicate-same
Samples
430.0ms2 431×0valid
312.0ms1 293×1valid
39.0ms164×2valid
12.0ms70×1invalid
5.0ms93×0invalid
Compiler

Compiled 23 581 to 20 542 computations (12.9% saved)

Precisions
Click to see histograms. Total time spent on operations: 671.0ms
ival-sub!: 115.0ms (17.1% of total)
ival-exp: 107.0ms (15.9% of total)
ival-fmax: 100.0ms (14.9% of total)
ival-pow2: 91.0ms (13.6% of total)
ival-mult!: 57.0ms (8.5% of total)
ival-sqrt: 48.0ms (7.2% of total)
adjust: 42.0ms (6.3% of total)
ival-cos: 19.0ms (2.8% of total)
ival-add!: 18.0ms (2.7% of total)
ival-log1p: 18.0ms (2.7% of total)
ival-sin: 18.0ms (2.7% of total)
ival-fabs: 17.0ms (2.5% of total)
ival-fmin: 14.0ms (2.1% of total)
ival-neg: 7.0ms (1% of total)

start41.0ms (0%)

Memory
17.0MiB live, 70.2MiB allocated; 25ms collecting garbage

end0.0ms (0%)

Memory
0.6MiB live, 0.6MiB allocated; 0ms collecting garbage

Profiling

Loading profile data...