exp neg sub

Time bar (total: 1.8s)

analyze0.0ms (0%)

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

Compiled 9 to 7 computations (22.2% saved)

sample744.0ms (42.4%)

Results
424.0ms4152×body256valid
309.0ms4104×body256infinite
Bogosity

preprocess92.0ms (5.3%)

Algorithm
egg-herbie
Rules
1996×fma-def
1492×div-sub
1302×times-frac
666×associate-*r/
518×fma-neg
Problems
256×No Errors
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01463
13851
27951
315739
429139
562439
6204639
7573139
Stop Event
node limit
Calls
Call 1
Inputs
(exp.f64 (neg.f64 (-.f64 1 (*.f64 x x))))
(exp.f64 (neg.f64 (-.f64 1 (*.f64 x x))))
(exp.f64 (neg.f64 (-.f64 1 (*.f64 (neg.f64 x) (neg.f64 x)))))
Outputs
(exp.f64 (neg.f64 (-.f64 1 (*.f64 x x))))
(exp.f64 (+.f64 -1 (*.f64 x x)))
(exp.f64 (+.f64 (*.f64 x x) -1))
(exp.f64 (fma.f64 x x -1))
(exp.f64 (neg.f64 (-.f64 1 (*.f64 x x))))
(exp.f64 (+.f64 -1 (*.f64 x x)))
(exp.f64 (+.f64 (*.f64 x x) -1))
(exp.f64 (fma.f64 x x -1))
(exp.f64 (neg.f64 (-.f64 1 (*.f64 (neg.f64 x) (neg.f64 x)))))
(exp.f64 (neg.f64 (-.f64 1 (*.f64 x x))))
(exp.f64 (+.f64 -1 (*.f64 x x)))
(exp.f64 (+.f64 (*.f64 x x) -1))
(exp.f64 (fma.f64 x x -1))
Symmetry

(abs x)

Compiler

Compiled 33 to 19 computations (42.4% saved)

eval1.0ms (0%)

Compiler

Compiled 18 to 11 computations (38.9% saved)

prune2.0ms (0.1%)

Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(exp.f64 (fma.f64 x x -1))
100.0%
(exp.f64 (+.f64 (*.f64 x x) -1))
100.0%
(exp.f64 (fma.f64 x x -1))
100.0%
(exp.f64 (+.f64 (*.f64 x x) -1))
Compiler

Compiled 26 to 18 computations (30.8% saved)

localize38.0ms (2.2%)

Localize:

Found 1 expressions with local error:

NewAccuracyProgram
100.0%
(+.f64 (*.f64 x x) -1)
Compiler

Compiled 29 to 15 computations (48.3% saved)

series2.0ms (0.1%)

Counts
1 → 12
Calls

3 calls:

TimeVariablePointExpression
2.0ms
x
@inf
(+.f64 (*.f64 x x) -1)
0.0ms
x
@0
(+.f64 (*.f64 x x) -1)
0.0ms
x
@-inf
(+.f64 (*.f64 x x) -1)

rewrite108.0ms (6.1%)

Algorithm
batch-egg-rewrite
Rules
1294×pow1
1202×add-exp-log
1202×log1p-expm1-u
1202×expm1-log1p-u
1182×add-log-exp
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
069
11339
216459
Stop Event
node limit
Counts
1 → 32
Calls
Call 1
Inputs
(+.f64 (*.f64 x x) -1)
Outputs
(-.f64 (+.f64 1 (fma.f64 x x -1)) 1)
(-.f64 (/.f64 (pow.f64 x 4) (fma.f64 x x 1)) (/.f64 1 (fma.f64 x x 1)))
(*.f64 (fma.f64 x x -1) 1)
(*.f64 1 (fma.f64 x x -1))
(*.f64 (cbrt.f64 (fma.f64 x x -1)) (pow.f64 (cbrt.f64 (fma.f64 x x -1)) 2))
(*.f64 (pow.f64 (cbrt.f64 (fma.f64 x x -1)) 2) (cbrt.f64 (fma.f64 x x -1)))
(*.f64 (sqrt.f64 (fma.f64 x x -1)) (sqrt.f64 (fma.f64 x x -1)))
(*.f64 (+.f64 -1 (pow.f64 x 6)) (/.f64 1 (+.f64 (pow.f64 x 4) (-.f64 1 (*.f64 x (*.f64 x -1))))))
(*.f64 (+.f64 (pow.f64 x 4) -1) (/.f64 1 (fma.f64 x x 1)))
(*.f64 (+.f64 x 1) (+.f64 x -1))
(*.f64 (+.f64 x -1) (+.f64 x 1))
(/.f64 1 (/.f64 (+.f64 (pow.f64 x 4) (-.f64 1 (*.f64 x (*.f64 x -1)))) (+.f64 -1 (pow.f64 x 6))))
(/.f64 1 (/.f64 (fma.f64 x x 1) (+.f64 (pow.f64 x 4) -1)))
(/.f64 (+.f64 -1 (pow.f64 x 6)) (+.f64 (pow.f64 x 4) (-.f64 1 (*.f64 x (*.f64 x -1)))))
(/.f64 (+.f64 -1 (pow.f64 x 6)) (+.f64 1 (-.f64 (pow.f64 x 4) (*.f64 x (*.f64 x -1)))))
(/.f64 (+.f64 (pow.f64 x 4) -1) (fma.f64 x x 1))
(/.f64 (neg.f64 (+.f64 -1 (pow.f64 x 6))) (neg.f64 (+.f64 (pow.f64 x 4) (-.f64 1 (*.f64 x (*.f64 x -1))))))
(/.f64 (neg.f64 (+.f64 (pow.f64 x 4) -1)) (neg.f64 (fma.f64 x x 1)))
(/.f64 (-.f64 1 (pow.f64 x 4)) (-.f64 -1 (*.f64 x x)))
(pow.f64 (fma.f64 x x -1) 1)
(pow.f64 (cbrt.f64 (fma.f64 x x -1)) 3)
(pow.f64 (pow.f64 (fma.f64 x x -1) 3) 1/3)
(pow.f64 (sqrt.f64 (fma.f64 x x -1)) 2)
(sqrt.f64 (pow.f64 (fma.f64 x x -1) 2))
(log.f64 (exp.f64 (fma.f64 x x -1)))
(cbrt.f64 (pow.f64 (fma.f64 x x -1) 3))
(expm1.f64 (log1p.f64 (fma.f64 x x -1)))
(exp.f64 (log.f64 (fma.f64 x x -1)))
(log1p.f64 (expm1.f64 (fma.f64 x x -1)))
(fma.f64 x x -1)
(fma.f64 1 (*.f64 x x) -1)
(fma.f64 (cbrt.f64 (pow.f64 x 4)) (cbrt.f64 (*.f64 x x)) -1)

simplify48.0ms (2.8%)

Algorithm
egg-herbie
Rules
864×fma-neg
830×div-sub
632×associate-*r*
568×associate-*l*
522×log-prod
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
083634
1195554
2651554
33614554
Stop Event
node limit
Counts
44 → 39
Calls
Call 1
Inputs
-1
(-.f64 (pow.f64 x 2) 1)
(-.f64 (pow.f64 x 2) 1)
(-.f64 (pow.f64 x 2) 1)
(pow.f64 x 2)
(-.f64 (pow.f64 x 2) 1)
(-.f64 (pow.f64 x 2) 1)
(-.f64 (pow.f64 x 2) 1)
(pow.f64 x 2)
(-.f64 (pow.f64 x 2) 1)
(-.f64 (pow.f64 x 2) 1)
(-.f64 (pow.f64 x 2) 1)
(-.f64 (+.f64 1 (fma.f64 x x -1)) 1)
(-.f64 (/.f64 (pow.f64 x 4) (fma.f64 x x 1)) (/.f64 1 (fma.f64 x x 1)))
(*.f64 (fma.f64 x x -1) 1)
(*.f64 1 (fma.f64 x x -1))
(*.f64 (cbrt.f64 (fma.f64 x x -1)) (pow.f64 (cbrt.f64 (fma.f64 x x -1)) 2))
(*.f64 (pow.f64 (cbrt.f64 (fma.f64 x x -1)) 2) (cbrt.f64 (fma.f64 x x -1)))
(*.f64 (sqrt.f64 (fma.f64 x x -1)) (sqrt.f64 (fma.f64 x x -1)))
(*.f64 (+.f64 -1 (pow.f64 x 6)) (/.f64 1 (+.f64 (pow.f64 x 4) (-.f64 1 (*.f64 x (*.f64 x -1))))))
(*.f64 (+.f64 (pow.f64 x 4) -1) (/.f64 1 (fma.f64 x x 1)))
(*.f64 (+.f64 x 1) (+.f64 x -1))
(*.f64 (+.f64 x -1) (+.f64 x 1))
(/.f64 1 (/.f64 (+.f64 (pow.f64 x 4) (-.f64 1 (*.f64 x (*.f64 x -1)))) (+.f64 -1 (pow.f64 x 6))))
(/.f64 1 (/.f64 (fma.f64 x x 1) (+.f64 (pow.f64 x 4) -1)))
(/.f64 (+.f64 -1 (pow.f64 x 6)) (+.f64 (pow.f64 x 4) (-.f64 1 (*.f64 x (*.f64 x -1)))))
(/.f64 (+.f64 -1 (pow.f64 x 6)) (+.f64 1 (-.f64 (pow.f64 x 4) (*.f64 x (*.f64 x -1)))))
(/.f64 (+.f64 (pow.f64 x 4) -1) (fma.f64 x x 1))
(/.f64 (neg.f64 (+.f64 -1 (pow.f64 x 6))) (neg.f64 (+.f64 (pow.f64 x 4) (-.f64 1 (*.f64 x (*.f64 x -1))))))
(/.f64 (neg.f64 (+.f64 (pow.f64 x 4) -1)) (neg.f64 (fma.f64 x x 1)))
(/.f64 (-.f64 1 (pow.f64 x 4)) (-.f64 -1 (*.f64 x x)))
(pow.f64 (fma.f64 x x -1) 1)
(pow.f64 (cbrt.f64 (fma.f64 x x -1)) 3)
(pow.f64 (pow.f64 (fma.f64 x x -1) 3) 1/3)
(pow.f64 (sqrt.f64 (fma.f64 x x -1)) 2)
(sqrt.f64 (pow.f64 (fma.f64 x x -1) 2))
(log.f64 (exp.f64 (fma.f64 x x -1)))
(cbrt.f64 (pow.f64 (fma.f64 x x -1) 3))
(expm1.f64 (log1p.f64 (fma.f64 x x -1)))
(exp.f64 (log.f64 (fma.f64 x x -1)))
(log1p.f64 (expm1.f64 (fma.f64 x x -1)))
(fma.f64 x x -1)
(fma.f64 1 (*.f64 x x) -1)
(fma.f64 (cbrt.f64 (pow.f64 x 4)) (cbrt.f64 (*.f64 x x)) -1)
Outputs
-1
(-.f64 (pow.f64 x 2) 1)
(fma.f64 x x -1)
(-.f64 (pow.f64 x 2) 1)
(fma.f64 x x -1)
(-.f64 (pow.f64 x 2) 1)
(fma.f64 x x -1)
(pow.f64 x 2)
(*.f64 x x)
(-.f64 (pow.f64 x 2) 1)
(fma.f64 x x -1)
(-.f64 (pow.f64 x 2) 1)
(fma.f64 x x -1)
(-.f64 (pow.f64 x 2) 1)
(fma.f64 x x -1)
(pow.f64 x 2)
(*.f64 x x)
(-.f64 (pow.f64 x 2) 1)
(fma.f64 x x -1)
(-.f64 (pow.f64 x 2) 1)
(fma.f64 x x -1)
(-.f64 (pow.f64 x 2) 1)
(fma.f64 x x -1)
(-.f64 (+.f64 1 (fma.f64 x x -1)) 1)
(fma.f64 x x -1)
(-.f64 (/.f64 (pow.f64 x 4) (fma.f64 x x 1)) (/.f64 1 (fma.f64 x x 1)))
(fma.f64 x x -1)
(*.f64 (fma.f64 x x -1) 1)
(fma.f64 x x -1)
(*.f64 1 (fma.f64 x x -1))
(fma.f64 x x -1)
(*.f64 (cbrt.f64 (fma.f64 x x -1)) (pow.f64 (cbrt.f64 (fma.f64 x x -1)) 2))
(fma.f64 x x -1)
(*.f64 (pow.f64 (cbrt.f64 (fma.f64 x x -1)) 2) (cbrt.f64 (fma.f64 x x -1)))
(fma.f64 x x -1)
(*.f64 (sqrt.f64 (fma.f64 x x -1)) (sqrt.f64 (fma.f64 x x -1)))
(fma.f64 x x -1)
(*.f64 (+.f64 -1 (pow.f64 x 6)) (/.f64 1 (+.f64 (pow.f64 x 4) (-.f64 1 (*.f64 x (*.f64 x -1))))))
(*.f64 (+.f64 -1 (pow.f64 x 6)) (/.f64 1 (-.f64 (+.f64 (pow.f64 x 4) 1) (*.f64 x (*.f64 -1 x)))))
(/.f64 (+.f64 -1 (pow.f64 x 6)) (+.f64 (pow.f64 x 4) (fma.f64 x x 1)))
(/.f64 (-.f64 1 (pow.f64 x 6)) (-.f64 -1 (fma.f64 x x (pow.f64 x 4))))
(*.f64 (+.f64 (pow.f64 x 4) -1) (/.f64 1 (fma.f64 x x 1)))
(fma.f64 x x -1)
(*.f64 (+.f64 x 1) (+.f64 x -1))
(fma.f64 x x -1)
(*.f64 (+.f64 x -1) (+.f64 x 1))
(fma.f64 x x -1)
(/.f64 1 (/.f64 (+.f64 (pow.f64 x 4) (-.f64 1 (*.f64 x (*.f64 x -1)))) (+.f64 -1 (pow.f64 x 6))))
(*.f64 (+.f64 -1 (pow.f64 x 6)) (/.f64 1 (-.f64 (+.f64 (pow.f64 x 4) 1) (*.f64 x (*.f64 -1 x)))))
(/.f64 (+.f64 -1 (pow.f64 x 6)) (+.f64 (pow.f64 x 4) (fma.f64 x x 1)))
(/.f64 (-.f64 1 (pow.f64 x 6)) (-.f64 -1 (fma.f64 x x (pow.f64 x 4))))
(/.f64 1 (/.f64 (fma.f64 x x 1) (+.f64 (pow.f64 x 4) -1)))
(fma.f64 x x -1)
(/.f64 (+.f64 -1 (pow.f64 x 6)) (+.f64 (pow.f64 x 4) (-.f64 1 (*.f64 x (*.f64 x -1)))))
(*.f64 (+.f64 -1 (pow.f64 x 6)) (/.f64 1 (-.f64 (+.f64 (pow.f64 x 4) 1) (*.f64 x (*.f64 -1 x)))))
(/.f64 (+.f64 -1 (pow.f64 x 6)) (+.f64 (pow.f64 x 4) (fma.f64 x x 1)))
(/.f64 (-.f64 1 (pow.f64 x 6)) (-.f64 -1 (fma.f64 x x (pow.f64 x 4))))
(/.f64 (+.f64 -1 (pow.f64 x 6)) (+.f64 1 (-.f64 (pow.f64 x 4) (*.f64 x (*.f64 x -1)))))
(*.f64 (+.f64 -1 (pow.f64 x 6)) (/.f64 1 (-.f64 (+.f64 (pow.f64 x 4) 1) (*.f64 x (*.f64 -1 x)))))
(/.f64 (+.f64 -1 (pow.f64 x 6)) (+.f64 (pow.f64 x 4) (fma.f64 x x 1)))
(/.f64 (-.f64 1 (pow.f64 x 6)) (-.f64 -1 (fma.f64 x x (pow.f64 x 4))))
(/.f64 (+.f64 (pow.f64 x 4) -1) (fma.f64 x x 1))
(fma.f64 x x -1)
(/.f64 (neg.f64 (+.f64 -1 (pow.f64 x 6))) (neg.f64 (+.f64 (pow.f64 x 4) (-.f64 1 (*.f64 x (*.f64 x -1))))))
(*.f64 (+.f64 -1 (pow.f64 x 6)) (/.f64 1 (-.f64 (+.f64 (pow.f64 x 4) 1) (*.f64 x (*.f64 -1 x)))))
(/.f64 (+.f64 -1 (pow.f64 x 6)) (+.f64 (pow.f64 x 4) (fma.f64 x x 1)))
(/.f64 (-.f64 1 (pow.f64 x 6)) (-.f64 -1 (fma.f64 x x (pow.f64 x 4))))
(/.f64 (neg.f64 (+.f64 (pow.f64 x 4) -1)) (neg.f64 (fma.f64 x x 1)))
(fma.f64 x x -1)
(/.f64 (-.f64 1 (pow.f64 x 4)) (-.f64 -1 (*.f64 x x)))
(fma.f64 x x -1)
(pow.f64 (fma.f64 x x -1) 1)
(fma.f64 x x -1)
(pow.f64 (cbrt.f64 (fma.f64 x x -1)) 3)
(fma.f64 x x -1)
(pow.f64 (pow.f64 (fma.f64 x x -1) 3) 1/3)
(fma.f64 x x -1)
(pow.f64 (sqrt.f64 (fma.f64 x x -1)) 2)
(fma.f64 x x -1)
(sqrt.f64 (pow.f64 (fma.f64 x x -1) 2))
(fma.f64 x x -1)
(log.f64 (exp.f64 (fma.f64 x x -1)))
(fma.f64 x x -1)
(cbrt.f64 (pow.f64 (fma.f64 x x -1) 3))
(fma.f64 x x -1)
(expm1.f64 (log1p.f64 (fma.f64 x x -1)))
(fma.f64 x x -1)
(exp.f64 (log.f64 (fma.f64 x x -1)))
(fma.f64 x x -1)
(log1p.f64 (expm1.f64 (fma.f64 x x -1)))
(fma.f64 x x -1)
(fma.f64 x x -1)
(fma.f64 1 (*.f64 x x) -1)
(fma.f64 x x -1)
(fma.f64 (cbrt.f64 (pow.f64 x 4)) (cbrt.f64 (*.f64 x x)) -1)

eval10.0ms (0.6%)

Compiler

Compiled 419 to 311 computations (25.8% saved)

prune8.0ms (0.4%)

Pruning

4 alts after pruning (3 fresh and 1 done)

PrunedKeptTotal
New36339
Fresh000
Picked112
Done000
Total37441
Accuracy
100.0%
Counts
41 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(exp.f64 (+.f64 (*.f64 x x) -1))
100.0%
(exp.f64 (*.f64 (+.f64 x 1) (+.f64 x -1)))
59.2%
(exp.f64 (*.f64 x x))
50.5%
(exp.f64 -1)
100.0%
(exp.f64 (+.f64 (*.f64 x x) -1))
100.0%
(exp.f64 (*.f64 (+.f64 x 1) (+.f64 x -1)))
59.2%
(exp.f64 (*.f64 x x))
50.5%
(exp.f64 -1)
Compiler

Compiled 48 to 36 computations (25% saved)

localize51.0ms (2.9%)

Localize:

Found 1 expressions with local error:

NewAccuracyProgram
100.0%
(*.f64 (+.f64 x 1) (+.f64 x -1))
Compiler

Compiled 37 to 24 computations (35.1% saved)

series1.0ms (0.1%)

Counts
1 → 12
Calls

3 calls:

TimeVariablePointExpression
0.0ms
x
@0
(*.f64 (+.f64 x 1) (+.f64 x -1))
0.0ms
x
@inf
(*.f64 (+.f64 x 1) (+.f64 x -1))
0.0ms
x
@-inf
(*.f64 (+.f64 x 1) (+.f64 x -1))

rewrite55.0ms (3.2%)

Algorithm
batch-egg-rewrite
Rules
1738×pow1
1616×add-exp-log
1614×log1p-expm1-u
1614×expm1-log1p-u
1592×add-log-exp
Iterations

Useful iterations: 1 (0.0ms)

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

simplify51.0ms (2.9%)

Algorithm
egg-herbie
Rules
764×associate-/r*
590×associate-*r/
584×associate-+r+
534×associate-+l+
504×div-sub
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01241208
14171048
22003964
Stop Event
node limit
Counts
56 → 62
Calls
Call 1
Inputs
-1
(-.f64 (pow.f64 x 2) 1)
(-.f64 (pow.f64 x 2) 1)
(-.f64 (pow.f64 x 2) 1)
(pow.f64 x 2)
(-.f64 (pow.f64 x 2) 1)
(-.f64 (pow.f64 x 2) 1)
(-.f64 (pow.f64 x 2) 1)
(pow.f64 x 2)
(-.f64 (pow.f64 x 2) 1)
(-.f64 (pow.f64 x 2) 1)
(-.f64 (pow.f64 x 2) 1)
(+.f64 (+.f64 x -1) (*.f64 (+.f64 x -1) x))
(+.f64 (+.f64 x -1) (*.f64 x (+.f64 x -1)))
(+.f64 (*.f64 x x) -1)
(+.f64 (+.f64 x (*.f64 x x)) (neg.f64 (+.f64 x 1)))
(+.f64 (neg.f64 (+.f64 x 1)) (+.f64 x (*.f64 x x)))
(+.f64 (*.f64 (+.f64 x -1) x) (+.f64 x -1))
(+.f64 (*.f64 (+.f64 x (*.f64 x x)) 1) (*.f64 (neg.f64 (+.f64 x 1)) 1))
(+.f64 (*.f64 x (+.f64 x -1)) (+.f64 x -1))
(-.f64 (*.f64 x x) 1)
(-.f64 (+.f64 1 (fma.f64 x x -1)) 1)
(/.f64 (pow.f64 (fma.f64 x x -1) 2) (fma.f64 x x -1))
(/.f64 (*.f64 (+.f64 1 (pow.f64 x 3)) (fma.f64 x x -1)) (*.f64 (fma.f64 x x (-.f64 1 x)) (+.f64 x 1)))
(/.f64 (*.f64 (fma.f64 x x -1) (+.f64 1 (pow.f64 x 3))) (*.f64 (+.f64 x 1) (fma.f64 x x (-.f64 1 x))))
(/.f64 (*.f64 (+.f64 1 (pow.f64 x 3)) (+.f64 -1 (pow.f64 x 3))) (*.f64 (fma.f64 x x (-.f64 1 x)) (fma.f64 x x (-.f64 1 (*.f64 x -1)))))
(/.f64 (*.f64 (fma.f64 x x -1) (+.f64 -1 (pow.f64 x 3))) (*.f64 (+.f64 x -1) (fma.f64 x x (-.f64 1 (*.f64 x -1)))))
(/.f64 (*.f64 (+.f64 -1 (pow.f64 x 3)) (+.f64 1 (pow.f64 x 3))) (*.f64 (fma.f64 x x (-.f64 1 (*.f64 x -1))) (fma.f64 x x (-.f64 1 x))))
(/.f64 (*.f64 (+.f64 -1 (pow.f64 x 3)) (fma.f64 x x -1)) (*.f64 (fma.f64 x x (-.f64 1 (*.f64 x -1))) (+.f64 x -1)))
(/.f64 (+.f64 (pow.f64 (+.f64 x (*.f64 x x)) 3) (pow.f64 (neg.f64 (+.f64 x 1)) 3)) (+.f64 (*.f64 (+.f64 x (*.f64 x x)) (+.f64 x (*.f64 x x))) (-.f64 (*.f64 (neg.f64 (+.f64 x 1)) (neg.f64 (+.f64 x 1))) (*.f64 (+.f64 x (*.f64 x x)) (neg.f64 (+.f64 x 1))))))
(/.f64 (-.f64 (pow.f64 (*.f64 x x) 3) 1) (+.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (+.f64 1 (*.f64 (*.f64 x x) 1))))
(/.f64 (-.f64 (*.f64 (+.f64 x (*.f64 x x)) (+.f64 x (*.f64 x x))) (*.f64 (neg.f64 (+.f64 x 1)) (neg.f64 (+.f64 x 1)))) (-.f64 (+.f64 x (*.f64 x x)) (neg.f64 (+.f64 x 1))))
(/.f64 (-.f64 (*.f64 (*.f64 x x) (*.f64 x x)) 1) (+.f64 (*.f64 x x) 1))
(/.f64 (*.f64 (fma.f64 x x -1) (+.f64 x 1)) (+.f64 x 1))
(/.f64 (*.f64 (fma.f64 x x -1) (+.f64 x -1)) (+.f64 x -1))
(/.f64 (*.f64 (+.f64 x -1) (fma.f64 x x -1)) (+.f64 x -1))
(/.f64 (*.f64 (+.f64 x 1) (fma.f64 x x -1)) (+.f64 x 1))
(/.f64 (*.f64 (+.f64 x 1) (+.f64 -1 (pow.f64 x 3))) (fma.f64 x x (-.f64 1 (*.f64 x -1))))
(/.f64 (*.f64 (+.f64 x -1) (+.f64 1 (pow.f64 x 3))) (fma.f64 x x (-.f64 1 x)))
(/.f64 (*.f64 (+.f64 1 (pow.f64 x 3)) (+.f64 x -1)) (fma.f64 x x (-.f64 1 x)))
(/.f64 (*.f64 (+.f64 -1 (pow.f64 x 3)) (+.f64 x 1)) (fma.f64 x x (-.f64 1 (*.f64 x -1))))
(pow.f64 (cbrt.f64 (fma.f64 x x -1)) 3)
(pow.f64 (pow.f64 (fma.f64 x x -1) 3) 1/3)
(pow.f64 (sqrt.f64 (fma.f64 x x -1)) 2)
(pow.f64 (fma.f64 x x -1) 1)
(sqrt.f64 (pow.f64 (fma.f64 x x -1) 2))
(log.f64 (exp.f64 (fma.f64 x x -1)))
(cbrt.f64 (pow.f64 (fma.f64 x x -1) 3))
(cbrt.f64 (*.f64 (pow.f64 (+.f64 x 1) 3) (pow.f64 (+.f64 x -1) 3)))
(cbrt.f64 (*.f64 (pow.f64 (+.f64 x -1) 3) (pow.f64 (+.f64 x 1) 3)))
(expm1.f64 (log1p.f64 (fma.f64 x x -1)))
(exp.f64 (log.f64 (fma.f64 x x -1)))
(log1p.f64 (expm1.f64 (fma.f64 x x -1)))
(fma.f64 x x -1)
(fma.f64 x (+.f64 x 1) (neg.f64 (+.f64 x 1)))
(fma.f64 (+.f64 x 1) x (neg.f64 (+.f64 x 1)))
Outputs
-1
(-.f64 (pow.f64 x 2) 1)
(fma.f64 x x -1)
(-.f64 (pow.f64 x 2) 1)
(fma.f64 x x -1)
(-.f64 (pow.f64 x 2) 1)
(fma.f64 x x -1)
(pow.f64 x 2)
(*.f64 x x)
(-.f64 (pow.f64 x 2) 1)
(fma.f64 x x -1)
(-.f64 (pow.f64 x 2) 1)
(fma.f64 x x -1)
(-.f64 (pow.f64 x 2) 1)
(fma.f64 x x -1)
(pow.f64 x 2)
(*.f64 x x)
(-.f64 (pow.f64 x 2) 1)
(fma.f64 x x -1)
(-.f64 (pow.f64 x 2) 1)
(fma.f64 x x -1)
(-.f64 (pow.f64 x 2) 1)
(fma.f64 x x -1)
(+.f64 (+.f64 x -1) (*.f64 (+.f64 x -1) x))
(fma.f64 x x -1)
(+.f64 (+.f64 x -1) (*.f64 x (+.f64 x -1)))
(fma.f64 x x -1)
(+.f64 (*.f64 x x) -1)
(fma.f64 x x -1)
(+.f64 (+.f64 x (*.f64 x x)) (neg.f64 (+.f64 x 1)))
(fma.f64 x x -1)
(+.f64 (neg.f64 (+.f64 x 1)) (+.f64 x (*.f64 x x)))
(fma.f64 x x -1)
(+.f64 (*.f64 (+.f64 x -1) x) (+.f64 x -1))
(fma.f64 x x -1)
(+.f64 (*.f64 (+.f64 x (*.f64 x x)) 1) (*.f64 (neg.f64 (+.f64 x 1)) 1))
(fma.f64 x x -1)
(+.f64 (*.f64 x (+.f64 x -1)) (+.f64 x -1))
(fma.f64 x x -1)
(-.f64 (*.f64 x x) 1)
(fma.f64 x x -1)
(-.f64 (+.f64 1 (fma.f64 x x -1)) 1)
(fma.f64 x x -1)
(/.f64 (pow.f64 (fma.f64 x x -1) 2) (fma.f64 x x -1))
(fma.f64 x x -1)
(/.f64 (*.f64 (+.f64 1 (pow.f64 x 3)) (fma.f64 x x -1)) (*.f64 (fma.f64 x x (-.f64 1 x)) (+.f64 x 1)))
(/.f64 (fma.f64 x x -1) (/.f64 (*.f64 (+.f64 x 1) (fma.f64 x x (-.f64 1 x))) (+.f64 1 (pow.f64 x 3))))
(/.f64 (+.f64 1 (pow.f64 x 3)) (*.f64 1 (/.f64 (-.f64 (fma.f64 x x 1) x) (+.f64 -1 x))))
(/.f64 (+.f64 -1 x) (/.f64 (-.f64 (fma.f64 x x 1) x) (+.f64 1 (pow.f64 x 3))))
(/.f64 (*.f64 (fma.f64 x x -1) (+.f64 1 (pow.f64 x 3))) (*.f64 (+.f64 x 1) (fma.f64 x x (-.f64 1 x))))
(/.f64 (fma.f64 x x -1) (/.f64 (*.f64 (+.f64 x 1) (fma.f64 x x (-.f64 1 x))) (+.f64 1 (pow.f64 x 3))))
(/.f64 (+.f64 1 (pow.f64 x 3)) (*.f64 1 (/.f64 (-.f64 (fma.f64 x x 1) x) (+.f64 -1 x))))
(/.f64 (+.f64 -1 x) (/.f64 (-.f64 (fma.f64 x x 1) x) (+.f64 1 (pow.f64 x 3))))
(/.f64 (*.f64 (+.f64 1 (pow.f64 x 3)) (+.f64 -1 (pow.f64 x 3))) (*.f64 (fma.f64 x x (-.f64 1 x)) (fma.f64 x x (-.f64 1 (*.f64 x -1)))))
(*.f64 (/.f64 (+.f64 1 (pow.f64 x 3)) (fma.f64 x x (-.f64 1 x))) (/.f64 (+.f64 -1 (pow.f64 x 3)) (fma.f64 x x (-.f64 1 (*.f64 -1 x)))))
(*.f64 (/.f64 (+.f64 1 (pow.f64 x 3)) (-.f64 (fma.f64 x x 1) x)) (/.f64 (+.f64 -1 (pow.f64 x 3)) (+.f64 (fma.f64 x x 1) x)))
(/.f64 (/.f64 (+.f64 -1 (pow.f64 x 6)) (-.f64 (fma.f64 x x 1) x)) (+.f64 x (fma.f64 x x 1)))
(/.f64 (*.f64 (fma.f64 x x -1) (+.f64 -1 (pow.f64 x 3))) (*.f64 (+.f64 x -1) (fma.f64 x x (-.f64 1 (*.f64 x -1)))))
(*.f64 (/.f64 (+.f64 -1 (pow.f64 x 3)) (fma.f64 x x (-.f64 1 (*.f64 -1 x)))) (/.f64 (fma.f64 x x -1) (+.f64 -1 x)))
(*.f64 (/.f64 (+.f64 -1 (pow.f64 x 3)) (+.f64 (fma.f64 x x 1) x)) (/.f64 (+.f64 x 1) 1))
(/.f64 (*.f64 (+.f64 x 1) (+.f64 -1 (pow.f64 x 3))) (+.f64 x (fma.f64 x x 1)))
(/.f64 (*.f64 (+.f64 -1 (pow.f64 x 3)) (+.f64 1 (pow.f64 x 3))) (*.f64 (fma.f64 x x (-.f64 1 (*.f64 x -1))) (fma.f64 x x (-.f64 1 x))))
(*.f64 (/.f64 (+.f64 1 (pow.f64 x 3)) (fma.f64 x x (-.f64 1 x))) (/.f64 (+.f64 -1 (pow.f64 x 3)) (fma.f64 x x (-.f64 1 (*.f64 -1 x)))))
(*.f64 (/.f64 (+.f64 1 (pow.f64 x 3)) (-.f64 (fma.f64 x x 1) x)) (/.f64 (+.f64 -1 (pow.f64 x 3)) (+.f64 (fma.f64 x x 1) x)))
(/.f64 (/.f64 (+.f64 -1 (pow.f64 x 6)) (-.f64 (fma.f64 x x 1) x)) (+.f64 x (fma.f64 x x 1)))
(/.f64 (*.f64 (+.f64 -1 (pow.f64 x 3)) (fma.f64 x x -1)) (*.f64 (fma.f64 x x (-.f64 1 (*.f64 x -1))) (+.f64 x -1)))
(*.f64 (/.f64 (+.f64 -1 (pow.f64 x 3)) (fma.f64 x x (-.f64 1 (*.f64 -1 x)))) (/.f64 (fma.f64 x x -1) (+.f64 -1 x)))
(*.f64 (/.f64 (+.f64 -1 (pow.f64 x 3)) (+.f64 (fma.f64 x x 1) x)) (/.f64 (+.f64 x 1) 1))
(/.f64 (*.f64 (+.f64 x 1) (+.f64 -1 (pow.f64 x 3))) (+.f64 x (fma.f64 x x 1)))
(/.f64 (+.f64 (pow.f64 (+.f64 x (*.f64 x x)) 3) (pow.f64 (neg.f64 (+.f64 x 1)) 3)) (+.f64 (*.f64 (+.f64 x (*.f64 x x)) (+.f64 x (*.f64 x x))) (-.f64 (*.f64 (neg.f64 (+.f64 x 1)) (neg.f64 (+.f64 x 1))) (*.f64 (+.f64 x (*.f64 x x)) (neg.f64 (+.f64 x 1))))))
(/.f64 (+.f64 (pow.f64 (*.f64 (+.f64 x 1) x) 3) (pow.f64 (neg.f64 (+.f64 x 1)) 3)) (fma.f64 (*.f64 (+.f64 x 1) x) (*.f64 (+.f64 x 1) x) (*.f64 (neg.f64 (+.f64 x 1)) (-.f64 (neg.f64 (+.f64 x 1)) (*.f64 (+.f64 x 1) x)))))
(/.f64 (-.f64 (pow.f64 (fma.f64 x x x) 3) (pow.f64 (+.f64 x 1) 3)) (fma.f64 (fma.f64 x x x) (fma.f64 x x x) (pow.f64 (+.f64 x 1) 3)))
(/.f64 (+.f64 (pow.f64 (fma.f64 x x x) 3) (pow.f64 (-.f64 -1 x) 3)) (fma.f64 (fma.f64 x x x) (fma.f64 x x x) (pow.f64 (+.f64 x 1) 3)))
(/.f64 (-.f64 (pow.f64 (*.f64 x x) 3) 1) (+.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (+.f64 1 (*.f64 (*.f64 x x) 1))))
(/.f64 (+.f64 (pow.f64 (*.f64 x x) 3) -1) (+.f64 (*.f64 x (pow.f64 x 3)) (fma.f64 x x 1)))
(/.f64 (+.f64 -1 (pow.f64 x 6)) (+.f64 (pow.f64 x 4) (fma.f64 x x 1)))
(/.f64 (-.f64 (*.f64 (+.f64 x (*.f64 x x)) (+.f64 x (*.f64 x x))) (*.f64 (neg.f64 (+.f64 x 1)) (neg.f64 (+.f64 x 1)))) (-.f64 (+.f64 x (*.f64 x x)) (neg.f64 (+.f64 x 1))))
(fma.f64 x x -1)
(/.f64 (-.f64 (*.f64 (*.f64 x x) (*.f64 x x)) 1) (+.f64 (*.f64 x x) 1))
(fma.f64 x x -1)
(/.f64 (*.f64 (fma.f64 x x -1) (+.f64 x 1)) (+.f64 x 1))
(fma.f64 x x -1)
(/.f64 (*.f64 (fma.f64 x x -1) (+.f64 x -1)) (+.f64 x -1))
(fma.f64 x x -1)
(/.f64 (*.f64 (+.f64 x -1) (fma.f64 x x -1)) (+.f64 x -1))
(fma.f64 x x -1)
(/.f64 (*.f64 (+.f64 x 1) (fma.f64 x x -1)) (+.f64 x 1))
(fma.f64 x x -1)
(/.f64 (*.f64 (+.f64 x 1) (+.f64 -1 (pow.f64 x 3))) (fma.f64 x x (-.f64 1 (*.f64 x -1))))
(*.f64 (/.f64 (+.f64 -1 (pow.f64 x 3)) (fma.f64 x x (-.f64 1 (*.f64 -1 x)))) (/.f64 (fma.f64 x x -1) (+.f64 -1 x)))
(*.f64 (/.f64 (+.f64 -1 (pow.f64 x 3)) (+.f64 (fma.f64 x x 1) x)) (/.f64 (+.f64 x 1) 1))
(/.f64 (*.f64 (+.f64 x 1) (+.f64 -1 (pow.f64 x 3))) (+.f64 x (fma.f64 x x 1)))
(/.f64 (*.f64 (+.f64 x -1) (+.f64 1 (pow.f64 x 3))) (fma.f64 x x (-.f64 1 x)))
(/.f64 (fma.f64 x x -1) (/.f64 (*.f64 (+.f64 x 1) (fma.f64 x x (-.f64 1 x))) (+.f64 1 (pow.f64 x 3))))
(/.f64 (+.f64 1 (pow.f64 x 3)) (*.f64 1 (/.f64 (-.f64 (fma.f64 x x 1) x) (+.f64 -1 x))))
(/.f64 (+.f64 -1 x) (/.f64 (-.f64 (fma.f64 x x 1) x) (+.f64 1 (pow.f64 x 3))))
(/.f64 (*.f64 (+.f64 1 (pow.f64 x 3)) (+.f64 x -1)) (fma.f64 x x (-.f64 1 x)))
(/.f64 (fma.f64 x x -1) (/.f64 (*.f64 (+.f64 x 1) (fma.f64 x x (-.f64 1 x))) (+.f64 1 (pow.f64 x 3))))
(/.f64 (+.f64 1 (pow.f64 x 3)) (*.f64 1 (/.f64 (-.f64 (fma.f64 x x 1) x) (+.f64 -1 x))))
(/.f64 (+.f64 -1 x) (/.f64 (-.f64 (fma.f64 x x 1) x) (+.f64 1 (pow.f64 x 3))))
(/.f64 (*.f64 (+.f64 -1 (pow.f64 x 3)) (+.f64 x 1)) (fma.f64 x x (-.f64 1 (*.f64 x -1))))
(*.f64 (/.f64 (+.f64 -1 (pow.f64 x 3)) (fma.f64 x x (-.f64 1 (*.f64 -1 x)))) (/.f64 (fma.f64 x x -1) (+.f64 -1 x)))
(*.f64 (/.f64 (+.f64 -1 (pow.f64 x 3)) (+.f64 (fma.f64 x x 1) x)) (/.f64 (+.f64 x 1) 1))
(/.f64 (*.f64 (+.f64 x 1) (+.f64 -1 (pow.f64 x 3))) (+.f64 x (fma.f64 x x 1)))
(pow.f64 (cbrt.f64 (fma.f64 x x -1)) 3)
(fma.f64 x x -1)
(pow.f64 (pow.f64 (fma.f64 x x -1) 3) 1/3)
(fma.f64 x x -1)
(pow.f64 (sqrt.f64 (fma.f64 x x -1)) 2)
(fma.f64 x x -1)
(pow.f64 (fma.f64 x x -1) 1)
(fma.f64 x x -1)
(sqrt.f64 (pow.f64 (fma.f64 x x -1) 2))
(fma.f64 x x -1)
(log.f64 (exp.f64 (fma.f64 x x -1)))
(fma.f64 x x -1)
(cbrt.f64 (pow.f64 (fma.f64 x x -1) 3))
(fma.f64 x x -1)
(cbrt.f64 (*.f64 (pow.f64 (+.f64 x 1) 3) (pow.f64 (+.f64 x -1) 3)))
(fma.f64 x x -1)
(cbrt.f64 (*.f64 (pow.f64 (+.f64 x -1) 3) (pow.f64 (+.f64 x 1) 3)))
(fma.f64 x x -1)
(expm1.f64 (log1p.f64 (fma.f64 x x -1)))
(fma.f64 x x -1)
(exp.f64 (log.f64 (fma.f64 x x -1)))
(fma.f64 x x -1)
(log1p.f64 (expm1.f64 (fma.f64 x x -1)))
(fma.f64 x x -1)
(fma.f64 x x -1)
(fma.f64 x (+.f64 x 1) (neg.f64 (+.f64 x 1)))
(fma.f64 x x -1)
(fma.f64 (+.f64 x 1) x (neg.f64 (+.f64 x 1)))
(fma.f64 x x -1)

eval74.0ms (4.2%)

Compiler

Compiled 971 to 643 computations (33.8% saved)

prune9.0ms (0.5%)

Pruning

4 alts after pruning (0 fresh and 4 done)

PrunedKeptTotal
New62062
Fresh000
Picked033
Done011
Total62466
Accuracy
100.0%
Counts
66 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(exp.f64 (+.f64 (*.f64 x x) -1))
100.0%
(exp.f64 (*.f64 (+.f64 x 1) (+.f64 x -1)))
59.2%
(exp.f64 (*.f64 x x))
50.5%
(exp.f64 -1)
Compiler

Compiled 57 to 39 computations (31.6% saved)

regimes18.0ms (1%)

Counts
6 → 1
Calls
Call 1
Inputs
(exp.f64 -1)
(exp.f64 (*.f64 x x))
(exp.f64 (+.f64 (*.f64 x x) -1))
(exp.f64 (neg.f64 (-.f64 1 (*.f64 x x))))
(exp.f64 (*.f64 (+.f64 x 1) (+.f64 x -1)))
(exp.f64 (fma.f64 x x -1))
Outputs
(exp.f64 (fma.f64 x x -1))
Calls

5 calls:

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

Compiled 60 to 39 computations (35% saved)

regimes20.0ms (1.1%)

Counts
5 → 1
Calls
Call 1
Inputs
(exp.f64 -1)
(exp.f64 (*.f64 x x))
(exp.f64 (+.f64 (*.f64 x x) -1))
(exp.f64 (neg.f64 (-.f64 1 (*.f64 x x))))
(exp.f64 (*.f64 (+.f64 x 1) (+.f64 x -1)))
Outputs
(exp.f64 (+.f64 (*.f64 x x) -1))
Calls

5 calls:

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

Compiled 55 to 36 computations (34.5% saved)

regimes14.0ms (0.8%)

Counts
2 → 2
Calls
Call 1
Inputs
(exp.f64 -1)
(exp.f64 (*.f64 x x))
Outputs
(exp.f64 -1)
(exp.f64 (*.f64 x x))
Calls

2 calls:

8.0ms
x
5.0ms
(*.f64 x x)
Results
AccuracySegmentsBranch
99.3%2x
99.3%2(*.f64 x x)
Compiler

Compiled 13 to 8 computations (38.5% saved)

regimes3.0ms (0.2%)

Accuracy

Total 0.0b remaining (0%)

Threshold costs 0b (0%)

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

1 calls:

3.0ms
x
Results
AccuracySegmentsBranch
50.5%1x
Compiler

Compiled 5 to 4 computations (20% saved)

bsearch14.0ms (0.8%)

Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
14.0ms
3.765573952868452e-5
1.6445813312548774
Results
12.0ms128×body256valid
Compiler

Compiled 76 to 65 computations (14.5% saved)

simplify5.0ms (0.3%)

Algorithm
egg-herbie
Rules
+-commutative
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01966
12066
Stop Event
done
saturated
Calls
Call 1
Inputs
(exp.f64 (fma.f64 x x -1))
(exp.f64 (+.f64 (*.f64 x x) -1))
(if (<=.f64 (*.f64 x x) 4278419646001971/4503599627370496) (exp.f64 -1) (exp.f64 (*.f64 x x)))
(exp.f64 -1)
Outputs
(exp.f64 (fma.f64 x x -1))
(exp.f64 (+.f64 (*.f64 x x) -1))
(exp.f64 (+.f64 -1 (*.f64 x x)))
(if (<=.f64 (*.f64 x x) 4278419646001971/4503599627370496) (exp.f64 -1) (exp.f64 (*.f64 x x)))
(exp.f64 -1)
Compiler

Compiled 29 to 20 computations (31% saved)

soundness322.0ms (18.4%)

Rules
1996×fma-def
1996×fma-def
1492×div-sub
1492×div-sub
1302×times-frac
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01463
13851
27951
315739
429139
562439
6204639
7573139
01463
13851
27951
315739
429139
562439
6204639
7573139
083634
1195554
2651554
33614554
Stop Event
node limit
node limit
node limit
Compiler

Compiled 130 to 73 computations (43.8% saved)

end0.0ms (0%)

preprocess65.0ms (3.7%)

Remove

(abs x)

Compiler

Compiled 80 to 52 computations (35% saved)

Profiling

Loading profile data...