Details

Time bar (total: 1.7s)

analyze0.0ms (0%)

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

Compiled 17 to 9 computations (47.1% saved)

sample837.0ms (48.3%)

Results
824.0ms8256×body256valid
Bogosity

preprocess268.0ms (15.5%)

Algorithm
egg-herbie
Rules
3512×sqr-pow
1426×pow-sqr
1160×cube-prod
742×fabs-mul
736×cube-mult
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0619
11715
23415
34715
46615
512415
622215
764415
8104615
9113415
10127115
11143315
12167115
13198415
14237915
15285215
16339115
17403115
18425215
19444815
20458815
21467415
22473215
23562215
24667215
25697415
26726815
27740015
28741015
29741015
011
Stop Event
saturated
node limit
Calls
Call 1
Inputs
0
Outputs
0
Call 2
Inputs
(+.f64 (*.f64 x (*.f64 x x)) (*.f64 x x))
Outputs
(+.f64 (*.f64 x (*.f64 x x)) (*.f64 x x))
(+.f64 (*.f64 x x) (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(fma.f64 x x (pow.f64 x 3))
Compiler

Compiled 11 to 5 computations (54.5% saved)

simplify270.0ms (15.6%)

Algorithm
egg-herbie
Rules
3512×sqr-pow
1426×pow-sqr
1160×cube-prod
742×fabs-mul
736×cube-mult
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0619
11715
23415
34715
46615
512415
622215
764415
8104615
9113415
10127115
11143315
12167115
13198415
14237915
15285215
16339115
17403115
18425215
19444815
20458815
21467415
22473215
23562215
24667215
25697415
26726815
27740015
28741015
29741015
Stop Event
node limit
Counts
1 → 4
Calls
Call 1
Inputs
(+.f64 (*.f64 x (*.f64 x x)) (*.f64 x x))
Outputs
(+.f64 (*.f64 x (*.f64 x x)) (*.f64 x x))
(+.f64 (*.f64 x x) (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(fma.f64 x x (pow.f64 x 3))

eval1.0ms (0%)

Compiler

Compiled 29 to 12 computations (58.6% saved)

prune1.0ms (0.1%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New224
Fresh011
Picked000
Done000
Total235
Error
0b
Counts
5 → 2
Alt Table
Click to see full alt table
StatusErrorProgram
0b
(fma.f64 x x (pow.f64 x 3))
0.0b
(+.f64 (*.f64 x (*.f64 x x)) (*.f64 x x))
Compiler

Compiled 17 to 8 computations (52.9% saved)

localize5.0ms (0.3%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(+.f64 (*.f64 x (*.f64 x x)) (*.f64 x x))
0.1b
(*.f64 x (*.f64 x x))
Compiler

Compiled 19 to 4 computations (78.9% saved)

series2.0ms (0.1%)

Counts
2 → 24
Calls

6 calls:

TimeVariablePointExpression
0.0ms
x
@-inf
(*.f64 x (*.f64 x x))
0.0ms
x
@0
(*.f64 x (*.f64 x x))
0.0ms
x
@inf
(*.f64 x (*.f64 x x))
0.0ms
x
@inf
(+.f64 (*.f64 x (*.f64 x x)) (*.f64 x x))
0.0ms
x
@0
(+.f64 (*.f64 x (*.f64 x x)) (*.f64 x x))

rewrite57.0ms (3.3%)

Algorithm
batch-egg-rewrite
Rules
1410×add-sqr-sqrt
1388×*-un-lft-identity
1306×add-cube-cbrt
1294×add-cbrt-cube
1286×add-exp-log
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0626
113722
2186522
Stop Event
node limit
Counts
2 → 56
Calls
Call 1
Inputs
(*.f64 x (*.f64 x x))
(+.f64 (*.f64 x (*.f64 x x)) (*.f64 x x))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 x (*.f64 x x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 x 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (*.f64 x x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 x 3/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 x 9) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 x 6))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (*.f64 x (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 x 9))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 x (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 3 (log.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 x) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3 (log.f64 x)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 x (*.f64 x x))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (+.f64 (*.f64 x (*.f64 x x)) (*.f64 x x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (pow.f64 x 6) (-.f64 (*.f64 x (*.f64 x x)) (*.f64 x x))) (/.f64 (pow.f64 x 4) (-.f64 (*.f64 x (*.f64 x x)) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (fma.f64 x x x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x x) (+.f64 x 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 x (*.f64 x x)) (*.f64 x x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 x (*.f64 x x)) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (hypot.f64 x (pow.f64 x 3/2)) (hypot.f64 x (pow.f64 x 3/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 x) (fma.f64 x x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (+.f64 (*.f64 x (*.f64 x x)) (*.f64 x x))) (pow.f64 (cbrt.f64 (+.f64 (*.f64 x (*.f64 x x)) (*.f64 x x))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (+.f64 (*.f64 x (*.f64 x x)) (*.f64 x x))) 2) (cbrt.f64 (+.f64 (*.f64 x (*.f64 x x)) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 x x)) (*.f64 (cbrt.f64 x) (fma.f64 x x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 x x x) x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x 1) (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 x 6) (pow.f64 x 4)) (/.f64 1 (-.f64 (*.f64 x (*.f64 x x)) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 x 6) (pow.f64 x 9)) (/.f64 1 (+.f64 (pow.f64 x 6) (-.f64 (pow.f64 x 4) (pow.f64 x 5)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x 1) 1) (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x 1) (cbrt.f64 (pow.f64 x 4))) (cbrt.f64 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (-.f64 (*.f64 x (*.f64 x x)) (*.f64 x x)) (-.f64 (pow.f64 x 6) (pow.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (pow.f64 x 6) (-.f64 (pow.f64 x 4) (pow.f64 x 5))) (+.f64 (pow.f64 x 6) (pow.f64 x 9))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 x 6) (pow.f64 x 4)) (-.f64 (*.f64 x (*.f64 x x)) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 x 6) (pow.f64 x 9)) (+.f64 (pow.f64 x 6) (-.f64 (pow.f64 x 4) (pow.f64 x 5))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 x 6) (pow.f64 x 9)) (+.f64 (pow.f64 x 4) (-.f64 (pow.f64 x 6) (pow.f64 x 5))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 x 4) (pow.f64 x 6)) (-.f64 (*.f64 x x) (*.f64 x (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 x 6) (pow.f64 x 4))) (neg.f64 (-.f64 (*.f64 x (*.f64 x x)) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 x 6) (pow.f64 x 9))) (neg.f64 (+.f64 (pow.f64 x 6) (-.f64 (pow.f64 x 4) (pow.f64 x 5)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 (*.f64 x (*.f64 x x)) (*.f64 x x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (hypot.f64 x (pow.f64 x 3/2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (+.f64 (*.f64 x (*.f64 x x)) (*.f64 x x))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (+.f64 (*.f64 x (*.f64 x x)) (*.f64 x x)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (+.f64 (*.f64 x (*.f64 x x)) (*.f64 x x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 x) (fma.f64 x x x)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (+.f64 (*.f64 x (*.f64 x x)) (*.f64 x x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (+.f64 (*.f64 x (*.f64 x x)) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (+.f64 (*.f64 x (*.f64 x x)) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (+.f64 (*.f64 x (*.f64 x x)) (*.f64 x x))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (+.f64 (*.f64 x (*.f64 x x)) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x x (*.f64 x (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x (*.f64 x x) (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x x) x (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 x x) (*.f64 x (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 x (*.f64 x x)) (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 x 3/2) (pow.f64 x 3/2) (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 x 4)) (cbrt.f64 (*.f64 x x)) (*.f64 x (*.f64 x x)))))))

simplify68.0ms (4%)

Algorithm
egg-herbie
Rules
1350×associate-/l/
1128×times-frac
980×associate-/r/
598×fma-def
528×associate-/l*
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01291446
13071416
212121416
354671416
Stop Event
node limit
Counts
80 → 71
Calls
Call 1
Inputs
(pow.f64 x 3)
(pow.f64 x 3)
(pow.f64 x 3)
(pow.f64 x 3)
(pow.f64 x 3)
(pow.f64 x 3)
(pow.f64 x 3)
(pow.f64 x 3)
(pow.f64 x 3)
(pow.f64 x 3)
(pow.f64 x 3)
(pow.f64 x 3)
(pow.f64 x 2)
(+.f64 (pow.f64 x 2) (pow.f64 x 3))
(+.f64 (pow.f64 x 2) (pow.f64 x 3))
(+.f64 (pow.f64 x 2) (pow.f64 x 3))
(pow.f64 x 3)
(+.f64 (pow.f64 x 2) (pow.f64 x 3))
(+.f64 (pow.f64 x 2) (pow.f64 x 3))
(+.f64 (pow.f64 x 2) (pow.f64 x 3))
(pow.f64 x 3)
(+.f64 (pow.f64 x 2) (pow.f64 x 3))
(+.f64 (pow.f64 x 2) (pow.f64 x 3))
(+.f64 (pow.f64 x 2) (pow.f64 x 3))
(-.f64 (+.f64 1 (*.f64 x (*.f64 x x))) 1)
(pow.f64 x 3)
(pow.f64 (*.f64 x (*.f64 x x)) 1)
(pow.f64 (pow.f64 x 3/2) 2)
(pow.f64 (pow.f64 x 9) 1/3)
(sqrt.f64 (pow.f64 x 6))
(log.f64 (exp.f64 (*.f64 x (*.f64 x x))))
(cbrt.f64 (pow.f64 x 9))
(expm1.f64 (log1p.f64 (*.f64 x (*.f64 x x))))
(exp.f64 (*.f64 3 (log.f64 x)))
(exp.f64 (*.f64 (log.f64 x) 3))
(exp.f64 (*.f64 (*.f64 3 (log.f64 x)) 1))
(log1p.f64 (expm1.f64 (*.f64 x (*.f64 x x))))
(-.f64 (+.f64 1 (+.f64 (*.f64 x (*.f64 x x)) (*.f64 x x))) 1)
(-.f64 (/.f64 (pow.f64 x 6) (-.f64 (*.f64 x (*.f64 x x)) (*.f64 x x))) (/.f64 (pow.f64 x 4) (-.f64 (*.f64 x (*.f64 x x)) (*.f64 x x))))
(*.f64 x (fma.f64 x x x))
(*.f64 (*.f64 x x) (+.f64 x 1))
(*.f64 (+.f64 (*.f64 x (*.f64 x x)) (*.f64 x x)) 1)
(*.f64 1 (+.f64 (*.f64 x (*.f64 x x)) (*.f64 x x)))
(*.f64 (hypot.f64 x (pow.f64 x 3/2)) (hypot.f64 x (pow.f64 x 3/2)))
(*.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 x) (fma.f64 x x x)))
(*.f64 (cbrt.f64 (+.f64 (*.f64 x (*.f64 x x)) (*.f64 x x))) (pow.f64 (cbrt.f64 (+.f64 (*.f64 x (*.f64 x x)) (*.f64 x x))) 2))
(*.f64 (pow.f64 (cbrt.f64 (+.f64 (*.f64 x (*.f64 x x)) (*.f64 x x))) 2) (cbrt.f64 (+.f64 (*.f64 x (*.f64 x x)) (*.f64 x x))))
(*.f64 (cbrt.f64 (*.f64 x x)) (*.f64 (cbrt.f64 x) (fma.f64 x x x)))
(*.f64 (fma.f64 x x x) x)
(*.f64 (+.f64 x 1) (*.f64 x x))
(*.f64 (-.f64 (pow.f64 x 6) (pow.f64 x 4)) (/.f64 1 (-.f64 (*.f64 x (*.f64 x x)) (*.f64 x x))))
(*.f64 (+.f64 (pow.f64 x 6) (pow.f64 x 9)) (/.f64 1 (+.f64 (pow.f64 x 6) (-.f64 (pow.f64 x 4) (pow.f64 x 5)))))
(*.f64 (*.f64 (+.f64 x 1) 1) (*.f64 x x))
(*.f64 (*.f64 (+.f64 x 1) (cbrt.f64 (pow.f64 x 4))) (cbrt.f64 (*.f64 x x)))
(/.f64 1 (/.f64 (-.f64 (*.f64 x (*.f64 x x)) (*.f64 x x)) (-.f64 (pow.f64 x 6) (pow.f64 x 4))))
(/.f64 1 (/.f64 (+.f64 (pow.f64 x 6) (-.f64 (pow.f64 x 4) (pow.f64 x 5))) (+.f64 (pow.f64 x 6) (pow.f64 x 9))))
(/.f64 (-.f64 (pow.f64 x 6) (pow.f64 x 4)) (-.f64 (*.f64 x (*.f64 x x)) (*.f64 x x)))
(/.f64 (+.f64 (pow.f64 x 6) (pow.f64 x 9)) (+.f64 (pow.f64 x 6) (-.f64 (pow.f64 x 4) (pow.f64 x 5))))
(/.f64 (+.f64 (pow.f64 x 6) (pow.f64 x 9)) (+.f64 (pow.f64 x 4) (-.f64 (pow.f64 x 6) (pow.f64 x 5))))
(/.f64 (-.f64 (pow.f64 x 4) (pow.f64 x 6)) (-.f64 (*.f64 x x) (*.f64 x (*.f64 x x))))
(/.f64 (neg.f64 (-.f64 (pow.f64 x 6) (pow.f64 x 4))) (neg.f64 (-.f64 (*.f64 x (*.f64 x x)) (*.f64 x x))))
(/.f64 (neg.f64 (+.f64 (pow.f64 x 6) (pow.f64 x 9))) (neg.f64 (+.f64 (pow.f64 x 6) (-.f64 (pow.f64 x 4) (pow.f64 x 5)))))
(pow.f64 (+.f64 (*.f64 x (*.f64 x x)) (*.f64 x x)) 1)
(pow.f64 (hypot.f64 x (pow.f64 x 3/2)) 2)
(pow.f64 (cbrt.f64 (+.f64 (*.f64 x (*.f64 x x)) (*.f64 x x))) 3)
(pow.f64 (pow.f64 (+.f64 (*.f64 x (*.f64 x x)) (*.f64 x x)) 3) 1/3)
(sqrt.f64 (pow.f64 (+.f64 (*.f64 x (*.f64 x x)) (*.f64 x x)) 2))
(log.f64 (pow.f64 (exp.f64 x) (fma.f64 x x x)))
(cbrt.f64 (pow.f64 (+.f64 (*.f64 x (*.f64 x x)) (*.f64 x x)) 3))
(expm1.f64 (log1p.f64 (+.f64 (*.f64 x (*.f64 x x)) (*.f64 x x))))
(exp.f64 (log.f64 (+.f64 (*.f64 x (*.f64 x x)) (*.f64 x x))))
(exp.f64 (*.f64 (log.f64 (+.f64 (*.f64 x (*.f64 x x)) (*.f64 x x))) 1))
(log1p.f64 (expm1.f64 (+.f64 (*.f64 x (*.f64 x x)) (*.f64 x x))))
(fma.f64 x x (*.f64 x (*.f64 x x)))
(fma.f64 x (*.f64 x x) (*.f64 x x))
(fma.f64 (*.f64 x x) x (*.f64 x x))
(fma.f64 1 (*.f64 x x) (*.f64 x (*.f64 x x)))
(fma.f64 1 (*.f64 x (*.f64 x x)) (*.f64 x x))
(fma.f64 (pow.f64 x 3/2) (pow.f64 x 3/2) (*.f64 x x))
(fma.f64 (cbrt.f64 (pow.f64 x 4)) (cbrt.f64 (*.f64 x x)) (*.f64 x (*.f64 x x)))
Outputs
(pow.f64 x 3)
(pow.f64 x 3)
(pow.f64 x 3)
(pow.f64 x 3)
(pow.f64 x 3)
(pow.f64 x 3)
(pow.f64 x 3)
(pow.f64 x 3)
(pow.f64 x 3)
(pow.f64 x 3)
(pow.f64 x 3)
(pow.f64 x 3)
(pow.f64 x 2)
(*.f64 x x)
(+.f64 (pow.f64 x 2) (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(+.f64 (pow.f64 x 2) (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(+.f64 (pow.f64 x 2) (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(pow.f64 x 3)
(+.f64 (pow.f64 x 2) (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(+.f64 (pow.f64 x 2) (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(+.f64 (pow.f64 x 2) (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(pow.f64 x 3)
(+.f64 (pow.f64 x 2) (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(+.f64 (pow.f64 x 2) (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(+.f64 (pow.f64 x 2) (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(-.f64 (+.f64 1 (*.f64 x (*.f64 x x))) 1)
(pow.f64 x 3)
(pow.f64 x 3)
(pow.f64 (*.f64 x (*.f64 x x)) 1)
(pow.f64 x 3)
(pow.f64 (pow.f64 x 3/2) 2)
(pow.f64 x 3)
(pow.f64 (pow.f64 x 9) 1/3)
(cbrt.f64 (pow.f64 x 9))
(sqrt.f64 (pow.f64 x 6))
(pow.f64 x 3)
(log.f64 (exp.f64 (*.f64 x (*.f64 x x))))
(pow.f64 x 3)
(cbrt.f64 (pow.f64 x 9))
(expm1.f64 (log1p.f64 (*.f64 x (*.f64 x x))))
(pow.f64 x 3)
(exp.f64 (*.f64 3 (log.f64 x)))
(pow.f64 x 3)
(exp.f64 (*.f64 (log.f64 x) 3))
(pow.f64 x 3)
(exp.f64 (*.f64 (*.f64 3 (log.f64 x)) 1))
(pow.f64 x 3)
(log1p.f64 (expm1.f64 (*.f64 x (*.f64 x x))))
(pow.f64 x 3)
(-.f64 (+.f64 1 (+.f64 (*.f64 x (*.f64 x x)) (*.f64 x x))) 1)
(*.f64 x (fma.f64 x x x))
(-.f64 (/.f64 (pow.f64 x 6) (-.f64 (*.f64 x (*.f64 x x)) (*.f64 x x))) (/.f64 (pow.f64 x 4) (-.f64 (*.f64 x (*.f64 x x)) (*.f64 x x))))
(/.f64 (-.f64 (pow.f64 x 6) (pow.f64 x 4)) (-.f64 (pow.f64 x 3) (*.f64 x x)))
(/.f64 (/.f64 (-.f64 (pow.f64 x 6) (pow.f64 x 4)) x) (-.f64 (*.f64 x x) x))
(*.f64 x (fma.f64 x x x))
(*.f64 (*.f64 x x) (+.f64 x 1))
(*.f64 x (fma.f64 x x x))
(*.f64 (+.f64 (*.f64 x (*.f64 x x)) (*.f64 x x)) 1)
(*.f64 x (fma.f64 x x x))
(*.f64 1 (+.f64 (*.f64 x (*.f64 x x)) (*.f64 x x)))
(*.f64 x (fma.f64 x x x))
(*.f64 (hypot.f64 x (pow.f64 x 3/2)) (hypot.f64 x (pow.f64 x 3/2)))
(*.f64 x (fma.f64 x x x))
(*.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 x) (fma.f64 x x x)))
(*.f64 x (fma.f64 x x x))
(*.f64 (cbrt.f64 (+.f64 (*.f64 x (*.f64 x x)) (*.f64 x x))) (pow.f64 (cbrt.f64 (+.f64 (*.f64 x (*.f64 x x)) (*.f64 x x))) 2))
(*.f64 x (fma.f64 x x x))
(*.f64 (pow.f64 (cbrt.f64 (+.f64 (*.f64 x (*.f64 x x)) (*.f64 x x))) 2) (cbrt.f64 (+.f64 (*.f64 x (*.f64 x x)) (*.f64 x x))))
(*.f64 x (fma.f64 x x x))
(*.f64 (cbrt.f64 (*.f64 x x)) (*.f64 (cbrt.f64 x) (fma.f64 x x x)))
(*.f64 (*.f64 (cbrt.f64 (*.f64 x x)) (cbrt.f64 x)) (fma.f64 x x x))
(*.f64 (fma.f64 x x x) (*.f64 (cbrt.f64 (*.f64 x x)) (cbrt.f64 x)))
(*.f64 (cbrt.f64 (*.f64 x x)) (*.f64 (fma.f64 x x x) (cbrt.f64 x)))
(*.f64 (fma.f64 x x x) x)
(*.f64 x (fma.f64 x x x))
(*.f64 (+.f64 x 1) (*.f64 x x))
(*.f64 x (fma.f64 x x x))
(*.f64 (-.f64 (pow.f64 x 6) (pow.f64 x 4)) (/.f64 1 (-.f64 (*.f64 x (*.f64 x x)) (*.f64 x x))))
(/.f64 (-.f64 (pow.f64 x 6) (pow.f64 x 4)) (-.f64 (pow.f64 x 3) (*.f64 x x)))
(/.f64 (/.f64 (-.f64 (pow.f64 x 6) (pow.f64 x 4)) x) (-.f64 (*.f64 x x) x))
(*.f64 (+.f64 (pow.f64 x 6) (pow.f64 x 9)) (/.f64 1 (+.f64 (pow.f64 x 6) (-.f64 (pow.f64 x 4) (pow.f64 x 5)))))
(/.f64 (*.f64 (+.f64 (pow.f64 x 9) (pow.f64 x 6)) 1) (+.f64 (pow.f64 x 6) (-.f64 (pow.f64 x 4) (pow.f64 x 5))))
(/.f64 (+.f64 (pow.f64 x 9) (pow.f64 x 6)) (-.f64 (pow.f64 x 6) (-.f64 (pow.f64 x 5) (pow.f64 x 4))))
(*.f64 (*.f64 (+.f64 x 1) 1) (*.f64 x x))
(*.f64 x (fma.f64 x x x))
(*.f64 (*.f64 (+.f64 x 1) (cbrt.f64 (pow.f64 x 4))) (cbrt.f64 (*.f64 x x)))
(*.f64 (+.f64 x 1) (*.f64 (cbrt.f64 (pow.f64 x 4)) (cbrt.f64 (*.f64 x x))))
(*.f64 (*.f64 (cbrt.f64 (*.f64 x x)) (+.f64 x 1)) (cbrt.f64 (pow.f64 x 4)))
(*.f64 (+.f64 x 1) (*.f64 (cbrt.f64 (*.f64 x x)) (cbrt.f64 (pow.f64 x 4))))
(/.f64 1 (/.f64 (-.f64 (*.f64 x (*.f64 x x)) (*.f64 x x)) (-.f64 (pow.f64 x 6) (pow.f64 x 4))))
(/.f64 (-.f64 (pow.f64 x 6) (pow.f64 x 4)) (-.f64 (pow.f64 x 3) (*.f64 x x)))
(/.f64 (/.f64 (-.f64 (pow.f64 x 6) (pow.f64 x 4)) x) (-.f64 (*.f64 x x) x))
(/.f64 1 (/.f64 (+.f64 (pow.f64 x 6) (-.f64 (pow.f64 x 4) (pow.f64 x 5))) (+.f64 (pow.f64 x 6) (pow.f64 x 9))))
(/.f64 (*.f64 (+.f64 (pow.f64 x 9) (pow.f64 x 6)) 1) (+.f64 (pow.f64 x 6) (-.f64 (pow.f64 x 4) (pow.f64 x 5))))
(/.f64 (+.f64 (pow.f64 x 9) (pow.f64 x 6)) (-.f64 (pow.f64 x 6) (-.f64 (pow.f64 x 5) (pow.f64 x 4))))
(/.f64 (-.f64 (pow.f64 x 6) (pow.f64 x 4)) (-.f64 (*.f64 x (*.f64 x x)) (*.f64 x x)))
(/.f64 (-.f64 (pow.f64 x 6) (pow.f64 x 4)) (-.f64 (pow.f64 x 3) (*.f64 x x)))
(/.f64 (/.f64 (-.f64 (pow.f64 x 6) (pow.f64 x 4)) x) (-.f64 (*.f64 x x) x))
(/.f64 (+.f64 (pow.f64 x 6) (pow.f64 x 9)) (+.f64 (pow.f64 x 6) (-.f64 (pow.f64 x 4) (pow.f64 x 5))))
(/.f64 (*.f64 (+.f64 (pow.f64 x 9) (pow.f64 x 6)) 1) (+.f64 (pow.f64 x 6) (-.f64 (pow.f64 x 4) (pow.f64 x 5))))
(/.f64 (+.f64 (pow.f64 x 9) (pow.f64 x 6)) (-.f64 (pow.f64 x 6) (-.f64 (pow.f64 x 5) (pow.f64 x 4))))
(/.f64 (+.f64 (pow.f64 x 6) (pow.f64 x 9)) (+.f64 (pow.f64 x 4) (-.f64 (pow.f64 x 6) (pow.f64 x 5))))
(/.f64 (*.f64 (+.f64 (pow.f64 x 9) (pow.f64 x 6)) 1) (+.f64 (pow.f64 x 6) (-.f64 (pow.f64 x 4) (pow.f64 x 5))))
(/.f64 (+.f64 (pow.f64 x 9) (pow.f64 x 6)) (-.f64 (pow.f64 x 6) (-.f64 (pow.f64 x 5) (pow.f64 x 4))))
(/.f64 (-.f64 (pow.f64 x 4) (pow.f64 x 6)) (-.f64 (*.f64 x x) (*.f64 x (*.f64 x x))))
(/.f64 (-.f64 (pow.f64 x 6) (pow.f64 x 4)) (-.f64 (pow.f64 x 3) (*.f64 x x)))
(/.f64 (/.f64 (-.f64 (pow.f64 x 6) (pow.f64 x 4)) x) (-.f64 (*.f64 x x) x))
(/.f64 (neg.f64 (-.f64 (pow.f64 x 6) (pow.f64 x 4))) (neg.f64 (-.f64 (*.f64 x (*.f64 x x)) (*.f64 x x))))
(/.f64 (-.f64 (pow.f64 x 6) (pow.f64 x 4)) (-.f64 (pow.f64 x 3) (*.f64 x x)))
(/.f64 (/.f64 (-.f64 (pow.f64 x 6) (pow.f64 x 4)) x) (-.f64 (*.f64 x x) x))
(/.f64 (neg.f64 (+.f64 (pow.f64 x 6) (pow.f64 x 9))) (neg.f64 (+.f64 (pow.f64 x 6) (-.f64 (pow.f64 x 4) (pow.f64 x 5)))))
(/.f64 (*.f64 (+.f64 (pow.f64 x 9) (pow.f64 x 6)) 1) (+.f64 (pow.f64 x 6) (-.f64 (pow.f64 x 4) (pow.f64 x 5))))
(/.f64 (+.f64 (pow.f64 x 9) (pow.f64 x 6)) (-.f64 (pow.f64 x 6) (-.f64 (pow.f64 x 5) (pow.f64 x 4))))
(pow.f64 (+.f64 (*.f64 x (*.f64 x x)) (*.f64 x x)) 1)
(*.f64 x (fma.f64 x x x))
(pow.f64 (hypot.f64 x (pow.f64 x 3/2)) 2)
(*.f64 x (fma.f64 x x x))
(pow.f64 (cbrt.f64 (+.f64 (*.f64 x (*.f64 x x)) (*.f64 x x))) 3)
(*.f64 x (fma.f64 x x x))
(pow.f64 (pow.f64 (+.f64 (*.f64 x (*.f64 x x)) (*.f64 x x)) 3) 1/3)
(*.f64 x (fma.f64 x x x))
(sqrt.f64 (pow.f64 (+.f64 (*.f64 x (*.f64 x x)) (*.f64 x x)) 2))
(*.f64 x (fma.f64 x x x))
(log.f64 (pow.f64 (exp.f64 x) (fma.f64 x x x)))
(*.f64 x (fma.f64 x x x))
(cbrt.f64 (pow.f64 (+.f64 (*.f64 x (*.f64 x x)) (*.f64 x x)) 3))
(*.f64 x (fma.f64 x x x))
(expm1.f64 (log1p.f64 (+.f64 (*.f64 x (*.f64 x x)) (*.f64 x x))))
(*.f64 x (fma.f64 x x x))
(exp.f64 (log.f64 (+.f64 (*.f64 x (*.f64 x x)) (*.f64 x x))))
(*.f64 x (fma.f64 x x x))
(exp.f64 (*.f64 (log.f64 (+.f64 (*.f64 x (*.f64 x x)) (*.f64 x x))) 1))
(*.f64 x (fma.f64 x x x))
(log1p.f64 (expm1.f64 (+.f64 (*.f64 x (*.f64 x x)) (*.f64 x x))))
(*.f64 x (fma.f64 x x x))
(fma.f64 x x (*.f64 x (*.f64 x x)))
(*.f64 x (fma.f64 x x x))
(fma.f64 x (*.f64 x x) (*.f64 x x))
(*.f64 x (fma.f64 x x x))
(fma.f64 (*.f64 x x) x (*.f64 x x))
(*.f64 x (fma.f64 x x x))
(fma.f64 1 (*.f64 x x) (*.f64 x (*.f64 x x)))
(*.f64 x (fma.f64 x x x))
(fma.f64 1 (*.f64 x (*.f64 x x)) (*.f64 x x))
(*.f64 x (fma.f64 x x x))
(fma.f64 (pow.f64 x 3/2) (pow.f64 x 3/2) (*.f64 x x))
(*.f64 x (fma.f64 x x x))
(fma.f64 (cbrt.f64 (pow.f64 x 4)) (cbrt.f64 (*.f64 x x)) (*.f64 x (*.f64 x x)))
(fma.f64 (cbrt.f64 (pow.f64 x 4)) (cbrt.f64 (*.f64 x x)) (pow.f64 x 3))
(fma.f64 (cbrt.f64 (*.f64 x x)) (cbrt.f64 (pow.f64 x 4)) (pow.f64 x 3))

localize5.0ms (0.3%)

Compiler

Compiled 12 to 7 computations (41.7% saved)

eval15.0ms (0.8%)

Compiler

Compiled 880 to 367 computations (58.3% saved)

prune10.0ms (0.6%)

Pruning

4 alts after pruning (3 fresh and 1 done)

PrunedKeptTotal
New68371
Fresh000
Picked101
Done011
Total69473
Error
0b
Counts
73 → 4
Alt Table
Click to see full alt table
StatusErrorProgram
0b
(fma.f64 x x (*.f64 x (*.f64 x x)))
0.0b
(+.f64 (*.f64 x (*.f64 x x)) (*.f64 x x))
0.0b
(*.f64 (+.f64 x 1) (*.f64 x x))
0.7b
(*.f64 x x)
Compiler

Compiled 31 to 15 computations (51.6% saved)

localize2.0ms (0.1%)

Compiler

Compiled 5 to 2 computations (60% saved)

localize6.0ms (0.3%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.0b
(*.f64 (+.f64 x 1) (*.f64 x x))
Compiler

Compiled 16 to 8 computations (50% saved)

series1.0ms (0%)

Counts
1 → 12
Calls

3 calls:

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

rewrite54.0ms (3.1%)

Algorithm
batch-egg-rewrite
Rules
1394×add-sqr-sqrt
1376×*-un-lft-identity
1284×add-cube-cbrt
1268×add-cbrt-cube
1260×add-exp-log
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0719
114519
2186419
Stop Event
node limit
Counts
1 → 18
Calls
Call 1
Inputs
(*.f64 (+.f64 x 1) (*.f64 x x))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x x) (pow.f64 x 3))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (pow.f64 x 3) (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 (+.f64 x 1) (*.f64 x x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 x x) (fma.f64 x x -1)) (+.f64 x -1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 x x) (+.f64 1 (pow.f64 x 3))) (fma.f64 x x (-.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (fma.f64 x x -1) (*.f64 x x)) (+.f64 x -1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 1 (pow.f64 x 3)) (*.f64 x x)) (fma.f64 x x (-.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (+.f64 x 1) (*.f64 x x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (sqrt.f64 (+.f64 x 1))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (+.f64 x 1) (*.f64 x x))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (+.f64 x 1) (*.f64 x x)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (+.f64 x 1) (*.f64 x x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (pow.f64 (exp.f64 x) x) (+.f64 x 1)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (+.f64 x 1) (*.f64 x x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (+.f64 x 1) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 2 (log.f64 x)) (log1p.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (+.f64 (*.f64 2 (log.f64 x)) (log1p.f64 x)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (+.f64 x 1) (*.f64 x x))))))))

simplify68.0ms (3.9%)

Algorithm
egg-herbie
Rules
1660×fma-def
1040×associate-/r/
984×associate-*r*
828×associate-*l*
740×associate-*r/
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
059498
1152498
2522486
32646478
45938478
Stop Event
node limit
Counts
30 → 31
Calls
Call 1
Inputs
(pow.f64 x 2)
(+.f64 (pow.f64 x 2) (pow.f64 x 3))
(+.f64 (pow.f64 x 2) (pow.f64 x 3))
(+.f64 (pow.f64 x 2) (pow.f64 x 3))
(pow.f64 x 3)
(+.f64 (pow.f64 x 2) (pow.f64 x 3))
(+.f64 (pow.f64 x 2) (pow.f64 x 3))
(+.f64 (pow.f64 x 2) (pow.f64 x 3))
(pow.f64 x 3)
(+.f64 (pow.f64 x 2) (pow.f64 x 3))
(+.f64 (pow.f64 x 2) (pow.f64 x 3))
(+.f64 (pow.f64 x 2) (pow.f64 x 3))
(+.f64 (*.f64 x x) (pow.f64 x 3))
(+.f64 (pow.f64 x 3) (*.f64 x x))
(-.f64 (+.f64 1 (*.f64 (+.f64 x 1) (*.f64 x x))) 1)
(/.f64 (*.f64 (*.f64 x x) (fma.f64 x x -1)) (+.f64 x -1))
(/.f64 (*.f64 (*.f64 x x) (+.f64 1 (pow.f64 x 3))) (fma.f64 x x (-.f64 1 x)))
(/.f64 (*.f64 (fma.f64 x x -1) (*.f64 x x)) (+.f64 x -1))
(/.f64 (*.f64 (+.f64 1 (pow.f64 x 3)) (*.f64 x x)) (fma.f64 x x (-.f64 1 x)))
(pow.f64 (*.f64 (+.f64 x 1) (*.f64 x x)) 1)
(pow.f64 (*.f64 x (sqrt.f64 (+.f64 x 1))) 2)
(pow.f64 (cbrt.f64 (*.f64 (+.f64 x 1) (*.f64 x x))) 3)
(pow.f64 (pow.f64 (*.f64 (+.f64 x 1) (*.f64 x x)) 3) 1/3)
(sqrt.f64 (pow.f64 (*.f64 (+.f64 x 1) (*.f64 x x)) 2))
(log.f64 (pow.f64 (pow.f64 (exp.f64 x) x) (+.f64 x 1)))
(cbrt.f64 (pow.f64 (*.f64 (+.f64 x 1) (*.f64 x x)) 3))
(expm1.f64 (log1p.f64 (*.f64 (+.f64 x 1) (*.f64 x x))))
(exp.f64 (+.f64 (*.f64 2 (log.f64 x)) (log1p.f64 x)))
(exp.f64 (*.f64 (+.f64 (*.f64 2 (log.f64 x)) (log1p.f64 x)) 1))
(log1p.f64 (expm1.f64 (*.f64 (+.f64 x 1) (*.f64 x x))))
Outputs
(pow.f64 x 2)
(*.f64 x x)
(+.f64 (pow.f64 x 2) (pow.f64 x 3))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(+.f64 (pow.f64 x 2) (pow.f64 x 3))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(+.f64 (pow.f64 x 2) (pow.f64 x 3))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(pow.f64 x 3)
(+.f64 (pow.f64 x 2) (pow.f64 x 3))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(+.f64 (pow.f64 x 2) (pow.f64 x 3))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(+.f64 (pow.f64 x 2) (pow.f64 x 3))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(pow.f64 x 3)
(+.f64 (pow.f64 x 2) (pow.f64 x 3))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(+.f64 (pow.f64 x 2) (pow.f64 x 3))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(+.f64 (pow.f64 x 2) (pow.f64 x 3))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(+.f64 (*.f64 x x) (pow.f64 x 3))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(+.f64 (pow.f64 x 3) (*.f64 x x))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(-.f64 (+.f64 1 (*.f64 (+.f64 x 1) (*.f64 x x))) 1)
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(/.f64 (*.f64 (*.f64 x x) (fma.f64 x x -1)) (+.f64 x -1))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(/.f64 (*.f64 (*.f64 x x) (+.f64 1 (pow.f64 x 3))) (fma.f64 x x (-.f64 1 x)))
(/.f64 (*.f64 x x) (/.f64 (fma.f64 x x (-.f64 1 x)) (+.f64 (pow.f64 x 3) 1)))
(*.f64 (/.f64 (*.f64 x x) (fma.f64 x x (-.f64 1 x))) (+.f64 (pow.f64 x 3) 1))
(*.f64 (/.f64 (+.f64 x (pow.f64 x 4)) (-.f64 (fma.f64 x x 1) x)) x)
(/.f64 (fma.f64 x x (pow.f64 x 5)) (-.f64 (fma.f64 x x 1) x))
(/.f64 (*.f64 (fma.f64 x x -1) (*.f64 x x)) (+.f64 x -1))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(/.f64 (*.f64 (+.f64 1 (pow.f64 x 3)) (*.f64 x x)) (fma.f64 x x (-.f64 1 x)))
(/.f64 (*.f64 x x) (/.f64 (fma.f64 x x (-.f64 1 x)) (+.f64 (pow.f64 x 3) 1)))
(*.f64 (/.f64 (*.f64 x x) (fma.f64 x x (-.f64 1 x))) (+.f64 (pow.f64 x 3) 1))
(*.f64 (/.f64 (+.f64 x (pow.f64 x 4)) (-.f64 (fma.f64 x x 1) x)) x)
(/.f64 (fma.f64 x x (pow.f64 x 5)) (-.f64 (fma.f64 x x 1) x))
(pow.f64 (*.f64 (+.f64 x 1) (*.f64 x x)) 1)
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(pow.f64 (*.f64 x (sqrt.f64 (+.f64 x 1))) 2)
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(pow.f64 (cbrt.f64 (*.f64 (+.f64 x 1) (*.f64 x x))) 3)
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(pow.f64 (pow.f64 (*.f64 (+.f64 x 1) (*.f64 x x)) 3) 1/3)
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(sqrt.f64 (pow.f64 (*.f64 (+.f64 x 1) (*.f64 x x)) 2))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(log.f64 (pow.f64 (pow.f64 (exp.f64 x) x) (+.f64 x 1)))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(cbrt.f64 (pow.f64 (*.f64 (+.f64 x 1) (*.f64 x x)) 3))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(expm1.f64 (log1p.f64 (*.f64 (+.f64 x 1) (*.f64 x x))))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(exp.f64 (+.f64 (*.f64 2 (log.f64 x)) (log1p.f64 x)))
(exp.f64 (fma.f64 2 (log.f64 x) (log1p.f64 x)))
(*.f64 (*.f64 x x) (exp.f64 (log1p.f64 x)))
(*.f64 x (*.f64 x (exp.f64 (log1p.f64 x))))
(exp.f64 (*.f64 (+.f64 (*.f64 2 (log.f64 x)) (log1p.f64 x)) 1))
(exp.f64 (fma.f64 2 (log.f64 x) (log1p.f64 x)))
(*.f64 (*.f64 x x) (exp.f64 (log1p.f64 x)))
(*.f64 x (*.f64 x (exp.f64 (log1p.f64 x))))
(log1p.f64 (expm1.f64 (*.f64 (+.f64 x 1) (*.f64 x x))))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))

localize6.0ms (0.3%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.1b
(*.f64 x (*.f64 x x))
Compiler

Compiled 18 to 4 computations (77.8% saved)

eval7.0ms (0.4%)

Compiler

Compiled 407 to 216 computations (46.9% saved)

prune7.0ms (0.4%)

Pruning

4 alts after pruning (0 fresh and 4 done)

PrunedKeptTotal
New44044
Fresh000
Picked011
Done033
Total44448
Error
0b
Counts
48 → 4
Alt Table
Click to see full alt table
StatusErrorProgram
0b
(fma.f64 x x (*.f64 x (*.f64 x x)))
0.0b
(+.f64 (*.f64 x (*.f64 x x)) (*.f64 x x))
0.0b
(*.f64 (+.f64 x 1) (*.f64 x x))
0.7b
(*.f64 x x)
Compiler

Compiled 31 to 15 computations (51.6% saved)

regimes6.0ms (0.4%)

Counts
5 → 1
Calls
Call 1
Inputs
(*.f64 x x)
(*.f64 (+.f64 x 1) (*.f64 x x))
(+.f64 (*.f64 x (*.f64 x x)) (*.f64 x x))
(fma.f64 x x (*.f64 x (*.f64 x x)))
(fma.f64 x x (pow.f64 x 3))
Outputs
(fma.f64 x x (*.f64 x (*.f64 x x)))
Calls

2 calls:

3.0ms
x
2.0ms
(+.f64 (*.f64 x (*.f64 x x)) (*.f64 x x))
Results
ErrorSegmentsBranch
0b1x
0b1(+.f64 (*.f64 x (*.f64 x x)) (*.f64 x x))
Compiler

Compiled 46 to 16 computations (65.2% saved)

regimes5.0ms (0.3%)

Counts
3 → 1
Calls
Call 1
Inputs
(*.f64 x x)
(*.f64 (+.f64 x 1) (*.f64 x x))
(+.f64 (*.f64 x (*.f64 x x)) (*.f64 x x))
Outputs
(+.f64 (*.f64 x (*.f64 x x)) (*.f64 x x))
Calls

2 calls:

2.0ms
x
2.0ms
(+.f64 (*.f64 x (*.f64 x x)) (*.f64 x x))
Results
ErrorSegmentsBranch
0.0b1x
0.0b1(+.f64 (*.f64 x (*.f64 x x)) (*.f64 x x))
Compiler

Compiled 32 to 12 computations (62.5% saved)

regimes3.0ms (0.2%)

Accuracy

Total -0.7b remaining (-3591.2%)

Threshold costs -0.7b (-3591.2%)

Counts
2 → 1
Calls
Call 1
Inputs
(*.f64 x x)
(*.f64 (+.f64 x 1) (*.f64 x x))
Outputs
(*.f64 (+.f64 x 1) (*.f64 x x))
Calls

1 calls:

2.0ms
x
Results
ErrorSegmentsBranch
0.0b1x
Compiler

Compiled 13 to 6 computations (53.8% saved)

simplify9.0ms (0.5%)

Algorithm
egg-herbie
Rules
+-commutative
*-commutative
1-exp
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01172
11872
Stop Event
done
saturated
Calls
Call 1
Inputs
(fma.f64 x x (*.f64 x (*.f64 x x)))
(+.f64 (*.f64 x (*.f64 x x)) (*.f64 x x))
(*.f64 (+.f64 x 1) (*.f64 x x))
(*.f64 x x)
Outputs
(fma.f64 x x (*.f64 x (*.f64 x x)))
(+.f64 (*.f64 x (*.f64 x x)) (*.f64 x x))
(+.f64 (*.f64 x x) (*.f64 x (*.f64 x x)))
(*.f64 (+.f64 x 1) (*.f64 x x))
(*.f64 (*.f64 x x) (+.f64 x 1))
(*.f64 x x)
Compiler

Compiled 31 to 15 computations (51.6% saved)

soundness0.0ms (0%)

end20.0ms (1.2%)

Compiler

Compiled 28 to 8 computations (71.4% saved)

Profiling

Loading profile data...