FastMath test2

Time bar (total: 2.2s)

analyze0.0ms (0%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.9%0.1%0%0%0%0
100%99.9%0%0.1%0%0%0%1
Compiler

Compiled 14 to 10 computations (28.6% saved)

sample843.0ms (38.5%)

Results
712.0ms7124×body256valid
98.0ms1027×body256infinite
15.0ms64×body1024valid
8.0ms41×body512valid
Bogosity

preprocess325.0ms (14.8%)

Algorithm
egg-herbie
Rules
2540×fma-def
736×fma-neg
324×unsub-neg
244×cancel-sign-sub-inv
228×distribute-rgt-in
Problems
256×No Errors
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
032258
193183
2291141
3870133
42078133
53173133
63872133
73902133
83902133
94084133
104084133
Stop Event
saturated
Calls
Call 1
Inputs
(+.f64 (+.f64 (*.f64 d1 10) (*.f64 d1 d2)) (*.f64 d1 20))
(+.f64 (+.f64 (*.f64 d1 10) (*.f64 d1 d2)) (*.f64 d1 20))
(+.f64 (+.f64 (*.f64 (neg.f64 d1) 10) (*.f64 (neg.f64 d1) d2)) (*.f64 (neg.f64 d1) 20))
(+.f64 (+.f64 (*.f64 d1 10) (*.f64 d1 (neg.f64 d2))) (*.f64 d1 20))
(neg.f64 (+.f64 (+.f64 (*.f64 (neg.f64 d1) 10) (*.f64 (neg.f64 d1) d2)) (*.f64 (neg.f64 d1) 20)))
(neg.f64 (+.f64 (+.f64 (*.f64 d1 10) (*.f64 d1 (neg.f64 d2))) (*.f64 d1 20)))
(+.f64 (+.f64 (*.f64 d2 10) (*.f64 d2 d1)) (*.f64 d2 20))
Outputs
(+.f64 (+.f64 (*.f64 d1 10) (*.f64 d1 d2)) (*.f64 d1 20))
(+.f64 (*.f64 d1 (+.f64 10 d2)) (*.f64 d1 20))
(*.f64 d1 (+.f64 (+.f64 10 d2) 20))
(*.f64 d1 (+.f64 d2 30))
(+.f64 (+.f64 (*.f64 d1 10) (*.f64 d1 d2)) (*.f64 d1 20))
(+.f64 (*.f64 d1 (+.f64 10 d2)) (*.f64 d1 20))
(*.f64 d1 (+.f64 (+.f64 10 d2) 20))
(*.f64 d1 (+.f64 d2 30))
(+.f64 (+.f64 (*.f64 (neg.f64 d1) 10) (*.f64 (neg.f64 d1) d2)) (*.f64 (neg.f64 d1) 20))
(+.f64 (*.f64 (neg.f64 d1) (+.f64 10 d2)) (*.f64 20 (neg.f64 d1)))
(*.f64 (neg.f64 d1) (+.f64 (+.f64 10 d2) 20))
(*.f64 (neg.f64 d1) (+.f64 d2 30))
(*.f64 d1 (-.f64 -30 d2))
(+.f64 (+.f64 (*.f64 d1 10) (*.f64 d1 (neg.f64 d2))) (*.f64 d1 20))
(+.f64 (*.f64 d1 20) (*.f64 d1 (+.f64 10 (neg.f64 d2))))
(*.f64 d1 (+.f64 20 (-.f64 10 d2)))
(*.f64 d1 (-.f64 30 d2))
(neg.f64 (+.f64 (+.f64 (*.f64 (neg.f64 d1) 10) (*.f64 (neg.f64 d1) d2)) (*.f64 (neg.f64 d1) 20)))
(+.f64 (*.f64 d1 (+.f64 10 d2)) (*.f64 d1 20))
(*.f64 d1 (+.f64 (+.f64 10 d2) 20))
(*.f64 d1 (+.f64 d2 30))
(neg.f64 (+.f64 (+.f64 (*.f64 d1 10) (*.f64 d1 (neg.f64 d2))) (*.f64 d1 20)))
(neg.f64 (+.f64 (*.f64 d1 20) (*.f64 d1 (+.f64 10 (neg.f64 d2)))))
(neg.f64 (*.f64 d1 (+.f64 20 (-.f64 10 d2))))
(*.f64 (neg.f64 d1) (-.f64 30 d2))
(*.f64 d1 (+.f64 d2 -30))
(+.f64 (+.f64 (*.f64 d2 10) (*.f64 d2 d1)) (*.f64 d2 20))
(+.f64 (*.f64 d2 (+.f64 10 d1)) (*.f64 d2 20))
(*.f64 d2 (+.f64 (+.f64 d1 10) 20))
(*.f64 d2 (+.f64 d1 30))
Symmetry

(negabs d1)

Compiler

Compiled 47 to 28 computations (40.4% saved)

eval1.0ms (0%)

Compiler

Compiled 23 to 16 computations (30.4% saved)

prune1.0ms (0.1%)

Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(*.f64 d1 (+.f64 d2 30))
100.0%
(*.f64 d1 (+.f64 d2 30))
Compiler

Compiled 14 to 10 computations (28.6% saved)

localize26.0ms (1.2%)

Localize:

Found 1 expressions with local error:

NewAccuracyProgram
100.0%
(*.f64 d1 (+.f64 d2 30))
Compiler

Compiled 14 to 9 computations (35.7% saved)

series2.0ms (0.1%)

Counts
1 → 24
Calls

6 calls:

TimeVariablePointExpression
0.0ms
d1
@0
(*.f64 d1 (+.f64 d2 30))
0.0ms
d2
@-inf
(*.f64 d1 (+.f64 d2 30))
0.0ms
d1
@inf
(*.f64 d1 (+.f64 d2 30))
0.0ms
d1
@-inf
(*.f64 d1 (+.f64 d2 30))
0.0ms
d2
@inf
(*.f64 d1 (+.f64 d2 30))

rewrite201.0ms (9.2%)

Algorithm
batch-egg-rewrite
Rules
680×unpow-prod-down
515×log1p-expm1-u
515×expm1-log1p-u
498×log-prod
480×add-exp-log
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01019
110619
2141819
Stop Event
node limit
Counts
1 → 53
Calls
Call 1
Inputs
(*.f64 d1 (+.f64 d2 30))
Outputs
(+.f64 (*.f64 d1 d2) (*.f64 d1 30))
(+.f64 (*.f64 d1 30) (*.f64 d1 d2))
(+.f64 0 (*.f64 d1 (+.f64 d2 30)))
(+.f64 (*.f64 (*.f64 d1 d2) 1) (*.f64 (*.f64 d1 30) 1))
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (+.f64 d2 30)) d1)) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (+.f64 d2 30)) d1))))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (+.f64 d2 30)) d1))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (+.f64 d2 30)) d1))))
(-.f64 (+.f64 1 (*.f64 d1 (+.f64 d2 30))) 1)
(/.f64 (+.f64 (pow.f64 (*.f64 d1 d2) 3) (*.f64 (pow.f64 d1 3) 27000)) (+.f64 (pow.f64 (*.f64 d1 d2) 2) (-.f64 (pow.f64 (*.f64 d1 30) 2) (*.f64 (*.f64 d1 d2) (*.f64 d1 30)))))
(/.f64 (-.f64 (pow.f64 (*.f64 d1 d2) 2) (pow.f64 (*.f64 d1 30) 2)) (-.f64 (*.f64 d1 d2) (*.f64 d1 30)))
(/.f64 (*.f64 d1 (+.f64 (pow.f64 d2 3) 27000)) (-.f64 (fma.f64 d2 d2 900) (*.f64 d2 30)))
(/.f64 (*.f64 d1 (fma.f64 d2 d2 -900)) (+.f64 d2 -30))
(/.f64 (*.f64 (+.f64 (pow.f64 d2 3) 27000) d1) (-.f64 (fma.f64 d2 d2 900) (*.f64 d2 30)))
(/.f64 (*.f64 (fma.f64 d2 d2 -900) d1) (+.f64 d2 -30))
(pow.f64 (*.f64 d1 (+.f64 d2 30)) 1)
(pow.f64 (cbrt.f64 (*.f64 d1 (+.f64 d2 30))) 3)
(pow.f64 (pow.f64 (*.f64 d1 (+.f64 d2 30)) 2) 1/2)
(pow.f64 (pow.f64 (*.f64 d1 (+.f64 d2 30)) 3) 1/3)
(pow.f64 (sqrt.f64 (*.f64 d1 (+.f64 d2 30))) 2)
(pow.f64 (E.f64) (log.f64 (*.f64 d1 (+.f64 d2 30))))
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 d1 (+.f64 d2 30)))) 2)) (cbrt.f64 (log.f64 (*.f64 d1 (+.f64 d2 30)))))
(pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 d1 (+.f64 d2 30))))) (sqrt.f64 (log.f64 (*.f64 d1 (+.f64 d2 30)))))
(sqrt.f64 (pow.f64 (*.f64 d1 (+.f64 d2 30)) 2))
(log.f64 (pow.f64 (exp.f64 (+.f64 d2 30)) d1))
(cbrt.f64 (pow.f64 (*.f64 d1 (+.f64 d2 30)) 3))
(expm1.f64 (log1p.f64 (*.f64 d1 (+.f64 d2 30))))
(exp.f64 (log.f64 (*.f64 d1 (+.f64 d2 30))))
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 d1 (+.f64 d2 30)))) 3))
(exp.f64 (*.f64 (*.f64 3 (log.f64 (*.f64 d1 (+.f64 d2 30)))) 1/3))
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 d1 (+.f64 d2 30)))) 2))
(log1p.f64 (expm1.f64 (*.f64 d1 (+.f64 d2 30))))
(fma.f64 d1 d2 (*.f64 d1 30))
(fma.f64 d1 30 (*.f64 d1 d2))
(fma.f64 d2 d1 (*.f64 d1 30))
(fma.f64 30 d1 (*.f64 d1 d2))
(fma.f64 1 (*.f64 d1 d2) (*.f64 d1 30))
(fma.f64 1 (*.f64 d1 30) (*.f64 d1 d2))
(fma.f64 (pow.f64 (cbrt.f64 d1) 2) (*.f64 (cbrt.f64 d1) d2) (*.f64 d1 30))
(fma.f64 (pow.f64 (cbrt.f64 d1) 2) (*.f64 (cbrt.f64 d1) 30) (*.f64 d1 d2))
(fma.f64 (pow.f64 (cbrt.f64 d2) 2) (*.f64 (cbrt.f64 d2) d1) (*.f64 d1 30))
(fma.f64 (sqrt.f64 d1) (*.f64 (sqrt.f64 d1) d2) (*.f64 d1 30))
(fma.f64 (sqrt.f64 d1) (*.f64 (sqrt.f64 d1) 30) (*.f64 d1 d2))
(fma.f64 (sqrt.f64 d2) (*.f64 (sqrt.f64 d2) d1) (*.f64 d1 30))
(fma.f64 (*.f64 d1 d2) 1 (*.f64 (*.f64 d1 30) 1))
(fma.f64 (pow.f64 (cbrt.f64 (*.f64 d1 30)) 2) (cbrt.f64 (*.f64 d1 30)) (*.f64 d1 d2))
(fma.f64 (pow.f64 (cbrt.f64 (*.f64 d1 d2)) 2) (cbrt.f64 (*.f64 d1 d2)) (*.f64 d1 30))
(fma.f64 (sqrt.f64 (*.f64 d1 30)) (sqrt.f64 (*.f64 d1 30)) (*.f64 d1 d2))
(fma.f64 (sqrt.f64 (*.f64 d1 d2)) (sqrt.f64 (*.f64 d1 d2)) (*.f64 d1 30))
(fma.f64 (*.f64 30 (pow.f64 (cbrt.f64 d1) 2)) (cbrt.f64 d1) (*.f64 d1 d2))
(fma.f64 (*.f64 30 (sqrt.f64 d1)) (sqrt.f64 d1) (*.f64 d1 d2))
(fma.f64 (*.f64 d1 (pow.f64 (cbrt.f64 d2) 2)) (cbrt.f64 d2) (*.f64 d1 30))
(fma.f64 (*.f64 d1 (sqrt.f64 d2)) (sqrt.f64 d2) (*.f64 d1 30))
(fma.f64 (*.f64 d2 (pow.f64 (cbrt.f64 d1) 2)) (cbrt.f64 d1) (*.f64 d1 30))
(fma.f64 (*.f64 d2 (sqrt.f64 d1)) (sqrt.f64 d1) (*.f64 d1 30))

simplify65.0ms (3%)

Algorithm
egg-herbie
Rules
1282×associate-/r*
1128×fma-def
558×fma-neg
446×cancel-sign-sub-inv
418×associate-*r/
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01571811
13841760
210441739
341891735
Stop Event
node limit
Counts
77 → 73
Calls
Call 1
Inputs
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 30 d1)
(+.f64 (*.f64 30 d1) (*.f64 d1 d2))
(+.f64 (*.f64 30 d1) (*.f64 d1 d2))
(+.f64 (*.f64 30 d1) (*.f64 d1 d2))
(*.f64 d1 d2)
(+.f64 (*.f64 30 d1) (*.f64 d1 d2))
(+.f64 (*.f64 30 d1) (*.f64 d1 d2))
(+.f64 (*.f64 30 d1) (*.f64 d1 d2))
(*.f64 d1 d2)
(+.f64 (*.f64 30 d1) (*.f64 d1 d2))
(+.f64 (*.f64 30 d1) (*.f64 d1 d2))
(+.f64 (*.f64 30 d1) (*.f64 d1 d2))
(+.f64 (*.f64 d1 d2) (*.f64 d1 30))
(+.f64 (*.f64 d1 30) (*.f64 d1 d2))
(+.f64 0 (*.f64 d1 (+.f64 d2 30)))
(+.f64 (*.f64 (*.f64 d1 d2) 1) (*.f64 (*.f64 d1 30) 1))
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (+.f64 d2 30)) d1)) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (+.f64 d2 30)) d1))))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (+.f64 d2 30)) d1))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (+.f64 d2 30)) d1))))
(-.f64 (+.f64 1 (*.f64 d1 (+.f64 d2 30))) 1)
(/.f64 (+.f64 (pow.f64 (*.f64 d1 d2) 3) (*.f64 (pow.f64 d1 3) 27000)) (+.f64 (pow.f64 (*.f64 d1 d2) 2) (-.f64 (pow.f64 (*.f64 d1 30) 2) (*.f64 (*.f64 d1 d2) (*.f64 d1 30)))))
(/.f64 (-.f64 (pow.f64 (*.f64 d1 d2) 2) (pow.f64 (*.f64 d1 30) 2)) (-.f64 (*.f64 d1 d2) (*.f64 d1 30)))
(/.f64 (*.f64 d1 (+.f64 (pow.f64 d2 3) 27000)) (-.f64 (fma.f64 d2 d2 900) (*.f64 d2 30)))
(/.f64 (*.f64 d1 (fma.f64 d2 d2 -900)) (+.f64 d2 -30))
(/.f64 (*.f64 (+.f64 (pow.f64 d2 3) 27000) d1) (-.f64 (fma.f64 d2 d2 900) (*.f64 d2 30)))
(/.f64 (*.f64 (fma.f64 d2 d2 -900) d1) (+.f64 d2 -30))
(pow.f64 (*.f64 d1 (+.f64 d2 30)) 1)
(pow.f64 (cbrt.f64 (*.f64 d1 (+.f64 d2 30))) 3)
(pow.f64 (pow.f64 (*.f64 d1 (+.f64 d2 30)) 2) 1/2)
(pow.f64 (pow.f64 (*.f64 d1 (+.f64 d2 30)) 3) 1/3)
(pow.f64 (sqrt.f64 (*.f64 d1 (+.f64 d2 30))) 2)
(pow.f64 (E.f64) (log.f64 (*.f64 d1 (+.f64 d2 30))))
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 d1 (+.f64 d2 30)))) 2)) (cbrt.f64 (log.f64 (*.f64 d1 (+.f64 d2 30)))))
(pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 d1 (+.f64 d2 30))))) (sqrt.f64 (log.f64 (*.f64 d1 (+.f64 d2 30)))))
(sqrt.f64 (pow.f64 (*.f64 d1 (+.f64 d2 30)) 2))
(log.f64 (pow.f64 (exp.f64 (+.f64 d2 30)) d1))
(cbrt.f64 (pow.f64 (*.f64 d1 (+.f64 d2 30)) 3))
(expm1.f64 (log1p.f64 (*.f64 d1 (+.f64 d2 30))))
(exp.f64 (log.f64 (*.f64 d1 (+.f64 d2 30))))
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 d1 (+.f64 d2 30)))) 3))
(exp.f64 (*.f64 (*.f64 3 (log.f64 (*.f64 d1 (+.f64 d2 30)))) 1/3))
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 d1 (+.f64 d2 30)))) 2))
(log1p.f64 (expm1.f64 (*.f64 d1 (+.f64 d2 30))))
(fma.f64 d1 d2 (*.f64 d1 30))
(fma.f64 d1 30 (*.f64 d1 d2))
(fma.f64 d2 d1 (*.f64 d1 30))
(fma.f64 30 d1 (*.f64 d1 d2))
(fma.f64 1 (*.f64 d1 d2) (*.f64 d1 30))
(fma.f64 1 (*.f64 d1 30) (*.f64 d1 d2))
(fma.f64 (pow.f64 (cbrt.f64 d1) 2) (*.f64 (cbrt.f64 d1) d2) (*.f64 d1 30))
(fma.f64 (pow.f64 (cbrt.f64 d1) 2) (*.f64 (cbrt.f64 d1) 30) (*.f64 d1 d2))
(fma.f64 (pow.f64 (cbrt.f64 d2) 2) (*.f64 (cbrt.f64 d2) d1) (*.f64 d1 30))
(fma.f64 (sqrt.f64 d1) (*.f64 (sqrt.f64 d1) d2) (*.f64 d1 30))
(fma.f64 (sqrt.f64 d1) (*.f64 (sqrt.f64 d1) 30) (*.f64 d1 d2))
(fma.f64 (sqrt.f64 d2) (*.f64 (sqrt.f64 d2) d1) (*.f64 d1 30))
(fma.f64 (*.f64 d1 d2) 1 (*.f64 (*.f64 d1 30) 1))
(fma.f64 (pow.f64 (cbrt.f64 (*.f64 d1 30)) 2) (cbrt.f64 (*.f64 d1 30)) (*.f64 d1 d2))
(fma.f64 (pow.f64 (cbrt.f64 (*.f64 d1 d2)) 2) (cbrt.f64 (*.f64 d1 d2)) (*.f64 d1 30))
(fma.f64 (sqrt.f64 (*.f64 d1 30)) (sqrt.f64 (*.f64 d1 30)) (*.f64 d1 d2))
(fma.f64 (sqrt.f64 (*.f64 d1 d2)) (sqrt.f64 (*.f64 d1 d2)) (*.f64 d1 30))
(fma.f64 (*.f64 30 (pow.f64 (cbrt.f64 d1) 2)) (cbrt.f64 d1) (*.f64 d1 d2))
(fma.f64 (*.f64 30 (sqrt.f64 d1)) (sqrt.f64 d1) (*.f64 d1 d2))
(fma.f64 (*.f64 d1 (pow.f64 (cbrt.f64 d2) 2)) (cbrt.f64 d2) (*.f64 d1 30))
(fma.f64 (*.f64 d1 (sqrt.f64 d2)) (sqrt.f64 d2) (*.f64 d1 30))
(fma.f64 (*.f64 d2 (pow.f64 (cbrt.f64 d1) 2)) (cbrt.f64 d1) (*.f64 d1 30))
(fma.f64 (*.f64 d2 (sqrt.f64 d1)) (sqrt.f64 d1) (*.f64 d1 30))
Outputs
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 30 d1)
(*.f64 d1 30)
(+.f64 (*.f64 30 d1) (*.f64 d1 d2))
(*.f64 d1 (+.f64 30 d2))
(+.f64 (*.f64 30 d1) (*.f64 d1 d2))
(*.f64 d1 (+.f64 30 d2))
(+.f64 (*.f64 30 d1) (*.f64 d1 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 d2)
(+.f64 (*.f64 30 d1) (*.f64 d1 d2))
(*.f64 d1 (+.f64 30 d2))
(+.f64 (*.f64 30 d1) (*.f64 d1 d2))
(*.f64 d1 (+.f64 30 d2))
(+.f64 (*.f64 30 d1) (*.f64 d1 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 d2)
(+.f64 (*.f64 30 d1) (*.f64 d1 d2))
(*.f64 d1 (+.f64 30 d2))
(+.f64 (*.f64 30 d1) (*.f64 d1 d2))
(*.f64 d1 (+.f64 30 d2))
(+.f64 (*.f64 30 d1) (*.f64 d1 d2))
(*.f64 d1 (+.f64 30 d2))
(+.f64 (*.f64 d1 d2) (*.f64 d1 30))
(*.f64 d1 (+.f64 30 d2))
(+.f64 (*.f64 d1 30) (*.f64 d1 d2))
(*.f64 d1 (+.f64 30 d2))
(+.f64 0 (*.f64 d1 (+.f64 d2 30)))
(*.f64 d1 (+.f64 30 d2))
(+.f64 (*.f64 (*.f64 d1 d2) 1) (*.f64 (*.f64 d1 30) 1))
(*.f64 d1 (+.f64 30 d2))
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (+.f64 d2 30)) d1)) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (+.f64 d2 30)) d1))))
(+.f64 (*.f64 2 (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (+.f64 30 d2)) d1)))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (+.f64 30 d2)) d1))))
(*.f64 3 (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (+.f64 30 d2)) d1))))
(*.f64 (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (+.f64 30 d2)) d1))) 3)
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (+.f64 d2 30)) d1))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (+.f64 d2 30)) d1))))
(*.f64 d1 (+.f64 30 d2))
(-.f64 (+.f64 1 (*.f64 d1 (+.f64 d2 30))) 1)
(*.f64 d1 (+.f64 30 d2))
(/.f64 (+.f64 (pow.f64 (*.f64 d1 d2) 3) (*.f64 (pow.f64 d1 3) 27000)) (+.f64 (pow.f64 (*.f64 d1 d2) 2) (-.f64 (pow.f64 (*.f64 d1 30) 2) (*.f64 (*.f64 d1 d2) (*.f64 d1 30)))))
(/.f64 (*.f64 (pow.f64 d1 3) (+.f64 27000 (pow.f64 d2 3))) (+.f64 (pow.f64 (*.f64 d1 d2) 2) (*.f64 (*.f64 d1 30) (-.f64 (*.f64 d1 30) (*.f64 d1 d2)))))
(/.f64 (pow.f64 d1 3) (/.f64 (fma.f64 (*.f64 d1 30) (*.f64 d1 (-.f64 30 d2)) (pow.f64 (*.f64 d1 d2) 2)) (+.f64 27000 (pow.f64 d2 3))))
(/.f64 (*.f64 (pow.f64 d1 3) (+.f64 27000 (pow.f64 d2 3))) (*.f64 d1 (+.f64 (/.f64 d1 1/900) (*.f64 d2 (*.f64 d1 (+.f64 d2 -30))))))
(/.f64 (-.f64 (pow.f64 (*.f64 d1 d2) 2) (pow.f64 (*.f64 d1 30) 2)) (-.f64 (*.f64 d1 d2) (*.f64 d1 30)))
(*.f64 d1 (+.f64 30 d2))
(/.f64 (*.f64 d1 (+.f64 (pow.f64 d2 3) 27000)) (-.f64 (fma.f64 d2 d2 900) (*.f64 d2 30)))
(/.f64 (*.f64 d1 (+.f64 27000 (pow.f64 d2 3))) (-.f64 (fma.f64 d2 d2 900) (*.f64 30 d2)))
(/.f64 (*.f64 d1 (+.f64 27000 (pow.f64 d2 3))) (+.f64 (fma.f64 d2 d2 900) (*.f64 d2 -30)))
(*.f64 d1 (/.f64 (+.f64 27000 (pow.f64 d2 3)) (fma.f64 d2 -30 (fma.f64 d2 d2 900))))
(*.f64 d1 (/.f64 (+.f64 27000 (pow.f64 d2 3)) (+.f64 900 (*.f64 d2 (+.f64 d2 -30)))))
(/.f64 (*.f64 d1 (fma.f64 d2 d2 -900)) (+.f64 d2 -30))
(/.f64 d1 (/.f64 (+.f64 d2 -30) (fma.f64 d2 d2 -900)))
(*.f64 (/.f64 d1 (+.f64 d2 -30)) (fma.f64 d2 d2 -900))
(*.f64 d1 (/.f64 (fma.f64 d2 d2 -900) (+.f64 d2 -30)))
(/.f64 (*.f64 (+.f64 (pow.f64 d2 3) 27000) d1) (-.f64 (fma.f64 d2 d2 900) (*.f64 d2 30)))
(/.f64 (*.f64 d1 (+.f64 27000 (pow.f64 d2 3))) (-.f64 (fma.f64 d2 d2 900) (*.f64 30 d2)))
(/.f64 (*.f64 d1 (+.f64 27000 (pow.f64 d2 3))) (+.f64 (fma.f64 d2 d2 900) (*.f64 d2 -30)))
(*.f64 d1 (/.f64 (+.f64 27000 (pow.f64 d2 3)) (fma.f64 d2 -30 (fma.f64 d2 d2 900))))
(*.f64 d1 (/.f64 (+.f64 27000 (pow.f64 d2 3)) (+.f64 900 (*.f64 d2 (+.f64 d2 -30)))))
(/.f64 (*.f64 (fma.f64 d2 d2 -900) d1) (+.f64 d2 -30))
(/.f64 d1 (/.f64 (+.f64 d2 -30) (fma.f64 d2 d2 -900)))
(*.f64 (/.f64 d1 (+.f64 d2 -30)) (fma.f64 d2 d2 -900))
(*.f64 d1 (/.f64 (fma.f64 d2 d2 -900) (+.f64 d2 -30)))
(pow.f64 (*.f64 d1 (+.f64 d2 30)) 1)
(*.f64 d1 (+.f64 30 d2))
(pow.f64 (cbrt.f64 (*.f64 d1 (+.f64 d2 30))) 3)
(*.f64 d1 (+.f64 30 d2))
(pow.f64 (pow.f64 (*.f64 d1 (+.f64 d2 30)) 2) 1/2)
(*.f64 d1 (+.f64 30 d2))
(pow.f64 (pow.f64 (*.f64 d1 (+.f64 d2 30)) 3) 1/3)
(*.f64 d1 (+.f64 30 d2))
(pow.f64 (sqrt.f64 (*.f64 d1 (+.f64 d2 30))) 2)
(*.f64 d1 (+.f64 30 d2))
(pow.f64 (E.f64) (log.f64 (*.f64 d1 (+.f64 d2 30))))
(*.f64 d1 (+.f64 30 d2))
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 d1 (+.f64 d2 30)))) 2)) (cbrt.f64 (log.f64 (*.f64 d1 (+.f64 d2 30)))))
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 d1 (+.f64 30 d2)))) 2)) (cbrt.f64 (log.f64 (*.f64 d1 (+.f64 30 d2)))))
(pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 d1 (+.f64 d2 30))))) (sqrt.f64 (log.f64 (*.f64 d1 (+.f64 d2 30)))))
(pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 d1 (+.f64 30 d2))))) (sqrt.f64 (log.f64 (*.f64 d1 (+.f64 30 d2)))))
(sqrt.f64 (pow.f64 (*.f64 d1 (+.f64 d2 30)) 2))
(*.f64 d1 (+.f64 30 d2))
(log.f64 (pow.f64 (exp.f64 (+.f64 d2 30)) d1))
(*.f64 d1 (+.f64 30 d2))
(cbrt.f64 (pow.f64 (*.f64 d1 (+.f64 d2 30)) 3))
(*.f64 d1 (+.f64 30 d2))
(expm1.f64 (log1p.f64 (*.f64 d1 (+.f64 d2 30))))
(*.f64 d1 (+.f64 30 d2))
(exp.f64 (log.f64 (*.f64 d1 (+.f64 d2 30))))
(*.f64 d1 (+.f64 30 d2))
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 d1 (+.f64 d2 30)))) 3))
(*.f64 d1 (+.f64 30 d2))
(exp.f64 (*.f64 (*.f64 3 (log.f64 (*.f64 d1 (+.f64 d2 30)))) 1/3))
(*.f64 d1 (+.f64 30 d2))
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 d1 (+.f64 d2 30)))) 2))
(*.f64 d1 (+.f64 30 d2))
(log1p.f64 (expm1.f64 (*.f64 d1 (+.f64 d2 30))))
(*.f64 d1 (+.f64 30 d2))
(fma.f64 d1 d2 (*.f64 d1 30))
(*.f64 d1 (+.f64 30 d2))
(fma.f64 d1 30 (*.f64 d1 d2))
(*.f64 d1 (+.f64 30 d2))
(fma.f64 d2 d1 (*.f64 d1 30))
(*.f64 d1 (+.f64 30 d2))
(fma.f64 30 d1 (*.f64 d1 d2))
(*.f64 d1 (+.f64 30 d2))
(fma.f64 1 (*.f64 d1 d2) (*.f64 d1 30))
(*.f64 d1 (+.f64 30 d2))
(fma.f64 1 (*.f64 d1 30) (*.f64 d1 d2))
(*.f64 d1 (+.f64 30 d2))
(fma.f64 (pow.f64 (cbrt.f64 d1) 2) (*.f64 (cbrt.f64 d1) d2) (*.f64 d1 30))
(*.f64 d1 (+.f64 30 d2))
(fma.f64 (pow.f64 (cbrt.f64 d1) 2) (*.f64 (cbrt.f64 d1) 30) (*.f64 d1 d2))
(*.f64 d1 (+.f64 30 d2))
(fma.f64 (pow.f64 (cbrt.f64 d2) 2) (*.f64 (cbrt.f64 d2) d1) (*.f64 d1 30))
(*.f64 d1 (+.f64 30 d2))
(fma.f64 (sqrt.f64 d1) (*.f64 (sqrt.f64 d1) d2) (*.f64 d1 30))
(*.f64 d1 (+.f64 30 d2))
(fma.f64 (sqrt.f64 d1) (*.f64 (sqrt.f64 d1) 30) (*.f64 d1 d2))
(*.f64 d1 (+.f64 30 d2))
(fma.f64 (sqrt.f64 d2) (*.f64 (sqrt.f64 d2) d1) (*.f64 d1 30))
(*.f64 d1 (+.f64 30 d2))
(fma.f64 (*.f64 d1 d2) 1 (*.f64 (*.f64 d1 30) 1))
(*.f64 d1 (+.f64 30 d2))
(fma.f64 (pow.f64 (cbrt.f64 (*.f64 d1 30)) 2) (cbrt.f64 (*.f64 d1 30)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 30 d2))
(fma.f64 (pow.f64 (cbrt.f64 (*.f64 d1 d2)) 2) (cbrt.f64 (*.f64 d1 d2)) (*.f64 d1 30))
(*.f64 d1 (+.f64 30 d2))
(fma.f64 (sqrt.f64 (*.f64 d1 30)) (sqrt.f64 (*.f64 d1 30)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 30 d2))
(fma.f64 (sqrt.f64 (*.f64 d1 d2)) (sqrt.f64 (*.f64 d1 d2)) (*.f64 d1 30))
(*.f64 d1 (+.f64 30 d2))
(fma.f64 (*.f64 30 (pow.f64 (cbrt.f64 d1) 2)) (cbrt.f64 d1) (*.f64 d1 d2))
(*.f64 d1 (+.f64 30 d2))
(fma.f64 (*.f64 30 (sqrt.f64 d1)) (sqrt.f64 d1) (*.f64 d1 d2))
(*.f64 d1 (+.f64 30 d2))
(fma.f64 (*.f64 d1 (pow.f64 (cbrt.f64 d2) 2)) (cbrt.f64 d2) (*.f64 d1 30))
(*.f64 d1 (+.f64 30 d2))
(fma.f64 (*.f64 d1 (sqrt.f64 d2)) (sqrt.f64 d2) (*.f64 d1 30))
(*.f64 d1 (+.f64 30 d2))
(fma.f64 (*.f64 d2 (pow.f64 (cbrt.f64 d1) 2)) (cbrt.f64 d1) (*.f64 d1 30))
(*.f64 d1 (+.f64 30 d2))
(fma.f64 (*.f64 d2 (sqrt.f64 d1)) (sqrt.f64 d1) (*.f64 d1 30))
(*.f64 d1 (+.f64 30 d2))

eval17.0ms (0.8%)

Compiler

Compiled 833 to 527 computations (36.7% saved)

prune15.0ms (0.7%)

Pruning

4 alts after pruning (3 fresh and 1 done)

PrunedKeptTotal
New70373
Fresh000
Picked011
Done000
Total70474
Accuracy
100.0%
Counts
74 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(fma.f64 d1 30 (*.f64 d1 d2))
100.0%
(*.f64 d1 (+.f64 d2 30))
52.6%
(*.f64 d1 d2)
49.9%
(*.f64 d1 30)
100.0%
(fma.f64 d1 30 (*.f64 d1 d2))
100.0%
(*.f64 d1 (+.f64 d2 30))
52.6%
(*.f64 d1 d2)
49.9%
(*.f64 d1 30)
Compiler

Compiled 50 to 34 computations (32% saved)

localize34.0ms (1.6%)

Localize:

Found 1 expressions with local error:

NewAccuracyProgram
100.0%
(fma.f64 d1 30 (*.f64 d1 d2))
Compiler

Compiled 25 to 10 computations (60% saved)

series5.0ms (0.2%)

Counts
1 → 24
Calls

6 calls:

TimeVariablePointExpression
2.0ms
d2
@0
(fma.f64 d1 30 (*.f64 d1 d2))
1.0ms
d1
@-inf
(fma.f64 d1 30 (*.f64 d1 d2))
1.0ms
d1
@0
(fma.f64 d1 30 (*.f64 d1 d2))
1.0ms
d1
@inf
(fma.f64 d1 30 (*.f64 d1 d2))
0.0ms
d2
@inf
(fma.f64 d1 30 (*.f64 d1 d2))

rewrite68.0ms (3.1%)

Algorithm
batch-egg-rewrite
Rules
528×unpow-prod-down
412×log-prod
404×cbrt-prod
357×log1p-expm1-u
357×expm1-log1p-u
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01124
18819
296919
Stop Event
node limit
Counts
1 → 41
Calls
Call 1
Inputs
(fma.f64 d1 30 (*.f64 d1 d2))
Outputs
(+.f64 (*.f64 d1 d2) (*.f64 d1 30))
(+.f64 (*.f64 d1 30) (*.f64 d1 d2))
(+.f64 0 (*.f64 d1 (+.f64 30 d2)))
(+.f64 (*.f64 (*.f64 d1 30) 1) (*.f64 d1 d2))
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 d1) (+.f64 30 d2))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 d1) (+.f64 30 d2)))))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 d1) (+.f64 30 d2)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 d1) (+.f64 30 d2)))))
(-.f64 (+.f64 1 (*.f64 d1 (+.f64 30 d2))) 1)
(*.f64 d1 (+.f64 30 d2))
(*.f64 (*.f64 d1 (+.f64 30 d2)) 1)
(*.f64 (*.f64 d1 (+.f64 30 d2)) (log.f64 (E.f64)))
(*.f64 1 (*.f64 d1 (+.f64 30 d2)))
(*.f64 (cbrt.f64 (*.f64 d1 (+.f64 30 d2))) (pow.f64 (cbrt.f64 (*.f64 d1 (+.f64 30 d2))) 2))
(*.f64 (pow.f64 (cbrt.f64 (*.f64 d1 (+.f64 30 d2))) 2) (cbrt.f64 (*.f64 d1 (+.f64 30 d2))))
(*.f64 (sqrt.f64 (*.f64 d1 (+.f64 30 d2))) (sqrt.f64 (*.f64 d1 (+.f64 30 d2))))
(*.f64 (pow.f64 (sqrt.f64 (cbrt.f64 (*.f64 d1 (+.f64 30 d2)))) 3) (pow.f64 (sqrt.f64 (cbrt.f64 (*.f64 d1 (+.f64 30 d2)))) 3))
(*.f64 (pow.f64 1 1/3) (*.f64 d1 (+.f64 30 d2)))
(*.f64 (pow.f64 (sqrt.f64 (pow.f64 (*.f64 d1 (+.f64 30 d2)) 3)) 1/3) (pow.f64 (sqrt.f64 (pow.f64 (*.f64 d1 (+.f64 30 d2)) 3)) 1/3))
(*.f64 (pow.f64 (pow.f64 (*.f64 (*.f64 d1 (+.f64 30 d2)) (cbrt.f64 (*.f64 d1 (+.f64 30 d2)))) 2) 1/3) (cbrt.f64 (cbrt.f64 (*.f64 d1 (+.f64 30 d2)))))
(*.f64 (pow.f64 (pow.f64 (*.f64 d1 (+.f64 30 d2)) 5/2) 1/3) (cbrt.f64 (sqrt.f64 (*.f64 d1 (+.f64 30 d2)))))
(*.f64 (cbrt.f64 (sqrt.f64 (pow.f64 (*.f64 d1 (+.f64 30 d2)) 3))) (cbrt.f64 (sqrt.f64 (pow.f64 (*.f64 d1 (+.f64 30 d2)) 3))))
(*.f64 (cbrt.f64 (pow.f64 (*.f64 (*.f64 d1 (+.f64 30 d2)) (cbrt.f64 (*.f64 d1 (+.f64 30 d2)))) 2)) (cbrt.f64 (cbrt.f64 (*.f64 d1 (+.f64 30 d2)))))
(*.f64 (cbrt.f64 (pow.f64 (*.f64 d1 (+.f64 30 d2)) 5/2)) (cbrt.f64 (sqrt.f64 (*.f64 d1 (+.f64 30 d2)))))
(/.f64 (-.f64 (pow.f64 (*.f64 d1 30) 2) (pow.f64 (*.f64 d1 d2) 2)) (-.f64 (*.f64 d1 30) (*.f64 d1 d2)))
(/.f64 (+.f64 (*.f64 (pow.f64 d1 3) 27000) (pow.f64 (*.f64 d1 d2) 3)) (+.f64 (pow.f64 (*.f64 d1 30) 2) (-.f64 (pow.f64 (*.f64 d1 d2) 2) (*.f64 (*.f64 d1 30) (*.f64 d1 d2)))))
(pow.f64 (*.f64 d1 (+.f64 30 d2)) 1)
(pow.f64 (cbrt.f64 (*.f64 d1 (+.f64 30 d2))) 3)
(pow.f64 (pow.f64 (*.f64 d1 (+.f64 30 d2)) 2) 1/2)
(pow.f64 (pow.f64 (*.f64 d1 (+.f64 30 d2)) 3) 1/3)
(pow.f64 (sqrt.f64 (*.f64 d1 (+.f64 30 d2))) 2)
(pow.f64 (E.f64) (log.f64 (*.f64 d1 (+.f64 30 d2))))
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 d1 (+.f64 30 d2)))) 2)) (cbrt.f64 (log.f64 (*.f64 d1 (+.f64 30 d2)))))
(pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 d1 (+.f64 30 d2))))) (sqrt.f64 (log.f64 (*.f64 d1 (+.f64 30 d2)))))
(sqrt.f64 (pow.f64 (*.f64 d1 (+.f64 30 d2)) 2))
(log.f64 (pow.f64 (exp.f64 d1) (+.f64 30 d2)))
(cbrt.f64 (pow.f64 (*.f64 d1 (+.f64 30 d2)) 3))
(expm1.f64 (log1p.f64 (*.f64 d1 (+.f64 30 d2))))
(exp.f64 (log.f64 (*.f64 d1 (+.f64 30 d2))))
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 d1 (+.f64 30 d2)))) 3))
(exp.f64 (*.f64 (*.f64 3 (log.f64 (*.f64 d1 (+.f64 30 d2)))) 1/3))
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 d1 (+.f64 30 d2)))) 2))
(log1p.f64 (expm1.f64 (*.f64 d1 (+.f64 30 d2))))

simplify63.0ms (2.9%)

Algorithm
egg-herbie
Rules
1658×times-frac
960×fma-def
544×log-prod
538×distribute-lft-in
494×distribute-rgt-in
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01251681
13101598
210061573
345351571
Stop Event
node limit
Counts
65 → 56
Calls
Call 1
Inputs
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 d2) 30)))
(*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 d2) 30)))
(*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 d2) 30)))
(*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 d2) 30)))
(*.f64 30 d1)
(+.f64 (*.f64 30 d1) (*.f64 d1 d2))
(+.f64 (*.f64 30 d1) (*.f64 d1 d2))
(+.f64 (*.f64 30 d1) (*.f64 d1 d2))
(*.f64 d1 d2)
(+.f64 (*.f64 30 d1) (*.f64 d1 d2))
(+.f64 (*.f64 30 d1) (*.f64 d1 d2))
(+.f64 (*.f64 30 d1) (*.f64 d1 d2))
(*.f64 d1 d2)
(+.f64 (*.f64 30 d1) (*.f64 d1 d2))
(+.f64 (*.f64 30 d1) (*.f64 d1 d2))
(+.f64 (*.f64 30 d1) (*.f64 d1 d2))
(+.f64 (*.f64 d1 d2) (*.f64 d1 30))
(+.f64 (*.f64 d1 30) (*.f64 d1 d2))
(+.f64 0 (*.f64 d1 (+.f64 30 d2)))
(+.f64 (*.f64 (*.f64 d1 30) 1) (*.f64 d1 d2))
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 d1) (+.f64 30 d2))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 d1) (+.f64 30 d2)))))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 d1) (+.f64 30 d2)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 d1) (+.f64 30 d2)))))
(-.f64 (+.f64 1 (*.f64 d1 (+.f64 30 d2))) 1)
(*.f64 d1 (+.f64 30 d2))
(*.f64 (*.f64 d1 (+.f64 30 d2)) 1)
(*.f64 (*.f64 d1 (+.f64 30 d2)) (log.f64 (E.f64)))
(*.f64 1 (*.f64 d1 (+.f64 30 d2)))
(*.f64 (cbrt.f64 (*.f64 d1 (+.f64 30 d2))) (pow.f64 (cbrt.f64 (*.f64 d1 (+.f64 30 d2))) 2))
(*.f64 (pow.f64 (cbrt.f64 (*.f64 d1 (+.f64 30 d2))) 2) (cbrt.f64 (*.f64 d1 (+.f64 30 d2))))
(*.f64 (sqrt.f64 (*.f64 d1 (+.f64 30 d2))) (sqrt.f64 (*.f64 d1 (+.f64 30 d2))))
(*.f64 (pow.f64 (sqrt.f64 (cbrt.f64 (*.f64 d1 (+.f64 30 d2)))) 3) (pow.f64 (sqrt.f64 (cbrt.f64 (*.f64 d1 (+.f64 30 d2)))) 3))
(*.f64 (pow.f64 1 1/3) (*.f64 d1 (+.f64 30 d2)))
(*.f64 (pow.f64 (sqrt.f64 (pow.f64 (*.f64 d1 (+.f64 30 d2)) 3)) 1/3) (pow.f64 (sqrt.f64 (pow.f64 (*.f64 d1 (+.f64 30 d2)) 3)) 1/3))
(*.f64 (pow.f64 (pow.f64 (*.f64 (*.f64 d1 (+.f64 30 d2)) (cbrt.f64 (*.f64 d1 (+.f64 30 d2)))) 2) 1/3) (cbrt.f64 (cbrt.f64 (*.f64 d1 (+.f64 30 d2)))))
(*.f64 (pow.f64 (pow.f64 (*.f64 d1 (+.f64 30 d2)) 5/2) 1/3) (cbrt.f64 (sqrt.f64 (*.f64 d1 (+.f64 30 d2)))))
(*.f64 (cbrt.f64 (sqrt.f64 (pow.f64 (*.f64 d1 (+.f64 30 d2)) 3))) (cbrt.f64 (sqrt.f64 (pow.f64 (*.f64 d1 (+.f64 30 d2)) 3))))
(*.f64 (cbrt.f64 (pow.f64 (*.f64 (*.f64 d1 (+.f64 30 d2)) (cbrt.f64 (*.f64 d1 (+.f64 30 d2)))) 2)) (cbrt.f64 (cbrt.f64 (*.f64 d1 (+.f64 30 d2)))))
(*.f64 (cbrt.f64 (pow.f64 (*.f64 d1 (+.f64 30 d2)) 5/2)) (cbrt.f64 (sqrt.f64 (*.f64 d1 (+.f64 30 d2)))))
(/.f64 (-.f64 (pow.f64 (*.f64 d1 30) 2) (pow.f64 (*.f64 d1 d2) 2)) (-.f64 (*.f64 d1 30) (*.f64 d1 d2)))
(/.f64 (+.f64 (*.f64 (pow.f64 d1 3) 27000) (pow.f64 (*.f64 d1 d2) 3)) (+.f64 (pow.f64 (*.f64 d1 30) 2) (-.f64 (pow.f64 (*.f64 d1 d2) 2) (*.f64 (*.f64 d1 30) (*.f64 d1 d2)))))
(pow.f64 (*.f64 d1 (+.f64 30 d2)) 1)
(pow.f64 (cbrt.f64 (*.f64 d1 (+.f64 30 d2))) 3)
(pow.f64 (pow.f64 (*.f64 d1 (+.f64 30 d2)) 2) 1/2)
(pow.f64 (pow.f64 (*.f64 d1 (+.f64 30 d2)) 3) 1/3)
(pow.f64 (sqrt.f64 (*.f64 d1 (+.f64 30 d2))) 2)
(pow.f64 (E.f64) (log.f64 (*.f64 d1 (+.f64 30 d2))))
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 d1 (+.f64 30 d2)))) 2)) (cbrt.f64 (log.f64 (*.f64 d1 (+.f64 30 d2)))))
(pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 d1 (+.f64 30 d2))))) (sqrt.f64 (log.f64 (*.f64 d1 (+.f64 30 d2)))))
(sqrt.f64 (pow.f64 (*.f64 d1 (+.f64 30 d2)) 2))
(log.f64 (pow.f64 (exp.f64 d1) (+.f64 30 d2)))
(cbrt.f64 (pow.f64 (*.f64 d1 (+.f64 30 d2)) 3))
(expm1.f64 (log1p.f64 (*.f64 d1 (+.f64 30 d2))))
(exp.f64 (log.f64 (*.f64 d1 (+.f64 30 d2))))
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 d1 (+.f64 30 d2)))) 3))
(exp.f64 (*.f64 (*.f64 3 (log.f64 (*.f64 d1 (+.f64 30 d2)))) 1/3))
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 d1 (+.f64 30 d2)))) 2))
(log1p.f64 (expm1.f64 (*.f64 d1 (+.f64 30 d2))))
Outputs
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 d2) 30)))
(*.f64 d1 (+.f64 30 d2))
(*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 d2) 30)))
(*.f64 d1 (+.f64 30 d2))
(*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 d2) 30)))
(*.f64 d1 (+.f64 30 d2))
(*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 d2) 30)))
(*.f64 d1 (+.f64 30 d2))
(*.f64 30 d1)
(*.f64 d1 30)
(+.f64 (*.f64 30 d1) (*.f64 d1 d2))
(*.f64 d1 (+.f64 30 d2))
(+.f64 (*.f64 30 d1) (*.f64 d1 d2))
(*.f64 d1 (+.f64 30 d2))
(+.f64 (*.f64 30 d1) (*.f64 d1 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 d2)
(+.f64 (*.f64 30 d1) (*.f64 d1 d2))
(*.f64 d1 (+.f64 30 d2))
(+.f64 (*.f64 30 d1) (*.f64 d1 d2))
(*.f64 d1 (+.f64 30 d2))
(+.f64 (*.f64 30 d1) (*.f64 d1 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 d2)
(+.f64 (*.f64 30 d1) (*.f64 d1 d2))
(*.f64 d1 (+.f64 30 d2))
(+.f64 (*.f64 30 d1) (*.f64 d1 d2))
(*.f64 d1 (+.f64 30 d2))
(+.f64 (*.f64 30 d1) (*.f64 d1 d2))
(*.f64 d1 (+.f64 30 d2))
(+.f64 (*.f64 d1 d2) (*.f64 d1 30))
(*.f64 d1 (+.f64 30 d2))
(+.f64 (*.f64 d1 30) (*.f64 d1 d2))
(*.f64 d1 (+.f64 30 d2))
(+.f64 0 (*.f64 d1 (+.f64 30 d2)))
(*.f64 d1 (+.f64 30 d2))
(+.f64 (*.f64 (*.f64 d1 30) 1) (*.f64 d1 d2))
(*.f64 d1 (+.f64 30 d2))
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 d1) (+.f64 30 d2))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 d1) (+.f64 30 d2)))))
(+.f64 (*.f64 2 (log.f64 (cbrt.f64 (pow.f64 (exp.f64 d1) (+.f64 30 d2))))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 d1) (+.f64 30 d2)))))
(*.f64 3 (log.f64 (cbrt.f64 (pow.f64 (exp.f64 d1) (+.f64 30 d2)))))
(*.f64 (log.f64 (cbrt.f64 (pow.f64 (exp.f64 d1) (+.f64 30 d2)))) 3)
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 d1) (+.f64 30 d2)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 d1) (+.f64 30 d2)))))
(*.f64 d1 (+.f64 30 d2))
(-.f64 (+.f64 1 (*.f64 d1 (+.f64 30 d2))) 1)
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 (*.f64 d1 (+.f64 30 d2)) 1)
(*.f64 d1 (+.f64 30 d2))
(*.f64 (*.f64 d1 (+.f64 30 d2)) (log.f64 (E.f64)))
(*.f64 d1 (+.f64 30 d2))
(*.f64 1 (*.f64 d1 (+.f64 30 d2)))
(*.f64 d1 (+.f64 30 d2))
(*.f64 (cbrt.f64 (*.f64 d1 (+.f64 30 d2))) (pow.f64 (cbrt.f64 (*.f64 d1 (+.f64 30 d2))) 2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 (pow.f64 (cbrt.f64 (*.f64 d1 (+.f64 30 d2))) 2) (cbrt.f64 (*.f64 d1 (+.f64 30 d2))))
(*.f64 d1 (+.f64 30 d2))
(*.f64 (sqrt.f64 (*.f64 d1 (+.f64 30 d2))) (sqrt.f64 (*.f64 d1 (+.f64 30 d2))))
(*.f64 d1 (+.f64 30 d2))
(*.f64 (pow.f64 (sqrt.f64 (cbrt.f64 (*.f64 d1 (+.f64 30 d2)))) 3) (pow.f64 (sqrt.f64 (cbrt.f64 (*.f64 d1 (+.f64 30 d2)))) 3))
(*.f64 d1 (+.f64 30 d2))
(*.f64 (pow.f64 1 1/3) (*.f64 d1 (+.f64 30 d2)))
(*.f64 d1 (+.f64 30 d2))
(*.f64 (pow.f64 (sqrt.f64 (pow.f64 (*.f64 d1 (+.f64 30 d2)) 3)) 1/3) (pow.f64 (sqrt.f64 (pow.f64 (*.f64 d1 (+.f64 30 d2)) 3)) 1/3))
(*.f64 d1 (+.f64 30 d2))
(*.f64 (pow.f64 (pow.f64 (*.f64 (*.f64 d1 (+.f64 30 d2)) (cbrt.f64 (*.f64 d1 (+.f64 30 d2)))) 2) 1/3) (cbrt.f64 (cbrt.f64 (*.f64 d1 (+.f64 30 d2)))))
(*.f64 (cbrt.f64 (pow.f64 (*.f64 d1 (*.f64 (+.f64 30 d2) (cbrt.f64 (*.f64 d1 (+.f64 30 d2))))) 2)) (cbrt.f64 (cbrt.f64 (*.f64 d1 (+.f64 30 d2)))))
(*.f64 (cbrt.f64 (pow.f64 (pow.f64 (cbrt.f64 (*.f64 d1 (+.f64 30 d2))) 4) 2)) (cbrt.f64 (cbrt.f64 (*.f64 d1 (+.f64 30 d2)))))
(*.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (*.f64 d1 (+.f64 30 d2))) 8)) (cbrt.f64 (cbrt.f64 (*.f64 d1 (+.f64 30 d2)))))
(*.f64 (pow.f64 (pow.f64 (*.f64 d1 (+.f64 30 d2)) 5/2) 1/3) (cbrt.f64 (sqrt.f64 (*.f64 d1 (+.f64 30 d2)))))
(*.f64 (cbrt.f64 (pow.f64 (*.f64 d1 (+.f64 30 d2)) 5/2)) (cbrt.f64 (sqrt.f64 (*.f64 d1 (+.f64 30 d2)))))
(*.f64 (cbrt.f64 (sqrt.f64 (pow.f64 (*.f64 d1 (+.f64 30 d2)) 3))) (cbrt.f64 (sqrt.f64 (pow.f64 (*.f64 d1 (+.f64 30 d2)) 3))))
(*.f64 d1 (+.f64 30 d2))
(*.f64 (cbrt.f64 (pow.f64 (*.f64 (*.f64 d1 (+.f64 30 d2)) (cbrt.f64 (*.f64 d1 (+.f64 30 d2)))) 2)) (cbrt.f64 (cbrt.f64 (*.f64 d1 (+.f64 30 d2)))))
(*.f64 (cbrt.f64 (pow.f64 (*.f64 d1 (*.f64 (+.f64 30 d2) (cbrt.f64 (*.f64 d1 (+.f64 30 d2))))) 2)) (cbrt.f64 (cbrt.f64 (*.f64 d1 (+.f64 30 d2)))))
(*.f64 (cbrt.f64 (pow.f64 (pow.f64 (cbrt.f64 (*.f64 d1 (+.f64 30 d2))) 4) 2)) (cbrt.f64 (cbrt.f64 (*.f64 d1 (+.f64 30 d2)))))
(*.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (*.f64 d1 (+.f64 30 d2))) 8)) (cbrt.f64 (cbrt.f64 (*.f64 d1 (+.f64 30 d2)))))
(*.f64 (cbrt.f64 (pow.f64 (*.f64 d1 (+.f64 30 d2)) 5/2)) (cbrt.f64 (sqrt.f64 (*.f64 d1 (+.f64 30 d2)))))
(/.f64 (-.f64 (pow.f64 (*.f64 d1 30) 2) (pow.f64 (*.f64 d1 d2) 2)) (-.f64 (*.f64 d1 30) (*.f64 d1 d2)))
(*.f64 d1 (+.f64 30 d2))
(/.f64 (+.f64 (*.f64 (pow.f64 d1 3) 27000) (pow.f64 (*.f64 d1 d2) 3)) (+.f64 (pow.f64 (*.f64 d1 30) 2) (-.f64 (pow.f64 (*.f64 d1 d2) 2) (*.f64 (*.f64 d1 30) (*.f64 d1 d2)))))
(/.f64 (fma.f64 (pow.f64 d1 3) 27000 (pow.f64 (*.f64 d1 d2) 3)) (+.f64 (pow.f64 (*.f64 d1 30) 2) (-.f64 (pow.f64 (*.f64 d1 d2) 2) (*.f64 d1 (*.f64 30 (*.f64 d1 d2))))))
(/.f64 (*.f64 (pow.f64 d1 3) (+.f64 27000 (pow.f64 d2 3))) (+.f64 (pow.f64 (*.f64 d1 30) 2) (*.f64 (*.f64 d1 d2) (-.f64 (*.f64 d1 d2) (*.f64 d1 30)))))
(/.f64 (*.f64 (pow.f64 d1 3) (+.f64 27000 (pow.f64 d2 3))) (fma.f64 (*.f64 d1 d2) (*.f64 d1 (+.f64 d2 -30)) (pow.f64 (*.f64 d1 30) 2)))
(/.f64 (*.f64 (pow.f64 d1 3) (+.f64 27000 (pow.f64 d2 3))) (*.f64 d1 (+.f64 (*.f64 d1 900) (*.f64 d2 (*.f64 d1 (+.f64 d2 -30))))))
(pow.f64 (*.f64 d1 (+.f64 30 d2)) 1)
(*.f64 d1 (+.f64 30 d2))
(pow.f64 (cbrt.f64 (*.f64 d1 (+.f64 30 d2))) 3)
(*.f64 d1 (+.f64 30 d2))
(pow.f64 (pow.f64 (*.f64 d1 (+.f64 30 d2)) 2) 1/2)
(*.f64 d1 (+.f64 30 d2))
(pow.f64 (pow.f64 (*.f64 d1 (+.f64 30 d2)) 3) 1/3)
(*.f64 d1 (+.f64 30 d2))
(pow.f64 (sqrt.f64 (*.f64 d1 (+.f64 30 d2))) 2)
(*.f64 d1 (+.f64 30 d2))
(pow.f64 (E.f64) (log.f64 (*.f64 d1 (+.f64 30 d2))))
(*.f64 d1 (+.f64 30 d2))
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 d1 (+.f64 30 d2)))) 2)) (cbrt.f64 (log.f64 (*.f64 d1 (+.f64 30 d2)))))
(pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 d1 (+.f64 30 d2))))) (sqrt.f64 (log.f64 (*.f64 d1 (+.f64 30 d2)))))
(sqrt.f64 (pow.f64 (*.f64 d1 (+.f64 30 d2)) 2))
(*.f64 d1 (+.f64 30 d2))
(log.f64 (pow.f64 (exp.f64 d1) (+.f64 30 d2)))
(*.f64 d1 (+.f64 30 d2))
(cbrt.f64 (pow.f64 (*.f64 d1 (+.f64 30 d2)) 3))
(*.f64 d1 (+.f64 30 d2))
(expm1.f64 (log1p.f64 (*.f64 d1 (+.f64 30 d2))))
(*.f64 d1 (+.f64 30 d2))
(exp.f64 (log.f64 (*.f64 d1 (+.f64 30 d2))))
(*.f64 d1 (+.f64 30 d2))
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 d1 (+.f64 30 d2)))) 3))
(*.f64 d1 (+.f64 30 d2))
(exp.f64 (*.f64 (*.f64 3 (log.f64 (*.f64 d1 (+.f64 30 d2)))) 1/3))
(*.f64 d1 (+.f64 30 d2))
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 d1 (+.f64 30 d2)))) 2))
(*.f64 d1 (+.f64 30 d2))
(log1p.f64 (expm1.f64 (*.f64 d1 (+.f64 30 d2))))
(*.f64 d1 (+.f64 30 d2))

eval16.0ms (0.7%)

Compiler

Compiled 730 to 516 computations (29.3% saved)

prune12.0ms (0.5%)

Pruning

4 alts after pruning (0 fresh and 4 done)

PrunedKeptTotal
New56056
Fresh000
Picked033
Done011
Total56460
Accuracy
100.0%
Counts
60 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(fma.f64 d1 30 (*.f64 d1 d2))
100.0%
(*.f64 d1 (+.f64 d2 30))
52.6%
(*.f64 d1 d2)
49.9%
(*.f64 d1 30)
Compiler

Compiled 55 to 33 computations (40% saved)

regimes29.0ms (1.3%)

Counts
5 → 1
Calls
Call 1
Inputs
(*.f64 d1 30)
(*.f64 d1 d2)
(*.f64 d1 (+.f64 d2 30))
(+.f64 (+.f64 (*.f64 d1 10) (*.f64 d1 d2)) (*.f64 d1 20))
(fma.f64 d1 30 (*.f64 d1 d2))
Outputs
(*.f64 d1 (+.f64 d2 30))
Calls

3 calls:

19.0ms
d1
4.0ms
(+.f64 (+.f64 (*.f64 d1 10) (*.f64 d1 d2)) (*.f64 d1 20))
4.0ms
d2
Results
AccuracySegmentsBranch
100.0%1d1
100.0%1d2
100.0%1(+.f64 (+.f64 (*.f64 d1 10) (*.f64 d1 d2)) (*.f64 d1 20))
Compiler

Compiled 49 to 29 computations (40.8% saved)

regimes36.0ms (1.6%)

Counts
2 → 3
Calls
Call 1
Inputs
(*.f64 d1 30)
(*.f64 d1 d2)
Outputs
(*.f64 d1 d2)
(*.f64 d1 30)
(*.f64 d1 d2)
Calls

2 calls:

26.0ms
d1
9.0ms
d2
Results
AccuracySegmentsBranch
66.1%8d1
98.5%3d2
Compiler

Compiled 14 to 9 computations (35.7% saved)

regimes6.0ms (0.3%)

Accuracy

Total 0.0b remaining (0%)

Threshold costs 0b (0%)

Counts
1 → 1
Calls
Call 1
Inputs
(*.f64 d1 30)
Outputs
(*.f64 d1 30)
Calls

2 calls:

3.0ms
d2
3.0ms
d1
Results
AccuracySegmentsBranch
49.9%1d1
49.9%1d2
Compiler

Compiled 11 to 8 computations (27.3% saved)

bsearch40.0ms (1.8%)

Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
22.0ms
3.7424201721557946e-8
6664013801.048445
18.0ms
-18310.6331232578
-0.032523522952776086
Results
36.0ms304×body256valid
Compiler

Compiled 246 to 184 computations (25.2% saved)

simplify4.0ms (0.2%)

Algorithm
egg-herbie
Rules
*-commutative
+-commutative
if-if-or-not
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02083
12983
Stop Event
done
saturated
Calls
Call 1
Inputs
(*.f64 d1 (+.f64 d2 30))
(if (<=.f64 d2 -30) (*.f64 d1 d2) (if (<=.f64 d2 30) (*.f64 d1 30) (*.f64 d1 d2)))
(*.f64 d1 30)
Outputs
(*.f64 d1 (+.f64 d2 30))
(if (<=.f64 d2 -30) (*.f64 d1 d2) (if (<=.f64 d2 30) (*.f64 d1 30) (*.f64 d1 d2)))
(if (or (<=.f64 d2 -30) (not (<=.f64 d2 30))) (*.f64 d1 d2) (*.f64 d1 30))
(*.f64 d1 30)
Compiler

Compiled 29 to 21 computations (27.6% saved)

soundness334.0ms (15.2%)

Rules
2540×fma-def
1282×associate-/r*
1128×fma-def
736×fma-neg
558×fma-neg
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
032258
193183
2291141
3870133
42078133
53173133
63872133
73902133
83902133
94084133
104084133
01571811
13841760
210441739
341891735
Stop Event
node limit
saturated
Compiler

Compiled 56 to 39 computations (30.4% saved)

end0.0ms (0%)

preprocess49.0ms (2.2%)

Remove

(negabs d1)

Compiler

Compiled 132 to 92 computations (30.3% saved)

Profiling

Loading profile data...