expm1 (example 3.7)

Time bar (total: 1.5s)

analyze0.0ms (0%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%74.6%25.4%0%0%0%0
100%74.6%0%25.4%0%0%0%1
Compiler

Compiled 8 to 6 computations (25% saved)

sample1.1s (76.3%)

Results
575.0ms2734×body1024valid
221.0ms2840×body256infinite
165.0ms1376×body512valid
85.0ms1046×body256valid
63.0ms260×body2048valid
Bogosity

preprocess67.0ms (4.6%)

Algorithm
egg-herbie
Rules
1258×fma-neg
876×associate-*r*
868×unswap-sqr
826×*-commutative
650×associate-*l*
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01014
12114
22714
33514
45814
510914
625314
770314
8264614
9666714
Stop Event
node limit
Calls
Call 1
Inputs
(-.f64 (exp.f64 x) 1)
(-.f64 (exp.f64 (neg.f64 x)) 1)
Outputs
(-.f64 (exp.f64 x) 1)
(expm1.f64 x)
(-.f64 (exp.f64 (neg.f64 x)) 1)
(expm1.f64 (neg.f64 x))
Compiler

Compiled 6 to 5 computations (16.7% saved)

simplify3.0ms (0.2%)

Algorithm
egg-herbie
Rules
1-exp
expm1-def
sub-neg
+-commutative
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
075
1135
2145
Stop Event
saturated
Counts
1 → 2
Calls
Call 1
Inputs
(-.f64 (exp.f64 x) 1)
Outputs
(-.f64 (exp.f64 x) 1)
(expm1.f64 x)

eval0.0ms (0%)

Compiler

Compiled 7 to 5 computations (28.6% saved)

prune2.0ms (0.1%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Accurracy
100.0%
Counts
3 → 2
Alt Table
Click to see full alt table
StatusAccuracyProgram
37.6%
(-.f64 (exp.f64 x) 1)
100.0%
(expm1.f64 x)
37.6%
(-.f64 (exp.f64 x) 1)
100.0%
(expm1.f64 x)
Compiler

Compiled 16 to 12 computations (25% saved)

localize70.0ms (4.7%)

Local Accuracy

Found 2 expressions with local accuracy:

NewAccuracyProgram
37.6%
(-.f64 (exp.f64 x) 1)
100.0%
(expm1.f64 x)
Compiler

Compiled 13 to 7 computations (46.2% saved)

series1.0ms (0%)

Counts
2 → 16
Calls

6 calls:

TimeVariablePointExpression
0.0ms
x
@0
(expm1.f64 x)
0.0ms
x
@inf
(expm1.f64 x)
0.0ms
x
@-inf
(expm1.f64 x)
0.0ms
x
@0
(-.f64 (exp.f64 x) 1)
0.0ms
x
@-inf
(-.f64 (exp.f64 x) 1)

rewrite61.0ms (4.2%)

Algorithm
batch-egg-rewrite
Rules
1272×pow1
1174×add-exp-log
1172×log1p-expm1-u
1170×expm1-log1p-u
1152×add-log-exp
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0810
115810
2166010
Stop Event
node limit
Counts
2 → 64
Calls
Call 1
Inputs
(expm1.f64 x)
(-.f64 (exp.f64 x) 1)
Outputs
(+.f64 (exp.f64 x) -1)
(+.f64 -1 (exp.f64 x))
(-.f64 (exp.f64 x) 1)
(-.f64 (/.f64 (pow.f64 (exp.f64 x) 3) (+.f64 (exp.f64 (+.f64 x x)) (+.f64 (exp.f64 x) 1))) (/.f64 1 (+.f64 (exp.f64 (+.f64 x x)) (+.f64 (exp.f64 x) 1))))
(-.f64 (/.f64 (exp.f64 (+.f64 x x)) (+.f64 (exp.f64 x) 1)) (/.f64 1 (+.f64 (exp.f64 x) 1)))
(*.f64 (expm1.f64 x) 1)
(*.f64 1 (expm1.f64 x))
(*.f64 (cbrt.f64 (expm1.f64 x)) (pow.f64 (cbrt.f64 (expm1.f64 x)) 2))
(*.f64 (pow.f64 (cbrt.f64 (expm1.f64 x)) 2) (cbrt.f64 (expm1.f64 x)))
(*.f64 (sqrt.f64 (expm1.f64 x)) (sqrt.f64 (expm1.f64 x)))
(*.f64 (+.f64 (pow.f64 (exp.f64 x) 3) -1) (/.f64 1 (+.f64 (exp.f64 (+.f64 x x)) (+.f64 (exp.f64 x) 1))))
(*.f64 (+.f64 (exp.f64 (+.f64 x x)) -1) (/.f64 1 (+.f64 (exp.f64 x) 1)))
(*.f64 (+.f64 (sqrt.f64 (exp.f64 x)) 1) (-.f64 (sqrt.f64 (exp.f64 x)) 1))
(/.f64 1 (/.f64 (+.f64 (exp.f64 (+.f64 x x)) (+.f64 (exp.f64 x) 1)) (+.f64 (pow.f64 (exp.f64 x) 3) -1)))
(/.f64 1 (/.f64 (+.f64 (exp.f64 x) 1) (+.f64 (exp.f64 (+.f64 x x)) -1)))
(/.f64 (+.f64 (pow.f64 (exp.f64 x) 3) -1) (+.f64 (exp.f64 (+.f64 x x)) (+.f64 (exp.f64 x) 1)))
(/.f64 (+.f64 (pow.f64 (exp.f64 x) 3) -1) (+.f64 (exp.f64 (+.f64 x x)) (-.f64 1 (*.f64 (exp.f64 x) -1))))
(/.f64 (+.f64 (exp.f64 (+.f64 x x)) -1) (+.f64 (exp.f64 x) 1))
(/.f64 (+.f64 (exp.f64 (+.f64 x x)) -1) (-.f64 (exp.f64 x) -1))
(/.f64 (neg.f64 (+.f64 (pow.f64 (exp.f64 x) 3) -1)) (neg.f64 (+.f64 (exp.f64 (+.f64 x x)) (+.f64 (exp.f64 x) 1))))
(/.f64 (neg.f64 (+.f64 (exp.f64 (+.f64 x x)) -1)) (neg.f64 (+.f64 (exp.f64 x) 1)))
(pow.f64 (expm1.f64 x) 1)
(pow.f64 (cbrt.f64 (expm1.f64 x)) 3)
(pow.f64 (pow.f64 (expm1.f64 x) 3) 1/3)
(pow.f64 (sqrt.f64 (expm1.f64 x)) 2)
(sqrt.f64 (pow.f64 (expm1.f64 x) 2))
(log.f64 (exp.f64 (expm1.f64 x)))
(cbrt.f64 (pow.f64 (expm1.f64 x) 3))
(exp.f64 (log.f64 (expm1.f64 x)))
(log1p.f64 (expm1.f64 (expm1.f64 x)))
(fma.f64 1 (exp.f64 x) -1)
(fma.f64 (cbrt.f64 (exp.f64 (+.f64 x x))) (cbrt.f64 (exp.f64 x)) -1)
(fma.f64 (sqrt.f64 (exp.f64 x)) (sqrt.f64 (exp.f64 x)) -1)
(+.f64 (exp.f64 x) -1)
(+.f64 -1 (exp.f64 x))
(*.f64 (expm1.f64 x) 1)
(*.f64 1 (expm1.f64 x))
(*.f64 (cbrt.f64 (expm1.f64 x)) (pow.f64 (cbrt.f64 (expm1.f64 x)) 2))
(*.f64 (pow.f64 (cbrt.f64 (expm1.f64 x)) 2) (cbrt.f64 (expm1.f64 x)))
(*.f64 (sqrt.f64 (expm1.f64 x)) (sqrt.f64 (expm1.f64 x)))
(*.f64 (+.f64 (pow.f64 (exp.f64 x) 3) -1) (/.f64 1 (+.f64 (exp.f64 (+.f64 x x)) (+.f64 (exp.f64 x) 1))))
(*.f64 (+.f64 (exp.f64 (+.f64 x x)) -1) (/.f64 1 (+.f64 (exp.f64 x) 1)))
(*.f64 (+.f64 (sqrt.f64 (exp.f64 x)) 1) (-.f64 (sqrt.f64 (exp.f64 x)) 1))
(/.f64 1 (/.f64 (+.f64 (exp.f64 (+.f64 x x)) (+.f64 (exp.f64 x) 1)) (+.f64 (pow.f64 (exp.f64 x) 3) -1)))
(/.f64 1 (/.f64 (+.f64 (exp.f64 x) 1) (+.f64 (exp.f64 (+.f64 x x)) -1)))
(/.f64 (+.f64 (pow.f64 (exp.f64 x) 3) -1) (+.f64 (exp.f64 (+.f64 x x)) (+.f64 (exp.f64 x) 1)))
(/.f64 (+.f64 (pow.f64 (exp.f64 x) 3) -1) (+.f64 (exp.f64 (+.f64 x x)) (-.f64 1 (*.f64 (exp.f64 x) -1))))
(/.f64 (+.f64 (exp.f64 (+.f64 x x)) -1) (+.f64 (exp.f64 x) 1))
(/.f64 (+.f64 (exp.f64 (+.f64 x x)) -1) (-.f64 (exp.f64 x) -1))
(/.f64 (neg.f64 (+.f64 (pow.f64 (exp.f64 x) 3) -1)) (neg.f64 (+.f64 (exp.f64 (+.f64 x x)) (+.f64 (exp.f64 x) 1))))
(/.f64 (neg.f64 (+.f64 (exp.f64 (+.f64 x x)) -1)) (neg.f64 (+.f64 (exp.f64 x) 1)))
(pow.f64 (expm1.f64 x) 1)
(pow.f64 (cbrt.f64 (expm1.f64 x)) 3)
(pow.f64 (pow.f64 (expm1.f64 x) 3) 1/3)
(pow.f64 (sqrt.f64 (expm1.f64 x)) 2)
(sqrt.f64 (pow.f64 (expm1.f64 x) 2))
(log.f64 (exp.f64 (expm1.f64 x)))
(cbrt.f64 (pow.f64 (expm1.f64 x) 3))
(expm1.f64 x)
(exp.f64 (log.f64 (expm1.f64 x)))
(log1p.f64 (expm1.f64 (expm1.f64 x)))
(fma.f64 1 (exp.f64 x) -1)
(fma.f64 (cbrt.f64 (exp.f64 (+.f64 x x))) (cbrt.f64 (exp.f64 x)) -1)
(fma.f64 (sqrt.f64 (exp.f64 x)) (sqrt.f64 (exp.f64 x)) -1)

simplify55.0ms (3.7%)

Algorithm
egg-herbie
Rules
1968×fma-def
844×div-sub
668×associate-*r*
590×associate-*l*
538×log-prod
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0941424
12061424
26421028
33828938
Stop Event
node limit
Counts
80 → 51
Calls
Call 1
Inputs
x
(+.f64 (*.f64 1/2 (pow.f64 x 2)) x)
(+.f64 (*.f64 1/6 (pow.f64 x 3)) (+.f64 (*.f64 1/2 (pow.f64 x 2)) x))
(+.f64 (*.f64 1/6 (pow.f64 x 3)) (+.f64 (*.f64 1/2 (pow.f64 x 2)) (+.f64 (*.f64 1/24 (pow.f64 x 4)) x)))
(-.f64 (exp.f64 x) 1)
(-.f64 (exp.f64 x) 1)
(-.f64 (exp.f64 x) 1)
(-.f64 (exp.f64 x) 1)
(-.f64 (exp.f64 x) 1)
(-.f64 (exp.f64 x) 1)
(-.f64 (exp.f64 x) 1)
(-.f64 (exp.f64 x) 1)
x
(+.f64 (*.f64 1/2 (pow.f64 x 2)) x)
(+.f64 (*.f64 1/6 (pow.f64 x 3)) (+.f64 (*.f64 1/2 (pow.f64 x 2)) x))
(+.f64 (*.f64 1/6 (pow.f64 x 3)) (+.f64 (*.f64 1/2 (pow.f64 x 2)) (+.f64 (*.f64 1/24 (pow.f64 x 4)) x)))
(+.f64 (exp.f64 x) -1)
(+.f64 -1 (exp.f64 x))
(-.f64 (exp.f64 x) 1)
(-.f64 (/.f64 (pow.f64 (exp.f64 x) 3) (+.f64 (exp.f64 (+.f64 x x)) (+.f64 (exp.f64 x) 1))) (/.f64 1 (+.f64 (exp.f64 (+.f64 x x)) (+.f64 (exp.f64 x) 1))))
(-.f64 (/.f64 (exp.f64 (+.f64 x x)) (+.f64 (exp.f64 x) 1)) (/.f64 1 (+.f64 (exp.f64 x) 1)))
(*.f64 (expm1.f64 x) 1)
(*.f64 1 (expm1.f64 x))
(*.f64 (cbrt.f64 (expm1.f64 x)) (pow.f64 (cbrt.f64 (expm1.f64 x)) 2))
(*.f64 (pow.f64 (cbrt.f64 (expm1.f64 x)) 2) (cbrt.f64 (expm1.f64 x)))
(*.f64 (sqrt.f64 (expm1.f64 x)) (sqrt.f64 (expm1.f64 x)))
(*.f64 (+.f64 (pow.f64 (exp.f64 x) 3) -1) (/.f64 1 (+.f64 (exp.f64 (+.f64 x x)) (+.f64 (exp.f64 x) 1))))
(*.f64 (+.f64 (exp.f64 (+.f64 x x)) -1) (/.f64 1 (+.f64 (exp.f64 x) 1)))
(*.f64 (+.f64 (sqrt.f64 (exp.f64 x)) 1) (-.f64 (sqrt.f64 (exp.f64 x)) 1))
(/.f64 1 (/.f64 (+.f64 (exp.f64 (+.f64 x x)) (+.f64 (exp.f64 x) 1)) (+.f64 (pow.f64 (exp.f64 x) 3) -1)))
(/.f64 1 (/.f64 (+.f64 (exp.f64 x) 1) (+.f64 (exp.f64 (+.f64 x x)) -1)))
(/.f64 (+.f64 (pow.f64 (exp.f64 x) 3) -1) (+.f64 (exp.f64 (+.f64 x x)) (+.f64 (exp.f64 x) 1)))
(/.f64 (+.f64 (pow.f64 (exp.f64 x) 3) -1) (+.f64 (exp.f64 (+.f64 x x)) (-.f64 1 (*.f64 (exp.f64 x) -1))))
(/.f64 (+.f64 (exp.f64 (+.f64 x x)) -1) (+.f64 (exp.f64 x) 1))
(/.f64 (+.f64 (exp.f64 (+.f64 x x)) -1) (-.f64 (exp.f64 x) -1))
(/.f64 (neg.f64 (+.f64 (pow.f64 (exp.f64 x) 3) -1)) (neg.f64 (+.f64 (exp.f64 (+.f64 x x)) (+.f64 (exp.f64 x) 1))))
(/.f64 (neg.f64 (+.f64 (exp.f64 (+.f64 x x)) -1)) (neg.f64 (+.f64 (exp.f64 x) 1)))
(pow.f64 (expm1.f64 x) 1)
(pow.f64 (cbrt.f64 (expm1.f64 x)) 3)
(pow.f64 (pow.f64 (expm1.f64 x) 3) 1/3)
(pow.f64 (sqrt.f64 (expm1.f64 x)) 2)
(sqrt.f64 (pow.f64 (expm1.f64 x) 2))
(log.f64 (exp.f64 (expm1.f64 x)))
(cbrt.f64 (pow.f64 (expm1.f64 x) 3))
(exp.f64 (log.f64 (expm1.f64 x)))
(log1p.f64 (expm1.f64 (expm1.f64 x)))
(fma.f64 1 (exp.f64 x) -1)
(fma.f64 (cbrt.f64 (exp.f64 (+.f64 x x))) (cbrt.f64 (exp.f64 x)) -1)
(fma.f64 (sqrt.f64 (exp.f64 x)) (sqrt.f64 (exp.f64 x)) -1)
(+.f64 (exp.f64 x) -1)
(+.f64 -1 (exp.f64 x))
(*.f64 (expm1.f64 x) 1)
(*.f64 1 (expm1.f64 x))
(*.f64 (cbrt.f64 (expm1.f64 x)) (pow.f64 (cbrt.f64 (expm1.f64 x)) 2))
(*.f64 (pow.f64 (cbrt.f64 (expm1.f64 x)) 2) (cbrt.f64 (expm1.f64 x)))
(*.f64 (sqrt.f64 (expm1.f64 x)) (sqrt.f64 (expm1.f64 x)))
(*.f64 (+.f64 (pow.f64 (exp.f64 x) 3) -1) (/.f64 1 (+.f64 (exp.f64 (+.f64 x x)) (+.f64 (exp.f64 x) 1))))
(*.f64 (+.f64 (exp.f64 (+.f64 x x)) -1) (/.f64 1 (+.f64 (exp.f64 x) 1)))
(*.f64 (+.f64 (sqrt.f64 (exp.f64 x)) 1) (-.f64 (sqrt.f64 (exp.f64 x)) 1))
(/.f64 1 (/.f64 (+.f64 (exp.f64 (+.f64 x x)) (+.f64 (exp.f64 x) 1)) (+.f64 (pow.f64 (exp.f64 x) 3) -1)))
(/.f64 1 (/.f64 (+.f64 (exp.f64 x) 1) (+.f64 (exp.f64 (+.f64 x x)) -1)))
(/.f64 (+.f64 (pow.f64 (exp.f64 x) 3) -1) (+.f64 (exp.f64 (+.f64 x x)) (+.f64 (exp.f64 x) 1)))
(/.f64 (+.f64 (pow.f64 (exp.f64 x) 3) -1) (+.f64 (exp.f64 (+.f64 x x)) (-.f64 1 (*.f64 (exp.f64 x) -1))))
(/.f64 (+.f64 (exp.f64 (+.f64 x x)) -1) (+.f64 (exp.f64 x) 1))
(/.f64 (+.f64 (exp.f64 (+.f64 x x)) -1) (-.f64 (exp.f64 x) -1))
(/.f64 (neg.f64 (+.f64 (pow.f64 (exp.f64 x) 3) -1)) (neg.f64 (+.f64 (exp.f64 (+.f64 x x)) (+.f64 (exp.f64 x) 1))))
(/.f64 (neg.f64 (+.f64 (exp.f64 (+.f64 x x)) -1)) (neg.f64 (+.f64 (exp.f64 x) 1)))
(pow.f64 (expm1.f64 x) 1)
(pow.f64 (cbrt.f64 (expm1.f64 x)) 3)
(pow.f64 (pow.f64 (expm1.f64 x) 3) 1/3)
(pow.f64 (sqrt.f64 (expm1.f64 x)) 2)
(sqrt.f64 (pow.f64 (expm1.f64 x) 2))
(log.f64 (exp.f64 (expm1.f64 x)))
(cbrt.f64 (pow.f64 (expm1.f64 x) 3))
(expm1.f64 x)
(exp.f64 (log.f64 (expm1.f64 x)))
(log1p.f64 (expm1.f64 (expm1.f64 x)))
(fma.f64 1 (exp.f64 x) -1)
(fma.f64 (cbrt.f64 (exp.f64 (+.f64 x x))) (cbrt.f64 (exp.f64 x)) -1)
(fma.f64 (sqrt.f64 (exp.f64 x)) (sqrt.f64 (exp.f64 x)) -1)
Outputs
x
(+.f64 (*.f64 1/2 (pow.f64 x 2)) x)
(fma.f64 1/2 (*.f64 x x) x)
(fma.f64 x (*.f64 x 1/2) x)
(*.f64 (fma.f64 x 1/2 1) x)
(+.f64 (*.f64 1/6 (pow.f64 x 3)) (+.f64 (*.f64 1/2 (pow.f64 x 2)) x))
(fma.f64 1/6 (pow.f64 x 3) (fma.f64 1/2 (*.f64 x x) x))
(fma.f64 x (*.f64 x 1/2) (fma.f64 1/6 (pow.f64 x 3) x))
(fma.f64 x (*.f64 x (fma.f64 x 1/6 1/2)) x)
(+.f64 (*.f64 1/6 (pow.f64 x 3)) (+.f64 (*.f64 1/2 (pow.f64 x 2)) (+.f64 (*.f64 1/24 (pow.f64 x 4)) x)))
(fma.f64 1/6 (pow.f64 x 3) (fma.f64 1/2 (*.f64 x x) (fma.f64 1/24 (pow.f64 x 4) x)))
(fma.f64 1/6 (pow.f64 x 3) (fma.f64 x (*.f64 x 1/2) (fma.f64 1/24 (pow.f64 x 4) x)))
(fma.f64 x (*.f64 x (fma.f64 x 1/6 1/2)) (fma.f64 1/24 (pow.f64 x 4) x))
(-.f64 (exp.f64 x) 1)
(expm1.f64 x)
(-.f64 (exp.f64 x) 1)
(expm1.f64 x)
(-.f64 (exp.f64 x) 1)
(expm1.f64 x)
(-.f64 (exp.f64 x) 1)
(expm1.f64 x)
(-.f64 (exp.f64 x) 1)
(expm1.f64 x)
(-.f64 (exp.f64 x) 1)
(expm1.f64 x)
(-.f64 (exp.f64 x) 1)
(expm1.f64 x)
(-.f64 (exp.f64 x) 1)
(expm1.f64 x)
x
(+.f64 (*.f64 1/2 (pow.f64 x 2)) x)
(fma.f64 1/2 (*.f64 x x) x)
(fma.f64 x (*.f64 x 1/2) x)
(*.f64 (fma.f64 x 1/2 1) x)
(+.f64 (*.f64 1/6 (pow.f64 x 3)) (+.f64 (*.f64 1/2 (pow.f64 x 2)) x))
(fma.f64 1/6 (pow.f64 x 3) (fma.f64 1/2 (*.f64 x x) x))
(fma.f64 x (*.f64 x 1/2) (fma.f64 1/6 (pow.f64 x 3) x))
(fma.f64 x (*.f64 x (fma.f64 x 1/6 1/2)) x)
(+.f64 (*.f64 1/6 (pow.f64 x 3)) (+.f64 (*.f64 1/2 (pow.f64 x 2)) (+.f64 (*.f64 1/24 (pow.f64 x 4)) x)))
(fma.f64 1/6 (pow.f64 x 3) (fma.f64 1/2 (*.f64 x x) (fma.f64 1/24 (pow.f64 x 4) x)))
(fma.f64 1/6 (pow.f64 x 3) (fma.f64 x (*.f64 x 1/2) (fma.f64 1/24 (pow.f64 x 4) x)))
(fma.f64 x (*.f64 x (fma.f64 x 1/6 1/2)) (fma.f64 1/24 (pow.f64 x 4) x))
(+.f64 (exp.f64 x) -1)
(expm1.f64 x)
(+.f64 -1 (exp.f64 x))
(expm1.f64 x)
(-.f64 (exp.f64 x) 1)
(expm1.f64 x)
(-.f64 (/.f64 (pow.f64 (exp.f64 x) 3) (+.f64 (exp.f64 (+.f64 x x)) (+.f64 (exp.f64 x) 1))) (/.f64 1 (+.f64 (exp.f64 (+.f64 x x)) (+.f64 (exp.f64 x) 1))))
(+.f64 (/.f64 (pow.f64 (exp.f64 x) 3) (+.f64 (exp.f64 x) (+.f64 1 (exp.f64 (+.f64 x x))))) (/.f64 -1 (+.f64 (exp.f64 x) (+.f64 1 (exp.f64 (+.f64 x x))))))
(/.f64 (+.f64 -1 (pow.f64 (exp.f64 x) 3)) (fma.f64 (+.f64 (exp.f64 x) 1) (exp.f64 x) 1))
(/.f64 (expm1.f64 (*.f64 3 x)) (fma.f64 (exp.f64 x) (+.f64 (exp.f64 x) 1) 1))
(-.f64 (/.f64 (exp.f64 (+.f64 x x)) (+.f64 (exp.f64 x) 1)) (/.f64 1 (+.f64 (exp.f64 x) 1)))
(expm1.f64 x)
(*.f64 (expm1.f64 x) 1)
(expm1.f64 x)
(*.f64 1 (expm1.f64 x))
(expm1.f64 x)
(*.f64 (cbrt.f64 (expm1.f64 x)) (pow.f64 (cbrt.f64 (expm1.f64 x)) 2))
(expm1.f64 x)
(*.f64 (pow.f64 (cbrt.f64 (expm1.f64 x)) 2) (cbrt.f64 (expm1.f64 x)))
(expm1.f64 x)
(*.f64 (sqrt.f64 (expm1.f64 x)) (sqrt.f64 (expm1.f64 x)))
(expm1.f64 x)
(*.f64 (+.f64 (pow.f64 (exp.f64 x) 3) -1) (/.f64 1 (+.f64 (exp.f64 (+.f64 x x)) (+.f64 (exp.f64 x) 1))))
(-.f64 (/.f64 (pow.f64 (exp.f64 x) 3) (+.f64 (exp.f64 (+.f64 x x)) (+.f64 (exp.f64 x) 1))) (/.f64 1 (+.f64 (exp.f64 (+.f64 x x)) (+.f64 (exp.f64 x) 1))))
(+.f64 (/.f64 (pow.f64 (exp.f64 x) 3) (+.f64 (exp.f64 x) (+.f64 1 (exp.f64 (+.f64 x x))))) (/.f64 -1 (+.f64 (exp.f64 x) (+.f64 1 (exp.f64 (+.f64 x x))))))
(/.f64 (+.f64 -1 (pow.f64 (exp.f64 x) 3)) (fma.f64 (+.f64 (exp.f64 x) 1) (exp.f64 x) 1))
(/.f64 (expm1.f64 (*.f64 3 x)) (fma.f64 (exp.f64 x) (+.f64 (exp.f64 x) 1) 1))
(*.f64 (+.f64 (exp.f64 (+.f64 x x)) -1) (/.f64 1 (+.f64 (exp.f64 x) 1)))
(expm1.f64 x)
(*.f64 (+.f64 (sqrt.f64 (exp.f64 x)) 1) (-.f64 (sqrt.f64 (exp.f64 x)) 1))
(expm1.f64 x)
(/.f64 1 (/.f64 (+.f64 (exp.f64 (+.f64 x x)) (+.f64 (exp.f64 x) 1)) (+.f64 (pow.f64 (exp.f64 x) 3) -1)))
(-.f64 (/.f64 (pow.f64 (exp.f64 x) 3) (+.f64 (exp.f64 (+.f64 x x)) (+.f64 (exp.f64 x) 1))) (/.f64 1 (+.f64 (exp.f64 (+.f64 x x)) (+.f64 (exp.f64 x) 1))))
(+.f64 (/.f64 (pow.f64 (exp.f64 x) 3) (+.f64 (exp.f64 x) (+.f64 1 (exp.f64 (+.f64 x x))))) (/.f64 -1 (+.f64 (exp.f64 x) (+.f64 1 (exp.f64 (+.f64 x x))))))
(/.f64 (+.f64 -1 (pow.f64 (exp.f64 x) 3)) (fma.f64 (+.f64 (exp.f64 x) 1) (exp.f64 x) 1))
(/.f64 (expm1.f64 (*.f64 3 x)) (fma.f64 (exp.f64 x) (+.f64 (exp.f64 x) 1) 1))
(/.f64 1 (/.f64 (+.f64 (exp.f64 x) 1) (+.f64 (exp.f64 (+.f64 x x)) -1)))
(expm1.f64 x)
(/.f64 (+.f64 (pow.f64 (exp.f64 x) 3) -1) (+.f64 (exp.f64 (+.f64 x x)) (+.f64 (exp.f64 x) 1)))
(-.f64 (/.f64 (pow.f64 (exp.f64 x) 3) (+.f64 (exp.f64 (+.f64 x x)) (+.f64 (exp.f64 x) 1))) (/.f64 1 (+.f64 (exp.f64 (+.f64 x x)) (+.f64 (exp.f64 x) 1))))
(+.f64 (/.f64 (pow.f64 (exp.f64 x) 3) (+.f64 (exp.f64 x) (+.f64 1 (exp.f64 (+.f64 x x))))) (/.f64 -1 (+.f64 (exp.f64 x) (+.f64 1 (exp.f64 (+.f64 x x))))))
(/.f64 (+.f64 -1 (pow.f64 (exp.f64 x) 3)) (fma.f64 (+.f64 (exp.f64 x) 1) (exp.f64 x) 1))
(/.f64 (expm1.f64 (*.f64 3 x)) (fma.f64 (exp.f64 x) (+.f64 (exp.f64 x) 1) 1))
(/.f64 (+.f64 (pow.f64 (exp.f64 x) 3) -1) (+.f64 (exp.f64 (+.f64 x x)) (-.f64 1 (*.f64 (exp.f64 x) -1))))
(-.f64 (/.f64 (pow.f64 (exp.f64 x) 3) (+.f64 (exp.f64 (+.f64 x x)) (+.f64 (exp.f64 x) 1))) (/.f64 1 (+.f64 (exp.f64 (+.f64 x x)) (+.f64 (exp.f64 x) 1))))
(+.f64 (/.f64 (pow.f64 (exp.f64 x) 3) (+.f64 (exp.f64 x) (+.f64 1 (exp.f64 (+.f64 x x))))) (/.f64 -1 (+.f64 (exp.f64 x) (+.f64 1 (exp.f64 (+.f64 x x))))))
(/.f64 (+.f64 -1 (pow.f64 (exp.f64 x) 3)) (fma.f64 (+.f64 (exp.f64 x) 1) (exp.f64 x) 1))
(/.f64 (expm1.f64 (*.f64 3 x)) (fma.f64 (exp.f64 x) (+.f64 (exp.f64 x) 1) 1))
(/.f64 (+.f64 (exp.f64 (+.f64 x x)) -1) (+.f64 (exp.f64 x) 1))
(expm1.f64 x)
(/.f64 (+.f64 (exp.f64 (+.f64 x x)) -1) (-.f64 (exp.f64 x) -1))
(expm1.f64 x)
(/.f64 (neg.f64 (+.f64 (pow.f64 (exp.f64 x) 3) -1)) (neg.f64 (+.f64 (exp.f64 (+.f64 x x)) (+.f64 (exp.f64 x) 1))))
(-.f64 (/.f64 (pow.f64 (exp.f64 x) 3) (+.f64 (exp.f64 (+.f64 x x)) (+.f64 (exp.f64 x) 1))) (/.f64 1 (+.f64 (exp.f64 (+.f64 x x)) (+.f64 (exp.f64 x) 1))))
(+.f64 (/.f64 (pow.f64 (exp.f64 x) 3) (+.f64 (exp.f64 x) (+.f64 1 (exp.f64 (+.f64 x x))))) (/.f64 -1 (+.f64 (exp.f64 x) (+.f64 1 (exp.f64 (+.f64 x x))))))
(/.f64 (+.f64 -1 (pow.f64 (exp.f64 x) 3)) (fma.f64 (+.f64 (exp.f64 x) 1) (exp.f64 x) 1))
(/.f64 (expm1.f64 (*.f64 3 x)) (fma.f64 (exp.f64 x) (+.f64 (exp.f64 x) 1) 1))
(/.f64 (neg.f64 (+.f64 (exp.f64 (+.f64 x x)) -1)) (neg.f64 (+.f64 (exp.f64 x) 1)))
(expm1.f64 x)
(pow.f64 (expm1.f64 x) 1)
(expm1.f64 x)
(pow.f64 (cbrt.f64 (expm1.f64 x)) 3)
(expm1.f64 x)
(pow.f64 (pow.f64 (expm1.f64 x) 3) 1/3)
(expm1.f64 x)
(pow.f64 (sqrt.f64 (expm1.f64 x)) 2)
(expm1.f64 x)
(sqrt.f64 (pow.f64 (expm1.f64 x) 2))
(expm1.f64 x)
(log.f64 (exp.f64 (expm1.f64 x)))
(expm1.f64 x)
(cbrt.f64 (pow.f64 (expm1.f64 x) 3))
(expm1.f64 x)
(exp.f64 (log.f64 (expm1.f64 x)))
(expm1.f64 x)
(log1p.f64 (expm1.f64 (expm1.f64 x)))
(expm1.f64 x)
(fma.f64 1 (exp.f64 x) -1)
(expm1.f64 x)
(fma.f64 (cbrt.f64 (exp.f64 (+.f64 x x))) (cbrt.f64 (exp.f64 x)) -1)
(fma.f64 (cbrt.f64 (pow.f64 (exp.f64 x) 2)) (cbrt.f64 (exp.f64 x)) -1)
(fma.f64 (sqrt.f64 (exp.f64 x)) (sqrt.f64 (exp.f64 x)) -1)
(expm1.f64 x)
(+.f64 (exp.f64 x) -1)
(expm1.f64 x)
(+.f64 -1 (exp.f64 x))
(expm1.f64 x)
(*.f64 (expm1.f64 x) 1)
(expm1.f64 x)
(*.f64 1 (expm1.f64 x))
(expm1.f64 x)
(*.f64 (cbrt.f64 (expm1.f64 x)) (pow.f64 (cbrt.f64 (expm1.f64 x)) 2))
(expm1.f64 x)
(*.f64 (pow.f64 (cbrt.f64 (expm1.f64 x)) 2) (cbrt.f64 (expm1.f64 x)))
(expm1.f64 x)
(*.f64 (sqrt.f64 (expm1.f64 x)) (sqrt.f64 (expm1.f64 x)))
(expm1.f64 x)
(*.f64 (+.f64 (pow.f64 (exp.f64 x) 3) -1) (/.f64 1 (+.f64 (exp.f64 (+.f64 x x)) (+.f64 (exp.f64 x) 1))))
(-.f64 (/.f64 (pow.f64 (exp.f64 x) 3) (+.f64 (exp.f64 (+.f64 x x)) (+.f64 (exp.f64 x) 1))) (/.f64 1 (+.f64 (exp.f64 (+.f64 x x)) (+.f64 (exp.f64 x) 1))))
(+.f64 (/.f64 (pow.f64 (exp.f64 x) 3) (+.f64 (exp.f64 x) (+.f64 1 (exp.f64 (+.f64 x x))))) (/.f64 -1 (+.f64 (exp.f64 x) (+.f64 1 (exp.f64 (+.f64 x x))))))
(/.f64 (+.f64 -1 (pow.f64 (exp.f64 x) 3)) (fma.f64 (+.f64 (exp.f64 x) 1) (exp.f64 x) 1))
(/.f64 (expm1.f64 (*.f64 3 x)) (fma.f64 (exp.f64 x) (+.f64 (exp.f64 x) 1) 1))
(*.f64 (+.f64 (exp.f64 (+.f64 x x)) -1) (/.f64 1 (+.f64 (exp.f64 x) 1)))
(expm1.f64 x)
(*.f64 (+.f64 (sqrt.f64 (exp.f64 x)) 1) (-.f64 (sqrt.f64 (exp.f64 x)) 1))
(expm1.f64 x)
(/.f64 1 (/.f64 (+.f64 (exp.f64 (+.f64 x x)) (+.f64 (exp.f64 x) 1)) (+.f64 (pow.f64 (exp.f64 x) 3) -1)))
(-.f64 (/.f64 (pow.f64 (exp.f64 x) 3) (+.f64 (exp.f64 (+.f64 x x)) (+.f64 (exp.f64 x) 1))) (/.f64 1 (+.f64 (exp.f64 (+.f64 x x)) (+.f64 (exp.f64 x) 1))))
(+.f64 (/.f64 (pow.f64 (exp.f64 x) 3) (+.f64 (exp.f64 x) (+.f64 1 (exp.f64 (+.f64 x x))))) (/.f64 -1 (+.f64 (exp.f64 x) (+.f64 1 (exp.f64 (+.f64 x x))))))
(/.f64 (+.f64 -1 (pow.f64 (exp.f64 x) 3)) (fma.f64 (+.f64 (exp.f64 x) 1) (exp.f64 x) 1))
(/.f64 (expm1.f64 (*.f64 3 x)) (fma.f64 (exp.f64 x) (+.f64 (exp.f64 x) 1) 1))
(/.f64 1 (/.f64 (+.f64 (exp.f64 x) 1) (+.f64 (exp.f64 (+.f64 x x)) -1)))
(expm1.f64 x)
(/.f64 (+.f64 (pow.f64 (exp.f64 x) 3) -1) (+.f64 (exp.f64 (+.f64 x x)) (+.f64 (exp.f64 x) 1)))
(-.f64 (/.f64 (pow.f64 (exp.f64 x) 3) (+.f64 (exp.f64 (+.f64 x x)) (+.f64 (exp.f64 x) 1))) (/.f64 1 (+.f64 (exp.f64 (+.f64 x x)) (+.f64 (exp.f64 x) 1))))
(+.f64 (/.f64 (pow.f64 (exp.f64 x) 3) (+.f64 (exp.f64 x) (+.f64 1 (exp.f64 (+.f64 x x))))) (/.f64 -1 (+.f64 (exp.f64 x) (+.f64 1 (exp.f64 (+.f64 x x))))))
(/.f64 (+.f64 -1 (pow.f64 (exp.f64 x) 3)) (fma.f64 (+.f64 (exp.f64 x) 1) (exp.f64 x) 1))
(/.f64 (expm1.f64 (*.f64 3 x)) (fma.f64 (exp.f64 x) (+.f64 (exp.f64 x) 1) 1))
(/.f64 (+.f64 (pow.f64 (exp.f64 x) 3) -1) (+.f64 (exp.f64 (+.f64 x x)) (-.f64 1 (*.f64 (exp.f64 x) -1))))
(-.f64 (/.f64 (pow.f64 (exp.f64 x) 3) (+.f64 (exp.f64 (+.f64 x x)) (+.f64 (exp.f64 x) 1))) (/.f64 1 (+.f64 (exp.f64 (+.f64 x x)) (+.f64 (exp.f64 x) 1))))
(+.f64 (/.f64 (pow.f64 (exp.f64 x) 3) (+.f64 (exp.f64 x) (+.f64 1 (exp.f64 (+.f64 x x))))) (/.f64 -1 (+.f64 (exp.f64 x) (+.f64 1 (exp.f64 (+.f64 x x))))))
(/.f64 (+.f64 -1 (pow.f64 (exp.f64 x) 3)) (fma.f64 (+.f64 (exp.f64 x) 1) (exp.f64 x) 1))
(/.f64 (expm1.f64 (*.f64 3 x)) (fma.f64 (exp.f64 x) (+.f64 (exp.f64 x) 1) 1))
(/.f64 (+.f64 (exp.f64 (+.f64 x x)) -1) (+.f64 (exp.f64 x) 1))
(expm1.f64 x)
(/.f64 (+.f64 (exp.f64 (+.f64 x x)) -1) (-.f64 (exp.f64 x) -1))
(expm1.f64 x)
(/.f64 (neg.f64 (+.f64 (pow.f64 (exp.f64 x) 3) -1)) (neg.f64 (+.f64 (exp.f64 (+.f64 x x)) (+.f64 (exp.f64 x) 1))))
(-.f64 (/.f64 (pow.f64 (exp.f64 x) 3) (+.f64 (exp.f64 (+.f64 x x)) (+.f64 (exp.f64 x) 1))) (/.f64 1 (+.f64 (exp.f64 (+.f64 x x)) (+.f64 (exp.f64 x) 1))))
(+.f64 (/.f64 (pow.f64 (exp.f64 x) 3) (+.f64 (exp.f64 x) (+.f64 1 (exp.f64 (+.f64 x x))))) (/.f64 -1 (+.f64 (exp.f64 x) (+.f64 1 (exp.f64 (+.f64 x x))))))
(/.f64 (+.f64 -1 (pow.f64 (exp.f64 x) 3)) (fma.f64 (+.f64 (exp.f64 x) 1) (exp.f64 x) 1))
(/.f64 (expm1.f64 (*.f64 3 x)) (fma.f64 (exp.f64 x) (+.f64 (exp.f64 x) 1) 1))
(/.f64 (neg.f64 (+.f64 (exp.f64 (+.f64 x x)) -1)) (neg.f64 (+.f64 (exp.f64 x) 1)))
(expm1.f64 x)
(pow.f64 (expm1.f64 x) 1)
(expm1.f64 x)
(pow.f64 (cbrt.f64 (expm1.f64 x)) 3)
(expm1.f64 x)
(pow.f64 (pow.f64 (expm1.f64 x) 3) 1/3)
(expm1.f64 x)
(pow.f64 (sqrt.f64 (expm1.f64 x)) 2)
(expm1.f64 x)
(sqrt.f64 (pow.f64 (expm1.f64 x) 2))
(expm1.f64 x)
(log.f64 (exp.f64 (expm1.f64 x)))
(expm1.f64 x)
(cbrt.f64 (pow.f64 (expm1.f64 x) 3))
(expm1.f64 x)
(expm1.f64 x)
(exp.f64 (log.f64 (expm1.f64 x)))
(expm1.f64 x)
(log1p.f64 (expm1.f64 (expm1.f64 x)))
(expm1.f64 x)
(fma.f64 1 (exp.f64 x) -1)
(expm1.f64 x)
(fma.f64 (cbrt.f64 (exp.f64 (+.f64 x x))) (cbrt.f64 (exp.f64 x)) -1)
(fma.f64 (cbrt.f64 (pow.f64 (exp.f64 x) 2)) (cbrt.f64 (exp.f64 x)) -1)
(fma.f64 (sqrt.f64 (exp.f64 x)) (sqrt.f64 (exp.f64 x)) -1)
(expm1.f64 x)

eval9.0ms (0.6%)

Compiler

Compiled 514 to 282 computations (45.1% saved)

prune8.0ms (0.6%)

Pruning

3 alts after pruning (1 fresh and 2 done)

PrunedKeptTotal
New50151
Fresh000
Picked022
Done000
Total50353
Accurracy
100.0%
Counts
53 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
37.6%
(-.f64 (exp.f64 x) 1)
100.0%
(expm1.f64 x)
68.3%
x
37.6%
(-.f64 (exp.f64 x) 1)
100.0%
(expm1.f64 x)
68.3%
x
Compiler

Compiled 20 to 14 computations (30% saved)

localize0.0ms (0%)

eval0.0ms (0%)

Compiler

Compiled 1 to 1 computations (0% saved)

prune2.0ms (0.1%)

Pruning

3 alts after pruning (1 fresh and 2 done)

PrunedKeptTotal
New000
Fresh011
Picked000
Done022
Total033
Accurracy
100.0%
Counts
3 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
37.6%
(-.f64 (exp.f64 x) 1)
100.0%
(expm1.f64 x)
68.3%
x
37.6%
(-.f64 (exp.f64 x) 1)
100.0%
(expm1.f64 x)
68.3%
x
Compiler

Compiled 20 to 14 computations (30% saved)

localize0.0ms (0%)

eval0.0ms (0%)

Compiler

Compiled 1 to 1 computations (0% saved)

prune2.0ms (0.1%)

Pruning

3 alts after pruning (1 fresh and 2 done)

PrunedKeptTotal
New000
Fresh011
Picked000
Done022
Total033
Accurracy
100.0%
Counts
3 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
37.6%
(-.f64 (exp.f64 x) 1)
100.0%
(expm1.f64 x)
68.3%
x
37.6%
(-.f64 (exp.f64 x) 1)
100.0%
(expm1.f64 x)
68.3%
x
Compiler

Compiled 20 to 14 computations (30% saved)

localize0.0ms (0%)

eval0.0ms (0%)

Compiler

Compiled 1 to 1 computations (0% saved)

prune2.0ms (0.1%)

Pruning

3 alts after pruning (1 fresh and 2 done)

PrunedKeptTotal
New000
Fresh011
Picked000
Done022
Total033
Accurracy
100.0%
Counts
3 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
37.6%
(-.f64 (exp.f64 x) 1)
100.0%
(expm1.f64 x)
68.3%
x
Compiler

Compiled 18 to 12 computations (33.3% saved)

regimes9.0ms (0.6%)

Counts
3 → 1
Calls
Call 1
Inputs
x
(expm1.f64 x)
(-.f64 (exp.f64 x) 1)
Outputs
(expm1.f64 x)
Calls

3 calls:

4.0ms
x
2.0ms
(-.f64 (exp.f64 x) 1)
2.0ms
(exp.f64 x)
Results
AccuracySegmentsBranch
100.0%1x
100.0%1(-.f64 (exp.f64 x) 1)
100.0%1(exp.f64 x)
Compiler

Compiled 18 to 12 computations (33.3% saved)

regimes3.0ms (0.2%)

Accuracy

Total -0.0b remaining (-0%)

Threshold costs -0b (-0%)

Counts
1 → 1
Calls
Call 1
Inputs
x
Outputs
x
Calls

1 calls:

2.0ms
x
Results
AccuracySegmentsBranch
68.3%1x
Compiler

Compiled 4 to 2 computations (50% saved)

simplify4.0ms (0.2%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
046
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(expm1.f64 x)
x
Outputs
(expm1.f64 x)
x
Compiler

Compiled 5 to 3 computations (40% saved)

soundness12.0ms (0.8%)

Rules
1-exp
expm1-def
sub-neg
+-commutative
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
075
1135
2145
Stop Event
saturated
Compiler

Compiled 7 to 5 computations (28.6% saved)

end0.0ms (0%)

preprocess38.0ms (2.6%)

Compiler

Compiled 46 to 32 computations (30.4% saved)

Profiling

Loading profile data...