Beckmann Sample, normalization factor

Time bar (total: 3.2s)

analyze32.0ms (1%)

Memory
-5.1MiB live, 10.7MiB allocated
Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%12.3%87.7%0%0%0%0
0%0%12.3%87.7%0%0%0%1
50%6.2%6.2%87.7%0%0%0%2
50%6.2%6.2%87.7%0%0%0%3
75%9.2%3.1%87.7%0%0%0%4
75%9.2%3.1%87.7%0%0%0%5
87.5%10.8%1.5%87.7%0%0%0%6
87.5%10.8%1.5%87.7%0%0%0%7
93.8%11.5%0.8%87.7%0%0%0%8
93.8%11.5%0.8%87.7%0%0%0%9
96.9%11.9%0.4%87.7%0%0%0%10
96.9%11.9%0.4%87.7%0%0%0%11
98.4%12.1%0.2%87.7%0%0%0%12
Compiler

Compiled 55 to 39 computations (29.1% saved)

sample3.0s (93.8%)

Memory
-2.3MiB live, 877.4MiB allocated
Samples
848.0ms8 256×0valid-baseline
817.0ms8 256×0valid-rival
491.0ms8 256×0valid-sollya
Bogosity

preprocess145.0ms (4.5%)

Memory
7.7MiB live, 23.0MiB allocated
Algorithm
egg-herbie
Rules
1 240×div-sub
946×distribute-lft-neg-in
738×fma-define
728×distribute-rgt-neg-in
714×sub-neg
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
052687
1149596
2435592
31471560
44275560
55908560
67649560
Stop Event
node limit
Calls
Call 1
Inputs
(/.f32 #s(literal 1 binary32) (+.f32 (+.f32 #s(literal 1 binary32) c) (*.f32 (*.f32 (/.f32 #s(literal 1 binary32) (sqrt.f32 (PI.f32))) (/.f32 (sqrt.f32 (-.f32 (-.f32 #s(literal 1 binary32) cosTheta) cosTheta)) cosTheta)) (exp.f32 (*.f32 (neg.f32 cosTheta) cosTheta)))))
(/.f32 #s(literal 1 binary32) (+.f32 (+.f32 #s(literal 1 binary32) c) (*.f32 (*.f32 (/.f32 #s(literal 1 binary32) (sqrt.f32 (PI.f32))) (/.f32 (sqrt.f32 (-.f32 (-.f32 #s(literal 1 binary32) cosTheta) cosTheta)) cosTheta)) (exp.f32 (*.f32 (neg.f32 cosTheta) cosTheta)))))
(/.f32 #s(literal 1 binary32) (+.f32 (+.f32 #s(literal 1 binary32) c) (*.f32 (*.f32 (/.f32 #s(literal 1 binary32) (sqrt.f32 (PI.f32))) (/.f32 (sqrt.f32 (-.f32 (-.f32 #s(literal 1 binary32) (neg.f32 cosTheta)) (neg.f32 cosTheta))) (neg.f32 cosTheta))) (exp.f32 (*.f32 (neg.f32 (neg.f32 cosTheta)) (neg.f32 cosTheta))))))
(/.f32 #s(literal 1 binary32) (+.f32 (+.f32 #s(literal 1 binary32) (neg.f32 c)) (*.f32 (*.f32 (/.f32 #s(literal 1 binary32) (sqrt.f32 (PI.f32))) (/.f32 (sqrt.f32 (-.f32 (-.f32 #s(literal 1 binary32) cosTheta) cosTheta)) cosTheta)) (exp.f32 (*.f32 (neg.f32 cosTheta) cosTheta)))))
(neg.f32 (/.f32 #s(literal 1 binary32) (+.f32 (+.f32 #s(literal 1 binary32) c) (*.f32 (*.f32 (/.f32 #s(literal 1 binary32) (sqrt.f32 (PI.f32))) (/.f32 (sqrt.f32 (-.f32 (-.f32 #s(literal 1 binary32) (neg.f32 cosTheta)) (neg.f32 cosTheta))) (neg.f32 cosTheta))) (exp.f32 (*.f32 (neg.f32 (neg.f32 cosTheta)) (neg.f32 cosTheta)))))))
(neg.f32 (/.f32 #s(literal 1 binary32) (+.f32 (+.f32 #s(literal 1 binary32) (neg.f32 c)) (*.f32 (*.f32 (/.f32 #s(literal 1 binary32) (sqrt.f32 (PI.f32))) (/.f32 (sqrt.f32 (-.f32 (-.f32 #s(literal 1 binary32) cosTheta) cosTheta)) cosTheta)) (exp.f32 (*.f32 (neg.f32 cosTheta) cosTheta))))))
(/.f32 #s(literal 1 binary32) (+.f32 (+.f32 #s(literal 1 binary32) cosTheta) (*.f32 (*.f32 (/.f32 #s(literal 1 binary32) (sqrt.f32 (PI.f32))) (/.f32 (sqrt.f32 (-.f32 (-.f32 #s(literal 1 binary32) c) c)) c)) (exp.f32 (*.f32 (neg.f32 c) c)))))
Outputs
(/.f32 #s(literal 1 binary32) (+.f32 (+.f32 #s(literal 1 binary32) c) (*.f32 (*.f32 (/.f32 #s(literal 1 binary32) (sqrt.f32 (PI.f32))) (/.f32 (sqrt.f32 (-.f32 (-.f32 #s(literal 1 binary32) cosTheta) cosTheta)) cosTheta)) (exp.f32 (*.f32 (neg.f32 cosTheta) cosTheta)))))
(/.f32 #s(literal 1 binary32) (+.f32 #s(literal 1 binary32) (+.f32 c (*.f32 (*.f32 (/.f32 #s(literal 1 binary32) (sqrt.f32 (PI.f32))) (/.f32 (sqrt.f32 (-.f32 (-.f32 #s(literal 1 binary32) cosTheta) cosTheta)) cosTheta)) (pow.f32 (exp.f32 cosTheta) (neg.f32 cosTheta))))))
(/.f32 #s(literal 1 binary32) (fma.f32 (/.f32 (/.f32 (sqrt.f32 (+.f32 #s(literal 1 binary32) (*.f32 cosTheta #s(literal -2 binary32)))) cosTheta) (sqrt.f32 (PI.f32))) (pow.f32 (exp.f32 cosTheta) (neg.f32 cosTheta)) (+.f32 #s(literal 1 binary32) c)))
(/.f32 #s(literal 1 binary32) (+.f32 #s(literal 1 binary32) (fma.f32 (/.f32 (sqrt.f32 (+.f32 #s(literal 1 binary32) (*.f32 cosTheta #s(literal -2 binary32)))) (*.f32 (sqrt.f32 (PI.f32)) cosTheta)) (pow.f32 (exp.f32 (neg.f32 cosTheta)) cosTheta) c)))
(/.f32 #s(literal 1 binary32) (+.f32 #s(literal 1 binary32) (fma.f32 (/.f32 (sqrt.f32 (fma.f32 cosTheta #s(literal -2 binary32) #s(literal 1 binary32))) (*.f32 (sqrt.f32 (PI.f32)) cosTheta)) (pow.f32 (exp.f32 (neg.f32 cosTheta)) cosTheta) c)))
(/.f32 #s(literal 1 binary32) (+.f32 (+.f32 #s(literal 1 binary32) c) (*.f32 (*.f32 (/.f32 #s(literal 1 binary32) (sqrt.f32 (PI.f32))) (/.f32 (sqrt.f32 (-.f32 (-.f32 #s(literal 1 binary32) cosTheta) cosTheta)) cosTheta)) (exp.f32 (*.f32 (neg.f32 cosTheta) cosTheta)))))
(/.f32 #s(literal 1 binary32) (+.f32 #s(literal 1 binary32) (+.f32 c (*.f32 (*.f32 (/.f32 #s(literal 1 binary32) (sqrt.f32 (PI.f32))) (/.f32 (sqrt.f32 (-.f32 (-.f32 #s(literal 1 binary32) cosTheta) cosTheta)) cosTheta)) (pow.f32 (exp.f32 cosTheta) (neg.f32 cosTheta))))))
(/.f32 #s(literal 1 binary32) (fma.f32 (/.f32 (/.f32 (sqrt.f32 (+.f32 #s(literal 1 binary32) (*.f32 cosTheta #s(literal -2 binary32)))) cosTheta) (sqrt.f32 (PI.f32))) (pow.f32 (exp.f32 cosTheta) (neg.f32 cosTheta)) (+.f32 #s(literal 1 binary32) c)))
(/.f32 #s(literal 1 binary32) (+.f32 #s(literal 1 binary32) (fma.f32 (/.f32 (sqrt.f32 (+.f32 #s(literal 1 binary32) (*.f32 cosTheta #s(literal -2 binary32)))) (*.f32 (sqrt.f32 (PI.f32)) cosTheta)) (pow.f32 (exp.f32 (neg.f32 cosTheta)) cosTheta) c)))
(/.f32 #s(literal 1 binary32) (+.f32 #s(literal 1 binary32) (fma.f32 (/.f32 (sqrt.f32 (fma.f32 cosTheta #s(literal -2 binary32) #s(literal 1 binary32))) (*.f32 (sqrt.f32 (PI.f32)) cosTheta)) (pow.f32 (exp.f32 (neg.f32 cosTheta)) cosTheta) c)))
(/.f32 #s(literal 1 binary32) (+.f32 (+.f32 #s(literal 1 binary32) c) (*.f32 (*.f32 (/.f32 #s(literal 1 binary32) (sqrt.f32 (PI.f32))) (/.f32 (sqrt.f32 (-.f32 (-.f32 #s(literal 1 binary32) (neg.f32 cosTheta)) (neg.f32 cosTheta))) (neg.f32 cosTheta))) (exp.f32 (*.f32 (neg.f32 (neg.f32 cosTheta)) (neg.f32 cosTheta))))))
(/.f32 #s(literal 1 binary32) (+.f32 (+.f32 #s(literal 1 binary32) c) (*.f32 (/.f32 #s(literal 1 binary32) (sqrt.f32 (PI.f32))) (*.f32 (/.f32 (sqrt.f32 (+.f32 (+.f32 #s(literal 1 binary32) cosTheta) cosTheta)) (neg.f32 cosTheta)) (pow.f32 (exp.f32 cosTheta) (neg.f32 cosTheta))))))
(/.f32 #s(literal 1 binary32) (fma.f32 (pow.f32 (exp.f32 cosTheta) (neg.f32 cosTheta)) (/.f32 (/.f32 (sqrt.f32 (+.f32 #s(literal 1 binary32) (*.f32 #s(literal 2 binary32) cosTheta))) (neg.f32 cosTheta)) (sqrt.f32 (PI.f32))) (+.f32 #s(literal 1 binary32) c)))
(/.f32 #s(literal 1 binary32) (+.f32 (+.f32 #s(literal 1 binary32) c) (/.f32 (/.f32 (sqrt.f32 (+.f32 #s(literal 1 binary32) (*.f32 cosTheta #s(literal 2 binary32)))) (*.f32 (neg.f32 cosTheta) (sqrt.f32 (PI.f32)))) (pow.f32 (exp.f32 cosTheta) cosTheta))))
(/.f32 #s(literal 1 binary32) (-.f32 (+.f32 #s(literal 1 binary32) c) (/.f32 (/.f32 (sqrt.f32 (fma.f32 cosTheta #s(literal 2 binary32) #s(literal 1 binary32))) cosTheta) (*.f32 (sqrt.f32 (PI.f32)) (pow.f32 (exp.f32 cosTheta) cosTheta)))))
(/.f32 #s(literal 1 binary32) (-.f32 #s(literal 1 binary32) (-.f32 (/.f32 (sqrt.f32 (fma.f32 cosTheta #s(literal 2 binary32) #s(literal 1 binary32))) (*.f32 (pow.f32 (exp.f32 cosTheta) cosTheta) (*.f32 (sqrt.f32 (PI.f32)) cosTheta))) c)))
(/.f32 #s(literal 1 binary32) (+.f32 (+.f32 #s(literal 1 binary32) (neg.f32 c)) (*.f32 (*.f32 (/.f32 #s(literal 1 binary32) (sqrt.f32 (PI.f32))) (/.f32 (sqrt.f32 (-.f32 (-.f32 #s(literal 1 binary32) cosTheta) cosTheta)) cosTheta)) (exp.f32 (*.f32 (neg.f32 cosTheta) cosTheta)))))
(/.f32 #s(literal 1 binary32) (+.f32 (*.f32 (*.f32 (/.f32 #s(literal 1 binary32) (sqrt.f32 (PI.f32))) (/.f32 (sqrt.f32 (-.f32 (-.f32 #s(literal 1 binary32) cosTheta) cosTheta)) cosTheta)) (pow.f32 (exp.f32 cosTheta) (neg.f32 cosTheta))) (-.f32 #s(literal 1 binary32) c)))
(/.f32 #s(literal 1 binary32) (fma.f32 (/.f32 (/.f32 (sqrt.f32 (+.f32 #s(literal 1 binary32) (*.f32 cosTheta #s(literal -2 binary32)))) cosTheta) (sqrt.f32 (PI.f32))) (pow.f32 (exp.f32 cosTheta) (neg.f32 cosTheta)) (-.f32 #s(literal 1 binary32) c)))
(/.f32 #s(literal 1 binary32) (-.f32 (fma.f32 (/.f32 (sqrt.f32 (+.f32 #s(literal 1 binary32) (*.f32 cosTheta #s(literal -2 binary32)))) (*.f32 (sqrt.f32 (PI.f32)) cosTheta)) (pow.f32 (exp.f32 (neg.f32 cosTheta)) cosTheta) #s(literal 1 binary32)) c))
(/.f32 #s(literal 1 binary32) (+.f32 #s(literal 1 binary32) (-.f32 (/.f32 (sqrt.f32 (fma.f32 cosTheta #s(literal -2 binary32) #s(literal 1 binary32))) (*.f32 (pow.f32 (exp.f32 cosTheta) cosTheta) (*.f32 (sqrt.f32 (PI.f32)) cosTheta))) c)))
(neg.f32 (/.f32 #s(literal 1 binary32) (+.f32 (+.f32 #s(literal 1 binary32) c) (*.f32 (*.f32 (/.f32 #s(literal 1 binary32) (sqrt.f32 (PI.f32))) (/.f32 (sqrt.f32 (-.f32 (-.f32 #s(literal 1 binary32) (neg.f32 cosTheta)) (neg.f32 cosTheta))) (neg.f32 cosTheta))) (exp.f32 (*.f32 (neg.f32 (neg.f32 cosTheta)) (neg.f32 cosTheta)))))))
(/.f32 #s(literal -1 binary32) (+.f32 (+.f32 #s(literal 1 binary32) c) (*.f32 (/.f32 #s(literal 1 binary32) (sqrt.f32 (PI.f32))) (*.f32 (/.f32 (sqrt.f32 (+.f32 (+.f32 #s(literal 1 binary32) cosTheta) cosTheta)) (neg.f32 cosTheta)) (pow.f32 (exp.f32 cosTheta) (neg.f32 cosTheta))))))
(/.f32 #s(literal -1 binary32) (fma.f32 (pow.f32 (exp.f32 cosTheta) (neg.f32 cosTheta)) (/.f32 (/.f32 (sqrt.f32 (+.f32 #s(literal 1 binary32) (*.f32 #s(literal 2 binary32) cosTheta))) (neg.f32 cosTheta)) (sqrt.f32 (PI.f32))) (+.f32 #s(literal 1 binary32) c)))
(/.f32 #s(literal 1 binary32) (-.f32 (/.f32 (/.f32 (/.f32 (sqrt.f32 (+.f32 #s(literal 1 binary32) (*.f32 cosTheta #s(literal 2 binary32)))) cosTheta) (pow.f32 (exp.f32 cosTheta) cosTheta)) (sqrt.f32 (PI.f32))) (+.f32 #s(literal 1 binary32) c)))
(/.f32 #s(literal 1 binary32) (+.f32 #s(literal -1 binary32) (-.f32 (/.f32 (/.f32 (sqrt.f32 (fma.f32 cosTheta #s(literal 2 binary32) #s(literal 1 binary32))) cosTheta) (*.f32 (sqrt.f32 (PI.f32)) (pow.f32 (exp.f32 cosTheta) cosTheta))) c)))
(/.f32 #s(literal 1 binary32) (+.f32 #s(literal -1 binary32) (-.f32 (/.f32 (sqrt.f32 (fma.f32 cosTheta #s(literal 2 binary32) #s(literal 1 binary32))) (*.f32 (pow.f32 (exp.f32 cosTheta) cosTheta) (*.f32 (sqrt.f32 (PI.f32)) cosTheta))) c)))
(neg.f32 (/.f32 #s(literal 1 binary32) (+.f32 (+.f32 #s(literal 1 binary32) (neg.f32 c)) (*.f32 (*.f32 (/.f32 #s(literal 1 binary32) (sqrt.f32 (PI.f32))) (/.f32 (sqrt.f32 (-.f32 (-.f32 #s(literal 1 binary32) cosTheta) cosTheta)) cosTheta)) (exp.f32 (*.f32 (neg.f32 cosTheta) cosTheta))))))
(/.f32 #s(literal -1 binary32) (+.f32 (*.f32 (*.f32 (/.f32 #s(literal 1 binary32) (sqrt.f32 (PI.f32))) (/.f32 (sqrt.f32 (-.f32 (-.f32 #s(literal 1 binary32) cosTheta) cosTheta)) cosTheta)) (pow.f32 (exp.f32 cosTheta) (neg.f32 cosTheta))) (-.f32 #s(literal 1 binary32) c)))
(/.f32 #s(literal -1 binary32) (fma.f32 (/.f32 (/.f32 (sqrt.f32 (+.f32 #s(literal 1 binary32) (*.f32 cosTheta #s(literal -2 binary32)))) cosTheta) (sqrt.f32 (PI.f32))) (pow.f32 (exp.f32 cosTheta) (neg.f32 cosTheta)) (-.f32 #s(literal 1 binary32) c)))
(/.f32 #s(literal -1 binary32) (-.f32 (fma.f32 (/.f32 (sqrt.f32 (+.f32 #s(literal 1 binary32) (*.f32 cosTheta #s(literal -2 binary32)))) (*.f32 (sqrt.f32 (PI.f32)) cosTheta)) (pow.f32 (exp.f32 (neg.f32 cosTheta)) cosTheta) #s(literal 1 binary32)) c))
(/.f32 #s(literal 1 binary32) (+.f32 #s(literal -1 binary32) (-.f32 c (/.f32 (sqrt.f32 (fma.f32 cosTheta #s(literal -2 binary32) #s(literal 1 binary32))) (*.f32 (pow.f32 (exp.f32 cosTheta) cosTheta) (*.f32 (sqrt.f32 (PI.f32)) cosTheta))))))
(/.f32 #s(literal 1 binary32) (+.f32 (+.f32 #s(literal 1 binary32) cosTheta) (*.f32 (*.f32 (/.f32 #s(literal 1 binary32) (sqrt.f32 (PI.f32))) (/.f32 (sqrt.f32 (-.f32 (-.f32 #s(literal 1 binary32) c) c)) c)) (exp.f32 (*.f32 (neg.f32 c) c)))))
(/.f32 #s(literal 1 binary32) (+.f32 (+.f32 #s(literal 1 binary32) cosTheta) (*.f32 (/.f32 (*.f32 #s(literal 1 binary32) (/.f32 (sqrt.f32 (-.f32 #s(literal 1 binary32) (+.f32 c c))) c)) (sqrt.f32 (PI.f32))) (exp.f32 (neg.f32 (*.f32 c c))))))
(/.f32 #s(literal 1 binary32) (fma.f32 (/.f32 (/.f32 (sqrt.f32 (-.f32 #s(literal 1 binary32) (*.f32 #s(literal 2 binary32) c))) c) (sqrt.f32 (PI.f32))) (pow.f32 (exp.f32 c) (neg.f32 c)) (+.f32 #s(literal 1 binary32) cosTheta)))
(/.f32 #s(literal 1 binary32) (+.f32 cosTheta (+.f32 #s(literal 1 binary32) (/.f32 (/.f32 (sqrt.f32 (+.f32 #s(literal 1 binary32) (*.f32 c #s(literal -2 binary32)))) (pow.f32 (exp.f32 c) c)) (*.f32 (sqrt.f32 (PI.f32)) c)))))
(/.f32 #s(literal 1 binary32) (+.f32 #s(literal 1 binary32) (+.f32 cosTheta (/.f32 (/.f32 (sqrt.f32 (fma.f32 c #s(literal -2 binary32) #s(literal 1 binary32))) (pow.f32 (exp.f32 c) c)) (*.f32 c (sqrt.f32 (PI.f32)))))))
Compiler

Compiled 27 to 18 computations (33.3% saved)

eval0.0ms (0%)

Memory
0.3MiB live, 0.3MiB allocated
Compiler

Compiled 2 to 2 computations (0% saved)

prune1.0ms (0%)

Memory
1.0MiB live, 1.0MiB allocated
Alt Table
Click to see full alt table
StatusAccuracyProgram
98.0%
(/.f32 #s(literal 1 binary32) (+.f32 (+.f32 #s(literal 1 binary32) c) (*.f32 (*.f32 (/.f32 #s(literal 1 binary32) (sqrt.f32 (PI.f32))) (/.f32 (sqrt.f32 (-.f32 (-.f32 #s(literal 1 binary32) cosTheta) cosTheta)) cosTheta)) (exp.f32 (*.f32 (neg.f32 cosTheta) cosTheta)))))
Compiler

Compiled 54 to 36 computations (33.3% saved)

simplify3.0ms (0.1%)

Memory
0.8MiB live, 0.8MiB allocated
Algorithm
egg-herbie
Rules
12×+-commutative
10×*-commutative
sub-neg
neg-sub0
neg-mul-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02497
14197
24797
35097
45197
Stop Event
saturated
Calls
Call 1
Inputs
(/.f32 #s(literal 1 binary32) (+.f32 (+.f32 #s(literal 1 binary32) c) (*.f32 (*.f32 (/.f32 #s(literal 1 binary32) (sqrt.f32 (PI.f32))) (/.f32 (sqrt.f32 (-.f32 (-.f32 #s(literal 1 binary32) cosTheta) cosTheta)) cosTheta)) (exp.f32 (*.f32 (neg.f32 cosTheta) cosTheta)))))
Outputs
(/.f32 #s(literal 1 binary32) (+.f32 (+.f32 #s(literal 1 binary32) c) (*.f32 (*.f32 (/.f32 #s(literal 1 binary32) (sqrt.f32 (PI.f32))) (/.f32 (sqrt.f32 (-.f32 (-.f32 #s(literal 1 binary32) cosTheta) cosTheta)) cosTheta)) (exp.f32 (*.f32 (neg.f32 cosTheta) cosTheta)))))
(/.f32 #s(literal 1 binary32) (+.f32 (+.f32 #s(literal 1 binary32) c) (*.f32 (*.f32 (/.f32 #s(literal 1 binary32) (sqrt.f32 (PI.f32))) (/.f32 (sqrt.f32 (-.f32 (-.f32 #s(literal 1 binary32) cosTheta) cosTheta)) cosTheta)) (exp.f32 (neg.f32 (*.f32 cosTheta cosTheta))))))

soundness1.0ms (0%)

Memory
-15.4MiB live, 0.5MiB allocated
Stop Event
fuel
Compiler

Compiled 27 to 18 computations (33.3% saved)

preprocess18.0ms (0.6%)

Memory
9.5MiB live, 25.1MiB allocated
Compiler

Compiled 108 to 72 computations (33.3% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...