Hyperbolic sine

Time bar (total: 2.1s)

analyze0.0ms (0%)

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

Compiled 10 to 8 computations (20% saved)

sample1.4s (67.9%)

Results
651.0ms2073×body1024valid
407.0ms4103×body256infinite
184.0ms1018×body512valid
87.0ms214×body2048valid
87.0ms848×body256valid
Bogosity

preprocess122.0ms (5.8%)

Algorithm
egg-herbie
Rules
1024×fma-def
806×associate-/l*
736×associate-*l*
704×associate-/r/
570×difference-of-squares
Problems
129×No Errors
127×(-.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
017124
142124
287124
3176124
4436116
51415116
65987116
Stop Event
node limit
Calls
Call 1
Inputs
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 2)
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 2)
(/.f64 (-.f64 (exp.f64 (neg.f64 x)) (exp.f64 (neg.f64 (neg.f64 x)))) 2)
(neg.f64 (/.f64 (-.f64 (exp.f64 (neg.f64 x)) (exp.f64 (neg.f64 (neg.f64 x)))) 2))
Outputs
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 2)
(*.f64 -1/2 (-.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(fma.f64 1/2 (exp.f64 x) (/.f64 -1/2 (exp.f64 x)))
(fma.f64 (exp.f64 x) 1/2 (/.f64 -1/2 (exp.f64 x)))
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 2)
(*.f64 -1/2 (-.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(fma.f64 1/2 (exp.f64 x) (/.f64 -1/2 (exp.f64 x)))
(fma.f64 (exp.f64 x) 1/2 (/.f64 -1/2 (exp.f64 x)))
(/.f64 (-.f64 (exp.f64 (neg.f64 x)) (exp.f64 (neg.f64 (neg.f64 x)))) 2)
(/.f64 (-.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)) 2)
(fma.f64 -1/2 (exp.f64 x) (/.f64 1/2 (exp.f64 x)))
(fma.f64 (exp.f64 x) -1/2 (/.f64 1/2 (exp.f64 x)))
(neg.f64 (/.f64 (-.f64 (exp.f64 (neg.f64 x)) (exp.f64 (neg.f64 (neg.f64 x)))) 2))
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 2)
(*.f64 -1/2 (-.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(fma.f64 1/2 (exp.f64 x) (/.f64 -1/2 (exp.f64 x)))
(fma.f64 (exp.f64 x) 1/2 (/.f64 -1/2 (exp.f64 x)))
Symmetry

(negabs x)

Compiler

Compiled 34 to 16 computations (52.9% saved)

eval1.0ms (0%)

Compiler

Compiled 25 to 15 computations (40% saved)

prune1.0ms (0.1%)

Alt Table
Click to see full alt table
StatusAccuracyProgram
53.4%
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 2)
53.4%
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 2)
Compiler

Compiled 18 to 14 computations (22.2% saved)

localize53.0ms (2.5%)

Localize:

Found 1 expressions with local error:

NewAccuracyProgram
53.4%
(-.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))
Compiler

Compiled 25 to 9 computations (64% saved)

series1.0ms (0%)

Counts
1 → 8
Calls

3 calls:

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

rewrite67.0ms (3.2%)

Algorithm
batch-egg-rewrite
Rules
78×associate-*r*
52×add-exp-log
52×add-log-exp
52×log1p-expm1-u
52×expm1-log1p-u
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01014
111814
2186414
Stop Event
unsound
Counts
1 → 8
Calls
Call 1
Inputs
(-.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))
Outputs
-2
0
1/2
3/2
2
4
6
8

simplify69.0ms (3.3%)

Algorithm
egg-herbie
Rules
1536×fma-def
1352×unswap-sqr
798×associate-*r/
670×associate-*r*
532×*-commutative
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
035250
170250
2146250
3355250
4736250
51674250
62581250
74135250
86944250
Stop Event
node limit
Counts
16 → 26
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)))
-2
0
1/2
3/2
2
4
6
8
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))))
(fma.f64 2 x (fma.f64 1/60 (pow.f64 x 5) (*.f64 1/3 (pow.f64 x 3))))
(+.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 2 x (fma.f64 1/2520 (pow.f64 x 7) (fma.f64 1/3 (pow.f64 x 3) (*.f64 1/60 (pow.f64 x 5)))))
(fma.f64 2 x (fma.f64 1/3 (pow.f64 x 3) (fma.f64 1/60 (pow.f64 x 5) (*.f64 1/2520 (pow.f64 x 7)))))
(fma.f64 2 x (fma.f64 1/60 (pow.f64 x 5) (fma.f64 1/3 (pow.f64 x 3) (*.f64 1/2520 (pow.f64 x 7)))))
(-.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x)))
(-.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))
(-.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x)))
(-.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))
(-.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x)))
(-.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))
(-.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x)))
(-.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))
-2
0
1/2
3/2
2
4
6
8

eval7.0ms (0.3%)

Compiler

Compiled 298 to 243 computations (18.5% saved)

prune11.0ms (0.5%)

Pruning

6 alts after pruning (5 fresh and 1 done)

PrunedKeptTotal
New21526
Fresh000
Picked011
Done000
Total21627
Accuracy
100.0%
Counts
27 → 6
Alt Table
Click to see full alt table
StatusAccuracyProgram
53.4%
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 2)
79.4%
(/.f64 (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 2 x)) 2)
52.1%
(/.f64 (*.f64 2 x) 2)
4.1%
(/.f64 8 2)
4.1%
(/.f64 1/2 2)
3.6%
(/.f64 0 2)
53.4%
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 2)
79.4%
(/.f64 (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 2 x)) 2)
52.1%
(/.f64 (*.f64 2 x) 2)
4.1%
(/.f64 8 2)
4.1%
(/.f64 1/2 2)
3.6%
(/.f64 0 2)
Compiler

Compiled 138 to 122 computations (11.6% saved)

localize82.0ms (3.9%)

Localize:

Found 1 expressions with local error:

NewAccuracyProgram
99.8%
(*.f64 1/3 (pow.f64 x 3))
Compiler

Compiled 62 to 51 computations (17.7% saved)

series1.0ms (0.1%)

Counts
1 → 0
Calls

3 calls:

TimeVariablePointExpression
1.0ms
x
@0
(*.f64 1/3 (pow.f64 x 3))
0.0ms
x
@inf
(*.f64 1/3 (pow.f64 x 3))
0.0ms
x
@-inf
(*.f64 1/3 (pow.f64 x 3))

rewrite45.0ms (2.1%)

Algorithm
batch-egg-rewrite
Rules
1010×associate-*r*
866×associate-*l*
468×unpow-prod-down
306×log-prod
280×cbrt-prod
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0916
17416
273216
Stop Event
node limit
Counts
1 → 25
Calls
Call 1
Inputs
(*.f64 1/3 (pow.f64 x 3))
Outputs
(+.f64 (+.f64 1 (*.f64 1/3 (pow.f64 x 3))) -1)
(+.f64 0 (*.f64 1/3 (pow.f64 x 3)))
(+.f64 (log.f64 (cbrt.f64 (cbrt.f64 (pow.f64 (exp.f64 (pow.f64 x 3)) 2)))) (log.f64 (cbrt.f64 (cbrt.f64 (exp.f64 (pow.f64 x 3))))))
(+.f64 (log.f64 (pow.f64 (exp.f64 (pow.f64 x 3)) 1/6)) (log.f64 (pow.f64 (exp.f64 (pow.f64 x 3)) 1/6)))
(-.f64 (+.f64 1 (*.f64 1/3 (pow.f64 x 3))) 1)
(/.f64 (-.f64 (pow.f64 (+.f64 1 (*.f64 1/3 (pow.f64 x 3))) 3) 1) (+.f64 (*.f64 (+.f64 1 (*.f64 1/3 (pow.f64 x 3))) (+.f64 1 (*.f64 1/3 (pow.f64 x 3)))) (+.f64 1 (*.f64 (+.f64 1 (*.f64 1/3 (pow.f64 x 3))) 1))))
(/.f64 (-.f64 (*.f64 (+.f64 1 (*.f64 1/3 (pow.f64 x 3))) (+.f64 1 (*.f64 1/3 (pow.f64 x 3)))) 1) (+.f64 (+.f64 1 (*.f64 1/3 (pow.f64 x 3))) 1))
(pow.f64 (*.f64 1/3 (pow.f64 x 3)) 1)
(pow.f64 (*.f64 x (cbrt.f64 1/3)) 3)
(pow.f64 (*.f64 (pow.f64 x 6) 1/9) 1/2)
(pow.f64 (*.f64 (pow.f64 x 9) 1/27) 1/3)
(pow.f64 (*.f64 (pow.f64 x 3/2) (sqrt.f64 1/3)) 2)
(pow.f64 (E.f64) (fma.f64 3 (log.f64 x) (log.f64 1/3)))
(pow.f64 (exp.f64 (cbrt.f64 (pow.f64 (fma.f64 3 (log.f64 x) (log.f64 1/3)) 2))) (cbrt.f64 (fma.f64 3 (log.f64 x) (log.f64 1/3))))
(pow.f64 (exp.f64 (sqrt.f64 (fma.f64 3 (log.f64 x) (log.f64 1/3)))) (sqrt.f64 (fma.f64 3 (log.f64 x) (log.f64 1/3))))
(sqrt.f64 (*.f64 (pow.f64 x 6) 1/9))
(fabs.f64 (*.f64 1/3 (pow.f64 x 3)))
(log.f64 (cbrt.f64 (exp.f64 (pow.f64 x 3))))
(cbrt.f64 (*.f64 (pow.f64 x 9) 1/27))
(expm1.f64 (log1p.f64 (*.f64 1/3 (pow.f64 x 3))))
(exp.f64 (fma.f64 3 (log.f64 x) (log.f64 1/3)))
(exp.f64 (*.f64 (log.f64 (*.f64 x (cbrt.f64 1/3))) 3))
(exp.f64 (*.f64 (log.f64 (*.f64 (pow.f64 x 9) 1/27)) 1/3))
(exp.f64 (*.f64 (log.f64 (*.f64 (pow.f64 x 3/2) (sqrt.f64 1/3))) 2))
(log1p.f64 (expm1.f64 (*.f64 1/3 (pow.f64 x 3))))

simplify46.0ms (2.2%)

Algorithm
egg-herbie
Rules
1352×associate-*r/
998×distribute-lft-out
878×fma-neg
732×distribute-rgt-out
582×fma-def
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
093829
1221607
2624590
33143590
Stop Event
node limit
Counts
25 → 31
Calls
Call 1
Inputs
(+.f64 (+.f64 1 (*.f64 1/3 (pow.f64 x 3))) -1)
(+.f64 0 (*.f64 1/3 (pow.f64 x 3)))
(+.f64 (log.f64 (cbrt.f64 (cbrt.f64 (pow.f64 (exp.f64 (pow.f64 x 3)) 2)))) (log.f64 (cbrt.f64 (cbrt.f64 (exp.f64 (pow.f64 x 3))))))
(+.f64 (log.f64 (pow.f64 (exp.f64 (pow.f64 x 3)) 1/6)) (log.f64 (pow.f64 (exp.f64 (pow.f64 x 3)) 1/6)))
(-.f64 (+.f64 1 (*.f64 1/3 (pow.f64 x 3))) 1)
(/.f64 (-.f64 (pow.f64 (+.f64 1 (*.f64 1/3 (pow.f64 x 3))) 3) 1) (+.f64 (*.f64 (+.f64 1 (*.f64 1/3 (pow.f64 x 3))) (+.f64 1 (*.f64 1/3 (pow.f64 x 3)))) (+.f64 1 (*.f64 (+.f64 1 (*.f64 1/3 (pow.f64 x 3))) 1))))
(/.f64 (-.f64 (*.f64 (+.f64 1 (*.f64 1/3 (pow.f64 x 3))) (+.f64 1 (*.f64 1/3 (pow.f64 x 3)))) 1) (+.f64 (+.f64 1 (*.f64 1/3 (pow.f64 x 3))) 1))
(pow.f64 (*.f64 1/3 (pow.f64 x 3)) 1)
(pow.f64 (*.f64 x (cbrt.f64 1/3)) 3)
(pow.f64 (*.f64 (pow.f64 x 6) 1/9) 1/2)
(pow.f64 (*.f64 (pow.f64 x 9) 1/27) 1/3)
(pow.f64 (*.f64 (pow.f64 x 3/2) (sqrt.f64 1/3)) 2)
(pow.f64 (E.f64) (fma.f64 3 (log.f64 x) (log.f64 1/3)))
(pow.f64 (exp.f64 (cbrt.f64 (pow.f64 (fma.f64 3 (log.f64 x) (log.f64 1/3)) 2))) (cbrt.f64 (fma.f64 3 (log.f64 x) (log.f64 1/3))))
(pow.f64 (exp.f64 (sqrt.f64 (fma.f64 3 (log.f64 x) (log.f64 1/3)))) (sqrt.f64 (fma.f64 3 (log.f64 x) (log.f64 1/3))))
(sqrt.f64 (*.f64 (pow.f64 x 6) 1/9))
(fabs.f64 (*.f64 1/3 (pow.f64 x 3)))
(log.f64 (cbrt.f64 (exp.f64 (pow.f64 x 3))))
(cbrt.f64 (*.f64 (pow.f64 x 9) 1/27))
(expm1.f64 (log1p.f64 (*.f64 1/3 (pow.f64 x 3))))
(exp.f64 (fma.f64 3 (log.f64 x) (log.f64 1/3)))
(exp.f64 (*.f64 (log.f64 (*.f64 x (cbrt.f64 1/3))) 3))
(exp.f64 (*.f64 (log.f64 (*.f64 (pow.f64 x 9) 1/27)) 1/3))
(exp.f64 (*.f64 (log.f64 (*.f64 (pow.f64 x 3/2) (sqrt.f64 1/3))) 2))
(log1p.f64 (expm1.f64 (*.f64 1/3 (pow.f64 x 3))))
Outputs
(+.f64 (+.f64 1 (*.f64 1/3 (pow.f64 x 3))) -1)
(+.f64 1 (+.f64 (*.f64 1/3 (pow.f64 x 3)) -1))
(*.f64 1/3 (pow.f64 x 3))
(+.f64 0 (*.f64 1/3 (pow.f64 x 3)))
(+.f64 1 (+.f64 (*.f64 1/3 (pow.f64 x 3)) -1))
(*.f64 1/3 (pow.f64 x 3))
(+.f64 (log.f64 (cbrt.f64 (cbrt.f64 (pow.f64 (exp.f64 (pow.f64 x 3)) 2)))) (log.f64 (cbrt.f64 (cbrt.f64 (exp.f64 (pow.f64 x 3))))))
(+.f64 (log.f64 (pow.f64 (exp.f64 (pow.f64 x 3)) 1/6)) (log.f64 (pow.f64 (exp.f64 (pow.f64 x 3)) 1/6)))
(+.f64 1 (+.f64 (*.f64 1/3 (pow.f64 x 3)) -1))
(*.f64 1/3 (pow.f64 x 3))
(-.f64 (+.f64 1 (*.f64 1/3 (pow.f64 x 3))) 1)
(+.f64 1 (+.f64 (*.f64 1/3 (pow.f64 x 3)) -1))
(*.f64 1/3 (pow.f64 x 3))
(/.f64 (-.f64 (pow.f64 (+.f64 1 (*.f64 1/3 (pow.f64 x 3))) 3) 1) (+.f64 (*.f64 (+.f64 1 (*.f64 1/3 (pow.f64 x 3))) (+.f64 1 (*.f64 1/3 (pow.f64 x 3)))) (+.f64 1 (*.f64 (+.f64 1 (*.f64 1/3 (pow.f64 x 3))) 1))))
(/.f64 (+.f64 (pow.f64 (+.f64 1 (*.f64 1/3 (pow.f64 x 3))) 3) -1) (fma.f64 (+.f64 1 (*.f64 1/3 (pow.f64 x 3))) (+.f64 1 (*.f64 1/3 (pow.f64 x 3))) (+.f64 1 (+.f64 1 (*.f64 1/3 (pow.f64 x 3))))))
(/.f64 (+.f64 -1 (pow.f64 (fma.f64 1/3 (pow.f64 x 3) 1) 3)) (fma.f64 (fma.f64 1/3 (pow.f64 x 3) 1) (fma.f64 1/3 (pow.f64 x 3) 1) (+.f64 (*.f64 1/3 (pow.f64 x 3)) 2)))
(/.f64 (+.f64 -1 (pow.f64 (fma.f64 1/3 (pow.f64 x 3) 1) 3)) (+.f64 1 (*.f64 (fma.f64 1/3 (pow.f64 x 3) 1) (fma.f64 1/3 (pow.f64 x 3) 2))))
(/.f64 (-.f64 (*.f64 (+.f64 1 (*.f64 1/3 (pow.f64 x 3))) (+.f64 1 (*.f64 1/3 (pow.f64 x 3)))) 1) (+.f64 (+.f64 1 (*.f64 1/3 (pow.f64 x 3))) 1))
(+.f64 1 (+.f64 (*.f64 1/3 (pow.f64 x 3)) -1))
(*.f64 1/3 (pow.f64 x 3))
(pow.f64 (*.f64 1/3 (pow.f64 x 3)) 1)
(+.f64 1 (+.f64 (*.f64 1/3 (pow.f64 x 3)) -1))
(*.f64 1/3 (pow.f64 x 3))
(pow.f64 (*.f64 x (cbrt.f64 1/3)) 3)
(+.f64 1 (+.f64 (*.f64 1/3 (pow.f64 x 3)) -1))
(*.f64 1/3 (pow.f64 x 3))
(pow.f64 (*.f64 (pow.f64 x 6) 1/9) 1/2)
(+.f64 1 (+.f64 (*.f64 1/3 (pow.f64 x 3)) -1))
(*.f64 1/3 (pow.f64 x 3))
(pow.f64 (*.f64 (pow.f64 x 9) 1/27) 1/3)
(cbrt.f64 (*.f64 (pow.f64 x 9) 1/27))
(cbrt.f64 (*.f64 1/27 (pow.f64 x 9)))
(pow.f64 (*.f64 (pow.f64 x 3/2) (sqrt.f64 1/3)) 2)
(+.f64 1 (+.f64 (*.f64 1/3 (pow.f64 x 3)) -1))
(*.f64 1/3 (pow.f64 x 3))
(pow.f64 (E.f64) (fma.f64 3 (log.f64 x) (log.f64 1/3)))
(pow.f64 (exp.f64 (cbrt.f64 (pow.f64 (fma.f64 3 (log.f64 x) (log.f64 1/3)) 2))) (cbrt.f64 (fma.f64 3 (log.f64 x) (log.f64 1/3))))
(pow.f64 (exp.f64 (sqrt.f64 (fma.f64 3 (log.f64 x) (log.f64 1/3)))) (sqrt.f64 (fma.f64 3 (log.f64 x) (log.f64 1/3))))
(+.f64 1 (+.f64 (*.f64 1/3 (pow.f64 x 3)) -1))
(*.f64 1/3 (pow.f64 x 3))
(sqrt.f64 (*.f64 (pow.f64 x 6) 1/9))
(+.f64 1 (+.f64 (*.f64 1/3 (pow.f64 x 3)) -1))
(*.f64 1/3 (pow.f64 x 3))
(fabs.f64 (*.f64 1/3 (pow.f64 x 3)))
(+.f64 1 (+.f64 (*.f64 1/3 (pow.f64 x 3)) -1))
(*.f64 1/3 (pow.f64 x 3))
(log.f64 (cbrt.f64 (exp.f64 (pow.f64 x 3))))
(cbrt.f64 (*.f64 (pow.f64 x 9) 1/27))
(cbrt.f64 (*.f64 1/27 (pow.f64 x 9)))
(expm1.f64 (log1p.f64 (*.f64 1/3 (pow.f64 x 3))))
(+.f64 1 (+.f64 (*.f64 1/3 (pow.f64 x 3)) -1))
(*.f64 1/3 (pow.f64 x 3))
(exp.f64 (fma.f64 3 (log.f64 x) (log.f64 1/3)))
(+.f64 1 (+.f64 (*.f64 1/3 (pow.f64 x 3)) -1))
(*.f64 1/3 (pow.f64 x 3))
(exp.f64 (*.f64 (log.f64 (*.f64 x (cbrt.f64 1/3))) 3))
(+.f64 1 (+.f64 (*.f64 1/3 (pow.f64 x 3)) -1))
(*.f64 1/3 (pow.f64 x 3))
(exp.f64 (*.f64 (log.f64 (*.f64 (pow.f64 x 9) 1/27)) 1/3))
(cbrt.f64 (*.f64 (pow.f64 x 9) 1/27))
(cbrt.f64 (*.f64 1/27 (pow.f64 x 9)))
(exp.f64 (*.f64 (log.f64 (*.f64 (pow.f64 x 3/2) (sqrt.f64 1/3))) 2))
(+.f64 1 (+.f64 (*.f64 1/3 (pow.f64 x 3)) -1))
(*.f64 1/3 (pow.f64 x 3))
(log1p.f64 (expm1.f64 (*.f64 1/3 (pow.f64 x 3))))
(+.f64 1 (+.f64 (*.f64 1/3 (pow.f64 x 3)) -1))
(*.f64 1/3 (pow.f64 x 3))

eval12.0ms (0.6%)

Compiler

Compiled 572 to 488 computations (14.7% saved)

prune14.0ms (0.7%)

Pruning

6 alts after pruning (0 fresh and 6 done)

PrunedKeptTotal
New31031
Fresh000
Picked055
Done011
Total31637
Accuracy
100.0%
Counts
37 → 6
Alt Table
Click to see full alt table
StatusAccuracyProgram
53.4%
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 2)
79.4%
(/.f64 (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 2 x)) 2)
52.1%
(/.f64 (*.f64 2 x) 2)
4.1%
(/.f64 8 2)
4.1%
(/.f64 1/2 2)
3.6%
(/.f64 0 2)
Compiler

Compiled 73 to 63 computations (13.7% saved)

regimes18.0ms (0.9%)

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

3 calls:

9.0ms
x
5.0ms
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 2)
3.0ms
(-.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))
Results
AccuracySegmentsBranch
100.0%2x
100.0%2(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 2)
100.0%2(-.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))
Compiler

Compiled 52 to 42 computations (19.2% saved)

regimes6.0ms (0.3%)

Counts
5 → 1
Calls
Call 1
Inputs
(/.f64 0 2)
(/.f64 1/2 2)
(/.f64 8 2)
(/.f64 (*.f64 2 x) 2)
(/.f64 (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 2 x)) 2)
Outputs
(/.f64 (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 2 x)) 2)
Calls

1 calls:

4.0ms
x
Results
AccuracySegmentsBranch
79.4%1x
Compiler

Compiled 28 to 24 computations (14.3% saved)

regimes6.0ms (0.3%)

Counts
4 → 1
Calls
Call 1
Inputs
(/.f64 0 2)
(/.f64 1/2 2)
(/.f64 8 2)
(/.f64 (*.f64 2 x) 2)
Outputs
(/.f64 (*.f64 2 x) 2)
Calls

1 calls:

5.0ms
x
Results
AccuracySegmentsBranch
52.1%1x
Compiler

Compiled 17 to 15 computations (11.8% saved)

regimes4.0ms (0.2%)

Counts
3 → 1
Calls
Call 1
Inputs
(/.f64 0 2)
(/.f64 1/2 2)
(/.f64 8 2)
Outputs
(/.f64 1/2 2)
Calls

1 calls:

3.0ms
x
Results
AccuracySegmentsBranch
4.1%1x
Compiler

Compiled 12 to 11 computations (8.3% saved)

regimes3.0ms (0.1%)

Accuracy

Total 0.0b remaining (0%)

Threshold costs 0b (0%)

Counts
1 → 1
Calls
Call 1
Inputs
(/.f64 0 2)
Outputs
(/.f64 0 2)
Calls

1 calls:

3.0ms
x
Results
AccuracySegmentsBranch
3.6%1x
Compiler

Compiled 6 to 5 computations (16.7% saved)

bsearch0.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
1.1808770776111643e-5
6.941177150106108e+46
Compiler

Compiled 13 to 10 computations (23.1% saved)

simplify5.0ms (0.2%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
031156
139156
244156
347156
448156
Stop Event
done
saturated
Calls
Call 1
Inputs
(if (<=.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 5902958103587057/295147905179352825856) (/.f64 (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 2 x)) 2) (/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 2))
(/.f64 (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 2 x)) 2)
(/.f64 (*.f64 2 x) 2)
(/.f64 1/2 2)
(/.f64 0 2)
Outputs
(if (<=.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 5902958103587057/295147905179352825856) (/.f64 (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 2 x)) 2) (/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 2))
(if (<=.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 5902958103587057/295147905179352825856) (/.f64 (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 x 2)) 2) (/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 2))
(/.f64 (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 2 x)) 2)
(/.f64 (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 x 2)) 2)
(/.f64 (*.f64 2 x) 2)
(/.f64 (*.f64 x 2) 2)
(/.f64 1/2 2)
1/4
(/.f64 0 2)
0
Compiler

Compiled 51 to 38 computations (25.5% saved)

soundness37.0ms (1.8%)

Rules
78×associate-*r*
78×associate-*r*
52×add-exp-log
52×add-log-exp
52×log1p-expm1-u
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01014
111814
2186414
01014
111814
2186414
Stop Event
unsound
unsound

end0.0ms (0%)

preprocess62.0ms (3%)

Compiler

Compiled 402 to 272 computations (32.3% saved)

Profiling

Loading profile data...