Details

Time bar (total: 1.5s)

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 7 to 6 computations (14.3% saved)

sample774.0ms (52%)

Results
763.0ms8256×body256valid
Bogosity

preprocess16.0ms (1.1%)

Algorithm
egg-herbie
Rules
+-commutative
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
1813
011
Stop Event
saturated
saturated
Calls
Call 1
Inputs
0
Outputs
0
Call 2
Inputs
(/.f64 (+.f64 x 16) 116)
Outputs
(/.f64 (+.f64 x 16) 116)
Compiler

Compiled 7 to 6 computations (14.3% saved)

simplify14.0ms (0.9%)

Algorithm
egg-herbie
Rules
+-commutative
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
1813
Stop Event
saturated
Counts
1 → 1
Calls
Call 1
Inputs
(/.f64 (+.f64 x 16) 116)
Outputs
(/.f64 (+.f64 x 16) 116)

eval1.0ms (0%)

Compiler

Compiled 6 to 5 computations (16.7% saved)

prune1.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New011
Fresh011
Picked000
Done000
Total022
Accurracy
100.0%
Counts
2 → 1
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(/.f64 (+.f64 x 16) 116)
Compiler

Compiled 6 to 5 computations (16.7% saved)

localize26.0ms (1.8%)

Local Accuracy

Found 1 expressions with local accuracy:

NewAccuracyProgram
100.0%
(/.f64 (+.f64 x 16) 116)
Compiler

Compiled 13 to 10 computations (23.1% saved)

series1.0ms (0.1%)

Counts
1 → 12
Calls

3 calls:

TimeVariablePointExpression
0.0ms
x
@inf
(/.f64 (+.f64 x 16) 116)
0.0ms
x
@-inf
(/.f64 (+.f64 x 16) 116)
0.0ms
x
@0
(/.f64 (+.f64 x 16) 116)

rewrite56.0ms (3.8%)

Algorithm
batch-egg-rewrite
Rules
1586×pow1
1504×add-exp-log
1504×log1p-expm1-u
1504×expm1-log1p-u
1478×add-log-exp
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
116113
2198413
Stop Event
node limit
Counts
1 → 23
Calls
Call 1
Inputs
(/.f64 (+.f64 x 16) 116)
Outputs
(-.f64 (+.f64 1 (*.f64 (+.f64 x 16) 1/116)) 1)
(*.f64 (+.f64 x 16) 1/116)
(*.f64 (*.f64 (+.f64 x 16) 1/116) 1)
(*.f64 1 (*.f64 (+.f64 x 16) 1/116))
(*.f64 (pow.f64 (cbrt.f64 (+.f64 x 16)) 2) (*.f64 (cbrt.f64 (+.f64 x 16)) 1/116))
(*.f64 (cbrt.f64 (*.f64 (+.f64 x 16) 1/116)) (pow.f64 (cbrt.f64 (*.f64 (+.f64 x 16) 1/116)) 2))
(*.f64 (pow.f64 (cbrt.f64 (*.f64 (+.f64 x 16) 1/116)) 2) (cbrt.f64 (*.f64 (+.f64 x 16) 1/116)))
(*.f64 (sqrt.f64 (+.f64 x 16)) (*.f64 (sqrt.f64 (+.f64 x 16)) 1/116))
(*.f64 (sqrt.f64 (*.f64 (+.f64 x 16) 1/116)) (sqrt.f64 (*.f64 (+.f64 x 16) 1/116)))
(*.f64 (+.f64 -16 (neg.f64 x)) -1/116)
(*.f64 1/116 (+.f64 x 16))
(pow.f64 (*.f64 (+.f64 x 16) 1/116) 1)
(pow.f64 (cbrt.f64 (*.f64 (+.f64 x 16) 1/116)) 3)
(pow.f64 (pow.f64 (*.f64 (+.f64 x 16) 1/116) 3) 1/3)
(pow.f64 (sqrt.f64 (*.f64 (+.f64 x 16) 1/116)) 2)
(pow.f64 (/.f64 116 (+.f64 x 16)) -1)
(neg.f64 (/.f64 (+.f64 x 16) -116))
(sqrt.f64 (pow.f64 (*.f64 (+.f64 x 16) 1/116) 2))
(log.f64 (exp.f64 (*.f64 (+.f64 x 16) 1/116)))
(cbrt.f64 (pow.f64 (*.f64 (+.f64 x 16) 1/116) 3))
(expm1.f64 (log1p.f64 (*.f64 (+.f64 x 16) 1/116)))
(exp.f64 (log.f64 (*.f64 (+.f64 x 16) 1/116)))
(log1p.f64 (expm1.f64 (*.f64 (+.f64 x 16) 1/116)))

simplify51.0ms (3.4%)

Algorithm
egg-herbie
Rules
1706×fma-def
1072×log-prod
1030×associate-*r*
912×associate-*l*
476×associate-+r+
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
061435
1135307
2487307
33768307
Stop Event
node limit
Counts
35 → 30
Calls
Call 1
Inputs
4/29
(+.f64 4/29 (*.f64 1/116 x))
(+.f64 4/29 (*.f64 1/116 x))
(+.f64 4/29 (*.f64 1/116 x))
(*.f64 1/116 x)
(+.f64 4/29 (*.f64 1/116 x))
(+.f64 4/29 (*.f64 1/116 x))
(+.f64 4/29 (*.f64 1/116 x))
(*.f64 1/116 x)
(+.f64 4/29 (*.f64 1/116 x))
(+.f64 4/29 (*.f64 1/116 x))
(+.f64 4/29 (*.f64 1/116 x))
(-.f64 (+.f64 1 (*.f64 (+.f64 x 16) 1/116)) 1)
(*.f64 (+.f64 x 16) 1/116)
(*.f64 (*.f64 (+.f64 x 16) 1/116) 1)
(*.f64 1 (*.f64 (+.f64 x 16) 1/116))
(*.f64 (pow.f64 (cbrt.f64 (+.f64 x 16)) 2) (*.f64 (cbrt.f64 (+.f64 x 16)) 1/116))
(*.f64 (cbrt.f64 (*.f64 (+.f64 x 16) 1/116)) (pow.f64 (cbrt.f64 (*.f64 (+.f64 x 16) 1/116)) 2))
(*.f64 (pow.f64 (cbrt.f64 (*.f64 (+.f64 x 16) 1/116)) 2) (cbrt.f64 (*.f64 (+.f64 x 16) 1/116)))
(*.f64 (sqrt.f64 (+.f64 x 16)) (*.f64 (sqrt.f64 (+.f64 x 16)) 1/116))
(*.f64 (sqrt.f64 (*.f64 (+.f64 x 16) 1/116)) (sqrt.f64 (*.f64 (+.f64 x 16) 1/116)))
(*.f64 (+.f64 -16 (neg.f64 x)) -1/116)
(*.f64 1/116 (+.f64 x 16))
(pow.f64 (*.f64 (+.f64 x 16) 1/116) 1)
(pow.f64 (cbrt.f64 (*.f64 (+.f64 x 16) 1/116)) 3)
(pow.f64 (pow.f64 (*.f64 (+.f64 x 16) 1/116) 3) 1/3)
(pow.f64 (sqrt.f64 (*.f64 (+.f64 x 16) 1/116)) 2)
(pow.f64 (/.f64 116 (+.f64 x 16)) -1)
(neg.f64 (/.f64 (+.f64 x 16) -116))
(sqrt.f64 (pow.f64 (*.f64 (+.f64 x 16) 1/116) 2))
(log.f64 (exp.f64 (*.f64 (+.f64 x 16) 1/116)))
(cbrt.f64 (pow.f64 (*.f64 (+.f64 x 16) 1/116) 3))
(expm1.f64 (log1p.f64 (*.f64 (+.f64 x 16) 1/116)))
(exp.f64 (log.f64 (*.f64 (+.f64 x 16) 1/116)))
(log1p.f64 (expm1.f64 (*.f64 (+.f64 x 16) 1/116)))
Outputs
4/29
(+.f64 4/29 (*.f64 1/116 x))
(fma.f64 1/116 x 4/29)
(+.f64 4/29 (*.f64 1/116 x))
(fma.f64 1/116 x 4/29)
(+.f64 4/29 (*.f64 1/116 x))
(fma.f64 1/116 x 4/29)
(*.f64 1/116 x)
(+.f64 4/29 (*.f64 1/116 x))
(fma.f64 1/116 x 4/29)
(+.f64 4/29 (*.f64 1/116 x))
(fma.f64 1/116 x 4/29)
(+.f64 4/29 (*.f64 1/116 x))
(fma.f64 1/116 x 4/29)
(*.f64 1/116 x)
(+.f64 4/29 (*.f64 1/116 x))
(fma.f64 1/116 x 4/29)
(+.f64 4/29 (*.f64 1/116 x))
(fma.f64 1/116 x 4/29)
(+.f64 4/29 (*.f64 1/116 x))
(fma.f64 1/116 x 4/29)
(-.f64 (+.f64 1 (*.f64 (+.f64 x 16) 1/116)) 1)
(+.f64 4/29 (*.f64 1/116 x))
(fma.f64 1/116 x 4/29)
(*.f64 (+.f64 x 16) 1/116)
(+.f64 4/29 (*.f64 1/116 x))
(fma.f64 1/116 x 4/29)
(*.f64 (*.f64 (+.f64 x 16) 1/116) 1)
(+.f64 4/29 (*.f64 1/116 x))
(fma.f64 1/116 x 4/29)
(*.f64 1 (*.f64 (+.f64 x 16) 1/116))
(+.f64 4/29 (*.f64 1/116 x))
(fma.f64 1/116 x 4/29)
(*.f64 (pow.f64 (cbrt.f64 (+.f64 x 16)) 2) (*.f64 (cbrt.f64 (+.f64 x 16)) 1/116))
(+.f64 4/29 (*.f64 1/116 x))
(fma.f64 1/116 x 4/29)
(*.f64 (cbrt.f64 (*.f64 (+.f64 x 16) 1/116)) (pow.f64 (cbrt.f64 (*.f64 (+.f64 x 16) 1/116)) 2))
(+.f64 4/29 (*.f64 1/116 x))
(fma.f64 1/116 x 4/29)
(*.f64 (pow.f64 (cbrt.f64 (*.f64 (+.f64 x 16) 1/116)) 2) (cbrt.f64 (*.f64 (+.f64 x 16) 1/116)))
(+.f64 4/29 (*.f64 1/116 x))
(fma.f64 1/116 x 4/29)
(*.f64 (sqrt.f64 (+.f64 x 16)) (*.f64 (sqrt.f64 (+.f64 x 16)) 1/116))
(+.f64 4/29 (*.f64 1/116 x))
(fma.f64 1/116 x 4/29)
(*.f64 (sqrt.f64 (*.f64 (+.f64 x 16) 1/116)) (sqrt.f64 (*.f64 (+.f64 x 16) 1/116)))
(+.f64 4/29 (*.f64 1/116 x))
(fma.f64 1/116 x 4/29)
(*.f64 (+.f64 -16 (neg.f64 x)) -1/116)
(+.f64 4/29 (*.f64 1/116 x))
(fma.f64 1/116 x 4/29)
(*.f64 1/116 (+.f64 x 16))
(+.f64 4/29 (*.f64 1/116 x))
(fma.f64 1/116 x 4/29)
(pow.f64 (*.f64 (+.f64 x 16) 1/116) 1)
(+.f64 4/29 (*.f64 1/116 x))
(fma.f64 1/116 x 4/29)
(pow.f64 (cbrt.f64 (*.f64 (+.f64 x 16) 1/116)) 3)
(+.f64 4/29 (*.f64 1/116 x))
(fma.f64 1/116 x 4/29)
(pow.f64 (pow.f64 (*.f64 (+.f64 x 16) 1/116) 3) 1/3)
(+.f64 4/29 (*.f64 1/116 x))
(fma.f64 1/116 x 4/29)
(pow.f64 (sqrt.f64 (*.f64 (+.f64 x 16) 1/116)) 2)
(+.f64 4/29 (*.f64 1/116 x))
(fma.f64 1/116 x 4/29)
(pow.f64 (/.f64 116 (+.f64 x 16)) -1)
(+.f64 4/29 (*.f64 1/116 x))
(fma.f64 1/116 x 4/29)
(neg.f64 (/.f64 (+.f64 x 16) -116))
(/.f64 (neg.f64 (+.f64 x 16)) -116)
(/.f64 (-.f64 -16 x) -116)
(-.f64 4/29 (/.f64 x -116))
(sqrt.f64 (pow.f64 (*.f64 (+.f64 x 16) 1/116) 2))
(+.f64 4/29 (*.f64 1/116 x))
(fma.f64 1/116 x 4/29)
(log.f64 (exp.f64 (*.f64 (+.f64 x 16) 1/116)))
(+.f64 4/29 (*.f64 1/116 x))
(fma.f64 1/116 x 4/29)
(cbrt.f64 (pow.f64 (*.f64 (+.f64 x 16) 1/116) 3))
(+.f64 4/29 (*.f64 1/116 x))
(fma.f64 1/116 x 4/29)
(expm1.f64 (log1p.f64 (*.f64 (+.f64 x 16) 1/116)))
(+.f64 4/29 (*.f64 1/116 x))
(fma.f64 1/116 x 4/29)
(exp.f64 (log.f64 (*.f64 (+.f64 x 16) 1/116)))
(+.f64 4/29 (*.f64 1/116 x))
(fma.f64 1/116 x 4/29)
(log1p.f64 (expm1.f64 (*.f64 (+.f64 x 16) 1/116)))
(+.f64 4/29 (*.f64 1/116 x))
(fma.f64 1/116 x 4/29)

eval6.0ms (0.4%)

Compiler

Compiled 225 to 191 computations (15.1% saved)

prune5.0ms (0.3%)

Pruning

4 alts after pruning (3 fresh and 1 done)

PrunedKeptTotal
New27330
Fresh000
Picked011
Done000
Total27431
Accurracy
100.0%
Counts
31 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(/.f64 (+.f64 x 16) 116)
100.0%
(-.f64 4/29 (/.f64 x -116))
44.3%
(*.f64 1/116 x)
55.6%
4/29
Compiler

Compiled 18 to 15 computations (16.7% saved)

localize15.0ms (1%)

Local Accuracy

Found 1 expressions with local accuracy:

NewAccuracyProgram
99.9%
(*.f64 1/116 x)
Compiler

Compiled 7 to 5 computations (28.6% saved)

series1.0ms (0.1%)

Counts
1 → 0
Calls

3 calls:

TimeVariablePointExpression
0.0ms
x
@-inf
(*.f64 1/116 x)
0.0ms
x
@inf
(*.f64 1/116 x)
0.0ms
x
@0
(*.f64 1/116 x)

rewrite46.0ms (3.1%)

Algorithm
batch-egg-rewrite
Rules
884×pow1
860×add-sqr-sqrt
842×*-un-lft-identity
816×add-exp-log
816×log1p-expm1-u
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
057
11007
211107
Stop Event
node limit
Counts
1 → 14
Calls
Call 1
Inputs
(*.f64 1/116 x)
Outputs
(+.f64 0 (*.f64 1/116 x))
(+.f64 (log.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 1/116) x)) (cbrt.f64 (pow.f64 (exp.f64 1/116) x)))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 1/116) x))))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 1/116) x))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 1/116) x))))
(-.f64 (+.f64 1 (*.f64 1/116 x)) 1)
(pow.f64 (*.f64 1/116 x) 1)
(pow.f64 (cbrt.f64 (*.f64 1/116 x)) 3)
(pow.f64 (pow.f64 (*.f64 1/116 x) 3) 1/3)
(pow.f64 (sqrt.f64 (*.f64 1/116 x)) 2)
(sqrt.f64 (*.f64 1/13456 (*.f64 x x)))
(log.f64 (pow.f64 (exp.f64 1/116) x))
(cbrt.f64 (pow.f64 (*.f64 1/116 x) 3))
(expm1.f64 (log1p.f64 (*.f64 1/116 x)))
(exp.f64 (log.f64 (*.f64 1/116 x)))
(log1p.f64 (expm1.f64 (*.f64 1/116 x)))

simplify61.0ms (4.1%)

Algorithm
egg-herbie
Rules
1586×log-prod
1574×fma-def
1114×fma-neg
530×*-commutative
518×associate-*r*
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
043154
194140
2309116
32268116
45057116
57318116
Stop Event
node limit
Counts
14 → 18
Calls
Call 1
Inputs
(+.f64 0 (*.f64 1/116 x))
(+.f64 (log.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 1/116) x)) (cbrt.f64 (pow.f64 (exp.f64 1/116) x)))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 1/116) x))))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 1/116) x))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 1/116) x))))
(-.f64 (+.f64 1 (*.f64 1/116 x)) 1)
(pow.f64 (*.f64 1/116 x) 1)
(pow.f64 (cbrt.f64 (*.f64 1/116 x)) 3)
(pow.f64 (pow.f64 (*.f64 1/116 x) 3) 1/3)
(pow.f64 (sqrt.f64 (*.f64 1/116 x)) 2)
(sqrt.f64 (*.f64 1/13456 (*.f64 x x)))
(log.f64 (pow.f64 (exp.f64 1/116) x))
(cbrt.f64 (pow.f64 (*.f64 1/116 x) 3))
(expm1.f64 (log1p.f64 (*.f64 1/116 x)))
(exp.f64 (log.f64 (*.f64 1/116 x)))
(log1p.f64 (expm1.f64 (*.f64 1/116 x)))
Outputs
(+.f64 0 (*.f64 1/116 x))
(*.f64 1/116 x)
(+.f64 (log.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 1/116) x)) (cbrt.f64 (pow.f64 (exp.f64 1/116) x)))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 1/116) x))))
(+.f64 (*.f64 2 (log.f64 (cbrt.f64 (pow.f64 (exp.f64 1/116) x)))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 1/116) x))))
(*.f64 3 (log.f64 (cbrt.f64 (pow.f64 (exp.f64 1/116) x))))
(*.f64 (log.f64 (cbrt.f64 (pow.f64 (exp.f64 1/116) x))) 3)
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 1/116) x))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 1/116) x))))
(*.f64 1/116 x)
(-.f64 (+.f64 1 (*.f64 1/116 x)) 1)
(*.f64 1/116 x)
(pow.f64 (*.f64 1/116 x) 1)
(*.f64 1/116 x)
(pow.f64 (cbrt.f64 (*.f64 1/116 x)) 3)
(*.f64 1/116 x)
(pow.f64 (pow.f64 (*.f64 1/116 x) 3) 1/3)
(*.f64 1/116 x)
(pow.f64 (sqrt.f64 (*.f64 1/116 x)) 2)
(*.f64 1/116 x)
(sqrt.f64 (*.f64 1/13456 (*.f64 x x)))
(*.f64 1/116 x)
(log.f64 (pow.f64 (exp.f64 1/116) x))
(*.f64 1/116 x)
(cbrt.f64 (pow.f64 (*.f64 1/116 x) 3))
(*.f64 1/116 x)
(expm1.f64 (log1p.f64 (*.f64 1/116 x)))
(*.f64 1/116 x)
(exp.f64 (log.f64 (*.f64 1/116 x)))
(*.f64 1/116 x)
(log1p.f64 (expm1.f64 (*.f64 1/116 x)))
(*.f64 1/116 x)

localize21.0ms (1.4%)

Local Accuracy

Found 1 expressions with local accuracy:

NewAccuracyProgram
100.0%
(-.f64 4/29 (/.f64 x -116))
Compiler

Compiled 13 to 10 computations (23.1% saved)

series1.0ms (0%)

Counts
1 → 12
Calls

3 calls:

TimeVariablePointExpression
0.0ms
x
@0
(-.f64 4/29 (/.f64 x -116))
0.0ms
x
@inf
(-.f64 4/29 (/.f64 x -116))
0.0ms
x
@-inf
(-.f64 4/29 (/.f64 x -116))

rewrite52.0ms (3.5%)

Algorithm
batch-egg-rewrite
Rules
1630×pow1
1538×add-exp-log
1538×log1p-expm1-u
1538×expm1-log1p-u
1510×add-log-exp
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
116113
2201313
Stop Event
node limit
Counts
1 → 28
Calls
Call 1
Inputs
(-.f64 4/29 (/.f64 x -116))
Outputs
(+.f64 4/29 (*.f64 x 1/116))
(+.f64 4/29 (*.f64 (*.f64 x 1/116) 1))
(+.f64 (*.f64 x 1/116) 4/29)
(*.f64 (+.f64 4/29 (*.f64 x 1/116)) 1)
(*.f64 1 (+.f64 4/29 (*.f64 x 1/116)))
(*.f64 (cbrt.f64 (+.f64 4/29 (*.f64 x 1/116))) (pow.f64 (cbrt.f64 (+.f64 4/29 (*.f64 x 1/116))) 2))
(*.f64 (pow.f64 (cbrt.f64 (+.f64 4/29 (*.f64 x 1/116))) 2) (cbrt.f64 (+.f64 4/29 (*.f64 x 1/116))))
(*.f64 (sqrt.f64 (+.f64 4/29 (*.f64 x 1/116))) (sqrt.f64 (+.f64 4/29 (*.f64 x 1/116))))
(*.f64 (-.f64 64/24389 (*.f64 (pow.f64 x 3) -1/1560896)) (/.f64 1 (+.f64 16/841 (*.f64 (*.f64 x -1/116) (+.f64 4/29 (*.f64 x -1/116))))))
(*.f64 (-.f64 16/841 (*.f64 (*.f64 x x) 1/13456)) (/.f64 1 (+.f64 4/29 (*.f64 x -1/116))))
(/.f64 1 (/.f64 (+.f64 16/841 (*.f64 (*.f64 x -1/116) (+.f64 4/29 (*.f64 x -1/116)))) (-.f64 64/24389 (*.f64 (pow.f64 x 3) -1/1560896))))
(/.f64 1 (/.f64 (+.f64 4/29 (*.f64 x -1/116)) (-.f64 16/841 (*.f64 (*.f64 x x) 1/13456))))
(/.f64 (-.f64 64/24389 (*.f64 (pow.f64 x 3) -1/1560896)) (+.f64 16/841 (*.f64 (*.f64 x -1/116) (+.f64 4/29 (*.f64 x -1/116)))))
(/.f64 (-.f64 16/841 (*.f64 (*.f64 x x) 1/13456)) (+.f64 4/29 (*.f64 x -1/116)))
(/.f64 (neg.f64 (-.f64 64/24389 (*.f64 (pow.f64 x 3) -1/1560896))) (neg.f64 (+.f64 16/841 (*.f64 (*.f64 x -1/116) (+.f64 4/29 (*.f64 x -1/116))))))
(/.f64 (neg.f64 (-.f64 16/841 (*.f64 (*.f64 x x) 1/13456))) (neg.f64 (+.f64 4/29 (*.f64 x -1/116))))
(/.f64 (+.f64 64/24389 (pow.f64 (*.f64 x 1/116) 3)) (+.f64 16/841 (-.f64 (*.f64 (*.f64 x 1/116) (*.f64 x 1/116)) (*.f64 4/29 (*.f64 x 1/116)))))
(/.f64 (-.f64 16/841 (*.f64 (*.f64 x 1/116) (*.f64 x 1/116))) (-.f64 4/29 (*.f64 x 1/116)))
(pow.f64 (+.f64 4/29 (*.f64 x 1/116)) 1)
(pow.f64 (cbrt.f64 (+.f64 4/29 (*.f64 x 1/116))) 3)
(pow.f64 (pow.f64 (+.f64 4/29 (*.f64 x 1/116)) 3) 1/3)
(pow.f64 (sqrt.f64 (+.f64 4/29 (*.f64 x 1/116))) 2)
(sqrt.f64 (pow.f64 (+.f64 4/29 (*.f64 x 1/116)) 2))
(log.f64 (exp.f64 (+.f64 4/29 (*.f64 x 1/116))))
(cbrt.f64 (pow.f64 (+.f64 4/29 (*.f64 x 1/116)) 3))
(expm1.f64 (log1p.f64 (+.f64 4/29 (*.f64 x 1/116))))
(exp.f64 (log.f64 (+.f64 4/29 (*.f64 x 1/116))))
(log1p.f64 (expm1.f64 (+.f64 4/29 (*.f64 x 1/116))))

simplify57.0ms (3.9%)

Algorithm
egg-herbie
Rules
1864×fma-def
788×div-sub
590×associate-/r*
550×distribute-lft-in
532×distribute-rgt-in
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
082778
1221638
2798608
32915588
Stop Event
node limit
Counts
40 → 40
Calls
Call 1
Inputs
4/29
(+.f64 4/29 (*.f64 1/116 x))
(+.f64 4/29 (*.f64 1/116 x))
(+.f64 4/29 (*.f64 1/116 x))
(*.f64 1/116 x)
(+.f64 4/29 (*.f64 1/116 x))
(+.f64 4/29 (*.f64 1/116 x))
(+.f64 4/29 (*.f64 1/116 x))
(*.f64 1/116 x)
(+.f64 4/29 (*.f64 1/116 x))
(+.f64 4/29 (*.f64 1/116 x))
(+.f64 4/29 (*.f64 1/116 x))
(+.f64 4/29 (*.f64 x 1/116))
(+.f64 4/29 (*.f64 (*.f64 x 1/116) 1))
(+.f64 (*.f64 x 1/116) 4/29)
(*.f64 (+.f64 4/29 (*.f64 x 1/116)) 1)
(*.f64 1 (+.f64 4/29 (*.f64 x 1/116)))
(*.f64 (cbrt.f64 (+.f64 4/29 (*.f64 x 1/116))) (pow.f64 (cbrt.f64 (+.f64 4/29 (*.f64 x 1/116))) 2))
(*.f64 (pow.f64 (cbrt.f64 (+.f64 4/29 (*.f64 x 1/116))) 2) (cbrt.f64 (+.f64 4/29 (*.f64 x 1/116))))
(*.f64 (sqrt.f64 (+.f64 4/29 (*.f64 x 1/116))) (sqrt.f64 (+.f64 4/29 (*.f64 x 1/116))))
(*.f64 (-.f64 64/24389 (*.f64 (pow.f64 x 3) -1/1560896)) (/.f64 1 (+.f64 16/841 (*.f64 (*.f64 x -1/116) (+.f64 4/29 (*.f64 x -1/116))))))
(*.f64 (-.f64 16/841 (*.f64 (*.f64 x x) 1/13456)) (/.f64 1 (+.f64 4/29 (*.f64 x -1/116))))
(/.f64 1 (/.f64 (+.f64 16/841 (*.f64 (*.f64 x -1/116) (+.f64 4/29 (*.f64 x -1/116)))) (-.f64 64/24389 (*.f64 (pow.f64 x 3) -1/1560896))))
(/.f64 1 (/.f64 (+.f64 4/29 (*.f64 x -1/116)) (-.f64 16/841 (*.f64 (*.f64 x x) 1/13456))))
(/.f64 (-.f64 64/24389 (*.f64 (pow.f64 x 3) -1/1560896)) (+.f64 16/841 (*.f64 (*.f64 x -1/116) (+.f64 4/29 (*.f64 x -1/116)))))
(/.f64 (-.f64 16/841 (*.f64 (*.f64 x x) 1/13456)) (+.f64 4/29 (*.f64 x -1/116)))
(/.f64 (neg.f64 (-.f64 64/24389 (*.f64 (pow.f64 x 3) -1/1560896))) (neg.f64 (+.f64 16/841 (*.f64 (*.f64 x -1/116) (+.f64 4/29 (*.f64 x -1/116))))))
(/.f64 (neg.f64 (-.f64 16/841 (*.f64 (*.f64 x x) 1/13456))) (neg.f64 (+.f64 4/29 (*.f64 x -1/116))))
(/.f64 (+.f64 64/24389 (pow.f64 (*.f64 x 1/116) 3)) (+.f64 16/841 (-.f64 (*.f64 (*.f64 x 1/116) (*.f64 x 1/116)) (*.f64 4/29 (*.f64 x 1/116)))))
(/.f64 (-.f64 16/841 (*.f64 (*.f64 x 1/116) (*.f64 x 1/116))) (-.f64 4/29 (*.f64 x 1/116)))
(pow.f64 (+.f64 4/29 (*.f64 x 1/116)) 1)
(pow.f64 (cbrt.f64 (+.f64 4/29 (*.f64 x 1/116))) 3)
(pow.f64 (pow.f64 (+.f64 4/29 (*.f64 x 1/116)) 3) 1/3)
(pow.f64 (sqrt.f64 (+.f64 4/29 (*.f64 x 1/116))) 2)
(sqrt.f64 (pow.f64 (+.f64 4/29 (*.f64 x 1/116)) 2))
(log.f64 (exp.f64 (+.f64 4/29 (*.f64 x 1/116))))
(cbrt.f64 (pow.f64 (+.f64 4/29 (*.f64 x 1/116)) 3))
(expm1.f64 (log1p.f64 (+.f64 4/29 (*.f64 x 1/116))))
(exp.f64 (log.f64 (+.f64 4/29 (*.f64 x 1/116))))
(log1p.f64 (expm1.f64 (+.f64 4/29 (*.f64 x 1/116))))
Outputs
4/29
(+.f64 4/29 (*.f64 1/116 x))
(fma.f64 x 1/116 4/29)
(fma.f64 1/116 x 4/29)
(+.f64 4/29 (*.f64 1/116 x))
(fma.f64 x 1/116 4/29)
(fma.f64 1/116 x 4/29)
(+.f64 4/29 (*.f64 1/116 x))
(fma.f64 x 1/116 4/29)
(fma.f64 1/116 x 4/29)
(*.f64 1/116 x)
(+.f64 4/29 (*.f64 1/116 x))
(fma.f64 x 1/116 4/29)
(fma.f64 1/116 x 4/29)
(+.f64 4/29 (*.f64 1/116 x))
(fma.f64 x 1/116 4/29)
(fma.f64 1/116 x 4/29)
(+.f64 4/29 (*.f64 1/116 x))
(fma.f64 x 1/116 4/29)
(fma.f64 1/116 x 4/29)
(*.f64 1/116 x)
(+.f64 4/29 (*.f64 1/116 x))
(fma.f64 x 1/116 4/29)
(fma.f64 1/116 x 4/29)
(+.f64 4/29 (*.f64 1/116 x))
(fma.f64 x 1/116 4/29)
(fma.f64 1/116 x 4/29)
(+.f64 4/29 (*.f64 1/116 x))
(fma.f64 x 1/116 4/29)
(fma.f64 1/116 x 4/29)
(+.f64 4/29 (*.f64 x 1/116))
(fma.f64 x 1/116 4/29)
(fma.f64 1/116 x 4/29)
(+.f64 4/29 (*.f64 (*.f64 x 1/116) 1))
(fma.f64 x 1/116 4/29)
(fma.f64 1/116 x 4/29)
(+.f64 (*.f64 x 1/116) 4/29)
(fma.f64 x 1/116 4/29)
(fma.f64 1/116 x 4/29)
(*.f64 (+.f64 4/29 (*.f64 x 1/116)) 1)
(fma.f64 x 1/116 4/29)
(fma.f64 1/116 x 4/29)
(*.f64 1 (+.f64 4/29 (*.f64 x 1/116)))
(fma.f64 x 1/116 4/29)
(fma.f64 1/116 x 4/29)
(*.f64 (cbrt.f64 (+.f64 4/29 (*.f64 x 1/116))) (pow.f64 (cbrt.f64 (+.f64 4/29 (*.f64 x 1/116))) 2))
(fma.f64 x 1/116 4/29)
(fma.f64 1/116 x 4/29)
(*.f64 (pow.f64 (cbrt.f64 (+.f64 4/29 (*.f64 x 1/116))) 2) (cbrt.f64 (+.f64 4/29 (*.f64 x 1/116))))
(fma.f64 x 1/116 4/29)
(fma.f64 1/116 x 4/29)
(*.f64 (sqrt.f64 (+.f64 4/29 (*.f64 x 1/116))) (sqrt.f64 (+.f64 4/29 (*.f64 x 1/116))))
(fma.f64 x 1/116 4/29)
(fma.f64 1/116 x 4/29)
(*.f64 (-.f64 64/24389 (*.f64 (pow.f64 x 3) -1/1560896)) (/.f64 1 (+.f64 16/841 (*.f64 (*.f64 x -1/116) (+.f64 4/29 (*.f64 x -1/116))))))
(/.f64 (*.f64 (-.f64 64/24389 (*.f64 (pow.f64 x 3) -1/1560896)) 1) (+.f64 16/841 (*.f64 x (*.f64 -1/116 (+.f64 4/29 (*.f64 x -1/116))))))
(/.f64 (fma.f64 (pow.f64 x 3) 1/1560896 64/24389) (fma.f64 x (*.f64 -1/116 (fma.f64 x -1/116 4/29)) 16/841))
(/.f64 (fma.f64 (pow.f64 x 3) 1/1560896 64/24389) (fma.f64 x (+.f64 (*.f64 x 1/13456) -1/841) 16/841))
(/.f64 (fma.f64 (pow.f64 x 3) 1/1560896 64/24389) (fma.f64 x (fma.f64 x 1/13456 -1/841) 16/841))
(*.f64 (-.f64 16/841 (*.f64 (*.f64 x x) 1/13456)) (/.f64 1 (+.f64 4/29 (*.f64 x -1/116))))
(*.f64 (-.f64 16/841 (*.f64 x (*.f64 x 1/13456))) (/.f64 1 (+.f64 4/29 (*.f64 x -1/116))))
(/.f64 (+.f64 16/841 (*.f64 (*.f64 x x) -1/13456)) (fma.f64 x -1/116 4/29))
(/.f64 (fma.f64 x (*.f64 x -1/13456) 16/841) (fma.f64 x -1/116 4/29))
(/.f64 1 (/.f64 (+.f64 16/841 (*.f64 (*.f64 x -1/116) (+.f64 4/29 (*.f64 x -1/116)))) (-.f64 64/24389 (*.f64 (pow.f64 x 3) -1/1560896))))
(/.f64 (*.f64 (-.f64 64/24389 (*.f64 (pow.f64 x 3) -1/1560896)) 1) (+.f64 16/841 (*.f64 x (*.f64 -1/116 (+.f64 4/29 (*.f64 x -1/116))))))
(/.f64 (fma.f64 (pow.f64 x 3) 1/1560896 64/24389) (fma.f64 x (*.f64 -1/116 (fma.f64 x -1/116 4/29)) 16/841))
(/.f64 (fma.f64 (pow.f64 x 3) 1/1560896 64/24389) (fma.f64 x (+.f64 (*.f64 x 1/13456) -1/841) 16/841))
(/.f64 (fma.f64 (pow.f64 x 3) 1/1560896 64/24389) (fma.f64 x (fma.f64 x 1/13456 -1/841) 16/841))
(/.f64 1 (/.f64 (+.f64 4/29 (*.f64 x -1/116)) (-.f64 16/841 (*.f64 (*.f64 x x) 1/13456))))
(*.f64 (-.f64 16/841 (*.f64 x (*.f64 x 1/13456))) (/.f64 1 (+.f64 4/29 (*.f64 x -1/116))))
(/.f64 (+.f64 16/841 (*.f64 (*.f64 x x) -1/13456)) (fma.f64 x -1/116 4/29))
(/.f64 (fma.f64 x (*.f64 x -1/13456) 16/841) (fma.f64 x -1/116 4/29))
(/.f64 (-.f64 64/24389 (*.f64 (pow.f64 x 3) -1/1560896)) (+.f64 16/841 (*.f64 (*.f64 x -1/116) (+.f64 4/29 (*.f64 x -1/116)))))
(/.f64 (*.f64 (-.f64 64/24389 (*.f64 (pow.f64 x 3) -1/1560896)) 1) (+.f64 16/841 (*.f64 x (*.f64 -1/116 (+.f64 4/29 (*.f64 x -1/116))))))
(/.f64 (fma.f64 (pow.f64 x 3) 1/1560896 64/24389) (fma.f64 x (*.f64 -1/116 (fma.f64 x -1/116 4/29)) 16/841))
(/.f64 (fma.f64 (pow.f64 x 3) 1/1560896 64/24389) (fma.f64 x (+.f64 (*.f64 x 1/13456) -1/841) 16/841))
(/.f64 (fma.f64 (pow.f64 x 3) 1/1560896 64/24389) (fma.f64 x (fma.f64 x 1/13456 -1/841) 16/841))
(/.f64 (-.f64 16/841 (*.f64 (*.f64 x x) 1/13456)) (+.f64 4/29 (*.f64 x -1/116)))
(*.f64 (-.f64 16/841 (*.f64 x (*.f64 x 1/13456))) (/.f64 1 (+.f64 4/29 (*.f64 x -1/116))))
(/.f64 (+.f64 16/841 (*.f64 (*.f64 x x) -1/13456)) (fma.f64 x -1/116 4/29))
(/.f64 (fma.f64 x (*.f64 x -1/13456) 16/841) (fma.f64 x -1/116 4/29))
(/.f64 (neg.f64 (-.f64 64/24389 (*.f64 (pow.f64 x 3) -1/1560896))) (neg.f64 (+.f64 16/841 (*.f64 (*.f64 x -1/116) (+.f64 4/29 (*.f64 x -1/116))))))
(/.f64 (*.f64 (-.f64 64/24389 (*.f64 (pow.f64 x 3) -1/1560896)) 1) (+.f64 16/841 (*.f64 x (*.f64 -1/116 (+.f64 4/29 (*.f64 x -1/116))))))
(/.f64 (fma.f64 (pow.f64 x 3) 1/1560896 64/24389) (fma.f64 x (*.f64 -1/116 (fma.f64 x -1/116 4/29)) 16/841))
(/.f64 (fma.f64 (pow.f64 x 3) 1/1560896 64/24389) (fma.f64 x (+.f64 (*.f64 x 1/13456) -1/841) 16/841))
(/.f64 (fma.f64 (pow.f64 x 3) 1/1560896 64/24389) (fma.f64 x (fma.f64 x 1/13456 -1/841) 16/841))
(/.f64 (neg.f64 (-.f64 16/841 (*.f64 (*.f64 x x) 1/13456))) (neg.f64 (+.f64 4/29 (*.f64 x -1/116))))
(*.f64 (-.f64 16/841 (*.f64 x (*.f64 x 1/13456))) (/.f64 1 (+.f64 4/29 (*.f64 x -1/116))))
(/.f64 (+.f64 16/841 (*.f64 (*.f64 x x) -1/13456)) (fma.f64 x -1/116 4/29))
(/.f64 (fma.f64 x (*.f64 x -1/13456) 16/841) (fma.f64 x -1/116 4/29))
(/.f64 (+.f64 64/24389 (pow.f64 (*.f64 x 1/116) 3)) (+.f64 16/841 (-.f64 (*.f64 (*.f64 x 1/116) (*.f64 x 1/116)) (*.f64 4/29 (*.f64 x 1/116)))))
(/.f64 (*.f64 (-.f64 64/24389 (*.f64 (pow.f64 x 3) -1/1560896)) 1) (+.f64 16/841 (*.f64 x (*.f64 -1/116 (+.f64 4/29 (*.f64 x -1/116))))))
(/.f64 (fma.f64 (pow.f64 x 3) 1/1560896 64/24389) (fma.f64 x (*.f64 -1/116 (fma.f64 x -1/116 4/29)) 16/841))
(/.f64 (fma.f64 (pow.f64 x 3) 1/1560896 64/24389) (fma.f64 x (+.f64 (*.f64 x 1/13456) -1/841) 16/841))
(/.f64 (fma.f64 (pow.f64 x 3) 1/1560896 64/24389) (fma.f64 x (fma.f64 x 1/13456 -1/841) 16/841))
(/.f64 (-.f64 16/841 (*.f64 (*.f64 x 1/116) (*.f64 x 1/116))) (-.f64 4/29 (*.f64 x 1/116)))
(*.f64 (-.f64 16/841 (*.f64 x (*.f64 x 1/13456))) (/.f64 1 (+.f64 4/29 (*.f64 x -1/116))))
(/.f64 (+.f64 16/841 (*.f64 (*.f64 x x) -1/13456)) (fma.f64 x -1/116 4/29))
(/.f64 (fma.f64 x (*.f64 x -1/13456) 16/841) (fma.f64 x -1/116 4/29))
(pow.f64 (+.f64 4/29 (*.f64 x 1/116)) 1)
(fma.f64 x 1/116 4/29)
(fma.f64 1/116 x 4/29)
(pow.f64 (cbrt.f64 (+.f64 4/29 (*.f64 x 1/116))) 3)
(fma.f64 x 1/116 4/29)
(fma.f64 1/116 x 4/29)
(pow.f64 (pow.f64 (+.f64 4/29 (*.f64 x 1/116)) 3) 1/3)
(fma.f64 x 1/116 4/29)
(fma.f64 1/116 x 4/29)
(pow.f64 (sqrt.f64 (+.f64 4/29 (*.f64 x 1/116))) 2)
(fma.f64 x 1/116 4/29)
(fma.f64 1/116 x 4/29)
(sqrt.f64 (pow.f64 (+.f64 4/29 (*.f64 x 1/116)) 2))
(fma.f64 x 1/116 4/29)
(fma.f64 1/116 x 4/29)
(log.f64 (exp.f64 (+.f64 4/29 (*.f64 x 1/116))))
(fma.f64 x 1/116 4/29)
(fma.f64 1/116 x 4/29)
(cbrt.f64 (pow.f64 (+.f64 4/29 (*.f64 x 1/116)) 3))
(fma.f64 x 1/116 4/29)
(fma.f64 1/116 x 4/29)
(expm1.f64 (log1p.f64 (+.f64 4/29 (*.f64 x 1/116))))
(fma.f64 x 1/116 4/29)
(fma.f64 1/116 x 4/29)
(exp.f64 (log.f64 (+.f64 4/29 (*.f64 x 1/116))))
(fma.f64 x 1/116 4/29)
(fma.f64 1/116 x 4/29)
(log1p.f64 (expm1.f64 (+.f64 4/29 (*.f64 x 1/116))))
(fma.f64 x 1/116 4/29)
(fma.f64 1/116 x 4/29)

eval14.0ms (0.9%)

Compiler

Compiled 584 to 479 computations (18% saved)

prune7.0ms (0.5%)

Pruning

4 alts after pruning (1 fresh and 3 done)

PrunedKeptTotal
New58058
Fresh011
Picked011
Done022
Total58462
Accurracy
100.0%
Counts
62 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(/.f64 (+.f64 x 16) 116)
100.0%
(-.f64 4/29 (/.f64 x -116))
44.3%
(*.f64 1/116 x)
55.6%
4/29
Compiler

Compiled 18 to 15 computations (16.7% saved)

eval0.0ms (0%)

Compiler

Compiled 1 to 1 computations (0% saved)

prune2.0ms (0.1%)

Pruning

4 alts after pruning (1 fresh and 3 done)

PrunedKeptTotal
New000
Fresh011
Picked000
Done033
Total044
Accurracy
100.0%
Counts
4 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(/.f64 (+.f64 x 16) 116)
100.0%
(-.f64 4/29 (/.f64 x -116))
44.3%
(*.f64 1/116 x)
55.6%
4/29
Compiler

Compiled 18 to 15 computations (16.7% saved)

eval0.0ms (0%)

Compiler

Compiled 1 to 1 computations (0% saved)

prune2.0ms (0.1%)

Pruning

4 alts after pruning (1 fresh and 3 done)

PrunedKeptTotal
New000
Fresh011
Picked000
Done033
Total044
Accurracy
100.0%
Counts
4 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(/.f64 (+.f64 x 16) 116)
100.0%
(-.f64 4/29 (/.f64 x -116))
44.3%
(*.f64 1/116 x)
55.6%
4/29
Compiler

Compiled 18 to 15 computations (16.7% saved)

regimes11.0ms (0.7%)

Counts
4 → 1
Calls
Call 1
Inputs
4/29
(*.f64 1/116 x)
(-.f64 4/29 (/.f64 x -116))
(/.f64 (+.f64 x 16) 116)
Outputs
(/.f64 (+.f64 x 16) 116)
Calls

3 calls:

4.0ms
x
3.0ms
(/.f64 (+.f64 x 16) 116)
3.0ms
(+.f64 x 16)
Results
AccuracySegmentsBranch
100.0%1x
100.0%1(/.f64 (+.f64 x 16) 116)
100.0%1(+.f64 x 16)
Compiler

Compiled 27 to 21 computations (22.2% saved)

regimes4.0ms (0.3%)

Counts
3 → 1
Calls
Call 1
Inputs
4/29
(*.f64 1/116 x)
(-.f64 4/29 (/.f64 x -116))
Outputs
(-.f64 4/29 (/.f64 x -116))
Calls

1 calls:

3.0ms
x
Results
AccuracySegmentsBranch
100.0%1x
Compiler

Compiled 12 to 9 computations (25% saved)

regimes10.0ms (0.6%)

Accuracy

Total -59.1b remaining (-2376.8%)

Threshold costs -59.1b (-2376.8%)

Counts
2 → 3
Calls
Call 1
Inputs
4/29
(*.f64 1/116 x)
Outputs
(*.f64 1/116 x)
4/29
(*.f64 1/116 x)
Calls

1 calls:

8.0ms
x
Results
AccuracySegmentsBranch
96.1%3x
Compiler

Compiled 7 to 5 computations (28.6% saved)

bsearch33.0ms (2.2%)

Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
8.0ms
15.364136149655328
36.62782544735034
25.0ms
-24.083789680608962
-0.0032001966537613343
Results
30.0ms208×body256valid
Compiler

Compiled 114 to 99 computations (13.2% saved)

simplify6.0ms (0.4%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
02160
13160
23860
34260
44560
54660
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(/.f64 (+.f64 x 16) 116)
(-.f64 4/29 (/.f64 x -116))
(if (<=.f64 x -16) (*.f64 1/116 x) (if (<=.f64 x 16) 4/29 (*.f64 1/116 x)))
4/29
Outputs
(/.f64 (+.f64 x 16) 116)
(-.f64 4/29 (/.f64 x -116))
(if (<=.f64 x -16) (*.f64 1/116 x) (if (<=.f64 x 16) 4/29 (*.f64 1/116 x)))
(if (<=.f64 x -16) (*.f64 x 1/116) (if (<=.f64 x 16) 4/29 (*.f64 x 1/116)))
4/29
Compiler

Compiled 30 to 24 computations (20% saved)

soundness160.0ms (10.8%)

Rules
1706×fma-def
1586×pow1
1504×add-exp-log
1504×log1p-expm1-u
1504×expm1-log1p-u
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
116113
2198413
061435
1135307
2487307
33768307
Stop Event
node limit
node limit
Compiler

Compiled 75 to 61 computations (18.7% saved)

end34.0ms (2.3%)

Compiler

Compiled 66 to 52 computations (21.2% saved)

Profiling

Loading profile data...