Hyperbolic tangent

Details

Time bar (total: 3.5s)

analyze0.0ms (0%)

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

Compiled 15 to 8 computations (46.7% saved)

sample2.6s (72.2%)

Results
1.2s4014×body1024valid
561.0ms7762×body256unsamplable
355.0ms1943×body512valid
203.0ms1877×body256valid
160.0ms422×body2048valid
Bogosity

preprocess132.0ms (3.7%)

Algorithm
egg-herbie
Rules
2166×fma-def
1142×distribute-lft-neg-in
926×times-frac
684×associate-*r*
604×associate-/r/
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01043
12243
23743
36243
413643
533943
688643
7268343
8672643
011
Stop Event
saturated
node limit
Calls
Call 1
Inputs
0
Outputs
0
Call 2
Inputs
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
Outputs
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
Compiler

Compiled 15 to 8 computations (46.7% saved)

simplify66.0ms (1.9%)

Algorithm
egg-herbie
Rules
2166×fma-def
1142×distribute-lft-neg-in
926×times-frac
684×associate-*r*
604×associate-/r/
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01043
12243
23743
36243
413643
533943
688643
7268343
8672643
Stop Event
node limit
Counts
1 → 1
Calls
Call 1
Inputs
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
Outputs
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))

eval0.0ms (0%)

Compiler

Compiled 14 to 7 computations (50% saved)

prune1.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New011
Fresh011
Picked000
Done000
Total022
Accurracy
9.9%
Counts
2 → 1
Alt Table
Click to see full alt table
StatusAccuracyProgram
9.9%
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
9.9%
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
Compiler

Compiled 28 to 14 computations (50% saved)

localize74.0ms (2.1%)

Local Accuracy

Found 3 expressions with local accuracy:

NewAccuracyProgram
100.0%
(+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))
97.6%
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
12.2%
(-.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))
Compiler

Compiled 35 to 8 computations (77.1% saved)

series3.0ms (0.1%)

Counts
3 → 32
Calls

9 calls:

TimeVariablePointExpression
1.0ms
x
@inf
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
1.0ms
x
@-inf
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
0.0ms
x
@0
(-.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))
0.0ms
x
@0
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
0.0ms
x
@-inf
(-.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))

rewrite49.0ms (1.4%)

Algorithm
batch-egg-rewrite
Rules
238×add-sqr-sqrt
230×pow1
230×*-un-lft-identity
224×add-exp-log
222×add-log-exp
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01033
122633
2425933
Stop Event
unsound
Counts
3 → 39
Calls
Call 1
Inputs
(-.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
(+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))
Outputs
-2
-1
0
1/2
1
3/2
2
3
4
5
8
9
27
x
-2
-1
0
1/2
1
3/2
2
3
4
5
8
9
27
x
-2
-1
0
1/2
1
3/2
2
3
4
5
8
9
27
x

simplify98.0ms (2.8%)

Algorithm
egg-herbie
Rules
1372×fma-def
1056×fma-neg
1020×unswap-sqr
952×associate-*r*
720×associate-*l*
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
068901
1158889
2355881
3993881
43226881
55370881
67476881
Stop Event
node limit
Counts
71 → 59
Calls
Call 1
Inputs
(*.f64 2 x)
(+.f64 (*.f64 2 x) (*.f64 1/3 (pow.f64 x 3)))
(+.f64 (*.f64 2 x) (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 1/60 (pow.f64 x 5))))
(+.f64 (*.f64 2 x) (+.f64 (*.f64 1/3 (pow.f64 x 3)) (+.f64 (*.f64 1/2520 (pow.f64 x 7)) (*.f64 1/60 (pow.f64 x 5)))))
(-.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x)))
(-.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x)))
(-.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x)))
(-.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x)))
x
(+.f64 (*.f64 -1/3 (pow.f64 x 3)) x)
(+.f64 (*.f64 -1/3 (pow.f64 x 3)) (+.f64 (*.f64 2/15 (pow.f64 x 5)) x))
(+.f64 (*.f64 -17/315 (pow.f64 x 7)) (+.f64 (*.f64 -1/3 (pow.f64 x 3)) (+.f64 (*.f64 2/15 (pow.f64 x 5)) x)))
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x))) (+.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x))))
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x))) (+.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x))))
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x))) (+.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x))))
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x))) (+.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x))))
2
(+.f64 2 (pow.f64 x 2))
(+.f64 2 (+.f64 (pow.f64 x 2) (*.f64 1/12 (pow.f64 x 4))))
(+.f64 2 (+.f64 (*.f64 1/360 (pow.f64 x 6)) (+.f64 (pow.f64 x 2) (*.f64 1/12 (pow.f64 x 4)))))
(+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))
(+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))
(+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))
(+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))
(+.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x)))
(+.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x)))
(+.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x)))
(+.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x)))
-2
-1
0
1/2
1
3/2
2
3
4
5
8
9
27
-2
-1
0
1/2
1
3/2
2
3
4
5
8
9
27
-2
-1
0
1/2
1
3/2
2
3
4
5
8
9
27
Outputs
(*.f64 2 x)
(+.f64 x x)
(+.f64 (*.f64 2 x) (*.f64 1/3 (pow.f64 x 3)))
(fma.f64 2 x (*.f64 1/3 (pow.f64 x 3)))
(fma.f64 1/3 (pow.f64 x 3) (*.f64 2 x))
(fma.f64 1/3 (pow.f64 x 3) (+.f64 x x))
(+.f64 (*.f64 2 x) (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 1/60 (pow.f64 x 5))))
(fma.f64 2 x (fma.f64 1/3 (pow.f64 x 3) (*.f64 1/60 (pow.f64 x 5))))
(fma.f64 x (fma.f64 x (*.f64 x 1/3) 2) (*.f64 1/60 (pow.f64 x 5)))
(+.f64 (*.f64 2 x) (+.f64 (*.f64 1/3 (pow.f64 x 3)) (+.f64 (*.f64 1/2520 (pow.f64 x 7)) (*.f64 1/60 (pow.f64 x 5)))))
(fma.f64 2 x (fma.f64 1/3 (pow.f64 x 3) (fma.f64 1/2520 (pow.f64 x 7) (*.f64 1/60 (pow.f64 x 5)))))
(fma.f64 2 x (fma.f64 1/3 (pow.f64 x 3) (fma.f64 1/60 (pow.f64 x 5) (*.f64 1/2520 (pow.f64 x 7)))))
(fma.f64 1/60 (pow.f64 x 5) (fma.f64 1/3 (pow.f64 x 3) (fma.f64 1/2520 (pow.f64 x 7) (*.f64 2 x))))
(fma.f64 1/60 (pow.f64 x 5) (fma.f64 1/3 (pow.f64 x 3) (fma.f64 1/2520 (pow.f64 x 7) (+.f64 x x))))
(-.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x)))
(-.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))
(-.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x)))
(-.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))
(-.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x)))
(-.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))
(-.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x)))
(-.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))
x
(+.f64 (*.f64 -1/3 (pow.f64 x 3)) x)
(fma.f64 -1/3 (pow.f64 x 3) x)
(fma.f64 (pow.f64 x 3) -1/3 x)
(+.f64 (*.f64 -1/3 (pow.f64 x 3)) (+.f64 (*.f64 2/15 (pow.f64 x 5)) x))
(fma.f64 -1/3 (pow.f64 x 3) (fma.f64 2/15 (pow.f64 x 5) x))
(fma.f64 (pow.f64 x 3) -1/3 (fma.f64 (pow.f64 x 5) 2/15 x))
(+.f64 (*.f64 -17/315 (pow.f64 x 7)) (+.f64 (*.f64 -1/3 (pow.f64 x 3)) (+.f64 (*.f64 2/15 (pow.f64 x 5)) x)))
(fma.f64 -17/315 (pow.f64 x 7) (fma.f64 -1/3 (pow.f64 x 3) (fma.f64 2/15 (pow.f64 x 5) x)))
(fma.f64 (pow.f64 x 7) -17/315 (fma.f64 (pow.f64 x 3) -1/3 (fma.f64 (pow.f64 x 5) 2/15 x)))
(fma.f64 (pow.f64 x 3) -1/3 (fma.f64 (pow.f64 x 7) -17/315 (fma.f64 (pow.f64 x 5) 2/15 x)))
(fma.f64 (pow.f64 x 3) -1/3 (fma.f64 (pow.f64 x 5) 2/15 (fma.f64 (pow.f64 x 7) -17/315 x)))
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x))) (+.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x))))
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x))) (+.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x))))
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x))) (+.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x))))
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x))) (+.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x))))
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
2
(+.f64 2 (pow.f64 x 2))
(+.f64 2 (*.f64 x x))
(fma.f64 x x 2)
(+.f64 2 (+.f64 (pow.f64 x 2) (*.f64 1/12 (pow.f64 x 4))))
(+.f64 2 (+.f64 (*.f64 x x) (*.f64 1/12 (pow.f64 x 4))))
(+.f64 2 (fma.f64 1/12 (pow.f64 x 4) (*.f64 x x)))
(fma.f64 x x (fma.f64 1/12 (pow.f64 x 4) 2))
(+.f64 2 (+.f64 (*.f64 1/360 (pow.f64 x 6)) (+.f64 (pow.f64 x 2) (*.f64 1/12 (pow.f64 x 4)))))
(+.f64 2 (fma.f64 1/360 (pow.f64 x 6) (+.f64 (*.f64 x x) (*.f64 1/12 (pow.f64 x 4)))))
(+.f64 2 (fma.f64 1/360 (pow.f64 x 6) (fma.f64 1/12 (pow.f64 x 4) (*.f64 x x))))
(fma.f64 1/360 (pow.f64 x 6) (fma.f64 x x (fma.f64 1/12 (pow.f64 x 4) 2)))
(fma.f64 x x (fma.f64 1/12 (pow.f64 x 4) (fma.f64 1/360 (pow.f64 x 6) 2)))
(+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))
(+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))
(+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))
(+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))
(+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))
(+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))
(+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))
(+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))
(+.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x)))
(+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))
(+.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x)))
(+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))
(+.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x)))
(+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))
(+.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x)))
(+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))
-2
-1
0
1/2
1
3/2
2
3
4
5
8
9
27
-2
-1
0
1/2
1
3/2
2
3
4
5
8
9
27
-2
-1
0
1/2
1
3/2
2
3
4
5
8
9
27

eval14.0ms (0.4%)

Compiler

Compiled 837 to 402 computations (52% saved)

prune11.0ms (0.3%)

Pruning

5 alts after pruning (4 fresh and 1 done)

PrunedKeptTotal
New55459
Fresh000
Picked011
Done000
Total55560
Accurracy
97.9%
Counts
60 → 5
Alt Table
Click to see full alt table
StatusAccuracyProgram
96.6%
(/.f64 (fma.f64 x (fma.f64 x (*.f64 x 1/3) 2) (*.f64 1/60 (pow.f64 x 5))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
9.9%
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
96.8%
(+.f64 (*.f64 -1/3 (pow.f64 x 3)) (+.f64 (*.f64 2/15 (pow.f64 x 5)) x))
96.5%
(+.f64 (*.f64 -1/3 (pow.f64 x 3)) x)
96.2%
x
96.6%
(/.f64 (fma.f64 x (fma.f64 x (*.f64 x 1/3) 2) (*.f64 1/60 (pow.f64 x 5))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
9.9%
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
96.8%
(+.f64 (*.f64 -1/3 (pow.f64 x 3)) (+.f64 (*.f64 2/15 (pow.f64 x 5)) x))
96.5%
(+.f64 (*.f64 -1/3 (pow.f64 x 3)) x)
96.2%
x
Compiler

Compiled 118 to 80 computations (32.2% saved)

localize173.0ms (4.9%)

Local Accuracy

Found 10 expressions with local accuracy:

NewAccuracyProgram
100.0%
(fma.f64 x (fma.f64 x (*.f64 x 1/3) 2) (*.f64 1/60 (pow.f64 x 5)))
100.0%
(/.f64 (fma.f64 x (fma.f64 x (*.f64 x 1/3) 2) (*.f64 1/60 (pow.f64 x 5))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
99.9%
(*.f64 1/60 (pow.f64 x 5))
99.6%
(*.f64 x 1/3)
100.0%
(+.f64 (*.f64 2/15 (pow.f64 x 5)) x)
100.0%
(+.f64 (*.f64 -1/3 (pow.f64 x 3)) (+.f64 (*.f64 2/15 (pow.f64 x 5)) x))
99.9%
(*.f64 2/15 (pow.f64 x 5))
99.8%
(*.f64 -1/3 (pow.f64 x 3))
100.0%
(+.f64 (*.f64 -1/3 (pow.f64 x 3)) x)
99.8%
(*.f64 -1/3 (pow.f64 x 3))
Compiler

Compiled 129 to 85 computations (34.1% saved)

series9.0ms (0.3%)

Counts
10 → 58
Calls

30 calls:

TimeVariablePointExpression
2.0ms
x
@-inf
(/.f64 (fma.f64 x (fma.f64 x (*.f64 x 1/3) 2) (*.f64 1/60 (pow.f64 x 5))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
1.0ms
x
@inf
(+.f64 (*.f64 -1/3 (pow.f64 x 3)) x)
1.0ms
x
@inf
(/.f64 (fma.f64 x (fma.f64 x (*.f64 x 1/3) 2) (*.f64 1/60 (pow.f64 x 5))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
0.0ms
x
@0
(*.f64 -1/3 (pow.f64 x 3))
0.0ms
x
@0
(*.f64 2/15 (pow.f64 x 5))

rewrite53.0ms (1.5%)

Algorithm
batch-egg-rewrite
Rules
618×add-sqr-sqrt
586×pow1
584×add-exp-log
582×add-log-exp
582×*-un-lft-identity
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
028130
1624130
Stop Event
node limit
Counts
10 → 218
Calls
Call 1
Inputs
(*.f64 -1/3 (pow.f64 x 3))
(+.f64 (*.f64 -1/3 (pow.f64 x 3)) x)
(*.f64 -1/3 (pow.f64 x 3))
(*.f64 2/15 (pow.f64 x 5))
(+.f64 (*.f64 -1/3 (pow.f64 x 3)) (+.f64 (*.f64 2/15 (pow.f64 x 5)) x))
(+.f64 (*.f64 2/15 (pow.f64 x 5)) x)
(*.f64 x 1/3)
(*.f64 1/60 (pow.f64 x 5))
(/.f64 (fma.f64 x (fma.f64 x (*.f64 x 1/3) 2) (*.f64 1/60 (pow.f64 x 5))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
(fma.f64 x (fma.f64 x (*.f64 x 1/3) 2) (*.f64 1/60 (pow.f64 x 5)))
Outputs
-2
-1
-1/3
-1/27
-1/19683
0
1/19683
1/729
1/81
1/27
1/9
1/3
1/2
2/3
3/4
1
5/4
4/3
3/2
2
9/4
5/2
3
27/8
4
5
6
25/4
8
9
10
125/8
16
25
27
64
81
125
512
625
729
15625
19683
1953125
x
-2
-1
-1/3
-1/27
-1/19683
0
1/19683
1/729
1/81
1/27
1/9
1/3
1/2
2/3
3/4
1
5/4
4/3
3/2
2
9/4
5/2
3
27/8
4
5
6
25/4
8
9
10
125/8
16
25
27
64
81
125
512
625
729
15625
19683
1953125
x
-2
-1
-1/3
-1/27
-1/19683
0
1/19683
1/729
1/81
1/27
1/9
1/3
1/2
2/3
3/4
1
5/4
4/3
3/2
2
9/4
5/2
3
27/8
4
5
6
25/4
8
9
10
125/8
16
25
27
64
81
125
512
625
729
15625
19683
1953125
x
512/38443359375
64/11390625
16/50625
8/3375
4/225
2/15
17/15
512/38443359375
64/11390625
16/50625
8/3375
4/225
2/15
17/15
512/38443359375
64/11390625
16/50625
8/3375
4/225
2/15
17/15
-2
-1
-1/3
-1/27
-1/19683
0
1/19683
1/729
1/81
1/27
1/9
1/3
1/2
2/3
3/4
1
5/4
4/3
3/2
2
9/4
5/2
3
27/8
4
5
6
25/4
8
9
10
125/8
16
25
27
64
81
125
512
625
729
15625
19683
1953125
x
1/10077696000000000
1/46656000000
1/12960000
1/216000
1/3600
1/60
61/60
1/10077696000000000
1/46656000000
1/12960000
1/216000
1/3600
1/60
61/60
1/10077696000000000
1/46656000000
1/12960000
1/216000
1/3600
1/60
61/60

simplify112.0ms (3.2%)

Algorithm
egg-herbie
Rules
1886×fma-def
1486×times-frac
1266×associate-/r*
1154×associate-*r*
974×fma-neg
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
01091716
11981716
23281716
36671716
412461620
531551620
658181620
772101620
Stop Event
node limit
Counts
276 → 106
Calls
Call 1
Inputs
x
(*.f64 -1/3 (pow.f64 x 3))
(*.f64 -1/3 (pow.f64 x 3))
x
(+.f64 (*.f64 -1/3 (pow.f64 x 3)) x)
(*.f64 2/15 (pow.f64 x 5))
(+.f64 (*.f64 -1/3 (pow.f64 x 3)) (*.f64 2/15 (pow.f64 x 5)))
(+.f64 (*.f64 -1/3 (pow.f64 x 3)) (+.f64 x (*.f64 2/15 (pow.f64 x 5))))
(+.f64 (*.f64 -1/3 (pow.f64 x 3)) (+.f64 x (*.f64 2/15 (pow.f64 x 5))))
(*.f64 2/15 (pow.f64 x 5))
(+.f64 (*.f64 -1/3 (pow.f64 x 3)) (*.f64 2/15 (pow.f64 x 5)))
(+.f64 (*.f64 -1/3 (pow.f64 x 3)) (+.f64 x (*.f64 2/15 (pow.f64 x 5))))
(+.f64 (*.f64 -1/3 (pow.f64 x 3)) (+.f64 x (*.f64 2/15 (pow.f64 x 5))))
x
(*.f64 2/15 (pow.f64 x 5))
(+.f64 x (*.f64 2/15 (pow.f64 x 5)))
(+.f64 x (*.f64 2/15 (pow.f64 x 5)))
(+.f64 x (*.f64 2/15 (pow.f64 x 5)))
(*.f64 2/15 (pow.f64 x 5))
(+.f64 x (*.f64 2/15 (pow.f64 x 5)))
(+.f64 x (*.f64 2/15 (pow.f64 x 5)))
(+.f64 x (*.f64 2/15 (pow.f64 x 5)))
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
x
(+.f64 (*.f64 -1/3 (pow.f64 x 3)) x)
(+.f64 (*.f64 -1/3 (pow.f64 x 3)) (+.f64 (*.f64 2/15 (pow.f64 x 5)) x))
(+.f64 (*.f64 -1/3 (pow.f64 x 3)) (+.f64 (*.f64 -13/240 (pow.f64 x 7)) (+.f64 (*.f64 2/15 (pow.f64 x 5)) x)))
(*.f64 1/60 (/.f64 (pow.f64 x 5) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))))
(+.f64 (*.f64 1/60 (/.f64 (pow.f64 x 5) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))) (*.f64 1/3 (/.f64 (pow.f64 x 3) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))))
(+.f64 (*.f64 2 (/.f64 x (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))) (+.f64 (*.f64 1/60 (/.f64 (pow.f64 x 5) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))) (*.f64 1/3 (/.f64 (pow.f64 x 3) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))))))
(+.f64 (*.f64 2 (/.f64 x (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))) (+.f64 (*.f64 1/60 (/.f64 (pow.f64 x 5) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))) (*.f64 1/3 (/.f64 (pow.f64 x 3) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))))))
(*.f64 1/60 (/.f64 (pow.f64 x 5) (+.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x)))))
(+.f64 (*.f64 1/3 (/.f64 (pow.f64 x 3) (+.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x))))) (*.f64 1/60 (/.f64 (pow.f64 x 5) (+.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x))))))
(+.f64 (*.f64 1/3 (/.f64 (pow.f64 x 3) (+.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x))))) (+.f64 (*.f64 2 (/.f64 x (+.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x))))) (*.f64 1/60 (/.f64 (pow.f64 x 5) (+.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x)))))))
(+.f64 (*.f64 1/3 (/.f64 (pow.f64 x 3) (+.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x))))) (+.f64 (*.f64 2 (/.f64 x (+.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x))))) (*.f64 1/60 (/.f64 (pow.f64 x 5) (+.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x)))))))
(*.f64 2 x)
(+.f64 (*.f64 2 x) (*.f64 1/3 (pow.f64 x 3)))
(+.f64 (*.f64 2 x) (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 1/60 (pow.f64 x 5))))
(+.f64 (*.f64 2 x) (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 1/60 (pow.f64 x 5))))
(*.f64 1/60 (pow.f64 x 5))
(+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 1/60 (pow.f64 x 5)))
(+.f64 (*.f64 2 x) (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 1/60 (pow.f64 x 5))))
(+.f64 (*.f64 2 x) (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 1/60 (pow.f64 x 5))))
(*.f64 1/60 (pow.f64 x 5))
(+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 1/60 (pow.f64 x 5)))
(+.f64 (*.f64 2 x) (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 1/60 (pow.f64 x 5))))
(+.f64 (*.f64 2 x) (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 1/60 (pow.f64 x 5))))
-2
-1
-1/3
-1/27
-1/19683
0
1/19683
1/729
1/81
1/27
1/9
1/3
1/2
2/3
3/4
1
5/4
4/3
3/2
2
9/4
5/2
3
27/8
4
5
6
25/4
8
9
10
125/8
16
25
27
64
81
125
512
625
729
15625
19683
1953125
-2
-1
-1/3
-1/27
-1/19683
0
1/19683
1/729
1/81
1/27
1/9
1/3
1/2
2/3
3/4
1
5/4
4/3
3/2
2
9/4
5/2
3
27/8
4
5
6
25/4
8
9
10
125/8
16
25
27
64
81
125
512
625
729
15625
19683
1953125
-2
-1
-1/3
-1/27
-1/19683
0
1/19683
1/729
1/81
1/27
1/9
1/3
1/2
2/3
3/4
1
5/4
4/3
3/2
2
9/4
5/2
3
27/8
4
5
6
25/4
8
9
10
125/8
16
25
27
64
81
125
512
625
729
15625
19683
1953125
512/38443359375
64/11390625
16/50625
8/3375
4/225
2/15
17/15
512/38443359375
64/11390625
16/50625
8/3375
4/225
2/15
17/15
512/38443359375
64/11390625
16/50625
8/3375
4/225
2/15
17/15
-2
-1
-1/3
-1/27
-1/19683
0
1/19683
1/729
1/81
1/27
1/9
1/3
1/2
2/3
3/4
1
5/4
4/3
3/2
2
9/4
5/2
3
27/8
4
5
6
25/4
8
9
10
125/8
16
25
27
64
81
125
512
625
729
15625
19683
1953125
1/10077696000000000
1/46656000000
1/12960000
1/216000
1/3600
1/60
61/60
1/10077696000000000
1/46656000000
1/12960000
1/216000
1/3600
1/60
61/60
1/10077696000000000
1/46656000000
1/12960000
1/216000
1/3600
1/60
61/60
Outputs
x
(*.f64 -1/3 (pow.f64 x 3))
(*.f64 -1/3 (pow.f64 x 3))
x
(+.f64 (*.f64 -1/3 (pow.f64 x 3)) x)
(fma.f64 -1/3 (pow.f64 x 3) x)
(*.f64 2/15 (pow.f64 x 5))
(+.f64 (*.f64 -1/3 (pow.f64 x 3)) (*.f64 2/15 (pow.f64 x 5)))
(fma.f64 -1/3 (pow.f64 x 3) (*.f64 2/15 (pow.f64 x 5)))
(+.f64 (*.f64 -1/3 (pow.f64 x 3)) (+.f64 x (*.f64 2/15 (pow.f64 x 5))))
(fma.f64 -1/3 (pow.f64 x 3) (fma.f64 2/15 (pow.f64 x 5) x))
(+.f64 (*.f64 -1/3 (pow.f64 x 3)) (+.f64 x (*.f64 2/15 (pow.f64 x 5))))
(fma.f64 -1/3 (pow.f64 x 3) (fma.f64 2/15 (pow.f64 x 5) x))
(*.f64 2/15 (pow.f64 x 5))
(+.f64 (*.f64 -1/3 (pow.f64 x 3)) (*.f64 2/15 (pow.f64 x 5)))
(fma.f64 -1/3 (pow.f64 x 3) (*.f64 2/15 (pow.f64 x 5)))
(+.f64 (*.f64 -1/3 (pow.f64 x 3)) (+.f64 x (*.f64 2/15 (pow.f64 x 5))))
(fma.f64 -1/3 (pow.f64 x 3) (fma.f64 2/15 (pow.f64 x 5) x))
(+.f64 (*.f64 -1/3 (pow.f64 x 3)) (+.f64 x (*.f64 2/15 (pow.f64 x 5))))
(fma.f64 -1/3 (pow.f64 x 3) (fma.f64 2/15 (pow.f64 x 5) x))
x
(*.f64 2/15 (pow.f64 x 5))
(+.f64 x (*.f64 2/15 (pow.f64 x 5)))
(fma.f64 2/15 (pow.f64 x 5) x)
(+.f64 x (*.f64 2/15 (pow.f64 x 5)))
(fma.f64 2/15 (pow.f64 x 5) x)
(+.f64 x (*.f64 2/15 (pow.f64 x 5)))
(fma.f64 2/15 (pow.f64 x 5) x)
(*.f64 2/15 (pow.f64 x 5))
(+.f64 x (*.f64 2/15 (pow.f64 x 5)))
(fma.f64 2/15 (pow.f64 x 5) x)
(+.f64 x (*.f64 2/15 (pow.f64 x 5)))
(fma.f64 2/15 (pow.f64 x 5) x)
(+.f64 x (*.f64 2/15 (pow.f64 x 5)))
(fma.f64 2/15 (pow.f64 x 5) x)
(*.f64 1/3 x)
(*.f64 x 1/3)
(*.f64 1/3 x)
(*.f64 x 1/3)
(*.f64 1/3 x)
(*.f64 x 1/3)
(*.f64 1/3 x)
(*.f64 x 1/3)
(*.f64 1/3 x)
(*.f64 x 1/3)
(*.f64 1/3 x)
(*.f64 x 1/3)
(*.f64 1/3 x)
(*.f64 x 1/3)
(*.f64 1/3 x)
(*.f64 x 1/3)
(*.f64 1/3 x)
(*.f64 x 1/3)
(*.f64 1/3 x)
(*.f64 x 1/3)
(*.f64 1/3 x)
(*.f64 x 1/3)
(*.f64 1/3 x)
(*.f64 x 1/3)
x
(+.f64 (*.f64 -1/3 (pow.f64 x 3)) x)
(fma.f64 -1/3 (pow.f64 x 3) x)
(+.f64 (*.f64 -1/3 (pow.f64 x 3)) (+.f64 (*.f64 2/15 (pow.f64 x 5)) x))
(fma.f64 -1/3 (pow.f64 x 3) (fma.f64 2/15 (pow.f64 x 5) x))
(+.f64 (*.f64 -1/3 (pow.f64 x 3)) (+.f64 (*.f64 -13/240 (pow.f64 x 7)) (+.f64 (*.f64 2/15 (pow.f64 x 5)) x)))
(fma.f64 -1/3 (pow.f64 x 3) (fma.f64 -13/240 (pow.f64 x 7) (fma.f64 2/15 (pow.f64 x 5) x)))
(fma.f64 -1/3 (pow.f64 x 3) (fma.f64 2/15 (pow.f64 x 5) (fma.f64 -13/240 (pow.f64 x 7) x)))
(*.f64 1/60 (/.f64 (pow.f64 x 5) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))))
(*.f64 (pow.f64 x 5) (/.f64 1/60 (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))))
(+.f64 (*.f64 1/60 (/.f64 (pow.f64 x 5) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))) (*.f64 1/3 (/.f64 (pow.f64 x 3) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))))
(fma.f64 1/3 (/.f64 (pow.f64 x 3) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))) (*.f64 1/60 (/.f64 (pow.f64 x 5) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))))
(fma.f64 1/3 (/.f64 (pow.f64 x 3) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))) (*.f64 (pow.f64 x 5) (/.f64 1/60 (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))))
(fma.f64 (pow.f64 x 3) (/.f64 1/3 (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))) (*.f64 (pow.f64 x 5) (/.f64 1/60 (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))))
(fma.f64 1/60 (/.f64 (pow.f64 x 5) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))) (*.f64 (pow.f64 x 3) (/.f64 1/3 (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))))
(+.f64 (*.f64 2 (/.f64 x (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))) (+.f64 (*.f64 1/60 (/.f64 (pow.f64 x 5) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))) (*.f64 1/3 (/.f64 (pow.f64 x 3) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))))))
(fma.f64 1/3 (/.f64 (pow.f64 x 3) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))) (fma.f64 2 (/.f64 x (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))) (*.f64 1/60 (/.f64 (pow.f64 x 5) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))))))
(fma.f64 1/3 (/.f64 (pow.f64 x 3) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))) (fma.f64 1/60 (/.f64 (pow.f64 x 5) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))) (*.f64 2 (/.f64 x (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))))))
(fma.f64 (pow.f64 x 5) (/.f64 1/60 (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))) (*.f64 (/.f64 x (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))) (fma.f64 x (*.f64 x 1/3) 2)))
(fma.f64 (pow.f64 x 5) (/.f64 1/60 (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))) (*.f64 x (/.f64 (fma.f64 x (*.f64 x 1/3) 2) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))))
(+.f64 (*.f64 2 (/.f64 x (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))) (+.f64 (*.f64 1/60 (/.f64 (pow.f64 x 5) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))) (*.f64 1/3 (/.f64 (pow.f64 x 3) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))))))
(fma.f64 1/3 (/.f64 (pow.f64 x 3) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))) (fma.f64 2 (/.f64 x (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))) (*.f64 1/60 (/.f64 (pow.f64 x 5) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))))))
(fma.f64 1/3 (/.f64 (pow.f64 x 3) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))) (fma.f64 1/60 (/.f64 (pow.f64 x 5) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))) (*.f64 2 (/.f64 x (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))))))
(fma.f64 (pow.f64 x 5) (/.f64 1/60 (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))) (*.f64 (/.f64 x (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))) (fma.f64 x (*.f64 x 1/3) 2)))
(fma.f64 (pow.f64 x 5) (/.f64 1/60 (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))) (*.f64 x (/.f64 (fma.f64 x (*.f64 x 1/3) 2) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))))
(*.f64 1/60 (/.f64 (pow.f64 x 5) (+.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x)))))
(*.f64 1/60 (/.f64 (pow.f64 x 5) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))))
(*.f64 (pow.f64 x 5) (/.f64 1/60 (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))))
(+.f64 (*.f64 1/3 (/.f64 (pow.f64 x 3) (+.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x))))) (*.f64 1/60 (/.f64 (pow.f64 x 5) (+.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x))))))
(fma.f64 1/3 (/.f64 (pow.f64 x 3) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))) (*.f64 1/60 (/.f64 (pow.f64 x 5) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))))
(fma.f64 1/3 (/.f64 (pow.f64 x 3) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))) (*.f64 (pow.f64 x 5) (/.f64 1/60 (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))))
(fma.f64 (pow.f64 x 3) (/.f64 1/3 (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))) (*.f64 (pow.f64 x 5) (/.f64 1/60 (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))))
(fma.f64 1/60 (/.f64 (pow.f64 x 5) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))) (*.f64 (pow.f64 x 3) (/.f64 1/3 (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))))
(+.f64 (*.f64 1/3 (/.f64 (pow.f64 x 3) (+.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x))))) (+.f64 (*.f64 2 (/.f64 x (+.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x))))) (*.f64 1/60 (/.f64 (pow.f64 x 5) (+.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x)))))))
(fma.f64 1/3 (/.f64 (pow.f64 x 3) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))) (fma.f64 2 (/.f64 x (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))) (*.f64 1/60 (/.f64 (pow.f64 x 5) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))))))
(fma.f64 1/3 (/.f64 (pow.f64 x 3) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))) (fma.f64 1/60 (/.f64 (pow.f64 x 5) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))) (*.f64 2 (/.f64 x (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))))))
(fma.f64 (pow.f64 x 5) (/.f64 1/60 (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))) (*.f64 (/.f64 x (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))) (fma.f64 x (*.f64 x 1/3) 2)))
(fma.f64 (pow.f64 x 5) (/.f64 1/60 (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))) (*.f64 x (/.f64 (fma.f64 x (*.f64 x 1/3) 2) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))))
(+.f64 (*.f64 1/3 (/.f64 (pow.f64 x 3) (+.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x))))) (+.f64 (*.f64 2 (/.f64 x (+.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x))))) (*.f64 1/60 (/.f64 (pow.f64 x 5) (+.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x)))))))
(fma.f64 1/3 (/.f64 (pow.f64 x 3) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))) (fma.f64 2 (/.f64 x (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))) (*.f64 1/60 (/.f64 (pow.f64 x 5) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))))))
(fma.f64 1/3 (/.f64 (pow.f64 x 3) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))) (fma.f64 1/60 (/.f64 (pow.f64 x 5) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))) (*.f64 2 (/.f64 x (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))))))
(fma.f64 (pow.f64 x 5) (/.f64 1/60 (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))) (*.f64 (/.f64 x (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))) (fma.f64 x (*.f64 x 1/3) 2)))
(fma.f64 (pow.f64 x 5) (/.f64 1/60 (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))) (*.f64 x (/.f64 (fma.f64 x (*.f64 x 1/3) 2) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))))
(*.f64 2 x)
(*.f64 x 2)
(+.f64 (*.f64 2 x) (*.f64 1/3 (pow.f64 x 3)))
(fma.f64 2 x (*.f64 (pow.f64 x 3) 1/3))
(fma.f64 (pow.f64 x 3) 1/3 (*.f64 x 2))
(*.f64 x (fma.f64 x (*.f64 x 1/3) 2))
(+.f64 (*.f64 2 x) (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 1/60 (pow.f64 x 5))))
(fma.f64 2 x (fma.f64 1/3 (pow.f64 x 3) (*.f64 (pow.f64 x 5) 1/60)))
(fma.f64 x 2 (fma.f64 (pow.f64 x 3) 1/3 (*.f64 (pow.f64 x 5) 1/60)))
(fma.f64 (pow.f64 x 3) 1/3 (fma.f64 x 2 (*.f64 (pow.f64 x 5) 1/60)))
(fma.f64 x (fma.f64 x (*.f64 x 1/3) 2) (*.f64 (pow.f64 x 5) 1/60))
(+.f64 (*.f64 2 x) (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 1/60 (pow.f64 x 5))))
(fma.f64 2 x (fma.f64 1/3 (pow.f64 x 3) (*.f64 (pow.f64 x 5) 1/60)))
(fma.f64 x 2 (fma.f64 (pow.f64 x 3) 1/3 (*.f64 (pow.f64 x 5) 1/60)))
(fma.f64 (pow.f64 x 3) 1/3 (fma.f64 x 2 (*.f64 (pow.f64 x 5) 1/60)))
(fma.f64 x (fma.f64 x (*.f64 x 1/3) 2) (*.f64 (pow.f64 x 5) 1/60))
(*.f64 1/60 (pow.f64 x 5))
(*.f64 (pow.f64 x 5) 1/60)
(+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 1/60 (pow.f64 x 5)))
(fma.f64 1/3 (pow.f64 x 3) (*.f64 (pow.f64 x 5) 1/60))
(fma.f64 (pow.f64 x 3) 1/3 (*.f64 (pow.f64 x 5) 1/60))
(+.f64 (*.f64 2 x) (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 1/60 (pow.f64 x 5))))
(fma.f64 2 x (fma.f64 1/3 (pow.f64 x 3) (*.f64 (pow.f64 x 5) 1/60)))
(fma.f64 x 2 (fma.f64 (pow.f64 x 3) 1/3 (*.f64 (pow.f64 x 5) 1/60)))
(fma.f64 (pow.f64 x 3) 1/3 (fma.f64 x 2 (*.f64 (pow.f64 x 5) 1/60)))
(fma.f64 x (fma.f64 x (*.f64 x 1/3) 2) (*.f64 (pow.f64 x 5) 1/60))
(+.f64 (*.f64 2 x) (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 1/60 (pow.f64 x 5))))
(fma.f64 2 x (fma.f64 1/3 (pow.f64 x 3) (*.f64 (pow.f64 x 5) 1/60)))
(fma.f64 x 2 (fma.f64 (pow.f64 x 3) 1/3 (*.f64 (pow.f64 x 5) 1/60)))
(fma.f64 (pow.f64 x 3) 1/3 (fma.f64 x 2 (*.f64 (pow.f64 x 5) 1/60)))
(fma.f64 x (fma.f64 x (*.f64 x 1/3) 2) (*.f64 (pow.f64 x 5) 1/60))
(*.f64 1/60 (pow.f64 x 5))
(*.f64 (pow.f64 x 5) 1/60)
(+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 1/60 (pow.f64 x 5)))
(fma.f64 1/3 (pow.f64 x 3) (*.f64 (pow.f64 x 5) 1/60))
(fma.f64 (pow.f64 x 3) 1/3 (*.f64 (pow.f64 x 5) 1/60))
(+.f64 (*.f64 2 x) (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 1/60 (pow.f64 x 5))))
(fma.f64 2 x (fma.f64 1/3 (pow.f64 x 3) (*.f64 (pow.f64 x 5) 1/60)))
(fma.f64 x 2 (fma.f64 (pow.f64 x 3) 1/3 (*.f64 (pow.f64 x 5) 1/60)))
(fma.f64 (pow.f64 x 3) 1/3 (fma.f64 x 2 (*.f64 (pow.f64 x 5) 1/60)))
(fma.f64 x (fma.f64 x (*.f64 x 1/3) 2) (*.f64 (pow.f64 x 5) 1/60))
(+.f64 (*.f64 2 x) (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 1/60 (pow.f64 x 5))))
(fma.f64 2 x (fma.f64 1/3 (pow.f64 x 3) (*.f64 (pow.f64 x 5) 1/60)))
(fma.f64 x 2 (fma.f64 (pow.f64 x 3) 1/3 (*.f64 (pow.f64 x 5) 1/60)))
(fma.f64 (pow.f64 x 3) 1/3 (fma.f64 x 2 (*.f64 (pow.f64 x 5) 1/60)))
(fma.f64 x (fma.f64 x (*.f64 x 1/3) 2) (*.f64 (pow.f64 x 5) 1/60))
-2
-1
-1/3
-1/27
-1/19683
0
1/19683
1/729
1/81
1/27
1/9
1/3
1/2
2/3
3/4
1
5/4
4/3
3/2
2
9/4
5/2
3
27/8
4
5
6
25/4
8
9
10
125/8
16
25
27
64
81
125
512
625
729
15625
19683
1953125
-2
-1
-1/3
-1/27
-1/19683
0
1/19683
1/729
1/81
1/27
1/9
1/3
1/2
2/3
3/4
1
5/4
4/3
3/2
2
9/4
5/2
3
27/8
4
5
6
25/4
8
9
10
125/8
16
25
27
64
81
125
512
625
729
15625
19683
1953125
-2
-1
-1/3
-1/27
-1/19683
0
1/19683
1/729
1/81
1/27
1/9
1/3
1/2
2/3
3/4
1
5/4
4/3
3/2
2
9/4
5/2
3
27/8
4
5
6
25/4
8
9
10
125/8
16
25
27
64
81
125
512
625
729
15625
19683
1953125
512/38443359375
64/11390625
16/50625
8/3375
4/225
2/15
17/15
512/38443359375
64/11390625
16/50625
8/3375
4/225
2/15
17/15
512/38443359375
64/11390625
16/50625
8/3375
4/225
2/15
17/15
-2
-1
-1/3
-1/27
-1/19683
0
1/19683
1/729
1/81
1/27
1/9
1/3
1/2
2/3
3/4
1
5/4
4/3
3/2
2
9/4
5/2
3
27/8
4
5
6
25/4
8
9
10
125/8
16
25
27
64
81
125
512
625
729
15625
19683
1953125
1/10077696000000000
1/46656000000
1/12960000
1/216000
1/3600
1/60
61/60
1/10077696000000000
1/46656000000
1/12960000
1/216000
1/3600
1/60
61/60
1/10077696000000000
1/46656000000
1/12960000
1/216000
1/3600
1/60
61/60

eval43.0ms (1.2%)

Compiler

Compiled 1543 to 944 computations (38.8% saved)

prune28.0ms (0.8%)

Pruning

10 alts after pruning (6 fresh and 4 done)

PrunedKeptTotal
New1455150
Fresh011
Picked033
Done011
Total14510155
Accurracy
97.9%
Counts
155 → 10
Alt Table
Click to see full alt table
StatusAccuracyProgram
96.6%
(/.f64 (fma.f64 x (fma.f64 x (*.f64 x 1/3) 2) (*.f64 1/60 (pow.f64 x 5))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
9.9%
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
96.8%
(+.f64 (*.f64 -1/3 (pow.f64 x 3)) (+.f64 (*.f64 2/15 (pow.f64 x 5)) x))
96.5%
(+.f64 (*.f64 -1/3 (pow.f64 x 3)) x)
3.8%
(+.f64 1953125 x)
3.9%
(+.f64 19683 x)
4.0%
(+.f64 125 x)
4.1%
(+.f64 16 x)
4.2%
(+.f64 -2 x)
96.2%
x
96.6%
(/.f64 (fma.f64 x (fma.f64 x (*.f64 x 1/3) 2) (*.f64 1/60 (pow.f64 x 5))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
9.9%
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
96.8%
(+.f64 (*.f64 -1/3 (pow.f64 x 3)) (+.f64 (*.f64 2/15 (pow.f64 x 5)) x))
96.5%
(+.f64 (*.f64 -1/3 (pow.f64 x 3)) x)
3.8%
(+.f64 1953125 x)
3.9%
(+.f64 19683 x)
4.0%
(+.f64 125 x)
4.1%
(+.f64 16 x)
4.2%
(+.f64 -2 x)
96.2%
x
Compiler

Compiled 198 to 140 computations (29.3% saved)

localize35.0ms (1%)

Compiler

Compiled 27 to 17 computations (37% saved)

eval0.0ms (0%)

Compiler

Compiled 1 to 1 computations (0% saved)

prune8.0ms (0.2%)

Pruning

10 alts after pruning (1 fresh and 9 done)

PrunedKeptTotal
New000
Fresh011
Picked055
Done044
Total01010
Accurracy
97.9%
Counts
10 → 10
Alt Table
Click to see full alt table
StatusAccuracyProgram
96.6%
(/.f64 (fma.f64 x (fma.f64 x (*.f64 x 1/3) 2) (*.f64 1/60 (pow.f64 x 5))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
9.9%
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
96.8%
(+.f64 (*.f64 -1/3 (pow.f64 x 3)) (+.f64 (*.f64 2/15 (pow.f64 x 5)) x))
96.5%
(+.f64 (*.f64 -1/3 (pow.f64 x 3)) x)
3.8%
(+.f64 1953125 x)
3.9%
(+.f64 19683 x)
4.0%
(+.f64 125 x)
4.1%
(+.f64 16 x)
4.2%
(+.f64 -2 x)
96.2%
x
96.6%
(/.f64 (fma.f64 x (fma.f64 x (*.f64 x 1/3) 2) (*.f64 1/60 (pow.f64 x 5))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
9.9%
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
96.8%
(+.f64 (*.f64 -1/3 (pow.f64 x 3)) (+.f64 (*.f64 2/15 (pow.f64 x 5)) x))
96.5%
(+.f64 (*.f64 -1/3 (pow.f64 x 3)) x)
3.8%
(+.f64 1953125 x)
3.9%
(+.f64 19683 x)
4.0%
(+.f64 125 x)
4.1%
(+.f64 16 x)
4.2%
(+.f64 -2 x)
96.2%
x
Compiler

Compiled 158 to 110 computations (30.4% saved)

localize0.0ms (0%)

eval0.0ms (0%)

Compiler

Compiled 1 to 1 computations (0% saved)

prune6.0ms (0.2%)

Pruning

10 alts after pruning (1 fresh and 9 done)

PrunedKeptTotal
New000
Fresh011
Picked000
Done099
Total01010
Accurracy
97.9%
Counts
10 → 10
Alt Table
Click to see full alt table
StatusAccuracyProgram
96.6%
(/.f64 (fma.f64 x (fma.f64 x (*.f64 x 1/3) 2) (*.f64 1/60 (pow.f64 x 5))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
9.9%
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
96.8%
(+.f64 (*.f64 -1/3 (pow.f64 x 3)) (+.f64 (*.f64 2/15 (pow.f64 x 5)) x))
96.5%
(+.f64 (*.f64 -1/3 (pow.f64 x 3)) x)
3.8%
(+.f64 1953125 x)
3.9%
(+.f64 19683 x)
4.0%
(+.f64 125 x)
4.1%
(+.f64 16 x)
4.2%
(+.f64 -2 x)
96.2%
x
Compiler

Compiled 149 to 97 computations (34.9% saved)

regimes11.0ms (0.3%)

Counts
10 → 1
Calls
Call 1
Inputs
x
(+.f64 -2 x)
(+.f64 16 x)
(+.f64 125 x)
(+.f64 19683 x)
(+.f64 1953125 x)
(+.f64 (*.f64 -1/3 (pow.f64 x 3)) x)
(+.f64 (*.f64 -1/3 (pow.f64 x 3)) (+.f64 (*.f64 2/15 (pow.f64 x 5)) x))
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
(/.f64 (fma.f64 x (fma.f64 x (*.f64 x 1/3) 2) (*.f64 1/60 (pow.f64 x 5))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
Outputs
(+.f64 (*.f64 -1/3 (pow.f64 x 3)) (+.f64 (*.f64 2/15 (pow.f64 x 5)) x))
Calls

2 calls:

6.0ms
x
3.0ms
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
Results
AccuracySegmentsBranch
96.8%1x
96.8%1(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
Compiler

Compiled 86 to 50 computations (41.9% saved)

regimes9.0ms (0.3%)

Counts
7 → 1
Calls
Call 1
Inputs
x
(+.f64 -2 x)
(+.f64 16 x)
(+.f64 125 x)
(+.f64 19683 x)
(+.f64 1953125 x)
(+.f64 (*.f64 -1/3 (pow.f64 x 3)) x)
Outputs
(+.f64 (*.f64 -1/3 (pow.f64 x 3)) x)
Calls

1 calls:

8.0ms
x
Results
AccuracySegmentsBranch
96.5%1x
Compiler

Compiled 26 to 17 computations (34.6% saved)

regimes6.0ms (0.2%)

Accuracy

Total -60.0b remaining (-2477.7%)

Threshold costs -60b (-2477.7%)

Counts
6 → 1
Calls
Call 1
Inputs
x
(+.f64 -2 x)
(+.f64 16 x)
(+.f64 125 x)
(+.f64 19683 x)
(+.f64 1953125 x)
Outputs
x
Calls

1 calls:

5.0ms
x
Results
AccuracySegmentsBranch
96.2%1x
Compiler

Compiled 19 to 12 computations (36.8% saved)

simplify5.0ms (0.1%)

Algorithm
egg-herbie
Rules
+-commutative
*-commutative
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01457
11957
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(+.f64 (*.f64 -1/3 (pow.f64 x 3)) (+.f64 (*.f64 2/15 (pow.f64 x 5)) x))
(+.f64 (*.f64 -1/3 (pow.f64 x 3)) x)
x
Outputs
(+.f64 (*.f64 -1/3 (pow.f64 x 3)) (+.f64 (*.f64 2/15 (pow.f64 x 5)) x))
(+.f64 (*.f64 -1/3 (pow.f64 x 3)) (+.f64 x (*.f64 2/15 (pow.f64 x 5))))
(+.f64 (*.f64 -1/3 (pow.f64 x 3)) x)
(+.f64 x (*.f64 -1/3 (pow.f64 x 3)))
x
Compiler

Compiled 24 to 18 computations (25% saved)

soundness0.0ms (0%)

end36.0ms (1%)

Compiler

Compiled 72 to 46 computations (36.1% saved)

Profiling

Loading profile data...