Hyperbolic tangent

Time bar (total: 4.0s)

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

Results
1.3s4037×body1024valid
517.0ms7621×body256unsamplable
380.0ms2016×body512valid
191.0ms1781×body256valid
144.0ms422×body2048valid
Bogosity

preprocess142.0ms (3.5%)

Algorithm
egg-herbie
Rules
1572×div-sub
1010×fma-neg
638×cancel-sign-sub-inv
606×sub-neg
578×neg-mul-1
Problems
249×(-.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))
No Errors
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
018220
149220
294220
3193220
4542220
52338220
66399220
Stop Event
node limit
Calls
Call 1
Inputs
(/.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 x) (exp.f64 (neg.f64 x))))
(/.f64 (-.f64 (exp.f64 (neg.f64 x)) (exp.f64 (neg.f64 (neg.f64 x)))) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 (neg.f64 (neg.f64 x)))))
(neg.f64 (/.f64 (-.f64 (exp.f64 (neg.f64 x)) (exp.f64 (neg.f64 (neg.f64 x)))) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 (neg.f64 (neg.f64 x))))))
Outputs
(/.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 x) (exp.f64 (neg.f64 x))))
(/.f64 (-.f64 (exp.f64 (neg.f64 x)) (exp.f64 (neg.f64 (neg.f64 x)))) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 (neg.f64 (neg.f64 x)))))
(/.f64 (-.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
(neg.f64 (/.f64 (-.f64 (exp.f64 (neg.f64 x)) (exp.f64 (neg.f64 (neg.f64 x)))) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 (neg.f64 (neg.f64 x))))))
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
Symmetry

(negabs x)

Compiler

Compiled 49 to 15 computations (69.4% saved)

eval0.0ms (0%)

Compiler

Compiled 1 to 1 computations (0% saved)

prune1.0ms (0%)

Alt Table
Click to see full alt table
StatusAccuracyProgram
9.4%
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
9.4%
(/.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)

localize87.0ms (2.2%)

Localize:

Found 2 expressions with local error:

NewAccuracyProgram
99.2%
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
10.2%
(-.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))
Compiler

Compiled 35 to 8 computations (77.1% saved)

series2.0ms (0.1%)

Counts
2 → 16
Calls

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

rewrite63.0ms (1.6%)

Algorithm
batch-egg-rewrite
Rules
110×associate-*r*
108×times-frac
81×add-exp-log
81×add-log-exp
81×add-cube-cbrt
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01228
117428
2341828
Stop Event
unsound
Counts
2 → 20
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))))
Outputs
-2
-1
0
1/2
1
3/2
2
3
4
5
-2
-1
0
1/2
1
3/2
2
3
4
5

simplify74.0ms (1.8%)

Algorithm
egg-herbie
Rules
1352×unswap-sqr
1148×fma-def
1084×associate-*r*
1000×fma-neg
704×associate-*l*
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
048612
1104608
2235604
3630600
41269600
52831600
63991600
76911600
Stop Event
node limit
Counts
36 → 44
Calls
Call 1
Inputs
(*.f64 2 x)
(+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 2 x))
(+.f64 (*.f64 1/60 (pow.f64 x 5)) (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 2 x)))
(+.f64 (*.f64 1/2520 (pow.f64 x 7)) (+.f64 (*.f64 1/60 (pow.f64 x 5)) (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 2 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)))
x
(+.f64 x (*.f64 -1/3 (pow.f64 x 3)))
(+.f64 x (+.f64 (*.f64 -1/3 (pow.f64 x 3)) (*.f64 2/15 (pow.f64 x 5))))
(+.f64 x (+.f64 (*.f64 -1/3 (pow.f64 x 3)) (+.f64 (*.f64 -17/315 (pow.f64 x 7)) (*.f64 2/15 (pow.f64 x 5)))))
(/.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
-1
0
1/2
1
3/2
2
3
4
5
-2
-1
0
1/2
1
3/2
2
3
4
5
Outputs
(*.f64 2 x)
(+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 2 x))
(fma.f64 1/3 (pow.f64 x 3) (*.f64 2 x))
(fma.f64 2 x (*.f64 1/3 (pow.f64 x 3)))
(+.f64 (*.f64 1/60 (pow.f64 x 5)) (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 2 x)))
(fma.f64 1/60 (pow.f64 x 5) (fma.f64 1/3 (pow.f64 x 3) (*.f64 2 x)))
(fma.f64 1/60 (pow.f64 x 5) (fma.f64 2 x (*.f64 1/3 (pow.f64 x 3))))
(fma.f64 2 x (fma.f64 1/3 (pow.f64 x 3) (*.f64 1/60 (pow.f64 x 5))))
(+.f64 (*.f64 1/2520 (pow.f64 x 7)) (+.f64 (*.f64 1/60 (pow.f64 x 5)) (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 2 x))))
(fma.f64 1/2520 (pow.f64 x 7) (fma.f64 1/60 (pow.f64 x 5) (fma.f64 1/3 (pow.f64 x 3) (*.f64 2 x))))
(fma.f64 1/2520 (pow.f64 x 7) (fma.f64 1/60 (pow.f64 x 5) (fma.f64 2 x (*.f64 1/3 (pow.f64 x 3)))))
(fma.f64 1/60 (pow.f64 x 5) (fma.f64 1/2520 (pow.f64 x 7) (fma.f64 2 x (*.f64 1/3 (pow.f64 x 3)))))
(fma.f64 1/60 (pow.f64 x 5) (fma.f64 2 x (fma.f64 1/3 (pow.f64 x 3) (*.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 2 x (*.f64 1/2520 (pow.f64 x 7)))))
(fma.f64 1/3 (pow.f64 x 3) (fma.f64 1/2520 (pow.f64 x 7) (fma.f64 1/60 (pow.f64 x 5) (*.f64 2 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 x (*.f64 -1/3 (pow.f64 x 3)))
(+.f64 x (*.f64 (pow.f64 x 3) -1/3))
(fma.f64 (pow.f64 x 3) -1/3 x)
(+.f64 x (+.f64 (*.f64 -1/3 (pow.f64 x 3)) (*.f64 2/15 (pow.f64 x 5))))
(+.f64 x (fma.f64 -1/3 (pow.f64 x 3) (*.f64 (pow.f64 x 5) 2/15)))
(+.f64 x (fma.f64 (pow.f64 x 3) -1/3 (*.f64 (pow.f64 x 5) 2/15)))
(fma.f64 (pow.f64 x 3) -1/3 (fma.f64 (pow.f64 x 5) 2/15 x))
(fma.f64 (pow.f64 x 5) 2/15 (fma.f64 (pow.f64 x 3) -1/3 x))
(+.f64 x (+.f64 (*.f64 -1/3 (pow.f64 x 3)) (+.f64 (*.f64 -17/315 (pow.f64 x 7)) (*.f64 2/15 (pow.f64 x 5)))))
(+.f64 x (fma.f64 -1/3 (pow.f64 x 3) (fma.f64 -17/315 (pow.f64 x 7) (*.f64 (pow.f64 x 5) 2/15))))
(+.f64 x (fma.f64 (pow.f64 x 3) -1/3 (fma.f64 (pow.f64 x 5) 2/15 (*.f64 (pow.f64 x 7) -17/315))))
(+.f64 x (fma.f64 (pow.f64 x 5) 2/15 (fma.f64 (pow.f64 x 7) -17/315 (*.f64 (pow.f64 x 3) -1/3))))
(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)))
(fma.f64 (pow.f64 x 5) 2/15 (fma.f64 (pow.f64 x 3) -1/3 (fma.f64 (pow.f64 x 7) -17/315 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
-1
0
1/2
1
3/2
2
3
4
5
-2
-1
0
1/2
1
3/2
2
3
4
5

eval12.0ms (0.3%)

Compiler

Compiled 634 to 356 computations (43.8% saved)

prune21.0ms (0.5%)

Pruning

7 alts after pruning (6 fresh and 1 done)

PrunedKeptTotal
New38644
Fresh000
Picked011
Done000
Total38745
Accuracy
99.3%
Counts
45 → 7
Alt Table
Click to see full alt table
StatusAccuracyProgram
9.4%
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
97.3%
(/.f64 (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 2 x)) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
97.8%
(/.f64 (+.f64 (*.f64 1/2520 (pow.f64 x 7)) (+.f64 (*.f64 1/60 (pow.f64 x 5)) (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 2 x)))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
97.5%
(+.f64 x (+.f64 (*.f64 -1/3 (pow.f64 x 3)) (+.f64 (*.f64 -17/315 (pow.f64 x 7)) (*.f64 2/15 (pow.f64 x 5)))))
97.5%
(+.f64 x (+.f64 (*.f64 -1/3 (pow.f64 x 3)) (*.f64 2/15 (pow.f64 x 5))))
97.1%
(+.f64 x (*.f64 (pow.f64 x 3) -1/3))
97.0%
x
9.4%
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
97.3%
(/.f64 (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 2 x)) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
97.8%
(/.f64 (+.f64 (*.f64 1/2520 (pow.f64 x 7)) (+.f64 (*.f64 1/60 (pow.f64 x 5)) (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 2 x)))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
97.5%
(+.f64 x (+.f64 (*.f64 -1/3 (pow.f64 x 3)) (+.f64 (*.f64 -17/315 (pow.f64 x 7)) (*.f64 2/15 (pow.f64 x 5)))))
97.5%
(+.f64 x (+.f64 (*.f64 -1/3 (pow.f64 x 3)) (*.f64 2/15 (pow.f64 x 5))))
97.1%
(+.f64 x (*.f64 (pow.f64 x 3) -1/3))
97.0%
x
Compiler

Compiled 384 to 292 computations (24% saved)

localize340.0ms (8.4%)

Localize:

Found 17 expressions with local error:

NewAccuracyProgram
100.0%
(+.f64 (*.f64 -17/315 (pow.f64 x 7)) (*.f64 2/15 (pow.f64 x 5)))
99.9%
(*.f64 -17/315 (pow.f64 x 7))
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)) (*.f64 2 x))
100.0%
(/.f64 (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 2 x)) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
99.8%
(*.f64 1/3 (pow.f64 x 3))
100.0%
(+.f64 x (+.f64 (*.f64 -1/3 (pow.f64 x 3)) (*.f64 2/15 (pow.f64 x 5))))
100.0%
(+.f64 (*.f64 -1/3 (pow.f64 x 3)) (*.f64 2/15 (pow.f64 x 5)))
99.9%
(*.f64 2/15 (pow.f64 x 5))
99.8%
(*.f64 -1/3 (pow.f64 x 3))
100.0%
(+.f64 x (*.f64 (pow.f64 x 3) -1/3))
99.8%
(*.f64 (pow.f64 x 3) -1/3)
100.0%
(+.f64 (*.f64 1/60 (pow.f64 x 5)) (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 2 x)))
99.9%
(*.f64 1/2520 (pow.f64 x 7))
99.9%
(*.f64 1/60 (pow.f64 x 5))
99.8%
(*.f64 1/3 (pow.f64 x 3))
Compiler

Compiled 317 to 223 computations (29.7% saved)

series15.0ms (0.4%)

Counts
17 → 57
Calls

51 calls:

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

rewrite48.0ms (1.2%)

Algorithm
batch-egg-rewrite
Rules
430×associate-*r*
274×prod-diff
274×associate-*l*
257×log1p-expm1-u
257×expm1-log1p-u
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
038272
1580272
Stop Event
node limit
Counts
17 → 663
Calls
Call 1
Inputs
(*.f64 1/3 (pow.f64 x 3))
(*.f64 1/60 (pow.f64 x 5))
(*.f64 1/2520 (pow.f64 x 7))
(+.f64 (*.f64 1/60 (pow.f64 x 5)) (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 2 x)))
(*.f64 (pow.f64 x 3) -1/3)
(+.f64 x (*.f64 (pow.f64 x 3) -1/3))
(*.f64 -1/3 (pow.f64 x 3))
(*.f64 2/15 (pow.f64 x 5))
(+.f64 (*.f64 -1/3 (pow.f64 x 3)) (*.f64 2/15 (pow.f64 x 5)))
(+.f64 x (+.f64 (*.f64 -1/3 (pow.f64 x 3)) (*.f64 2/15 (pow.f64 x 5))))
(*.f64 1/3 (pow.f64 x 3))
(/.f64 (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 2 x)) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
(+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 2 x))
(*.f64 -1/3 (pow.f64 x 3))
(*.f64 2/15 (pow.f64 x 5))
(*.f64 -17/315 (pow.f64 x 7))
(+.f64 (*.f64 -17/315 (pow.f64 x 7)) (*.f64 2/15 (pow.f64 x 5)))
Outputs
-4
-2
-1
-1/2
-1/3
-2/15
-17/315
-1/27
-4913/31255875
0
1/6350400
1/216000
1/3600
1/2520
8/3375
289/99225
1/60
4/225
1/27
1/9
2/15
1/3
1/2
3/4
1
5/4
3/2
7/4
2
5/2
3
7/2
4
5
6
7
8
10
14
-4
-2
-1
-1/2
-1/3
-2/15
-17/315
-1/27
-4913/31255875
0
1/6350400
1/216000
1/3600
1/2520
8/3375
289/99225
1/60
4/225
1/27
1/9
2/15
1/3
1/2
3/4
1
5/4
3/2
7/4
2
5/2
3
7/2
4
5
6
7
8
10
14
-4
-2
-1
-1/2
-1/3
-2/15
-17/315
-1/27
-4913/31255875
0
1/6350400
1/216000
1/3600
1/2520
8/3375
289/99225
1/60
4/225
1/27
1/9
2/15
1/3
1/2
3/4
1
5/4
3/2
7/4
2
5/2
3
7/2
4
5
6
7
8
10
14
-4
-2
-1
-1/2
-1/3
-2/15
-17/315
-1/27
-4913/31255875
0
1/6350400
1/216000
1/3600
1/2520
8/3375
289/99225
1/60
4/225
1/27
1/9
2/15
1/3
1/2
3/4
1
5/4
3/2
7/4
2
5/2
3
7/2
4
5
6
7
8
10
14
-4
-2
-1
-1/2
-1/3
-2/15
-17/315
-1/27
-4913/31255875
0
1/6350400
1/216000
1/3600
1/2520
8/3375
289/99225
1/60
4/225
1/27
1/9
2/15
1/3
1/2
3/4
1
5/4
3/2
7/4
2
5/2
3
7/2
4
5
6
7
8
10
14
-4
-2
-1
-1/2
-1/3
-2/15
-17/315
-1/27
-4913/31255875
0
1/6350400
1/216000
1/3600
1/2520
8/3375
289/99225
1/60
4/225
1/27
1/9
2/15
1/3
1/2
3/4
1
5/4
3/2
7/4
2
5/2
3
7/2
4
5
6
7
8
10
14
-4
-2
-1
-1/2
-1/3
-2/15
-17/315
-1/27
-4913/31255875
0
1/6350400
1/216000
1/3600
1/2520
8/3375
289/99225
1/60
4/225
1/27
1/9
2/15
1/3
1/2
3/4
1
5/4
3/2
7/4
2
5/2
3
7/2
4
5
6
7
8
10
14
-4
-2
-1
-1/2
-1/3
-2/15
-17/315
-1/27
-4913/31255875
0
1/6350400
1/216000
1/3600
1/2520
8/3375
289/99225
1/60
4/225
1/27
1/9
2/15
1/3
1/2
3/4
1
5/4
3/2
7/4
2
5/2
3
7/2
4
5
6
7
8
10
14
-4
-2
-1
-1/2
-1/3
-2/15
-17/315
-1/27
-4913/31255875
0
1/6350400
1/216000
1/3600
1/2520
8/3375
289/99225
1/60
4/225
1/27
1/9
2/15
1/3
1/2
3/4
1
5/4
3/2
7/4
2
5/2
3
7/2
4
5
6
7
8
10
14
-4
-2
-1
-1/2
-1/3
-2/15
-17/315
-1/27
-4913/31255875
0
1/6350400
1/216000
1/3600
1/2520
8/3375
289/99225
1/60
4/225
1/27
1/9
2/15
1/3
1/2
3/4
1
5/4
3/2
7/4
2
5/2
3
7/2
4
5
6
7
8
10
14
-4
-2
-1
-1/2
-1/3
-2/15
-17/315
-1/27
-4913/31255875
0
1/6350400
1/216000
1/3600
1/2520
8/3375
289/99225
1/60
4/225
1/27
1/9
2/15
1/3
1/2
3/4
1
5/4
3/2
7/4
2
5/2
3
7/2
4
5
6
7
8
10
14
-4
-2
-1
-1/2
-1/3
-2/15
-17/315
-1/27
-4913/31255875
0
1/6350400
1/216000
1/3600
1/2520
8/3375
289/99225
1/60
4/225
1/27
1/9
2/15
1/3
1/2
3/4
1
5/4
3/2
7/4
2
5/2
3
7/2
4
5
6
7
8
10
14
-4
-2
-1
-1/2
-1/3
-2/15
-17/315
-1/27
-4913/31255875
0
1/6350400
1/216000
1/3600
1/2520
8/3375
289/99225
1/60
4/225
1/27
1/9
2/15
1/3
1/2
3/4
1
5/4
3/2
7/4
2
5/2
3
7/2
4
5
6
7
8
10
14
-4
-2
-1
-1/2
-1/3
-2/15
-17/315
-1/27
-4913/31255875
0
1/6350400
1/216000
1/3600
1/2520
8/3375
289/99225
1/60
4/225
1/27
1/9
2/15
1/3
1/2
3/4
1
5/4
3/2
7/4
2
5/2
3
7/2
4
5
6
7
8
10
14
-4
-2
-1
-1/2
-1/3
-2/15
-17/315
-1/27
-4913/31255875
0
1/6350400
1/216000
1/3600
1/2520
8/3375
289/99225
1/60
4/225
1/27
1/9
2/15
1/3
1/2
3/4
1
5/4
3/2
7/4
2
5/2
3
7/2
4
5
6
7
8
10
14
-4
-2
-1
-1/2
-1/3
-2/15
-17/315
-1/27
-4913/31255875
0
1/6350400
1/216000
1/3600
1/2520
8/3375
289/99225
1/60
4/225
1/27
1/9
2/15
1/3
1/2
3/4
1
5/4
3/2
7/4
2
5/2
3
7/2
4
5
6
7
8
10
14
-4
-2
-1
-1/2
-1/3
-2/15
-17/315
-1/27
-4913/31255875
0
1/6350400
1/216000
1/3600
1/2520
8/3375
289/99225
1/60
4/225
1/27
1/9
2/15
1/3
1/2
3/4
1
5/4
3/2
7/4
2
5/2
3
7/2
4
5
6
7
8
10
14

simplify132.0ms (3.3%)

Algorithm
egg-herbie
Rules
2516×fma-def
1320×associate-*r*
880×times-frac
822×associate-*l/
798×associate-*l*
Iterations

Useful iterations: 5 (0.0ms)

IterNodesCost
0842260
11472216
22672212
35952208
411832046
529612028
646872028
768722028
Stop Event
node limit
Counts
720 → 81
Calls
Call 1
Inputs
(*.f64 2 x)
(+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 2 x))
(*.f64 1/60 (pow.f64 x 5))
(+.f64 (*.f64 1/60 (pow.f64 x 5)) (*.f64 1/3 (pow.f64 x 3)))
(*.f64 1/60 (pow.f64 x 5))
(+.f64 (*.f64 1/60 (pow.f64 x 5)) (*.f64 1/3 (pow.f64 x 3)))
(*.f64 -1/3 (pow.f64 x 3))
(*.f64 -1/3 (pow.f64 x 3))
(*.f64 -1/3 (pow.f64 x 3))
(*.f64 -1/3 (pow.f64 x 3))
(*.f64 -1/3 (pow.f64 x 3))
(*.f64 -1/3 (pow.f64 x 3))
(*.f64 -1/3 (pow.f64 x 3))
(*.f64 -1/3 (pow.f64 x 3))
(*.f64 -1/3 (pow.f64 x 3))
(*.f64 -1/3 (pow.f64 x 3))
(*.f64 -1/3 (pow.f64 x 3))
(*.f64 -1/3 (pow.f64 x 3))
x
(+.f64 x (*.f64 -1/3 (pow.f64 x 3)))
(+.f64 x (*.f64 -1/3 (pow.f64 x 3)))
(+.f64 x (*.f64 -1/3 (pow.f64 x 3)))
(*.f64 -1/3 (pow.f64 x 3))
(+.f64 x (*.f64 -1/3 (pow.f64 x 3)))
(+.f64 x (*.f64 -1/3 (pow.f64 x 3)))
(+.f64 x (*.f64 -1/3 (pow.f64 x 3)))
(*.f64 -1/3 (pow.f64 x 3))
(+.f64 x (*.f64 -1/3 (pow.f64 x 3)))
(+.f64 x (*.f64 -1/3 (pow.f64 x 3)))
(+.f64 x (*.f64 -1/3 (pow.f64 x 3)))
(*.f64 -1/3 (pow.f64 x 3))
(*.f64 2/15 (pow.f64 x 5))
(*.f64 2/15 (pow.f64 x 5))
x
(+.f64 x (*.f64 -1/3 (pow.f64 x 3)))
(*.f64 2/15 (pow.f64 x 5))
(+.f64 (*.f64 -1/3 (pow.f64 x 3)) (*.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)))
x
(+.f64 x (*.f64 -1/3 (pow.f64 x 3)))
(+.f64 x (+.f64 (*.f64 -1/3 (pow.f64 x 3)) (*.f64 1/8 (pow.f64 x 5))))
(+.f64 x (+.f64 (*.f64 -1/3 (pow.f64 x 3)) (+.f64 (*.f64 -1/20 (pow.f64 x 7)) (*.f64 1/8 (pow.f64 x 5)))))
(*.f64 1/3 (/.f64 (pow.f64 x 3) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))))
(+.f64 (*.f64 1/3 (/.f64 (pow.f64 x 3) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))) (*.f64 2 (/.f64 x (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))))
(+.f64 (*.f64 1/3 (/.f64 (pow.f64 x 3) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))) (*.f64 2 (/.f64 x (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))))
(+.f64 (*.f64 1/3 (/.f64 (pow.f64 x 3) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))) (*.f64 2 (/.f64 x (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))))
(*.f64 1/3 (/.f64 (pow.f64 x 3) (+.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 2 (/.f64 x (+.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 2 (/.f64 x (+.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 2 (/.f64 x (+.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x))))))
(*.f64 2 x)
(*.f64 1/3 (pow.f64 x 3))
(*.f64 1/3 (pow.f64 x 3))
(*.f64 2/15 (pow.f64 x 5))
(*.f64 -17/315 (pow.f64 x 7))
(*.f64 -17/315 (pow.f64 x 7))
-4
-2
-1
-1/2
-1/3
-2/15
-17/315
-1/27
-4913/31255875
0
1/6350400
1/216000
1/3600
1/2520
8/3375
289/99225
1/60
4/225
1/27
1/9
2/15
1/3
1/2
3/4
1
5/4
3/2
7/4
2
5/2
3
7/2
4
5
6
7
8
10
14
-4
-2
-1
-1/2
-1/3
-2/15
-17/315
-1/27
-4913/31255875
0
1/6350400
1/216000
1/3600
1/2520
8/3375
289/99225
1/60
4/225
1/27
1/9
2/15
1/3
1/2
3/4
1
5/4
3/2
7/4
2
5/2
3
7/2
4
5
6
7
8
10
14
-4
-2
-1
-1/2
-1/3
-2/15
-17/315
-1/27
-4913/31255875
0
1/6350400
1/216000
1/3600
1/2520
8/3375
289/99225
1/60
4/225
1/27
1/9
2/15
1/3
1/2
3/4
1
5/4
3/2
7/4
2
5/2
3
7/2
4
5
6
7
8
10
14
-4
-2
-1
-1/2
-1/3
-2/15
-17/315
-1/27
-4913/31255875
0
1/6350400
1/216000
1/3600
1/2520
8/3375
289/99225
1/60
4/225
1/27
1/9
2/15
1/3
1/2
3/4
1
5/4
3/2
7/4
2
5/2
3
7/2
4
5
6
7
8
10
14
-4
-2
-1
-1/2
-1/3
-2/15
-17/315
-1/27
-4913/31255875
0
1/6350400
1/216000
1/3600
1/2520
8/3375
289/99225
1/60
4/225
1/27
1/9
2/15
1/3
1/2
3/4
1
5/4
3/2
7/4
2
5/2
3
7/2
4
5
6
7
8
10
14
-4
-2
-1
-1/2
-1/3
-2/15
-17/315
-1/27
-4913/31255875
0
1/6350400
1/216000
1/3600
1/2520
8/3375
289/99225
1/60
4/225
1/27
1/9
2/15
1/3
1/2
3/4
1
5/4
3/2
7/4
2
5/2
3
7/2
4
5
6
7
8
10
14
-4
-2
-1
-1/2
-1/3
-2/15
-17/315
-1/27
-4913/31255875
0
1/6350400
1/216000
1/3600
1/2520
8/3375
289/99225
1/60
4/225
1/27
1/9
2/15
1/3
1/2
3/4
1
5/4
3/2
7/4
2
5/2
3
7/2
4
5
6
7
8
10
14
-4
-2
-1
-1/2
-1/3
-2/15
-17/315
-1/27
-4913/31255875
0
1/6350400
1/216000
1/3600
1/2520
8/3375
289/99225
1/60
4/225
1/27
1/9
2/15
1/3
1/2
3/4
1
5/4
3/2
7/4
2
5/2
3
7/2
4
5
6
7
8
10
14
-4
-2
-1
-1/2
-1/3
-2/15
-17/315
-1/27
-4913/31255875
0
1/6350400
1/216000
1/3600
1/2520
8/3375
289/99225
1/60
4/225
1/27
1/9
2/15
1/3
1/2
3/4
1
5/4
3/2
7/4
2
5/2
3
7/2
4
5
6
7
8
10
14
-4
-2
-1
-1/2
-1/3
-2/15
-17/315
-1/27
-4913/31255875
0
1/6350400
1/216000
1/3600
1/2520
8/3375
289/99225
1/60
4/225
1/27
1/9
2/15
1/3
1/2
3/4
1
5/4
3/2
7/4
2
5/2
3
7/2
4
5
6
7
8
10
14
-4
-2
-1
-1/2
-1/3
-2/15
-17/315
-1/27
-4913/31255875
0
1/6350400
1/216000
1/3600
1/2520
8/3375
289/99225
1/60
4/225
1/27
1/9
2/15
1/3
1/2
3/4
1
5/4
3/2
7/4
2
5/2
3
7/2
4
5
6
7
8
10
14
-4
-2
-1
-1/2
-1/3
-2/15
-17/315
-1/27
-4913/31255875
0
1/6350400
1/216000
1/3600
1/2520
8/3375
289/99225
1/60
4/225
1/27
1/9
2/15
1/3
1/2
3/4
1
5/4
3/2
7/4
2
5/2
3
7/2
4
5
6
7
8
10
14
-4
-2
-1
-1/2
-1/3
-2/15
-17/315
-1/27
-4913/31255875
0
1/6350400
1/216000
1/3600
1/2520
8/3375
289/99225
1/60
4/225
1/27
1/9
2/15
1/3
1/2
3/4
1
5/4
3/2
7/4
2
5/2
3
7/2
4
5
6
7
8
10
14
-4
-2
-1
-1/2
-1/3
-2/15
-17/315
-1/27
-4913/31255875
0
1/6350400
1/216000
1/3600
1/2520
8/3375
289/99225
1/60
4/225
1/27
1/9
2/15
1/3
1/2
3/4
1
5/4
3/2
7/4
2
5/2
3
7/2
4
5
6
7
8
10
14
-4
-2
-1
-1/2
-1/3
-2/15
-17/315
-1/27
-4913/31255875
0
1/6350400
1/216000
1/3600
1/2520
8/3375
289/99225
1/60
4/225
1/27
1/9
2/15
1/3
1/2
3/4
1
5/4
3/2
7/4
2
5/2
3
7/2
4
5
6
7
8
10
14
-4
-2
-1
-1/2
-1/3
-2/15
-17/315
-1/27
-4913/31255875
0
1/6350400
1/216000
1/3600
1/2520
8/3375
289/99225
1/60
4/225
1/27
1/9
2/15
1/3
1/2
3/4
1
5/4
3/2
7/4
2
5/2
3
7/2
4
5
6
7
8
10
14
-4
-2
-1
-1/2
-1/3
-2/15
-17/315
-1/27
-4913/31255875
0
1/6350400
1/216000
1/3600
1/2520
8/3375
289/99225
1/60
4/225
1/27
1/9
2/15
1/3
1/2
3/4
1
5/4
3/2
7/4
2
5/2
3
7/2
4
5
6
7
8
10
14
Outputs
(*.f64 2 x)
(+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 2 x))
(fma.f64 1/3 (pow.f64 x 3) (*.f64 2 x))
(fma.f64 2 x (*.f64 1/3 (pow.f64 x 3)))
(*.f64 1/60 (pow.f64 x 5))
(+.f64 (*.f64 1/60 (pow.f64 x 5)) (*.f64 1/3 (pow.f64 x 3)))
(fma.f64 1/60 (pow.f64 x 5) (*.f64 1/3 (pow.f64 x 3)))
(fma.f64 1/3 (pow.f64 x 3) (*.f64 1/60 (pow.f64 x 5)))
(*.f64 1/60 (pow.f64 x 5))
(+.f64 (*.f64 1/60 (pow.f64 x 5)) (*.f64 1/3 (pow.f64 x 3)))
(fma.f64 1/60 (pow.f64 x 5) (*.f64 1/3 (pow.f64 x 3)))
(fma.f64 1/3 (pow.f64 x 3) (*.f64 1/60 (pow.f64 x 5)))
(*.f64 -1/3 (pow.f64 x 3))
(*.f64 (pow.f64 x 3) -1/3)
(*.f64 -1/3 (pow.f64 x 3))
(*.f64 (pow.f64 x 3) -1/3)
(*.f64 -1/3 (pow.f64 x 3))
(*.f64 (pow.f64 x 3) -1/3)
(*.f64 -1/3 (pow.f64 x 3))
(*.f64 (pow.f64 x 3) -1/3)
(*.f64 -1/3 (pow.f64 x 3))
(*.f64 (pow.f64 x 3) -1/3)
(*.f64 -1/3 (pow.f64 x 3))
(*.f64 (pow.f64 x 3) -1/3)
(*.f64 -1/3 (pow.f64 x 3))
(*.f64 (pow.f64 x 3) -1/3)
(*.f64 -1/3 (pow.f64 x 3))
(*.f64 (pow.f64 x 3) -1/3)
(*.f64 -1/3 (pow.f64 x 3))
(*.f64 (pow.f64 x 3) -1/3)
(*.f64 -1/3 (pow.f64 x 3))
(*.f64 (pow.f64 x 3) -1/3)
(*.f64 -1/3 (pow.f64 x 3))
(*.f64 (pow.f64 x 3) -1/3)
(*.f64 -1/3 (pow.f64 x 3))
(*.f64 (pow.f64 x 3) -1/3)
x
(+.f64 x (*.f64 -1/3 (pow.f64 x 3)))
(+.f64 x (*.f64 (pow.f64 x 3) -1/3))
(fma.f64 (pow.f64 x 3) -1/3 x)
(+.f64 x (*.f64 -1/3 (pow.f64 x 3)))
(+.f64 x (*.f64 (pow.f64 x 3) -1/3))
(fma.f64 (pow.f64 x 3) -1/3 x)
(+.f64 x (*.f64 -1/3 (pow.f64 x 3)))
(+.f64 x (*.f64 (pow.f64 x 3) -1/3))
(fma.f64 (pow.f64 x 3) -1/3 x)
(*.f64 -1/3 (pow.f64 x 3))
(*.f64 (pow.f64 x 3) -1/3)
(+.f64 x (*.f64 -1/3 (pow.f64 x 3)))
(+.f64 x (*.f64 (pow.f64 x 3) -1/3))
(fma.f64 (pow.f64 x 3) -1/3 x)
(+.f64 x (*.f64 -1/3 (pow.f64 x 3)))
(+.f64 x (*.f64 (pow.f64 x 3) -1/3))
(fma.f64 (pow.f64 x 3) -1/3 x)
(+.f64 x (*.f64 -1/3 (pow.f64 x 3)))
(+.f64 x (*.f64 (pow.f64 x 3) -1/3))
(fma.f64 (pow.f64 x 3) -1/3 x)
(*.f64 -1/3 (pow.f64 x 3))
(*.f64 (pow.f64 x 3) -1/3)
(+.f64 x (*.f64 -1/3 (pow.f64 x 3)))
(+.f64 x (*.f64 (pow.f64 x 3) -1/3))
(fma.f64 (pow.f64 x 3) -1/3 x)
(+.f64 x (*.f64 -1/3 (pow.f64 x 3)))
(+.f64 x (*.f64 (pow.f64 x 3) -1/3))
(fma.f64 (pow.f64 x 3) -1/3 x)
(+.f64 x (*.f64 -1/3 (pow.f64 x 3)))
(+.f64 x (*.f64 (pow.f64 x 3) -1/3))
(fma.f64 (pow.f64 x 3) -1/3 x)
(*.f64 -1/3 (pow.f64 x 3))
(*.f64 (pow.f64 x 3) -1/3)
(*.f64 2/15 (pow.f64 x 5))
(*.f64 (pow.f64 x 5) 2/15)
(*.f64 2/15 (pow.f64 x 5))
(*.f64 (pow.f64 x 5) 2/15)
x
(+.f64 x (*.f64 -1/3 (pow.f64 x 3)))
(+.f64 x (*.f64 (pow.f64 x 3) -1/3))
(fma.f64 (pow.f64 x 3) -1/3 x)
(*.f64 2/15 (pow.f64 x 5))
(*.f64 (pow.f64 x 5) 2/15)
(+.f64 (*.f64 -1/3 (pow.f64 x 3)) (*.f64 2/15 (pow.f64 x 5)))
(fma.f64 -1/3 (pow.f64 x 3) (*.f64 (pow.f64 x 5) 2/15))
(fma.f64 (pow.f64 x 3) -1/3 (*.f64 (pow.f64 x 5) 2/15))
(*.f64 2/15 (pow.f64 x 5))
(*.f64 (pow.f64 x 5) 2/15)
(+.f64 (*.f64 -1/3 (pow.f64 x 3)) (*.f64 2/15 (pow.f64 x 5)))
(fma.f64 -1/3 (pow.f64 x 3) (*.f64 (pow.f64 x 5) 2/15))
(fma.f64 (pow.f64 x 3) -1/3 (*.f64 (pow.f64 x 5) 2/15))
x
(+.f64 x (*.f64 -1/3 (pow.f64 x 3)))
(+.f64 x (*.f64 (pow.f64 x 3) -1/3))
(fma.f64 (pow.f64 x 3) -1/3 x)
(+.f64 x (+.f64 (*.f64 -1/3 (pow.f64 x 3)) (*.f64 1/8 (pow.f64 x 5))))
(+.f64 x (fma.f64 -1/3 (pow.f64 x 3) (*.f64 (pow.f64 x 5) 1/8)))
(+.f64 x (fma.f64 (pow.f64 x 5) 1/8 (*.f64 (pow.f64 x 3) -1/3)))
(fma.f64 (pow.f64 x 3) -1/3 (fma.f64 (pow.f64 x 5) 1/8 x))
(+.f64 x (+.f64 (*.f64 -1/3 (pow.f64 x 3)) (+.f64 (*.f64 -1/20 (pow.f64 x 7)) (*.f64 1/8 (pow.f64 x 5)))))
(+.f64 x (fma.f64 -1/3 (pow.f64 x 3) (fma.f64 -1/20 (pow.f64 x 7) (*.f64 (pow.f64 x 5) 1/8))))
(+.f64 (fma.f64 (pow.f64 x 3) -1/3 x) (fma.f64 -1/20 (pow.f64 x 7) (*.f64 (pow.f64 x 5) 1/8)))
(fma.f64 -1/20 (pow.f64 x 7) (fma.f64 (pow.f64 x 3) -1/3 (fma.f64 (pow.f64 x 5) 1/8 x)))
(fma.f64 (pow.f64 x 3) -1/3 (fma.f64 (pow.f64 x 5) 1/8 (fma.f64 -1/20 (pow.f64 x 7) x)))
(*.f64 1/3 (/.f64 (pow.f64 x 3) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))))
(/.f64 (*.f64 1/3 (pow.f64 x 3)) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
(*.f64 (pow.f64 x 3) (/.f64 1/3 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))))
(+.f64 (*.f64 1/3 (/.f64 (pow.f64 x 3) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))) (*.f64 2 (/.f64 x (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))))
(fma.f64 1/3 (/.f64 (pow.f64 x 3) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) (*.f64 2 (/.f64 x (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))))
(fma.f64 2 (/.f64 x (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) (/.f64 (*.f64 1/3 (pow.f64 x 3)) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))))
(fma.f64 1/3 (/.f64 (pow.f64 x 3) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) (/.f64 (*.f64 2 x) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))))
(*.f64 (/.f64 x (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) (fma.f64 x (*.f64 x 1/3) 2))
(/.f64 (fma.f64 2 x (*.f64 1/3 (pow.f64 x 3))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
(+.f64 (*.f64 1/3 (/.f64 (pow.f64 x 3) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))) (*.f64 2 (/.f64 x (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))))
(fma.f64 1/3 (/.f64 (pow.f64 x 3) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) (*.f64 2 (/.f64 x (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))))
(fma.f64 2 (/.f64 x (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) (/.f64 (*.f64 1/3 (pow.f64 x 3)) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))))
(fma.f64 1/3 (/.f64 (pow.f64 x 3) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) (/.f64 (*.f64 2 x) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))))
(*.f64 (/.f64 x (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) (fma.f64 x (*.f64 x 1/3) 2))
(/.f64 (fma.f64 2 x (*.f64 1/3 (pow.f64 x 3))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
(+.f64 (*.f64 1/3 (/.f64 (pow.f64 x 3) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))) (*.f64 2 (/.f64 x (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))))
(fma.f64 1/3 (/.f64 (pow.f64 x 3) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) (*.f64 2 (/.f64 x (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))))
(fma.f64 2 (/.f64 x (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) (/.f64 (*.f64 1/3 (pow.f64 x 3)) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))))
(fma.f64 1/3 (/.f64 (pow.f64 x 3) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) (/.f64 (*.f64 2 x) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))))
(*.f64 (/.f64 x (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) (fma.f64 x (*.f64 x 1/3) 2))
(/.f64 (fma.f64 2 x (*.f64 1/3 (pow.f64 x 3))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
(*.f64 1/3 (/.f64 (pow.f64 x 3) (+.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x)))))
(*.f64 1/3 (/.f64 (pow.f64 x 3) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))))
(/.f64 (*.f64 1/3 (pow.f64 x 3)) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
(*.f64 (pow.f64 x 3) (/.f64 1/3 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))))
(+.f64 (*.f64 1/3 (/.f64 (pow.f64 x 3) (+.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x))))) (*.f64 2 (/.f64 x (+.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x))))))
(fma.f64 1/3 (/.f64 (pow.f64 x 3) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) (*.f64 2 (/.f64 x (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))))
(fma.f64 2 (/.f64 x (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) (/.f64 (*.f64 1/3 (pow.f64 x 3)) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))))
(fma.f64 1/3 (/.f64 (pow.f64 x 3) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) (/.f64 (*.f64 2 x) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))))
(*.f64 (/.f64 x (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) (fma.f64 x (*.f64 x 1/3) 2))
(/.f64 (fma.f64 2 x (*.f64 1/3 (pow.f64 x 3))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
(+.f64 (*.f64 1/3 (/.f64 (pow.f64 x 3) (+.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x))))) (*.f64 2 (/.f64 x (+.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x))))))
(fma.f64 1/3 (/.f64 (pow.f64 x 3) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) (*.f64 2 (/.f64 x (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))))
(fma.f64 2 (/.f64 x (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) (/.f64 (*.f64 1/3 (pow.f64 x 3)) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))))
(fma.f64 1/3 (/.f64 (pow.f64 x 3) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) (/.f64 (*.f64 2 x) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))))
(*.f64 (/.f64 x (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) (fma.f64 x (*.f64 x 1/3) 2))
(/.f64 (fma.f64 2 x (*.f64 1/3 (pow.f64 x 3))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
(+.f64 (*.f64 1/3 (/.f64 (pow.f64 x 3) (+.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x))))) (*.f64 2 (/.f64 x (+.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x))))))
(fma.f64 1/3 (/.f64 (pow.f64 x 3) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) (*.f64 2 (/.f64 x (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))))
(fma.f64 2 (/.f64 x (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) (/.f64 (*.f64 1/3 (pow.f64 x 3)) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))))
(fma.f64 1/3 (/.f64 (pow.f64 x 3) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) (/.f64 (*.f64 2 x) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))))
(*.f64 (/.f64 x (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) (fma.f64 x (*.f64 x 1/3) 2))
(/.f64 (fma.f64 2 x (*.f64 1/3 (pow.f64 x 3))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
(*.f64 2 x)
(*.f64 1/3 (pow.f64 x 3))
(*.f64 1/3 (pow.f64 x 3))
(*.f64 2/15 (pow.f64 x 5))
(*.f64 (pow.f64 x 5) 2/15)
(*.f64 -17/315 (pow.f64 x 7))
(*.f64 (pow.f64 x 7) -17/315)
(*.f64 -17/315 (pow.f64 x 7))
(*.f64 (pow.f64 x 7) -17/315)
-4
-2
-1
-1/2
-1/3
-2/15
-17/315
-1/27
-4913/31255875
0
1/6350400
1/216000
1/3600
1/2520
8/3375
289/99225
1/60
4/225
1/27
1/9
2/15
1/3
1/2
3/4
1
5/4
3/2
7/4
2
5/2
3
7/2
4
5
6
7
8
10
14
-4
-2
-1
-1/2
-1/3
-2/15
-17/315
-1/27
-4913/31255875
0
1/6350400
1/216000
1/3600
1/2520
8/3375
289/99225
1/60
4/225
1/27
1/9
2/15
1/3
1/2
3/4
1
5/4
3/2
7/4
2
5/2
3
7/2
4
5
6
7
8
10
14
-4
-2
-1
-1/2
-1/3
-2/15
-17/315
-1/27
-4913/31255875
0
1/6350400
1/216000
1/3600
1/2520
8/3375
289/99225
1/60
4/225
1/27
1/9
2/15
1/3
1/2
3/4
1
5/4
3/2
7/4
2
5/2
3
7/2
4
5
6
7
8
10
14
-4
-2
-1
-1/2
-1/3
-2/15
-17/315
-1/27
-4913/31255875
0
1/6350400
1/216000
1/3600
1/2520
8/3375
289/99225
1/60
4/225
1/27
1/9
2/15
1/3
1/2
3/4
1
5/4
3/2
7/4
2
5/2
3
7/2
4
5
6
7
8
10
14
-4
-2
-1
-1/2
-1/3
-2/15
-17/315
-1/27
-4913/31255875
0
1/6350400
1/216000
1/3600
1/2520
8/3375
289/99225
1/60
4/225
1/27
1/9
2/15
1/3
1/2
3/4
1
5/4
3/2
7/4
2
5/2
3
7/2
4
5
6
7
8
10
14
-4
-2
-1
-1/2
-1/3
-2/15
-17/315
-1/27
-4913/31255875
0
1/6350400
1/216000
1/3600
1/2520
8/3375
289/99225
1/60
4/225
1/27
1/9
2/15
1/3
1/2
3/4
1
5/4
3/2
7/4
2
5/2
3
7/2
4
5
6
7
8
10
14
-4
-2
-1
-1/2
-1/3
-2/15
-17/315
-1/27
-4913/31255875
0
1/6350400
1/216000
1/3600
1/2520
8/3375
289/99225
1/60
4/225
1/27
1/9
2/15
1/3
1/2
3/4
1
5/4
3/2
7/4
2
5/2
3
7/2
4
5
6
7
8
10
14
-4
-2
-1
-1/2
-1/3
-2/15
-17/315
-1/27
-4913/31255875
0
1/6350400
1/216000
1/3600
1/2520
8/3375
289/99225
1/60
4/225
1/27
1/9
2/15
1/3
1/2
3/4
1
5/4
3/2
7/4
2
5/2
3
7/2
4
5
6
7
8
10
14
-4
-2
-1
-1/2
-1/3
-2/15
-17/315
-1/27
-4913/31255875
0
1/6350400
1/216000
1/3600
1/2520
8/3375
289/99225
1/60
4/225
1/27
1/9
2/15
1/3
1/2
3/4
1
5/4
3/2
7/4
2
5/2
3
7/2
4
5
6
7
8
10
14
-4
-2
-1
-1/2
-1/3
-2/15
-17/315
-1/27
-4913/31255875
0
1/6350400
1/216000
1/3600
1/2520
8/3375
289/99225
1/60
4/225
1/27
1/9
2/15
1/3
1/2
3/4
1
5/4
3/2
7/4
2
5/2
3
7/2
4
5
6
7
8
10
14
-4
-2
-1
-1/2
-1/3
-2/15
-17/315
-1/27
-4913/31255875
0
1/6350400
1/216000
1/3600
1/2520
8/3375
289/99225
1/60
4/225
1/27
1/9
2/15
1/3
1/2
3/4
1
5/4
3/2
7/4
2
5/2
3
7/2
4
5
6
7
8
10
14
-4
-2
-1
-1/2
-1/3
-2/15
-17/315
-1/27
-4913/31255875
0
1/6350400
1/216000
1/3600
1/2520
8/3375
289/99225
1/60
4/225
1/27
1/9
2/15
1/3
1/2
3/4
1
5/4
3/2
7/4
2
5/2
3
7/2
4
5
6
7
8
10
14
-4
-2
-1
-1/2
-1/3
-2/15
-17/315
-1/27
-4913/31255875
0
1/6350400
1/216000
1/3600
1/2520
8/3375
289/99225
1/60
4/225
1/27
1/9
2/15
1/3
1/2
3/4
1
5/4
3/2
7/4
2
5/2
3
7/2
4
5
6
7
8
10
14
-4
-2
-1
-1/2
-1/3
-2/15
-17/315
-1/27
-4913/31255875
0
1/6350400
1/216000
1/3600
1/2520
8/3375
289/99225
1/60
4/225
1/27
1/9
2/15
1/3
1/2
3/4
1
5/4
3/2
7/4
2
5/2
3
7/2
4
5
6
7
8
10
14
-4
-2
-1
-1/2
-1/3
-2/15
-17/315
-1/27
-4913/31255875
0
1/6350400
1/216000
1/3600
1/2520
8/3375
289/99225
1/60
4/225
1/27
1/9
2/15
1/3
1/2
3/4
1
5/4
3/2
7/4
2
5/2
3
7/2
4
5
6
7
8
10
14
-4
-2
-1
-1/2
-1/3
-2/15
-17/315
-1/27
-4913/31255875
0
1/6350400
1/216000
1/3600
1/2520
8/3375
289/99225
1/60
4/225
1/27
1/9
2/15
1/3
1/2
3/4
1
5/4
3/2
7/4
2
5/2
3
7/2
4
5
6
7
8
10
14
-4
-2
-1
-1/2
-1/3
-2/15
-17/315
-1/27
-4913/31255875
0
1/6350400
1/216000
1/3600
1/2520
8/3375
289/99225
1/60
4/225
1/27
1/9
2/15
1/3
1/2
3/4
1
5/4
3/2
7/4
2
5/2
3
7/2
4
5
6
7
8
10
14

eval37.0ms (0.9%)

Compiler

Compiled 2041 to 1167 computations (42.8% saved)

prune25.0ms (0.6%)

Pruning

7 alts after pruning (2 fresh and 5 done)

PrunedKeptTotal
New1201121
Fresh011
Picked145
Done011
Total1217128
Accuracy
99.3%
Counts
128 → 7
Alt Table
Click to see full alt table
StatusAccuracyProgram
9.4%
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
97.8%
(/.f64 (+.f64 (*.f64 1/2520 (pow.f64 x 7)) (+.f64 (*.f64 1/60 (pow.f64 x 5)) (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 2 x)))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
5.3%
(/.f64 (+.f64 10 (*.f64 2 x)) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
97.5%
(+.f64 x (+.f64 (*.f64 -1/3 (pow.f64 x 3)) (+.f64 (*.f64 -17/315 (pow.f64 x 7)) (*.f64 2/15 (pow.f64 x 5)))))
97.5%
(+.f64 x (+.f64 (*.f64 -1/3 (pow.f64 x 3)) (*.f64 2/15 (pow.f64 x 5))))
97.1%
(+.f64 x (*.f64 (pow.f64 x 3) -1/3))
97.0%
x
9.4%
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
97.8%
(/.f64 (+.f64 (*.f64 1/2520 (pow.f64 x 7)) (+.f64 (*.f64 1/60 (pow.f64 x 5)) (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 2 x)))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
5.3%
(/.f64 (+.f64 10 (*.f64 2 x)) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
97.5%
(+.f64 x (+.f64 (*.f64 -1/3 (pow.f64 x 3)) (+.f64 (*.f64 -17/315 (pow.f64 x 7)) (*.f64 2/15 (pow.f64 x 5)))))
97.5%
(+.f64 x (+.f64 (*.f64 -1/3 (pow.f64 x 3)) (*.f64 2/15 (pow.f64 x 5))))
97.1%
(+.f64 x (*.f64 (pow.f64 x 3) -1/3))
97.0%
x
Compiler

Compiled 200 to 148 computations (26% saved)

localize40.0ms (1%)

Localize:

Found 1 expressions with local error:

NewAccuracyProgram
100.0%
(/.f64 (+.f64 10 (*.f64 2 x)) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
Compiler

Compiled 38 to 19 computations (50% saved)

series1.0ms (0%)

Counts
1 → 12
Calls

3 calls:

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

rewrite24.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
138×associate-*r*
89×log1p-expm1-u
89×expm1-log1p-u
88×add-exp-log
88×add-log-exp
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01535
119735
2357535
Stop Event
unsound
Counts
1 → 22
Calls
Call 1
Inputs
(/.f64 (+.f64 10 (*.f64 2 x)) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
Outputs
-50
-5
-4
-2
-1/2
-2/5
-1/5
0
1/500
1/50
1/5
2/5
1/2
3/2
2
4
5
8
20
50
200
2000

simplify62.0ms (1.5%)

Algorithm
egg-herbie
Rules
1108×unswap-sqr
980×associate-*r*
930×distribute-lft-in
906×fma-def
776×associate-*l*
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
060624
1107620
2174616
3399606
4919606
52807606
65234606
Stop Event
node limit
Counts
34 → 41
Calls
Call 1
Inputs
5
(+.f64 5 x)
(+.f64 5 (+.f64 x (*.f64 -5/2 (pow.f64 x 2))))
(+.f64 5 (+.f64 x (+.f64 (*.f64 -5/2 (pow.f64 x 2)) (*.f64 -1/2 (pow.f64 x 3)))))
(*.f64 2 (/.f64 x (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))))
(+.f64 (*.f64 2 (/.f64 x (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))) (*.f64 10 (/.f64 1 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))))
(+.f64 (*.f64 2 (/.f64 x (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))) (*.f64 10 (/.f64 1 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))))
(+.f64 (*.f64 2 (/.f64 x (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))) (*.f64 10 (/.f64 1 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))))
(*.f64 2 (/.f64 x (+.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x)))))
(+.f64 (*.f64 2 (/.f64 x (+.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x))))) (*.f64 10 (/.f64 1 (+.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x))))))
(+.f64 (*.f64 2 (/.f64 x (+.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x))))) (*.f64 10 (/.f64 1 (+.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x))))))
(+.f64 (*.f64 2 (/.f64 x (+.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x))))) (*.f64 10 (/.f64 1 (+.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x))))))
-50
-5
-4
-2
-1/2
-2/5
-1/5
0
1/500
1/50
1/5
2/5
1/2
3/2
2
4
5
8
20
50
200
2000
Outputs
5
(+.f64 5 x)
(+.f64 5 (+.f64 x (*.f64 -5/2 (pow.f64 x 2))))
(+.f64 5 (fma.f64 -5/2 (pow.f64 x 2) x))
(fma.f64 (fma.f64 x -5/2 1) x 5)
(fma.f64 x (fma.f64 x -5/2 1) 5)
(+.f64 5 (+.f64 x (+.f64 (*.f64 -5/2 (pow.f64 x 2)) (*.f64 -1/2 (pow.f64 x 3)))))
(+.f64 5 (+.f64 x (fma.f64 -5/2 (pow.f64 x 2) (*.f64 -1/2 (pow.f64 x 3)))))
(+.f64 (fma.f64 -5/2 (pow.f64 x 2) x) (fma.f64 -1/2 (pow.f64 x 3) 5))
(+.f64 5 (fma.f64 (pow.f64 x 2) (fma.f64 x -1/2 -5/2) x))
(+.f64 x (fma.f64 (pow.f64 x 2) (fma.f64 x -1/2 -5/2) 5))
(fma.f64 (pow.f64 x 2) (fma.f64 x -1/2 -5/2) (+.f64 5 x))
(*.f64 2 (/.f64 x (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))))
(/.f64 2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) x))
(/.f64 (*.f64 x 2) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
(+.f64 (*.f64 2 (/.f64 x (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))) (*.f64 10 (/.f64 1 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))))
(fma.f64 2 (/.f64 x (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) (/.f64 10 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))))
(fma.f64 x (/.f64 2 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) (/.f64 10 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))))
(+.f64 (*.f64 2 (/.f64 x (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))) (*.f64 10 (/.f64 1 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))))
(fma.f64 2 (/.f64 x (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) (/.f64 10 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))))
(fma.f64 x (/.f64 2 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) (/.f64 10 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))))
(+.f64 (*.f64 2 (/.f64 x (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))) (*.f64 10 (/.f64 1 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))))
(fma.f64 2 (/.f64 x (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) (/.f64 10 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))))
(fma.f64 x (/.f64 2 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) (/.f64 10 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))))
(*.f64 2 (/.f64 x (+.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x)))))
(*.f64 2 (/.f64 x (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))))
(/.f64 2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) x))
(/.f64 (*.f64 x 2) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
(+.f64 (*.f64 2 (/.f64 x (+.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x))))) (*.f64 10 (/.f64 1 (+.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x))))))
(fma.f64 2 (/.f64 x (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) (/.f64 10 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))))
(fma.f64 x (/.f64 2 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) (/.f64 10 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))))
(+.f64 (*.f64 2 (/.f64 x (+.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x))))) (*.f64 10 (/.f64 1 (+.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x))))))
(fma.f64 2 (/.f64 x (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) (/.f64 10 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))))
(fma.f64 x (/.f64 2 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) (/.f64 10 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))))
(+.f64 (*.f64 2 (/.f64 x (+.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x))))) (*.f64 10 (/.f64 1 (+.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x))))))
(fma.f64 2 (/.f64 x (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) (/.f64 10 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))))
(fma.f64 x (/.f64 2 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) (/.f64 10 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))))
-50
-5
-4
-2
-1/2
-2/5
-1/5
0
1/500
1/50
1/5
2/5
1/2
3/2
2
4
5
8
20
50
200
2000

eval7.0ms (0.2%)

Compiler

Compiled 253 to 157 computations (37.9% saved)

prune17.0ms (0.4%)

Pruning

8 alts after pruning (2 fresh and 6 done)

PrunedKeptTotal
New40141
Fresh011
Picked011
Done055
Total40848
Accuracy
99.4%
Counts
48 → 8
Alt Table
Click to see full alt table
StatusAccuracyProgram
9.4%
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
97.8%
(/.f64 (+.f64 (*.f64 1/2520 (pow.f64 x 7)) (+.f64 (*.f64 1/60 (pow.f64 x 5)) (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 2 x)))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
5.3%
(/.f64 (+.f64 10 (*.f64 2 x)) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
97.5%
(+.f64 x (+.f64 (*.f64 -1/3 (pow.f64 x 3)) (+.f64 (*.f64 -17/315 (pow.f64 x 7)) (*.f64 2/15 (pow.f64 x 5)))))
97.5%
(+.f64 x (+.f64 (*.f64 -1/3 (pow.f64 x 3)) (*.f64 2/15 (pow.f64 x 5))))
97.1%
(+.f64 x (*.f64 (pow.f64 x 3) -1/3))
97.0%
x
5.6%
3/2
9.4%
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
97.8%
(/.f64 (+.f64 (*.f64 1/2520 (pow.f64 x 7)) (+.f64 (*.f64 1/60 (pow.f64 x 5)) (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 2 x)))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
5.3%
(/.f64 (+.f64 10 (*.f64 2 x)) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
97.5%
(+.f64 x (+.f64 (*.f64 -1/3 (pow.f64 x 3)) (+.f64 (*.f64 -17/315 (pow.f64 x 7)) (*.f64 2/15 (pow.f64 x 5)))))
97.5%
(+.f64 x (+.f64 (*.f64 -1/3 (pow.f64 x 3)) (*.f64 2/15 (pow.f64 x 5))))
97.1%
(+.f64 x (*.f64 (pow.f64 x 3) -1/3))
97.0%
x
5.6%
3/2
Compiler

Compiled 204 to 152 computations (25.5% saved)

localize0.0ms (0%)

eval0.0ms (0%)

Compiler

Compiled 1 to 1 computations (0% saved)

prune6.0ms (0.2%)

Pruning

8 alts after pruning (2 fresh and 6 done)

PrunedKeptTotal
New000
Fresh022
Picked000
Done066
Total088
Accuracy
99.4%
Counts
8 → 8
Alt Table
Click to see full alt table
StatusAccuracyProgram
9.4%
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
97.8%
(/.f64 (+.f64 (*.f64 1/2520 (pow.f64 x 7)) (+.f64 (*.f64 1/60 (pow.f64 x 5)) (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 2 x)))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
5.3%
(/.f64 (+.f64 10 (*.f64 2 x)) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
97.5%
(+.f64 x (+.f64 (*.f64 -1/3 (pow.f64 x 3)) (+.f64 (*.f64 -17/315 (pow.f64 x 7)) (*.f64 2/15 (pow.f64 x 5)))))
97.5%
(+.f64 x (+.f64 (*.f64 -1/3 (pow.f64 x 3)) (*.f64 2/15 (pow.f64 x 5))))
97.1%
(+.f64 x (*.f64 (pow.f64 x 3) -1/3))
97.0%
x
5.6%
3/2
Compiler

Compiled 213 to 145 computations (31.9% saved)

regimes10.0ms (0.2%)

Counts
9 → 1
Calls
Call 1
Inputs
3/2
x
(+.f64 x (*.f64 (pow.f64 x 3) -1/3))
(/.f64 (+.f64 10 (*.f64 2 x)) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
(+.f64 x (+.f64 (*.f64 -1/3 (pow.f64 x 3)) (*.f64 2/15 (pow.f64 x 5))))
(/.f64 (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 2 x)) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
(+.f64 x (+.f64 (*.f64 -1/3 (pow.f64 x 3)) (+.f64 (*.f64 -17/315 (pow.f64 x 7)) (*.f64 2/15 (pow.f64 x 5)))))
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
(/.f64 (+.f64 (*.f64 1/2520 (pow.f64 x 7)) (+.f64 (*.f64 1/60 (pow.f64 x 5)) (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 2 x)))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
Outputs
(/.f64 (+.f64 (*.f64 1/2520 (pow.f64 x 7)) (+.f64 (*.f64 1/60 (pow.f64 x 5)) (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 2 x)))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
Calls

2 calls:

4.0ms
x
2.0ms
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
Results
AccuracySegmentsBranch
97.8%1x
97.8%1(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
Compiler

Compiled 127 to 77 computations (39.4% saved)

regimes16.0ms (0.4%)

Counts
8 → 2
Calls
Call 1
Inputs
3/2
x
(+.f64 x (*.f64 (pow.f64 x 3) -1/3))
(/.f64 (+.f64 10 (*.f64 2 x)) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
(+.f64 x (+.f64 (*.f64 -1/3 (pow.f64 x 3)) (*.f64 2/15 (pow.f64 x 5))))
(/.f64 (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 2 x)) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
(+.f64 x (+.f64 (*.f64 -1/3 (pow.f64 x 3)) (+.f64 (*.f64 -17/315 (pow.f64 x 7)) (*.f64 2/15 (pow.f64 x 5)))))
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
Outputs
(+.f64 x (+.f64 (*.f64 -1/3 (pow.f64 x 3)) (+.f64 (*.f64 -17/315 (pow.f64 x 7)) (*.f64 2/15 (pow.f64 x 5)))))
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
Calls

2 calls:

8.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
99.2%2x
99.2%2(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
Compiler

Compiled 99 to 59 computations (40.4% saved)

regimes6.0ms (0.1%)

Counts
7 → 1
Calls
Call 1
Inputs
3/2
x
(+.f64 x (*.f64 (pow.f64 x 3) -1/3))
(/.f64 (+.f64 10 (*.f64 2 x)) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
(+.f64 x (+.f64 (*.f64 -1/3 (pow.f64 x 3)) (*.f64 2/15 (pow.f64 x 5))))
(/.f64 (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 2 x)) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
(+.f64 x (+.f64 (*.f64 -1/3 (pow.f64 x 3)) (+.f64 (*.f64 -17/315 (pow.f64 x 7)) (*.f64 2/15 (pow.f64 x 5)))))
Outputs
(+.f64 x (+.f64 (*.f64 -1/3 (pow.f64 x 3)) (*.f64 2/15 (pow.f64 x 5))))
Calls

1 calls:

4.0ms
x
Results
AccuracySegmentsBranch
97.5%1x
Compiler

Compiled 72 to 50 computations (30.6% saved)

regimes8.0ms (0.2%)

Counts
4 → 1
Calls
Call 1
Inputs
3/2
x
(+.f64 x (*.f64 (pow.f64 x 3) -1/3))
(/.f64 (+.f64 10 (*.f64 2 x)) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
Outputs
(+.f64 x (*.f64 (pow.f64 x 3) -1/3))
Calls

1 calls:

7.0ms
x
Results
AccuracySegmentsBranch
97.1%1x
Compiler

Compiled 24 to 17 computations (29.2% saved)

regimes3.0ms (0.1%)

Counts
2 → 1
Calls
Call 1
Inputs
3/2
x
Outputs
x
Calls

1 calls:

3.0ms
x
Results
AccuracySegmentsBranch
97.0%1x
Compiler

Compiled 5 to 3 computations (40% saved)

regimes3.0ms (0.1%)

Accuracy

Total 0.0b remaining (0%)

Threshold costs 0b (0%)

Counts
1 → 1
Calls
Call 1
Inputs
3/2
Outputs
3/2
Calls

1 calls:

3.0ms
x
Results
AccuracySegmentsBranch
5.6%1x
Compiler

Compiled 4 to 3 computations (25% saved)

bsearch0.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
0.011941925493275954
0.02792303669964786
Compiler

Compiled 18 to 10 computations (44.4% saved)

simplify8.0ms (0.2%)

Algorithm
egg-herbie
Rules
26×+-commutative
18×*-commutative
sub-neg
neg-mul-1
neg-sub0
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
050364
174364
279364
382364
483364
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(/.f64 (+.f64 (*.f64 1/2520 (pow.f64 x 7)) (+.f64 (*.f64 1/60 (pow.f64 x 5)) (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 2 x)))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
(if (<=.f64 (/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) 5764607523034235/288230376151711744) (+.f64 x (+.f64 (*.f64 -1/3 (pow.f64 x 3)) (+.f64 (*.f64 -17/315 (pow.f64 x 7)) (*.f64 2/15 (pow.f64 x 5))))) (/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))))
(+.f64 x (+.f64 (*.f64 -1/3 (pow.f64 x 3)) (*.f64 2/15 (pow.f64 x 5))))
(+.f64 x (*.f64 (pow.f64 x 3) -1/3))
x
3/2
Outputs
(/.f64 (+.f64 (*.f64 1/2520 (pow.f64 x 7)) (+.f64 (*.f64 1/60 (pow.f64 x 5)) (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 2 x)))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
(/.f64 (+.f64 (*.f64 1/2520 (pow.f64 x 7)) (+.f64 (*.f64 1/60 (pow.f64 x 5)) (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 x 2)))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
(if (<=.f64 (/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) 5764607523034235/288230376151711744) (+.f64 x (+.f64 (*.f64 -1/3 (pow.f64 x 3)) (+.f64 (*.f64 -17/315 (pow.f64 x 7)) (*.f64 2/15 (pow.f64 x 5))))) (/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))))
(if (<=.f64 (/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) 5764607523034235/288230376151711744) (+.f64 x (+.f64 (*.f64 (pow.f64 x 3) -1/3) (+.f64 (*.f64 (pow.f64 x 7) -17/315) (*.f64 (pow.f64 x 5) 2/15)))) (/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))))
(+.f64 x (+.f64 (*.f64 -1/3 (pow.f64 x 3)) (*.f64 2/15 (pow.f64 x 5))))
(+.f64 x (+.f64 (*.f64 (pow.f64 x 3) -1/3) (*.f64 (pow.f64 x 5) 2/15)))
(+.f64 x (*.f64 (pow.f64 x 3) -1/3))
x
3/2
Compiler

Compiled 104 to 68 computations (34.6% saved)

soundness171.0ms (4.2%)

Rules
1352×unswap-sqr
1148×fma-def
1084×associate-*r*
1000×fma-neg
704×associate-*l*
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
038272
1580272
01535
119735
2357535
048612
1104608
2235604
3630600
41269600
52831600
63991600
76911600
Stop Event
node limit
unsound
node limit
Compiler

Compiled 15 to 11 computations (26.7% saved)

end0.0ms (0%)

preprocess78.0ms (1.9%)

Compiler

Compiled 324 to 182 computations (43.8% saved)

Profiling

Loading profile data...