Beckmann Sample, near normal, slope_y

Time bar (total: 13.7s)

analyze189.0ms (1.4%)

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
50%0%0%100%0%0%0%3
50%0%0%100%0%0%0%4
50%0%0%100%0%0%0%5
75%0%0%100%0%0%0%6
75%0%0%100%0%0%0%7
75%0%0%100%0%0%0%8
87.5%0%0%100%0%0%0%9
87.5%0%0%100%0%0%0%10
87.5%0%0%100%0%0%0%11
93.8%0%0%100%0%0%0%12
Compiler

Compiled 39 to 31 computations (20.5% saved)

Precisions
Click to see histograms. Total time spent on operations: 69.0ms
Operation ival-mult, time spent: 12.0ms, 17.0% of total-time
Operation ival-<=, time spent: 11.0ms, 16.0% of total-time
Operation ival-sin, time spent: 10.0ms, 15.0% of total-time
Operation ival-log, time spent: 10.0ms, 15.0% of total-time
Operation ival-sqrt, time spent: 8.0ms, 12.0% of total-time
Operation ival-sub, time spent: 4.0ms, 6.0% of total-time
Operation ival-pi, time spent: 3.0ms, 4.0% of total-time
Operation ival-neg, time spent: 3.0ms, 4.0% of total-time
Operation ival-and, time spent: 3.0ms, 4.0% of total-time
Operation ival->, time spent: 3.0ms, 4.0% of total-time
Operation const, time spent: 2.0ms, 3.0% of total-time

sample3.2s (23%)

Results
2.9s8255×0valid
1.0ms0precondition
0.0ms0valid
Precisions
Click to see histograms. Total time spent on operations: 1.5s
Operation ival-log, time spent: 263.0ms, 18.0% of total-time
Operation ival-mult, time spent: 211.0ms, 14.0% of total-time
Operation ival-<=, time spent: 197.0ms, 13.0% of total-time
Operation ival-sub, time spent: 184.0ms, 12.0% of total-time
Operation ival-sqrt, time spent: 183.0ms, 12.0% of total-time
Operation ival-sin, time spent: 144.0ms, 10.0% of total-time
Operation const, time spent: 70.0ms, 5.0% of total-time
Operation ival-and, time spent: 69.0ms, 5.0% of total-time
Operation ival->, time spent: 60.0ms, 4.0% of total-time
Operation ival-pi, time spent: 48.0ms, 3.0% of total-time
Operation ival-neg, time spent: 45.0ms, 3.0% of total-time
Bogosity

preprocess2.8s (20.2%)

Algorithm
egg-herbie
Rules
1264×fma-define
555×distribute-neg-in
547×unsub-neg
479×associate-+l+
455×fma-neg
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
2560-256(0.9999625086784363 3.618839764385484e-5 0.002456603106111288)(PI.f32)
00-0-(-.f32 1 u1)
00-0-(*.f32 2 (PI.f32))
00-0-u1
00-0-(log.f32 (-.f32 1 u1))
00-0-(sqrt.f32 (neg.f32 (log.f32 (-.f32 1 u1))))
00-0-(*.f32 (*.f32 2 (PI.f32)) u2)
00-0-2
00-0-u2
00-0-(sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2))
00-0-1
00-0-(neg.f32 (log.f32 (-.f32 1 u1)))
00-0-(*.f32 (sqrt.f32 (neg.f32 (log.f32 (-.f32 1 u1)))) (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
049559
1109509
2205509
3376509
4708509
51281509
61673509
72148509
83469509
93801509
104596509
116037509
126505509
136574509
146583509
157066509
Stop Event
node limit
Calls
Call 1
Inputs
(*.f32 (sqrt.f32 (neg.f32 (log.f32 (-.f32 1 u1)))) (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
(*.f32 (sqrt.f32 (neg.f32 (log.f32 (-.f32 1 u1)))) (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
(*.f32 (sqrt.f32 (neg.f32 (log.f32 (-.f32 1 u1)))) (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
(*.f32 (sqrt.f32 (neg.f32 (log.f32 (-.f32 1 (neg.f32 u1))))) (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
(*.f32 (sqrt.f32 (neg.f32 (log.f32 (-.f32 1 u1)))) (sin.f32 (*.f32 (*.f32 2 (PI.f32)) (neg.f32 u2))))
(neg.f32 (*.f32 (sqrt.f32 (neg.f32 (log.f32 (-.f32 1 u1)))) (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2))))
(neg.f32 (*.f32 (sqrt.f32 (neg.f32 (log.f32 (-.f32 1 (neg.f32 u1))))) (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2))))
(neg.f32 (*.f32 (sqrt.f32 (neg.f32 (log.f32 (-.f32 1 u1)))) (sin.f32 (*.f32 (*.f32 2 (PI.f32)) (neg.f32 u2)))))
(*.f32 (sqrt.f32 (neg.f32 (log.f32 (-.f32 1 cosTheta_i)))) (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
(*.f32 (sqrt.f32 (neg.f32 (log.f32 (-.f32 1 u1)))) (sin.f32 (*.f32 (*.f32 2 (PI.f32)) cosTheta_i)))
(*.f32 (sqrt.f32 (neg.f32 (log.f32 (-.f32 1 u2)))) (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u1)))
Outputs
(*.f32 (sqrt.f32 (neg.f32 (log.f32 (-.f32 1 u1)))) (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (sin.f32 (*.f32 2 (*.f32 (PI.f32) u2))))
(*.f32 (sqrt.f32 (neg.f32 (log.f32 (-.f32 1 u1)))) (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (sin.f32 (*.f32 2 (*.f32 (PI.f32) u2))))
(*.f32 (sqrt.f32 (neg.f32 (log.f32 (-.f32 1 u1)))) (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (sin.f32 (*.f32 2 (*.f32 (PI.f32) u2))))
(*.f32 (sqrt.f32 (neg.f32 (log.f32 (-.f32 1 (neg.f32 u1))))) (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
(*.f32 (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2)) (sqrt.f32 (neg.f32 (log.f32 (-.f32 1 (neg.f32 u1))))))
(*.f32 (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2)) (sqrt.f32 (neg.f32 (log1p.f32 u1))))
(*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) u2))) (sqrt.f32 (neg.f32 (log1p.f32 u1))))
(*.f32 (sqrt.f32 (neg.f32 (log.f32 (-.f32 1 u1)))) (sin.f32 (*.f32 (*.f32 2 (PI.f32)) (neg.f32 u2))))
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (sin.f32 (*.f32 -2 (*.f32 (PI.f32) u2))))
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (sin.f32 (*.f32 (PI.f32) (*.f32 u2 -2))))
(neg.f32 (*.f32 (sqrt.f32 (neg.f32 (log.f32 (-.f32 1 u1)))) (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2))))
(*.f32 (sqrt.f32 (neg.f32 (log.f32 (-.f32 1 u1)))) (sin.f32 (*.f32 (*.f32 2 (PI.f32)) (neg.f32 u2))))
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (sin.f32 (*.f32 -2 (*.f32 (PI.f32) u2))))
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (sin.f32 (*.f32 (PI.f32) (*.f32 u2 -2))))
(neg.f32 (*.f32 (sqrt.f32 (neg.f32 (log.f32 (-.f32 1 (neg.f32 u1))))) (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2))))
(*.f32 (sqrt.f32 (neg.f32 (log.f32 (-.f32 1 (neg.f32 u1))))) (neg.f32 (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2))))
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 u1))) (sin.f32 (*.f32 -2 (*.f32 (PI.f32) u2))))
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 u1))) (sin.f32 (*.f32 (PI.f32) (*.f32 u2 -2))))
(neg.f32 (*.f32 (sqrt.f32 (neg.f32 (log.f32 (-.f32 1 u1)))) (sin.f32 (*.f32 (*.f32 2 (PI.f32)) (neg.f32 u2)))))
(*.f32 (sqrt.f32 (neg.f32 (log.f32 (-.f32 1 u1)))) (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (sin.f32 (*.f32 2 (*.f32 (PI.f32) u2))))
(*.f32 (sqrt.f32 (neg.f32 (log.f32 (-.f32 1 cosTheta_i)))) (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
(*.f32 (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2)) (sqrt.f32 (neg.f32 (log.f32 (-.f32 1 cosTheta_i)))))
(*.f32 (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2)) (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 cosTheta_i)))))
(*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) u2))) (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 cosTheta_i)))))
(*.f32 (sqrt.f32 (neg.f32 (log.f32 (-.f32 1 u1)))) (sin.f32 (*.f32 (*.f32 2 (PI.f32)) cosTheta_i)))
(*.f32 (sqrt.f32 (neg.f32 (log.f32 (-.f32 1 u1)))) (sin.f32 (*.f32 2 (*.f32 (PI.f32) cosTheta_i))))
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (sin.f32 (*.f32 2 (*.f32 (PI.f32) cosTheta_i))))
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (sin.f32 (*.f32 (*.f32 2 (PI.f32)) cosTheta_i)))
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (sin.f32 (*.f32 (PI.f32) (*.f32 2 cosTheta_i))))
(*.f32 (sqrt.f32 (neg.f32 (log.f32 (-.f32 1 u2)))) (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u1)))
(*.f32 (sqrt.f32 (neg.f32 (log.f32 (-.f32 1 u2)))) (sin.f32 (*.f32 u1 (*.f32 2 (PI.f32)))))
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u2)))) (sin.f32 (*.f32 u1 (*.f32 2 (PI.f32)))))
Symmetry

(abs cosTheta_i)

(negabs u2)

Compiler

Compiled 124 to 94 computations (24.2% saved)

Precisions
Click to see histograms. Total time spent on operations: 1.5s
Operation ival-sub, time spent: 596.0ms, 40.0% of total-time
Operation ival-log, time spent: 334.0ms, 23.0% of total-time
Operation ival-mult, time spent: 236.0ms, 16.0% of total-time
Operation ival-sin, time spent: 95.0ms, 6.0% of total-time
Operation ival-sqrt, time spent: 94.0ms, 6.0% of total-time
Operation ival-neg, time spent: 62.0ms, 4.0% of total-time
Operation const, time spent: 44.0ms, 3.0% of total-time
Operation ival-pi, time spent: 21.0ms, 1.0% of total-time

eval1.0ms (0%)

Compiler

Compiled 27 to 18 computations (33.3% saved)

prune1.0ms (0%)

Alt Table
Click to see full alt table
StatusAccuracyProgram
98.5%
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
Compiler

Compiled 15 to 13 computations (13.3% saved)

localize793.0ms (5.8%)

Localize:

Found 1 expressions with local error:

NewAccuracyProgram
6.3%
(PI.f32)
Compiler

Compiled 48 to 24 computations (50% saved)

Precisions
Click to see histograms. Total time spent on operations: 399.0ms
Operation ival-mult, time spent: 112.0ms, 28.0% of total-time
Operation composed, time spent: 90.0ms, 23.0% of total-time
Operation ival-sin, time spent: 47.0ms, 12.0% of total-time
Operation ival-log, time spent: 47.0ms, 12.0% of total-time
Operation ival-add, time spent: 33.0ms, 8.0% of total-time
Operation ival-sqrt, time spent: 23.0ms, 6.0% of total-time
Operation ival-neg, time spent: 21.0ms, 5.0% of total-time
Operation const, time spent: 14.0ms, 4.0% of total-time
Operation ival-pi, time spent: 13.0ms, 3.0% of total-time

series0.0ms (0%)

Counts
1 → 0

rewrite260.0ms (1.9%)

Algorithm
batch-egg-rewrite
Rules
737×log1p-expm1-u
737×expm1-log1p-u
647×prod-diff
460×log-prod
276×fma-define
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
033
1243
22353
324223
Stop Event
node limit
Counts
1 → 63
Calls
Call 1
Inputs
(PI.f32)
Outputs
(+.f32 (PI.f32) 0)
(+.f32 (+.f32 (PI.f32) 1) -1)
(+.f32 0 (PI.f32))
(+.f32 (*.f32 2 (*.f32 1/3 (PI.f32))) (*.f32 1/3 (PI.f32)))
(+.f32 (*.f32 1/3 (PI.f32)) (*.f32 2 (*.f32 1/3 (PI.f32))))
(+.f32 (*.f32 1/2 (PI.f32)) (*.f32 1/2 (PI.f32)))
(-.f32 (+.f32 (PI.f32) 1) 1)
(-.f32 (+.f32 (PI.f32) 1) (log.f32 (E.f32)))
(-.f32 (log1p.f32 (pow.f32 (expm1.f32 (PI.f32)) 3)) (log.f32 (+.f32 1 (-.f32 (pow.f32 (expm1.f32 (PI.f32)) 2) (expm1.f32 (PI.f32))))))
(-.f32 (log.f32 (pow.f32 (E.f32) (+.f32 (PI.f32) 1))) (log.f32 (E.f32)))
(-.f32 (log.f32 (-.f32 1 (pow.f32 (expm1.f32 (PI.f32)) 2))) (log.f32 (-.f32 1 (expm1.f32 (PI.f32)))))
(*.f32 (PI.f32) 1)
(*.f32 (PI.f32) (log.f32 (E.f32)))
(*.f32 1 (PI.f32))
(*.f32 (cbrt.f32 (PI.f32)) (pow.f32 (cbrt.f32 (PI.f32)) 2))
(*.f32 (pow.f32 (cbrt.f32 (PI.f32)) 2) (cbrt.f32 (PI.f32)))
(*.f32 (sqrt.f32 (PI.f32)) (sqrt.f32 (PI.f32)))
(*.f32 2 (*.f32 1/2 (PI.f32)))
(*.f32 1/3 (*.f32 3 (PI.f32)))
(*.f32 3 (*.f32 1/3 (PI.f32)))
(*.f32 (pow.f32 (cbrt.f32 (cbrt.f32 (PI.f32))) 2) (*.f32 (cbrt.f32 (cbrt.f32 (PI.f32))) (pow.f32 (cbrt.f32 (PI.f32)) 2)))
(*.f32 (cbrt.f32 (cbrt.f32 (PI.f32))) (log.f32 (pow.f32 (exp.f32 (pow.f32 (cbrt.f32 (PI.f32)) 2)) (pow.f32 (cbrt.f32 (cbrt.f32 (PI.f32))) 2))))
(*.f32 (cbrt.f32 (pow.f32 (cbrt.f32 (PI.f32)) 4)) (*.f32 (pow.f32 (cbrt.f32 (cbrt.f32 (PI.f32))) 2) (cbrt.f32 (PI.f32))))
(*.f32 (pow.f32 (PI.f32) 1/6) (*.f32 (pow.f32 (PI.f32) 1/6) (pow.f32 (cbrt.f32 (PI.f32)) 2)))
(*.f32 (pow.f32 (PI.f32) 1/6) (log.f32 (pow.f32 (exp.f32 (pow.f32 (cbrt.f32 (PI.f32)) 2)) (pow.f32 (PI.f32) 1/6))))
(*.f32 (pow.f32 (PI.f32) 1/6) (log.f32 (pow.f32 (exp.f32 (sqrt.f32 (PI.f32))) (cbrt.f32 (PI.f32)))))
(*.f32 (pow.f32 (PI.f32) 1/4) (sqrt.f32 (pow.f32 (PI.f32) 3/2)))
(*.f32 (pow.f32 (PI.f32) 1/4) (*.f32 (pow.f32 (PI.f32) 1/4) (sqrt.f32 (PI.f32))))
(*.f32 (pow.f32 (PI.f32) 1/4) (log.f32 (pow.f32 (exp.f32 (sqrt.f32 (PI.f32))) (pow.f32 (PI.f32) 1/4))))
(*.f32 (log.f32 (E.f32)) (PI.f32))
(*.f32 (pow.f32 1 1/3) (PI.f32))
(*.f32 (pow.f32 (pow.f32 (pow.f32 (cbrt.f32 (PI.f32)) 4) 2) 1/3) (cbrt.f32 (cbrt.f32 (PI.f32))))
(*.f32 (pow.f32 (pow.f32 (PI.f32) 5/2) 1/3) (pow.f32 (PI.f32) 1/6))
(*.f32 (*.f32 (sqrt.f32 (PI.f32)) (cbrt.f32 (PI.f32))) (pow.f32 (PI.f32) 1/6))
(*.f32 (cbrt.f32 (pow.f32 (pow.f32 (cbrt.f32 (PI.f32)) 4) 2)) (cbrt.f32 (cbrt.f32 (PI.f32))))
(*.f32 (cbrt.f32 (pow.f32 (PI.f32) 5/2)) (pow.f32 (PI.f32) 1/6))
(*.f32 (*.f32 (sqrt.f32 (PI.f32)) (pow.f32 (PI.f32) 1/4)) (pow.f32 (PI.f32) 1/4))
(*.f32 (sqrt.f32 (pow.f32 (PI.f32) 3/2)) (pow.f32 (PI.f32) 1/4))
(*.f32 (sqrt.f32 (pow.f32 (cbrt.f32 (PI.f32)) 5)) (pow.f32 (PI.f32) 1/6))
(*.f32 (*.f32 (cbrt.f32 (PI.f32)) (cbrt.f32 (pow.f32 (cbrt.f32 (PI.f32)) 4))) (pow.f32 (cbrt.f32 (cbrt.f32 (PI.f32))) 2))
(*.f32 (*.f32 (pow.f32 (cbrt.f32 (PI.f32)) 2) (pow.f32 (cbrt.f32 (cbrt.f32 (PI.f32))) 2)) (cbrt.f32 (cbrt.f32 (PI.f32))))
(*.f32 (*.f32 (pow.f32 (cbrt.f32 (PI.f32)) 2) (pow.f32 (PI.f32) 1/6)) (pow.f32 (PI.f32) 1/6))
(/.f32 (-.f32 (pow.f32 (+.f32 (PI.f32) 1) 3) 1) (fma.f32 (+.f32 (PI.f32) 1) (+.f32 (PI.f32) 1) (+.f32 1 (+.f32 (PI.f32) 1))))
(/.f32 (fma.f32 (+.f32 (PI.f32) 1) (+.f32 (PI.f32) 1) -1) (+.f32 (+.f32 (PI.f32) 1) 1))
(pow.f32 (PI.f32) 1)
(pow.f32 (cbrt.f32 (PI.f32)) 3)
(pow.f32 (pow.f32 (PI.f32) 2) 1/2)
(pow.f32 (pow.f32 (PI.f32) 3) 1/3)
(pow.f32 (sqrt.f32 (PI.f32)) 2)
(pow.f32 (E.f32) (log.f32 (PI.f32)))
(pow.f32 (exp.f32 (pow.f32 (cbrt.f32 (log.f32 (PI.f32))) 2)) (cbrt.f32 (log.f32 (PI.f32))))
(pow.f32 (exp.f32 (sqrt.f32 (log.f32 (PI.f32)))) (sqrt.f32 (log.f32 (PI.f32))))
(sqrt.f32 (pow.f32 (PI.f32) 2))
(fabs.f32 (PI.f32))
(log.f32 (exp.f32 (PI.f32)))
(cbrt.f32 (pow.f32 (PI.f32) 3))
(expm1.f32 (log1p.f32 (PI.f32)))
(log1p.f32 (expm1.f32 (PI.f32)))
(exp.f32 (log.f32 (PI.f32)))
(fma.f32 1 (+.f32 (PI.f32) 1) -1)
(fma.f32 (+.f32 (PI.f32) 1) 1 -1)
(fma.f32 (*.f32 (cbrt.f32 (+.f32 (PI.f32) 1)) (cbrt.f32 (+.f32 (PI.f32) 1))) (cbrt.f32 (+.f32 (PI.f32) 1)) -1)
(fma.f32 (sqrt.f32 (+.f32 (PI.f32) 1)) (sqrt.f32 (+.f32 (PI.f32) 1)) -1)

simplify75.0ms (0.5%)

Algorithm
egg-herbie
Rules
835×log-prod
512×associate-+l+
489×associate-+r+
257×unswap-sqr
231×*-commutative
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0160801
1368761
21436745
37030745
Stop Event
node limit
Counts
63 → 83
Calls
Call 1
Inputs
(+.f32 (PI.f32) 0)
(+.f32 (+.f32 (PI.f32) 1) -1)
(+.f32 0 (PI.f32))
(+.f32 (*.f32 2 (*.f32 1/3 (PI.f32))) (*.f32 1/3 (PI.f32)))
(+.f32 (*.f32 1/3 (PI.f32)) (*.f32 2 (*.f32 1/3 (PI.f32))))
(+.f32 (*.f32 1/2 (PI.f32)) (*.f32 1/2 (PI.f32)))
(-.f32 (+.f32 (PI.f32) 1) 1)
(-.f32 (+.f32 (PI.f32) 1) (log.f32 (E.f32)))
(-.f32 (log1p.f32 (pow.f32 (expm1.f32 (PI.f32)) 3)) (log.f32 (+.f32 1 (-.f32 (pow.f32 (expm1.f32 (PI.f32)) 2) (expm1.f32 (PI.f32))))))
(-.f32 (log.f32 (pow.f32 (E.f32) (+.f32 (PI.f32) 1))) (log.f32 (E.f32)))
(-.f32 (log.f32 (-.f32 1 (pow.f32 (expm1.f32 (PI.f32)) 2))) (log.f32 (-.f32 1 (expm1.f32 (PI.f32)))))
(*.f32 (PI.f32) 1)
(*.f32 (PI.f32) (log.f32 (E.f32)))
(*.f32 1 (PI.f32))
(*.f32 (cbrt.f32 (PI.f32)) (pow.f32 (cbrt.f32 (PI.f32)) 2))
(*.f32 (pow.f32 (cbrt.f32 (PI.f32)) 2) (cbrt.f32 (PI.f32)))
(*.f32 (sqrt.f32 (PI.f32)) (sqrt.f32 (PI.f32)))
(*.f32 2 (*.f32 1/2 (PI.f32)))
(*.f32 1/3 (*.f32 3 (PI.f32)))
(*.f32 3 (*.f32 1/3 (PI.f32)))
(*.f32 (pow.f32 (cbrt.f32 (cbrt.f32 (PI.f32))) 2) (*.f32 (cbrt.f32 (cbrt.f32 (PI.f32))) (pow.f32 (cbrt.f32 (PI.f32)) 2)))
(*.f32 (cbrt.f32 (cbrt.f32 (PI.f32))) (log.f32 (pow.f32 (exp.f32 (pow.f32 (cbrt.f32 (PI.f32)) 2)) (pow.f32 (cbrt.f32 (cbrt.f32 (PI.f32))) 2))))
(*.f32 (cbrt.f32 (pow.f32 (cbrt.f32 (PI.f32)) 4)) (*.f32 (pow.f32 (cbrt.f32 (cbrt.f32 (PI.f32))) 2) (cbrt.f32 (PI.f32))))
(*.f32 (pow.f32 (PI.f32) 1/6) (*.f32 (pow.f32 (PI.f32) 1/6) (pow.f32 (cbrt.f32 (PI.f32)) 2)))
(*.f32 (pow.f32 (PI.f32) 1/6) (log.f32 (pow.f32 (exp.f32 (pow.f32 (cbrt.f32 (PI.f32)) 2)) (pow.f32 (PI.f32) 1/6))))
(*.f32 (pow.f32 (PI.f32) 1/6) (log.f32 (pow.f32 (exp.f32 (sqrt.f32 (PI.f32))) (cbrt.f32 (PI.f32)))))
(*.f32 (pow.f32 (PI.f32) 1/4) (sqrt.f32 (pow.f32 (PI.f32) 3/2)))
(*.f32 (pow.f32 (PI.f32) 1/4) (*.f32 (pow.f32 (PI.f32) 1/4) (sqrt.f32 (PI.f32))))
(*.f32 (pow.f32 (PI.f32) 1/4) (log.f32 (pow.f32 (exp.f32 (sqrt.f32 (PI.f32))) (pow.f32 (PI.f32) 1/4))))
(*.f32 (log.f32 (E.f32)) (PI.f32))
(*.f32 (pow.f32 1 1/3) (PI.f32))
(*.f32 (pow.f32 (pow.f32 (pow.f32 (cbrt.f32 (PI.f32)) 4) 2) 1/3) (cbrt.f32 (cbrt.f32 (PI.f32))))
(*.f32 (pow.f32 (pow.f32 (PI.f32) 5/2) 1/3) (pow.f32 (PI.f32) 1/6))
(*.f32 (*.f32 (sqrt.f32 (PI.f32)) (cbrt.f32 (PI.f32))) (pow.f32 (PI.f32) 1/6))
(*.f32 (cbrt.f32 (pow.f32 (pow.f32 (cbrt.f32 (PI.f32)) 4) 2)) (cbrt.f32 (cbrt.f32 (PI.f32))))
(*.f32 (cbrt.f32 (pow.f32 (PI.f32) 5/2)) (pow.f32 (PI.f32) 1/6))
(*.f32 (*.f32 (sqrt.f32 (PI.f32)) (pow.f32 (PI.f32) 1/4)) (pow.f32 (PI.f32) 1/4))
(*.f32 (sqrt.f32 (pow.f32 (PI.f32) 3/2)) (pow.f32 (PI.f32) 1/4))
(*.f32 (sqrt.f32 (pow.f32 (cbrt.f32 (PI.f32)) 5)) (pow.f32 (PI.f32) 1/6))
(*.f32 (*.f32 (cbrt.f32 (PI.f32)) (cbrt.f32 (pow.f32 (cbrt.f32 (PI.f32)) 4))) (pow.f32 (cbrt.f32 (cbrt.f32 (PI.f32))) 2))
(*.f32 (*.f32 (pow.f32 (cbrt.f32 (PI.f32)) 2) (pow.f32 (cbrt.f32 (cbrt.f32 (PI.f32))) 2)) (cbrt.f32 (cbrt.f32 (PI.f32))))
(*.f32 (*.f32 (pow.f32 (cbrt.f32 (PI.f32)) 2) (pow.f32 (PI.f32) 1/6)) (pow.f32 (PI.f32) 1/6))
(/.f32 (-.f32 (pow.f32 (+.f32 (PI.f32) 1) 3) 1) (fma.f32 (+.f32 (PI.f32) 1) (+.f32 (PI.f32) 1) (+.f32 1 (+.f32 (PI.f32) 1))))
(/.f32 (fma.f32 (+.f32 (PI.f32) 1) (+.f32 (PI.f32) 1) -1) (+.f32 (+.f32 (PI.f32) 1) 1))
(pow.f32 (PI.f32) 1)
(pow.f32 (cbrt.f32 (PI.f32)) 3)
(pow.f32 (pow.f32 (PI.f32) 2) 1/2)
(pow.f32 (pow.f32 (PI.f32) 3) 1/3)
(pow.f32 (sqrt.f32 (PI.f32)) 2)
(pow.f32 (E.f32) (log.f32 (PI.f32)))
(pow.f32 (exp.f32 (pow.f32 (cbrt.f32 (log.f32 (PI.f32))) 2)) (cbrt.f32 (log.f32 (PI.f32))))
(pow.f32 (exp.f32 (sqrt.f32 (log.f32 (PI.f32)))) (sqrt.f32 (log.f32 (PI.f32))))
(sqrt.f32 (pow.f32 (PI.f32) 2))
(fabs.f32 (PI.f32))
(log.f32 (exp.f32 (PI.f32)))
(cbrt.f32 (pow.f32 (PI.f32) 3))
(expm1.f32 (log1p.f32 (PI.f32)))
(log1p.f32 (expm1.f32 (PI.f32)))
(exp.f32 (log.f32 (PI.f32)))
(fma.f32 1 (+.f32 (PI.f32) 1) -1)
(fma.f32 (+.f32 (PI.f32) 1) 1 -1)
(fma.f32 (*.f32 (cbrt.f32 (+.f32 (PI.f32) 1)) (cbrt.f32 (+.f32 (PI.f32) 1))) (cbrt.f32 (+.f32 (PI.f32) 1)) -1)
(fma.f32 (sqrt.f32 (+.f32 (PI.f32) 1)) (sqrt.f32 (+.f32 (PI.f32) 1)) -1)
Outputs
(+.f32 (PI.f32) 0)
(PI.f32)
(+.f32 (+.f32 (PI.f32) 1) -1)
(PI.f32)
(+.f32 0 (PI.f32))
(PI.f32)
(+.f32 (*.f32 2 (*.f32 1/3 (PI.f32))) (*.f32 1/3 (PI.f32)))
(PI.f32)
(+.f32 (*.f32 1/3 (PI.f32)) (*.f32 2 (*.f32 1/3 (PI.f32))))
(PI.f32)
(+.f32 (*.f32 1/2 (PI.f32)) (*.f32 1/2 (PI.f32)))
(PI.f32)
(-.f32 (+.f32 (PI.f32) 1) 1)
(PI.f32)
(-.f32 (+.f32 (PI.f32) 1) (log.f32 (E.f32)))
(PI.f32)
(-.f32 (log1p.f32 (pow.f32 (expm1.f32 (PI.f32)) 3)) (log.f32 (+.f32 1 (-.f32 (pow.f32 (expm1.f32 (PI.f32)) 2) (expm1.f32 (PI.f32))))))
(-.f32 (log1p.f32 (pow.f32 (expm1.f32 (PI.f32)) 3)) (log1p.f32 (-.f32 (pow.f32 (expm1.f32 (PI.f32)) 2) (expm1.f32 (PI.f32)))))
(-.f32 (log.f32 (pow.f32 (E.f32) (+.f32 (PI.f32) 1))) (log.f32 (E.f32)))
(PI.f32)
(-.f32 (log.f32 (-.f32 1 (pow.f32 (expm1.f32 (PI.f32)) 2))) (log.f32 (-.f32 1 (expm1.f32 (PI.f32)))))
(-.f32 (log1p.f32 (neg.f32 (pow.f32 (expm1.f32 (PI.f32)) 2))) (log1p.f32 (neg.f32 (expm1.f32 (PI.f32)))))
(*.f32 (PI.f32) 1)
(PI.f32)
(*.f32 (PI.f32) (log.f32 (E.f32)))
(PI.f32)
(*.f32 1 (PI.f32))
(PI.f32)
(*.f32 (cbrt.f32 (PI.f32)) (pow.f32 (cbrt.f32 (PI.f32)) 2))
(PI.f32)
(*.f32 (pow.f32 (cbrt.f32 (PI.f32)) 2) (cbrt.f32 (PI.f32)))
(PI.f32)
(*.f32 (sqrt.f32 (PI.f32)) (sqrt.f32 (PI.f32)))
(PI.f32)
(*.f32 2 (*.f32 1/2 (PI.f32)))
(PI.f32)
(*.f32 1/3 (*.f32 3 (PI.f32)))
(PI.f32)
(*.f32 3 (*.f32 1/3 (PI.f32)))
(PI.f32)
(*.f32 (pow.f32 (cbrt.f32 (cbrt.f32 (PI.f32))) 2) (*.f32 (cbrt.f32 (cbrt.f32 (PI.f32))) (pow.f32 (cbrt.f32 (PI.f32)) 2)))
(PI.f32)
(*.f32 (cbrt.f32 (cbrt.f32 (PI.f32))) (log.f32 (pow.f32 (exp.f32 (pow.f32 (cbrt.f32 (PI.f32)) 2)) (pow.f32 (cbrt.f32 (cbrt.f32 (PI.f32))) 2))))
(PI.f32)
(*.f32 (cbrt.f32 (pow.f32 (cbrt.f32 (PI.f32)) 4)) (*.f32 (pow.f32 (cbrt.f32 (cbrt.f32 (PI.f32))) 2) (cbrt.f32 (PI.f32))))
(*.f32 (cbrt.f32 (pow.f32 (cbrt.f32 (PI.f32)) 4)) (*.f32 (cbrt.f32 (PI.f32)) (pow.f32 (cbrt.f32 (cbrt.f32 (PI.f32))) 2)))
(*.f32 (cbrt.f32 (PI.f32)) (*.f32 (pow.f32 (cbrt.f32 (cbrt.f32 (PI.f32))) 2) (cbrt.f32 (pow.f32 (cbrt.f32 (PI.f32)) 4))))
(*.f32 (pow.f32 (PI.f32) 1/6) (*.f32 (pow.f32 (PI.f32) 1/6) (pow.f32 (cbrt.f32 (PI.f32)) 2)))
(PI.f32)
(*.f32 (pow.f32 (PI.f32) 1/6) (log.f32 (pow.f32 (exp.f32 (pow.f32 (cbrt.f32 (PI.f32)) 2)) (pow.f32 (PI.f32) 1/6))))
(PI.f32)
(*.f32 (pow.f32 (PI.f32) 1/6) (log.f32 (pow.f32 (exp.f32 (sqrt.f32 (PI.f32))) (cbrt.f32 (PI.f32)))))
(*.f32 (pow.f32 (PI.f32) 1/6) (*.f32 (cbrt.f32 (PI.f32)) (log.f32 (exp.f32 (sqrt.f32 (PI.f32))))))
(*.f32 (cbrt.f32 (PI.f32)) (*.f32 (sqrt.f32 (PI.f32)) (pow.f32 (PI.f32) 1/6)))
(*.f32 (pow.f32 (PI.f32) 1/4) (sqrt.f32 (pow.f32 (PI.f32) 3/2)))
(*.f32 (pow.f32 (PI.f32) 1/4) (fabs.f32 (pow.f32 (PI.f32) 3/4)))
(*.f32 (pow.f32 (PI.f32) 1/4) (pow.f32 (PI.f32) 3/4))
(*.f32 (pow.f32 (PI.f32) 1/4) (*.f32 (pow.f32 (PI.f32) 1/4) (sqrt.f32 (PI.f32))))
(PI.f32)
(*.f32 (pow.f32 (PI.f32) 1/4) (log.f32 (pow.f32 (exp.f32 (sqrt.f32 (PI.f32))) (pow.f32 (PI.f32) 1/4))))
(PI.f32)
(*.f32 (log.f32 (E.f32)) (PI.f32))
(PI.f32)
(*.f32 (pow.f32 1 1/3) (PI.f32))
(PI.f32)
(*.f32 (pow.f32 (pow.f32 (pow.f32 (cbrt.f32 (PI.f32)) 4) 2) 1/3) (cbrt.f32 (cbrt.f32 (PI.f32))))
(*.f32 (cbrt.f32 (cbrt.f32 (PI.f32))) (cbrt.f32 (pow.f32 (pow.f32 (cbrt.f32 (PI.f32)) 4) 2)))
(*.f32 (cbrt.f32 (cbrt.f32 (PI.f32))) (cbrt.f32 (pow.f32 (cbrt.f32 (PI.f32)) 8)))
(*.f32 (pow.f32 (pow.f32 (PI.f32) 5/2) 1/3) (pow.f32 (PI.f32) 1/6))
(*.f32 (pow.f32 (PI.f32) 1/6) (cbrt.f32 (pow.f32 (PI.f32) 5/2)))
(*.f32 (*.f32 (sqrt.f32 (PI.f32)) (cbrt.f32 (PI.f32))) (pow.f32 (PI.f32) 1/6))
(*.f32 (pow.f32 (PI.f32) 1/6) (*.f32 (cbrt.f32 (PI.f32)) (log.f32 (exp.f32 (sqrt.f32 (PI.f32))))))
(*.f32 (cbrt.f32 (PI.f32)) (*.f32 (sqrt.f32 (PI.f32)) (pow.f32 (PI.f32) 1/6)))
(*.f32 (cbrt.f32 (pow.f32 (pow.f32 (cbrt.f32 (PI.f32)) 4) 2)) (cbrt.f32 (cbrt.f32 (PI.f32))))
(*.f32 (cbrt.f32 (cbrt.f32 (PI.f32))) (cbrt.f32 (pow.f32 (pow.f32 (cbrt.f32 (PI.f32)) 4) 2)))
(*.f32 (cbrt.f32 (cbrt.f32 (PI.f32))) (cbrt.f32 (pow.f32 (cbrt.f32 (PI.f32)) 8)))
(*.f32 (cbrt.f32 (pow.f32 (PI.f32) 5/2)) (pow.f32 (PI.f32) 1/6))
(*.f32 (pow.f32 (PI.f32) 1/6) (cbrt.f32 (pow.f32 (PI.f32) 5/2)))
(*.f32 (*.f32 (sqrt.f32 (PI.f32)) (pow.f32 (PI.f32) 1/4)) (pow.f32 (PI.f32) 1/4))
(PI.f32)
(*.f32 (sqrt.f32 (pow.f32 (PI.f32) 3/2)) (pow.f32 (PI.f32) 1/4))
(*.f32 (pow.f32 (PI.f32) 1/4) (sqrt.f32 (pow.f32 (PI.f32) 3/2)))
(*.f32 (pow.f32 (PI.f32) 1/4) (fabs.f32 (pow.f32 (PI.f32) 3/4)))
(*.f32 (pow.f32 (PI.f32) 1/4) (pow.f32 (PI.f32) 3/4))
(*.f32 (sqrt.f32 (pow.f32 (cbrt.f32 (PI.f32)) 5)) (pow.f32 (PI.f32) 1/6))
(*.f32 (pow.f32 (PI.f32) 1/6) (sqrt.f32 (pow.f32 (cbrt.f32 (PI.f32)) 5)))
(*.f32 (pow.f32 (PI.f32) 1/6) (pow.f32 (cbrt.f32 (PI.f32)) 5/2))
(*.f32 (*.f32 (cbrt.f32 (PI.f32)) (cbrt.f32 (pow.f32 (cbrt.f32 (PI.f32)) 4))) (pow.f32 (cbrt.f32 (cbrt.f32 (PI.f32))) 2))
(*.f32 (cbrt.f32 (pow.f32 (cbrt.f32 (PI.f32)) 4)) (*.f32 (cbrt.f32 (PI.f32)) (pow.f32 (cbrt.f32 (cbrt.f32 (PI.f32))) 2)))
(*.f32 (cbrt.f32 (PI.f32)) (*.f32 (pow.f32 (cbrt.f32 (cbrt.f32 (PI.f32))) 2) (cbrt.f32 (pow.f32 (cbrt.f32 (PI.f32)) 4))))
(*.f32 (*.f32 (pow.f32 (cbrt.f32 (PI.f32)) 2) (pow.f32 (cbrt.f32 (cbrt.f32 (PI.f32))) 2)) (cbrt.f32 (cbrt.f32 (PI.f32))))
(PI.f32)
(*.f32 (*.f32 (pow.f32 (cbrt.f32 (PI.f32)) 2) (pow.f32 (PI.f32) 1/6)) (pow.f32 (PI.f32) 1/6))
(PI.f32)
(/.f32 (-.f32 (pow.f32 (+.f32 (PI.f32) 1) 3) 1) (fma.f32 (+.f32 (PI.f32) 1) (+.f32 (PI.f32) 1) (+.f32 1 (+.f32 (PI.f32) 1))))
(/.f32 (+.f32 (pow.f32 (+.f32 (PI.f32) 1) 3) -1) (fma.f32 (+.f32 (PI.f32) 1) (+.f32 (PI.f32) 1) (+.f32 (PI.f32) 2)))
(/.f32 (+.f32 -1 (pow.f32 (+.f32 (PI.f32) 1) 3)) (fma.f32 (+.f32 (PI.f32) 1) (+.f32 (PI.f32) 1) (+.f32 (PI.f32) 2)))
(/.f32 (+.f32 -1 (pow.f32 (+.f32 (PI.f32) 1) 3)) (+.f32 1 (*.f32 (+.f32 (PI.f32) 1) (+.f32 (PI.f32) 2))))
(/.f32 (fma.f32 (+.f32 (PI.f32) 1) (+.f32 (PI.f32) 1) -1) (+.f32 (+.f32 (PI.f32) 1) 1))
(/.f32 (fma.f32 (+.f32 (PI.f32) 1) (+.f32 (PI.f32) 1) -1) (+.f32 (PI.f32) 2))
(/.f32 (*.f32 (+.f32 (PI.f32) 2) (PI.f32)) (+.f32 (PI.f32) 2))
(*.f32 (+.f32 (PI.f32) 2) (/.f32 (PI.f32) (+.f32 (PI.f32) 2)))
(pow.f32 (PI.f32) 1)
(PI.f32)
(pow.f32 (cbrt.f32 (PI.f32)) 3)
(PI.f32)
(pow.f32 (pow.f32 (PI.f32) 2) 1/2)
(PI.f32)
(pow.f32 (pow.f32 (PI.f32) 3) 1/3)
(PI.f32)
(pow.f32 (sqrt.f32 (PI.f32)) 2)
(PI.f32)
(pow.f32 (E.f32) (log.f32 (PI.f32)))
(PI.f32)
(pow.f32 (exp.f32 (pow.f32 (cbrt.f32 (log.f32 (PI.f32))) 2)) (cbrt.f32 (log.f32 (PI.f32))))
(pow.f32 (exp.f32 (sqrt.f32 (log.f32 (PI.f32)))) (sqrt.f32 (log.f32 (PI.f32))))
(sqrt.f32 (pow.f32 (PI.f32) 2))
(PI.f32)
(fabs.f32 (PI.f32))
(PI.f32)
(log.f32 (exp.f32 (PI.f32)))
(PI.f32)
(cbrt.f32 (pow.f32 (PI.f32) 3))
(PI.f32)
(expm1.f32 (log1p.f32 (PI.f32)))
(PI.f32)
(log1p.f32 (expm1.f32 (PI.f32)))
(PI.f32)
(exp.f32 (log.f32 (PI.f32)))
(PI.f32)
(fma.f32 1 (+.f32 (PI.f32) 1) -1)
(PI.f32)
(fma.f32 (+.f32 (PI.f32) 1) 1 -1)
(PI.f32)
(fma.f32 (*.f32 (cbrt.f32 (+.f32 (PI.f32) 1)) (cbrt.f32 (+.f32 (PI.f32) 1))) (cbrt.f32 (+.f32 (PI.f32) 1)) -1)
(PI.f32)
(fma.f32 (sqrt.f32 (+.f32 (PI.f32) 1)) (sqrt.f32 (+.f32 (PI.f32) 1)) -1)
(PI.f32)

eval28.0ms (0.2%)

Compiler

Compiled 1634 to 882 computations (46% saved)

prune18.0ms (0.1%)

Pruning

4 alts after pruning (3 fresh and 1 done)

PrunedKeptTotal
New80383
Fresh000
Picked011
Done000
Total80484
Accuracy
99.5%
Counts
84 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
96.3%
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (sin.f32 (*.f32 (*.f32 2 (-.f32 (+.f32 (PI.f32) 1) 1)) u2)))
98.0%
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (sin.f32 (*.f32 (*.f32 2 (*.f32 (log.f32 (E.f32)) (PI.f32))) u2)))
96.0%
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (sin.f32 (*.f32 (*.f32 2 (*.f32 (cbrt.f32 (cbrt.f32 (PI.f32))) (cbrt.f32 (pow.f32 (cbrt.f32 (PI.f32)) 8)))) u2)))
98.5%
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
Compiler

Compiled 75 to 65 computations (13.3% saved)

localize3.6s (26.6%)

Localize:

Found 4 expressions with local error:

NewAccuracyProgram
6.3%
(PI.f32)
6.3%
(PI.f32)
6.3%
(E.f32)
6.3%
(PI.f32)
Compiler

Compiled 236 to 108 computations (54.2% saved)

Precisions
Click to see histograms. Total time spent on operations: 1.7s
Operation ival-mult, time spent: 416.0ms, 25.0% of total-time
Operation ival-add, time spent: 249.0ms, 15.0% of total-time
Operation ival-sub, time spent: 146.0ms, 9.0% of total-time
Operation ival-pow, time spent: 139.0ms, 8.0% of total-time
Operation ival-sin, time spent: 134.0ms, 8.0% of total-time
Operation ival-log, time spent: 125.0ms, 7.0% of total-time
Operation ival-cbrt, time spent: 124.0ms, 7.0% of total-time
Operation ival-e, time spent: 104.0ms, 6.0% of total-time
Operation composed, time spent: 102.0ms, 6.0% of total-time
Operation const, time spent: 64.0ms, 4.0% of total-time
Operation ival-neg, time spent: 34.0ms, 2.0% of total-time
Operation ival-sqrt, time spent: 26.0ms, 2.0% of total-time
Operation ival-pi, time spent: 11.0ms, 1.0% of total-time

series0.0ms (0%)

Counts
1 → 0

rewrite108.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
602×log1p-expm1-u
602×expm1-log1p-u
438×prod-diff
414×pow-unpow
356×pow-prod-down
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
033
1253
22243
321073
Stop Event
node limit
Counts
1 → 58
Calls
Call 1
Inputs
(E.f32)
Outputs
(+.f32 (E.f32) 0)
(+.f32 (E.f32) (log.f32 (pow.f32 1 (E.f32))))
(+.f32 (+.f32 (E.f32) 1) -1)
(+.f32 0 (E.f32))
(+.f32 (*.f32 2 (*.f32 1/3 (E.f32))) (*.f32 1/3 (E.f32)))
(+.f32 (*.f32 1/3 (E.f32)) (*.f32 2 (*.f32 1/3 (E.f32))))
(+.f32 (*.f32 1/3 (E.f32)) (log.f32 (pow.f32 (exp.f32 2/3) (E.f32))))
(+.f32 (*.f32 1/2 (E.f32)) (*.f32 1/2 (E.f32)))
(+.f32 (log.f32 (pow.f32 1 (E.f32))) (E.f32))
(+.f32 (log.f32 (pow.f32 (exp.f32 2/3) (E.f32))) (*.f32 1/3 (E.f32)))
(-.f32 (+.f32 (E.f32) 1) 1)
(-.f32 (log1p.f32 (pow.f32 (expm1.f32 (E.f32)) 3)) (log.f32 (+.f32 1 (-.f32 (pow.f32 (expm1.f32 (E.f32)) 2) (expm1.f32 (E.f32))))))
(-.f32 (log.f32 (-.f32 1 (pow.f32 (expm1.f32 (E.f32)) 2))) (log.f32 (-.f32 1 (expm1.f32 (E.f32)))))
(*.f32 (E.f32) 1)
(*.f32 1 (E.f32))
(*.f32 (exp.f32 1/3) (exp.f32 2/3))
(*.f32 (exp.f32 2/3) (exp.f32 1/3))
(*.f32 (exp.f32 1/2) (exp.f32 1/2))
(*.f32 1/3 (*.f32 3 (E.f32)))
(*.f32 2 (*.f32 1/2 (E.f32)))
(*.f32 3 (*.f32 1/3 (E.f32)))
(*.f32 (exp.f32 2/9) (*.f32 (exp.f32 1/9) (exp.f32 2/3)))
(*.f32 (exp.f32 1/9) (log.f32 (exp.f32 (exp.f32 8/9))))
(*.f32 (exp.f32 4/9) (cbrt.f32 (exp.f32 5/3)))
(*.f32 (exp.f32 1/6) (exp.f32 5/6))
(*.f32 (exp.f32 1/6) (log.f32 (exp.f32 (exp.f32 5/6))))
(*.f32 (exp.f32 1/4) (sqrt.f32 (exp.f32 3/2)))
(*.f32 (exp.f32 1/4) (log.f32 (exp.f32 (sqrt.f32 (exp.f32 3/2)))))
(*.f32 (*.f32 1/3 (E.f32)) 3)
(*.f32 (exp.f32 5/6) (exp.f32 1/6))
(*.f32 (*.f32 (E.f32) 2) 1/2)
(*.f32 (*.f32 3 (E.f32)) 1/3)
(*.f32 (exp.f32 8/9) (exp.f32 1/9))
(*.f32 (sqrt.f32 (exp.f32 3/2)) (exp.f32 1/4))
(*.f32 (/.f32 (E.f32) 2) 2)
(*.f32 (*.f32 (exp.f32 1/3) (exp.f32 4/9)) (exp.f32 2/9))
(/.f32 (-.f32 (pow.f32 (+.f32 (E.f32) 1) 3) 1) (+.f32 (pow.f32 (+.f32 (E.f32) 1) 2) (+.f32 1 (+.f32 (E.f32) 1))))
(/.f32 (-.f32 (pow.f32 (+.f32 (E.f32) 1) 2) 1) (+.f32 (+.f32 (E.f32) 1) 1))
(pow.f32 (E.f32) 1)
(pow.f32 (exp.f32 1/3) 3)
(pow.f32 (exp.f32 2/3) 3/2)
(pow.f32 (exp.f32 2) 1/2)
(pow.f32 (exp.f32 3) 1/3)
(pow.f32 (exp.f32 1/2) 2)
(pow.f32 (exp.f32 6) 1/6)
(pow.f32 (exp.f32 3/2) 2/3)
(pow.f32 (exp.f32 4) 1/4)
(sqrt.f32 (exp.f32 2))
(fabs.f32 (E.f32))
(log.f32 (exp.f32 (E.f32)))
(cbrt.f32 (exp.f32 3))
(expm1.f32 (log1p.f32 (E.f32)))
(log1p.f32 (expm1.f32 (E.f32)))
(exp.f32 1)
(fma.f32 1 (+.f32 (E.f32) 1) -1)
(fma.f32 (+.f32 (E.f32) 1) 1 -1)
(fma.f32 (pow.f32 (cbrt.f32 (+.f32 (E.f32) 1)) 2) (cbrt.f32 (+.f32 (E.f32) 1)) -1)
(fma.f32 (hypot.f32 1 (exp.f32 1/2)) (hypot.f32 1 (exp.f32 1/2)) -1)

simplify44.0ms (0.3%)

Algorithm
egg-herbie
Rules
694×distribute-lft-in
669×distribute-rgt-in
485×associate-+l+
469×associate-+r+
395×distribute-lft-out
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01434294967752
1301472
21193472
Stop Event
node limit
Counts
58 → 69
Calls
Call 1
Inputs
(+.f32 (E.f32) 0)
(+.f32 (E.f32) (log.f32 (pow.f32 1 (E.f32))))
(+.f32 (+.f32 (E.f32) 1) -1)
(+.f32 0 (E.f32))
(+.f32 (*.f32 2 (*.f32 1/3 (E.f32))) (*.f32 1/3 (E.f32)))
(+.f32 (*.f32 1/3 (E.f32)) (*.f32 2 (*.f32 1/3 (E.f32))))
(+.f32 (*.f32 1/3 (E.f32)) (log.f32 (pow.f32 (exp.f32 2/3) (E.f32))))
(+.f32 (*.f32 1/2 (E.f32)) (*.f32 1/2 (E.f32)))
(+.f32 (log.f32 (pow.f32 1 (E.f32))) (E.f32))
(+.f32 (log.f32 (pow.f32 (exp.f32 2/3) (E.f32))) (*.f32 1/3 (E.f32)))
(-.f32 (+.f32 (E.f32) 1) 1)
(-.f32 (log1p.f32 (pow.f32 (expm1.f32 (E.f32)) 3)) (log.f32 (+.f32 1 (-.f32 (pow.f32 (expm1.f32 (E.f32)) 2) (expm1.f32 (E.f32))))))
(-.f32 (log.f32 (-.f32 1 (pow.f32 (expm1.f32 (E.f32)) 2))) (log.f32 (-.f32 1 (expm1.f32 (E.f32)))))
(*.f32 (E.f32) 1)
(*.f32 1 (E.f32))
(*.f32 (exp.f32 1/3) (exp.f32 2/3))
(*.f32 (exp.f32 2/3) (exp.f32 1/3))
(*.f32 (exp.f32 1/2) (exp.f32 1/2))
(*.f32 1/3 (*.f32 3 (E.f32)))
(*.f32 2 (*.f32 1/2 (E.f32)))
(*.f32 3 (*.f32 1/3 (E.f32)))
(*.f32 (exp.f32 2/9) (*.f32 (exp.f32 1/9) (exp.f32 2/3)))
(*.f32 (exp.f32 1/9) (log.f32 (exp.f32 (exp.f32 8/9))))
(*.f32 (exp.f32 4/9) (cbrt.f32 (exp.f32 5/3)))
(*.f32 (exp.f32 1/6) (exp.f32 5/6))
(*.f32 (exp.f32 1/6) (log.f32 (exp.f32 (exp.f32 5/6))))
(*.f32 (exp.f32 1/4) (sqrt.f32 (exp.f32 3/2)))
(*.f32 (exp.f32 1/4) (log.f32 (exp.f32 (sqrt.f32 (exp.f32 3/2)))))
(*.f32 (*.f32 1/3 (E.f32)) 3)
(*.f32 (exp.f32 5/6) (exp.f32 1/6))
(*.f32 (*.f32 (E.f32) 2) 1/2)
(*.f32 (*.f32 3 (E.f32)) 1/3)
(*.f32 (exp.f32 8/9) (exp.f32 1/9))
(*.f32 (sqrt.f32 (exp.f32 3/2)) (exp.f32 1/4))
(*.f32 (/.f32 (E.f32) 2) 2)
(*.f32 (*.f32 (exp.f32 1/3) (exp.f32 4/9)) (exp.f32 2/9))
(/.f32 (-.f32 (pow.f32 (+.f32 (E.f32) 1) 3) 1) (+.f32 (pow.f32 (+.f32 (E.f32) 1) 2) (+.f32 1 (+.f32 (E.f32) 1))))
(/.f32 (-.f32 (pow.f32 (+.f32 (E.f32) 1) 2) 1) (+.f32 (+.f32 (E.f32) 1) 1))
(pow.f32 (E.f32) 1)
(pow.f32 (exp.f32 1/3) 3)
(pow.f32 (exp.f32 2/3) 3/2)
(pow.f32 (exp.f32 2) 1/2)
(pow.f32 (exp.f32 3) 1/3)
(pow.f32 (exp.f32 1/2) 2)
(pow.f32 (exp.f32 6) 1/6)
(pow.f32 (exp.f32 3/2) 2/3)
(pow.f32 (exp.f32 4) 1/4)
(sqrt.f32 (exp.f32 2))
(fabs.f32 (E.f32))
(log.f32 (exp.f32 (E.f32)))
(cbrt.f32 (exp.f32 3))
(expm1.f32 (log1p.f32 (E.f32)))
(log1p.f32 (expm1.f32 (E.f32)))
(exp.f32 1)
(fma.f32 1 (+.f32 (E.f32) 1) -1)
(fma.f32 (+.f32 (E.f32) 1) 1 -1)
(fma.f32 (pow.f32 (cbrt.f32 (+.f32 (E.f32) 1)) 2) (cbrt.f32 (+.f32 (E.f32) 1)) -1)
(fma.f32 (hypot.f32 1 (exp.f32 1/2)) (hypot.f32 1 (exp.f32 1/2)) -1)
Outputs
(+.f32 (E.f32) 0)
(E.f32)
(+.f32 (E.f32) (log.f32 (pow.f32 1 (E.f32))))
(E.f32)
(+.f32 (+.f32 (E.f32) 1) -1)
(E.f32)
(+.f32 0 (E.f32))
(E.f32)
(+.f32 (*.f32 2 (*.f32 1/3 (E.f32))) (*.f32 1/3 (E.f32)))
(E.f32)
(+.f32 (*.f32 1/3 (E.f32)) (*.f32 2 (*.f32 1/3 (E.f32))))
(E.f32)
(+.f32 (*.f32 1/3 (E.f32)) (log.f32 (pow.f32 (exp.f32 2/3) (E.f32))))
(E.f32)
(+.f32 (*.f32 1/2 (E.f32)) (*.f32 1/2 (E.f32)))
(E.f32)
(+.f32 (log.f32 (pow.f32 1 (E.f32))) (E.f32))
(E.f32)
(+.f32 (log.f32 (pow.f32 (exp.f32 2/3) (E.f32))) (*.f32 1/3 (E.f32)))
(E.f32)
(-.f32 (+.f32 (E.f32) 1) 1)
(E.f32)
(-.f32 (log1p.f32 (pow.f32 (expm1.f32 (E.f32)) 3)) (log.f32 (+.f32 1 (-.f32 (pow.f32 (expm1.f32 (E.f32)) 2) (expm1.f32 (E.f32))))))
(-.f32 (log1p.f32 (pow.f32 (expm1.f32 (E.f32)) 3)) (log1p.f32 (-.f32 (pow.f32 (expm1.f32 (E.f32)) 2) (expm1.f32 (E.f32)))))
(-.f32 (log1p.f32 (pow.f32 (expm1.f32 (E.f32)) 3)) (log1p.f32 (*.f32 (expm1.f32 (E.f32)) (+.f32 (expm1.f32 (E.f32)) -1))))
(-.f32 (log.f32 (-.f32 1 (pow.f32 (expm1.f32 (E.f32)) 2))) (log.f32 (-.f32 1 (expm1.f32 (E.f32)))))
(-.f32 (log1p.f32 (neg.f32 (pow.f32 (expm1.f32 (E.f32)) 2))) (log1p.f32 (neg.f32 (expm1.f32 (E.f32)))))
(*.f32 (E.f32) 1)
(E.f32)
(*.f32 1 (E.f32))
(E.f32)
(*.f32 (exp.f32 1/3) (exp.f32 2/3))
(E.f32)
(*.f32 (exp.f32 2/3) (exp.f32 1/3))
(E.f32)
(*.f32 (exp.f32 1/2) (exp.f32 1/2))
(E.f32)
(*.f32 1/3 (*.f32 3 (E.f32)))
(E.f32)
(*.f32 2 (*.f32 1/2 (E.f32)))
(E.f32)
(*.f32 3 (*.f32 1/3 (E.f32)))
(E.f32)
(*.f32 (exp.f32 2/9) (*.f32 (exp.f32 1/9) (exp.f32 2/3)))
(E.f32)
(*.f32 (exp.f32 1/9) (log.f32 (exp.f32 (exp.f32 8/9))))
(E.f32)
(*.f32 (exp.f32 4/9) (cbrt.f32 (exp.f32 5/3)))
(*.f32 (exp.f32 1/6) (exp.f32 5/6))
(E.f32)
(*.f32 (exp.f32 1/6) (log.f32 (exp.f32 (exp.f32 5/6))))
(E.f32)
(*.f32 (exp.f32 1/4) (sqrt.f32 (exp.f32 3/2)))
(*.f32 (exp.f32 1/4) (log.f32 (exp.f32 (sqrt.f32 (exp.f32 3/2)))))
(*.f32 (exp.f32 1/4) (sqrt.f32 (exp.f32 3/2)))
(*.f32 (*.f32 1/3 (E.f32)) 3)
(E.f32)
(*.f32 (exp.f32 5/6) (exp.f32 1/6))
(E.f32)
(*.f32 (*.f32 (E.f32) 2) 1/2)
(E.f32)
(*.f32 (*.f32 3 (E.f32)) 1/3)
(E.f32)
(*.f32 (exp.f32 8/9) (exp.f32 1/9))
(E.f32)
(*.f32 (sqrt.f32 (exp.f32 3/2)) (exp.f32 1/4))
(*.f32 (exp.f32 1/4) (sqrt.f32 (exp.f32 3/2)))
(*.f32 (/.f32 (E.f32) 2) 2)
(E.f32)
(*.f32 (*.f32 (exp.f32 1/3) (exp.f32 4/9)) (exp.f32 2/9))
(E.f32)
(/.f32 (-.f32 (pow.f32 (+.f32 (E.f32) 1) 3) 1) (+.f32 (pow.f32 (+.f32 (E.f32) 1) 2) (+.f32 1 (+.f32 (E.f32) 1))))
(/.f32 (+.f32 (pow.f32 (+.f32 (E.f32) 1) 3) -1) (+.f32 (pow.f32 (+.f32 (E.f32) 1) 2) (+.f32 (E.f32) 2)))
(/.f32 (+.f32 -1 (pow.f32 (+.f32 (E.f32) 1) 3)) (+.f32 (pow.f32 (+.f32 (E.f32) 1) 2) (+.f32 (E.f32) 2)))
(/.f32 (+.f32 -1 (pow.f32 (+.f32 (E.f32) 1) 3)) (+.f32 2 (+.f32 (E.f32) (pow.f32 (+.f32 (E.f32) 1) 2))))
(/.f32 (-.f32 (pow.f32 (+.f32 (E.f32) 1) 2) 1) (+.f32 (+.f32 (E.f32) 1) 1))
(/.f32 (+.f32 (pow.f32 (+.f32 (E.f32) 1) 2) -1) (+.f32 (E.f32) 2))
(/.f32 (*.f32 (+.f32 (E.f32) 2) (E.f32)) (+.f32 (E.f32) 2))
(/.f32 (*.f32 (E.f32) (+.f32 (E.f32) 2)) (+.f32 (E.f32) 2))
(pow.f32 (E.f32) 1)
(E.f32)
(pow.f32 (exp.f32 1/3) 3)
(E.f32)
(pow.f32 (exp.f32 2/3) 3/2)
(pow.f32 (exp.f32 2) 1/2)
(sqrt.f32 (exp.f32 2))
(pow.f32 (exp.f32 3) 1/3)
(cbrt.f32 (exp.f32 3))
(pow.f32 (exp.f32 1/2) 2)
(E.f32)
(pow.f32 (exp.f32 6) 1/6)
(pow.f32 (exp.f32 3/2) 2/3)
(*.f32 (cbrt.f32 (exp.f32 3/2)) (cbrt.f32 (exp.f32 3/2)))
(pow.f32 (exp.f32 4) 1/4)
(sqrt.f32 (exp.f32 2))
(fabs.f32 (E.f32))
(E.f32)
(log.f32 (exp.f32 (E.f32)))
(E.f32)
(cbrt.f32 (exp.f32 3))
(expm1.f32 (log1p.f32 (E.f32)))
(E.f32)
(log1p.f32 (expm1.f32 (E.f32)))
(E.f32)
(exp.f32 1)
(E.f32)
(fma.f32 1 (+.f32 (E.f32) 1) -1)
(E.f32)
(fma.f32 (+.f32 (E.f32) 1) 1 -1)
(E.f32)
(fma.f32 (pow.f32 (cbrt.f32 (+.f32 (E.f32) 1)) 2) (cbrt.f32 (+.f32 (E.f32) 1)) -1)
(E.f32)
(fma.f32 (hypot.f32 1 (exp.f32 1/2)) (hypot.f32 1 (exp.f32 1/2)) -1)
(E.f32)

eval445.0ms (3.2%)

Compiler

Compiled 26742 to 14918 computations (44.2% saved)

prune356.0ms (2.6%)

Pruning

4 alts after pruning (1 fresh and 3 done)

PrunedKeptTotal
New106411065
Fresh000
Picked123
Done011
Total106541069
Accuracy
99.5%
Counts
1069 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
96.3%
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (sin.f32 (*.f32 (*.f32 2 (-.f32 (+.f32 (PI.f32) 1) 1)) u2)))
96.0%
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (sin.f32 (*.f32 (*.f32 2 (*.f32 (log.f32 (E.f32)) (*.f32 (log.f32 (E.f32)) (PI.f32)))) u2)))
98.0%
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (sin.f32 (*.f32 (*.f32 2 (*.f32 (log.f32 (E.f32)) (PI.f32))) u2)))
98.5%
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
Compiler

Compiled 73 to 63 computations (13.7% saved)

localize1.2s (8.4%)

Localize:

Found 2 expressions with local error:

NewAccuracyProgram
6.3%
(PI.f32)
6.3%
(E.f32)
Compiler

Compiled 86 to 28 computations (67.4% saved)

Precisions
Click to see histograms. Total time spent on operations: 628.0ms
Operation ival-mult, time spent: 148.0ms, 24.0% of total-time
Operation ival-log, time spent: 129.0ms, 21.0% of total-time
Operation ival-e, time spent: 104.0ms, 17.0% of total-time
Operation composed, time spent: 93.0ms, 15.0% of total-time
Operation ival-sin, time spent: 47.0ms, 7.0% of total-time
Operation ival-add, time spent: 34.0ms, 5.0% of total-time
Operation ival-neg, time spent: 26.0ms, 4.0% of total-time
Operation ival-sqrt, time spent: 23.0ms, 4.0% of total-time
Operation const, time spent: 14.0ms, 2.0% of total-time
Operation ival-pi, time spent: 11.0ms, 2.0% of total-time

eval97.0ms (0.7%)

Compiler

Compiled 5426 to 2841 computations (47.6% saved)

prune56.0ms (0.4%)

Pruning

4 alts after pruning (0 fresh and 4 done)

PrunedKeptTotal
New2210221
Fresh000
Picked011
Done033
Total2214225
Accuracy
99.5%
Counts
225 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
96.3%
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (sin.f32 (*.f32 (*.f32 2 (-.f32 (+.f32 (PI.f32) 1) 1)) u2)))
96.0%
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (sin.f32 (*.f32 (*.f32 2 (*.f32 (log.f32 (E.f32)) (*.f32 (log.f32 (E.f32)) (PI.f32)))) u2)))
98.0%
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (sin.f32 (*.f32 (*.f32 2 (*.f32 (log.f32 (E.f32)) (PI.f32))) u2)))
98.5%
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
Compiler

Compiled 170 to 120 computations (29.4% saved)

regimes59.0ms (0.4%)

Accuracy

Total -13.5b remaining (-2725.1%)

Threshold costs -13.5b (-2725.1%)

Counts
6 → 1
Calls
Call 1
Inputs
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
(*.f32 (sqrt.f32 (neg.f32 (log.f32 (-.f32 1 u1)))) (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (sin.f32 (*.f32 (*.f32 2 (-.f32 (+.f32 (PI.f32) 1) 1)) u2)))
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (sin.f32 (*.f32 (*.f32 2 (*.f32 (log.f32 (E.f32)) (PI.f32))) u2)))
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (sin.f32 (*.f32 (*.f32 2 (*.f32 (log.f32 (E.f32)) (*.f32 (log.f32 (E.f32)) (PI.f32)))) u2)))
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (sin.f32 (*.f32 (*.f32 2 (*.f32 (cbrt.f32 (cbrt.f32 (PI.f32))) (cbrt.f32 (pow.f32 (cbrt.f32 (PI.f32)) 8)))) u2)))
Outputs
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
Calls

10 calls:

7.0ms
cosTheta_i
7.0ms
(*.f32 (*.f32 2 (PI.f32)) u2)
6.0ms
(sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2))
6.0ms
u2
6.0ms
u1
Results
AccuracySegmentsBranch
98.5%1cosTheta_i
98.5%1u1
98.5%1u2
98.5%1(*.f32 (sqrt.f32 (neg.f32 (log.f32 (-.f32 1 u1)))) (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
98.5%1(sqrt.f32 (neg.f32 (log.f32 (-.f32 1 u1))))
98.5%1(neg.f32 (log.f32 (-.f32 1 u1)))
98.5%1(log.f32 (-.f32 1 u1))
98.5%1(-.f32 1 u1)
98.5%1(sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2))
98.5%1(*.f32 (*.f32 2 (PI.f32)) u2)
Compiler

Compiled 75 to 64 computations (14.7% saved)

simplify3.0ms (0%)

Algorithm
egg-herbie
Rules
*-commutative
sub-neg
neg-sub0
neg-mul-1
+-commutative
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01847
12747
23147
33347
Stop Event
done
saturated
Calls
Call 1
Inputs
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
Outputs
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
Compiler

Compiled 15 to 13 computations (13.3% saved)

soundness412.0ms (3%)

Rules
1264×fma-define
555×distribute-neg-in
547×unsub-neg
479×associate-+l+
455×fma-neg
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
049559
1109509
2205509
3376509
4708509
51281509
61673509
72148509
83469509
93801509
104596509
116037509
126505509
136574509
146583509
157066509
Stop Event
node limit
Compiler

Compiled 42 to 33 computations (21.4% saved)

end0.0ms (0%)

preprocess49.0ms (0.4%)

Remove

(negabs u2)

(abs cosTheta_i)

Compiler

Compiled 182 to 158 computations (13.2% saved)

Profiling

Loading profile data...