UniformSampleCone, y

Time bar (total: 4.0s)

analyze288.0ms (7.2%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%0.1%99.9%0%0%0%0
0%0%0.1%99.9%0%0%0%1
0%0%0.1%99.9%0%0%0%2
0%0%0.1%99.9%0%0%0%3
50%0%0%99.9%0%0%0%4
50%0%0%99.9%0%0%0%5
50%0%0%99.9%0%0%0%6
75%0.1%0%99.9%0%0%0%7
75%0.1%0%99.9%0%0%0%8
75%0.1%0%99.9%0%0%0%9
87.5%0.1%0%99.9%0%0%0%10
87.5%0.1%0%99.9%0%0%0%11
87.5%0.1%0%99.9%0%0%0%12
Compiler

Compiled 51 to 37 computations (27.5% saved)

Precisions
Click to see histograms. Total time spent on operations: 110.0ms
Operation ival-mult, time spent: 30.0ms, 27.0% of total-time
Operation ival-add, time spent: 23.0ms, 21.0% of total-time
Operation ival-<=, time spent: 16.0ms, 15.0% of total-time
Operation ival-sin, time spent: 13.0ms, 12.0% of total-time
Operation ival-sub, time spent: 11.0ms, 10.0% of total-time
Operation ival-sqrt, time spent: 5.0ms, 5.0% of total-time
Operation ival-and, time spent: 4.0ms, 4.0% of total-time
Operation const, time spent: 4.0ms, 4.0% of total-time
Operation ival-pi, time spent: 3.0ms, 3.0% of total-time

sample3.3s (81.1%)

Results
2.9s8255×256valid
0.0ms256valid
Precisions
Click to see histograms. Total time spent on operations: 1.6s
Operation ival-<=, time spent: 452.0ms, 29.0% of total-time
Operation ival-mult, time spent: 413.0ms, 26.0% of total-time
Operation ival-sub, time spent: 231.0ms, 15.0% of total-time
Operation ival-sin, time spent: 177.0ms, 11.0% of total-time
Operation ival-add, time spent: 87.0ms, 6.0% of total-time
Operation ival-sqrt, time spent: 66.0ms, 4.0% of total-time
Operation const, time spent: 48.0ms, 3.0% of total-time
Operation ival-and, time spent: 47.0ms, 3.0% of total-time
Operation ival-pi, time spent: 43.0ms, 3.0% of total-time
Bogosity

preprocess470.0ms (11.7%)

Algorithm
egg-herbie
Rules
482×neg-sub0
438×distribute-neg-in
415×+-commutative
339×distribute-rgt-in
314×distribute-lft-in
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0721138
12231030
2774961
33605955
47723955
Stop Event
node limit
Calls
Call 1
Inputs
(*.f32 (sin.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 (-.f32 #s(literal 1 binary32) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))))
(*.f32 (sin.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 (-.f32 #s(literal 1 binary32) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))))
(*.f32 (sin.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 (-.f32 #s(literal 1 binary32) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) (neg.f32 ux)) (*.f32 (neg.f32 ux) maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) (neg.f32 ux)) (*.f32 (neg.f32 ux) maxCos))))))
(*.f32 (sin.f32 (*.f32 (*.f32 (neg.f32 uy) #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 (-.f32 #s(literal 1 binary32) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))))
(*.f32 (sin.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 (-.f32 #s(literal 1 binary32) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux (neg.f32 maxCos))) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux (neg.f32 maxCos)))))))
(neg.f32 (*.f32 (sin.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 (-.f32 #s(literal 1 binary32) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) (neg.f32 ux)) (*.f32 (neg.f32 ux) maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) (neg.f32 ux)) (*.f32 (neg.f32 ux) maxCos)))))))
(neg.f32 (*.f32 (sin.f32 (*.f32 (*.f32 (neg.f32 uy) #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 (-.f32 #s(literal 1 binary32) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)))))))
(neg.f32 (*.f32 (sin.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 (-.f32 #s(literal 1 binary32) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux (neg.f32 maxCos))) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux (neg.f32 maxCos))))))))
(*.f32 (sin.f32 (*.f32 (*.f32 ux #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 (-.f32 #s(literal 1 binary32) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) uy) (*.f32 uy maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) uy) (*.f32 uy maxCos))))))
(*.f32 (sin.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 (-.f32 #s(literal 1 binary32) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) maxCos) (*.f32 maxCos ux)) (+.f32 (-.f32 #s(literal 1 binary32) maxCos) (*.f32 maxCos ux))))))
(*.f32 (sin.f32 (*.f32 (*.f32 maxCos #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 (-.f32 #s(literal 1 binary32) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux uy)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux uy))))))
Outputs
(*.f32 (sin.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 (-.f32 #s(literal 1 binary32) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))))
(*.f32 (sin.f32 (*.f32 #s(literal 2 binary32) (*.f32 uy (PI.f32)))) (sqrt.f32 (-.f32 #s(literal 1 binary32) (*.f32 (fma.f32 ux maxCos (-.f32 #s(literal 1 binary32) ux)) (fma.f32 ux maxCos (-.f32 #s(literal 1 binary32) ux))))))
(*.f32 (sin.f32 (*.f32 uy (*.f32 #s(literal 2 binary32) (PI.f32)))) (sqrt.f32 (fma.f32 (fma.f32 ux maxCos (-.f32 #s(literal 1 binary32) ux)) (-.f32 #s(literal -1 binary32) (*.f32 ux (+.f32 maxCos #s(literal -1 binary32)))) #s(literal 1 binary32))))
(*.f32 (sin.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 (-.f32 #s(literal 1 binary32) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))))
(*.f32 (sin.f32 (*.f32 #s(literal 2 binary32) (*.f32 uy (PI.f32)))) (sqrt.f32 (-.f32 #s(literal 1 binary32) (*.f32 (fma.f32 ux maxCos (-.f32 #s(literal 1 binary32) ux)) (fma.f32 ux maxCos (-.f32 #s(literal 1 binary32) ux))))))
(*.f32 (sin.f32 (*.f32 uy (*.f32 #s(literal 2 binary32) (PI.f32)))) (sqrt.f32 (fma.f32 (fma.f32 ux maxCos (-.f32 #s(literal 1 binary32) ux)) (-.f32 #s(literal -1 binary32) (*.f32 ux (+.f32 maxCos #s(literal -1 binary32)))) #s(literal 1 binary32))))
(*.f32 (sin.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 (-.f32 #s(literal 1 binary32) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) (neg.f32 ux)) (*.f32 (neg.f32 ux) maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) (neg.f32 ux)) (*.f32 (neg.f32 ux) maxCos))))))
(*.f32 (sin.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 (-.f32 #s(literal 1 binary32) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) (neg.f32 ux)) (*.f32 ux (neg.f32 maxCos))) (+.f32 (-.f32 #s(literal 1 binary32) (neg.f32 ux)) (*.f32 ux (neg.f32 maxCos)))))))
(*.f32 (sin.f32 (*.f32 #s(literal 2 binary32) (*.f32 uy (PI.f32)))) (sqrt.f32 (-.f32 #s(literal 1 binary32) (*.f32 (+.f32 #s(literal 1 binary32) (-.f32 ux (*.f32 ux maxCos))) (+.f32 #s(literal 1 binary32) (-.f32 ux (*.f32 ux maxCos)))))))
(*.f32 (sin.f32 (*.f32 uy (*.f32 #s(literal 2 binary32) (PI.f32)))) (sqrt.f32 (fma.f32 (-.f32 #s(literal 1 binary32) (*.f32 ux (+.f32 maxCos #s(literal -1 binary32)))) (+.f32 #s(literal -1 binary32) (*.f32 ux (+.f32 maxCos #s(literal -1 binary32)))) #s(literal 1 binary32))))
(*.f32 (sin.f32 (*.f32 uy (*.f32 #s(literal 2 binary32) (PI.f32)))) (sqrt.f32 (fma.f32 (-.f32 ux (fma.f32 ux maxCos #s(literal -1 binary32))) (-.f32 (fma.f32 ux maxCos #s(literal -1 binary32)) ux) #s(literal 1 binary32))))
(*.f32 (sin.f32 (*.f32 (*.f32 (neg.f32 uy) #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 (-.f32 #s(literal 1 binary32) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))))
(*.f32 (sqrt.f32 (-.f32 #s(literal 1 binary32) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))) (sin.f32 (*.f32 (PI.f32) (*.f32 #s(literal 2 binary32) (neg.f32 uy)))))
(*.f32 (sqrt.f32 (-.f32 #s(literal 1 binary32) (*.f32 (fma.f32 ux maxCos (-.f32 #s(literal 1 binary32) ux)) (fma.f32 ux maxCos (-.f32 #s(literal 1 binary32) ux))))) (sin.f32 (*.f32 (PI.f32) (*.f32 uy #s(literal -2 binary32)))))
(*.f32 (sqrt.f32 (fma.f32 (fma.f32 ux maxCos (-.f32 #s(literal 1 binary32) ux)) (-.f32 #s(literal -1 binary32) (*.f32 ux (+.f32 maxCos #s(literal -1 binary32)))) #s(literal 1 binary32))) (sin.f32 (*.f32 uy (*.f32 #s(literal -2 binary32) (PI.f32)))))
(*.f32 (sqrt.f32 (fma.f32 (fma.f32 ux maxCos (-.f32 #s(literal 1 binary32) ux)) (-.f32 #s(literal -1 binary32) (*.f32 ux (+.f32 maxCos #s(literal -1 binary32)))) #s(literal 1 binary32))) (sin.f32 (*.f32 uy (*.f32 (PI.f32) #s(literal -2 binary32)))))
(*.f32 (sin.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 (-.f32 #s(literal 1 binary32) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux (neg.f32 maxCos))) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux (neg.f32 maxCos)))))))
(*.f32 (sin.f32 (*.f32 #s(literal 2 binary32) (*.f32 uy (PI.f32)))) (sqrt.f32 (-.f32 #s(literal 1 binary32) (*.f32 (-.f32 #s(literal 1 binary32) (+.f32 ux (*.f32 ux maxCos))) (-.f32 #s(literal 1 binary32) (+.f32 ux (*.f32 ux maxCos)))))))
(*.f32 (sin.f32 (*.f32 uy (*.f32 #s(literal 2 binary32) (PI.f32)))) (sqrt.f32 (fma.f32 (-.f32 #s(literal 1 binary32) (*.f32 ux (+.f32 #s(literal 1 binary32) maxCos))) (+.f32 #s(literal -1 binary32) (*.f32 ux (+.f32 #s(literal 1 binary32) maxCos))) #s(literal 1 binary32))))
(*.f32 (sin.f32 (*.f32 uy (*.f32 #s(literal 2 binary32) (PI.f32)))) (sqrt.f32 (fma.f32 (+.f32 #s(literal 1 binary32) (*.f32 ux (-.f32 #s(literal -1 binary32) maxCos))) (+.f32 ux (fma.f32 ux maxCos #s(literal -1 binary32))) #s(literal 1 binary32))))
(neg.f32 (*.f32 (sin.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 (-.f32 #s(literal 1 binary32) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) (neg.f32 ux)) (*.f32 (neg.f32 ux) maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) (neg.f32 ux)) (*.f32 (neg.f32 ux) maxCos)))))))
(*.f32 (sin.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (neg.f32 (sqrt.f32 (-.f32 #s(literal 1 binary32) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) (neg.f32 ux)) (*.f32 ux (neg.f32 maxCos))) (+.f32 (-.f32 #s(literal 1 binary32) (neg.f32 ux)) (*.f32 ux (neg.f32 maxCos))))))))
(*.f32 (sqrt.f32 (-.f32 #s(literal 1 binary32) (*.f32 (+.f32 #s(literal 1 binary32) (-.f32 ux (*.f32 ux maxCos))) (+.f32 #s(literal 1 binary32) (-.f32 ux (*.f32 ux maxCos)))))) (neg.f32 (sin.f32 (*.f32 #s(literal 2 binary32) (*.f32 uy (PI.f32))))))
(*.f32 (sqrt.f32 (fma.f32 (-.f32 #s(literal 1 binary32) (*.f32 ux (+.f32 maxCos #s(literal -1 binary32)))) (+.f32 #s(literal -1 binary32) (*.f32 ux (+.f32 maxCos #s(literal -1 binary32)))) #s(literal 1 binary32))) (sin.f32 (*.f32 uy (*.f32 #s(literal -2 binary32) (PI.f32)))))
(*.f32 (sqrt.f32 (fma.f32 (-.f32 ux (fma.f32 ux maxCos #s(literal -1 binary32))) (-.f32 (fma.f32 ux maxCos #s(literal -1 binary32)) ux) #s(literal 1 binary32))) (sin.f32 (*.f32 uy (*.f32 (PI.f32) #s(literal -2 binary32)))))
(neg.f32 (*.f32 (sin.f32 (*.f32 (*.f32 (neg.f32 uy) #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 (-.f32 #s(literal 1 binary32) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)))))))
(*.f32 (sin.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 (-.f32 #s(literal 1 binary32) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))))
(*.f32 (sin.f32 (*.f32 #s(literal 2 binary32) (*.f32 uy (PI.f32)))) (sqrt.f32 (-.f32 #s(literal 1 binary32) (*.f32 (fma.f32 ux maxCos (-.f32 #s(literal 1 binary32) ux)) (fma.f32 ux maxCos (-.f32 #s(literal 1 binary32) ux))))))
(*.f32 (sin.f32 (*.f32 uy (*.f32 #s(literal 2 binary32) (PI.f32)))) (sqrt.f32 (fma.f32 (fma.f32 ux maxCos (-.f32 #s(literal 1 binary32) ux)) (-.f32 #s(literal -1 binary32) (*.f32 ux (+.f32 maxCos #s(literal -1 binary32)))) #s(literal 1 binary32))))
(neg.f32 (*.f32 (sin.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 (-.f32 #s(literal 1 binary32) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux (neg.f32 maxCos))) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux (neg.f32 maxCos))))))))
(*.f32 (neg.f32 (sin.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))) (sqrt.f32 (-.f32 #s(literal 1 binary32) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux (neg.f32 maxCos))) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux (neg.f32 maxCos)))))))
(*.f32 (sqrt.f32 (-.f32 #s(literal 1 binary32) (*.f32 (-.f32 #s(literal 1 binary32) (+.f32 ux (*.f32 ux maxCos))) (-.f32 #s(literal 1 binary32) (+.f32 ux (*.f32 ux maxCos)))))) (neg.f32 (sin.f32 (*.f32 #s(literal 2 binary32) (*.f32 uy (PI.f32))))))
(*.f32 (sin.f32 (*.f32 uy (*.f32 #s(literal -2 binary32) (PI.f32)))) (sqrt.f32 (fma.f32 (-.f32 #s(literal 1 binary32) (*.f32 ux (+.f32 #s(literal 1 binary32) maxCos))) (+.f32 #s(literal -1 binary32) (*.f32 ux (+.f32 #s(literal 1 binary32) maxCos))) #s(literal 1 binary32))))
(*.f32 (sin.f32 (*.f32 uy (*.f32 (PI.f32) #s(literal -2 binary32)))) (sqrt.f32 (fma.f32 (+.f32 #s(literal 1 binary32) (*.f32 ux (-.f32 #s(literal -1 binary32) maxCos))) (+.f32 ux (fma.f32 ux maxCos #s(literal -1 binary32))) #s(literal 1 binary32))))
(*.f32 (sin.f32 (*.f32 (*.f32 ux #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 (-.f32 #s(literal 1 binary32) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) uy) (*.f32 uy maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) uy) (*.f32 uy maxCos))))))
(*.f32 (sin.f32 (*.f32 (PI.f32) (*.f32 #s(literal 2 binary32) ux))) (sqrt.f32 (-.f32 #s(literal 1 binary32) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) uy) (*.f32 uy maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) uy) (*.f32 uy maxCos))))))
(*.f32 (sin.f32 (*.f32 (PI.f32) (*.f32 #s(literal 2 binary32) ux))) (sqrt.f32 (-.f32 #s(literal 1 binary32) (*.f32 (fma.f32 uy maxCos (-.f32 #s(literal 1 binary32) uy)) (fma.f32 uy maxCos (-.f32 #s(literal 1 binary32) uy))))))
(*.f32 (sin.f32 (*.f32 #s(literal 2 binary32) (*.f32 (PI.f32) ux))) (sqrt.f32 (fma.f32 (-.f32 (fma.f32 uy maxCos #s(literal 1 binary32)) uy) (-.f32 #s(literal -1 binary32) (*.f32 uy (+.f32 maxCos #s(literal -1 binary32)))) #s(literal 1 binary32))))
(*.f32 (sin.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 (-.f32 #s(literal 1 binary32) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) maxCos) (*.f32 maxCos ux)) (+.f32 (-.f32 #s(literal 1 binary32) maxCos) (*.f32 maxCos ux))))))
(*.f32 (sin.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 (-.f32 #s(literal 1 binary32) (*.f32 (+.f32 (*.f32 ux maxCos) (-.f32 #s(literal 1 binary32) maxCos)) (+.f32 (*.f32 ux maxCos) (-.f32 #s(literal 1 binary32) maxCos))))))
(*.f32 (sin.f32 (*.f32 #s(literal 2 binary32) (*.f32 uy (PI.f32)))) (sqrt.f32 (-.f32 #s(literal 1 binary32) (*.f32 (fma.f32 ux maxCos (-.f32 #s(literal 1 binary32) maxCos)) (fma.f32 ux maxCos (-.f32 #s(literal 1 binary32) maxCos))))))
(*.f32 (sin.f32 (*.f32 uy (*.f32 #s(literal 2 binary32) (PI.f32)))) (sqrt.f32 (fma.f32 (-.f32 (fma.f32 ux maxCos #s(literal 1 binary32)) maxCos) (+.f32 #s(literal -1 binary32) (*.f32 (-.f32 #s(literal 1 binary32) ux) maxCos)) #s(literal 1 binary32))))
(*.f32 (sin.f32 (*.f32 (*.f32 maxCos #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 (-.f32 #s(literal 1 binary32) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux uy)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux uy))))))
(*.f32 (sin.f32 (*.f32 (PI.f32) (*.f32 #s(literal 2 binary32) maxCos))) (sqrt.f32 (-.f32 #s(literal 1 binary32) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 uy ux)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 uy ux))))))
(*.f32 (sin.f32 (*.f32 #s(literal 2 binary32) (*.f32 maxCos (PI.f32)))) (sqrt.f32 (-.f32 #s(literal 1 binary32) (*.f32 (fma.f32 uy ux (-.f32 #s(literal 1 binary32) ux)) (fma.f32 uy ux (-.f32 #s(literal 1 binary32) ux))))))
(*.f32 (sin.f32 (*.f32 (PI.f32) (*.f32 #s(literal 2 binary32) maxCos))) (sqrt.f32 (fma.f32 (fma.f32 uy ux (-.f32 #s(literal 1 binary32) ux)) (+.f32 #s(literal -1 binary32) (*.f32 ux (-.f32 #s(literal 1 binary32) uy))) #s(literal 1 binary32))))
Symmetry

(negabs uy)

Compiler

Compiled 131 to 71 computations (45.8% saved)

Precisions
Click to see histograms. Total time spent on operations: 86.0ms
Operation ival-mult, time spent: 24.0ms, 28.0% of total-time
Operation ival-add, time spent: 21.0ms, 24.0% of total-time
Operation ival-sub, time spent: 19.0ms, 22.0% of total-time
Operation ival-sin, time spent: 14.0ms, 16.0% of total-time
Operation ival-sqrt, time spent: 4.0ms, 5.0% of total-time
Operation const, time spent: 3.0ms, 3.0% of total-time
Operation ival-pi, time spent: 2.0ms, 2.0% of total-time

end0.0ms (0%)

Profiling

Loading profile data...