Hyperbolic tangent

Time bar (total: 4.1s)

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

Results
1.2s4037×body1024valid
498.0ms7621×body256unsamplable
360.0ms2016×body512valid
179.0ms1781×body256valid
148.0ms422×body2048valid
Bogosity

preprocess148.0ms (3.6%)

Algorithm
egg-herbie
Rules
1240×difference-of-squares
950×div-sub
760×associate-/r/
568×fma-neg
540×cancel-sign-sub-inv
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
017165
143165
280165
3154165
4431165
51873165
65381165
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)))))
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))))
Compiler

Compiled 49 to 15 computations (69.4% saved)

eval0.0ms (0%)

Compiler

Compiled 1 to 1 computations (0% saved)

prune5.0ms (0.1%)

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)

localize112.0ms (2.8%)

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

rewrite68.0ms (1.7%)

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

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

prune17.0ms (0.4%)

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)

localize460.0ms (11.3%)

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)

series13.0ms (0.3%)

Counts
17 → 57
Calls

51 calls:

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

rewrite47.0ms (1.1%)

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

simplify116.0ms (2.9%)

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

eval35.0ms (0.9%)

Compiler

Compiled 2041 to 1167 computations (42.8% saved)

prune21.0ms (0.5%)

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

localize42.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
1.0ms
x
@inf
(/.f64 (+.f64 10 (*.f64 2 x)) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
1.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))))

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

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

prune13.0ms (0.3%)

Pruning

9 alts after pruning (3 fresh and 6 done)

PrunedKeptTotal
New39241
Fresh011
Picked011
Done055
Total39948
Accuracy
99.4%
Counts
48 → 9
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))))
3.9%
(/.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
4.0%
3/2
3.8%
-1/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))))
3.9%
(/.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
4.0%
3/2
3.8%
-1/2
Compiler

Compiled 208 to 156 computations (25% saved)

localize0.0ms (0%)

eval0.0ms (0%)

Compiler

Compiled 1 to 1 computations (0% saved)

prune7.0ms (0.2%)

Pruning

9 alts after pruning (3 fresh and 6 done)

PrunedKeptTotal
New000
Fresh033
Picked000
Done066
Total099
Accuracy
99.4%
Counts
9 → 9
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))))
3.9%
(/.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
4.0%
3/2
3.8%
-1/2
Compiler

Compiled 216 to 148 computations (31.5% saved)

regimes11.0ms (0.3%)

Counts
10 → 1
Calls
Call 1
Inputs
-1/2
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:

6.0ms
x
3.0ms
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
Results
AccuracySegmentsBranch
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 128 to 78 computations (39.1% saved)

regimes12.0ms (0.3%)

Counts
9 → 1
Calls
Call 1
Inputs
-1/2
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 2/15 (pow.f64 x 5))))
Calls

2 calls:

5.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.5%1x
97.5%1(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
Compiler

Compiled 100 to 60 computations (40% saved)

regimes6.0ms (0.1%)

Counts
5 → 1
Calls
Call 1
Inputs
-1/2
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:

4.0ms
x
Results
AccuracySegmentsBranch
97.1%1x
Compiler

Compiled 25 to 18 computations (28% saved)

regimes21.0ms (0.5%)

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

1 calls:

15.0ms
x
Results
AccuracySegmentsBranch
97.0%1x
Compiler

Compiled 6 to 4 computations (33.3% saved)

regimes4.0ms (0.1%)

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

1 calls:

3.0ms
x
Results
AccuracySegmentsBranch
4.0%1x
Compiler

Compiled 5 to 4 computations (20% saved)

regimes3.0ms (0.1%)

Accuracy

Total -0.0b remaining (-0%)

Threshold costs -0b (-0%)

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

1 calls:

3.0ms
x
Results
AccuracySegmentsBranch
3.8%1x
Compiler

Compiled 4 to 3 computations (25% saved)

simplify5.0ms (0.1%)

Algorithm
egg-herbie
Rules
16×+-commutative
14×*-commutative
sub-neg
neg-mul-1
neg-sub0
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
038180
156180
258180
359180
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))))
(+.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
-1/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))))
(+.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
-1/2
Compiler

Compiled 57 to 45 computations (21.1% saved)

soundness199.0ms (4.9%)

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
01535
119735
2357535
048612
1104608
2235604
3630600
41269600
52831600
63991600
76911600
Stop Event
node limit
unsound
unsound
node limit
Compiler

Compiled 15 to 11 computations (26.7% saved)

end0.0ms (0%)

preprocess79.0ms (1.9%)

Compiler

Compiled 132 to 94 computations (28.8% saved)

Profiling

Loading profile data...