Hyperbolic sine

Time bar (total: 2.8s)

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

Results
811.0ms2106×body1024valid
476.0ms4024×body256infinite
211.0ms1089×body512valid
98.0ms895×body256valid
51.0ms142×body2048valid
Bogosity

preprocess141.0ms (5.1%)

Algorithm
egg-herbie
Rules
512×fma-def
402×associate-/l*
369×associate-*l*
352×associate-/r/
285×difference-of-squares
Problems
133×No Errors
123×(-.f64 (exp.f64 x) (exp.f64 (neg.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 34 to 16 computations (52.9% saved)

eval1.0ms (0%)

Compiler

Compiled 25 to 15 computations (40% saved)

prune3.0ms (0.1%)

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

Compiled 18 to 14 computations (22.2% saved)

localize52.0ms (1.9%)

Localize:

Found 1 expressions with local error:

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

rewrite139.0ms (5%)

Algorithm
batch-egg-rewrite
Rules
51×add-exp-log
51×add-log-exp
51×log1p-expm1-u
51×expm1-log1p-u
49×add-cube-cbrt
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

simplify89.0ms (3.2%)

Algorithm
egg-herbie
Rules
768×fma-def
676×unswap-sqr
397×associate-*r/
334×associate-*r*
262×*-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

eval7.0ms (0.3%)

Compiler

Compiled 298 to 243 computations (18.5% saved)

prune12.0ms (0.4%)

Pruning

7 alts after pruning (6 fresh and 1 done)

PrunedKeptTotal
New20626
Fresh000
Picked011
Done000
Total20727
Accuracy
100.0%
Counts
27 → 7
Alt Table
Click to see full alt table
StatusAccuracyProgram
55.6%
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 2)
80.4%
(/.f64 (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 2 x)) 2)
50.9%
(/.f64 (*.f64 2 x) 2)
4.4%
(/.f64 8 2)
4.4%
(/.f64 3/2 2)
4.4%
(/.f64 1/2 2)
3.3%
(/.f64 0 2)
55.6%
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 2)
80.4%
(/.f64 (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 2 x)) 2)
50.9%
(/.f64 (*.f64 2 x) 2)
4.4%
(/.f64 8 2)
4.4%
(/.f64 3/2 2)
4.4%
(/.f64 1/2 2)
3.3%
(/.f64 0 2)
Compiler

Compiled 154 to 138 computations (10.4% saved)

localize190.0ms (6.8%)

Localize:

Found 1 expressions with local error:

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

Compiled 57 to 49 computations (14% 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))

rewrite60.0ms (2.2%)

Algorithm
batch-egg-rewrite
Rules
504×associate-*r*
431×associate-*l*
240×log1p-expm1-u
240×expm1-log1p-u
233×unpow-prod-down
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 (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))))

simplify54.0ms (2%)

Algorithm
egg-herbie
Rules
676×associate-*r/
499×distribute-lft-out
439×fma-neg
367×distribute-rgt-out
291×fma-def
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
093829
1224607
2627590
33156590
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.5%)

Compiler

Compiled 572 to 488 computations (14.7% saved)

prune12.0ms (0.4%)

Pruning

7 alts after pruning (1 fresh and 6 done)

PrunedKeptTotal
New31031
Fresh011
Picked055
Done011
Total31738
Accuracy
100.0%
Counts
38 → 7
Alt Table
Click to see full alt table
StatusAccuracyProgram
55.6%
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 2)
80.4%
(/.f64 (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 2 x)) 2)
50.9%
(/.f64 (*.f64 2 x) 2)
4.4%
(/.f64 8 2)
4.4%
(/.f64 3/2 2)
4.4%
(/.f64 1/2 2)
3.3%
(/.f64 0 2)
55.6%
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 2)
80.4%
(/.f64 (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 2 x)) 2)
50.9%
(/.f64 (*.f64 2 x) 2)
4.4%
(/.f64 8 2)
4.4%
(/.f64 3/2 2)
4.4%
(/.f64 1/2 2)
3.3%
(/.f64 0 2)
Compiler

Compiled 86 to 76 computations (11.6% saved)

localize31.0ms (1.1%)

Compiler

Compiled 12 to 9 computations (25% saved)

eval0.0ms (0%)

Compiler

Compiled 1 to 1 computations (0% saved)

prune4.0ms (0.2%)

Pruning

7 alts after pruning (0 fresh and 7 done)

PrunedKeptTotal
New000
Fresh000
Picked011
Done066
Total077
Accuracy
100.0%
Counts
7 → 7
Alt Table
Click to see full alt table
StatusAccuracyProgram
55.6%
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 2)
80.4%
(/.f64 (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 2 x)) 2)
50.9%
(/.f64 (*.f64 2 x) 2)
4.4%
(/.f64 8 2)
4.4%
(/.f64 3/2 2)
4.4%
(/.f64 1/2 2)
3.3%
(/.f64 0 2)
Compiler

Compiled 80 to 70 computations (12.5% saved)

regimes22.0ms (0.8%)

Counts
7 → 2
Calls
Call 1
Inputs
(/.f64 0 2)
(/.f64 1/2 2)
(/.f64 3/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:

10.0ms
x
7.0ms
(-.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))
4.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 55 to 45 computations (18.2% saved)

regimes6.0ms (0.2%)

Counts
6 → 1
Calls
Call 1
Inputs
(/.f64 0 2)
(/.f64 1/2 2)
(/.f64 3/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:

5.0ms
x
Results
AccuracySegmentsBranch
80.4%1x
Compiler

Compiled 31 to 27 computations (12.9% saved)

regimes6.0ms (0.2%)

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

1 calls:

4.0ms
x
Results
AccuracySegmentsBranch
50.9%1x
Compiler

Compiled 20 to 18 computations (10% saved)

regimes6.0ms (0.2%)

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

1 calls:

5.0ms
x
Results
AccuracySegmentsBranch
4.4%1x
Compiler

Compiled 15 to 14 computations (6.7% saved)

regimes4.0ms (0.1%)

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

1 calls:

3.0ms
x
Results
AccuracySegmentsBranch
4.4%1x
Compiler

Compiled 9 to 8 computations (11.1% 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.3%1x
Compiler

Compiled 6 to 5 computations (16.7% saved)

bsearch0.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
2.2506802255239933e-6
0.17278052192233073
Compiler

Compiled 13 to 10 computations (23.1% saved)

simplify7.0ms (0.2%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
034157
142157
247157
350157
451157
Stop Event
done
saturated
Calls
Call 1
Inputs
(if (<=.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 4722366482869645/1180591620717411303424) (/.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 3/2 2)
(/.f64 1/2 2)
(/.f64 0 2)
Outputs
(if (<=.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 4722366482869645/1180591620717411303424) (/.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))) 4722366482869645/1180591620717411303424) (/.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 3/2 2)
3/4
(/.f64 1/2 2)
1/4
(/.f64 0 2)
0
Compiler

Compiled 53 to 40 computations (24.5% saved)

soundness94.0ms (3.4%)

Rules
51×add-exp-log
51×add-log-exp
51×log1p-expm1-u
51×expm1-log1p-u
51×add-exp-log
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01014
111814
2186814
01014
111814
2186814
01014
111814
2186814
Stop Event
unsound
unsound
unsound

end0.0ms (0%)

preprocess129.0ms (4.7%)

Compiler

Compiled 462 to 312 computations (32.5% saved)

Profiling

Loading profile data...