Anisotropic x16 LOD (line direction, u)

Time bar (total: 5.0s)

analyze2.3s (46.4%)

Memory
-37.3MiB live, 3 951.0MiB allocated
Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%0%100%0%0%0%0
0%0%0%100%0%0%0%1
0%0%0%100%0%0%0%2
0%0%0%100%0%0%0%3
0%0%0%100%0%0%0%4
0%0%0%100%0%0%0%5
0%0%0%100%0%0%0%6
6.3%0%0%100%0%0%0%7
6.3%0%0%100%0%0%0%8
6.3%0%0%100%0%0%0%9
6.3%0%0%100%0%0%0%10
Compiler

Compiled 194 to 61 computations (68.6% saved)

sample2.5s (50.9%)

Memory
132.5MiB live, 3 025.6MiB allocated
Samples
1.9s8 256×0valid
Precisions
Click to see histograms. Total time spent on operations: 1.5s
ival-mult: 468.0ms (31.4% of total)
ival-<=: 217.0ms (14.6% of total)
ival-fabs: 163.0ms (10.9% of total)
const: 145.0ms (9.7% of total)
ival-floor: 83.0ms (5.6% of total)
ival-add: 75.0ms (5% of total)
ival-and: 66.0ms (4.4% of total)
ival-div: 60.0ms (4% of total)
ival-sqrt: 54.0ms (3.6% of total)
ival-if: 49.0ms (3.3% of total)
ival-fmax: 42.0ms (2.8% of total)
ival-==: 28.0ms (1.9% of total)
ival->=: 21.0ms (1.4% of total)
exact: 18.0ms (1.2% of total)
ival-assert: 3.0ms (0.2% of total)
Bogosity

preprocess88.0ms (1.8%)

Memory
8.1MiB live, 91.8MiB allocated
Algorithm
egg-herbie
Rules
2 664×unsub-neg
936×neg-mul-1
880×neg-sub0
740×associate-*r*
644×distribute-lft-neg-out
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
03504929
19054743
221864743
336464743
461944743
026134
169130
2147130
3205130
4215130
0215124
Stop Event
iter limit
saturated
node limit
Calls
Call 1
Inputs
(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)))) (* (/ 1 (sqrt (fmax (+ (* (* (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)) (* (/ 1 (sqrt (fmax (+ (* (* (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) dY.u)))
Outputs
(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)))) (* (/ 1 (sqrt (fmax (+ (* (* (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)) (* (/ 1 (sqrt (fmax (+ (* (* (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) dY.u)))
(if (>=.f32 (fma.f32 (floor.f32 w) (*.f32 dX.u (*.f32 (floor.f32 w) dX.u)) (*.f32 (floor.f32 h) (*.f32 (floor.f32 h) (*.f32 dX.v dX.v)))) (fma.f32 (floor.f32 h) (*.f32 dY.v (*.f32 (floor.f32 h) dY.v)) (*.f32 (*.f32 (floor.f32 w) dY.u) (*.f32 (floor.f32 w) dY.u)))) (/.f32 (*.f32 (floor.f32 w) dX.u) (sqrt.f32 (fmax.f32 (fma.f32 (floor.f32 w) (*.f32 dX.u (*.f32 (floor.f32 w) dX.u)) (*.f32 (floor.f32 h) (*.f32 (floor.f32 h) (*.f32 dX.v dX.v)))) (fma.f32 (floor.f32 h) (*.f32 dY.v (*.f32 (floor.f32 h) dY.v)) (*.f32 (*.f32 (floor.f32 w) dY.u) (*.f32 (floor.f32 w) dY.u)))))) (/.f32 (*.f32 (floor.f32 w) dY.u) (sqrt.f32 (fmax.f32 (fma.f32 (floor.f32 w) (*.f32 dX.u (*.f32 (floor.f32 w) dX.u)) (*.f32 (floor.f32 h) (*.f32 (floor.f32 h) (*.f32 dX.v dX.v)))) (fma.f32 (floor.f32 h) (*.f32 dY.v (*.f32 (floor.f32 h) dY.v)) (*.f32 (*.f32 (floor.f32 w) dY.u) (*.f32 (floor.f32 w) dY.u)))))))
Call 2
Inputs
(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)))) (* (/ 1 (sqrt (fmax (+ (* (* (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)) (* (/ 1 (sqrt (fmax (+ (* (* (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) dY.u)))
(if (>= (+ (* (* (floor (neg w)) dX.u) (* (floor (neg w)) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (+ (* (* (floor (neg w)) dY.u) (* (floor (neg w)) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v)))) (* (/ 1 (sqrt (fmax (+ (* (* (floor (neg w)) dX.u) (* (floor (neg w)) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (+ (* (* (floor (neg w)) dY.u) (* (floor (neg w)) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v)))))) (* (floor (neg w)) dX.u)) (* (/ 1 (sqrt (fmax (+ (* (* (floor (neg w)) dX.u) (* (floor (neg w)) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (+ (* (* (floor (neg w)) dY.u) (* (floor (neg w)) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v)))))) (* (floor (neg w)) dY.u)))
(if (>= (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor (neg h)) dX.v) (* (floor (neg h)) dX.v))) (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor (neg h)) dY.v) (* (floor (neg h)) dY.v)))) (* (/ 1 (sqrt (fmax (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor (neg h)) dX.v) (* (floor (neg h)) dX.v))) (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor (neg h)) dY.v) (* (floor (neg h)) dY.v)))))) (* (floor w) dX.u)) (* (/ 1 (sqrt (fmax (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor (neg h)) dX.v) (* (floor (neg h)) dX.v))) (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor (neg h)) dY.v) (* (floor (neg h)) dY.v)))))) (* (floor w) dY.u)))
(if (>= (+ (* (* (floor w) (neg dX.u)) (* (floor w) (neg 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)))) (* (/ 1 (sqrt (fmax (+ (* (* (floor w) (neg dX.u)) (* (floor w) (neg 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) (neg dX.u))) (* (/ 1 (sqrt (fmax (+ (* (* (floor w) (neg dX.u)) (* (floor w) (neg 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) dY.u)))
(if (>= (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) (neg dX.v)) (* (floor h) (neg dX.v)))) (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v)))) (* (/ 1 (sqrt (fmax (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) (neg dX.v)) (* (floor h) (neg dX.v)))) (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v)))))) (* (floor w) dX.u)) (* (/ 1 (sqrt (fmax (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) (neg dX.v)) (* (floor h) (neg dX.v)))) (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v)))))) (* (floor w) dY.u)))
(if (>= (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (+ (* (* (floor w) (neg dY.u)) (* (floor w) (neg dY.u))) (* (* (floor h) dY.v) (* (floor h) dY.v)))) (* (/ 1 (sqrt (fmax (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (+ (* (* (floor w) (neg dY.u)) (* (floor w) (neg dY.u))) (* (* (floor h) dY.v) (* (floor h) dY.v)))))) (* (floor w) dX.u)) (* (/ 1 (sqrt (fmax (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (+ (* (* (floor w) (neg dY.u)) (* (floor w) (neg dY.u))) (* (* (floor h) dY.v) (* (floor h) dY.v)))))) (* (floor w) (neg 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) (neg dY.v)) (* (floor h) (neg dY.v))))) (* (/ 1 (sqrt (fmax (+ (* (* (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) (neg dY.v)) (* (floor h) (neg dY.v))))))) (* (floor w) dX.u)) (* (/ 1 (sqrt (fmax (+ (* (* (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) (neg dY.v)) (* (floor h) (neg dY.v))))))) (* (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)))) (* (/ 1 (sqrt (fmax (+ (* (* (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)) (* (/ 1 (sqrt (fmax (+ (* (* (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) dY.u)))
(neg (if (>= (+ (* (* (floor (neg w)) dX.u) (* (floor (neg w)) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (+ (* (* (floor (neg w)) dY.u) (* (floor (neg w)) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v)))) (* (/ 1 (sqrt (fmax (+ (* (* (floor (neg w)) dX.u) (* (floor (neg w)) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (+ (* (* (floor (neg w)) dY.u) (* (floor (neg w)) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v)))))) (* (floor (neg w)) dX.u)) (* (/ 1 (sqrt (fmax (+ (* (* (floor (neg w)) dX.u) (* (floor (neg w)) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (+ (* (* (floor (neg w)) dY.u) (* (floor (neg w)) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v)))))) (* (floor (neg w)) dY.u))))
(neg (if (>= (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor (neg h)) dX.v) (* (floor (neg h)) dX.v))) (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor (neg h)) dY.v) (* (floor (neg h)) dY.v)))) (* (/ 1 (sqrt (fmax (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor (neg h)) dX.v) (* (floor (neg h)) dX.v))) (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor (neg h)) dY.v) (* (floor (neg h)) dY.v)))))) (* (floor w) dX.u)) (* (/ 1 (sqrt (fmax (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor (neg h)) dX.v) (* (floor (neg h)) dX.v))) (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor (neg h)) dY.v) (* (floor (neg h)) dY.v)))))) (* (floor w) dY.u))))
(neg (if (>= (+ (* (* (floor w) (neg dX.u)) (* (floor w) (neg 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)))) (* (/ 1 (sqrt (fmax (+ (* (* (floor w) (neg dX.u)) (* (floor w) (neg 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) (neg dX.u))) (* (/ 1 (sqrt (fmax (+ (* (* (floor w) (neg dX.u)) (* (floor w) (neg 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) dY.u))))
(neg (if (>= (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) (neg dX.v)) (* (floor h) (neg dX.v)))) (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v)))) (* (/ 1 (sqrt (fmax (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) (neg dX.v)) (* (floor h) (neg dX.v)))) (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v)))))) (* (floor w) dX.u)) (* (/ 1 (sqrt (fmax (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) (neg dX.v)) (* (floor h) (neg dX.v)))) (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v)))))) (* (floor w) dY.u))))
(neg (if (>= (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (+ (* (* (floor w) (neg dY.u)) (* (floor w) (neg dY.u))) (* (* (floor h) dY.v) (* (floor h) dY.v)))) (* (/ 1 (sqrt (fmax (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (+ (* (* (floor w) (neg dY.u)) (* (floor w) (neg dY.u))) (* (* (floor h) dY.v) (* (floor h) dY.v)))))) (* (floor w) dX.u)) (* (/ 1 (sqrt (fmax (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (+ (* (* (floor w) (neg dY.u)) (* (floor w) (neg dY.u))) (* (* (floor h) dY.v) (* (floor h) dY.v)))))) (* (floor w) (neg dY.u)))))
(neg (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) (neg dY.v)) (* (floor h) (neg dY.v))))) (* (/ 1 (sqrt (fmax (+ (* (* (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) (neg dY.v)) (* (floor h) (neg dY.v))))))) (* (floor w) dX.u)) (* (/ 1 (sqrt (fmax (+ (* (* (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) (neg dY.v)) (* (floor h) (neg dY.v))))))) (* (floor w) dY.u))))
(neg (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)))) (* (/ 1 (sqrt (fmax (+ (* (* (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)) (* (/ 1 (sqrt (fmax (+ (* (* (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) dY.u))))
(if (>= (+ (* (* (floor h) dX.u) (* (floor h) dX.u)) (* (* (floor w) dX.v) (* (floor w) dX.v))) (+ (* (* (floor h) dY.u) (* (floor h) dY.u)) (* (* (floor w) dY.v) (* (floor w) dY.v)))) (* (/ 1 (sqrt (fmax (+ (* (* (floor h) dX.u) (* (floor h) dX.u)) (* (* (floor w) dX.v) (* (floor w) dX.v))) (+ (* (* (floor h) dY.u) (* (floor h) dY.u)) (* (* (floor w) dY.v) (* (floor w) dY.v)))))) (* (floor h) dX.u)) (* (/ 1 (sqrt (fmax (+ (* (* (floor h) dX.u) (* (floor h) dX.u)) (* (* (floor w) dX.v) (* (floor w) dX.v))) (+ (* (* (floor h) dY.u) (* (floor h) dY.u)) (* (* (floor w) dY.v) (* (floor w) dY.v)))))) (* (floor h) dY.u)))
(if (>= (+ (* (* (floor dX.u) w) (* (floor dX.u) w)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (+ (* (* (floor dX.u) dY.u) (* (floor dX.u) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v)))) (* (/ 1 (sqrt (fmax (+ (* (* (floor dX.u) w) (* (floor dX.u) w)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (+ (* (* (floor dX.u) dY.u) (* (floor dX.u) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v)))))) (* (floor dX.u) w)) (* (/ 1 (sqrt (fmax (+ (* (* (floor dX.u) w) (* (floor dX.u) w)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (+ (* (* (floor dX.u) dY.u) (* (floor dX.u) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v)))))) (* (floor dX.u) dY.u)))
(if (>= (+ (* (* (floor dX.v) dX.u) (* (floor dX.v) dX.u)) (* (* (floor h) w) (* (floor h) w))) (+ (* (* (floor dX.v) dY.u) (* (floor dX.v) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v)))) (* (/ 1 (sqrt (fmax (+ (* (* (floor dX.v) dX.u) (* (floor dX.v) dX.u)) (* (* (floor h) w) (* (floor h) w))) (+ (* (* (floor dX.v) dY.u) (* (floor dX.v) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v)))))) (* (floor dX.v) dX.u)) (* (/ 1 (sqrt (fmax (+ (* (* (floor dX.v) dX.u) (* (floor dX.v) dX.u)) (* (* (floor h) w) (* (floor h) w))) (+ (* (* (floor dX.v) dY.u) (* (floor dX.v) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v)))))) (* (floor dX.v) dY.u)))
(if (>= (+ (* (* (floor dY.u) dX.u) (* (floor dY.u) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (+ (* (* (floor dY.u) w) (* (floor dY.u) w)) (* (* (floor h) dY.v) (* (floor h) dY.v)))) (* (/ 1 (sqrt (fmax (+ (* (* (floor dY.u) dX.u) (* (floor dY.u) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (+ (* (* (floor dY.u) w) (* (floor dY.u) w)) (* (* (floor h) dY.v) (* (floor h) dY.v)))))) (* (floor dY.u) dX.u)) (* (/ 1 (sqrt (fmax (+ (* (* (floor dY.u) dX.u) (* (floor dY.u) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (+ (* (* (floor dY.u) w) (* (floor dY.u) w)) (* (* (floor h) dY.v) (* (floor h) dY.v)))))) (* (floor dY.u) w)))
(if (>= (+ (* (* (floor dY.v) dX.u) (* (floor dY.v) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (+ (* (* (floor dY.v) dY.u) (* (floor dY.v) dY.u)) (* (* (floor h) w) (* (floor h) w)))) (* (/ 1 (sqrt (fmax (+ (* (* (floor dY.v) dX.u) (* (floor dY.v) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (+ (* (* (floor dY.v) dY.u) (* (floor dY.v) dY.u)) (* (* (floor h) w) (* (floor h) w)))))) (* (floor dY.v) dX.u)) (* (/ 1 (sqrt (fmax (+ (* (* (floor dY.v) dX.u) (* (floor dY.v) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (+ (* (* (floor dY.v) dY.u) (* (floor dY.v) dY.u)) (* (* (floor h) w) (* (floor h) w)))))) (* (floor dY.v) dY.u)))
(if (>= (+ (* (* (floor maxAniso) dX.u) (* (floor maxAniso) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (+ (* (* (floor maxAniso) dY.u) (* (floor maxAniso) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v)))) (* (/ 1 (sqrt (fmax (+ (* (* (floor maxAniso) dX.u) (* (floor maxAniso) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (+ (* (* (floor maxAniso) dY.u) (* (floor maxAniso) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v)))))) (* (floor maxAniso) dX.u)) (* (/ 1 (sqrt (fmax (+ (* (* (floor maxAniso) dX.u) (* (floor maxAniso) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (+ (* (* (floor maxAniso) dY.u) (* (floor maxAniso) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v)))))) (* (floor maxAniso) dY.u)))
(if (>= (+ (* (* (floor w) h) (* (floor w) h)) (* (* (floor dX.u) dX.v) (* (floor dX.u) dX.v))) (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor dX.u) dY.v) (* (floor dX.u) dY.v)))) (* (/ 1 (sqrt (fmax (+ (* (* (floor w) h) (* (floor w) h)) (* (* (floor dX.u) dX.v) (* (floor dX.u) dX.v))) (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor dX.u) dY.v) (* (floor dX.u) dY.v)))))) (* (floor w) h)) (* (/ 1 (sqrt (fmax (+ (* (* (floor w) h) (* (floor w) h)) (* (* (floor dX.u) dX.v) (* (floor dX.u) dX.v))) (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor dX.u) dY.v) (* (floor dX.u) dY.v)))))) (* (floor w) dY.u)))
(if (>= (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor dX.v) h) (* (floor dX.v) h))) (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor dX.v) dY.v) (* (floor dX.v) dY.v)))) (* (/ 1 (sqrt (fmax (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor dX.v) h) (* (floor dX.v) h))) (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor dX.v) dY.v) (* (floor dX.v) dY.v)))))) (* (floor w) dX.u)) (* (/ 1 (sqrt (fmax (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor dX.v) h) (* (floor dX.v) h))) (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor dX.v) dY.v) (* (floor dX.v) dY.v)))))) (* (floor w) dY.u)))
(if (>= (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor dY.u) dX.v) (* (floor dY.u) dX.v))) (+ (* (* (floor w) h) (* (floor w) h)) (* (* (floor dY.u) dY.v) (* (floor dY.u) dY.v)))) (* (/ 1 (sqrt (fmax (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor dY.u) dX.v) (* (floor dY.u) dX.v))) (+ (* (* (floor w) h) (* (floor w) h)) (* (* (floor dY.u) dY.v) (* (floor dY.u) dY.v)))))) (* (floor w) dX.u)) (* (/ 1 (sqrt (fmax (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor dY.u) dX.v) (* (floor dY.u) dX.v))) (+ (* (* (floor w) h) (* (floor w) h)) (* (* (floor dY.u) dY.v) (* (floor dY.u) dY.v)))))) (* (floor w) h)))
(if (>= (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor dY.v) dX.v) (* (floor dY.v) dX.v))) (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor dY.v) h) (* (floor dY.v) h)))) (* (/ 1 (sqrt (fmax (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor dY.v) dX.v) (* (floor dY.v) dX.v))) (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor dY.v) h) (* (floor dY.v) h)))))) (* (floor w) dX.u)) (* (/ 1 (sqrt (fmax (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor dY.v) dX.v) (* (floor dY.v) dX.v))) (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor dY.v) h) (* (floor dY.v) h)))))) (* (floor w) dY.u)))
(if (>= (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor maxAniso) dX.v) (* (floor maxAniso) dX.v))) (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor maxAniso) dY.v) (* (floor maxAniso) dY.v)))) (* (/ 1 (sqrt (fmax (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor maxAniso) dX.v) (* (floor maxAniso) dX.v))) (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor maxAniso) dY.v) (* (floor maxAniso) dY.v)))))) (* (floor w) dX.u)) (* (/ 1 (sqrt (fmax (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor maxAniso) dX.v) (* (floor maxAniso) dX.v))) (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor maxAniso) dY.v) (* (floor maxAniso) dY.v)))))) (* (floor w) dY.u)))
(if (>= (+ (* (* (floor w) dX.v) (* (floor w) dX.v)) (* (* (floor h) dX.u) (* (floor h) dX.u))) (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v)))) (* (/ 1 (sqrt (fmax (+ (* (* (floor w) dX.v) (* (floor w) dX.v)) (* (* (floor h) dX.u) (* (floor h) dX.u))) (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v)))))) (* (floor w) dX.v)) (* (/ 1 (sqrt (fmax (+ (* (* (floor w) dX.v) (* (floor w) dX.v)) (* (* (floor h) dX.u) (* (floor h) dX.u))) (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v)))))) (* (floor w) dY.u)))
(if (>= (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dY.v) (* (floor h) dY.v)))) (* (/ 1 (sqrt (fmax (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dY.v) (* (floor h) dY.v)))))) (* (floor w) dY.u)) (* (/ 1 (sqrt (fmax (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dY.v) (* (floor h) dY.v)))))) (* (floor w) dX.u)))
(if (>= (+ (* (* (floor w) dY.v) (* (floor w) dY.v)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor h) dX.u) (* (floor h) dX.u)))) (* (/ 1 (sqrt (fmax (+ (* (* (floor w) dY.v) (* (floor w) dY.v)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor h) dX.u) (* (floor h) dX.u)))))) (* (floor w) dY.v)) (* (/ 1 (sqrt (fmax (+ (* (* (floor w) dY.v) (* (floor w) dY.v)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor h) dX.u) (* (floor h) dX.u)))))) (* (floor w) dY.u)))
(if (>= (+ (* (* (floor w) maxAniso) (* (floor w) maxAniso)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v)))) (* (/ 1 (sqrt (fmax (+ (* (* (floor w) maxAniso) (* (floor w) maxAniso)) (* (* (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) maxAniso)) (* (/ 1 (sqrt (fmax (+ (* (* (floor w) maxAniso) (* (floor w) maxAniso)) (* (* (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) dY.u)))
(if (>= (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dY.u) (* (floor h) dY.u))) (+ (* (* (floor w) dX.v) (* (floor w) dX.v)) (* (* (floor h) dY.v) (* (floor h) dY.v)))) (* (/ 1 (sqrt (fmax (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dY.u) (* (floor h) dY.u))) (+ (* (* (floor w) dX.v) (* (floor w) dX.v)) (* (* (floor h) dY.v) (* (floor h) dY.v)))))) (* (floor w) dX.u)) (* (/ 1 (sqrt (fmax (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dY.u) (* (floor h) dY.u))) (+ (* (* (floor w) dX.v) (* (floor w) dX.v)) (* (* (floor h) dY.v) (* (floor h) dY.v)))))) (* (floor w) dX.v)))
(if (>= (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dY.v) (* (floor h) dY.v))) (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor h) dX.v) (* (floor h) dX.v)))) (* (/ 1 (sqrt (fmax (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dY.v) (* (floor h) dY.v))) (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor h) dX.v) (* (floor h) dX.v)))))) (* (floor w) dX.u)) (* (/ 1 (sqrt (fmax (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dY.v) (* (floor h) dY.v))) (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor h) dX.v) (* (floor h) dX.v)))))) (* (floor w) dY.u)))
(if (>= (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) maxAniso) (* (floor h) maxAniso))) (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v)))) (* (/ 1 (sqrt (fmax (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) maxAniso) (* (floor h) maxAniso))) (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v)))))) (* (floor w) dX.u)) (* (/ 1 (sqrt (fmax (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) maxAniso) (* (floor h) maxAniso))) (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v)))))) (* (floor w) dY.u)))
(if (>= (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (+ (* (* (floor w) dY.v) (* (floor w) dY.v)) (* (* (floor h) dY.u) (* (floor h) dY.u)))) (* (/ 1 (sqrt (fmax (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (+ (* (* (floor w) dY.v) (* (floor w) dY.v)) (* (* (floor h) dY.u) (* (floor h) dY.u)))))) (* (floor w) dX.u)) (* (/ 1 (sqrt (fmax (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (+ (* (* (floor w) dY.v) (* (floor w) dY.v)) (* (* (floor h) dY.u) (* (floor h) dY.u)))))) (* (floor w) dY.v)))
(if (>= (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (+ (* (* (floor w) maxAniso) (* (floor w) maxAniso)) (* (* (floor h) dY.v) (* (floor h) dY.v)))) (* (/ 1 (sqrt (fmax (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (+ (* (* (floor w) maxAniso) (* (floor w) maxAniso)) (* (* (floor h) dY.v) (* (floor h) dY.v)))))) (* (floor w) dX.u)) (* (/ 1 (sqrt (fmax (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (+ (* (* (floor w) maxAniso) (* (floor w) maxAniso)) (* (* (floor h) dY.v) (* (floor h) dY.v)))))) (* (floor w) maxAniso)))
(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) maxAniso) (* (floor h) maxAniso)))) (* (/ 1 (sqrt (fmax (+ (* (* (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) maxAniso) (* (floor h) maxAniso)))))) (* (floor w) dX.u)) (* (/ 1 (sqrt (fmax (+ (* (* (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) maxAniso) (* (floor h) maxAniso)))))) (* (floor w) dY.u)))
Outputs
(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)))) (* (/ 1 (sqrt (fmax (+ (* (* (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)) (* (/ 1 (sqrt (fmax (+ (* (* (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) dY.u)))
(if (>= (+ (* (floor w) (* dX.u (* (floor w) dX.u))) (* (floor h) (* (floor h) (* dX.v dX.v)))) (+ (* (floor w) (* dY.u (* (floor w) dY.u))) (* (floor h) (* dY.v (* (floor h) dY.v))))) (/ (* (floor w) dX.u) (sqrt (fmax (+ (* (floor w) (* dX.u (* (floor w) dX.u))) (* (floor h) (* (floor h) (* dX.v dX.v)))) (+ (* (floor w) (* dY.u (* (floor w) dY.u))) (* (floor h) (* dY.v (* (floor h) dY.v))))))) (/ (* (floor w) dY.u) (sqrt (fmax (+ (* (floor w) (* dX.u (* (floor w) dX.u))) (* (floor h) (* (floor h) (* dX.v dX.v)))) (+ (* (floor w) (* dY.u (* (floor w) dY.u))) (* (floor h) (* dY.v (* (floor h) dY.v))))))))
(if (>= (+ (* (* (floor (neg w)) dX.u) (* (floor (neg w)) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (+ (* (* (floor (neg w)) dY.u) (* (floor (neg w)) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v)))) (* (/ 1 (sqrt (fmax (+ (* (* (floor (neg w)) dX.u) (* (floor (neg w)) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (+ (* (* (floor (neg w)) dY.u) (* (floor (neg w)) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v)))))) (* (floor (neg w)) dX.u)) (* (/ 1 (sqrt (fmax (+ (* (* (floor (neg w)) dX.u) (* (floor (neg w)) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (+ (* (* (floor (neg w)) dY.u) (* (floor (neg w)) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v)))))) (* (floor (neg w)) dY.u)))
(if (>= (+ (* (floor h) (* (floor h) (* dX.v dX.v))) (* (floor (neg w)) (* (floor (neg w)) (* dX.u dX.u)))) (+ (* (floor h) (* dY.v (* (floor h) dY.v))) (* (floor (neg w)) (* (floor (neg w)) (* dY.u dY.u))))) (/ (* dX.u (floor (neg w))) (sqrt (fmax (+ (* (floor h) (* (floor h) (* dX.v dX.v))) (* (floor (neg w)) (* (floor (neg w)) (* dX.u dX.u)))) (+ (* (floor h) (* dY.v (* (floor h) dY.v))) (* (floor (neg w)) (* (floor (neg w)) (* dY.u dY.u))))))) (/ (* dY.u (floor (neg w))) (sqrt (fmax (+ (* (floor h) (* (floor h) (* dX.v dX.v))) (* (floor (neg w)) (* (floor (neg w)) (* dX.u dX.u)))) (+ (* (floor h) (* dY.v (* (floor h) dY.v))) (* (floor (neg w)) (* (floor (neg w)) (* dY.u dY.u))))))))
(if (>= (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor (neg h)) dX.v) (* (floor (neg h)) dX.v))) (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor (neg h)) dY.v) (* (floor (neg h)) dY.v)))) (* (/ 1 (sqrt (fmax (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor (neg h)) dX.v) (* (floor (neg h)) dX.v))) (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor (neg h)) dY.v) (* (floor (neg h)) dY.v)))))) (* (floor w) dX.u)) (* (/ 1 (sqrt (fmax (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor (neg h)) dX.v) (* (floor (neg h)) dX.v))) (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor (neg h)) dY.v) (* (floor (neg h)) dY.v)))))) (* (floor w) dY.u)))
(if (>= (+ (* (floor w) (* dX.u (* (floor w) dX.u))) (* (floor (neg h)) (* (floor (neg h)) (* dX.v dX.v)))) (+ (* (floor w) (* dY.u (* (floor w) dY.u))) (* (floor (neg h)) (* (floor (neg h)) (* dY.v dY.v))))) (/ (* (floor w) dX.u) (sqrt (fmax (+ (* (floor w) (* dX.u (* (floor w) dX.u))) (* (floor (neg h)) (* (floor (neg h)) (* dX.v dX.v)))) (+ (* (floor w) (* dY.u (* (floor w) dY.u))) (* (floor (neg h)) (* (floor (neg h)) (* dY.v dY.v))))))) (/ (* (floor w) dY.u) (sqrt (fmax (+ (* (floor w) (* dX.u (* (floor w) dX.u))) (* (floor (neg h)) (* (floor (neg h)) (* dX.v dX.v)))) (+ (* (floor w) (* dY.u (* (floor w) dY.u))) (* (floor (neg h)) (* (floor (neg h)) (* dY.v dY.v))))))))
(if (>= (+ (* (* (floor w) (neg dX.u)) (* (floor w) (neg 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)))) (* (/ 1 (sqrt (fmax (+ (* (* (floor w) (neg dX.u)) (* (floor w) (neg 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) (neg dX.u))) (* (/ 1 (sqrt (fmax (+ (* (* (floor w) (neg dX.u)) (* (floor w) (neg 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) dY.u)))
(if (>= (+ (* (floor w) (* dX.u (* (floor w) dX.u))) (* (floor h) (* (floor h) (* dX.v dX.v)))) (+ (* (floor w) (* dY.u (* (floor w) dY.u))) (* (floor h) (* dY.v (* (floor h) dY.v))))) (/ (* (floor w) (neg dX.u)) (sqrt (fmax (+ (* (floor w) (* dX.u (* (floor w) dX.u))) (* (floor h) (* (floor h) (* dX.v dX.v)))) (+ (* (floor w) (* dY.u (* (floor w) dY.u))) (* (floor h) (* dY.v (* (floor h) dY.v))))))) (/ (* (floor w) dY.u) (sqrt (fmax (+ (* (floor w) (* dX.u (* (floor w) dX.u))) (* (floor h) (* (floor h) (* dX.v dX.v)))) (+ (* (floor w) (* dY.u (* (floor w) dY.u))) (* (floor h) (* dY.v (* (floor h) dY.v))))))))
(if (>= (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) (neg dX.v)) (* (floor h) (neg dX.v)))) (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v)))) (* (/ 1 (sqrt (fmax (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) (neg dX.v)) (* (floor h) (neg dX.v)))) (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v)))))) (* (floor w) dX.u)) (* (/ 1 (sqrt (fmax (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) (neg dX.v)) (* (floor h) (neg dX.v)))) (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v)))))) (* (floor w) dY.u)))
(if (>= (+ (* (floor w) (* dX.u (* (floor w) dX.u))) (* (floor h) (* (floor h) (* dX.v dX.v)))) (+ (* (floor w) (* dY.u (* (floor w) dY.u))) (* (floor h) (* dY.v (* (floor h) dY.v))))) (/ (* (floor w) dX.u) (sqrt (fmax (+ (* (floor w) (* dX.u (* (floor w) dX.u))) (* (floor h) (* (floor h) (* dX.v dX.v)))) (+ (* (floor w) (* dY.u (* (floor w) dY.u))) (* (floor h) (* dY.v (* (floor h) dY.v))))))) (/ (* (floor w) dY.u) (sqrt (fmax (+ (* (floor w) (* dX.u (* (floor w) dX.u))) (* (floor h) (* (floor h) (* dX.v dX.v)))) (+ (* (floor w) (* dY.u (* (floor w) dY.u))) (* (floor h) (* dY.v (* (floor h) dY.v))))))))
(if (>= (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (+ (* (* (floor w) (neg dY.u)) (* (floor w) (neg dY.u))) (* (* (floor h) dY.v) (* (floor h) dY.v)))) (* (/ 1 (sqrt (fmax (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (+ (* (* (floor w) (neg dY.u)) (* (floor w) (neg dY.u))) (* (* (floor h) dY.v) (* (floor h) dY.v)))))) (* (floor w) dX.u)) (* (/ 1 (sqrt (fmax (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (+ (* (* (floor w) (neg dY.u)) (* (floor w) (neg dY.u))) (* (* (floor h) dY.v) (* (floor h) dY.v)))))) (* (floor w) (neg dY.u))))
(if (>= (+ (* (floor w) (* dX.u (* (floor w) dX.u))) (* (floor h) (* (floor h) (* dX.v dX.v)))) (+ (* (floor w) (* dY.u (* (floor w) dY.u))) (* (floor h) (* dY.v (* (floor h) dY.v))))) (/ (* (floor w) dX.u) (sqrt (fmax (+ (* (floor w) (* dX.u (* (floor w) dX.u))) (* (floor h) (* (floor h) (* dX.v dX.v)))) (+ (* (floor w) (* dY.u (* (floor w) dY.u))) (* (floor h) (* dY.v (* (floor h) dY.v))))))) (/ (* (floor w) (neg dY.u)) (sqrt (fmax (+ (* (floor w) (* dX.u (* (floor w) dX.u))) (* (floor h) (* (floor h) (* dX.v dX.v)))) (+ (* (floor w) (* dY.u (* (floor w) dY.u))) (* (floor h) (* dY.v (* (floor h) dY.v))))))))
(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) (neg dY.v)) (* (floor h) (neg dY.v))))) (* (/ 1 (sqrt (fmax (+ (* (* (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) (neg dY.v)) (* (floor h) (neg dY.v))))))) (* (floor w) dX.u)) (* (/ 1 (sqrt (fmax (+ (* (* (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) (neg dY.v)) (* (floor h) (neg dY.v))))))) (* (floor w) dY.u)))
(if (>= (+ (* (floor w) (* dX.u (* (floor w) dX.u))) (* (floor h) (* (floor h) (* dX.v dX.v)))) (+ (* (floor w) (* dY.u (* (floor w) dY.u))) (* (floor h) (* dY.v (* (floor h) dY.v))))) (/ (* (floor w) dX.u) (sqrt (fmax (+ (* (floor w) (* dX.u (* (floor w) dX.u))) (* (floor h) (* (floor h) (* dX.v dX.v)))) (+ (* (floor w) (* dY.u (* (floor w) dY.u))) (* (floor h) (* dY.v (* (floor h) dY.v))))))) (/ (* (floor w) dY.u) (sqrt (fmax (+ (* (floor w) (* dX.u (* (floor w) dX.u))) (* (floor h) (* (floor h) (* dX.v dX.v)))) (+ (* (floor w) (* dY.u (* (floor w) dY.u))) (* (floor h) (* dY.v (* (floor h) dY.v))))))))
(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)))) (* (/ 1 (sqrt (fmax (+ (* (* (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)) (* (/ 1 (sqrt (fmax (+ (* (* (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) dY.u)))
(if (>= (+ (* (floor w) (* dX.u (* (floor w) dX.u))) (* (floor h) (* (floor h) (* dX.v dX.v)))) (+ (* (floor w) (* dY.u (* (floor w) dY.u))) (* (floor h) (* dY.v (* (floor h) dY.v))))) (/ (* (floor w) dX.u) (sqrt (fmax (+ (* (floor w) (* dX.u (* (floor w) dX.u))) (* (floor h) (* (floor h) (* dX.v dX.v)))) (+ (* (floor w) (* dY.u (* (floor w) dY.u))) (* (floor h) (* dY.v (* (floor h) dY.v))))))) (/ (* (floor w) dY.u) (sqrt (fmax (+ (* (floor w) (* dX.u (* (floor w) dX.u))) (* (floor h) (* (floor h) (* dX.v dX.v)))) (+ (* (floor w) (* dY.u (* (floor w) dY.u))) (* (floor h) (* dY.v (* (floor h) dY.v))))))))
(neg (if (>= (+ (* (* (floor (neg w)) dX.u) (* (floor (neg w)) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (+ (* (* (floor (neg w)) dY.u) (* (floor (neg w)) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v)))) (* (/ 1 (sqrt (fmax (+ (* (* (floor (neg w)) dX.u) (* (floor (neg w)) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (+ (* (* (floor (neg w)) dY.u) (* (floor (neg w)) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v)))))) (* (floor (neg w)) dX.u)) (* (/ 1 (sqrt (fmax (+ (* (* (floor (neg w)) dX.u) (* (floor (neg w)) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (+ (* (* (floor (neg w)) dY.u) (* (floor (neg w)) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v)))))) (* (floor (neg w)) dY.u))))
(neg (if (>= (+ (* (floor h) (* (floor h) (* dX.v dX.v))) (* (floor (neg w)) (* (floor (neg w)) (* dX.u dX.u)))) (+ (* (floor h) (* dY.v (* (floor h) dY.v))) (* (floor (neg w)) (* (floor (neg w)) (* dY.u dY.u))))) (/ (* dX.u (floor (neg w))) (sqrt (fmax (+ (* (floor h) (* (floor h) (* dX.v dX.v))) (* (floor (neg w)) (* (floor (neg w)) (* dX.u dX.u)))) (+ (* (floor h) (* dY.v (* (floor h) dY.v))) (* (floor (neg w)) (* (floor (neg w)) (* dY.u dY.u))))))) (/ (* dY.u (floor (neg w))) (sqrt (fmax (+ (* (floor h) (* (floor h) (* dX.v dX.v))) (* (floor (neg w)) (* (floor (neg w)) (* dX.u dX.u)))) (+ (* (floor h) (* dY.v (* (floor h) dY.v))) (* (floor (neg w)) (* (floor (neg w)) (* dY.u dY.u)))))))))
(neg (if (>= (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor (neg h)) dX.v) (* (floor (neg h)) dX.v))) (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor (neg h)) dY.v) (* (floor (neg h)) dY.v)))) (* (/ 1 (sqrt (fmax (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor (neg h)) dX.v) (* (floor (neg h)) dX.v))) (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor (neg h)) dY.v) (* (floor (neg h)) dY.v)))))) (* (floor w) dX.u)) (* (/ 1 (sqrt (fmax (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor (neg h)) dX.v) (* (floor (neg h)) dX.v))) (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor (neg h)) dY.v) (* (floor (neg h)) dY.v)))))) (* (floor w) dY.u))))
(neg (if (>= (+ (* (floor w) (* dX.u (* (floor w) dX.u))) (* (floor (neg h)) (* (floor (neg h)) (* dX.v dX.v)))) (+ (* (floor w) (* dY.u (* (floor w) dY.u))) (* (floor (neg h)) (* (floor (neg h)) (* dY.v dY.v))))) (/ (* (floor w) dX.u) (sqrt (fmax (+ (* (floor w) (* dX.u (* (floor w) dX.u))) (* (floor (neg h)) (* (floor (neg h)) (* dX.v dX.v)))) (+ (* (floor w) (* dY.u (* (floor w) dY.u))) (* (floor (neg h)) (* (floor (neg h)) (* dY.v dY.v))))))) (/ (* (floor w) dY.u) (sqrt (fmax (+ (* (floor w) (* dX.u (* (floor w) dX.u))) (* (floor (neg h)) (* (floor (neg h)) (* dX.v dX.v)))) (+ (* (floor w) (* dY.u (* (floor w) dY.u))) (* (floor (neg h)) (* (floor (neg h)) (* dY.v dY.v)))))))))
(neg (if (>= (+ (* (* (floor w) (neg dX.u)) (* (floor w) (neg 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)))) (* (/ 1 (sqrt (fmax (+ (* (* (floor w) (neg dX.u)) (* (floor w) (neg 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) (neg dX.u))) (* (/ 1 (sqrt (fmax (+ (* (* (floor w) (neg dX.u)) (* (floor w) (neg 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) dY.u))))
(neg (if (>= (+ (* (floor w) (* dX.u (* (floor w) dX.u))) (* (floor h) (* (floor h) (* dX.v dX.v)))) (+ (* (floor w) (* dY.u (* (floor w) dY.u))) (* (floor h) (* dY.v (* (floor h) dY.v))))) (/ (* (floor w) (neg dX.u)) (sqrt (fmax (+ (* (floor w) (* dX.u (* (floor w) dX.u))) (* (floor h) (* (floor h) (* dX.v dX.v)))) (+ (* (floor w) (* dY.u (* (floor w) dY.u))) (* (floor h) (* dY.v (* (floor h) dY.v))))))) (/ (* (floor w) dY.u) (sqrt (fmax (+ (* (floor w) (* dX.u (* (floor w) dX.u))) (* (floor h) (* (floor h) (* dX.v dX.v)))) (+ (* (floor w) (* dY.u (* (floor w) dY.u))) (* (floor h) (* dY.v (* (floor h) dY.v)))))))))
(neg (if (>= (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) (neg dX.v)) (* (floor h) (neg dX.v)))) (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v)))) (* (/ 1 (sqrt (fmax (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) (neg dX.v)) (* (floor h) (neg dX.v)))) (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v)))))) (* (floor w) dX.u)) (* (/ 1 (sqrt (fmax (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) (neg dX.v)) (* (floor h) (neg dX.v)))) (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v)))))) (* (floor w) dY.u))))
(neg (if (>= (+ (* (floor w) (* dX.u (* (floor w) dX.u))) (* (floor h) (* (floor h) (* dX.v dX.v)))) (+ (* (floor w) (* dY.u (* (floor w) dY.u))) (* (floor h) (* dY.v (* (floor h) dY.v))))) (/ (* (floor w) dX.u) (sqrt (fmax (+ (* (floor w) (* dX.u (* (floor w) dX.u))) (* (floor h) (* (floor h) (* dX.v dX.v)))) (+ (* (floor w) (* dY.u (* (floor w) dY.u))) (* (floor h) (* dY.v (* (floor h) dY.v))))))) (/ (* (floor w) dY.u) (sqrt (fmax (+ (* (floor w) (* dX.u (* (floor w) dX.u))) (* (floor h) (* (floor h) (* dX.v dX.v)))) (+ (* (floor w) (* dY.u (* (floor w) dY.u))) (* (floor h) (* dY.v (* (floor h) dY.v)))))))))
(neg (if (>= (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (+ (* (* (floor w) (neg dY.u)) (* (floor w) (neg dY.u))) (* (* (floor h) dY.v) (* (floor h) dY.v)))) (* (/ 1 (sqrt (fmax (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (+ (* (* (floor w) (neg dY.u)) (* (floor w) (neg dY.u))) (* (* (floor h) dY.v) (* (floor h) dY.v)))))) (* (floor w) dX.u)) (* (/ 1 (sqrt (fmax (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (+ (* (* (floor w) (neg dY.u)) (* (floor w) (neg dY.u))) (* (* (floor h) dY.v) (* (floor h) dY.v)))))) (* (floor w) (neg dY.u)))))
(neg (if (>= (+ (* (floor w) (* dX.u (* (floor w) dX.u))) (* (floor h) (* (floor h) (* dX.v dX.v)))) (+ (* (floor w) (* dY.u (* (floor w) dY.u))) (* (floor h) (* dY.v (* (floor h) dY.v))))) (/ (* (floor w) dX.u) (sqrt (fmax (+ (* (floor w) (* dX.u (* (floor w) dX.u))) (* (floor h) (* (floor h) (* dX.v dX.v)))) (+ (* (floor w) (* dY.u (* (floor w) dY.u))) (* (floor h) (* dY.v (* (floor h) dY.v))))))) (/ (* (floor w) (neg dY.u)) (sqrt (fmax (+ (* (floor w) (* dX.u (* (floor w) dX.u))) (* (floor h) (* (floor h) (* dX.v dX.v)))) (+ (* (floor w) (* dY.u (* (floor w) dY.u))) (* (floor h) (* dY.v (* (floor h) dY.v)))))))))
(neg (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) (neg dY.v)) (* (floor h) (neg dY.v))))) (* (/ 1 (sqrt (fmax (+ (* (* (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) (neg dY.v)) (* (floor h) (neg dY.v))))))) (* (floor w) dX.u)) (* (/ 1 (sqrt (fmax (+ (* (* (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) (neg dY.v)) (* (floor h) (neg dY.v))))))) (* (floor w) dY.u))))
(neg (if (>= (+ (* (floor w) (* dX.u (* (floor w) dX.u))) (* (floor h) (* (floor h) (* dX.v dX.v)))) (+ (* (floor w) (* dY.u (* (floor w) dY.u))) (* (floor h) (* dY.v (* (floor h) dY.v))))) (/ (* (floor w) dX.u) (sqrt (fmax (+ (* (floor w) (* dX.u (* (floor w) dX.u))) (* (floor h) (* (floor h) (* dX.v dX.v)))) (+ (* (floor w) (* dY.u (* (floor w) dY.u))) (* (floor h) (* dY.v (* (floor h) dY.v))))))) (/ (* (floor w) dY.u) (sqrt (fmax (+ (* (floor w) (* dX.u (* (floor w) dX.u))) (* (floor h) (* (floor h) (* dX.v dX.v)))) (+ (* (floor w) (* dY.u (* (floor w) dY.u))) (* (floor h) (* dY.v (* (floor h) dY.v)))))))))
(neg (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)))) (* (/ 1 (sqrt (fmax (+ (* (* (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)) (* (/ 1 (sqrt (fmax (+ (* (* (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) dY.u))))
(neg (if (>= (+ (* (floor w) (* dX.u (* (floor w) dX.u))) (* (floor h) (* (floor h) (* dX.v dX.v)))) (+ (* (floor w) (* dY.u (* (floor w) dY.u))) (* (floor h) (* dY.v (* (floor h) dY.v))))) (/ (* (floor w) dX.u) (sqrt (fmax (+ (* (floor w) (* dX.u (* (floor w) dX.u))) (* (floor h) (* (floor h) (* dX.v dX.v)))) (+ (* (floor w) (* dY.u (* (floor w) dY.u))) (* (floor h) (* dY.v (* (floor h) dY.v))))))) (/ (* (floor w) dY.u) (sqrt (fmax (+ (* (floor w) (* dX.u (* (floor w) dX.u))) (* (floor h) (* (floor h) (* dX.v dX.v)))) (+ (* (floor w) (* dY.u (* (floor w) dY.u))) (* (floor h) (* dY.v (* (floor h) dY.v)))))))))
(if (>= (+ (* (* (floor h) dX.u) (* (floor h) dX.u)) (* (* (floor w) dX.v) (* (floor w) dX.v))) (+ (* (* (floor h) dY.u) (* (floor h) dY.u)) (* (* (floor w) dY.v) (* (floor w) dY.v)))) (* (/ 1 (sqrt (fmax (+ (* (* (floor h) dX.u) (* (floor h) dX.u)) (* (* (floor w) dX.v) (* (floor w) dX.v))) (+ (* (* (floor h) dY.u) (* (floor h) dY.u)) (* (* (floor w) dY.v) (* (floor w) dY.v)))))) (* (floor h) dX.u)) (* (/ 1 (sqrt (fmax (+ (* (* (floor h) dX.u) (* (floor h) dX.u)) (* (* (floor w) dX.v) (* (floor w) dX.v))) (+ (* (* (floor h) dY.u) (* (floor h) dY.u)) (* (* (floor w) dY.v) (* (floor w) dY.v)))))) (* (floor h) dY.u)))
(if (>= (+ (* (floor h) (* dX.u (* dX.u (floor h)))) (* (floor w) (* dX.v (* (floor w) dX.v)))) (+ (* (floor h) (* dY.u (* (floor h) dY.u))) (* (* (floor w) dY.v) (* (floor w) dY.v)))) (/ (* dX.u (floor h)) (sqrt (fmax (+ (* (floor h) (* dX.u (* dX.u (floor h)))) (* (floor w) (* dX.v (* (floor w) dX.v)))) (+ (* (floor h) (* dY.u (* (floor h) dY.u))) (* (* (floor w) dY.v) (* (floor w) dY.v)))))) (/ (* (floor h) dY.u) (sqrt (fmax (+ (* (floor h) (* dX.u (* dX.u (floor h)))) (* (floor w) (* dX.v (* (floor w) dX.v)))) (+ (* (floor h) (* dY.u (* (floor h) dY.u))) (* (* (floor w) dY.v) (* (floor w) dY.v)))))))
(if (>= (+ (* (* (floor dX.u) w) (* (floor dX.u) w)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (+ (* (* (floor dX.u) dY.u) (* (floor dX.u) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v)))) (* (/ 1 (sqrt (fmax (+ (* (* (floor dX.u) w) (* (floor dX.u) w)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (+ (* (* (floor dX.u) dY.u) (* (floor dX.u) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v)))))) (* (floor dX.u) w)) (* (/ 1 (sqrt (fmax (+ (* (* (floor dX.u) w) (* (floor dX.u) w)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (+ (* (* (floor dX.u) dY.u) (* (floor dX.u) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v)))))) (* (floor dX.u) dY.u)))
(if (>= (+ (* (floor h) (* (floor h) (* dX.v dX.v))) (* (floor dX.u) (* w (* w (floor dX.u))))) (+ (* (floor h) (* dY.v (* (floor h) dY.v))) (* (floor dX.u) (* dY.u (* dY.u (floor dX.u)))))) (/ (* w (floor dX.u)) (sqrt (fmax (+ (* (floor h) (* (floor h) (* dX.v dX.v))) (* (floor dX.u) (* w (* w (floor dX.u))))) (+ (* (floor h) (* dY.v (* (floor h) dY.v))) (* (floor dX.u) (* dY.u (* dY.u (floor dX.u)))))))) (/ (* dY.u (floor dX.u)) (sqrt (fmax (+ (* (floor h) (* (floor h) (* dX.v dX.v))) (* (floor dX.u) (* w (* w (floor dX.u))))) (+ (* (floor h) (* dY.v (* (floor h) dY.v))) (* (floor dX.u) (* dY.u (* dY.u (floor dX.u)))))))))
(if (>= (+ (* (* (floor dX.v) dX.u) (* (floor dX.v) dX.u)) (* (* (floor h) w) (* (floor h) w))) (+ (* (* (floor dX.v) dY.u) (* (floor dX.v) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v)))) (* (/ 1 (sqrt (fmax (+ (* (* (floor dX.v) dX.u) (* (floor dX.v) dX.u)) (* (* (floor h) w) (* (floor h) w))) (+ (* (* (floor dX.v) dY.u) (* (floor dX.v) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v)))))) (* (floor dX.v) dX.u)) (* (/ 1 (sqrt (fmax (+ (* (* (floor dX.v) dX.u) (* (floor dX.v) dX.u)) (* (* (floor h) w) (* (floor h) w))) (+ (* (* (floor dX.v) dY.u) (* (floor dX.v) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v)))))) (* (floor dX.v) dY.u)))
(if (>= (+ (* (floor dX.v) (* dX.u (* dX.u (floor dX.v)))) (* (floor h) (* w (* w (floor h))))) (+ (* (floor h) (* dY.v (* (floor h) dY.v))) (* (floor dX.v) (* dY.u (* dY.u (floor dX.v)))))) (/ (* dX.u (floor dX.v)) (sqrt (fmax (+ (* (floor dX.v) (* dX.u (* dX.u (floor dX.v)))) (* (floor h) (* w (* w (floor h))))) (+ (* (floor h) (* dY.v (* (floor h) dY.v))) (* (floor dX.v) (* dY.u (* dY.u (floor dX.v)))))))) (/ (* dY.u (floor dX.v)) (sqrt (fmax (+ (* (floor dX.v) (* dX.u (* dX.u (floor dX.v)))) (* (floor h) (* w (* w (floor h))))) (+ (* (floor h) (* dY.v (* (floor h) dY.v))) (* (floor dX.v) (* dY.u (* dY.u (floor dX.v)))))))))
(if (>= (+ (* (* (floor dY.u) dX.u) (* (floor dY.u) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (+ (* (* (floor dY.u) w) (* (floor dY.u) w)) (* (* (floor h) dY.v) (* (floor h) dY.v)))) (* (/ 1 (sqrt (fmax (+ (* (* (floor dY.u) dX.u) (* (floor dY.u) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (+ (* (* (floor dY.u) w) (* (floor dY.u) w)) (* (* (floor h) dY.v) (* (floor h) dY.v)))))) (* (floor dY.u) dX.u)) (* (/ 1 (sqrt (fmax (+ (* (* (floor dY.u) dX.u) (* (floor dY.u) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (+ (* (* (floor dY.u) w) (* (floor dY.u) w)) (* (* (floor h) dY.v) (* (floor h) dY.v)))))) (* (floor dY.u) w)))
(if (>= (+ (* (floor h) (* (floor h) (* dX.v dX.v))) (* (floor dY.u) (* (floor dY.u) (* dX.u dX.u)))) (+ (* (floor h) (* dY.v (* (floor h) dY.v))) (* (floor dY.u) (* (floor dY.u) (* w w))))) (/ (* dX.u (floor dY.u)) (sqrt (fmax (+ (* (floor h) (* (floor h) (* dX.v dX.v))) (* (floor dY.u) (* (floor dY.u) (* dX.u dX.u)))) (+ (* (floor h) (* dY.v (* (floor h) dY.v))) (* (floor dY.u) (* (floor dY.u) (* w w))))))) (/ (* w (floor dY.u)) (sqrt (fmax (+ (* (floor h) (* (floor h) (* dX.v dX.v))) (* (floor dY.u) (* (floor dY.u) (* dX.u dX.u)))) (+ (* (floor h) (* dY.v (* (floor h) dY.v))) (* (floor dY.u) (* (floor dY.u) (* w w))))))))
(if (>= (+ (* (* (floor dY.v) dX.u) (* (floor dY.v) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (+ (* (* (floor dY.v) dY.u) (* (floor dY.v) dY.u)) (* (* (floor h) w) (* (floor h) w)))) (* (/ 1 (sqrt (fmax (+ (* (* (floor dY.v) dX.u) (* (floor dY.v) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (+ (* (* (floor dY.v) dY.u) (* (floor dY.v) dY.u)) (* (* (floor h) w) (* (floor h) w)))))) (* (floor dY.v) dX.u)) (* (/ 1 (sqrt (fmax (+ (* (* (floor dY.v) dX.u) (* (floor dY.v) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (+ (* (* (floor dY.v) dY.u) (* (floor dY.v) dY.u)) (* (* (floor h) w) (* (floor h) w)))))) (* (floor dY.v) dY.u)))
(if (>= (+ (* (floor h) (* (floor h) (* dX.v dX.v))) (* (floor dY.v) (* dX.u (* dX.u (floor dY.v))))) (+ (* (floor h) (* w (* w (floor h)))) (* (floor dY.v) (* dY.u (* dY.u (floor dY.v)))))) (/ (* dX.u (floor dY.v)) (sqrt (fmax (+ (* (floor h) (* (floor h) (* dX.v dX.v))) (* (floor dY.v) (* dX.u (* dX.u (floor dY.v))))) (+ (* (floor h) (* w (* w (floor h)))) (* (floor dY.v) (* dY.u (* dY.u (floor dY.v)))))))) (/ (* dY.u (floor dY.v)) (sqrt (fmax (+ (* (floor h) (* (floor h) (* dX.v dX.v))) (* (floor dY.v) (* dX.u (* dX.u (floor dY.v))))) (+ (* (floor h) (* w (* w (floor h)))) (* (floor dY.v) (* dY.u (* dY.u (floor dY.v)))))))))
(if (>= (+ (* (* (floor maxAniso) dX.u) (* (floor maxAniso) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (+ (* (* (floor maxAniso) dY.u) (* (floor maxAniso) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v)))) (* (/ 1 (sqrt (fmax (+ (* (* (floor maxAniso) dX.u) (* (floor maxAniso) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (+ (* (* (floor maxAniso) dY.u) (* (floor maxAniso) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v)))))) (* (floor maxAniso) dX.u)) (* (/ 1 (sqrt (fmax (+ (* (* (floor maxAniso) dX.u) (* (floor maxAniso) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (+ (* (* (floor maxAniso) dY.u) (* (floor maxAniso) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v)))))) (* (floor maxAniso) dY.u)))
(if (>= (+ (* (floor h) (* (floor h) (* dX.v dX.v))) (* (floor maxAniso) (* dX.u (* dX.u (floor maxAniso))))) (+ (* (floor h) (* dY.v (* (floor h) dY.v))) (* (* dY.u (floor maxAniso)) (* dY.u (floor maxAniso))))) (/ (* dX.u (floor maxAniso)) (sqrt (fmax (+ (* (floor h) (* (floor h) (* dX.v dX.v))) (* (floor maxAniso) (* dX.u (* dX.u (floor maxAniso))))) (+ (* (floor h) (* dY.v (* (floor h) dY.v))) (* (* dY.u (floor maxAniso)) (* dY.u (floor maxAniso))))))) (/ (* dY.u (floor maxAniso)) (sqrt (fmax (+ (* (floor h) (* (floor h) (* dX.v dX.v))) (* (floor maxAniso) (* dX.u (* dX.u (floor maxAniso))))) (+ (* (floor h) (* dY.v (* (floor h) dY.v))) (* (* dY.u (floor maxAniso)) (* dY.u (floor maxAniso))))))))
(if (>= (+ (* (* (floor w) h) (* (floor w) h)) (* (* (floor dX.u) dX.v) (* (floor dX.u) dX.v))) (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor dX.u) dY.v) (* (floor dX.u) dY.v)))) (* (/ 1 (sqrt (fmax (+ (* (* (floor w) h) (* (floor w) h)) (* (* (floor dX.u) dX.v) (* (floor dX.u) dX.v))) (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor dX.u) dY.v) (* (floor dX.u) dY.v)))))) (* (floor w) h)) (* (/ 1 (sqrt (fmax (+ (* (* (floor w) h) (* (floor w) h)) (* (* (floor dX.u) dX.v) (* (floor dX.u) dX.v))) (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor dX.u) dY.v) (* (floor dX.u) dY.v)))))) (* (floor w) dY.u)))
(if (>= (+ (* (floor w) (* h (* (floor w) h))) (* (floor dX.u) (* dX.v (* dX.v (floor dX.u))))) (+ (* (floor w) (* dY.u (* (floor w) dY.u))) (* (floor dX.u) (* dY.v (* dY.v (floor dX.u)))))) (/ (* (floor w) h) (sqrt (fmax (+ (* (floor w) (* h (* (floor w) h))) (* (floor dX.u) (* dX.v (* dX.v (floor dX.u))))) (+ (* (floor w) (* dY.u (* (floor w) dY.u))) (* (floor dX.u) (* dY.v (* dY.v (floor dX.u)))))))) (/ (* (floor w) dY.u) (sqrt (fmax (+ (* (floor w) (* h (* (floor w) h))) (* (floor dX.u) (* dX.v (* dX.v (floor dX.u))))) (+ (* (floor w) (* dY.u (* (floor w) dY.u))) (* (floor dX.u) (* dY.v (* dY.v (floor dX.u)))))))))
(if (>= (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor dX.v) h) (* (floor dX.v) h))) (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor dX.v) dY.v) (* (floor dX.v) dY.v)))) (* (/ 1 (sqrt (fmax (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor dX.v) h) (* (floor dX.v) h))) (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor dX.v) dY.v) (* (floor dX.v) dY.v)))))) (* (floor w) dX.u)) (* (/ 1 (sqrt (fmax (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor dX.v) h) (* (floor dX.v) h))) (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor dX.v) dY.v) (* (floor dX.v) dY.v)))))) (* (floor w) dY.u)))
(if (>= (+ (* (floor w) (* dX.u (* (floor w) dX.u))) (* (* h (floor dX.v)) (* h (floor dX.v)))) (+ (* (floor w) (* dY.u (* (floor w) dY.u))) (* (floor dX.v) (* dY.v (* dY.v (floor dX.v)))))) (/ (* (floor w) dX.u) (sqrt (fmax (+ (* (floor w) (* dX.u (* (floor w) dX.u))) (* (* h (floor dX.v)) (* h (floor dX.v)))) (+ (* (floor w) (* dY.u (* (floor w) dY.u))) (* (floor dX.v) (* dY.v (* dY.v (floor dX.v)))))))) (/ (* (floor w) dY.u) (sqrt (fmax (+ (* (floor w) (* dX.u (* (floor w) dX.u))) (* (* h (floor dX.v)) (* h (floor dX.v)))) (+ (* (floor w) (* dY.u (* (floor w) dY.u))) (* (floor dX.v) (* dY.v (* dY.v (floor dX.v)))))))))
(if (>= (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor dY.u) dX.v) (* (floor dY.u) dX.v))) (+ (* (* (floor w) h) (* (floor w) h)) (* (* (floor dY.u) dY.v) (* (floor dY.u) dY.v)))) (* (/ 1 (sqrt (fmax (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor dY.u) dX.v) (* (floor dY.u) dX.v))) (+ (* (* (floor w) h) (* (floor w) h)) (* (* (floor dY.u) dY.v) (* (floor dY.u) dY.v)))))) (* (floor w) dX.u)) (* (/ 1 (sqrt (fmax (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor dY.u) dX.v) (* (floor dY.u) dX.v))) (+ (* (* (floor w) h) (* (floor w) h)) (* (* (floor dY.u) dY.v) (* (floor dY.u) dY.v)))))) (* (floor w) h)))
(if (>= (+ (* (floor w) (* dX.u (* (floor w) dX.u))) (* (floor dY.u) (* dX.v (* dX.v (floor dY.u))))) (+ (* (floor w) (* h (* (floor w) h))) (* (* dY.v (floor dY.u)) (* dY.v (floor dY.u))))) (/ (* (floor w) dX.u) (sqrt (fmax (+ (* (floor w) (* dX.u (* (floor w) dX.u))) (* (floor dY.u) (* dX.v (* dX.v (floor dY.u))))) (+ (* (floor w) (* h (* (floor w) h))) (* (* dY.v (floor dY.u)) (* dY.v (floor dY.u))))))) (/ (* (floor w) h) (sqrt (fmax (+ (* (floor w) (* dX.u (* (floor w) dX.u))) (* (floor dY.u) (* dX.v (* dX.v (floor dY.u))))) (+ (* (floor w) (* h (* (floor w) h))) (* (* dY.v (floor dY.u)) (* dY.v (floor dY.u))))))))
(if (>= (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor dY.v) dX.v) (* (floor dY.v) dX.v))) (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor dY.v) h) (* (floor dY.v) h)))) (* (/ 1 (sqrt (fmax (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor dY.v) dX.v) (* (floor dY.v) dX.v))) (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor dY.v) h) (* (floor dY.v) h)))))) (* (floor w) dX.u)) (* (/ 1 (sqrt (fmax (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor dY.v) dX.v) (* (floor dY.v) dX.v))) (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor dY.v) h) (* (floor dY.v) h)))))) (* (floor w) dY.u)))
(if (>= (+ (* (floor w) (* dX.u (* (floor w) dX.u))) (* (* dX.v (floor dY.v)) (* dX.v (floor dY.v)))) (+ (* (floor w) (* dY.u (* (floor w) dY.u))) (* (* h (floor dY.v)) (* h (floor dY.v))))) (/ (* (floor w) dX.u) (sqrt (fmax (+ (* (floor w) (* dX.u (* (floor w) dX.u))) (* (* dX.v (floor dY.v)) (* dX.v (floor dY.v)))) (+ (* (floor w) (* dY.u (* (floor w) dY.u))) (* (* h (floor dY.v)) (* h (floor dY.v))))))) (/ (* (floor w) dY.u) (sqrt (fmax (+ (* (floor w) (* dX.u (* (floor w) dX.u))) (* (* dX.v (floor dY.v)) (* dX.v (floor dY.v)))) (+ (* (floor w) (* dY.u (* (floor w) dY.u))) (* (* h (floor dY.v)) (* h (floor dY.v))))))))
(if (>= (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor maxAniso) dX.v) (* (floor maxAniso) dX.v))) (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor maxAniso) dY.v) (* (floor maxAniso) dY.v)))) (* (/ 1 (sqrt (fmax (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor maxAniso) dX.v) (* (floor maxAniso) dX.v))) (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor maxAniso) dY.v) (* (floor maxAniso) dY.v)))))) (* (floor w) dX.u)) (* (/ 1 (sqrt (fmax (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor maxAniso) dX.v) (* (floor maxAniso) dX.v))) (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor maxAniso) dY.v) (* (floor maxAniso) dY.v)))))) (* (floor w) dY.u)))
(if (>= (+ (* (floor w) (* dX.u (* (floor w) dX.u))) (* (floor maxAniso) (* dX.v (* dX.v (floor maxAniso))))) (+ (* (floor w) (* dY.u (* (floor w) dY.u))) (* (floor maxAniso) (* dY.v (* dY.v (floor maxAniso)))))) (/ (* (floor w) dX.u) (sqrt (fmax (+ (* (floor w) (* dX.u (* (floor w) dX.u))) (* (floor maxAniso) (* dX.v (* dX.v (floor maxAniso))))) (+ (* (floor w) (* dY.u (* (floor w) dY.u))) (* (floor maxAniso) (* dY.v (* dY.v (floor maxAniso)))))))) (/ (* (floor w) dY.u) (sqrt (fmax (+ (* (floor w) (* dX.u (* (floor w) dX.u))) (* (floor maxAniso) (* dX.v (* dX.v (floor maxAniso))))) (+ (* (floor w) (* dY.u (* (floor w) dY.u))) (* (floor maxAniso) (* dY.v (* dY.v (floor maxAniso)))))))))
(if (>= (+ (* (* (floor w) dX.v) (* (floor w) dX.v)) (* (* (floor h) dX.u) (* (floor h) dX.u))) (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v)))) (* (/ 1 (sqrt (fmax (+ (* (* (floor w) dX.v) (* (floor w) dX.v)) (* (* (floor h) dX.u) (* (floor h) dX.u))) (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v)))))) (* (floor w) dX.v)) (* (/ 1 (sqrt (fmax (+ (* (* (floor w) dX.v) (* (floor w) dX.v)) (* (* (floor h) dX.u) (* (floor h) dX.u))) (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v)))))) (* (floor w) dY.u)))
(if (>= (+ (* (floor h) (* dX.u (* dX.u (floor h)))) (* (floor w) (* dX.v (* (floor w) dX.v)))) (+ (* (floor w) (* dY.u (* (floor w) dY.u))) (* (floor h) (* dY.v (* (floor h) dY.v))))) (/ (* (floor w) dX.v) (sqrt (fmax (+ (* (floor h) (* dX.u (* dX.u (floor h)))) (* (floor w) (* dX.v (* (floor w) dX.v)))) (+ (* (floor w) (* dY.u (* (floor w) dY.u))) (* (floor h) (* dY.v (* (floor h) dY.v))))))) (/ (* (floor w) dY.u) (sqrt (fmax (+ (* (floor h) (* dX.u (* dX.u (floor h)))) (* (floor w) (* dX.v (* (floor w) dX.v)))) (+ (* (floor w) (* dY.u (* (floor w) dY.u))) (* (floor h) (* dY.v (* (floor h) dY.v))))))))
(if (>= (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dY.v) (* (floor h) dY.v)))) (* (/ 1 (sqrt (fmax (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dY.v) (* (floor h) dY.v)))))) (* (floor w) dY.u)) (* (/ 1 (sqrt (fmax (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dY.v) (* (floor h) dY.v)))))) (* (floor w) dX.u)))
(if (>= (+ (* (floor h) (* (floor h) (* dX.v dX.v))) (* (floor w) (* dY.u (* (floor w) dY.u)))) (+ (* (floor w) (* dX.u (* (floor w) dX.u))) (* (floor h) (* dY.v (* (floor h) dY.v))))) (/ (* (floor w) dY.u) (sqrt (fmax (+ (* (floor h) (* (floor h) (* dX.v dX.v))) (* (floor w) (* dY.u (* (floor w) dY.u)))) (+ (* (floor w) (* dX.u (* (floor w) dX.u))) (* (floor h) (* dY.v (* (floor h) dY.v))))))) (/ (* (floor w) dX.u) (sqrt (fmax (+ (* (floor h) (* (floor h) (* dX.v dX.v))) (* (floor w) (* dY.u (* (floor w) dY.u)))) (+ (* (floor w) (* dX.u (* (floor w) dX.u))) (* (floor h) (* dY.v (* (floor h) dY.v))))))))
(if (>= (+ (* (* (floor w) dY.v) (* (floor w) dY.v)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor h) dX.u) (* (floor h) dX.u)))) (* (/ 1 (sqrt (fmax (+ (* (* (floor w) dY.v) (* (floor w) dY.v)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor h) dX.u) (* (floor h) dX.u)))))) (* (floor w) dY.v)) (* (/ 1 (sqrt (fmax (+ (* (* (floor w) dY.v) (* (floor w) dY.v)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor h) dX.u) (* (floor h) dX.u)))))) (* (floor w) dY.u)))
(if (>= (+ (* (floor h) (* (floor h) (* dX.v dX.v))) (* (* (floor w) dY.v) (* (floor w) dY.v))) (+ (* (floor w) (* dY.u (* (floor w) dY.u))) (* (floor h) (* dX.u (* dX.u (floor h)))))) (/ (* (floor w) dY.v) (sqrt (fmax (+ (* (floor h) (* (floor h) (* dX.v dX.v))) (* (* (floor w) dY.v) (* (floor w) dY.v))) (+ (* (floor w) (* dY.u (* (floor w) dY.u))) (* (floor h) (* dX.u (* dX.u (floor h)))))))) (/ (* (floor w) dY.u) (sqrt (fmax (+ (* (floor h) (* (floor h) (* dX.v dX.v))) (* (* (floor w) dY.v) (* (floor w) dY.v))) (+ (* (floor w) (* dY.u (* (floor w) dY.u))) (* (floor h) (* dX.u (* dX.u (floor h)))))))))
(if (>= (+ (* (* (floor w) maxAniso) (* (floor w) maxAniso)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v)))) (* (/ 1 (sqrt (fmax (+ (* (* (floor w) maxAniso) (* (floor w) maxAniso)) (* (* (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) maxAniso)) (* (/ 1 (sqrt (fmax (+ (* (* (floor w) maxAniso) (* (floor w) maxAniso)) (* (* (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) dY.u)))
(if (>= (+ (* (floor h) (* (floor h) (* dX.v dX.v))) (* (floor w) (* maxAniso (* (floor w) maxAniso)))) (+ (* (floor w) (* dY.u (* (floor w) dY.u))) (* (floor h) (* dY.v (* (floor h) dY.v))))) (/ (* (floor w) maxAniso) (sqrt (fmax (+ (* (floor h) (* (floor h) (* dX.v dX.v))) (* (floor w) (* maxAniso (* (floor w) maxAniso)))) (+ (* (floor w) (* dY.u (* (floor w) dY.u))) (* (floor h) (* dY.v (* (floor h) dY.v))))))) (/ (* (floor w) dY.u) (sqrt (fmax (+ (* (floor h) (* (floor h) (* dX.v dX.v))) (* (floor w) (* maxAniso (* (floor w) maxAniso)))) (+ (* (floor w) (* dY.u (* (floor w) dY.u))) (* (floor h) (* dY.v (* (floor h) dY.v))))))))
(if (>= (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dY.u) (* (floor h) dY.u))) (+ (* (* (floor w) dX.v) (* (floor w) dX.v)) (* (* (floor h) dY.v) (* (floor h) dY.v)))) (* (/ 1 (sqrt (fmax (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dY.u) (* (floor h) dY.u))) (+ (* (* (floor w) dX.v) (* (floor w) dX.v)) (* (* (floor h) dY.v) (* (floor h) dY.v)))))) (* (floor w) dX.u)) (* (/ 1 (sqrt (fmax (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dY.u) (* (floor h) dY.u))) (+ (* (* (floor w) dX.v) (* (floor w) dX.v)) (* (* (floor h) dY.v) (* (floor h) dY.v)))))) (* (floor w) dX.v)))
(if (>= (+ (* (floor w) (* dX.u (* (floor w) dX.u))) (* (floor h) (* dY.u (* (floor h) dY.u)))) (+ (* (floor h) (* dY.v (* (floor h) dY.v))) (* (floor w) (* dX.v (* (floor w) dX.v))))) (/ (* (floor w) dX.u) (sqrt (fmax (+ (* (floor w) (* dX.u (* (floor w) dX.u))) (* (floor h) (* dY.u (* (floor h) dY.u)))) (+ (* (floor h) (* dY.v (* (floor h) dY.v))) (* (floor w) (* dX.v (* (floor w) dX.v))))))) (/ (* (floor w) dX.v) (sqrt (fmax (+ (* (floor w) (* dX.u (* (floor w) dX.u))) (* (floor h) (* dY.u (* (floor h) dY.u)))) (+ (* (floor h) (* dY.v (* (floor h) dY.v))) (* (floor w) (* dX.v (* (floor w) dX.v))))))))
(if (>= (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dY.v) (* (floor h) dY.v))) (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor h) dX.v) (* (floor h) dX.v)))) (* (/ 1 (sqrt (fmax (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dY.v) (* (floor h) dY.v))) (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor h) dX.v) (* (floor h) dX.v)))))) (* (floor w) dX.u)) (* (/ 1 (sqrt (fmax (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dY.v) (* (floor h) dY.v))) (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor h) dX.v) (* (floor h) dX.v)))))) (* (floor w) dY.u)))
(if (>= (+ (* (floor w) (* dX.u (* (floor w) dX.u))) (* (floor h) (* dY.v (* (floor h) dY.v)))) (+ (* (floor h) (* (floor h) (* dX.v dX.v))) (* (floor w) (* dY.u (* (floor w) dY.u))))) (/ (* (floor w) dX.u) (sqrt (fmax (+ (* (floor w) (* dX.u (* (floor w) dX.u))) (* (floor h) (* dY.v (* (floor h) dY.v)))) (+ (* (floor h) (* (floor h) (* dX.v dX.v))) (* (floor w) (* dY.u (* (floor w) dY.u))))))) (/ (* (floor w) dY.u) (sqrt (fmax (+ (* (floor w) (* dX.u (* (floor w) dX.u))) (* (floor h) (* dY.v (* (floor h) dY.v)))) (+ (* (floor h) (* (floor h) (* dX.v dX.v))) (* (floor w) (* dY.u (* (floor w) dY.u))))))))
(if (>= (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) maxAniso) (* (floor h) maxAniso))) (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v)))) (* (/ 1 (sqrt (fmax (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) maxAniso) (* (floor h) maxAniso))) (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v)))))) (* (floor w) dX.u)) (* (/ 1 (sqrt (fmax (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) maxAniso) (* (floor h) maxAniso))) (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v)))))) (* (floor w) dY.u)))
(if (>= (+ (* (floor w) (* dX.u (* (floor w) dX.u))) (* (floor h) (* maxAniso (* (floor h) maxAniso)))) (+ (* (floor w) (* dY.u (* (floor w) dY.u))) (* (floor h) (* dY.v (* (floor h) dY.v))))) (/ (* (floor w) dX.u) (sqrt (fmax (+ (* (floor w) (* dX.u (* (floor w) dX.u))) (* (floor h) (* maxAniso (* (floor h) maxAniso)))) (+ (* (floor w) (* dY.u (* (floor w) dY.u))) (* (floor h) (* dY.v (* (floor h) dY.v))))))) (/ (* (floor w) dY.u) (sqrt (fmax (+ (* (floor w) (* dX.u (* (floor w) dX.u))) (* (floor h) (* maxAniso (* (floor h) maxAniso)))) (+ (* (floor w) (* dY.u (* (floor w) dY.u))) (* (floor h) (* dY.v (* (floor h) dY.v))))))))
(if (>= (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (+ (* (* (floor w) dY.v) (* (floor w) dY.v)) (* (* (floor h) dY.u) (* (floor h) dY.u)))) (* (/ 1 (sqrt (fmax (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (+ (* (* (floor w) dY.v) (* (floor w) dY.v)) (* (* (floor h) dY.u) (* (floor h) dY.u)))))) (* (floor w) dX.u)) (* (/ 1 (sqrt (fmax (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (+ (* (* (floor w) dY.v) (* (floor w) dY.v)) (* (* (floor h) dY.u) (* (floor h) dY.u)))))) (* (floor w) dY.v)))
(if (>= (+ (* (floor w) (* dX.u (* (floor w) dX.u))) (* (floor h) (* (floor h) (* dX.v dX.v)))) (+ (* (floor h) (* dY.u (* (floor h) dY.u))) (* (* (floor w) dY.v) (* (floor w) dY.v)))) (/ (* (floor w) dX.u) (sqrt (fmax (+ (* (floor w) (* dX.u (* (floor w) dX.u))) (* (floor h) (* (floor h) (* dX.v dX.v)))) (+ (* (floor h) (* dY.u (* (floor h) dY.u))) (* (* (floor w) dY.v) (* (floor w) dY.v)))))) (/ (* (floor w) dY.v) (sqrt (fmax (+ (* (floor w) (* dX.u (* (floor w) dX.u))) (* (floor h) (* (floor h) (* dX.v dX.v)))) (+ (* (floor h) (* dY.u (* (floor h) dY.u))) (* (* (floor w) dY.v) (* (floor w) dY.v)))))))
(if (>= (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (+ (* (* (floor w) maxAniso) (* (floor w) maxAniso)) (* (* (floor h) dY.v) (* (floor h) dY.v)))) (* (/ 1 (sqrt (fmax (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (+ (* (* (floor w) maxAniso) (* (floor w) maxAniso)) (* (* (floor h) dY.v) (* (floor h) dY.v)))))) (* (floor w) dX.u)) (* (/ 1 (sqrt (fmax (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (+ (* (* (floor w) maxAniso) (* (floor w) maxAniso)) (* (* (floor h) dY.v) (* (floor h) dY.v)))))) (* (floor w) maxAniso)))
(if (>= (+ (* (floor w) (* dX.u (* (floor w) dX.u))) (* (floor h) (* (floor h) (* dX.v dX.v)))) (+ (* (floor h) (* dY.v (* (floor h) dY.v))) (* (floor w) (* maxAniso (* (floor w) maxAniso))))) (/ (* (floor w) dX.u) (sqrt (fmax (+ (* (floor w) (* dX.u (* (floor w) dX.u))) (* (floor h) (* (floor h) (* dX.v dX.v)))) (+ (* (floor h) (* dY.v (* (floor h) dY.v))) (* (floor w) (* maxAniso (* (floor w) maxAniso))))))) (/ (* (floor w) maxAniso) (sqrt (fmax (+ (* (floor w) (* dX.u (* (floor w) dX.u))) (* (floor h) (* (floor h) (* dX.v dX.v)))) (+ (* (floor h) (* dY.v (* (floor h) dY.v))) (* (floor w) (* maxAniso (* (floor w) maxAniso))))))))
(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) maxAniso) (* (floor h) maxAniso)))) (* (/ 1 (sqrt (fmax (+ (* (* (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) maxAniso) (* (floor h) maxAniso)))))) (* (floor w) dX.u)) (* (/ 1 (sqrt (fmax (+ (* (* (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) maxAniso) (* (floor h) maxAniso)))))) (* (floor w) dY.u)))
(if (>= (+ (* (floor w) (* dX.u (* (floor w) dX.u))) (* (floor h) (* (floor h) (* dX.v dX.v)))) (+ (* (floor w) (* dY.u (* (floor w) dY.u))) (* (floor h) (* maxAniso (* (floor h) maxAniso))))) (/ (* (floor w) dX.u) (sqrt (fmax (+ (* (floor w) (* dX.u (* (floor w) dX.u))) (* (floor h) (* (floor h) (* dX.v dX.v)))) (+ (* (floor w) (* dY.u (* (floor w) dY.u))) (* (floor h) (* maxAniso (* (floor h) maxAniso))))))) (/ (* (floor w) dY.u) (sqrt (fmax (+ (* (floor w) (* dX.u (* (floor w) dX.u))) (* (floor h) (* (floor h) (* dX.v dX.v)))) (+ (* (floor w) (* dY.u (* (floor w) dY.u))) (* (floor h) (* maxAniso (* (floor h) maxAniso))))))))
Symmetry

(abs dX.v)

(abs dY.v)

(abs maxAniso)

explain46.0ms (0.9%)

Memory
-15.0MiB live, 61.2MiB allocated
Samples
8.0ms49×0valid
Compiler

Compiled 491 to 29 computations (94.1% saved)

Precisions
Click to see histograms. Total time spent on operations: 5.0ms
ival-mult: 3.0ms (59.5% of total)
ival-floor: 1.0ms (19.8% of total)
ival-fmax: 0.0ms (0% of total)
ival-div: 0.0ms (0% of total)
ival-add: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)
ival-if: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
ival->=: 0.0ms (0% of total)
ival-sqrt: 0.0ms (0% of total)
exact: 0.0ms (0% of total)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...