Details

Time bar (total: 4.2s)

analyze2.0ms (0%)

Algorithm
search
Search
TrueOtherFalseIter
0%100%0%0
100%0%0%1
Compiler

Compiled 9 to 7 computations (22.2% saved)

sample1.4s (33%)

Results
590.0ms2015×body1024valid
384.0ms4407×body128valid
220.0ms1043×body512valid
86.0ms249×body2048valid
85.0ms542×body256valid
Compiler

Compiled 18 to 14 computations (22.2% saved)

preprocess15.0ms (0.3%)

Algorithm
egg-herbie
Rules
1-exp_binary64
rules-21_binary64
rules-53-rev_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0711
11211
011
Stop Event
saturated
saturated
Calls
Call 1
Inputs
0
Outputs
0
Call 2
Inputs
(-.f64 (cbrt.f64 (+.f64 x 1)) (cbrt.f64 x))
Outputs
(-.f64 (cbrt.f64 (+.f64 x 1)) (cbrt.f64 x))
Compiler

Compiled 8 to 6 computations (25% saved)

simplify7.0ms (0.2%)

Algorithm
egg-herbie
Rules
1-exp_binary64
rules-21_binary64
rules-53-rev_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0711
11211
Stop Event
saturated
Counts
1 → 1
Calls
Call 1
Inputs
(-.f64 (cbrt.f64 (+.f64 x 1)) (cbrt.f64 x))
Outputs
(-.f64 (cbrt.f64 (+.f64 x 1)) (cbrt.f64 x))

prune3.0ms (0.1%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New011
Fresh011
Picked000
Done000
Total022
Error
29.4b
Counts
2 → 1
Alt Table
StatusErrorProgram
29.4b
(-.f64 (cbrt.f64 (+.f64 x 1)) (cbrt.f64 x))
Compiler

Compiled 24 to 18 computations (25% saved)

localize5.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.2b
(cbrt.f64 (+.f64 x 1))
0.5b
(cbrt.f64 x)
2.7b
(-.f64 (cbrt.f64 (+.f64 x 1)) (cbrt.f64 x))

series1.4s (33.3%)

Counts
3 → 10
Calls

9 calls:

TimeVariablePointExpression
1.4s
x
@inf
(-.f64 (cbrt.f64 (+.f64 x 1)) (cbrt.f64 x))
10.0ms
x
@-inf
(-.f64 (cbrt.f64 (+.f64 x 1)) (cbrt.f64 x))
8.0ms
x
@-inf
(cbrt.f64 x)
1.0ms
x
@0
(cbrt.f64 x)
1.0ms
x
@-inf
(cbrt.f64 (+.f64 x 1))

rewrite43.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
735×rules-40_binary64
735×rules-41_binary64
735×rules-42_binary64
735×rules-43_binary64
688×expm1-log1p-u_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0720
116320
2210920
Stop Event
node limit
Counts
3 → 99
Calls
Call 1
Inputs
(-.f64 (cbrt.f64 (+.f64 x 1)) (cbrt.f64 x))
(cbrt.f64 x)
(cbrt.f64 (+.f64 x 1))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (cbrt.f64 (+.f64 x 1)) (cbrt.f64 x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (cbrt.f64 (+.f64 x 1)) (cbrt.f64 x)) (fma.f64 -1 (cbrt.f64 x) (cbrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (cbrt.f64 (+.f64 x 1)) (cbrt.f64 x)) (fma.f64 (neg.f64 (cbrt.f64 (cbrt.f64 x))) (pow.f64 (cbrt.f64 (cbrt.f64 x)) 2) (cbrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (cbrt.f64 (+.f64 x 1)) (cbrt.f64 x)) (fma.f64 (neg.f64 (pow.f64 x 1/6)) (pow.f64 x 1/6) (cbrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (-.f64 (cbrt.f64 (+.f64 x 1)) (cbrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (-.f64 (cbrt.f64 (+.f64 x 1)) (cbrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (cbrt.f64 (+.f64 x 1)) (cbrt.f64 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (cbrt.f64 x)) (-.f64 (/.f64 (cbrt.f64 (+.f64 x 1)) (cbrt.f64 (cbrt.f64 x))) (pow.f64 (cbrt.f64 (cbrt.f64 x)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (-.f64 (cbrt.f64 (+.f64 x 1)) (cbrt.f64 x))) (pow.f64 (cbrt.f64 (-.f64 (cbrt.f64 (+.f64 x 1)) (cbrt.f64 x))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (-.f64 (cbrt.f64 (+.f64 x 1)) (cbrt.f64 x))) 2) (cbrt.f64 (-.f64 (cbrt.f64 (+.f64 x 1)) (cbrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 x 1/6) (-.f64 (/.f64 (cbrt.f64 (+.f64 x 1)) (pow.f64 x 1/6)) (pow.f64 x 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (-.f64 (cbrt.f64 (+.f64 x 1)) (cbrt.f64 x))) (sqrt.f64 (-.f64 (cbrt.f64 (+.f64 x 1)) (cbrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (+.f64 x 1) 1/6) (pow.f64 x 1/6)) (+.f64 (pow.f64 (+.f64 x 1) 1/6) (pow.f64 x 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (cbrt.f64 (+.f64 x 1)) (cbrt.f64 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (-.f64 (cbrt.f64 (+.f64 x 1)) (cbrt.f64 x)) 3) (+.f64 (pow.f64 (-.f64 (cbrt.f64 (+.f64 x 1)) (cbrt.f64 x)) 2) (+.f64 0 (*.f64 (-.f64 (cbrt.f64 (+.f64 x 1)) (cbrt.f64 x)) 0))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (-.f64 (cbrt.f64 (+.f64 x 1)) (cbrt.f64 x)) 3) (+.f64 (pow.f64 (-.f64 (cbrt.f64 (+.f64 x 1)) (cbrt.f64 x)) 2) (-.f64 0 (*.f64 (-.f64 (cbrt.f64 (+.f64 x 1)) (cbrt.f64 x)) 0))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (+.f64 x 1) x) (+.f64 (pow.f64 (cbrt.f64 x) 2) (+.f64 (cbrt.f64 (*.f64 (+.f64 x 1) x)) (cbrt.f64 (pow.f64 (+.f64 x 1) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (-.f64 (+.f64 x 1) x) (*.f64 0 (+.f64 (pow.f64 (cbrt.f64 x) 2) (+.f64 (cbrt.f64 (*.f64 (+.f64 x 1) x)) (cbrt.f64 (pow.f64 (+.f64 x 1) 2)))))) (+.f64 (pow.f64 (cbrt.f64 x) 2) (+.f64 (cbrt.f64 (*.f64 (+.f64 x 1) x)) (cbrt.f64 (pow.f64 (+.f64 x 1) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (-.f64 (cbrt.f64 (+.f64 x 1)) (cbrt.f64 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (-.f64 (cbrt.f64 (+.f64 x 1)) (cbrt.f64 x)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (-.f64 (cbrt.f64 (+.f64 x 1)) (cbrt.f64 x))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (-.f64 (cbrt.f64 (+.f64 x 1)) (cbrt.f64 x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (-.f64 (cbrt.f64 (+.f64 x 1)) (cbrt.f64 x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (-.f64 (cbrt.f64 (+.f64 x 1)) (cbrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (-.f64 (cbrt.f64 (+.f64 x 1)) (cbrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (-.f64 (cbrt.f64 (+.f64 x 1)) (cbrt.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (-.f64 (cbrt.f64 (+.f64 x 1)) (cbrt.f64 x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (-.f64 (cbrt.f64 (+.f64 x 1)) (cbrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (+.f64 x 1)) 1 (neg.f64 (cbrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (cbrt.f64 (+.f64 x 1)) (cbrt.f64 x)) 1 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (cbrt.f64 (pow.f64 (+.f64 x 1) 2))) (cbrt.f64 (cbrt.f64 (+.f64 x 1))) (neg.f64 (cbrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (-.f64 (cbrt.f64 (+.f64 x 1)) (cbrt.f64 x))) 2) (cbrt.f64 (-.f64 (cbrt.f64 (+.f64 x 1)) (cbrt.f64 x))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (+.f64 x 1) 1/6) (pow.f64 (+.f64 x 1) 1/6) (neg.f64 (cbrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (-.f64 (cbrt.f64 (+.f64 x 1)) (cbrt.f64 x))) (sqrt.f64 (-.f64 (cbrt.f64 (+.f64 x 1)) (cbrt.f64 x))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (-.f64 (cbrt.f64 (+.f64 x 1)) (cbrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (-.f64 (cbrt.f64 (+.f64 x 1)) (cbrt.f64 x))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (cbrt.f64 x) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (cbrt.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (cbrt.f64 x) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (-.f64 0 (cbrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (cbrt.f64 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (cbrt.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 x) (pow.f64 1 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (cbrt.f64 x)) (pow.f64 (cbrt.f64 (cbrt.f64 x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (cbrt.f64 x)) 2) (cbrt.f64 (cbrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 x 1/6) (pow.f64 x 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 x) 2) 1/3) (cbrt.f64 (cbrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 x) 1/3) (pow.f64 (sqrt.f64 x) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 x (+.f64 (pow.f64 (cbrt.f64 x) 2) (+.f64 0 (*.f64 (cbrt.f64 x) 0))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 x (+.f64 (pow.f64 (cbrt.f64 x) 2) (-.f64 0 (*.f64 (cbrt.f64 x) 0))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (cbrt.f64 x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 x 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (cbrt.f64 x)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 x 1/6) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (cbrt.f64 x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (cbrt.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (cbrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (cbrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (cbrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 x) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 x) 1 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (cbrt.f64 x)) 2) (cbrt.f64 (cbrt.f64 x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 x 1/6) (pow.f64 x 1/6) 0)))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (cbrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (cbrt.f64 x)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (cbrt.f64 (+.f64 x 1)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (cbrt.f64 (+.f64 x 1)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (cbrt.f64 (+.f64 x 1)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (-.f64 0 (cbrt.f64 (+.f64 x 1))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (cbrt.f64 (+.f64 x 1)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (cbrt.f64 (+.f64 x 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (+.f64 x 1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (+.f64 x 1)) (pow.f64 1 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (cbrt.f64 (+.f64 x 1))) (cbrt.f64 (cbrt.f64 (pow.f64 (+.f64 x 1) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (cbrt.f64 (pow.f64 (+.f64 x 1) 2))) (cbrt.f64 (cbrt.f64 (+.f64 x 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (+.f64 x 1) 1/6) (pow.f64 (+.f64 x 1) 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (pow.f64 (+.f64 x 1) 2)) 1/3) (cbrt.f64 (cbrt.f64 (+.f64 x 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 (+.f64 x 1)) 1/3) (pow.f64 (sqrt.f64 (+.f64 x 1)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 x 1) (+.f64 (cbrt.f64 (pow.f64 (+.f64 x 1) 2)) (+.f64 0 (*.f64 (cbrt.f64 (+.f64 x 1)) 0))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 x 1) (+.f64 (cbrt.f64 (pow.f64 (+.f64 x 1) 2)) (-.f64 0 (*.f64 (cbrt.f64 (+.f64 x 1)) 0))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (cbrt.f64 (+.f64 x 1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (cbrt.f64 (+.f64 1 (pow.f64 x 3))) (cbrt.f64 (fma.f64 x x (-.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 x 1) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (+.f64 x 1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (cbrt.f64 (+.f64 x 1))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (+.f64 x 1) 1/6) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (cbrt.f64 (pow.f64 (+.f64 x 1) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (cbrt.f64 (+.f64 x 1)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (cbrt.f64 (+.f64 x 1))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (cbrt.f64 (+.f64 x 1)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 1/3 (log1p.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log1p.f64 x) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (+.f64 x 1)) 1 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (cbrt.f64 (pow.f64 (+.f64 x 1) 2))) (cbrt.f64 (cbrt.f64 (+.f64 x 1))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (+.f64 x 1) 1/6) (pow.f64 (+.f64 x 1) 1/6) 0)))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (cbrt.f64 (+.f64 x 1))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (cbrt.f64 (+.f64 x 1))))))))

simplify32.0ms (0.8%)

Algorithm
egg-herbie
Rules
487×rules-4_binary64
227×fma-neg_binary64
226×rules-11_binary64
193×rules-6_binary64
181×fma-def_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01959
15651
220149
374345
4442945
Stop Event
node limit
Counts
109 → 107
Calls
Call 1
Inputs
1
(+.f64 1 (*.f64 1/3 x))
0
0
0
0
1
(+.f64 1 (*.f64 1/3 x))
(-.f64 (+.f64 1 (*.f64 1/3 x)) (*.f64 1/9 (pow.f64 x 2)))
(-.f64 (+.f64 1 (+.f64 (*.f64 1/3 x) (*.f64 5/81 (pow.f64 x 3)))) (*.f64 1/9 (pow.f64 x 2)))
Outputs
1
(+.f64 1 (*.f64 1/3 x))
(fma.f64 1/3 x 1)
0
0
0
0
1
(+.f64 1 (*.f64 1/3 x))
(fma.f64 1/3 x 1)
(-.f64 (+.f64 1 (*.f64 1/3 x)) (*.f64 1/9 (pow.f64 x 2)))
(-.f64 (+.f64 1 (*.f64 1/3 x)) (*.f64 1/9 (*.f64 x x)))
(-.f64 (*.f64 1/3 x) (fma.f64 1/9 (*.f64 x x) -1))
(+.f64 1 (*.f64 x (-.f64 1/3 (*.f64 x 1/9))))
(fma.f64 x (-.f64 1/3 (*.f64 x 1/9)) 1)
(fma.f64 (*.f64 x 1/9) (-.f64 3 x) 1)
(-.f64 (+.f64 1 (+.f64 (*.f64 1/3 x) (*.f64 5/81 (pow.f64 x 3)))) (*.f64 1/9 (pow.f64 x 2)))
(-.f64 (fma.f64 1/3 x (*.f64 5/81 (pow.f64 x 3))) (-.f64 (*.f64 1/9 (*.f64 x x)) 1))
(-.f64 (fma.f64 1/3 x (*.f64 5/81 (pow.f64 x 3))) (fma.f64 1/9 (*.f64 x x) -1))
(-.f64 (fma.f64 1/3 x 1) (*.f64 (*.f64 x x) (-.f64 1/9 (*.f64 x 5/81))))
(fma.f64 5/81 (pow.f64 x 3) (fma.f64 x (-.f64 1/3 (*.f64 x 1/9)) 1))
(fma.f64 (*.f64 x x) (-.f64 (fma.f64 x 5/81 (/.f64 1/3 x)) 1/9) 1)

prune112.0ms (2.7%)

Pruning

7 alts after pruning (7 fresh and 0 done)

PrunedKeptTotal
New1007107
Fresh000
Picked101
Done000
Total1017108
Error
28.3b
Counts
108 → 7
Alt Table
StatusErrorProgram
30.0b
(fma.f64 (cbrt.f64 (cbrt.f64 (pow.f64 (+.f64 x 1) 2))) (cbrt.f64 (cbrt.f64 (+.f64 x 1))) (neg.f64 (cbrt.f64 x)))
30.4b
1
29.5b
(+.f64 (-.f64 (cbrt.f64 (+.f64 x 1)) (cbrt.f64 x)) (fma.f64 (neg.f64 (cbrt.f64 (cbrt.f64 x))) (pow.f64 (cbrt.f64 (cbrt.f64 x)) 2) (cbrt.f64 x)))
29.6b
(-.f64 (/.f64 (+.f64 x 1) (+.f64 (cbrt.f64 (pow.f64 (+.f64 x 1) 2)) (+.f64 0 (*.f64 (cbrt.f64 (+.f64 x 1)) 0)))) (cbrt.f64 x))
29.9b
(-.f64 (*.f64 (pow.f64 (cbrt.f64 (pow.f64 (+.f64 x 1) 2)) 1/3) (cbrt.f64 (cbrt.f64 (+.f64 x 1)))) (cbrt.f64 x))
29.0b
(/.f64 (-.f64 (+.f64 x 1) x) (+.f64 (pow.f64 (cbrt.f64 x) 2) (+.f64 (cbrt.f64 (*.f64 (+.f64 x 1) x)) (cbrt.f64 (pow.f64 (+.f64 x 1) 2)))))
29.6b
(*.f64 (cbrt.f64 (cbrt.f64 x)) (-.f64 (/.f64 (cbrt.f64 (+.f64 x 1)) (cbrt.f64 (cbrt.f64 x))) (pow.f64 (cbrt.f64 (cbrt.f64 x)) 2)))
Compiler

Compiled 1581 to 1093 computations (30.9% saved)

localize15.0ms (0.4%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.5b
(cbrt.f64 x)
2.4b
(-.f64 (+.f64 x 1) x)
13.9b
(cbrt.f64 (pow.f64 (+.f64 x 1) 2))
14.3b
(cbrt.f64 (*.f64 (+.f64 x 1) x))

series15.0ms (0.4%)

Counts
3 → 16
Calls

9 calls:

TimeVariablePointExpression
8.0ms
x
@-inf
(cbrt.f64 (*.f64 (+.f64 x 1) x))
1.0ms
x
@0
(cbrt.f64 (*.f64 (+.f64 x 1) x))
1.0ms
x
@-inf
(cbrt.f64 (pow.f64 (+.f64 x 1) 2))
1.0ms
x
@inf
(cbrt.f64 (pow.f64 (+.f64 x 1) 2))
1.0ms
x
@inf
(cbrt.f64 (*.f64 (+.f64 x 1) x))

rewrite41.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
881×rules-41_binary64
881×rules-42_binary64
881×rules-43_binary64
98×add-sqr-sqrt_binary64
93×pow1_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01025
123719
2295619
Stop Event
node limit
Counts
3 → 64
Calls
Call 1
Inputs
(cbrt.f64 (*.f64 (+.f64 x 1) x))
(cbrt.f64 (pow.f64 (+.f64 x 1) 2))
(-.f64 (+.f64 x 1) x)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (cbrt.f64 (+.f64 x (*.f64 x x))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (cbrt.f64 (+.f64 x (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (cbrt.f64 (+.f64 x (*.f64 x x))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (-.f64 0 (cbrt.f64 (+.f64 x (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (cbrt.f64 (+.f64 x (*.f64 x x))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (cbrt.f64 (+.f64 x (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (+.f64 x (*.f64 x x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 x) (cbrt.f64 (+.f64 x 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (cbrt.f64 (+.f64 x (*.f64 x x)))) (pow.f64 (cbrt.f64 (cbrt.f64 (+.f64 x (*.f64 x x)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (+.f64 x (*.f64 x x)))) 2) (cbrt.f64 (cbrt.f64 (+.f64 x (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (+.f64 x 1)) (cbrt.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (+.f64 x (*.f64 x x)) 1/6) (pow.f64 (+.f64 x (*.f64 x x)) 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (+.f64 x (*.f64 x x))) 2) 1/3) (cbrt.f64 (cbrt.f64 (+.f64 x (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 (+.f64 x (*.f64 x x))) 1/3) (pow.f64 (sqrt.f64 (+.f64 x (*.f64 x x))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 x (*.f64 x x)) (+.f64 (pow.f64 (cbrt.f64 (+.f64 x (*.f64 x x))) 2) (+.f64 0 (*.f64 (cbrt.f64 (+.f64 x (*.f64 x x))) 0))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 x (*.f64 x x)) (+.f64 (pow.f64 (cbrt.f64 (+.f64 x (*.f64 x x))) 2) (-.f64 0 (*.f64 (cbrt.f64 (+.f64 x (*.f64 x x))) 0))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (cbrt.f64 (+.f64 x (*.f64 x x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 x (*.f64 x x)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (+.f64 x (*.f64 x x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (cbrt.f64 (+.f64 x (*.f64 x x)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (+.f64 x (*.f64 x x)) 1/6) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (cbrt.f64 (+.f64 x (*.f64 x x))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (cbrt.f64 (+.f64 x (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (cbrt.f64 (+.f64 x (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (cbrt.f64 (+.f64 x (*.f64 x x))))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 1/3 (+.f64 (log.f64 x) (log1p.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (+.f64 (log.f64 x) (log1p.f64 x)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (+.f64 x (*.f64 x x))) 1 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (+.f64 x (*.f64 x x)))) 2) (cbrt.f64 (cbrt.f64 (+.f64 x (*.f64 x x)))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (+.f64 x 1)) (cbrt.f64 x) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (+.f64 x (*.f64 x x)) 1/6) (pow.f64 (+.f64 x (*.f64 x x)) 1/6) 0)))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (cbrt.f64 (+.f64 x (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (cbrt.f64 (+.f64 x (*.f64 x x)))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (pow.f64 (cbrt.f64 (+.f64 x 1)) 2) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (pow.f64 (cbrt.f64 (+.f64 x 1)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (pow.f64 (cbrt.f64 (+.f64 x 1)) 2) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (-.f64 0 (pow.f64 (cbrt.f64 (+.f64 x 1)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (pow.f64 (cbrt.f64 (+.f64 x 1)) 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (cbrt.f64 (+.f64 x 1)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (+.f64 x 1)) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (+.f64 x 1)) 2)) (cbrt.f64 (cbrt.f64 (pow.f64 (+.f64 x 1) 4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (cbrt.f64 (pow.f64 (+.f64 x 1) 4))) (cbrt.f64 (pow.f64 (cbrt.f64 (+.f64 x 1)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (+.f64 x 1)) (cbrt.f64 (+.f64 x 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (pow.f64 (+.f64 x 1) 4)) 1/3) (cbrt.f64 (pow.f64 (cbrt.f64 (+.f64 x 1)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (+.f64 x 1) 2) (+.f64 (cbrt.f64 (pow.f64 (+.f64 x 1) 4)) (+.f64 0 (*.f64 (pow.f64 (cbrt.f64 (+.f64 x 1)) 2) 0))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (+.f64 x 1) 2) (+.f64 (cbrt.f64 (pow.f64 (+.f64 x 1) 4)) (-.f64 0 (*.f64 (pow.f64 (cbrt.f64 (+.f64 x 1)) 2) 0))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (cbrt.f64 (+.f64 x 1)) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 x 1) 2/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (+.f64 x 1) 2) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (cbrt.f64 (+.f64 x 1)) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (+.f64 x 1)) 2)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (+.f64 x 1)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (cbrt.f64 (pow.f64 (+.f64 x 1) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (pow.f64 (cbrt.f64 (+.f64 x 1)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (cbrt.f64 (+.f64 x 1)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (pow.f64 (cbrt.f64 (+.f64 x 1)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 1/3 (*.f64 2 (log1p.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 2 (log1p.f64 x)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (+.f64 x 1)) 2) 1 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (cbrt.f64 (pow.f64 (+.f64 x 1) 4))) (cbrt.f64 (pow.f64 (cbrt.f64 (+.f64 x 1)) 2)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (+.f64 x 1)) (cbrt.f64 (+.f64 x 1)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (cbrt.f64 (+.f64 x 1)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (cbrt.f64 (+.f64 x 1)) 2)))))))
((#(struct:change #<rule egg-rr> (2) ((x . 1)))))

simplify34.0ms (0.8%)

Algorithm
egg-herbie
Rules
487×rules-4_binary64
227×fma-neg_binary64
226×rules-11_binary64
192×rules-6_binary64
181×fma-def_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01859
15653
220151
374747
4443347
Stop Event
node limit
Counts
80 → 70
Calls
Call 1
Inputs
1
(+.f64 1 (*.f64 2/3 x))
(-.f64 (+.f64 1 (*.f64 2/3 x)) (*.f64 1/9 (pow.f64 x 2)))
(-.f64 (+.f64 1 (+.f64 (*.f64 2/3 x) (*.f64 4/81 (pow.f64 x 3)))) (*.f64 1/9 (pow.f64 x 2)))
1
1
1
1
1
1
1
1
1
1
1
1
Outputs
1
(+.f64 1 (*.f64 2/3 x))
(fma.f64 2/3 x 1)
(-.f64 (+.f64 1 (*.f64 2/3 x)) (*.f64 1/9 (pow.f64 x 2)))
(-.f64 (*.f64 2/3 x) (-.f64 (*.f64 1/9 (*.f64 x x)) 1))
(-.f64 (fma.f64 2/3 x 1) (*.f64 x (*.f64 x 1/9)))
(+.f64 1 (*.f64 x (-.f64 2/3 (*.f64 x 1/9))))
(fma.f64 x (-.f64 2/3 (*.f64 x 1/9)) 1)
(-.f64 (+.f64 1 (+.f64 (*.f64 2/3 x) (*.f64 4/81 (pow.f64 x 3)))) (*.f64 1/9 (pow.f64 x 2)))
(-.f64 (fma.f64 2/3 x (*.f64 4/81 (pow.f64 x 3))) (-.f64 (*.f64 1/9 (*.f64 x x)) 1))
(-.f64 (fma.f64 2/3 x (*.f64 4/81 (pow.f64 x 3))) (fma.f64 1/9 (*.f64 x x) -1))
(-.f64 (fma.f64 2/3 x 1) (*.f64 (*.f64 x x) (-.f64 1/9 (*.f64 x 4/81))))
(fma.f64 4/81 (pow.f64 x 3) (fma.f64 x (-.f64 2/3 (*.f64 x 1/9)) 1))
(fma.f64 (*.f64 x x) (-.f64 (fma.f64 x 4/81 (/.f64 2/3 x)) 1/9) 1)
1
1
1
1
1
1
1
1
1
1
1
1

prune139.0ms (3.3%)

Pruning

9 alts after pruning (9 fresh and 0 done)

PrunedKeptTotal
New983101
Fresh066
Picked101
Done000
Total999108
Error
28.3b
Counts
108 → 9
Alt Table
StatusErrorProgram
29.0b
(/.f64 (-.f64 (+.f64 x 1) x) (+.f64 (pow.f64 (fabs.f64 (cbrt.f64 x)) 2) (+.f64 (cbrt.f64 (*.f64 (+.f64 x 1) x)) (cbrt.f64 (pow.f64 (+.f64 x 1) 2)))))
29.0b
(/.f64 (-.f64 (+.f64 x 1) x) (+.f64 (pow.f64 (cbrt.f64 x) 2) (+.f64 (cbrt.f64 (*.f64 (+.f64 x 1) x)) (pow.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (+.f64 x 1)) 2)) 3))))
30.0b
(fma.f64 (cbrt.f64 (cbrt.f64 (pow.f64 (+.f64 x 1) 2))) (cbrt.f64 (cbrt.f64 (+.f64 x 1))) (neg.f64 (cbrt.f64 x)))
30.4b
1
47.8b
(/.f64 (-.f64 (+.f64 x 1) x) (+.f64 (pow.f64 (exp.f64 (log.f64 (cbrt.f64 x))) 2) (+.f64 (cbrt.f64 (*.f64 (+.f64 x 1) x)) (cbrt.f64 (pow.f64 (+.f64 x 1) 2)))))
29.5b
(+.f64 (-.f64 (cbrt.f64 (+.f64 x 1)) (cbrt.f64 x)) (fma.f64 (neg.f64 (cbrt.f64 (cbrt.f64 x))) (pow.f64 (cbrt.f64 (cbrt.f64 x)) 2) (cbrt.f64 x)))
29.6b
(-.f64 (/.f64 (+.f64 x 1) (+.f64 (cbrt.f64 (pow.f64 (+.f64 x 1) 2)) (+.f64 0 (*.f64 (cbrt.f64 (+.f64 x 1)) 0)))) (cbrt.f64 x))
29.9b
(-.f64 (*.f64 (pow.f64 (cbrt.f64 (pow.f64 (+.f64 x 1) 2)) 1/3) (cbrt.f64 (cbrt.f64 (+.f64 x 1)))) (cbrt.f64 x))
29.6b
(*.f64 (cbrt.f64 (cbrt.f64 x)) (-.f64 (/.f64 (cbrt.f64 (+.f64 x 1)) (cbrt.f64 (cbrt.f64 x))) (pow.f64 (cbrt.f64 (cbrt.f64 x)) 2)))
Compiler

Compiled 3218 to 2200 computations (31.6% saved)

localize17.0ms (0.4%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.5b
(pow.f64 (cbrt.f64 x) 2)
0.5b
(cbrt.f64 x)
2.4b
(-.f64 (+.f64 x 1) x)
14.3b
(cbrt.f64 (*.f64 (+.f64 x 1) x))

series23.0ms (0.6%)

Counts
2 → 12
Calls

6 calls:

TimeVariablePointExpression
17.0ms
x
@-inf
(pow.f64 (cbrt.f64 x) 2)
4.0ms
x
@inf
(pow.f64 (cbrt.f64 x) 2)
2.0ms
x
@0
(pow.f64 (cbrt.f64 x) 2)
0.0ms
x
@0
(-.f64 (+.f64 x 1) x)
0.0ms
x
@inf
(-.f64 (+.f64 x 1) x)

rewrite37.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
696×rules-40_binary64
696×rules-41_binary64
696×rules-42_binary64
696×rules-43_binary64
656×expm1-log1p-u_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0813
11947
224057
Stop Event
node limit
Counts
2 → 32
Calls
Call 1
Inputs
(-.f64 (+.f64 x 1) x)
(pow.f64 (cbrt.f64 x) 2)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x . 1)))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (pow.f64 (cbrt.f64 x) 2) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (pow.f64 (cbrt.f64 x) 2) (*.f64 (cbrt.f64 x) 0))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (pow.f64 (cbrt.f64 x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (pow.f64 (cbrt.f64 x) 2) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (pow.f64 (cbrt.f64 x) 2) (*.f64 (cbrt.f64 x) 0))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (-.f64 0 (pow.f64 (cbrt.f64 x) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (pow.f64 (cbrt.f64 x) 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (cbrt.f64 x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 x) (cbrt.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 x) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (cbrt.f64 x)) 2) (cbrt.f64 (*.f64 (cbrt.f64 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (cbrt.f64 x)) 2) (*.f64 (cbrt.f64 (cbrt.f64 x)) (cbrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (cbrt.f64 x) x)) (pow.f64 (cbrt.f64 (cbrt.f64 x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (cbrt.f64 x)) (*.f64 (cbrt.f64 x) (pow.f64 (cbrt.f64 (cbrt.f64 x)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 x 1/6) (sqrt.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 x 1/6) (*.f64 (pow.f64 x 1/6) (cbrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (cbrt.f64 x) (/.f64 1 (cbrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (cbrt.f64 x) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x x) (+.f64 (*.f64 (cbrt.f64 x) x) (+.f64 0 (*.f64 (pow.f64 (cbrt.f64 x) 2) 0))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x x) (+.f64 (*.f64 (cbrt.f64 x) x) (-.f64 0 (*.f64 (pow.f64 (cbrt.f64 x) 2) 0))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (cbrt.f64 x) x))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (pow.f64 (cbrt.f64 x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (cbrt.f64 x) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (pow.f64 (cbrt.f64 x) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 2 (log.f64 (cbrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 x) (cbrt.f64 x) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 x) 2) 1 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 (cbrt.f64 x) x)) (pow.f64 (cbrt.f64 (cbrt.f64 x)) 2) 0)))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (cbrt.f64 x) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (cbrt.f64 x) 2)))))))

simplify7.0ms (0.2%)

Algorithm
egg-herbie
Rules
1-exp_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0112
1412
Stop Event
saturated
Counts
44 → 32
Calls
Call 1
Inputs
1
1
1
1
1
1
1
1
1
1
1
1
Outputs
1
1
1
1
1
1
1
1
1
1
1
1

prune104.0ms (2.5%)

Pruning

4 alts after pruning (4 fresh and 0 done)

PrunedKeptTotal
New95196
Fresh538
Picked101
Done000
Total1014105
Error
14.0b
Counts
105 → 4
Alt Table
StatusErrorProgram
30.4b
1
29.0b
(/.f64 (-.f64 (+.f64 x 1) x) (+.f64 (pow.f64 (fabs.f64 (cbrt.f64 x)) 2) (+.f64 (cbrt.f64 (*.f64 (+.f64 x 1) x)) (cbrt.f64 (pow.f64 (+.f64 x 1) 2)))))
14.1b
(/.f64 1 (+.f64 (pow.f64 (cbrt.f64 x) 2) (+.f64 (cbrt.f64 (*.f64 (+.f64 x 1) x)) (pow.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (+.f64 x 1)) 2)) 3))))
29.6b
(-.f64 (/.f64 (+.f64 x 1) (+.f64 (cbrt.f64 (pow.f64 (+.f64 x 1) 2)) (+.f64 0 (*.f64 (cbrt.f64 (+.f64 x 1)) 0)))) (cbrt.f64 x))
Compiler

Compiled 3157 to 2198 computations (30.4% saved)

localize16.0ms (0.4%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.4b
(pow.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (+.f64 x 1)) 2)) 3)
0.5b
(pow.f64 (cbrt.f64 x) 2)
0.5b
(cbrt.f64 x)
14.3b
(cbrt.f64 (*.f64 (+.f64 x 1) x))

series8.0ms (0.2%)

Counts
1 → 12
Calls

3 calls:

TimeVariablePointExpression
4.0ms
x
@-inf
(pow.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (+.f64 x 1)) 2)) 3)
3.0ms
x
@inf
(pow.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (+.f64 x 1)) 2)) 3)
1.0ms
x
@0
(pow.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (+.f64 x 1)) 2)) 3)

rewrite36.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
734×rules-40_binary64
734×rules-41_binary64
734×rules-42_binary64
734×rules-43_binary64
84×add-sqr-sqrt_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0109
12389
224329
Stop Event
node limit
Counts
1 → 39
Calls
Call 1
Inputs
(pow.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (+.f64 x 1)) 2)) 3)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (pow.f64 (cbrt.f64 (+.f64 x 1)) 2) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (pow.f64 (cbrt.f64 (+.f64 x 1)) 2) (*.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (+.f64 x 1)) 4)) 0))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (pow.f64 (cbrt.f64 (+.f64 x 1)) 2) (*.f64 (cbrt.f64 (+.f64 x 1)) 0))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (pow.f64 (cbrt.f64 (+.f64 x 1)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (pow.f64 (cbrt.f64 (+.f64 x 1)) 2) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (pow.f64 (cbrt.f64 (+.f64 x 1)) 2) (*.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (+.f64 x 1)) 4)) 0))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (pow.f64 (cbrt.f64 (+.f64 x 1)) 2) (*.f64 (cbrt.f64 (+.f64 x 1)) 0))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (-.f64 0 (pow.f64 (cbrt.f64 (+.f64 x 1)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (pow.f64 (cbrt.f64 (+.f64 x 1)) 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (cbrt.f64 (+.f64 x 1)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (+.f64 x 1)) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (+.f64 x 1)) 2)) (cbrt.f64 (pow.f64 (cbrt.f64 (+.f64 x 1)) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (+.f64 x 1)) 4)) (cbrt.f64 (pow.f64 (cbrt.f64 (+.f64 x 1)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (+.f64 x 1)) 2))) (*.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (+.f64 x 1)) 4)) (cbrt.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (+.f64 x 1)) 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (+.f64 x 1)) 4))) (*.f64 (cbrt.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (+.f64 x 1)) 2))) (cbrt.f64 (pow.f64 (cbrt.f64 (+.f64 x 1)) 4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (cbrt.f64 (+.f64 x 1))) (*.f64 (cbrt.f64 (+.f64 x 1)) (cbrt.f64 (pow.f64 (cbrt.f64 (+.f64 x 1)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (cbrt.f64 (+.f64 x 1))) (*.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (+.f64 x 1)) 4)) (cbrt.f64 (cbrt.f64 (+.f64 x 1)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (cbrt.f64 (+.f64 x 1))) (*.f64 (cbrt.f64 (cbrt.f64 (+.f64 x 1))) (cbrt.f64 (pow.f64 (cbrt.f64 (+.f64 x 1)) 4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (+.f64 x 1) 1/6) (sqrt.f64 (+.f64 x 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (+.f64 x 1) 1/6) (*.f64 (pow.f64 (+.f64 x 1) 1/6) (cbrt.f64 (+.f64 x 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (+.f64 x 1)) (cbrt.f64 (+.f64 x 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (+.f64 x 1)) 4))) 3) (cbrt.f64 (pow.f64 (cbrt.f64 (+.f64 x 1)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (cbrt.f64 (+.f64 x 1)) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (+.f64 x 1)) 2)) (/.f64 1 (cbrt.f64 (pow.f64 (cbrt.f64 (+.f64 x 1)) 4))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (+.f64 x 1) 2) (+.f64 (pow.f64 (cbrt.f64 (+.f64 x 1)) 4) (+.f64 0 (*.f64 (pow.f64 (cbrt.f64 (+.f64 x 1)) 2) 0))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (+.f64 x 1) 2) (+.f64 (pow.f64 (cbrt.f64 (+.f64 x 1)) 4) (-.f64 0 (*.f64 (pow.f64 (cbrt.f64 (+.f64 x 1)) 2) 0))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (cbrt.f64 (+.f64 x 1)) (/.f64 1 (cbrt.f64 (+.f64 x 1))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (cbrt.f64 (+.f64 x 1)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (pow.f64 (cbrt.f64 (+.f64 x 1)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (cbrt.f64 (+.f64 x 1)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (pow.f64 (cbrt.f64 (+.f64 x 1)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (+.f64 x 1) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 2 (*.f64 1/3 (log1p.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (+.f64 x 1)) 2) 1 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (+.f64 x 1)) 2)) (cbrt.f64 (pow.f64 (cbrt.f64 (+.f64 x 1)) 4)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (+.f64 x 1)) 4)) (cbrt.f64 (pow.f64 (cbrt.f64 (+.f64 x 1)) 2)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (+.f64 x 1)) (cbrt.f64 (+.f64 x 1)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (cbrt.f64 (+.f64 x 1)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (cbrt.f64 (+.f64 x 1)) 2)))))))

simplify24.0ms (0.6%)

Algorithm
egg-herbie
Rules
414×rules-11_binary64
391×rules-6_binary64
353×rules-20_binary64
291×rules-13_binary64
123×rules-21_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
037229
1116223
2397221
31507221
Stop Event
node limit
Counts
51 → 54
Calls
Call 1
Inputs
1
(+.f64 1 (*.f64 2/3 x))
(-.f64 (+.f64 1 (*.f64 2/3 x)) (*.f64 1/9 (pow.f64 x 2)))
(-.f64 (+.f64 1 (+.f64 (*.f64 2/3 x) (*.f64 4/81 (pow.f64 x 3)))) (*.f64 1/9 (pow.f64 x 2)))
(pow.f64 (pow.f64 x 2) 1/3)
(+.f64 (*.f64 2/3 (pow.f64 (/.f64 1 x) 1/3)) (pow.f64 (pow.f64 x 2) 1/3))
(-.f64 (+.f64 (*.f64 2/3 (pow.f64 (/.f64 1 x) 1/3)) (pow.f64 (pow.f64 x 2) 1/3)) (*.f64 1/9 (pow.f64 (/.f64 1 (pow.f64 x 4)) 1/3)))
(-.f64 (+.f64 (*.f64 4/81 (pow.f64 (/.f64 1 (pow.f64 x 7)) 1/3)) (+.f64 (*.f64 2/3 (pow.f64 (/.f64 1 x) 1/3)) (pow.f64 (pow.f64 x 2) 1/3))) (*.f64 1/9 (pow.f64 (/.f64 1 (pow.f64 x 4)) 1/3)))
(pow.f64 (pow.f64 x 2) 1/3)
(+.f64 (*.f64 2/3 (pow.f64 (/.f64 1 x) 1/3)) (pow.f64 (pow.f64 x 2) 1/3))
(-.f64 (+.f64 (*.f64 2/3 (pow.f64 (/.f64 1 x) 1/3)) (pow.f64 (pow.f64 x 2) 1/3)) (*.f64 1/9 (pow.f64 (/.f64 1 (pow.f64 x 4)) 1/3)))
(-.f64 (+.f64 (*.f64 4/81 (pow.f64 (/.f64 1 (pow.f64 x 7)) 1/3)) (+.f64 (*.f64 2/3 (pow.f64 (/.f64 1 x) 1/3)) (pow.f64 (pow.f64 x 2) 1/3))) (*.f64 1/9 (pow.f64 (/.f64 1 (pow.f64 x 4)) 1/3)))
Outputs
1
(+.f64 1 (*.f64 2/3 x))
(fma.f64 2/3 x 1)
(-.f64 (+.f64 1 (*.f64 2/3 x)) (*.f64 1/9 (pow.f64 x 2)))
(-.f64 (+.f64 1 (*.f64 2/3 x)) (*.f64 1/9 (*.f64 x x)))
(-.f64 (*.f64 2/3 x) (fma.f64 1/9 (*.f64 x x) -1))
(+.f64 1 (*.f64 x (-.f64 2/3 (*.f64 x 1/9))))
(-.f64 (+.f64 1 (+.f64 (*.f64 2/3 x) (*.f64 4/81 (pow.f64 x 3)))) (*.f64 1/9 (pow.f64 x 2)))
(-.f64 (+.f64 1 (fma.f64 2/3 x (*.f64 4/81 (pow.f64 x 3)))) (*.f64 1/9 (*.f64 x x)))
(-.f64 (fma.f64 4/81 (pow.f64 x 3) (*.f64 2/3 x)) (fma.f64 1/9 (*.f64 x x) -1))
(-.f64 (fma.f64 2/3 x 1) (*.f64 (*.f64 x x) (-.f64 1/9 (*.f64 x 4/81))))
(pow.f64 (pow.f64 x 2) 1/3)
(cbrt.f64 (*.f64 x x))
(+.f64 (*.f64 2/3 (pow.f64 (/.f64 1 x) 1/3)) (pow.f64 (pow.f64 x 2) 1/3))
(fma.f64 2/3 (cbrt.f64 (/.f64 1 x)) (cbrt.f64 (*.f64 x x)))
(-.f64 (+.f64 (*.f64 2/3 (pow.f64 (/.f64 1 x) 1/3)) (pow.f64 (pow.f64 x 2) 1/3)) (*.f64 1/9 (pow.f64 (/.f64 1 (pow.f64 x 4)) 1/3)))
(-.f64 (fma.f64 2/3 (cbrt.f64 (/.f64 1 x)) (cbrt.f64 (*.f64 x x))) (*.f64 1/9 (cbrt.f64 (/.f64 1 (pow.f64 x 4)))))
(-.f64 (+.f64 (*.f64 4/81 (pow.f64 (/.f64 1 (pow.f64 x 7)) 1/3)) (+.f64 (*.f64 2/3 (pow.f64 (/.f64 1 x) 1/3)) (pow.f64 (pow.f64 x 2) 1/3))) (*.f64 1/9 (pow.f64 (/.f64 1 (pow.f64 x 4)) 1/3)))
(-.f64 (fma.f64 4/81 (cbrt.f64 (/.f64 1 (pow.f64 x 7))) (fma.f64 2/3 (cbrt.f64 (/.f64 1 x)) (cbrt.f64 (*.f64 x x)))) (*.f64 1/9 (cbrt.f64 (/.f64 1 (pow.f64 x 4)))))
(-.f64 (fma.f64 2/3 (cbrt.f64 (/.f64 1 x)) (fma.f64 4/81 (cbrt.f64 (/.f64 1 (pow.f64 x 7))) (cbrt.f64 (*.f64 x x)))) (*.f64 1/9 (cbrt.f64 (/.f64 1 (pow.f64 x 4)))))
(pow.f64 (pow.f64 x 2) 1/3)
(cbrt.f64 (*.f64 x x))
(+.f64 (*.f64 2/3 (pow.f64 (/.f64 1 x) 1/3)) (pow.f64 (pow.f64 x 2) 1/3))
(fma.f64 2/3 (cbrt.f64 (/.f64 1 x)) (cbrt.f64 (*.f64 x x)))
(-.f64 (+.f64 (*.f64 2/3 (pow.f64 (/.f64 1 x) 1/3)) (pow.f64 (pow.f64 x 2) 1/3)) (*.f64 1/9 (pow.f64 (/.f64 1 (pow.f64 x 4)) 1/3)))
(-.f64 (fma.f64 2/3 (cbrt.f64 (/.f64 1 x)) (cbrt.f64 (*.f64 x x))) (*.f64 1/9 (cbrt.f64 (/.f64 1 (pow.f64 x 4)))))
(-.f64 (+.f64 (*.f64 4/81 (pow.f64 (/.f64 1 (pow.f64 x 7)) 1/3)) (+.f64 (*.f64 2/3 (pow.f64 (/.f64 1 x) 1/3)) (pow.f64 (pow.f64 x 2) 1/3))) (*.f64 1/9 (pow.f64 (/.f64 1 (pow.f64 x 4)) 1/3)))
(-.f64 (fma.f64 4/81 (cbrt.f64 (/.f64 1 (pow.f64 x 7))) (fma.f64 2/3 (cbrt.f64 (/.f64 1 x)) (cbrt.f64 (*.f64 x x)))) (*.f64 1/9 (cbrt.f64 (/.f64 1 (pow.f64 x 4)))))
(-.f64 (fma.f64 2/3 (cbrt.f64 (/.f64 1 x)) (fma.f64 4/81 (cbrt.f64 (/.f64 1 (pow.f64 x 7))) (cbrt.f64 (*.f64 x x)))) (*.f64 1/9 (cbrt.f64 (/.f64 1 (pow.f64 x 4)))))

prune210.0ms (5%)

Pruning

8 alts after pruning (7 fresh and 1 done)

PrunedKeptTotal
New1436149
Fresh213
Picked011
Done000
Total1458153
Error
0.3b
Counts
153 → 8
Alt Table
StatusErrorProgram
14.5b
(/.f64 1 (+.f64 (pow.f64 (cbrt.f64 x) 2) (+.f64 (cbrt.f64 (*.f64 (+.f64 x 1) x)) (/.f64 (pow.f64 (+.f64 x 1) 2) (+.f64 (pow.f64 (cbrt.f64 (+.f64 x 1)) 4) (+.f64 0 (*.f64 (pow.f64 (cbrt.f64 (+.f64 x 1)) 2) 0)))))))
14.1b
(/.f64 1 (+.f64 (pow.f64 (cbrt.f64 x) 2) (+.f64 (cbrt.f64 (*.f64 (+.f64 x 1) x)) (*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (+.f64 x 1)) 4))) 3) (cbrt.f64 (pow.f64 (cbrt.f64 (+.f64 x 1)) 2))))))
14.0b
(/.f64 1 (+.f64 (pow.f64 (/.f64 x (+.f64 (pow.f64 (cbrt.f64 x) 2) (-.f64 0 (*.f64 (cbrt.f64 x) 0)))) 2) (+.f64 (cbrt.f64 (*.f64 (+.f64 x 1) x)) (pow.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (+.f64 x 1)) 2)) 3))))
0.5b
(/.f64 1 (+.f64 (pow.f64 (cbrt.f64 x) 2) (+.f64 (*.f64 (cbrt.f64 (+.f64 x 1)) (cbrt.f64 x)) (pow.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (+.f64 x 1)) 2)) 3))))
14.1b
(/.f64 1 (+.f64 (pow.f64 (cbrt.f64 x) 2) (+.f64 (cbrt.f64 (*.f64 (+.f64 x 1) x)) (pow.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (+.f64 x 1)) 2)) 3))))
29.6b
(-.f64 (/.f64 (+.f64 x 1) (+.f64 (cbrt.f64 (pow.f64 (+.f64 x 1) 2)) (+.f64 0 (*.f64 (cbrt.f64 (+.f64 x 1)) 0)))) (cbrt.f64 x))
14.0b
(/.f64 1 (+.f64 (pow.f64 (cbrt.f64 x) 2) (+.f64 (cbrt.f64 (*.f64 (+.f64 x 1) x)) (cbrt.f64 (pow.f64 (+.f64 x 1) 2)))))
14.1b
(/.f64 1 (+.f64 (cbrt.f64 (*.f64 x x)) (+.f64 (cbrt.f64 (*.f64 (+.f64 x 1) x)) (pow.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (+.f64 x 1)) 2)) 3))))
Compiler

Compiled 4279 to 3171 computations (25.9% saved)

regimes279.0ms (6.7%)

Accuracy

Total 0.3b remaining (43.4%)

Threshold costs 0.3b (43.4%)

Counts
145 → 1
Compiler

Compiled 5754 to 4501 computations (21.8% saved)

simplify2.0ms (0.1%)

Algorithm
egg-herbie
Rules
1-exp_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01638
11838
Stop Event
saturated
Calls
Call 1
Inputs
(/.f64 1 (+.f64 (pow.f64 (cbrt.f64 x) 2) (+.f64 (*.f64 (cbrt.f64 (+.f64 x 1)) (cbrt.f64 x)) (pow.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (+.f64 x 1)) 2)) 3))))
Outputs
(/.f64 1 (+.f64 (pow.f64 (cbrt.f64 x) 2) (+.f64 (*.f64 (cbrt.f64 (+.f64 x 1)) (cbrt.f64 x)) (pow.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (+.f64 x 1)) 2)) 3))))

end187.0ms (4.5%)

Stop Event
fuel
Compiler

Compiled 273 to 223 computations (18.3% saved)

Profiling

Loading profile data...