FastMath test2

Time bar (total: 3.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)

Precisions
Click to see histograms. Total time spent on operations: 0.0ms
Operation ival-add, time spent: 0.0ms, 0.0% of total-time
Operation ival-mult, time spent: 0.0ms, 0.0% of total-time
Operation const, time spent: 0.0ms, 0.0% of total-time

sample1.9s (57.9%)

Results
1.2s7215×0valid
249.0ms1040×0infinite
323.0ms120×5exit
0.0ms0valid
Precisions
Click to see histograms. Total time spent on operations: 1.0s
Operation ival-mult, time spent: 531.0ms, 53.0% of total-time
Operation ival-add, time spent: 444.0ms, 44.0% of total-time
Operation const, time spent: 29.0ms, 3.0% of total-time
Bogosity

preprocess305.0ms (9.5%)

Algorithm
egg-herbie
Rules
2540×fma-def
736×fma-neg
324×unsub-neg
244×cancel-sign-sub-inv
228×distribute-rgt-in
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
00-0-(+.f64 (*.f64 d1 10) (*.f64 d1 d2))
00-0-(*.f64 d1 10)
00-0-(*.f64 d1 20)
00-0-10
00-0-d1
00-0-d2
00-0-(*.f64 d1 d2)
00-0-20
00-0-(+.f64 (+.f64 (*.f64 d1 10) (*.f64 d1 d2)) (*.f64 d1 20))
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 81 to 47 computations (42% saved)

Precisions
Click to see histograms. Total time spent on operations: 63.0ms
Operation ival-add, time spent: 33.0ms, 52.0% of total-time
Operation ival-mult, time spent: 27.0ms, 43.0% of total-time
Operation const, time spent: 4.0ms, 6.0% of total-time

eval1.0ms (0%)

Compiler

Compiled 23 to 16 computations (30.4% saved)

prune1.0ms (0%)

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

Compiled 7 to 5 computations (28.6% saved)

localize34.0ms (1.1%)

Localize:

Found 1 expressions with local error:

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

Compiled 14 to 9 computations (35.7% saved)

Precisions
Click to see histograms. Total time spent on operations: 12.0ms
Operation ival-add, time spent: 9.0ms, 75.0% of total-time
Operation ival-mult, time spent: 2.0ms, 17.0% of total-time
Operation const, time spent: 1.0ms, 8.0% of total-time

series9.0ms (0.3%)

Counts
1 → 24
Calls

6 calls:

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

rewrite181.0ms (5.7%)

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))

simplify66.0ms (2.1%)

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))

eval20.0ms (0.6%)

Compiler

Compiled 833 to 527 computations (36.7% saved)

prune11.0ms (0.4%)

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))
53.2%
(*.f64 d1 d2)
49.4%
(*.f64 d1 30)
Compiler

Compiled 25 to 17 computations (32% saved)

localize37.0ms (1.2%)

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)

Precisions
Click to see histograms. Total time spent on operations: 8.0ms
Operation ival-mult, time spent: 4.0ms, 52.0% of total-time
Operation ival-fma, time spent: 3.0ms, 39.0% of total-time
Operation const, time spent: 1.0ms, 13.0% of total-time

series4.0ms (0.1%)

Counts
1 → 24
Calls

6 calls:

TimeVariablePointExpression
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
@0
(fma.f64 d1 30 (*.f64 d1 d2))
0.0ms
d2
@inf
(fma.f64 d1 30 (*.f64 d1 d2))

rewrite75.0ms (2.4%)

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))))

simplify66.0ms (2.1%)

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))

eval17.0ms (0.5%)

Compiler

Compiled 730 to 516 computations (29.3% saved)

prune9.0ms (0.3%)

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))
53.2%
(*.f64 d1 d2)
49.4%
(*.f64 d1 30)
Compiler

Compiled 55 to 33 computations (40% saved)

regimes15.0ms (0.5%)

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:

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

Compiled 19 to 13 computations (31.6% saved)

regimes59.0ms (1.8%)

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:

50.0ms
d1
8.0ms
d2
Results
AccuracySegmentsBranch
71.1%8d1
98.1%3d2
Compiler

Compiled 6 to 4 computations (33.3% saved)

regimes5.0ms (0.2%)

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
d1
3.0ms
d2
Results
AccuracySegmentsBranch
49.4%1d1
49.4%1d2
Compiler

Compiled 6 to 4 computations (33.3% saved)

bsearch51.0ms (1.6%)

Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
27.0ms
1.9966203907702623e-6
12215461.573382886
24.0ms
-200318718.52950275
-1.7241975893038706
Results
43.0ms302×0valid
0.0ms0valid
0.0ms0infinite
Compiler

Compiled 246 to 184 computations (25.2% saved)

Precisions
Click to see histograms. Total time spent on operations: 17.0ms
Operation ival-add, time spent: 10.0ms, 58.0% of total-time
Operation ival-mult, time spent: 7.0ms, 41.0% of total-time
Operation const, time spent: 1.0ms, 6.0% of total-time

simplify4.0ms (0.1%)

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)

soundness324.0ms (10.1%)

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 (1.5%)

Remove

(negabs d1)

Compiler

Compiled 132 to 92 computations (30.3% saved)

Profiling

Loading profile data...