Hyperbolic tangent

Time bar (total: 4.2s)

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.7s (63.9%)

Results
1.3s4040×body1024valid
542.0ms7824×body256unsamplable
498.0ms1988×body512valid
184.0ms1793×body256valid
151.0ms435×body2048valid
Bogosity

preprocess168.0ms (4%)

Algorithm
egg-herbie
Rules
1572×div-sub
1010×fma-neg
638×cancel-sign-sub-inv
606×sub-neg
578×neg-mul-1
Problems
242×(-.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))
10×(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
No Errors
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
8.3%
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
8.3%
(/.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)

localize80.0ms (1.9%)

Localize:

Found 2 expressions with local error:

NewAccuracyProgram
96.2%
(/.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)

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

rewrite67.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

simplify77.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

eval11.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
96.6%
Counts
45 → 7
Alt Table
Click to see full alt table
StatusAccuracyProgram
8.3%
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
95.2%
(/.f64 (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 2 x)) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
95.5%
(/.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))))
95.2%
(+.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)))))
95.5%
(+.f64 x (+.f64 (*.f64 -1/3 (pow.f64 x 3)) (*.f64 2/15 (pow.f64 x 5))))
95.0%
(+.f64 x (*.f64 (pow.f64 x 3) -1/3))
95.1%
x
8.3%
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
95.2%
(/.f64 (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 2 x)) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
95.5%
(/.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))))
95.2%
(+.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)))))
95.5%
(+.f64 x (+.f64 (*.f64 -1/3 (pow.f64 x 3)) (*.f64 2/15 (pow.f64 x 5))))
95.0%
(+.f64 x (*.f64 (pow.f64 x 3) -1/3))
95.1%
x
Compiler

Compiled 384 to 292 computations (24% saved)

localize308.0ms (7.3%)

Localize:

Found 19 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%
(pow.f64 x 3)
100.0%
(/.f64 (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 2 x)) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
100.0%
(+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 2 x))
99.8%
(*.f64 1/3 (pow.f64 x 3))
100.0%
(pow.f64 x 3)
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%
(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
19 → 51
Calls

57 calls:

TimeVariablePointExpression
2.0ms
x
@-inf
(pow.f64 x 3)
1.0ms
x
@0
(/.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
@-inf
(pow.f64 x 3)

rewrite55.0ms (1.3%)

Algorithm
batch-egg-rewrite
Rules
412×associate-*r*
264×associate-*l*
252×prod-diff
241×log1p-expm1-u
241×expm1-log1p-u
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
037304
1549304
Stop Event
node limit
Counts
19 → 741
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))
(pow.f64 x 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)))
(pow.f64 x 3)
(*.f64 1/3 (pow.f64 x 3))
(+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 2 x))
(/.f64 (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 2 x)) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
(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 (*.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
-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

simplify116.0ms (2.7%)

Algorithm
egg-herbie
Rules
2392×fma-def
1314×associate-*r*
880×times-frac
822×associate-*l/
784×associate-*l*
Iterations

Useful iterations: 5 (0.0ms)

IterNodesCost
0832211
11442171
22612167
35852163
411622001
529281983
646161983
767981983
Stop Event
node limit
Counts
792 → 78
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))
(*.f64 2 x)
(*.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 (*.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/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
-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)
(*.f64 2 x)
(*.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 (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 3) -1/3 (*.f64 (pow.f64 x 5) 1/8)))
(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 x (fma.f64 (pow.f64 x 3) -1/3 (fma.f64 -1/20 (pow.f64 x 7) (*.f64 (pow.f64 x 5) 1/8))))
(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)))
(fma.f64 (pow.f64 x 5) 1/8 (fma.f64 -1/20 (pow.f64 x 7) (fma.f64 (pow.f64 x 3) -1/3 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 1/3 (*.f64 x x) 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 1/3 (*.f64 x x) 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 1/3 (*.f64 x x) 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 1/3 (*.f64 x x) 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 1/3 (*.f64 x x) 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 1/3 (*.f64 x x) 2))
(/.f64 (fma.f64 2 x (*.f64 1/3 (pow.f64 x 3))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
(*.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
-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

eval42.0ms (1%)

Compiler

Compiled 2010 to 1142 computations (43.2% saved)

prune21.0ms (0.5%)

Pruning

7 alts after pruning (2 fresh and 5 done)

PrunedKeptTotal
New1171118
Fresh011
Picked145
Done011
Total1187125
Accuracy
96.6%
Counts
125 → 7
Alt Table
Click to see full alt table
StatusAccuracyProgram
8.3%
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
95.5%
(/.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.2%
(/.f64 (+.f64 14 (*.f64 2 x)) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
95.2%
(+.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)))))
95.5%
(+.f64 x (+.f64 (*.f64 -1/3 (pow.f64 x 3)) (*.f64 2/15 (pow.f64 x 5))))
95.0%
(+.f64 x (*.f64 (pow.f64 x 3) -1/3))
95.1%
x
8.3%
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
95.5%
(/.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.2%
(/.f64 (+.f64 14 (*.f64 2 x)) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
95.2%
(+.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)))))
95.5%
(+.f64 x (+.f64 (*.f64 -1/3 (pow.f64 x 3)) (*.f64 2/15 (pow.f64 x 5))))
95.0%
(+.f64 x (*.f64 (pow.f64 x 3) -1/3))
95.1%
x
Compiler

Compiled 200 to 148 computations (26% saved)

localize40.0ms (0.9%)

Localize:

Found 1 expressions with local error:

NewAccuracyProgram
100.0%
(/.f64 (+.f64 14 (*.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 14 (*.f64 2 x)) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
0.0ms
x
@-inf
(/.f64 (+.f64 14 (*.f64 2 x)) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
0.0ms
x
@0
(/.f64 (+.f64 14 (*.f64 2 x)) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))

rewrite25.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
2353835
Stop Event
unsound
Counts
1 → 38
Calls
Call 1
Inputs
(/.f64 (+.f64 14 (*.f64 2 x)) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
Outputs
-2744
-196
-98
-14
-7
-4
-2
-1
-1/2
-2/7
-1/7
0
1/1372
1/196
1/98
1/14
1/7
2/7
1/2
1
3/2
2
3
4
7
8
14
15
28
98
196
392
2744
5488
38416
537824
7529536
20661046784

simplify65.0ms (1.6%)

Algorithm
egg-herbie
Rules
1108×unswap-sqr
984×associate-*r*
972×distribute-lft-in
906×fma-def
770×associate-*l*
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
072640
1119636
2186632
3409622
4927622
52806622
65234622
Stop Event
node limit
Counts
50 → 56
Calls
Call 1
Inputs
7
(+.f64 7 x)
(+.f64 7 (+.f64 x (*.f64 -7/2 (pow.f64 x 2))))
(+.f64 7 (+.f64 x (+.f64 (*.f64 -7/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 14 (/.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 14 (/.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 14 (/.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 14 (/.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 14 (/.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 14 (/.f64 1 (+.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x))))))
-2744
-196
-98
-14
-7
-4
-2
-1
-1/2
-2/7
-1/7
0
1/1372
1/196
1/98
1/14
1/7
2/7
1/2
1
3/2
2
3
4
7
8
14
15
28
98
196
392
2744
5488
38416
537824
7529536
20661046784
Outputs
7
(+.f64 7 x)
(+.f64 7 (+.f64 x (*.f64 -7/2 (pow.f64 x 2))))
(+.f64 7 (fma.f64 -7/2 (pow.f64 x 2) x))
(fma.f64 (fma.f64 x -7/2 1) x 7)
(fma.f64 x (fma.f64 x -7/2 1) 7)
(+.f64 7 (+.f64 x (+.f64 (*.f64 -7/2 (pow.f64 x 2)) (*.f64 -1/2 (pow.f64 x 3)))))
(+.f64 7 (+.f64 x (fma.f64 -7/2 (pow.f64 x 2) (*.f64 -1/2 (pow.f64 x 3)))))
(+.f64 (fma.f64 -7/2 (pow.f64 x 2) x) (fma.f64 -1/2 (pow.f64 x 3) 7))
(+.f64 7 (fma.f64 (pow.f64 x 2) (fma.f64 x -1/2 -7/2) 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 x (/.f64 2 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))))
(/.f64 x (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 2))
(+.f64 (*.f64 2 (/.f64 x (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))) (*.f64 14 (/.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 14 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))))
(fma.f64 x (/.f64 2 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) (/.f64 14 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))))
(+.f64 (*.f64 2 (/.f64 x (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))) (*.f64 14 (/.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 14 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))))
(fma.f64 x (/.f64 2 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) (/.f64 14 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))))
(+.f64 (*.f64 2 (/.f64 x (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))) (*.f64 14 (/.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 14 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))))
(fma.f64 x (/.f64 2 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) (/.f64 14 (+.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 x (/.f64 2 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))))
(/.f64 x (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 2))
(+.f64 (*.f64 2 (/.f64 x (+.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x))))) (*.f64 14 (/.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 14 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))))
(fma.f64 x (/.f64 2 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) (/.f64 14 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))))
(+.f64 (*.f64 2 (/.f64 x (+.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x))))) (*.f64 14 (/.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 14 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))))
(fma.f64 x (/.f64 2 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) (/.f64 14 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))))
(+.f64 (*.f64 2 (/.f64 x (+.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x))))) (*.f64 14 (/.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 14 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))))
(fma.f64 x (/.f64 2 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) (/.f64 14 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))))
-2744
-196
-98
-14
-7
-4
-2
-1
-1/2
-2/7
-1/7
0
1/1372
1/196
1/98
1/14
1/7
2/7
1/2
1
3/2
2
3
4
7
8
14
15
28
98
196
392
2744
5488
38416
537824
7529536
20661046784

eval8.0ms (0.2%)

Compiler

Compiled 257 to 160 computations (37.7% saved)

prune14.0ms (0.3%)

Pruning

7 alts after pruning (2 fresh and 5 done)

PrunedKeptTotal
New55156
Fresh011
Picked101
Done055
Total56763
Accuracy
100.0%
Counts
63 → 7
Alt Table
Click to see full alt table
StatusAccuracyProgram
8.3%
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
95.5%
(/.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))))
95.2%
(+.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)))))
95.5%
(+.f64 x (+.f64 (*.f64 -1/3 (pow.f64 x 3)) (*.f64 2/15 (pow.f64 x 5))))
95.0%
(+.f64 x (*.f64 (pow.f64 x 3) -1/3))
95.1%
x
9.4%
1
8.3%
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
95.5%
(/.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))))
95.2%
(+.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)))))
95.5%
(+.f64 x (+.f64 (*.f64 -1/3 (pow.f64 x 3)) (*.f64 2/15 (pow.f64 x 5))))
95.0%
(+.f64 x (*.f64 (pow.f64 x 3) -1/3))
95.1%
x
9.4%
1
Compiler

Compiled 178 to 132 computations (25.8% saved)

localize0.0ms (0%)

eval0.0ms (0%)

Compiler

Compiled 1 to 1 computations (0% saved)

prune6.0ms (0.1%)

Pruning

7 alts after pruning (2 fresh and 5 done)

PrunedKeptTotal
New000
Fresh022
Picked000
Done055
Total077
Accuracy
100.0%
Counts
7 → 7
Alt Table
Click to see full alt table
StatusAccuracyProgram
8.3%
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
95.5%
(/.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))))
95.2%
(+.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)))))
95.5%
(+.f64 x (+.f64 (*.f64 -1/3 (pow.f64 x 3)) (*.f64 2/15 (pow.f64 x 5))))
95.0%
(+.f64 x (*.f64 (pow.f64 x 3) -1/3))
95.1%
x
9.4%
1
Compiler

Compiled 200 to 135 computations (32.5% saved)

regimes17.0ms (0.4%)

Counts
9 → 2
Calls
Call 1
Inputs
1
x
(+.f64 x (*.f64 (pow.f64 x 3) -1/3))
(/.f64 (+.f64 14 (*.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))))
1
Calls

2 calls:

9.0ms
x
5.0ms
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
Results
AccuracySegmentsBranch
99.7%2x
99.7%2(/.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
1
x
(+.f64 x (*.f64 (pow.f64 x 3) -1/3))
(/.f64 (+.f64 14 (*.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)))))
1
Calls

2 calls:

11.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.5%2x
99.5%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)

regimes9.0ms (0.2%)

Counts
6 → 2
Calls
Call 1
Inputs
1
x
(+.f64 x (*.f64 (pow.f64 x 3) -1/3))
(/.f64 (+.f64 14 (*.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))))
Outputs
(+.f64 x (+.f64 (*.f64 -1/3 (pow.f64 x 3)) (*.f64 2/15 (pow.f64 x 5))))
1
Calls

1 calls:

8.0ms
x
Results
AccuracySegmentsBranch
99.4%2x
Compiler

Compiled 53 to 35 computations (34% saved)

regimes12.0ms (0.3%)

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

1 calls:

11.0ms
x
Results
AccuracySegmentsBranch
99.3%2x
Compiler

Compiled 24 to 17 computations (29.2% saved)

regimes6.0ms (0.1%)

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

1 calls:

5.0ms
x
Results
AccuracySegmentsBranch
98.9%2x
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
1
Outputs
1
Calls

1 calls:

3.0ms
x
Results
AccuracySegmentsBranch
9.4%1x
Compiler

Compiled 4 to 3 computations (25% saved)

bsearch0.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
0.9933258082858624
1.0
Compiler

Compiled 18 to 10 computations (44.4% saved)

bsearch0.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
0.11841765472958785
0.9933258082858624
Compiler

Compiled 18 to 10 computations (44.4% saved)

bsearch15.0ms (0.4%)

Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
15.0ms
0.11897587232072153
2.8496558388614157
Results
14.0ms112×body256valid
Compiler

Compiled 144 to 115 computations (20.1% saved)

bsearch13.0ms (0.3%)

Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
13.0ms
0.11897587232072153
2.8496558388614157
Results
12.0ms112×body256valid
Compiler

Compiled 102 to 80 computations (21.6% saved)

bsearch15.0ms (0.4%)

Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
15.0ms
0.11897587232072153
2.8496558388614157
Results
13.0ms112×body256valid
Compiler

Compiled 60 to 45 computations (25% 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
060413
185413
290413
393413
494413
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(if (<=.f64 (/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) 1) (/.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)))) 1)
(if (<=.f64 (/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) 3602879701896397/18014398509481984) (+.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))))) 1)
(if (<=.f64 x 5/4) (+.f64 x (+.f64 (*.f64 -1/3 (pow.f64 x 3)) (*.f64 2/15 (pow.f64 x 5)))) 1)
(if (<=.f64 x 5224175567749775/4503599627370496) (+.f64 x (*.f64 (pow.f64 x 3) -1/3)) 1)
(if (<=.f64 x 1) x 1)
1
Outputs
(if (<=.f64 (/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) 1) (/.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)))) 1)
(if (<=.f64 (/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) 1) (/.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)))) 1)
(if (<=.f64 (/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) 3602879701896397/18014398509481984) (+.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))))) 1)
(if (<=.f64 (/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) 3602879701896397/18014398509481984) (+.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)))) 1)
(if (<=.f64 x 5/4) (+.f64 x (+.f64 (*.f64 -1/3 (pow.f64 x 3)) (*.f64 2/15 (pow.f64 x 5)))) 1)
(if (<=.f64 x 5/4) (+.f64 x (+.f64 (*.f64 (pow.f64 x 3) -1/3) (*.f64 (pow.f64 x 5) 2/15))) 1)
(if (<=.f64 x 5224175567749775/4503599627370496) (+.f64 x (*.f64 (pow.f64 x 3) -1/3)) 1)
(if (<=.f64 x 1) x 1)
1
Compiler

Compiled 124 to 87 computations (29.8% saved)

soundness178.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
037304
1549304
01535
119735
2353835
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%)

preprocess80.0ms (1.9%)

Compiler

Compiled 340 to 218 computations (35.9% saved)

Profiling

Loading profile data...