Details

Time bar (total: 4.3s)

analyze51.0ms (1.2%)

Algorithm
search
Search
TrueOtherFalseIter
0%2.1%97.9%0
0%2.1%97.9%1
1%1%97.9%2
1%1%97.9%3
1.5%0.5%97.9%4
1.5%0.5%97.9%5
1.8%0.3%97.9%6
1.8%0.3%97.9%7
1.9%0.1%97.9%8
1.9%0.1%97.9%9
2%0.1%97.9%10
2%0.1%97.9%11
2%0%97.9%12
Compiler

Compiled 50 to 36 computations (28% saved)

sample2.5s (56.9%)

Results
2.4s8256×body64valid

preprocess62.0ms (1.4%)

Algorithm
egg-herbie
Rules
654×associate-/l*_binary32
635×associate-/l/_binary32
596×times-frac_binary32
556×associate-*r/_binary32
486×associate-/r/_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
041106
111786
244670
3187364
4521664
5618764
6712964
022
Stop Event
saturated
node limit
Calls
Call 1
Inputs
0
1
Outputs
0
1
Call 2
Inputs
(+.f32 (/.f32 (*.f32 1/4 (exp.f32 (/.f32 (neg.f32 r) s))) (*.f32 (*.f32 (*.f32 2 (PI.f32)) s) r)) (/.f32 (*.f32 3/4 (exp.f32 (/.f32 (neg.f32 r) (*.f32 3 s)))) (*.f32 (*.f32 (*.f32 6 (PI.f32)) s) r)))
(+.f32 (/.f32 (*.f32 1/4 (exp.f32 (/.f32 (neg.f32 s) r))) (*.f32 (*.f32 (*.f32 2 (PI.f32)) r) s)) (/.f32 (*.f32 3/4 (exp.f32 (/.f32 (neg.f32 s) (*.f32 3 r)))) (*.f32 (*.f32 (*.f32 6 (PI.f32)) r) s)))
Outputs
(+.f32 (/.f32 (*.f32 1/4 (exp.f32 (/.f32 (neg.f32 r) s))) (*.f32 (*.f32 (*.f32 2 (PI.f32)) s) r)) (/.f32 (*.f32 3/4 (exp.f32 (/.f32 (neg.f32 r) (*.f32 3 s)))) (*.f32 (*.f32 (*.f32 6 (PI.f32)) s) r)))
(+.f32 (*.f32 (/.f32 1/4 (*.f32 s (*.f32 2 (PI.f32)))) (/.f32 (exp.f32 (/.f32 (neg.f32 r) s)) r)) (*.f32 (/.f32 3/4 (*.f32 s (*.f32 (PI.f32) 6))) (/.f32 (exp.f32 (/.f32 (neg.f32 r) (*.f32 s 3))) r)))
(fma.f32 (/.f32 1/8 (*.f32 s (PI.f32))) (/.f32 (exp.f32 (/.f32 (neg.f32 r) s)) r) (*.f32 (/.f32 1/8 (*.f32 s (PI.f32))) (/.f32 (exp.f32 (*.f32 -1/3 (/.f32 r s))) r)))
(*.f32 (/.f32 (/.f32 1/8 (PI.f32)) s) (+.f32 (/.f32 (pow.f32 (exp.f32 -1/3) (/.f32 r s)) r) (/.f32 (exp.f32 (/.f32 (neg.f32 r) s)) r)))
(*.f32 (/.f32 (/.f32 (/.f32 1/8 (PI.f32)) r) s) (+.f32 (exp.f32 (/.f32 (neg.f32 r) s)) (pow.f32 (exp.f32 -1/3) (/.f32 r s))))
(+.f32 (/.f32 (*.f32 1/4 (exp.f32 (/.f32 (neg.f32 s) r))) (*.f32 (*.f32 (*.f32 2 (PI.f32)) r) s)) (/.f32 (*.f32 3/4 (exp.f32 (/.f32 (neg.f32 s) (*.f32 3 r)))) (*.f32 (*.f32 (*.f32 6 (PI.f32)) r) s)))
(+.f32 (*.f32 (/.f32 1/4 (*.f32 r (*.f32 2 (PI.f32)))) (/.f32 (exp.f32 (/.f32 (neg.f32 s) r)) s)) (*.f32 (/.f32 3/4 (*.f32 6 (*.f32 (PI.f32) r))) (/.f32 (exp.f32 (/.f32 (neg.f32 s) (*.f32 r 3))) s)))
(fma.f32 (/.f32 1/8 (*.f32 r (PI.f32))) (/.f32 (exp.f32 (neg.f32 (/.f32 s r))) s) (*.f32 (/.f32 1/8 (*.f32 r (PI.f32))) (/.f32 (exp.f32 (*.f32 -1/3 (/.f32 s r))) s)))
(*.f32 (/.f32 (/.f32 1/8 (PI.f32)) r) (+.f32 (/.f32 (exp.f32 (/.f32 (neg.f32 s) r)) s) (/.f32 (pow.f32 (exp.f32 -1/3) (/.f32 s r)) s)))
(*.f32 (/.f32 (/.f32 (/.f32 1/8 (PI.f32)) r) s) (+.f32 (exp.f32 (/.f32 (neg.f32 s) r)) (pow.f32 (exp.f32 -1/3) (/.f32 s r))))
Compiler

Compiled 35 to 25 computations (28.6% saved)

simplify67.0ms (1.6%)

Algorithm
egg-herbie
Rules
676×fma-neg_binary32
622×associate-*l*_binary32
523×associate-*r*_binary32
423×associate-/r*_binary32
405×*-commutative_binary32
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
02653
16643
224435
3102632
4341732
5538532
6584032
7746332
Stop Event
node limit
Counts
1 → 2
Calls
Call 1
Inputs
(+.f32 (/.f32 (*.f32 1/4 (exp.f32 (/.f32 (neg.f32 r) s))) (*.f32 (*.f32 (*.f32 2 (PI.f32)) s) r)) (/.f32 (*.f32 3/4 (exp.f32 (/.f32 (neg.f32 r) (*.f32 3 s)))) (*.f32 (*.f32 (*.f32 6 (PI.f32)) s) r)))
Outputs
(+.f32 (/.f32 (*.f32 1/4 (exp.f32 (/.f32 (neg.f32 r) s))) (*.f32 (*.f32 (*.f32 2 (PI.f32)) s) r)) (/.f32 (*.f32 3/4 (exp.f32 (/.f32 (neg.f32 r) (*.f32 3 s)))) (*.f32 (*.f32 (*.f32 6 (PI.f32)) s) r)))
(+.f32 (*.f32 (/.f32 1/4 (*.f32 s (*.f32 2 (PI.f32)))) (/.f32 (exp.f32 (/.f32 (neg.f32 r) s)) r)) (*.f32 (/.f32 3/4 (*.f32 6 (*.f32 (PI.f32) s))) (/.f32 (exp.f32 (/.f32 (neg.f32 r) (*.f32 s 3))) r)))
(fma.f32 (/.f32 1/8 (*.f32 s (PI.f32))) (/.f32 (exp.f32 (*.f32 -1/3 (/.f32 r s))) r) (*.f32 (/.f32 1/8 (*.f32 s (PI.f32))) (/.f32 (exp.f32 (/.f32 (neg.f32 r) s)) r)))
(*.f32 (/.f32 1/8 (*.f32 s (PI.f32))) (+.f32 (/.f32 (exp.f32 (/.f32 (neg.f32 r) s)) r) (/.f32 (pow.f32 (exp.f32 -1/3) (/.f32 r s)) r)))
(*.f32 (/.f32 (/.f32 1/8 (*.f32 s (PI.f32))) r) (+.f32 (pow.f32 (exp.f32 -1/3) (/.f32 r s)) (exp.f32 (/.f32 (neg.f32 r) s))))
(*.f32 (/.f32 (/.f32 (/.f32 1/8 s) (PI.f32)) r) (+.f32 (exp.f32 (/.f32 (neg.f32 r) s)) (pow.f32 (exp.f32 r) (/.f32 -1/3 s))))

prune4.0ms (0.1%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
0.2b
Counts
3 → 2
Alt Table
StatusErrorProgram
1.1b
(*.f32 (/.f32 (/.f32 (/.f32 1/8 s) (PI.f32)) r) (+.f32 (exp.f32 (/.f32 (neg.f32 r) s)) (pow.f32 (exp.f32 r) (/.f32 -1/3 s))))
0.2b
(+.f32 (/.f32 (*.f32 1/4 (exp.f32 (/.f32 (neg.f32 r) s))) (*.f32 (*.f32 (*.f32 2 (PI.f32)) s) r)) (/.f32 (*.f32 3/4 (exp.f32 (/.f32 (neg.f32 r) (*.f32 3 s)))) (*.f32 (*.f32 (*.f32 6 (PI.f32)) s) r)))
Compiler

Compiled 169 to 117 computations (30.8% saved)

localize98.0ms (2.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(*.f32 (*.f32 (*.f32 2 (PI.f32)) s) r)
0.2b
(/.f32 (neg.f32 r) (*.f32 3 s))
0.3b
(*.f32 (*.f32 2 (PI.f32)) s)
0.3b
(*.f32 (*.f32 (*.f32 6 (PI.f32)) s) r)

series18.0ms (0.4%)

Counts
4 → 84
Calls

21 calls:

TimeVariablePointExpression
2.0ms
s
@inf
(/.f32 (neg.f32 r) (*.f32 3 s))
2.0ms
s
@-inf
(*.f32 (*.f32 (*.f32 2 (PI.f32)) s) r)
1.0ms
r
@0
(*.f32 (*.f32 (*.f32 6 (PI.f32)) s) r)
1.0ms
s
@inf
(*.f32 (*.f32 2 (PI.f32)) s)
1.0ms
s
@0
(*.f32 (*.f32 (*.f32 6 (PI.f32)) s) r)

rewrite67.0ms (1.5%)

Algorithm
batch-egg-rewrite
Rules
881×log-prod_binary32
392×pow2_binary32
282×pow1/3_binary32
276×expm1-udef_binary32
276×log1p-udef_binary32
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01639
133937
2443937
Stop Event
node limit
Counts
4 → 113
Calls
Call 1
Inputs
(*.f32 (*.f32 (*.f32 6 (PI.f32)) s) r)
(*.f32 (*.f32 2 (PI.f32)) s)
(/.f32 (neg.f32 r) (*.f32 3 s))
(*.f32 (*.f32 (*.f32 2 (PI.f32)) s) r)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f32 0 (*.f32 (*.f32 6 (PI.f32)) (*.f32 s r)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 (log.f32 (pow.f32 (cbrt.f32 (pow.f32 (pow.f32 (exp.f32 s) (*.f32 6 (PI.f32))) r)) 2)) (log.f32 (cbrt.f32 (pow.f32 (pow.f32 (exp.f32 s) (*.f32 6 (PI.f32))) r))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 (log.f32 (sqrt.f32 (pow.f32 (pow.f32 (exp.f32 s) (*.f32 6 (PI.f32))) r))) (log.f32 (sqrt.f32 (pow.f32 (pow.f32 (exp.f32 s) (*.f32 6 (PI.f32))) r))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f32 (exp.f32 (log1p.f32 (*.f32 (*.f32 6 (PI.f32)) (*.f32 s r)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (*.f32 (*.f32 6 (PI.f32)) (*.f32 s r)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (pow.f32 (*.f32 (*.f32 6 (PI.f32)) (*.f32 s r)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (cbrt.f32 (*.f32 (*.f32 6 (PI.f32)) (*.f32 s r))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (sqrt.f32 (*.f32 (*.f32 6 (PI.f32)) (*.f32 s r))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (*.f32 (pow.f32 (*.f32 (PI.f32) (*.f32 6 s)) 3) (pow.f32 r 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (*.f32 (pow.f32 r 3) (pow.f32 (*.f32 (PI.f32) (*.f32 6 s)) 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f32 (pow.f32 (*.f32 (*.f32 6 (PI.f32)) (*.f32 s r)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (pow.f32 (pow.f32 (exp.f32 s) (*.f32 6 (PI.f32))) r))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (+.f32 1 (expm1.f32 (*.f32 (*.f32 6 (PI.f32)) (*.f32 s r)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f32 (pow.f32 (*.f32 (*.f32 6 (PI.f32)) (*.f32 s r)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f32 (*.f32 (pow.f32 (*.f32 (PI.f32) (*.f32 6 s)) 3) (pow.f32 r 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f32 (*.f32 (pow.f32 r 3) (pow.f32 (*.f32 (PI.f32) (*.f32 6 s)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f32 (log.f32 (*.f32 (*.f32 6 (PI.f32)) (*.f32 s r))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f32 (*.f32 (log.f32 (*.f32 (*.f32 6 (PI.f32)) (*.f32 s r))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f32 (log1p.f32 (*.f32 (*.f32 6 (PI.f32)) (*.f32 s r))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f32 (expm1.f32 (*.f32 (*.f32 6 (PI.f32)) (*.f32 s r))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f32 0 (*.f32 (PI.f32) (*.f32 2 s)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 (log.f32 (pow.f32 (cbrt.f32 (pow.f32 (exp.f32 s) (*.f32 (PI.f32) 2))) 2)) (log.f32 (cbrt.f32 (pow.f32 (exp.f32 s) (*.f32 (PI.f32) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 (log.f32 (sqrt.f32 (pow.f32 (exp.f32 s) (*.f32 (PI.f32) 2)))) (log.f32 (sqrt.f32 (pow.f32 (exp.f32 s) (*.f32 (PI.f32) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f32 (exp.f32 (log1p.f32 (*.f32 (PI.f32) (*.f32 2 s)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (*.f32 (PI.f32) (*.f32 2 s)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (pow.f32 (*.f32 (PI.f32) (*.f32 2 s)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (cbrt.f32 (*.f32 (PI.f32) (*.f32 2 s))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (sqrt.f32 (*.f32 (PI.f32) (*.f32 2 s))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (*.f32 (pow.f32 s 3) (pow.f32 (*.f32 (PI.f32) 2) 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (*.f32 (pow.f32 (*.f32 (PI.f32) 2) 3) (pow.f32 s 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f32 (pow.f32 (*.f32 (PI.f32) (*.f32 2 s)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (pow.f32 (exp.f32 s) (*.f32 (PI.f32) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (+.f32 1 (expm1.f32 (*.f32 (PI.f32) (*.f32 2 s)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f32 (pow.f32 (*.f32 (PI.f32) (*.f32 2 s)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f32 (*.f32 (pow.f32 s 3) (pow.f32 (*.f32 (PI.f32) 2) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f32 (*.f32 (pow.f32 (*.f32 (PI.f32) 2) 3) (pow.f32 s 3)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f32 (log.f32 (*.f32 (PI.f32) (*.f32 2 s))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f32 (*.f32 (log.f32 (*.f32 (PI.f32) (*.f32 2 s))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f32 (log1p.f32 (*.f32 (PI.f32) (*.f32 2 s))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f32 (expm1.f32 (*.f32 (PI.f32) (*.f32 2 s))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f32 0 (*.f32 r (/.f32 1/3 s)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 (log.f32 (pow.f32 (cbrt.f32 (exp.f32 (*.f32 r (/.f32 1/3 s)))) 2)) (log.f32 (cbrt.f32 (exp.f32 (*.f32 r (/.f32 1/3 s))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 (log.f32 (sqrt.f32 (exp.f32 (*.f32 r (/.f32 1/3 s))))) (log.f32 (sqrt.f32 (exp.f32 (*.f32 r (/.f32 1/3 s))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f32 0 (*.f32 r (/.f32 1/3 s)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f32 (exp.f32 (log1p.f32 (*.f32 r (/.f32 1/3 s)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f32 (/.f32 0 (*.f32 s 3)) (*.f32 r (/.f32 1/3 s)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 r (/.f32 1/3 s))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 r (/.f32 1 (*.f32 s -3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (*.f32 r (/.f32 1/3 s)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 1 (*.f32 r (/.f32 1/3 s)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (cbrt.f32 (*.f32 r (/.f32 1/3 s))) (cbrt.f32 (pow.f32 (*.f32 r (/.f32 1/3 s)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (cbrt.f32 (pow.f32 (*.f32 r (/.f32 1/3 s)) 2)) (cbrt.f32 (*.f32 r (/.f32 1/3 s))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (pow.f32 (cbrt.f32 r) 2) (*.f32 (cbrt.f32 r) (/.f32 1/3 s)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (sqrt.f32 (*.f32 r (/.f32 1/3 s))) (sqrt.f32 (*.f32 r (/.f32 1/3 s))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (sqrt.f32 r) (*.f32 (sqrt.f32 r) (/.f32 1/3 s)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (/.f32 1/3 s) r)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 -1 (*.f32 r (/.f32 1/3 s)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (*.f32 r 1/3) (/.f32 1 s))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 1/3 (/.f32 r s))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (/.f32 1 s) (*.f32 r 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (/.f32 (sqrt.f32 r) s) (/.f32 (sqrt.f32 r) 3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (/.f32 (sqrt.f32 r) 3) (/.f32 (sqrt.f32 r) s))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (/.f32 (sqrt.f32 r) 1) (/.f32 (sqrt.f32 r) (*.f32 s 3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (/.f32 1 (cbrt.f32 (*.f32 (*.f32 s s) 9))) (/.f32 r (cbrt.f32 (*.f32 s 3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (/.f32 (sqrt.f32 r) (cbrt.f32 (*.f32 (*.f32 s s) 9))) (/.f32 (sqrt.f32 r) (cbrt.f32 (*.f32 s 3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (/.f32 1 (sqrt.f32 (*.f32 s 3))) (/.f32 r (sqrt.f32 (*.f32 s 3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (/.f32 (pow.f32 (cbrt.f32 r) 2) s) (/.f32 (cbrt.f32 r) 3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (/.f32 -1 s) (*.f32 r 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (/.f32 (pow.f32 (cbrt.f32 r) 2) 3) (/.f32 (cbrt.f32 r) s))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 -1/3 (/.f32 r s))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (/.f32 (pow.f32 (cbrt.f32 r) 2) 1) (/.f32 (cbrt.f32 r) (*.f32 s 3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (/.f32 (pow.f32 (cbrt.f32 r) 2) (cbrt.f32 (*.f32 (*.f32 s s) 9))) (cbrt.f32 (*.f32 r (/.f32 1/3 s))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (/.f32 -1 (cbrt.f32 (*.f32 (*.f32 s s) 9))) (/.f32 r (cbrt.f32 (*.f32 s 3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (/.f32 (pow.f32 (cbrt.f32 r) 2) (sqrt.f32 (*.f32 s 3))) (/.f32 (cbrt.f32 r) (sqrt.f32 (*.f32 s 3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (/.f32 -1 (sqrt.f32 (*.f32 s 3))) (/.f32 r (sqrt.f32 (*.f32 s 3))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (*.f32 r (/.f32 1/3 s)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (pow.f32 (*.f32 r (/.f32 1/3 s)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (cbrt.f32 (*.f32 r (/.f32 1/3 s))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (sqrt.f32 (*.f32 r (/.f32 1/3 s))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (/.f32 s (*.f32 r 1/3)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (/.f32 (pow.f32 r 3) (pow.f32 (*.f32 s 3) 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (/.f32 (/.f32 s (*.f32 r 1/3)) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f32 (*.f32 r (/.f32 1/3 s)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f32 (pow.f32 (*.f32 r (/.f32 1/3 s)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (exp.f32 (*.f32 r (/.f32 1/3 s))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (+.f32 1 (expm1.f32 (*.f32 r (/.f32 1/3 s)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (/.f32 1 (+.f32 1 (expm1.f32 (*.f32 r (/.f32 1/3 s))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f32 (pow.f32 (*.f32 r (/.f32 1/3 s)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f32 (/.f32 (pow.f32 r 3) (pow.f32 (*.f32 s 3) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f32 (log.f32 (*.f32 r (/.f32 1/3 s))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f32 (*.f32 (log.f32 (*.f32 r (/.f32 1/3 s))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f32 (log1p.f32 (*.f32 r (/.f32 1/3 s))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f32 (expm1.f32 (*.f32 r (/.f32 1/3 s))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f32 0 (*.f32 s (*.f32 (*.f32 (PI.f32) 2) r)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 (log.f32 (pow.f32 (cbrt.f32 (pow.f32 (pow.f32 (exp.f32 s) (*.f32 (PI.f32) 2)) r)) 2)) (log.f32 (cbrt.f32 (pow.f32 (pow.f32 (exp.f32 s) (*.f32 (PI.f32) 2)) r))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 (log.f32 (sqrt.f32 (pow.f32 (pow.f32 (exp.f32 s) (*.f32 (PI.f32) 2)) r))) (log.f32 (sqrt.f32 (pow.f32 (pow.f32 (exp.f32 s) (*.f32 (PI.f32) 2)) r))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f32 (exp.f32 (log1p.f32 (*.f32 s (*.f32 (*.f32 (PI.f32) 2) r)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (*.f32 s (*.f32 (*.f32 (PI.f32) 2) r)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (pow.f32 (*.f32 s (*.f32 (*.f32 (PI.f32) 2) r)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (cbrt.f32 (*.f32 s (*.f32 (*.f32 (PI.f32) 2) r))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (sqrt.f32 (*.f32 s (*.f32 (*.f32 (PI.f32) 2) r))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (*.f32 (pow.f32 r 3) (pow.f32 (*.f32 (PI.f32) (*.f32 2 s)) 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (*.f32 (pow.f32 (*.f32 (PI.f32) (*.f32 2 s)) 3) (pow.f32 r 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f32 (pow.f32 (*.f32 s (*.f32 (*.f32 (PI.f32) 2) r)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (pow.f32 (pow.f32 (exp.f32 s) (*.f32 (PI.f32) 2)) r))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (+.f32 1 (expm1.f32 (*.f32 s (*.f32 (*.f32 (PI.f32) 2) r)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f32 (pow.f32 (*.f32 s (*.f32 (*.f32 (PI.f32) 2) r)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f32 (*.f32 (pow.f32 r 3) (pow.f32 (*.f32 (PI.f32) (*.f32 2 s)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f32 (*.f32 (pow.f32 (*.f32 (PI.f32) (*.f32 2 s)) 3) (pow.f32 r 3)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f32 (log.f32 (*.f32 s (*.f32 (*.f32 (PI.f32) 2) r))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f32 (*.f32 (log.f32 (*.f32 s (*.f32 (*.f32 (PI.f32) 2) r))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f32 (log1p.f32 (*.f32 s (*.f32 (*.f32 (PI.f32) 2) r))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f32 (expm1.f32 (*.f32 s (*.f32 (*.f32 (PI.f32) 2) r))))))))

simplify26.0ms (0.6%)

Algorithm
egg-herbie
Rules
48×associate-*l*_binary32
34×associate-*r*_binary32
29×*-commutative_binary32
associate-/l*_binary32
associate-*r/_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
015792
131792
274792
3134792
4152792
Stop Event
saturated
Counts
197 → 120
Calls
Call 1
Inputs
(*.f32 6 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 6 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 6 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 6 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 6 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 6 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 6 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 6 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 6 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 6 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 6 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 6 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 6 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 6 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 6 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 6 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 6 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 6 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 6 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 6 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 6 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 6 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 6 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 6 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 2 (*.f32 s (PI.f32)))
(*.f32 2 (*.f32 s (PI.f32)))
(*.f32 2 (*.f32 s (PI.f32)))
(*.f32 2 (*.f32 s (PI.f32)))
(*.f32 2 (*.f32 s (PI.f32)))
(*.f32 2 (*.f32 s (PI.f32)))
(*.f32 2 (*.f32 s (PI.f32)))
(*.f32 2 (*.f32 s (PI.f32)))
(*.f32 2 (*.f32 s (PI.f32)))
(*.f32 2 (*.f32 s (PI.f32)))
(*.f32 2 (*.f32 s (PI.f32)))
(*.f32 2 (*.f32 s (PI.f32)))
(*.f32 -1/3 (/.f32 r s))
(*.f32 -1/3 (/.f32 r s))
(*.f32 -1/3 (/.f32 r s))
(*.f32 -1/3 (/.f32 r s))
(*.f32 -1/3 (/.f32 r s))
(*.f32 -1/3 (/.f32 r s))
(*.f32 -1/3 (/.f32 r s))
(*.f32 -1/3 (/.f32 r s))
(*.f32 -1/3 (/.f32 r s))
(*.f32 -1/3 (/.f32 r s))
(*.f32 -1/3 (/.f32 r s))
(*.f32 -1/3 (/.f32 r s))
(*.f32 -1/3 (/.f32 r s))
(*.f32 -1/3 (/.f32 r s))
(*.f32 -1/3 (/.f32 r s))
(*.f32 -1/3 (/.f32 r s))
(*.f32 -1/3 (/.f32 r s))
(*.f32 -1/3 (/.f32 r s))
(*.f32 -1/3 (/.f32 r s))
(*.f32 -1/3 (/.f32 r s))
(*.f32 -1/3 (/.f32 r s))
(*.f32 -1/3 (/.f32 r s))
(*.f32 -1/3 (/.f32 r s))
(*.f32 -1/3 (/.f32 r s))
(*.f32 2 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 2 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 2 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 2 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 2 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 2 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 2 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 2 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 2 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 2 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 2 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 2 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 2 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 2 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 2 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 2 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 2 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 2 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 2 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 2 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 2 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 2 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 2 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 2 (*.f32 s (*.f32 r (PI.f32))))
Outputs
(*.f32 6 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 (*.f32 6 s) (*.f32 r (PI.f32)))
(*.f32 s (*.f32 r (*.f32 6 (PI.f32))))
(*.f32 6 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 (*.f32 6 s) (*.f32 r (PI.f32)))
(*.f32 s (*.f32 r (*.f32 6 (PI.f32))))
(*.f32 6 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 (*.f32 6 s) (*.f32 r (PI.f32)))
(*.f32 s (*.f32 r (*.f32 6 (PI.f32))))
(*.f32 6 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 (*.f32 6 s) (*.f32 r (PI.f32)))
(*.f32 s (*.f32 r (*.f32 6 (PI.f32))))
(*.f32 6 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 (*.f32 6 s) (*.f32 r (PI.f32)))
(*.f32 s (*.f32 r (*.f32 6 (PI.f32))))
(*.f32 6 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 (*.f32 6 s) (*.f32 r (PI.f32)))
(*.f32 s (*.f32 r (*.f32 6 (PI.f32))))
(*.f32 6 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 (*.f32 6 s) (*.f32 r (PI.f32)))
(*.f32 s (*.f32 r (*.f32 6 (PI.f32))))
(*.f32 6 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 (*.f32 6 s) (*.f32 r (PI.f32)))
(*.f32 s (*.f32 r (*.f32 6 (PI.f32))))
(*.f32 6 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 (*.f32 6 s) (*.f32 r (PI.f32)))
(*.f32 s (*.f32 r (*.f32 6 (PI.f32))))
(*.f32 6 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 (*.f32 6 s) (*.f32 r (PI.f32)))
(*.f32 s (*.f32 r (*.f32 6 (PI.f32))))
(*.f32 6 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 (*.f32 6 s) (*.f32 r (PI.f32)))
(*.f32 s (*.f32 r (*.f32 6 (PI.f32))))
(*.f32 6 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 (*.f32 6 s) (*.f32 r (PI.f32)))
(*.f32 s (*.f32 r (*.f32 6 (PI.f32))))
(*.f32 6 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 (*.f32 6 s) (*.f32 r (PI.f32)))
(*.f32 s (*.f32 r (*.f32 6 (PI.f32))))
(*.f32 6 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 (*.f32 6 s) (*.f32 r (PI.f32)))
(*.f32 s (*.f32 r (*.f32 6 (PI.f32))))
(*.f32 6 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 (*.f32 6 s) (*.f32 r (PI.f32)))
(*.f32 s (*.f32 r (*.f32 6 (PI.f32))))
(*.f32 6 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 (*.f32 6 s) (*.f32 r (PI.f32)))
(*.f32 s (*.f32 r (*.f32 6 (PI.f32))))
(*.f32 6 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 (*.f32 6 s) (*.f32 r (PI.f32)))
(*.f32 s (*.f32 r (*.f32 6 (PI.f32))))
(*.f32 6 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 (*.f32 6 s) (*.f32 r (PI.f32)))
(*.f32 s (*.f32 r (*.f32 6 (PI.f32))))
(*.f32 6 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 (*.f32 6 s) (*.f32 r (PI.f32)))
(*.f32 s (*.f32 r (*.f32 6 (PI.f32))))
(*.f32 6 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 (*.f32 6 s) (*.f32 r (PI.f32)))
(*.f32 s (*.f32 r (*.f32 6 (PI.f32))))
(*.f32 6 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 (*.f32 6 s) (*.f32 r (PI.f32)))
(*.f32 s (*.f32 r (*.f32 6 (PI.f32))))
(*.f32 6 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 (*.f32 6 s) (*.f32 r (PI.f32)))
(*.f32 s (*.f32 r (*.f32 6 (PI.f32))))
(*.f32 6 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 (*.f32 6 s) (*.f32 r (PI.f32)))
(*.f32 s (*.f32 r (*.f32 6 (PI.f32))))
(*.f32 6 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 (*.f32 6 s) (*.f32 r (PI.f32)))
(*.f32 s (*.f32 r (*.f32 6 (PI.f32))))
(*.f32 2 (*.f32 s (PI.f32)))
(*.f32 s (*.f32 (PI.f32) 2))
(*.f32 2 (*.f32 s (PI.f32)))
(*.f32 s (*.f32 (PI.f32) 2))
(*.f32 2 (*.f32 s (PI.f32)))
(*.f32 s (*.f32 (PI.f32) 2))
(*.f32 2 (*.f32 s (PI.f32)))
(*.f32 s (*.f32 (PI.f32) 2))
(*.f32 2 (*.f32 s (PI.f32)))
(*.f32 s (*.f32 (PI.f32) 2))
(*.f32 2 (*.f32 s (PI.f32)))
(*.f32 s (*.f32 (PI.f32) 2))
(*.f32 2 (*.f32 s (PI.f32)))
(*.f32 s (*.f32 (PI.f32) 2))
(*.f32 2 (*.f32 s (PI.f32)))
(*.f32 s (*.f32 (PI.f32) 2))
(*.f32 2 (*.f32 s (PI.f32)))
(*.f32 s (*.f32 (PI.f32) 2))
(*.f32 2 (*.f32 s (PI.f32)))
(*.f32 s (*.f32 (PI.f32) 2))
(*.f32 2 (*.f32 s (PI.f32)))
(*.f32 s (*.f32 (PI.f32) 2))
(*.f32 2 (*.f32 s (PI.f32)))
(*.f32 s (*.f32 (PI.f32) 2))
(*.f32 -1/3 (/.f32 r s))
(/.f32 r (/.f32 s -1/3))
(*.f32 r (/.f32 -1/3 s))
(*.f32 -1/3 (/.f32 r s))
(/.f32 r (/.f32 s -1/3))
(*.f32 r (/.f32 -1/3 s))
(*.f32 -1/3 (/.f32 r s))
(/.f32 r (/.f32 s -1/3))
(*.f32 r (/.f32 -1/3 s))
(*.f32 -1/3 (/.f32 r s))
(/.f32 r (/.f32 s -1/3))
(*.f32 r (/.f32 -1/3 s))
(*.f32 -1/3 (/.f32 r s))
(/.f32 r (/.f32 s -1/3))
(*.f32 r (/.f32 -1/3 s))
(*.f32 -1/3 (/.f32 r s))
(/.f32 r (/.f32 s -1/3))
(*.f32 r (/.f32 -1/3 s))
(*.f32 -1/3 (/.f32 r s))
(/.f32 r (/.f32 s -1/3))
(*.f32 r (/.f32 -1/3 s))
(*.f32 -1/3 (/.f32 r s))
(/.f32 r (/.f32 s -1/3))
(*.f32 r (/.f32 -1/3 s))
(*.f32 -1/3 (/.f32 r s))
(/.f32 r (/.f32 s -1/3))
(*.f32 r (/.f32 -1/3 s))
(*.f32 -1/3 (/.f32 r s))
(/.f32 r (/.f32 s -1/3))
(*.f32 r (/.f32 -1/3 s))
(*.f32 -1/3 (/.f32 r s))
(/.f32 r (/.f32 s -1/3))
(*.f32 r (/.f32 -1/3 s))
(*.f32 -1/3 (/.f32 r s))
(/.f32 r (/.f32 s -1/3))
(*.f32 r (/.f32 -1/3 s))
(*.f32 -1/3 (/.f32 r s))
(/.f32 r (/.f32 s -1/3))
(*.f32 r (/.f32 -1/3 s))
(*.f32 -1/3 (/.f32 r s))
(/.f32 r (/.f32 s -1/3))
(*.f32 r (/.f32 -1/3 s))
(*.f32 -1/3 (/.f32 r s))
(/.f32 r (/.f32 s -1/3))
(*.f32 r (/.f32 -1/3 s))
(*.f32 -1/3 (/.f32 r s))
(/.f32 r (/.f32 s -1/3))
(*.f32 r (/.f32 -1/3 s))
(*.f32 -1/3 (/.f32 r s))
(/.f32 r (/.f32 s -1/3))
(*.f32 r (/.f32 -1/3 s))
(*.f32 -1/3 (/.f32 r s))
(/.f32 r (/.f32 s -1/3))
(*.f32 r (/.f32 -1/3 s))
(*.f32 -1/3 (/.f32 r s))
(/.f32 r (/.f32 s -1/3))
(*.f32 r (/.f32 -1/3 s))
(*.f32 -1/3 (/.f32 r s))
(/.f32 r (/.f32 s -1/3))
(*.f32 r (/.f32 -1/3 s))
(*.f32 -1/3 (/.f32 r s))
(/.f32 r (/.f32 s -1/3))
(*.f32 r (/.f32 -1/3 s))
(*.f32 -1/3 (/.f32 r s))
(/.f32 r (/.f32 s -1/3))
(*.f32 r (/.f32 -1/3 s))
(*.f32 -1/3 (/.f32 r s))
(/.f32 r (/.f32 s -1/3))
(*.f32 r (/.f32 -1/3 s))
(*.f32 -1/3 (/.f32 r s))
(/.f32 r (/.f32 s -1/3))
(*.f32 r (/.f32 -1/3 s))
(*.f32 2 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 (*.f32 s (*.f32 r (PI.f32))) 2)
(*.f32 (*.f32 r (PI.f32)) (*.f32 s 2))
(*.f32 s (*.f32 r (*.f32 (PI.f32) 2)))
(*.f32 2 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 (*.f32 s (*.f32 r (PI.f32))) 2)
(*.f32 (*.f32 r (PI.f32)) (*.f32 s 2))
(*.f32 s (*.f32 r (*.f32 (PI.f32) 2)))
(*.f32 2 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 (*.f32 s (*.f32 r (PI.f32))) 2)
(*.f32 (*.f32 r (PI.f32)) (*.f32 s 2))
(*.f32 s (*.f32 r (*.f32 (PI.f32) 2)))
(*.f32 2 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 (*.f32 s (*.f32 r (PI.f32))) 2)
(*.f32 (*.f32 r (PI.f32)) (*.f32 s 2))
(*.f32 s (*.f32 r (*.f32 (PI.f32) 2)))
(*.f32 2 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 (*.f32 s (*.f32 r (PI.f32))) 2)
(*.f32 (*.f32 r (PI.f32)) (*.f32 s 2))
(*.f32 s (*.f32 r (*.f32 (PI.f32) 2)))
(*.f32 2 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 (*.f32 s (*.f32 r (PI.f32))) 2)
(*.f32 (*.f32 r (PI.f32)) (*.f32 s 2))
(*.f32 s (*.f32 r (*.f32 (PI.f32) 2)))
(*.f32 2 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 (*.f32 s (*.f32 r (PI.f32))) 2)
(*.f32 (*.f32 r (PI.f32)) (*.f32 s 2))
(*.f32 s (*.f32 r (*.f32 (PI.f32) 2)))
(*.f32 2 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 (*.f32 s (*.f32 r (PI.f32))) 2)
(*.f32 (*.f32 r (PI.f32)) (*.f32 s 2))
(*.f32 s (*.f32 r (*.f32 (PI.f32) 2)))
(*.f32 2 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 (*.f32 s (*.f32 r (PI.f32))) 2)
(*.f32 (*.f32 r (PI.f32)) (*.f32 s 2))
(*.f32 s (*.f32 r (*.f32 (PI.f32) 2)))
(*.f32 2 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 (*.f32 s (*.f32 r (PI.f32))) 2)
(*.f32 (*.f32 r (PI.f32)) (*.f32 s 2))
(*.f32 s (*.f32 r (*.f32 (PI.f32) 2)))
(*.f32 2 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 (*.f32 s (*.f32 r (PI.f32))) 2)
(*.f32 (*.f32 r (PI.f32)) (*.f32 s 2))
(*.f32 s (*.f32 r (*.f32 (PI.f32) 2)))
(*.f32 2 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 (*.f32 s (*.f32 r (PI.f32))) 2)
(*.f32 (*.f32 r (PI.f32)) (*.f32 s 2))
(*.f32 s (*.f32 r (*.f32 (PI.f32) 2)))
(*.f32 2 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 (*.f32 s (*.f32 r (PI.f32))) 2)
(*.f32 (*.f32 r (PI.f32)) (*.f32 s 2))
(*.f32 s (*.f32 r (*.f32 (PI.f32) 2)))
(*.f32 2 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 (*.f32 s (*.f32 r (PI.f32))) 2)
(*.f32 (*.f32 r (PI.f32)) (*.f32 s 2))
(*.f32 s (*.f32 r (*.f32 (PI.f32) 2)))
(*.f32 2 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 (*.f32 s (*.f32 r (PI.f32))) 2)
(*.f32 (*.f32 r (PI.f32)) (*.f32 s 2))
(*.f32 s (*.f32 r (*.f32 (PI.f32) 2)))
(*.f32 2 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 (*.f32 s (*.f32 r (PI.f32))) 2)
(*.f32 (*.f32 r (PI.f32)) (*.f32 s 2))
(*.f32 s (*.f32 r (*.f32 (PI.f32) 2)))
(*.f32 2 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 (*.f32 s (*.f32 r (PI.f32))) 2)
(*.f32 (*.f32 r (PI.f32)) (*.f32 s 2))
(*.f32 s (*.f32 r (*.f32 (PI.f32) 2)))
(*.f32 2 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 (*.f32 s (*.f32 r (PI.f32))) 2)
(*.f32 (*.f32 r (PI.f32)) (*.f32 s 2))
(*.f32 s (*.f32 r (*.f32 (PI.f32) 2)))
(*.f32 2 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 (*.f32 s (*.f32 r (PI.f32))) 2)
(*.f32 (*.f32 r (PI.f32)) (*.f32 s 2))
(*.f32 s (*.f32 r (*.f32 (PI.f32) 2)))
(*.f32 2 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 (*.f32 s (*.f32 r (PI.f32))) 2)
(*.f32 (*.f32 r (PI.f32)) (*.f32 s 2))
(*.f32 s (*.f32 r (*.f32 (PI.f32) 2)))
(*.f32 2 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 (*.f32 s (*.f32 r (PI.f32))) 2)
(*.f32 (*.f32 r (PI.f32)) (*.f32 s 2))
(*.f32 s (*.f32 r (*.f32 (PI.f32) 2)))
(*.f32 2 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 (*.f32 s (*.f32 r (PI.f32))) 2)
(*.f32 (*.f32 r (PI.f32)) (*.f32 s 2))
(*.f32 s (*.f32 r (*.f32 (PI.f32) 2)))
(*.f32 2 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 (*.f32 s (*.f32 r (PI.f32))) 2)
(*.f32 (*.f32 r (PI.f32)) (*.f32 s 2))
(*.f32 s (*.f32 r (*.f32 (PI.f32) 2)))
(*.f32 2 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 (*.f32 s (*.f32 r (PI.f32))) 2)
(*.f32 (*.f32 r (PI.f32)) (*.f32 s 2))
(*.f32 s (*.f32 r (*.f32 (PI.f32) 2)))

prune211.0ms (4.9%)

Pruning

8 alts after pruning (8 fresh and 0 done)

PrunedKeptTotal
New1137120
Fresh011
Picked101
Done000
Total1148122
Error
0.1b
Counts
122 → 8
Alt Table
StatusErrorProgram
0.3b
(+.f32 (/.f32 (*.f32 1/4 (exp.f32 (/.f32 (neg.f32 r) s))) (*.f32 (*.f32 (*.f32 2 (PI.f32)) s) r)) (/.f32 (*.f32 3/4 (exp.f32 (/.f32 (neg.f32 r) (*.f32 3 s)))) (exp.f32 (log.f32 (*.f32 (*.f32 6 (PI.f32)) (*.f32 s r))))))
0.2b
(+.f32 (/.f32 (*.f32 1/4 (exp.f32 (/.f32 (neg.f32 r) s))) (*.f32 (*.f32 (*.f32 2 (PI.f32)) s) r)) (/.f32 (*.f32 3/4 (exp.f32 (/.f32 (neg.f32 r) (*.f32 3 s)))) (pow.f32 (cbrt.f32 (*.f32 (*.f32 6 (PI.f32)) (*.f32 s r))) 3)))
24.0b
(+.f32 (/.f32 (*.f32 1/4 (exp.f32 (/.f32 (neg.f32 r) s))) (*.f32 (*.f32 (*.f32 2 (PI.f32)) s) r)) (/.f32 (*.f32 3/4 (exp.f32 (/.f32 (neg.f32 r) (*.f32 3 s)))) (log.f32 (+.f32 1 (expm1.f32 (*.f32 (*.f32 6 (PI.f32)) (*.f32 s r)))))))
1.1b
(*.f32 (/.f32 (/.f32 (/.f32 1/8 s) (PI.f32)) r) (+.f32 (exp.f32 (/.f32 (neg.f32 r) s)) (pow.f32 (exp.f32 r) (/.f32 -1/3 s))))
19.0b
(+.f32 (/.f32 (*.f32 1/4 (exp.f32 (/.f32 (neg.f32 r) s))) (*.f32 (pow.f32 (pow.f32 (*.f32 (PI.f32) (*.f32 2 s)) 3) 1/3) r)) (/.f32 (*.f32 3/4 (exp.f32 (/.f32 (neg.f32 r) (*.f32 3 s)))) (*.f32 (*.f32 (*.f32 6 (PI.f32)) s) r)))
0.2b
(+.f32 (/.f32 (*.f32 1/4 (exp.f32 (/.f32 (neg.f32 r) s))) (*.f32 (*.f32 (*.f32 2 (PI.f32)) s) r)) (/.f32 (*.f32 3/4 (exp.f32 (*.f32 -1/3 (/.f32 r s)))) (*.f32 (*.f32 (*.f32 6 (PI.f32)) s) r)))
18.5b
(+.f32 (/.f32 (*.f32 1/4 (exp.f32 (/.f32 (neg.f32 r) s))) (*.f32 (*.f32 (*.f32 2 (PI.f32)) s) r)) (/.f32 (*.f32 3/4 (exp.f32 (/.f32 (neg.f32 r) (*.f32 3 s)))) (pow.f32 (pow.f32 (*.f32 (*.f32 6 (PI.f32)) (*.f32 s r)) 3) 1/3)))
0.2b
(+.f32 (/.f32 (*.f32 1/4 (exp.f32 (/.f32 (neg.f32 r) s))) (*.f32 (*.f32 (*.f32 2 (PI.f32)) s) r)) (/.f32 (*.f32 3/4 (exp.f32 (*.f32 (/.f32 -1 s) (*.f32 r 1/3)))) (*.f32 (*.f32 (*.f32 6 (PI.f32)) s) r)))
Compiler

Compiled 5005 to 3134 computations (37.4% saved)

localize88.0ms (2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(*.f32 (*.f32 (*.f32 2 (PI.f32)) s) r)
0.3b
(*.f32 (*.f32 2 (PI.f32)) s)
0.3b
(*.f32 (*.f32 (*.f32 6 (PI.f32)) s) r)
0.3b
(*.f32 -1/3 (/.f32 r s))

series2.0ms (0%)

Counts
1 → 0
Calls

6 calls:

TimeVariablePointExpression
0.0ms
r
@0
(*.f32 -1/3 (/.f32 r s))
0.0ms
r
@-inf
(*.f32 -1/3 (/.f32 r s))
0.0ms
r
@inf
(*.f32 -1/3 (/.f32 r s))
0.0ms
s
@-inf
(*.f32 -1/3 (/.f32 r s))
0.0ms
s
@inf
(*.f32 -1/3 (/.f32 r s))

rewrite37.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
653×pow1_binary32
607×add-log-exp_binary32
607×log1p-expm1-u_binary32
607×expm1-log1p-u_binary32
595×add-exp-log_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
067
11277
216117
Stop Event
node limit
Counts
1 → 20
Calls
Call 1
Inputs
(*.f32 -1/3 (/.f32 r s))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f32 (+.f32 1 (*.f32 -1/3 (/.f32 r s))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 -1/3 (/.f32 s r))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 1 (/.f32 s (*.f32 -1/3 r)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 -1/3 r) s)))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (neg.f32 (*.f32 -1/3 r)) (neg.f32 s))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (/.f32 (*.f32 -1/3 r) 1) s)))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (/.f32 (*.f32 -1/3 r) (pow.f32 (cbrt.f32 s) 2)) (cbrt.f32 s))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (/.f32 (*.f32 -1/3 r) (sqrt.f32 s)) (sqrt.f32 s))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 (neg.f32 r) -1/3) (neg.f32 s))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 -1/3 (neg.f32 r)) (neg.f32 s))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (*.f32 -1/3 (/.f32 r s)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (pow.f32 (*.f32 -1/3 (/.f32 r s)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (cbrt.f32 (*.f32 -1/3 (/.f32 r s))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (sqrt.f32 (*.f32 -1/3 (/.f32 r s))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f32 (*.f32 (pow.f32 (/.f32 r s) 2) 1/9))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (pow.f32 (exp.f32 -1/3) (/.f32 r s)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f32 (pow.f32 (*.f32 -1/3 (/.f32 r s)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f32 (log.f32 (*.f32 -1/3 (/.f32 r s))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f32 (log1p.f32 (*.f32 -1/3 (/.f32 r s))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f32 (expm1.f32 (*.f32 -1/3 (/.f32 r s))))))))

simplify6.0ms (0.1%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
000
Stop Event
saturated
Counts
20 → 20
Calls
Call 1
Inputs
Outputs

prune204.0ms (4.7%)

Pruning

9 alts after pruning (9 fresh and 0 done)

PrunedKeptTotal
New79786
Fresh527
Picked101
Done000
Total85994
Error
0.1b
Counts
94 → 9
Alt Table
StatusErrorProgram
19.0b
(+.f32 (/.f32 (*.f32 1/4 (exp.f32 (/.f32 (neg.f32 r) s))) (*.f32 (pow.f32 (pow.f32 (*.f32 (PI.f32) (*.f32 2 s)) 3) 1/3) r)) (/.f32 (*.f32 3/4 (exp.f32 (*.f32 -1/3 (/.f32 r s)))) (*.f32 (*.f32 (*.f32 6 (PI.f32)) s) r)))
0.2b
(+.f32 (/.f32 (*.f32 1/4 (exp.f32 (/.f32 (neg.f32 r) s))) (*.f32 (*.f32 (*.f32 2 (PI.f32)) s) r)) (/.f32 (*.f32 3/4 (exp.f32 (*.f32 -1/3 (/.f32 r s)))) (pow.f32 (cbrt.f32 (*.f32 (*.f32 6 (PI.f32)) (*.f32 s r))) 3)))
0.2b
(+.f32 (/.f32 (*.f32 1/4 (exp.f32 (/.f32 (neg.f32 r) s))) (*.f32 (pow.f32 (cbrt.f32 (*.f32 (PI.f32) (*.f32 2 s))) 3) r)) (/.f32 (*.f32 3/4 (exp.f32 (*.f32 -1/3 (/.f32 r s)))) (*.f32 (*.f32 (*.f32 6 (PI.f32)) s) r)))
0.3b
(+.f32 (/.f32 (*.f32 1/4 (exp.f32 (/.f32 (neg.f32 r) s))) (*.f32 (*.f32 (*.f32 2 (PI.f32)) s) r)) (/.f32 (*.f32 3/4 (exp.f32 (/.f32 (neg.f32 r) (*.f32 3 s)))) (exp.f32 (log.f32 (*.f32 (*.f32 6 (PI.f32)) (*.f32 s r))))))
0.2b
(+.f32 (/.f32 (*.f32 1/4 (exp.f32 (/.f32 (neg.f32 r) s))) (*.f32 (*.f32 (*.f32 2 (PI.f32)) s) r)) (/.f32 (*.f32 3/4 (exp.f32 (/.f32 -1/3 (/.f32 s r)))) (*.f32 (*.f32 (*.f32 6 (PI.f32)) s) r)))
24.0b
(+.f32 (/.f32 (*.f32 1/4 (exp.f32 (/.f32 (neg.f32 r) s))) (*.f32 (*.f32 (*.f32 2 (PI.f32)) s) r)) (/.f32 (*.f32 3/4 (exp.f32 (/.f32 (neg.f32 r) (*.f32 3 s)))) (log.f32 (+.f32 1 (expm1.f32 (*.f32 (*.f32 6 (PI.f32)) (*.f32 s r)))))))
0.2b
(+.f32 (/.f32 (*.f32 1/4 (exp.f32 (/.f32 (neg.f32 r) s))) (*.f32 (pow.f32 (sqrt.f32 (*.f32 (PI.f32) (*.f32 2 s))) 2) r)) (/.f32 (*.f32 3/4 (exp.f32 (*.f32 -1/3 (/.f32 r s)))) (*.f32 (*.f32 (*.f32 6 (PI.f32)) s) r)))
0.2b
(+.f32 (/.f32 (*.f32 1/4 (exp.f32 (/.f32 (neg.f32 r) s))) (*.f32 (*.f32 (*.f32 2 (PI.f32)) s) r)) (/.f32 (*.f32 3/4 (exp.f32 (/.f32 (*.f32 -1/3 r) s))) (*.f32 (*.f32 (*.f32 6 (PI.f32)) s) r)))
0.2b
(+.f32 (/.f32 (*.f32 1/4 (exp.f32 (/.f32 (neg.f32 r) s))) (*.f32 (*.f32 (*.f32 2 (PI.f32)) s) r)) (/.f32 (*.f32 3/4 (exp.f32 (*.f32 -1/3 (/.f32 r s)))) (exp.f32 (log.f32 (*.f32 (*.f32 6 (PI.f32)) (*.f32 s r))))))
Compiler

Compiled 3734 to 2326 computations (37.7% saved)

localize86.0ms (2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(/.f32 (*.f32 -1/3 r) s)
0.3b
(*.f32 (*.f32 2 (PI.f32)) s)
0.3b
(*.f32 (*.f32 (*.f32 6 (PI.f32)) s) r)
0.4b
(*.f32 -1/3 r)

series3.0ms (0.1%)

Counts
2 → 24
Calls

9 calls:

TimeVariablePointExpression
0.0ms
r
@0
(*.f32 -1/3 r)
0.0ms
r
@inf
(*.f32 -1/3 r)
0.0ms
r
@-inf
(*.f32 -1/3 r)
0.0ms
s
@-inf
(/.f32 (*.f32 -1/3 r) s)
0.0ms
r
@-inf
(/.f32 (*.f32 -1/3 r) s)

rewrite48.0ms (1.1%)

Algorithm
batch-egg-rewrite
Rules
685×pow1_binary32
640×add-log-exp_binary32
640×log1p-expm1-u_binary32
640×expm1-log1p-u_binary32
627×add-exp-log_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0611
112711
2167911
Stop Event
node limit
Counts
2 → 52
Calls
Call 1
Inputs
(*.f32 -1/3 r)
(/.f32 (*.f32 -1/3 r) s)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f32 (+.f32 1 (*.f32 -1/3 r)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (*.f32 -1/3 r) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (pow.f32 (*.f32 -1/3 r) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (cbrt.f32 (*.f32 -1/3 r)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (sqrt.f32 (*.f32 -1/3 r)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f32 (*.f32 (*.f32 r r) 1/9))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (pow.f32 (exp.f32 -1/3) r))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f32 (pow.f32 (*.f32 -1/3 r) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f32 (log.f32 (*.f32 -1/3 r)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f32 (log1p.f32 (*.f32 -1/3 r)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f32 (expm1.f32 (*.f32 -1/3 r)))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f32 (+.f32 1 (*.f32 -1/3 (/.f32 r s))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 -1/3 (/.f32 r s))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 -1/3 (/.f32 1 (/.f32 s r)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 -1/3 (*.f32 r (pow.f32 s -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 r (*.f32 -1/3 (pow.f32 s -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (*.f32 -1/3 r) (pow.f32 s -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (*.f32 -1/3 (/.f32 r s)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 1 (*.f32 -1/3 (/.f32 r s)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (cbrt.f32 (*.f32 -1/3 (/.f32 r s))) (pow.f32 (cbrt.f32 (*.f32 -1/3 (/.f32 r s))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (pow.f32 (cbrt.f32 (*.f32 -1/3 (/.f32 r s))) 2) (cbrt.f32 (*.f32 -1/3 (/.f32 r s))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (pow.f32 (cbrt.f32 (*.f32 -1/3 r)) 2) (*.f32 (cbrt.f32 (*.f32 -1/3 r)) (pow.f32 s -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (sqrt.f32 (*.f32 -1/3 (/.f32 r s))) (sqrt.f32 (*.f32 -1/3 (/.f32 r s))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (sqrt.f32 (*.f32 -1/3 r)) (*.f32 (sqrt.f32 (*.f32 -1/3 r)) (pow.f32 s -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (*.f32 r 1/3) (/.f32 1 (neg.f32 s)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (pow.f32 s -1) (*.f32 -1/3 r))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (/.f32 r 1) (/.f32 -1/3 s))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (/.f32 -1/3 s) r)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (/.f32 (pow.f32 (cbrt.f32 (*.f32 -1/3 r)) 2) 1) (/.f32 (cbrt.f32 (*.f32 -1/3 r)) s))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (/.f32 (sqrt.f32 (*.f32 -1/3 r)) 1) (/.f32 (sqrt.f32 (*.f32 -1/3 r)) s))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (/.f32 -1/3 (pow.f32 (cbrt.f32 s) 2)) (/.f32 r (cbrt.f32 s)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (/.f32 r (pow.f32 (cbrt.f32 s) 2)) (/.f32 -1/3 (cbrt.f32 s)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (/.f32 1 (pow.f32 (cbrt.f32 s) 2)) (/.f32 (*.f32 -1/3 r) (cbrt.f32 s)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (/.f32 (pow.f32 (cbrt.f32 (*.f32 -1/3 r)) 2) (pow.f32 (cbrt.f32 s) 2)) (cbrt.f32 (*.f32 -1/3 (/.f32 r s))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (/.f32 (sqrt.f32 (*.f32 -1/3 r)) (pow.f32 (cbrt.f32 s) 2)) (/.f32 (sqrt.f32 (*.f32 -1/3 r)) (cbrt.f32 s)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (/.f32 -1/3 (sqrt.f32 s)) (/.f32 r (sqrt.f32 s)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (/.f32 r (sqrt.f32 s)) (/.f32 -1/3 (sqrt.f32 s)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (/.f32 1 (sqrt.f32 s)) (/.f32 (*.f32 -1/3 r) (sqrt.f32 s)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (/.f32 (pow.f32 (cbrt.f32 (*.f32 -1/3 r)) 2) (sqrt.f32 s)) (/.f32 (cbrt.f32 (*.f32 -1/3 r)) (sqrt.f32 s)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (*.f32 -1/3 (/.f32 r s)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (pow.f32 (*.f32 -1/3 (/.f32 r s)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (cbrt.f32 (*.f32 -1/3 (/.f32 r s))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (sqrt.f32 (*.f32 -1/3 (/.f32 r s))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (*.f32 -3 (/.f32 s r)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f32 (/.f32 (*.f32 -1/3 r) (neg.f32 s)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f32 (pow.f32 (*.f32 -1/3 (/.f32 r s)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (exp.f32 (*.f32 -1/3 (/.f32 r s))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f32 (pow.f32 (*.f32 -1/3 (/.f32 r s)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f32 (/.f32 (pow.f32 (*.f32 -1/3 r) 3) (pow.f32 s 3)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f32 (log.f32 (*.f32 -1/3 (/.f32 r s))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f32 (log1p.f32 (*.f32 -1/3 (/.f32 r s))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f32 (expm1.f32 (*.f32 -1/3 (/.f32 r s))))))))

simplify10.0ms (0.2%)

Algorithm
egg-herbie
Rules
*-commutative_binary32
associate-/l*_binary32
associate-*r/_binary32
associate-*l/_binary32
associate-/r/_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
06168
19168
213168
317168
418168
Stop Event
saturated
Counts
76 → 52
Calls
Call 1
Inputs
(*.f32 -1/3 (/.f32 r s))
(*.f32 -1/3 (/.f32 r s))
(*.f32 -1/3 (/.f32 r s))
(*.f32 -1/3 (/.f32 r s))
(*.f32 -1/3 (/.f32 r s))
(*.f32 -1/3 (/.f32 r s))
(*.f32 -1/3 (/.f32 r s))
(*.f32 -1/3 (/.f32 r s))
(*.f32 -1/3 (/.f32 r s))
(*.f32 -1/3 (/.f32 r s))
(*.f32 -1/3 (/.f32 r s))
(*.f32 -1/3 (/.f32 r s))
(*.f32 -1/3 (/.f32 r s))
(*.f32 -1/3 (/.f32 r s))
(*.f32 -1/3 (/.f32 r s))
(*.f32 -1/3 (/.f32 r s))
(*.f32 -1/3 (/.f32 r s))
(*.f32 -1/3 (/.f32 r s))
(*.f32 -1/3 (/.f32 r s))
(*.f32 -1/3 (/.f32 r s))
(*.f32 -1/3 (/.f32 r s))
(*.f32 -1/3 (/.f32 r s))
(*.f32 -1/3 (/.f32 r s))
(*.f32 -1/3 (/.f32 r s))
Outputs
(*.f32 -1/3 (/.f32 r s))
(*.f32 (/.f32 -1/3 s) r)
(*.f32 -1/3 (/.f32 r s))
(*.f32 (/.f32 -1/3 s) r)
(*.f32 -1/3 (/.f32 r s))
(*.f32 (/.f32 -1/3 s) r)
(*.f32 -1/3 (/.f32 r s))
(*.f32 (/.f32 -1/3 s) r)
(*.f32 -1/3 (/.f32 r s))
(*.f32 (/.f32 -1/3 s) r)
(*.f32 -1/3 (/.f32 r s))
(*.f32 (/.f32 -1/3 s) r)
(*.f32 -1/3 (/.f32 r s))
(*.f32 (/.f32 -1/3 s) r)
(*.f32 -1/3 (/.f32 r s))
(*.f32 (/.f32 -1/3 s) r)
(*.f32 -1/3 (/.f32 r s))
(*.f32 (/.f32 -1/3 s) r)
(*.f32 -1/3 (/.f32 r s))
(*.f32 (/.f32 -1/3 s) r)
(*.f32 -1/3 (/.f32 r s))
(*.f32 (/.f32 -1/3 s) r)
(*.f32 -1/3 (/.f32 r s))
(*.f32 (/.f32 -1/3 s) r)
(*.f32 -1/3 (/.f32 r s))
(*.f32 (/.f32 -1/3 s) r)
(*.f32 -1/3 (/.f32 r s))
(*.f32 (/.f32 -1/3 s) r)
(*.f32 -1/3 (/.f32 r s))
(*.f32 (/.f32 -1/3 s) r)
(*.f32 -1/3 (/.f32 r s))
(*.f32 (/.f32 -1/3 s) r)
(*.f32 -1/3 (/.f32 r s))
(*.f32 (/.f32 -1/3 s) r)
(*.f32 -1/3 (/.f32 r s))
(*.f32 (/.f32 -1/3 s) r)
(*.f32 -1/3 (/.f32 r s))
(*.f32 (/.f32 -1/3 s) r)
(*.f32 -1/3 (/.f32 r s))
(*.f32 (/.f32 -1/3 s) r)
(*.f32 -1/3 (/.f32 r s))
(*.f32 (/.f32 -1/3 s) r)
(*.f32 -1/3 (/.f32 r s))
(*.f32 (/.f32 -1/3 s) r)
(*.f32 -1/3 (/.f32 r s))
(*.f32 (/.f32 -1/3 s) r)
(*.f32 -1/3 (/.f32 r s))
(*.f32 (/.f32 -1/3 s) r)

prune252.0ms (5.8%)

Pruning

9 alts after pruning (9 fresh and 0 done)

PrunedKeptTotal
New94296
Fresh178
Picked101
Done000
Total969105
Error
0.1b
Counts
105 → 9
Alt Table
StatusErrorProgram
0.2b
(+.f32 (/.f32 (*.f32 1/4 (exp.f32 (/.f32 (neg.f32 r) s))) (*.f32 (pow.f32 (cbrt.f32 (*.f32 (PI.f32) (*.f32 2 s))) 3) r)) (/.f32 (*.f32 3/4 (exp.f32 (*.f32 -1/3 (/.f32 r s)))) (*.f32 (*.f32 (*.f32 6 (PI.f32)) s) r)))
0.3b
(+.f32 (/.f32 (*.f32 1/4 (exp.f32 (/.f32 (neg.f32 r) s))) (*.f32 (*.f32 (*.f32 2 (PI.f32)) s) r)) (/.f32 (*.f32 3/4 (exp.f32 (/.f32 (neg.f32 r) (*.f32 3 s)))) (exp.f32 (log.f32 (*.f32 (*.f32 6 (PI.f32)) (*.f32 s r))))))
0.2b
(+.f32 (/.f32 (*.f32 1/4 (exp.f32 (/.f32 (neg.f32 r) s))) (*.f32 (*.f32 (*.f32 2 (PI.f32)) s) r)) (/.f32 (*.f32 3/4 (exp.f32 (/.f32 -1/3 (/.f32 s r)))) (*.f32 (*.f32 (*.f32 6 (PI.f32)) s) r)))
24.0b
(+.f32 (/.f32 (*.f32 1/4 (exp.f32 (/.f32 (neg.f32 r) s))) (*.f32 (*.f32 (*.f32 2 (PI.f32)) s) r)) (/.f32 (*.f32 3/4 (exp.f32 (/.f32 (neg.f32 r) (*.f32 3 s)))) (log.f32 (+.f32 1 (expm1.f32 (*.f32 (*.f32 6 (PI.f32)) (*.f32 s r)))))))
18.5b
(+.f32 (/.f32 (*.f32 1/4 (exp.f32 (/.f32 (neg.f32 r) s))) (*.f32 (*.f32 (*.f32 2 (PI.f32)) s) r)) (/.f32 (*.f32 3/4 (exp.f32 (/.f32 (*.f32 -1/3 r) s))) (pow.f32 (pow.f32 (*.f32 (*.f32 6 (PI.f32)) (*.f32 s r)) 3) 1/3)))
19.0b
(+.f32 (/.f32 (*.f32 1/4 (exp.f32 (/.f32 (neg.f32 r) s))) (*.f32 (pow.f32 (pow.f32 (*.f32 (PI.f32) (*.f32 2 s)) 3) 1/3) r)) (/.f32 (*.f32 3/4 (exp.f32 (/.f32 (*.f32 -1/3 r) s))) (*.f32 (*.f32 (*.f32 6 (PI.f32)) s) r)))
0.2b
(+.f32 (/.f32 (*.f32 1/4 (exp.f32 (/.f32 (neg.f32 r) s))) (*.f32 (*.f32 (*.f32 2 (PI.f32)) s) r)) (/.f32 (*.f32 3/4 (exp.f32 (*.f32 -1/3 (/.f32 r s)))) (pow.f32 (cbrt.f32 (*.f32 (*.f32 6 (PI.f32)) (*.f32 s r))) 3)))
0.2b
(+.f32 (/.f32 (*.f32 1/4 (exp.f32 (/.f32 (neg.f32 r) s))) (*.f32 (pow.f32 (sqrt.f32 (*.f32 (PI.f32) (*.f32 2 s))) 2) r)) (/.f32 (*.f32 3/4 (exp.f32 (*.f32 -1/3 (/.f32 r s)))) (*.f32 (*.f32 (*.f32 6 (PI.f32)) s) r)))
0.2b
(+.f32 (/.f32 (*.f32 1/4 (exp.f32 (/.f32 (neg.f32 r) s))) (*.f32 (*.f32 (*.f32 2 (PI.f32)) s) r)) (/.f32 (*.f32 3/4 (exp.f32 (*.f32 -1/3 (/.f32 r s)))) (exp.f32 (log.f32 (*.f32 (*.f32 6 (PI.f32)) (*.f32 s r))))))
Compiler

Compiled 4143 to 2641 computations (36.3% saved)

localize99.0ms (2.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(*.f32 (*.f32 6 (PI.f32)) (*.f32 s r))
0.3b
(*.f32 (*.f32 2 (PI.f32)) s)
0.3b
(*.f32 -1/3 (/.f32 r s))
0.6b
(pow.f32 (cbrt.f32 (*.f32 (*.f32 6 (PI.f32)) (*.f32 s r))) 3)

series10.0ms (0.2%)

Counts
2 → 24
Calls

12 calls:

TimeVariablePointExpression
2.0ms
s
@-inf
(pow.f32 (cbrt.f32 (*.f32 (*.f32 6 (PI.f32)) (*.f32 s r))) 3)
2.0ms
s
@0
(pow.f32 (cbrt.f32 (*.f32 (*.f32 6 (PI.f32)) (*.f32 s r))) 3)
1.0ms
s
@inf
(pow.f32 (cbrt.f32 (*.f32 (*.f32 6 (PI.f32)) (*.f32 s r))) 3)
1.0ms
r
@inf
(pow.f32 (cbrt.f32 (*.f32 (*.f32 6 (PI.f32)) (*.f32 s r))) 3)
1.0ms
r
@-inf
(pow.f32 (cbrt.f32 (*.f32 (*.f32 6 (PI.f32)) (*.f32 s r))) 3)

rewrite49.0ms (1.1%)

Algorithm
batch-egg-rewrite
Rules
953×pow1_binary32
888×add-log-exp_binary32
888×log1p-expm1-u_binary32
888×expm1-log1p-u_binary32
102×add-sqr-sqrt_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01122
123122
2246422
Stop Event
node limit
Counts
2 → 60
Calls
Call 1
Inputs
(pow.f32 (cbrt.f32 (*.f32 (*.f32 6 (PI.f32)) (*.f32 s r))) 3)
(*.f32 (*.f32 6 (PI.f32)) (*.f32 s r))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f32 (exp.f32 (log1p.f32 (*.f32 6 (*.f32 (*.f32 (PI.f32) r) s)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 6 (*.f32 (*.f32 (PI.f32) r) s))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (PI.f32) (*.f32 6 (*.f32 s r)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (*.f32 6 (PI.f32)) (*.f32 s r))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 s (*.f32 r (*.f32 6 (PI.f32))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 r (*.f32 (*.f32 6 (PI.f32)) s))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (*.f32 s r) (*.f32 6 (PI.f32)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (*.f32 6 (*.f32 (*.f32 (PI.f32) r) s)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (cbrt.f32 (*.f32 6 (*.f32 (*.f32 (PI.f32) r) s))) (pow.f32 (cbrt.f32 (*.f32 6 (*.f32 (*.f32 (PI.f32) r) s))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 1 (*.f32 6 (*.f32 (*.f32 (PI.f32) r) s)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (pow.f32 (cbrt.f32 (*.f32 6 (*.f32 (*.f32 (PI.f32) r) s))) 2) (cbrt.f32 (*.f32 6 (*.f32 (*.f32 (PI.f32) r) s))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (pow.f32 (cbrt.f32 (cbrt.f32 (*.f32 6 (*.f32 (*.f32 (PI.f32) r) s)))) 2) (*.f32 (cbrt.f32 (cbrt.f32 (*.f32 6 (*.f32 (*.f32 (PI.f32) r) s)))) (pow.f32 (cbrt.f32 (*.f32 6 (*.f32 (*.f32 (PI.f32) r) s))) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (pow.f32 (cbrt.f32 (*.f32 s r)) 2) (*.f32 (cbrt.f32 (*.f32 s r)) (*.f32 6 (PI.f32))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (cbrt.f32 (*.f32 6 (PI.f32))) (*.f32 (cbrt.f32 (*.f32 s r)) (pow.f32 (cbrt.f32 (*.f32 6 (*.f32 (*.f32 (PI.f32) r) s))) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (cbrt.f32 (*.f32 36 (pow.f32 (PI.f32) 2))) (*.f32 (cbrt.f32 (*.f32 6 (PI.f32))) (*.f32 s r)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (sqrt.f32 (*.f32 6 (*.f32 (*.f32 (PI.f32) r) s))) (sqrt.f32 (*.f32 6 (*.f32 (*.f32 (PI.f32) r) s))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (pow.f32 (*.f32 6 (*.f32 (*.f32 (PI.f32) r) s)) 1/6) (*.f32 (pow.f32 (*.f32 6 (*.f32 (*.f32 (PI.f32) r) s)) 1/6) (pow.f32 (cbrt.f32 (*.f32 6 (*.f32 (*.f32 (PI.f32) r) s))) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (sqrt.f32 (*.f32 s r)) (*.f32 (sqrt.f32 (*.f32 s r)) (*.f32 6 (PI.f32))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (sqrt.f32 (*.f32 6 (PI.f32))) (*.f32 (sqrt.f32 (*.f32 6 (PI.f32))) (*.f32 s r)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (*.f32 (*.f32 (PI.f32) r) s) 6)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (*.f32 (*.f32 6 (PI.f32)) s) r)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (pow.f32 (pow.f32 (cbrt.f32 (cbrt.f32 (*.f32 6 (*.f32 (*.f32 (PI.f32) r) s)))) 2) 3) (cbrt.f32 (*.f32 6 (*.f32 (*.f32 (PI.f32) r) s))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (pow.f32 (pow.f32 (*.f32 6 (*.f32 (*.f32 (PI.f32) r) s)) 1/6) 3) (pow.f32 (pow.f32 (*.f32 6 (*.f32 (*.f32 (PI.f32) r) s)) 1/6) 3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (*.f32 (*.f32 6 (PI.f32)) r) s)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (*.f32 (*.f32 6 (PI.f32)) (pow.f32 (cbrt.f32 (*.f32 s r)) 2)) (cbrt.f32 (*.f32 s r)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (*.f32 (*.f32 6 (PI.f32)) (sqrt.f32 (*.f32 s r))) (sqrt.f32 (*.f32 s r)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (*.f32 (*.f32 s r) 6) (PI.f32))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (*.f32 (*.f32 s r) (cbrt.f32 (*.f32 36 (pow.f32 (PI.f32) 2)))) (cbrt.f32 (*.f32 6 (PI.f32))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (*.f32 (*.f32 s r) (sqrt.f32 (*.f32 6 (PI.f32)))) (sqrt.f32 (*.f32 6 (PI.f32))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (*.f32 (pow.f32 (cbrt.f32 (*.f32 6 (*.f32 (*.f32 (PI.f32) r) s))) 2) 1) (cbrt.f32 (*.f32 6 (*.f32 (*.f32 (PI.f32) r) s))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (*.f32 (pow.f32 (cbrt.f32 (*.f32 6 (*.f32 (*.f32 (PI.f32) r) s))) 2) (pow.f32 (cbrt.f32 (cbrt.f32 (*.f32 6 (*.f32 (*.f32 (PI.f32) r) s)))) 2)) (cbrt.f32 (cbrt.f32 (*.f32 6 (*.f32 (*.f32 (PI.f32) r) s)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (*.f32 (pow.f32 (cbrt.f32 (*.f32 6 (*.f32 (*.f32 (PI.f32) r) s))) 2) (cbrt.f32 (*.f32 6 (PI.f32)))) (cbrt.f32 (*.f32 s r)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (*.f32 (pow.f32 (cbrt.f32 (*.f32 6 (*.f32 (*.f32 (PI.f32) r) s))) 2) (pow.f32 (*.f32 6 (*.f32 (*.f32 (PI.f32) r) s)) 1/6)) (pow.f32 (*.f32 6 (*.f32 (*.f32 (PI.f32) r) s)) 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (*.f32 (*.f32 (*.f32 6 (PI.f32)) s) 1) r)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (*.f32 (*.f32 (*.f32 6 (PI.f32)) s) (pow.f32 (cbrt.f32 r) 2)) (cbrt.f32 r))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (*.f32 (*.f32 (*.f32 6 (PI.f32)) s) (sqrt.f32 r)) (sqrt.f32 r))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f32 (pow.f32 (*.f32 6 (*.f32 (*.f32 (PI.f32) r) s)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (pow.f32 (exp.f32 6) (*.f32 (*.f32 (PI.f32) r) s)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (+.f32 1 (expm1.f32 (*.f32 6 (*.f32 (*.f32 (PI.f32) r) s)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f32 (pow.f32 (*.f32 6 (*.f32 (*.f32 (PI.f32) r) s)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f32 (*.f32 (pow.f32 (*.f32 6 (PI.f32)) 3) (pow.f32 (*.f32 s r) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f32 (*.f32 (pow.f32 (*.f32 s r) 3) (pow.f32 (*.f32 6 (PI.f32)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f32 (log.f32 (*.f32 6 (*.f32 (*.f32 (PI.f32) r) s))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f32 (log1p.f32 (*.f32 6 (*.f32 (*.f32 (PI.f32) r) s))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f32 (expm1.f32 (*.f32 6 (*.f32 (*.f32 (PI.f32) r) s))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f32 (exp.f32 (log1p.f32 (*.f32 6 (*.f32 (*.f32 (PI.f32) r) s)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (*.f32 6 (*.f32 (*.f32 (PI.f32) r) s)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (cbrt.f32 (*.f32 6 (*.f32 (*.f32 (PI.f32) r) s))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (pow.f32 (*.f32 6 (*.f32 (*.f32 (PI.f32) r) s)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (pow.f32 (cbrt.f32 (*.f32 6 (*.f32 (*.f32 (PI.f32) r) s))) 2) 3/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (sqrt.f32 (*.f32 6 (*.f32 (*.f32 (PI.f32) r) s))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f32 (pow.f32 (*.f32 6 (*.f32 (*.f32 (PI.f32) r) s)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (pow.f32 (exp.f32 6) (*.f32 (*.f32 (PI.f32) r) s)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (+.f32 1 (expm1.f32 (*.f32 6 (*.f32 (*.f32 (PI.f32) r) s)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f32 (pow.f32 (*.f32 6 (*.f32 (*.f32 (PI.f32) r) s)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f32 (*.f32 (pow.f32 (*.f32 6 (PI.f32)) 3) (pow.f32 (*.f32 s r) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f32 (*.f32 (pow.f32 (*.f32 s r) 3) (pow.f32 (*.f32 6 (PI.f32)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f32 (log.f32 (*.f32 6 (*.f32 (*.f32 (PI.f32) r) s))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f32 (log1p.f32 (*.f32 6 (*.f32 (*.f32 (PI.f32) r) s))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f32 (expm1.f32 (*.f32 6 (*.f32 (*.f32 (PI.f32) r) s))))))))

simplify16.0ms (0.4%)

Algorithm
egg-herbie
Rules
26×associate-*l*_binary32
20×associate-*r*_binary32
17×*-commutative_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
08264
115264
237264
372264
483264
Stop Event
saturated
Counts
84 → 51
Calls
Call 1
Inputs
(*.f32 6 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 6 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 6 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 6 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 6 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 6 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 6 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 6 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 6 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 6 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 6 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 6 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 6 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 6 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 6 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 6 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 6 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 6 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 6 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 6 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 6 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 6 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 6 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 6 (*.f32 s (*.f32 r (PI.f32))))
Outputs
(*.f32 6 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 r (*.f32 6 (*.f32 s (PI.f32))))
(*.f32 s (*.f32 r (*.f32 6 (PI.f32))))
(*.f32 6 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 r (*.f32 6 (*.f32 s (PI.f32))))
(*.f32 s (*.f32 r (*.f32 6 (PI.f32))))
(*.f32 6 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 r (*.f32 6 (*.f32 s (PI.f32))))
(*.f32 s (*.f32 r (*.f32 6 (PI.f32))))
(*.f32 6 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 r (*.f32 6 (*.f32 s (PI.f32))))
(*.f32 s (*.f32 r (*.f32 6 (PI.f32))))
(*.f32 6 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 r (*.f32 6 (*.f32 s (PI.f32))))
(*.f32 s (*.f32 r (*.f32 6 (PI.f32))))
(*.f32 6 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 r (*.f32 6 (*.f32 s (PI.f32))))
(*.f32 s (*.f32 r (*.f32 6 (PI.f32))))
(*.f32 6 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 r (*.f32 6 (*.f32 s (PI.f32))))
(*.f32 s (*.f32 r (*.f32 6 (PI.f32))))
(*.f32 6 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 r (*.f32 6 (*.f32 s (PI.f32))))
(*.f32 s (*.f32 r (*.f32 6 (PI.f32))))
(*.f32 6 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 r (*.f32 6 (*.f32 s (PI.f32))))
(*.f32 s (*.f32 r (*.f32 6 (PI.f32))))
(*.f32 6 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 r (*.f32 6 (*.f32 s (PI.f32))))
(*.f32 s (*.f32 r (*.f32 6 (PI.f32))))
(*.f32 6 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 r (*.f32 6 (*.f32 s (PI.f32))))
(*.f32 s (*.f32 r (*.f32 6 (PI.f32))))
(*.f32 6 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 r (*.f32 6 (*.f32 s (PI.f32))))
(*.f32 s (*.f32 r (*.f32 6 (PI.f32))))
(*.f32 6 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 r (*.f32 6 (*.f32 s (PI.f32))))
(*.f32 s (*.f32 r (*.f32 6 (PI.f32))))
(*.f32 6 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 r (*.f32 6 (*.f32 s (PI.f32))))
(*.f32 s (*.f32 r (*.f32 6 (PI.f32))))
(*.f32 6 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 r (*.f32 6 (*.f32 s (PI.f32))))
(*.f32 s (*.f32 r (*.f32 6 (PI.f32))))
(*.f32 6 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 r (*.f32 6 (*.f32 s (PI.f32))))
(*.f32 s (*.f32 r (*.f32 6 (PI.f32))))
(*.f32 6 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 r (*.f32 6 (*.f32 s (PI.f32))))
(*.f32 s (*.f32 r (*.f32 6 (PI.f32))))
(*.f32 6 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 r (*.f32 6 (*.f32 s (PI.f32))))
(*.f32 s (*.f32 r (*.f32 6 (PI.f32))))
(*.f32 6 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 r (*.f32 6 (*.f32 s (PI.f32))))
(*.f32 s (*.f32 r (*.f32 6 (PI.f32))))
(*.f32 6 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 r (*.f32 6 (*.f32 s (PI.f32))))
(*.f32 s (*.f32 r (*.f32 6 (PI.f32))))
(*.f32 6 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 r (*.f32 6 (*.f32 s (PI.f32))))
(*.f32 s (*.f32 r (*.f32 6 (PI.f32))))
(*.f32 6 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 r (*.f32 6 (*.f32 s (PI.f32))))
(*.f32 s (*.f32 r (*.f32 6 (PI.f32))))
(*.f32 6 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 r (*.f32 6 (*.f32 s (PI.f32))))
(*.f32 s (*.f32 r (*.f32 6 (PI.f32))))
(*.f32 6 (*.f32 s (*.f32 r (PI.f32))))
(*.f32 r (*.f32 6 (*.f32 s (PI.f32))))
(*.f32 s (*.f32 r (*.f32 6 (PI.f32))))

prune279.0ms (6.5%)

Pruning

11 alts after pruning (11 fresh and 0 done)

PrunedKeptTotal
New89493
Fresh178
Picked101
Done000
Total9111102
Error
0.1b
Counts
102 → 11
Alt Table
StatusErrorProgram
0.2b
(+.f32 (/.f32 (*.f32 1/4 (exp.f32 (/.f32 (neg.f32 r) s))) (*.f32 (*.f32 (*.f32 2 (PI.f32)) s) r)) (/.f32 (*.f32 3/4 (exp.f32 (*.f32 -1/3 (/.f32 r s)))) (*.f32 (sqrt.f32 (*.f32 s r)) (*.f32 (sqrt.f32 (*.f32 s r)) (*.f32 6 (PI.f32))))))
19.0b
(+.f32 (/.f32 (*.f32 1/4 (exp.f32 (/.f32 (neg.f32 r) s))) (*.f32 (pow.f32 (pow.f32 (*.f32 (PI.f32) (*.f32 2 s)) 3) 1/3) r)) (/.f32 (*.f32 3/4 (exp.f32 (/.f32 (*.f32 -1/3 r) s))) (*.f32 (*.f32 (*.f32 6 (PI.f32)) s) r)))
0.2b
(+.f32 (/.f32 (*.f32 1/4 (exp.f32 (/.f32 (neg.f32 r) s))) (*.f32 (*.f32 (*.f32 2 (PI.f32)) s) r)) (/.f32 (*.f32 3/4 (exp.f32 (/.f32 -1/3 (/.f32 s r)))) (*.f32 (*.f32 (*.f32 6 (PI.f32)) s) r)))
24.0b
(+.f32 (/.f32 (*.f32 1/4 (exp.f32 (/.f32 (neg.f32 r) s))) (*.f32 (*.f32 (*.f32 2 (PI.f32)) s) r)) (/.f32 (*.f32 3/4 (exp.f32 (/.f32 (neg.f32 r) (*.f32 3 s)))) (log.f32 (+.f32 1 (expm1.f32 (*.f32 (*.f32 6 (PI.f32)) (*.f32 s r)))))))
18.5b
(+.f32 (/.f32 (*.f32 1/4 (exp.f32 (/.f32 (neg.f32 r) s))) (*.f32 (*.f32 (*.f32 2 (PI.f32)) s) r)) (/.f32 (*.f32 3/4 (exp.f32 (/.f32 (*.f32 -1/3 r) s))) (pow.f32 (pow.f32 (*.f32 (*.f32 6 (PI.f32)) (*.f32 s r)) 3) 1/3)))
0.2b
(+.f32 (/.f32 (*.f32 1/4 (exp.f32 (/.f32 (neg.f32 r) s))) (*.f32 (*.f32 (*.f32 2 (PI.f32)) s) r)) (/.f32 (*.f32 3/4 (exp.f32 (*.f32 -1/3 (/.f32 r s)))) (exp.f32 (log.f32 (*.f32 (*.f32 6 (PI.f32)) (*.f32 s r))))))
0.2b
(+.f32 (/.f32 (*.f32 1/4 (exp.f32 (/.f32 (neg.f32 r) s))) (*.f32 (pow.f32 (cbrt.f32 (*.f32 (PI.f32) (*.f32 2 s))) 3) r)) (/.f32 (*.f32 3/4 (exp.f32 (*.f32 -1/3 (/.f32 r s)))) (pow.f32 (cbrt.f32 (*.f32 (*.f32 6 (PI.f32)) (*.f32 s r))) 3)))
0.2b
(+.f32 (/.f32 (*.f32 1/4 (exp.f32 (/.f32 (neg.f32 r) s))) (*.f32 (*.f32 (*.f32 2 (PI.f32)) s) r)) (/.f32 (*.f32 3/4 (exp.f32 (*.f32 -1/3 (/.f32 r s)))) (*.f32 (pow.f32 (*.f32 6 (*.f32 (*.f32 (PI.f32) r) s)) 1/6) (*.f32 (pow.f32 (*.f32 6 (*.f32 (*.f32 (PI.f32) r) s)) 1/6) (pow.f32 (cbrt.f32 (*.f32 6 (*.f32 (*.f32 (PI.f32) r) s))) 2)))))
0.3b
(+.f32 (/.f32 (*.f32 1/4 (exp.f32 (/.f32 (neg.f32 r) s))) (*.f32 (*.f32 (*.f32 2 (PI.f32)) s) r)) (/.f32 (*.f32 3/4 (exp.f32 (/.f32 (neg.f32 r) (*.f32 3 s)))) (exp.f32 (log.f32 (*.f32 (*.f32 6 (PI.f32)) (*.f32 s r))))))
0.2b
(+.f32 (/.f32 (*.f32 1/4 (exp.f32 (/.f32 (neg.f32 r) s))) (*.f32 (pow.f32 (sqrt.f32 (*.f32 (PI.f32) (*.f32 2 s))) 2) r)) (/.f32 (*.f32 3/4 (exp.f32 (*.f32 -1/3 (/.f32 r s)))) (*.f32 (*.f32 (*.f32 6 (PI.f32)) s) r)))
0.2b
(+.f32 (/.f32 (*.f32 1/4 (exp.f32 (/.f32 (neg.f32 r) s))) (*.f32 (*.f32 (*.f32 2 (PI.f32)) s) r)) (/.f32 (*.f32 3/4 (exp.f32 (*.f32 -1/3 (/.f32 r s)))) (*.f32 (pow.f32 (pow.f32 (cbrt.f32 (cbrt.f32 (*.f32 6 (*.f32 (*.f32 (PI.f32) r) s)))) 2) 3) (cbrt.f32 (*.f32 6 (*.f32 (*.f32 (PI.f32) r) s))))))
Compiler

Compiled 4030 to 2389 computations (40.7% saved)

regimes44.0ms (1%)

Accuracy

Total -23.9b remaining (-12678%)

Threshold costs -23.9b (-12678%)

Counts
22 → 1
Calls
Call 1
Inputs
(+.f32 (/.f32 (*.f32 1/4 (exp.f32 (/.f32 (neg.f32 r) s))) (*.f32 (*.f32 (*.f32 2 (PI.f32)) s) r)) (/.f32 (*.f32 3/4 (exp.f32 (*.f32 -1/3 (/.f32 r s)))) (*.f32 (sqrt.f32 (*.f32 s r)) (*.f32 (sqrt.f32 (*.f32 s r)) (*.f32 6 (PI.f32))))))
(+.f32 (/.f32 (*.f32 1/4 (exp.f32 (/.f32 (neg.f32 r) s))) (*.f32 (pow.f32 (cbrt.f32 (*.f32 (PI.f32) (*.f32 2 s))) 3) r)) (/.f32 (*.f32 3/4 (exp.f32 (*.f32 -1/3 (/.f32 r s)))) (pow.f32 (cbrt.f32 (*.f32 (*.f32 6 (PI.f32)) (*.f32 s r))) 3)))
(+.f32 (/.f32 (*.f32 1/4 (exp.f32 (/.f32 (neg.f32 r) s))) (*.f32 (*.f32 (*.f32 2 (PI.f32)) s) r)) (/.f32 (*.f32 3/4 (exp.f32 (*.f32 -1/3 (/.f32 r s)))) (*.f32 (pow.f32 (*.f32 6 (*.f32 (*.f32 (PI.f32) r) s)) 1/6) (*.f32 (pow.f32 (*.f32 6 (*.f32 (*.f32 (PI.f32) r) s)) 1/6) (pow.f32 (cbrt.f32 (*.f32 6 (*.f32 (*.f32 (PI.f32) r) s))) 2)))))
(+.f32 (/.f32 (*.f32 1/4 (exp.f32 (/.f32 (neg.f32 r) s))) (*.f32 (*.f32 (*.f32 2 (PI.f32)) s) r)) (/.f32 (*.f32 3/4 (exp.f32 (*.f32 -1/3 (/.f32 r s)))) (*.f32 (pow.f32 (pow.f32 (cbrt.f32 (cbrt.f32 (*.f32 6 (*.f32 (*.f32 (PI.f32) r) s)))) 2) 3) (cbrt.f32 (*.f32 6 (*.f32 (*.f32 (PI.f32) r) s))))))
(+.f32 (/.f32 (*.f32 1/4 (exp.f32 (/.f32 (neg.f32 r) s))) (*.f32 (*.f32 (*.f32 2 (PI.f32)) s) r)) (/.f32 (*.f32 3/4 (exp.f32 (/.f32 (*.f32 -1/3 r) s))) (pow.f32 (pow.f32 (*.f32 (*.f32 6 (PI.f32)) (*.f32 s r)) 3) 1/3)))
(+.f32 (/.f32 (*.f32 1/4 (exp.f32 (/.f32 (neg.f32 r) s))) (*.f32 (pow.f32 (pow.f32 (*.f32 (PI.f32) (*.f32 2 s)) 3) 1/3) r)) (/.f32 (*.f32 3/4 (exp.f32 (/.f32 (*.f32 -1/3 r) s))) (*.f32 (*.f32 (*.f32 6 (PI.f32)) s) r)))
(+.f32 (/.f32 (*.f32 1/4 (exp.f32 (/.f32 (neg.f32 r) s))) (*.f32 (pow.f32 (pow.f32 (*.f32 (PI.f32) (*.f32 2 s)) 3) 1/3) r)) (/.f32 (*.f32 3/4 (exp.f32 (*.f32 -1/3 (/.f32 r s)))) (*.f32 (*.f32 (*.f32 6 (PI.f32)) s) r)))
(+.f32 (/.f32 (*.f32 1/4 (exp.f32 (/.f32 (neg.f32 r) s))) (*.f32 (*.f32 (*.f32 2 (PI.f32)) s) r)) (/.f32 (*.f32 3/4 (exp.f32 (*.f32 -1/3 (/.f32 r s)))) (pow.f32 (cbrt.f32 (*.f32 (*.f32 6 (PI.f32)) (*.f32 s r))) 3)))
(+.f32 (/.f32 (*.f32 1/4 (exp.f32 (/.f32 (neg.f32 r) s))) (*.f32 (pow.f32 (cbrt.f32 (*.f32 (PI.f32) (*.f32 2 s))) 3) r)) (/.f32 (*.f32 3/4 (exp.f32 (*.f32 -1/3 (/.f32 r s)))) (*.f32 (*.f32 (*.f32 6 (PI.f32)) s) r)))
(+.f32 (/.f32 (*.f32 1/4 (exp.f32 (/.f32 (neg.f32 r) s))) (*.f32 (*.f32 (*.f32 2 (PI.f32)) s) r)) (/.f32 (*.f32 3/4 (exp.f32 (/.f32 -1/3 (/.f32 s r)))) (*.f32 (*.f32 (*.f32 6 (PI.f32)) s) r)))
(+.f32 (/.f32 (*.f32 1/4 (exp.f32 (/.f32 (neg.f32 r) s))) (*.f32 (pow.f32 (sqrt.f32 (*.f32 (PI.f32) (*.f32 2 s))) 2) r)) (/.f32 (*.f32 3/4 (exp.f32 (*.f32 -1/3 (/.f32 r s)))) (*.f32 (*.f32 (*.f32 6 (PI.f32)) s) r)))
(+.f32 (/.f32 (*.f32 1/4 (exp.f32 (/.f32 (neg.f32 r) s))) (*.f32 (*.f32 (*.f32 2 (PI.f32)) s) r)) (/.f32 (*.f32 3/4 (exp.f32 (/.f32 (*.f32 -1/3 r) s))) (*.f32 (*.f32 (*.f32 6 (PI.f32)) s) r)))
(+.f32 (/.f32 (*.f32 1/4 (exp.f32 (/.f32 (neg.f32 r) s))) (*.f32 (*.f32 (*.f32 2 (PI.f32)) s) r)) (/.f32 (*.f32 3/4 (exp.f32 (*.f32 -1/3 (/.f32 r s)))) (exp.f32 (log.f32 (*.f32 (*.f32 6 (PI.f32)) (*.f32 s r))))))
(+.f32 (/.f32 (*.f32 1/4 (exp.f32 (/.f32 (neg.f32 r) s))) (*.f32 (*.f32 (*.f32 2 (PI.f32)) s) r)) (/.f32 (*.f32 3/4 (exp.f32 (/.f32 (neg.f32 r) (*.f32 3 s)))) (exp.f32 (log.f32 (*.f32 (*.f32 6 (PI.f32)) (*.f32 s r))))))
(+.f32 (/.f32 (*.f32 1/4 (exp.f32 (/.f32 (neg.f32 r) s))) (*.f32 (*.f32 (*.f32 2 (PI.f32)) s) r)) (/.f32 (*.f32 3/4 (exp.f32 (/.f32 (neg.f32 r) (*.f32 3 s)))) (pow.f32 (cbrt.f32 (*.f32 (*.f32 6 (PI.f32)) (*.f32 s r))) 3)))
(+.f32 (/.f32 (*.f32 1/4 (exp.f32 (/.f32 (neg.f32 r) s))) (*.f32 (*.f32 (*.f32 2 (PI.f32)) s) r)) (/.f32 (*.f32 3/4 (exp.f32 (/.f32 (neg.f32 r) (*.f32 3 s)))) (log.f32 (+.f32 1 (expm1.f32 (*.f32 (*.f32 6 (PI.f32)) (*.f32 s r)))))))
(+.f32 (/.f32 (*.f32 1/4 (exp.f32 (/.f32 (neg.f32 r) s))) (*.f32 (pow.f32 (pow.f32 (*.f32 (PI.f32) (*.f32 2 s)) 3) 1/3) r)) (/.f32 (*.f32 3/4 (exp.f32 (/.f32 (neg.f32 r) (*.f32 3 s)))) (*.f32 (*.f32 (*.f32 6 (PI.f32)) s) r)))
(+.f32 (/.f32 (*.f32 1/4 (exp.f32 (/.f32 (neg.f32 r) s))) (*.f32 (*.f32 (*.f32 2 (PI.f32)) s) r)) (/.f32 (*.f32 3/4 (exp.f32 (*.f32 -1/3 (/.f32 r s)))) (*.f32 (*.f32 (*.f32 6 (PI.f32)) s) r)))
(+.f32 (/.f32 (*.f32 1/4 (exp.f32 (/.f32 (neg.f32 r) s))) (*.f32 (*.f32 (*.f32 2 (PI.f32)) s) r)) (/.f32 (*.f32 3/4 (exp.f32 (/.f32 (neg.f32 r) (*.f32 3 s)))) (pow.f32 (pow.f32 (*.f32 (*.f32 6 (PI.f32)) (*.f32 s r)) 3) 1/3)))
(+.f32 (/.f32 (*.f32 1/4 (exp.f32 (/.f32 (neg.f32 r) s))) (*.f32 (*.f32 (*.f32 2 (PI.f32)) s) r)) (/.f32 (*.f32 3/4 (exp.f32 (*.f32 (/.f32 -1 s) (*.f32 r 1/3)))) (*.f32 (*.f32 (*.f32 6 (PI.f32)) s) r)))
(*.f32 (/.f32 (/.f32 (/.f32 1/8 s) (PI.f32)) r) (+.f32 (exp.f32 (/.f32 (neg.f32 r) s)) (pow.f32 (exp.f32 r) (/.f32 -1/3 s))))
(+.f32 (/.f32 (*.f32 1/4 (exp.f32 (/.f32 (neg.f32 r) s))) (*.f32 (*.f32 (*.f32 2 (PI.f32)) s) r)) (/.f32 (*.f32 3/4 (exp.f32 (/.f32 (neg.f32 r) (*.f32 3 s)))) (*.f32 (*.f32 (*.f32 6 (PI.f32)) s) r)))
Outputs
(+.f32 (/.f32 (*.f32 1/4 (exp.f32 (/.f32 (neg.f32 r) s))) (*.f32 (*.f32 (*.f32 2 (PI.f32)) s) r)) (/.f32 (*.f32 3/4 (exp.f32 (*.f32 -1/3 (/.f32 r s)))) (*.f32 (*.f32 (*.f32 6 (PI.f32)) s) r)))
Results
9.0ms0.2bs
12.0ms0.2br
3.0ms0.2b(+.f32 (/.f32 (*.f32 1/4 (exp.f32 (/.f32 (neg.f32 r) s))) (*.f32 (*.f32 (*.f32 2 (PI.f32)) s) r)) (/.f32 (*.f32 3/4 (exp.f32 (/.f32 (neg.f32 r) (*.f32 3 s)))) (*.f32 (*.f32 (*.f32 6 (PI.f32)) s) r)))
Compiler

Compiled 833 to 498 computations (40.2% saved)

simplify4.0ms (0.1%)

Algorithm
egg-herbie
Rules
11×*-commutative_binary32
+-commutative_binary32
sub-neg_binary32
neg-sub0_binary32
neg-mul-1_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02651
14151
24551
34851
44951
Stop Event
saturated
Calls
Call 1
Inputs
(+.f32 (/.f32 (*.f32 1/4 (exp.f32 (/.f32 (neg.f32 r) s))) (*.f32 (*.f32 (*.f32 2 (PI.f32)) s) r)) (/.f32 (*.f32 3/4 (exp.f32 (*.f32 -1/3 (/.f32 r s)))) (*.f32 (*.f32 (*.f32 6 (PI.f32)) s) r)))
Outputs
(+.f32 (/.f32 (*.f32 1/4 (exp.f32 (/.f32 (neg.f32 r) s))) (*.f32 (*.f32 (*.f32 2 (PI.f32)) s) r)) (/.f32 (*.f32 3/4 (exp.f32 (*.f32 -1/3 (/.f32 r s)))) (*.f32 (*.f32 (*.f32 6 (PI.f32)) s) r)))
(+.f32 (/.f32 (*.f32 1/4 (exp.f32 (/.f32 (neg.f32 r) s))) (*.f32 r (*.f32 s (*.f32 2 (PI.f32))))) (/.f32 (*.f32 3/4 (exp.f32 (*.f32 -1/3 (/.f32 r s)))) (*.f32 r (*.f32 s (*.f32 (PI.f32) 6)))))

end22.0ms (0.5%)

Stop Event
fuel
Compiler

Compiled 68 to 50 computations (26.5% saved)

Profiling

Loading profile data...