Details

Time bar (total: 2.3s)

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)

sample1.0s (44.7%)

Results
982.0ms8256×body256valid
Bogosity

preprocess275.0ms (12%)

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)

simplify279.0ms (12.2%)

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.2%)

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

rewrite109.0ms (4.8%)

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 (pow.f64 x 3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 x 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 x 3) 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 (pow.f64 x 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 x 9))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 x 3)))))) (#(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 (pow.f64 x 3)))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 x (fma.f64 x x x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (pow.f64 x 6) (-.f64 (pow.f64 x 3) (*.f64 x x))) (/.f64 (pow.f64 x 4) (-.f64 (pow.f64 x 3) (*.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 x (fma.f64 x x x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 x (fma.f64 x 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 x (fma.f64 x x x))) (pow.f64 (cbrt.f64 (*.f64 x (fma.f64 x x x))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 x (fma.f64 x x x))) 2) (cbrt.f64 (*.f64 x (fma.f64 x 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 (pow.f64 x 3) (*.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 (pow.f64 x 3) (*.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 (pow.f64 x 3) (*.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) (pow.f64 x 3)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 x 6) (pow.f64 x 4))) (neg.f64 (-.f64 (pow.f64 x 3) (*.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 x (fma.f64 x 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 x (fma.f64 x x x))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 x (fma.f64 x x x)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 x (fma.f64 x 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 x (fma.f64 x x x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 x (fma.f64 x x x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 x (fma.f64 x x x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 x (fma.f64 x x x))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 x (fma.f64 x x x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x x (pow.f64 x 3))))) (#(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) (pow.f64 x 3))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (pow.f64 x 3) (*.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)) (pow.f64 x 3))))))

simplify64.0ms (2.8%)

Algorithm
egg-herbie
Rules
1442×associate-+r+
1264×associate-+l+
1076×associate-*r/
884×associate-*l/
700×times-frac
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01271446
13031416
210791416
342841416
Stop Event
node limit
Counts
80 → 67
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 (pow.f64 x 3)) 1)
(pow.f64 x 3)
(pow.f64 (pow.f64 x 3) 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 (pow.f64 x 3)))
(cbrt.f64 (pow.f64 x 9))
(expm1.f64 (log1p.f64 (pow.f64 x 3)))
(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 (pow.f64 x 3)))
(-.f64 (+.f64 1 (*.f64 x (fma.f64 x x x))) 1)
(-.f64 (/.f64 (pow.f64 x 6) (-.f64 (pow.f64 x 3) (*.f64 x x))) (/.f64 (pow.f64 x 4) (-.f64 (pow.f64 x 3) (*.f64 x x))))
(*.f64 x (fma.f64 x x x))
(*.f64 (*.f64 x x) (+.f64 x 1))
(*.f64 (*.f64 x (fma.f64 x x x)) 1)
(*.f64 1 (*.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 (sqrt.f64 x) (*.f64 (sqrt.f64 x) (fma.f64 x x x)))
(*.f64 (cbrt.f64 (*.f64 x (fma.f64 x x x))) (pow.f64 (cbrt.f64 (*.f64 x (fma.f64 x x x))) 2))
(*.f64 (pow.f64 (cbrt.f64 (*.f64 x (fma.f64 x x x))) 2) (cbrt.f64 (*.f64 x (fma.f64 x 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 (pow.f64 x 3) (*.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 (pow.f64 x 3) (*.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 (pow.f64 x 3) (*.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) (pow.f64 x 3)))
(/.f64 (neg.f64 (-.f64 (pow.f64 x 6) (pow.f64 x 4))) (neg.f64 (-.f64 (pow.f64 x 3) (*.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 x (fma.f64 x x x)) 1)
(pow.f64 (hypot.f64 x (pow.f64 x 3/2)) 2)
(pow.f64 (cbrt.f64 (*.f64 x (fma.f64 x x x))) 3)
(pow.f64 (pow.f64 (*.f64 x (fma.f64 x x x)) 3) 1/3)
(sqrt.f64 (pow.f64 (*.f64 x (fma.f64 x x x)) 2))
(log.f64 (pow.f64 (exp.f64 x) (fma.f64 x x x)))
(cbrt.f64 (pow.f64 (*.f64 x (fma.f64 x x x)) 3))
(expm1.f64 (log1p.f64 (*.f64 x (fma.f64 x x x))))
(exp.f64 (log.f64 (*.f64 x (fma.f64 x x x))))
(exp.f64 (*.f64 (log.f64 (*.f64 x (fma.f64 x x x))) 1))
(log1p.f64 (expm1.f64 (*.f64 x (fma.f64 x x x))))
(fma.f64 x x (pow.f64 x 3))
(fma.f64 x (*.f64 x x) (*.f64 x x))
(fma.f64 (*.f64 x x) x (*.f64 x x))
(fma.f64 1 (*.f64 x x) (pow.f64 x 3))
(fma.f64 1 (pow.f64 x 3) (*.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)) (pow.f64 x 3))
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))
(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 1 (pow.f64 x 3)) 1)
(pow.f64 x 3)
(pow.f64 x 3)
(pow.f64 (pow.f64 x 3) 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 (pow.f64 x 3)))
(pow.f64 x 3)
(cbrt.f64 (pow.f64 x 9))
(expm1.f64 (log1p.f64 (pow.f64 x 3)))
(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 (pow.f64 x 3)))
(pow.f64 x 3)
(-.f64 (+.f64 1 (*.f64 x (fma.f64 x x x))) 1)
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(-.f64 (/.f64 (pow.f64 x 6) (-.f64 (pow.f64 x 3) (*.f64 x x))) (/.f64 (pow.f64 x 4) (-.f64 (pow.f64 x 3) (*.f64 x x))))
(/.f64 (-.f64 (pow.f64 x 6) (pow.f64 x 4)) (-.f64 (pow.f64 x 3) (*.f64 x x)))
(/.f64 (-.f64 (pow.f64 x 6) (pow.f64 x 4)) (*.f64 x (-.f64 (*.f64 x x) x)))
(*.f64 x (fma.f64 x x x))
(fma.f64 x x (pow.f64 x 3))
(*.f64 (*.f64 x x) (+.f64 x 1))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(*.f64 (*.f64 x (fma.f64 x x x)) 1)
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(*.f64 1 (*.f64 x (fma.f64 x x x)))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(*.f64 (hypot.f64 x (pow.f64 x 3/2)) (hypot.f64 x (pow.f64 x 3/2)))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(*.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 x) (fma.f64 x x x)))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(*.f64 (cbrt.f64 (*.f64 x (fma.f64 x x x))) (pow.f64 (cbrt.f64 (*.f64 x (fma.f64 x x x))) 2))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(*.f64 (pow.f64 (cbrt.f64 (*.f64 x (fma.f64 x x x))) 2) (cbrt.f64 (*.f64 x (fma.f64 x x x))))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(*.f64 (cbrt.f64 (*.f64 x x)) (*.f64 (cbrt.f64 x) (fma.f64 x x x)))
(*.f64 (cbrt.f64 (*.f64 x x)) (*.f64 (fma.f64 x x x) (cbrt.f64 x)))
(*.f64 (fma.f64 x x x) (*.f64 (cbrt.f64 (*.f64 x x)) (cbrt.f64 x)))
(*.f64 (fma.f64 x x x) x)
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(*.f64 (+.f64 x 1) (*.f64 x x))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(*.f64 (-.f64 (pow.f64 x 6) (pow.f64 x 4)) (/.f64 1 (-.f64 (pow.f64 x 3) (*.f64 x x))))
(/.f64 (-.f64 (pow.f64 x 6) (pow.f64 x 4)) (-.f64 (pow.f64 x 3) (*.f64 x x)))
(/.f64 (-.f64 (pow.f64 x 6) (pow.f64 x 4)) (*.f64 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 4) (pow.f64 x 5))))
(*.f64 (*.f64 (+.f64 x 1) 1) (*.f64 x x))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(*.f64 (*.f64 (+.f64 x 1) (cbrt.f64 (pow.f64 x 4))) (cbrt.f64 (*.f64 x x)))
(*.f64 (cbrt.f64 (*.f64 x x)) (*.f64 (+.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 (pow.f64 x 3) (*.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 (pow.f64 x 6) (pow.f64 x 4)) (*.f64 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 4) (pow.f64 x 5))))
(/.f64 (-.f64 (pow.f64 x 6) (pow.f64 x 4)) (-.f64 (pow.f64 x 3) (*.f64 x x)))
(/.f64 (-.f64 (pow.f64 x 6) (pow.f64 x 4)) (*.f64 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 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 (+.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 4) (pow.f64 x 5))))
(/.f64 (-.f64 (pow.f64 x 4) (pow.f64 x 6)) (-.f64 (*.f64 x x) (pow.f64 x 3)))
(/.f64 (-.f64 (pow.f64 x 6) (pow.f64 x 4)) (-.f64 (pow.f64 x 3) (*.f64 x x)))
(/.f64 (-.f64 (pow.f64 x 6) (pow.f64 x 4)) (*.f64 x (-.f64 (*.f64 x x) x)))
(/.f64 (neg.f64 (-.f64 (pow.f64 x 6) (pow.f64 x 4))) (neg.f64 (-.f64 (pow.f64 x 3) (*.f64 x x))))
(/.f64 (-.f64 (pow.f64 x 6) (pow.f64 x 4)) (-.f64 (pow.f64 x 3) (*.f64 x x)))
(/.f64 (-.f64 (pow.f64 x 6) (pow.f64 x 4)) (*.f64 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 4) (pow.f64 x 5))))
(pow.f64 (*.f64 x (fma.f64 x x x)) 1)
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(pow.f64 (hypot.f64 x (pow.f64 x 3/2)) 2)
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(pow.f64 (cbrt.f64 (*.f64 x (fma.f64 x x x))) 3)
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(pow.f64 (pow.f64 (*.f64 x (fma.f64 x 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 x (fma.f64 x x x)) 2))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(log.f64 (pow.f64 (exp.f64 x) (fma.f64 x x x)))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(cbrt.f64 (pow.f64 (*.f64 x (fma.f64 x x x)) 3))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(expm1.f64 (log1p.f64 (*.f64 x (fma.f64 x x x))))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(exp.f64 (log.f64 (*.f64 x (fma.f64 x x x))))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(exp.f64 (*.f64 (log.f64 (*.f64 x (fma.f64 x x x))) 1))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(log1p.f64 (expm1.f64 (*.f64 x (fma.f64 x x x))))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(fma.f64 x (*.f64 x x) (*.f64 x x))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(fma.f64 (*.f64 x x) x (*.f64 x x))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(fma.f64 1 (*.f64 x x) (pow.f64 x 3))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(fma.f64 1 (pow.f64 x 3) (*.f64 x x))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(fma.f64 (pow.f64 x 3/2) (pow.f64 x 3/2) (*.f64 x x))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x 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))

localize8.0ms (0.4%)

Compiler

Compiled 12 to 7 computations (41.7% saved)

eval13.0ms (0.6%)

Compiler

Compiled 748 to 379 computations (49.3% saved)

prune8.0ms (0.4%)

Pruning

3 alts after pruning (2 fresh and 1 done)

PrunedKeptTotal
New65267
Fresh000
Picked101
Done011
Total66369
Error
0b
Counts
69 → 3
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(+.f64 (*.f64 x (*.f64 x x)) (*.f64 x x))
0.0b
(*.f64 (+.f64 x 1) (*.f64 x x))
0.9b
(*.f64 x x)
Compiler

Compiled 22 to 11 computations (50% saved)

localize4.0ms (0.2%)

Compiler

Compiled 5 to 2 computations (60% saved)

localize6.0ms (0.2%)

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

rewrite59.0ms (2.6%)

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 x) (pow.f64 x 3))) 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 x) (pow.f64 x 3)) 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 x) (pow.f64 x 3))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (+.f64 (*.f64 x x) (pow.f64 x 3)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (+.f64 (*.f64 x x) (pow.f64 x 3)) 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 x) (pow.f64 x 3)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (+.f64 (*.f64 x x) (pow.f64 x 3))))))) (#(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 x) (pow.f64 x 3))))))))

simplify57.0ms (2.5%)

Algorithm
egg-herbie
Rules
1154×fma-def
1016×associate-/r/
720×associate-*r/
662×associate-*r*
640×associate-*l/
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
058498
1147498
2488486
32253478
45235478
Stop Event
node limit
Counts
30 → 32
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 x) (pow.f64 x 3))) 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 x) (pow.f64 x 3)) 1)
(pow.f64 (*.f64 x (sqrt.f64 (+.f64 x 1))) 2)
(pow.f64 (cbrt.f64 (+.f64 (*.f64 x x) (pow.f64 x 3))) 3)
(pow.f64 (pow.f64 (+.f64 (*.f64 x x) (pow.f64 x 3)) 3) 1/3)
(sqrt.f64 (pow.f64 (+.f64 (*.f64 x x) (pow.f64 x 3)) 2))
(log.f64 (pow.f64 (pow.f64 (exp.f64 x) x) (+.f64 x 1)))
(cbrt.f64 (pow.f64 (+.f64 (*.f64 x x) (pow.f64 x 3)) 3))
(expm1.f64 (log1p.f64 (+.f64 (*.f64 x x) (pow.f64 x 3))))
(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 x) (pow.f64 x 3))))
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 x) (pow.f64 x 3))) 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 x (-.f64 (fma.f64 x x 1) x)) (+.f64 x (pow.f64 x 4)))
(/.f64 (fma.f64 x x (pow.f64 x 5)) (fma.f64 x x (-.f64 1 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 x (-.f64 (fma.f64 x x 1) x)) (+.f64 x (pow.f64 x 4)))
(/.f64 (fma.f64 x x (pow.f64 x 5)) (fma.f64 x x (-.f64 1 x)))
(/.f64 (fma.f64 x x (pow.f64 x 5)) (-.f64 (fma.f64 x x 1) x))
(pow.f64 (+.f64 (*.f64 x x) (pow.f64 x 3)) 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 x) (pow.f64 x 3))) 3)
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(pow.f64 (pow.f64 (+.f64 (*.f64 x x) (pow.f64 x 3)) 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 x) (pow.f64 x 3)) 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 x) (pow.f64 x 3)) 3))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(expm1.f64 (log1p.f64 (+.f64 (*.f64 x x) (pow.f64 x 3))))
(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 x) (pow.f64 x 3))))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))

eval6.0ms (0.3%)

Compiler

Compiled 306 to 170 computations (44.4% saved)

prune5.0ms (0.2%)

Pruning

3 alts after pruning (0 fresh and 3 done)

PrunedKeptTotal
New32032
Fresh000
Picked011
Done022
Total32335
Error
0b
Counts
35 → 3
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(+.f64 (*.f64 x (*.f64 x x)) (*.f64 x x))
0.0b
(*.f64 (+.f64 x 1) (*.f64 x x))
0.9b
(*.f64 x x)
Compiler

Compiled 22 to 11 computations (50% saved)

regimes6.0ms (0.2%)

Counts
4 → 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 (pow.f64 x 3))
Outputs
(fma.f64 x x (pow.f64 x 3))
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 38 to 15 computations (60.5% saved)

regimes6.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:

4.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.1%)

Accuracy

Total -0.9b remaining (-7803.2%)

Threshold costs -0.9b (-7803.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)

simplify5.0ms (0.2%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01366
12066
Stop Event
done
saturated
Calls
Call 1
Inputs
(fma.f64 x x (pow.f64 x 3))
(+.f64 (*.f64 x (*.f64 x x)) (*.f64 x x))
(*.f64 (+.f64 x 1) (*.f64 x x))
(*.f64 x x)
Outputs
(fma.f64 x x (pow.f64 x 3))
(+.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 29 to 15 computations (48.3% saved)

soundness319.0ms (14%)

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
Compiler

Compiled 33 to 9 computations (72.7% saved)

end22.0ms (1%)

Compiler

Compiled 26 to 10 computations (61.5% saved)

Profiling

Loading profile data...