Hyperbolic sine

Time bar (total: 2.7s)

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

Results
852.0ms2006×body1024valid
481.0ms4135×body256infinite
273.0ms1033×body512valid
138.0ms958×body256valid
44.0ms124×body2048valid
Bogosity

preprocess213.0ms (7.9%)

Algorithm
egg-herbie
Rules
1024×fma-def
804×associate-/l*
738×associate-*l*
704×associate-/r/
570×difference-of-squares
FPErrors
Click to see full error table
truthopredexupredexsubexpr
1300-0-(-.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))
1260-0-#f
00-0-x
00-0-(neg.f64 x)
00-0-(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 2)
00-0-(exp.f64 (neg.f64 x))
00-0-2
00-0-(exp.f64 x)
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
017124
142124
290124
3179124
4439116
51418116
65999116
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 59 to 25 computations (57.6% saved)

eval1.0ms (0%)

Compiler

Compiled 25 to 15 computations (40% saved)

prune2.0ms (0.1%)

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

Compiled 18 to 14 computations (22.2% saved)

localize55.0ms (2%)

Localize:

Found 1 expressions with local error:

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

rewrite136.0ms (5%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01014
111814
2186814
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

simplify91.0ms (3.4%)

Algorithm
egg-herbie
Rules
1536×fma-def
1352×unswap-sqr
794×associate-*r/
668×associate-*r*
524×*-commutative
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
035250
170250
2146250
3358250
4739250
51698250
62599250
74154250
86906250
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

eval8.0ms (0.3%)

Compiler

Compiled 298 to 243 computations (18.5% saved)

prune12.0ms (0.4%)

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.2%
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 2)
85.3%
(/.f64 (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 2 x)) 2)
53.3%
(/.f64 (*.f64 2 x) 2)
4.2%
(/.f64 8 2)
4.2%
(/.f64 1/2 2)
3.6%
(/.f64 0 2)
53.2%
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 2)
85.3%
(/.f64 (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 2 x)) 2)
53.3%
(/.f64 (*.f64 2 x) 2)
4.2%
(/.f64 8 2)
4.2%
(/.f64 1/2 2)
3.6%
(/.f64 0 2)
Compiler

Compiled 138 to 122 computations (11.6% saved)

localize86.0ms (3.2%)

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

rewrite59.0ms (2.2%)

Algorithm
batch-egg-rewrite
Rules
1000×associate-*r*
862×associate-*l*
472×unpow-prod-down
306×log-prod
278×cbrt-prod
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0916
17416
273516
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 (pow.f64 (cbrt.f64 (cbrt.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 (pow.f64 (cbrt.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))))

simplify57.0ms (2.1%)

Algorithm
egg-herbie
Rules
1352×associate-*r/
990×distribute-lft-out
868×fma-neg
718×distribute-rgt-out
582×fma-def
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
090858
1222617
2627600
33120600
Stop Event
node limit
Counts
25 → 33
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 (pow.f64 (cbrt.f64 (cbrt.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 (pow.f64 (cbrt.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 (pow.f64 (cbrt.f64 (cbrt.f64 (exp.f64 (pow.f64 x 3)))) 2)) (log.f64 (cbrt.f64 (cbrt.f64 (exp.f64 (pow.f64 x 3))))))
(+.f64 (*.f64 2 (log.f64 (cbrt.f64 (cbrt.f64 (exp.f64 (pow.f64 x 3)))))) (log.f64 (cbrt.f64 (cbrt.f64 (exp.f64 (pow.f64 x 3))))))
(*.f64 3 (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 (pow.f64 (cbrt.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))
(+.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))

eval15.0ms (0.5%)

Compiler

Compiled 610 to 521 computations (14.6% saved)

prune7.0ms (0.3%)

Pruning

6 alts after pruning (0 fresh and 6 done)

PrunedKeptTotal
New33033
Fresh000
Picked055
Done011
Total33639
Accuracy
100.0%
Counts
39 → 6
Alt Table
Click to see full alt table
StatusAccuracyProgram
53.2%
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 2)
85.3%
(/.f64 (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 2 x)) 2)
53.3%
(/.f64 (*.f64 2 x) 2)
4.2%
(/.f64 8 2)
4.2%
(/.f64 1/2 2)
3.6%
(/.f64 0 2)
Compiler

Compiled 73 to 63 computations (13.7% saved)

regimes19.0ms (0.7%)

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
4.0ms
(-.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))
3.0ms
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 2)
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.2%)

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
85.3%1x
Compiler

Compiled 28 to 24 computations (14.3% saved)

regimes5.0ms (0.2%)

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:

4.0ms
x
Results
AccuracySegmentsBranch
53.3%1x
Compiler

Compiled 17 to 15 computations (11.8% saved)

regimes8.0ms (0.3%)

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:

7.0ms
x
Results
AccuracySegmentsBranch
4.2%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
8.166809393750363e-6
1881224.4296597012
Compiler

Compiled 13 to 10 computations (23.1% saved)

simplify6.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/590295810358705651712) (/.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/590295810358705651712) (/.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/590295810358705651712) (/.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)

soundness59.0ms (2.2%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01014
111814
2186814
01014
111814
2186814
Stop Event
unsound
unsound

end0.0ms (0%)

preprocess63.0ms (2.3%)

Compiler

Compiled 402 to 272 computations (32.3% saved)

Profiling

Loading profile data...