Details

Time bar (total: 2.2s)

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

Results
1.3s8256×body256valid
Bogosity

preprocess145.0ms (6.7%)

Algorithm
egg-herbie
Rules
1274×sqr-pow_binary64
666×pow-sqr_binary64
635×cube-prod_binary64
563×fabs-mul_binary64
362×unswap-sqr_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0510
1158
2318
3468
4718
51238
62468
77098
814058
915068
1016398
1117978
1220368
1323608
1427848
1532878
1638878
1746118
1849308
1952168
2054408
2156188
2257008
2366408
2476148
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)

simplify132.0ms (6.1%)

Algorithm
egg-herbie
Rules
1274×sqr-pow_binary64
666×pow-sqr_binary64
635×cube-prod_binary64
563×fabs-mul_binary64
362×unswap-sqr_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0510
1158
2318
3468
4718
51238
62468
77098
814058
915068
1016398
1117978
1220368
1323608
1427848
1532878
1638878
1746118
1849308
1952168
2054408
2156188
2257008
2366408
2476148
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
0.0b
(+.f64 (*.f64 x (*.f64 x x)) (*.f64 x x))
0.0b
(*.f64 x (fma.f64 x x x))
Compiler

Compiled 17 to 7 computations (58.8% saved)

localize4.0ms (0.2%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.0b
(*.f64 x (fma.f64 x x x))
Compiler

Compiled 12 to 3 computations (75% saved)

series10.0ms (0.5%)

Counts
1 → 12
Calls

3 calls:

TimeVariablePointExpression
1.0ms
x
@-inf
(*.f64 x (fma.f64 x x x))
1.0ms
x
@inf
(*.f64 x (fma.f64 x x x))
1.0ms
x
@0
(*.f64 x (fma.f64 x x x))
Compiler

Compiled 550 to 445 computations (19.1% saved)

rewrite35.0ms (1.6%)

Algorithm
batch-egg-rewrite
Rules
378×pow1_binary64
361×add-sqr-sqrt_binary64
356×*-un-lft-identity_binary64
347×add-log-exp_binary64
347×log1p-expm1-u_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
048
1798
29498
Stop Event
node limit
Counts
1 → 27
Calls
Call 1
Inputs
(*.f64 x (fma.f64 x x x))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (pow.f64 x 3) (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x (fma.f64 x x x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (fma.f64 x x x)) x))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (fma.f64 x x x)) x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (fma.f64 x x x)) x)) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (fma.f64 x x x)) x))))))) (#(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 pow.f64 (*.f64 x (fma.f64 x x x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (hypot.f64 (pow.f64 x 3/2) x) 4) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (hypot.f64 (pow.f64 x 3/2) x) 6) 1/3)))) (#(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 (hypot.f64 (pow.f64 x 3/2) x) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (hypot.f64 (pow.f64 x 3/2) x) 4))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (fma.f64 x x x)) x))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (pow.f64 x 3)) (exp.f64 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (hypot.f64 (pow.f64 x 3/2) x) 6))))) (#(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 log1p.f64 (expm1.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 (pow.f64 (hypot.f64 (pow.f64 x 3/2) x) 6)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 x (fma.f64 x x x)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (hypot.f64 (pow.f64 x 3/2) x)) 2))))) (#(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 1 (pow.f64 x 3) (*.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 (pow.f64 x 3/2) (pow.f64 x 3/2) (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (pow.f64 x 3)) (sqrt.f64 (pow.f64 x 3)) (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (*.f64 x (cbrt.f64 x)) 2) (cbrt.f64 x) (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 x 5/2) (sqrt.f64 x) (*.f64 x x))))))

simplify46.0ms (2.1%)

Algorithm
egg-herbie
Rules
870×log-prod_binary64
817×fma-neg_binary64
581×associate-*l*_binary64
515×associate-*r*_binary64
379×fma-def_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
089442
1201365
2414350
31090341
45721341
Stop Event
node limit
Counts
39 → 45
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 (/.f64 1 x) -3)
(+.f64 (pow.f64 (/.f64 1 x) -2) (pow.f64 (/.f64 1 x) -3))
(+.f64 (pow.f64 (/.f64 1 x) -2) (pow.f64 (/.f64 1 x) -3))
(+.f64 (pow.f64 (/.f64 1 x) -2) (pow.f64 (/.f64 1 x) -3))
(*.f64 -1 (pow.f64 (/.f64 -1 x) -3))
(+.f64 (*.f64 -1 (pow.f64 (/.f64 -1 x) -3)) (pow.f64 (/.f64 -1 x) -2))
(+.f64 (*.f64 -1 (pow.f64 (/.f64 -1 x) -3)) (pow.f64 (/.f64 -1 x) -2))
(+.f64 (*.f64 -1 (pow.f64 (/.f64 -1 x) -3)) (pow.f64 (/.f64 -1 x) -2))
(+.f64 (pow.f64 x 3) (*.f64 x x))
(+.f64 0 (*.f64 x (fma.f64 x x x)))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (fma.f64 x x x)) x))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (fma.f64 x x x)) x))))
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (fma.f64 x x x)) x)) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (fma.f64 x x x)) x))))
(-.f64 (+.f64 1 (*.f64 x (fma.f64 x x x))) 1)
(pow.f64 (*.f64 x (fma.f64 x x x)) 1)
(pow.f64 (pow.f64 (hypot.f64 (pow.f64 x 3/2) x) 4) 1/2)
(pow.f64 (pow.f64 (hypot.f64 (pow.f64 x 3/2) x) 6) 1/3)
(pow.f64 (cbrt.f64 (*.f64 x (fma.f64 x x x))) 3)
(pow.f64 (hypot.f64 (pow.f64 x 3/2) x) 2)
(sqrt.f64 (pow.f64 (hypot.f64 (pow.f64 x 3/2) x) 4))
(log.f64 (pow.f64 (exp.f64 (fma.f64 x x x)) x))
(log.f64 (*.f64 (exp.f64 (pow.f64 x 3)) (exp.f64 (*.f64 x x))))
(cbrt.f64 (pow.f64 (hypot.f64 (pow.f64 x 3/2) x) 6))
(expm1.f64 (log1p.f64 (*.f64 x (fma.f64 x x x))))
(log1p.f64 (expm1.f64 (*.f64 x (fma.f64 x x x))))
(exp.f64 (log.f64 (*.f64 x (fma.f64 x x x))))
(exp.f64 (*.f64 (log.f64 (pow.f64 (hypot.f64 (pow.f64 x 3/2) x) 6)) 1/3))
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 x (fma.f64 x x x)))) 3))
(exp.f64 (*.f64 (log.f64 (hypot.f64 (pow.f64 x 3/2) x)) 2))
(fma.f64 x (*.f64 x x) (*.f64 x x))
(fma.f64 1 (pow.f64 x 3) (*.f64 x x))
(fma.f64 (*.f64 x x) x (*.f64 x x))
(fma.f64 (pow.f64 x 3/2) (pow.f64 x 3/2) (*.f64 x x))
(fma.f64 (sqrt.f64 (pow.f64 x 3)) (sqrt.f64 (pow.f64 x 3)) (*.f64 x x))
(fma.f64 (pow.f64 (*.f64 x (cbrt.f64 x)) 2) (cbrt.f64 x) (*.f64 x x))
(fma.f64 (pow.f64 x 5/2) (sqrt.f64 x) (*.f64 x x))
Outputs
(pow.f64 x 2)
(*.f64 x x)
(+.f64 (pow.f64 x 2) (pow.f64 x 3))
(+.f64 (pow.f64 x 3) (*.f64 x x))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(+.f64 (pow.f64 x 2) (pow.f64 x 3))
(+.f64 (pow.f64 x 3) (*.f64 x x))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(+.f64 (pow.f64 x 2) (pow.f64 x 3))
(+.f64 (pow.f64 x 3) (*.f64 x x))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(pow.f64 (/.f64 1 x) -3)
(+.f64 (pow.f64 (/.f64 1 x) -2) (pow.f64 (/.f64 1 x) -3))
(+.f64 (pow.f64 (/.f64 1 x) -3) (pow.f64 (/.f64 1 x) -2))
(fma.f64 x x (pow.f64 (/.f64 1 x) -3))
(+.f64 (pow.f64 (/.f64 1 x) -2) (pow.f64 (/.f64 1 x) -3))
(+.f64 (pow.f64 (/.f64 1 x) -3) (pow.f64 (/.f64 1 x) -2))
(fma.f64 x x (pow.f64 (/.f64 1 x) -3))
(+.f64 (pow.f64 (/.f64 1 x) -2) (pow.f64 (/.f64 1 x) -3))
(+.f64 (pow.f64 (/.f64 1 x) -3) (pow.f64 (/.f64 1 x) -2))
(fma.f64 x x (pow.f64 (/.f64 1 x) -3))
(*.f64 -1 (pow.f64 (/.f64 -1 x) -3))
(neg.f64 (pow.f64 (/.f64 -1 x) -3))
(+.f64 (*.f64 -1 (pow.f64 (/.f64 -1 x) -3)) (pow.f64 (/.f64 -1 x) -2))
(fma.f64 -1 (pow.f64 (/.f64 -1 x) -3) (pow.f64 (/.f64 -1 x) -2))
(-.f64 (pow.f64 (/.f64 -1 x) -2) (pow.f64 (/.f64 -1 x) -3))
(-.f64 (*.f64 x x) (pow.f64 (/.f64 -1 x) -3))
(+.f64 (*.f64 -1 (pow.f64 (/.f64 -1 x) -3)) (pow.f64 (/.f64 -1 x) -2))
(fma.f64 -1 (pow.f64 (/.f64 -1 x) -3) (pow.f64 (/.f64 -1 x) -2))
(-.f64 (pow.f64 (/.f64 -1 x) -2) (pow.f64 (/.f64 -1 x) -3))
(-.f64 (*.f64 x x) (pow.f64 (/.f64 -1 x) -3))
(+.f64 (*.f64 -1 (pow.f64 (/.f64 -1 x) -3)) (pow.f64 (/.f64 -1 x) -2))
(fma.f64 -1 (pow.f64 (/.f64 -1 x) -3) (pow.f64 (/.f64 -1 x) -2))
(-.f64 (pow.f64 (/.f64 -1 x) -2) (pow.f64 (/.f64 -1 x) -3))
(-.f64 (*.f64 x x) (pow.f64 (/.f64 -1 x) -3))
(+.f64 (pow.f64 x 3) (*.f64 x x))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(+.f64 0 (*.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 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (fma.f64 x x x)) x))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (fma.f64 x 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 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (fma.f64 x x x)) x)) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (fma.f64 x x x)) x))))
(+.f64 (*.f64 2 (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (fma.f64 x x x)) x)))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (fma.f64 x x x)) x))))
(*.f64 3 (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (fma.f64 x x x)) x))))
(*.f64 3 (log.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (fma.f64 x x x)))))
(-.f64 (+.f64 1 (*.f64 x (fma.f64 x x x))) 1)
(+.f64 (pow.f64 x 3) (*.f64 x x))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(pow.f64 (*.f64 x (fma.f64 x x x)) 1)
(+.f64 (pow.f64 x 3) (*.f64 x x))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(pow.f64 (pow.f64 (hypot.f64 (pow.f64 x 3/2) x) 4) 1/2)
(+.f64 (pow.f64 x 3) (*.f64 x x))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(pow.f64 (pow.f64 (hypot.f64 (pow.f64 x 3/2) x) 6) 1/3)
(+.f64 (pow.f64 x 3) (*.f64 x x))
(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)
(+.f64 (pow.f64 x 3) (*.f64 x x))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(pow.f64 (hypot.f64 (pow.f64 x 3/2) x) 2)
(+.f64 (pow.f64 x 3) (*.f64 x x))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(sqrt.f64 (pow.f64 (hypot.f64 (pow.f64 x 3/2) x) 4))
(+.f64 (pow.f64 x 3) (*.f64 x x))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(log.f64 (pow.f64 (exp.f64 (fma.f64 x 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))
(log.f64 (*.f64 (exp.f64 (pow.f64 x 3)) (exp.f64 (*.f64 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))
(cbrt.f64 (pow.f64 (hypot.f64 (pow.f64 x 3/2) x) 6))
(+.f64 (pow.f64 x 3) (*.f64 x x))
(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))))
(+.f64 (pow.f64 x 3) (*.f64 x x))
(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))))
(+.f64 (pow.f64 x 3) (*.f64 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))))
(+.f64 (pow.f64 x 3) (*.f64 x x))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(exp.f64 (*.f64 (log.f64 (pow.f64 (hypot.f64 (pow.f64 x 3/2) x) 6)) 1/3))
(+.f64 (pow.f64 x 3) (*.f64 x x))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 x (fma.f64 x x x)))) 3))
(+.f64 (pow.f64 x 3) (*.f64 x x))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(exp.f64 (*.f64 (log.f64 (hypot.f64 (pow.f64 x 3/2) x)) 2))
(+.f64 (pow.f64 x 3) (*.f64 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))
(+.f64 (pow.f64 x 3) (*.f64 x x))
(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))
(+.f64 (pow.f64 x 3) (*.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))
(+.f64 (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))
(+.f64 (pow.f64 x 3) (*.f64 x x))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(fma.f64 (sqrt.f64 (pow.f64 x 3)) (sqrt.f64 (pow.f64 x 3)) (*.f64 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))
(fma.f64 (pow.f64 (*.f64 x (cbrt.f64 x)) 2) (cbrt.f64 x) (*.f64 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))
(fma.f64 (pow.f64 x 5/2) (sqrt.f64 x) (*.f64 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))

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

series13.0ms (0.6%)

Counts
2 → 24
Calls

6 calls:

TimeVariablePointExpression
1.0ms
x
@0
(*.f64 x (*.f64 x x))
0.0ms
x
@-inf
(*.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
@-inf
(+.f64 (*.f64 x (*.f64 x x)) (*.f64 x x))
Compiler

Compiled 850 to 685 computations (19.4% saved)

rewrite42.0ms (2%)

Algorithm
batch-egg-rewrite
Rules
587×pow1_binary64
553×add-log-exp_binary64
552×log1p-expm1-u_binary64
552×expm1-log1p-u_binary64
539×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0514
111612
2160912
Stop Event
node limit
Counts
2 → 53
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 log1p.f64 (expm1.f64 (pow.f64 x 3)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.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 (pow.f64 (cbrt.f64 x) 2) (*.f64 (cbrt.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 (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 (+.f64 (pow.f64 x 9) (pow.f64 x 6)) (/.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 (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 x 1) (*.f64 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 (+.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))) (pow.f64 (cbrt.f64 x) 2))))) (#(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 9) (pow.f64 x 6))))))) (#(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 (+.f64 (pow.f64 x 9) (pow.f64 x 6)) (+.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 9) (pow.f64 x 6)) (+.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 6) (pow.f64 x 4)) (-.f64 (pow.f64 x 3) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 x 9) (pow.f64 x 6))) (neg.f64 (+.f64 (pow.f64 x 6) (-.f64 (pow.f64 x 4) (pow.f64 x 5)))))))) (#(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 (-.f64 (pow.f64 x 4) (pow.f64 x 6)) (-.f64 (*.f64 x x) (pow.f64 x 3)))))) (#(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 (pow.f64 (*.f64 x (fma.f64 x x x)) 3) 1/3)))) (#(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 (hypot.f64 x (pow.f64 x 3/2)) 2)))) (#(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 log1p.f64 (expm1.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 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 (cbrt.f64 (pow.f64 x 4)) (pow.f64 (cbrt.f64 x) 2) (pow.f64 x 3))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 x 3/2) (pow.f64 x 3/2) (*.f64 x x))))))

simplify46.0ms (2.1%)

Algorithm
egg-herbie
Rules
905×fma-neg_binary64
664×div-sub_binary64
374×times-frac_binary64
365×log-prod_binary64
293×fma-def_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0130828
1313810
2980786
34794786
Stop Event
node limit
Counts
77 → 71
Calls
Call 1
Inputs
(pow.f64 x 3)
(pow.f64 x 3)
(pow.f64 x 3)
(pow.f64 x 3)
(pow.f64 (/.f64 1 x) -3)
(pow.f64 (/.f64 1 x) -3)
(pow.f64 (/.f64 1 x) -3)
(pow.f64 (/.f64 1 x) -3)
(*.f64 -1 (pow.f64 (/.f64 -1 x) -3))
(*.f64 -1 (pow.f64 (/.f64 -1 x) -3))
(*.f64 -1 (pow.f64 (/.f64 -1 x) -3))
(*.f64 -1 (pow.f64 (/.f64 -1 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 (/.f64 1 x) -3)
(+.f64 (pow.f64 (/.f64 1 x) -2) (pow.f64 (/.f64 1 x) -3))
(+.f64 (pow.f64 (/.f64 1 x) -2) (pow.f64 (/.f64 1 x) -3))
(+.f64 (pow.f64 (/.f64 1 x) -2) (pow.f64 (/.f64 1 x) -3))
(*.f64 -1 (pow.f64 (/.f64 -1 x) -3))
(+.f64 (*.f64 -1 (pow.f64 (/.f64 -1 x) -3)) (pow.f64 (/.f64 -1 x) -2))
(+.f64 (*.f64 -1 (pow.f64 (/.f64 -1 x) -3)) (pow.f64 (/.f64 -1 x) -2))
(+.f64 (*.f64 -1 (pow.f64 (/.f64 -1 x) -3)) (pow.f64 (/.f64 -1 x) -2))
(-.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)))
(log1p.f64 (expm1.f64 (pow.f64 x 3)))
(exp.f64 (*.f64 (log.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 (pow.f64 (cbrt.f64 x) 2) (*.f64 (cbrt.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 (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 (+.f64 (pow.f64 x 9) (pow.f64 x 6)) (/.f64 1 (+.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 1 (-.f64 (pow.f64 x 3) (*.f64 x x))))
(*.f64 (+.f64 x 1) (*.f64 x x))
(*.f64 (fma.f64 x x x) x)
(*.f64 (*.f64 (+.f64 x 1) 1) (*.f64 x x))
(*.f64 (*.f64 (+.f64 x 1) (cbrt.f64 (pow.f64 x 4))) (pow.f64 (cbrt.f64 x) 2))
(/.f64 1 (/.f64 (+.f64 (pow.f64 x 6) (-.f64 (pow.f64 x 4) (pow.f64 x 5))) (+.f64 (pow.f64 x 9) (pow.f64 x 6))))
(/.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 9) (pow.f64 x 6)) (+.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 4) (-.f64 (pow.f64 x 6) (pow.f64 x 5))))
(/.f64 (-.f64 (pow.f64 x 6) (pow.f64 x 4)) (-.f64 (pow.f64 x 3) (*.f64 x x)))
(/.f64 (neg.f64 (+.f64 (pow.f64 x 9) (pow.f64 x 6))) (neg.f64 (+.f64 (pow.f64 x 6) (-.f64 (pow.f64 x 4) (pow.f64 x 5)))))
(/.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 4) (pow.f64 x 6)) (-.f64 (*.f64 x x) (pow.f64 x 3)))
(pow.f64 (*.f64 x (fma.f64 x x x)) 1)
(pow.f64 (pow.f64 (*.f64 x (fma.f64 x x x)) 3) 1/3)
(pow.f64 (cbrt.f64 (*.f64 x (fma.f64 x x x))) 3)
(pow.f64 (hypot.f64 x (pow.f64 x 3/2)) 2)
(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))))
(log1p.f64 (expm1.f64 (*.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))
(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 (cbrt.f64 (pow.f64 x 4)) (pow.f64 (cbrt.f64 x) 2) (pow.f64 x 3))
(fma.f64 (pow.f64 x 3/2) (pow.f64 x 3/2) (*.f64 x x))
Outputs
(pow.f64 x 3)
(pow.f64 x 3)
(pow.f64 x 3)
(pow.f64 x 3)
(pow.f64 (/.f64 1 x) -3)
(pow.f64 (/.f64 1 x) -3)
(pow.f64 (/.f64 1 x) -3)
(pow.f64 (/.f64 1 x) -3)
(*.f64 -1 (pow.f64 (/.f64 -1 x) -3))
(neg.f64 (pow.f64 (/.f64 -1 x) -3))
(*.f64 -1 (pow.f64 (/.f64 -1 x) -3))
(neg.f64 (pow.f64 (/.f64 -1 x) -3))
(*.f64 -1 (pow.f64 (/.f64 -1 x) -3))
(neg.f64 (pow.f64 (/.f64 -1 x) -3))
(*.f64 -1 (pow.f64 (/.f64 -1 x) -3))
(neg.f64 (pow.f64 (/.f64 -1 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 (/.f64 1 x) -3)
(+.f64 (pow.f64 (/.f64 1 x) -2) (pow.f64 (/.f64 1 x) -3))
(+.f64 (pow.f64 (/.f64 1 x) -3) (pow.f64 (/.f64 1 x) -2))
(fma.f64 x x (pow.f64 (/.f64 1 x) -3))
(+.f64 (pow.f64 (/.f64 1 x) -2) (pow.f64 (/.f64 1 x) -3))
(+.f64 (pow.f64 (/.f64 1 x) -3) (pow.f64 (/.f64 1 x) -2))
(fma.f64 x x (pow.f64 (/.f64 1 x) -3))
(+.f64 (pow.f64 (/.f64 1 x) -2) (pow.f64 (/.f64 1 x) -3))
(+.f64 (pow.f64 (/.f64 1 x) -3) (pow.f64 (/.f64 1 x) -2))
(fma.f64 x x (pow.f64 (/.f64 1 x) -3))
(*.f64 -1 (pow.f64 (/.f64 -1 x) -3))
(neg.f64 (pow.f64 (/.f64 -1 x) -3))
(+.f64 (*.f64 -1 (pow.f64 (/.f64 -1 x) -3)) (pow.f64 (/.f64 -1 x) -2))
(fma.f64 -1 (pow.f64 (/.f64 -1 x) -3) (pow.f64 (/.f64 -1 x) -2))
(-.f64 (pow.f64 (/.f64 -1 x) -2) (pow.f64 (/.f64 -1 x) -3))
(-.f64 (*.f64 x x) (pow.f64 (/.f64 -1 x) -3))
(+.f64 (*.f64 -1 (pow.f64 (/.f64 -1 x) -3)) (pow.f64 (/.f64 -1 x) -2))
(fma.f64 -1 (pow.f64 (/.f64 -1 x) -3) (pow.f64 (/.f64 -1 x) -2))
(-.f64 (pow.f64 (/.f64 -1 x) -2) (pow.f64 (/.f64 -1 x) -3))
(-.f64 (*.f64 x x) (pow.f64 (/.f64 -1 x) -3))
(+.f64 (*.f64 -1 (pow.f64 (/.f64 -1 x) -3)) (pow.f64 (/.f64 -1 x) -2))
(fma.f64 -1 (pow.f64 (/.f64 -1 x) -3) (pow.f64 (/.f64 -1 x) -2))
(-.f64 (pow.f64 (/.f64 -1 x) -2) (pow.f64 (/.f64 -1 x) -3))
(-.f64 (*.f64 x x) (pow.f64 (/.f64 -1 x) -3))
(-.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)
(log1p.f64 (expm1.f64 (pow.f64 x 3)))
(pow.f64 x 3)
(exp.f64 (*.f64 (log.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 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 (pow.f64 (cbrt.f64 x) 2) (*.f64 (cbrt.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 (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 (+.f64 (pow.f64 x 9) (pow.f64 x 6)) (/.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 (+.f64 (pow.f64 x 6) (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 9) (pow.f64 x 6)) (+.f64 (pow.f64 x 4) (-.f64 (pow.f64 x 6) (pow.f64 x 5))))
(*.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 x 1) (*.f64 x x))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x 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 (+.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))) (pow.f64 (cbrt.f64 x) 2))
(*.f64 (+.f64 x 1) (*.f64 (cbrt.f64 (pow.f64 x 4)) (pow.f64 (cbrt.f64 x) 2)))
(*.f64 (+.f64 x 1) (*.f64 (pow.f64 (cbrt.f64 x) 2) (cbrt.f64 (pow.f64 x 4))))
(*.f64 (pow.f64 (cbrt.f64 x) 2) (*.f64 (+.f64 x 1) (cbrt.f64 (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 9) (pow.f64 x 6))))
(/.f64 (*.f64 (+.f64 (pow.f64 x 9) (pow.f64 x 6)) 1) (-.f64 (+.f64 (pow.f64 x 6) (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 9) (pow.f64 x 6)) (+.f64 (pow.f64 x 4) (-.f64 (pow.f64 x 6) (pow.f64 x 5))))
(/.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 9) (pow.f64 x 6)) (+.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 (+.f64 (pow.f64 x 6) (pow.f64 x 4)) (pow.f64 x 5)))
(/.f64 (+.f64 (pow.f64 x 9) (pow.f64 x 6)) (+.f64 (pow.f64 x 4) (-.f64 (pow.f64 x 6) (pow.f64 x 5))))
(/.f64 (+.f64 (pow.f64 x 9) (pow.f64 x 6)) (+.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 (+.f64 (pow.f64 x 6) (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 (neg.f64 (+.f64 (pow.f64 x 9) (pow.f64 x 6))) (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 (+.f64 (pow.f64 x 6) (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 9) (pow.f64 x 6)) (+.f64 (pow.f64 x 4) (-.f64 (pow.f64 x 6) (pow.f64 x 5))))
(/.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 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)))
(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 (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))
(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 (hypot.f64 x (pow.f64 x 3/2)) 2)
(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))
(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))
(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))
(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 (cbrt.f64 (pow.f64 x 4)) (pow.f64 (cbrt.f64 x) 2) (pow.f64 x 3))
(fma.f64 (pow.f64 (cbrt.f64 x) 2) (cbrt.f64 (pow.f64 x 4)) (pow.f64 x 3))
(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))

eval28.0ms (1.3%)

Compiler

Compiled 1202 to 633 computations (47.3% saved)

prune12.0ms (0.6%)

Pruning

4 alts after pruning (2 fresh and 2 done)

PrunedKeptTotal
New1142116
Fresh000
Picked011
Done011
Total1144118
Error
0b
Counts
118 → 4
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.0b
(*.f64 x (fma.f64 x x x))
1.5b
(*.f64 x x)
Compiler

Compiled 29 to 14 computations (51.7% 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)

series8.0ms (0.4%)

Counts
1 → 12
Calls

3 calls:

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

Compiled 550 to 445 computations (19.1% saved)

rewrite39.0ms (1.8%)

Algorithm
batch-egg-rewrite
Rules
589×pow1_binary64
550×log1p-expm1-u_binary64
550×expm1-log1p-u_binary64
549×add-log-exp_binary64
536×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0610
112510
2160510
Stop Event
node limit
Counts
1 → 17
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 1 (pow.f64 x 3)) (*.f64 x x)) (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 x x) (+.f64 1 (pow.f64 x 3))) (fma.f64 x x (-.f64 1 x)))))) (#(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 pow.f64 (+.f64 (*.f64 x x) (pow.f64 x 3)) 1)))) (#(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 pow.f64 (cbrt.f64 (+.f64 (*.f64 x x) (pow.f64 x 3))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (sqrt.f64 (+.f64 x 1))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (pow.f64 x 4) (pow.f64 (+.f64 x 1) 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 log1p.f64 (expm1.f64 (+.f64 (*.f64 x x) (pow.f64 x 3))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (log1p.f64 x) (*.f64 (log.f64 x) 2)))))))

simplify45.0ms (2.1%)

Algorithm
egg-herbie
Rules
823×fma-def_binary64
777×fma-neg_binary64
385×associate-*l*_binary64
358×associate-*r*_binary64
238×cube-prod_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
067332
1172327
2508300
32799281
46723281
Stop Event
node limit
Counts
29 → 43
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 (/.f64 1 x) -3)
(+.f64 (pow.f64 (/.f64 1 x) -2) (pow.f64 (/.f64 1 x) -3))
(+.f64 (pow.f64 (/.f64 1 x) -2) (pow.f64 (/.f64 1 x) -3))
(+.f64 (pow.f64 (/.f64 1 x) -2) (pow.f64 (/.f64 1 x) -3))
(*.f64 -1 (pow.f64 (/.f64 -1 x) -3))
(+.f64 (*.f64 -1 (pow.f64 (/.f64 -1 x) -3)) (pow.f64 (/.f64 -1 x) -2))
(+.f64 (*.f64 -1 (pow.f64 (/.f64 -1 x) -3)) (pow.f64 (/.f64 -1 x) -2))
(+.f64 (*.f64 -1 (pow.f64 (/.f64 -1 x) -3)) (pow.f64 (/.f64 -1 x) -2))
(+.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 1 (pow.f64 x 3)) (*.f64 x x)) (fma.f64 x x (-.f64 1 x)))
(/.f64 (*.f64 (fma.f64 x x -1) (*.f64 x x)) (+.f64 x -1))
(/.f64 (*.f64 (*.f64 x x) (+.f64 1 (pow.f64 x 3))) (fma.f64 x x (-.f64 1 x)))
(/.f64 (*.f64 (*.f64 x x) (fma.f64 x x -1)) (+.f64 x -1))
(pow.f64 (+.f64 (*.f64 x x) (pow.f64 x 3)) 1)
(pow.f64 (pow.f64 (+.f64 (*.f64 x x) (pow.f64 x 3)) 3) 1/3)
(pow.f64 (cbrt.f64 (+.f64 (*.f64 x x) (pow.f64 x 3))) 3)
(pow.f64 (*.f64 x (sqrt.f64 (+.f64 x 1))) 2)
(sqrt.f64 (*.f64 (pow.f64 x 4) (pow.f64 (+.f64 x 1) 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))))
(log1p.f64 (expm1.f64 (+.f64 (*.f64 x x) (pow.f64 x 3))))
(exp.f64 (+.f64 (log1p.f64 x) (*.f64 (log.f64 x) 2)))
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 (/.f64 1 x) -3)
(+.f64 (pow.f64 (/.f64 1 x) -2) (pow.f64 (/.f64 1 x) -3))
(+.f64 (pow.f64 (/.f64 1 x) -3) (pow.f64 (/.f64 1 x) -2))
(fma.f64 x x (pow.f64 (/.f64 1 x) -3))
(+.f64 (pow.f64 (/.f64 1 x) -2) (pow.f64 (/.f64 1 x) -3))
(+.f64 (pow.f64 (/.f64 1 x) -3) (pow.f64 (/.f64 1 x) -2))
(fma.f64 x x (pow.f64 (/.f64 1 x) -3))
(+.f64 (pow.f64 (/.f64 1 x) -2) (pow.f64 (/.f64 1 x) -3))
(+.f64 (pow.f64 (/.f64 1 x) -3) (pow.f64 (/.f64 1 x) -2))
(fma.f64 x x (pow.f64 (/.f64 1 x) -3))
(*.f64 -1 (pow.f64 (/.f64 -1 x) -3))
(neg.f64 (pow.f64 (/.f64 -1 x) -3))
(+.f64 (*.f64 -1 (pow.f64 (/.f64 -1 x) -3)) (pow.f64 (/.f64 -1 x) -2))
(fma.f64 -1 (pow.f64 (/.f64 -1 x) -3) (pow.f64 (/.f64 -1 x) -2))
(-.f64 (pow.f64 (/.f64 -1 x) -2) (pow.f64 (/.f64 -1 x) -3))
(-.f64 (*.f64 x x) (pow.f64 (/.f64 -1 x) -3))
(+.f64 (*.f64 -1 (pow.f64 (/.f64 -1 x) -3)) (pow.f64 (/.f64 -1 x) -2))
(fma.f64 -1 (pow.f64 (/.f64 -1 x) -3) (pow.f64 (/.f64 -1 x) -2))
(-.f64 (pow.f64 (/.f64 -1 x) -2) (pow.f64 (/.f64 -1 x) -3))
(-.f64 (*.f64 x x) (pow.f64 (/.f64 -1 x) -3))
(+.f64 (*.f64 -1 (pow.f64 (/.f64 -1 x) -3)) (pow.f64 (/.f64 -1 x) -2))
(fma.f64 -1 (pow.f64 (/.f64 -1 x) -3) (pow.f64 (/.f64 -1 x) -2))
(-.f64 (pow.f64 (/.f64 -1 x) -2) (pow.f64 (/.f64 -1 x) -3))
(-.f64 (*.f64 x x) (pow.f64 (/.f64 -1 x) -3))
(+.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 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 (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))
(/.f64 (*.f64 x x) (/.f64 (+.f64 x -1) (fma.f64 x x -1)))
(*.f64 (/.f64 (*.f64 x x) (+.f64 x -1)) (fma.f64 x x -1))
(*.f64 (/.f64 x (-.f64 x 1)) (-.f64 (pow.f64 x 3) x))
(/.f64 (fma.f64 x x (pow.f64 x 3)) 1)
(*.f64 (/.f64 (fma.f64 x x x) 1) 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 (fma.f64 x x (pow.f64 x 5)) (-.f64 (fma.f64 x x 1) x))
(/.f64 (*.f64 (*.f64 x x) (fma.f64 x x -1)) (+.f64 x -1))
(/.f64 (*.f64 x x) (/.f64 (+.f64 x -1) (fma.f64 x x -1)))
(*.f64 (/.f64 (*.f64 x x) (+.f64 x -1)) (fma.f64 x x -1))
(*.f64 (/.f64 x (-.f64 x 1)) (-.f64 (pow.f64 x 3) x))
(/.f64 (fma.f64 x x (pow.f64 x 3)) 1)
(*.f64 (/.f64 (fma.f64 x 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 (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))
(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 (*.f64 x (sqrt.f64 (+.f64 x 1))) 2)
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(sqrt.f64 (*.f64 (pow.f64 x 4) (pow.f64 (+.f64 x 1) 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))
(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))
(exp.f64 (+.f64 (log1p.f64 x) (*.f64 (log.f64 x) 2)))
(exp.f64 (+.f64 (log1p.f64 x) (*.f64 2 (log.f64 x))))
(*.f64 (*.f64 x x) (exp.f64 (log1p.f64 x)))
(*.f64 x (*.f64 x (exp.f64 (log1p.f64 x))))

eval9.0ms (0.4%)

Compiler

Compiled 411 to 250 computations (39.2% saved)

prune6.0ms (0.3%)

Pruning

4 alts after pruning (0 fresh and 4 done)

PrunedKeptTotal
New43043
Fresh000
Picked011
Done033
Total43447
Error
0b
Counts
47 → 4
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.0b
(*.f64 x (fma.f64 x x x))
1.5b
(*.f64 x x)
Compiler

Compiled 29 to 14 computations (51.7% saved)

regimes7.0ms (0.3%)

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))
(*.f64 x (fma.f64 x x x))
Outputs
(*.f64 x (fma.f64 x 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 38 to 14 computations (63.2% saved)

regimes5.0ms (0.2%)

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:

3.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 -1.5b remaining (-3852.9%)

Threshold costs -1.5b (-3852.9%)

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:

3.0ms
x
Results
ErrorSegmentsBranch
0.0b1x
Compiler

Compiled 13 to 6 computations (53.8% saved)

simplify3.0ms (0.1%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
+-commutative_binary64
1-exp_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01035
11735
Stop Event
done
saturated
Calls
Call 1
Inputs
(*.f64 x (fma.f64 x x x))
(+.f64 (*.f64 x (*.f64 x x)) (*.f64 x x))
(*.f64 (+.f64 x 1) (*.f64 x x))
(*.f64 x x)
Outputs
(*.f64 x (fma.f64 x 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 29 to 14 computations (51.7% saved)

soundness161.0ms (7.4%)

Algorithm
egg-herbie
Rules
1274×sqr-pow_binary64
666×pow-sqr_binary64
635×cube-prod_binary64
563×fabs-mul_binary64
362×unswap-sqr_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0510
1158
2318
3468
4718
51238
62468
77098
814058
915068
1016398
1117978
1220368
1323608
1427848
1532878
1638878
1746118
1849308
1952168
2054408
2156188
2257008
2366408
2476148
Stop Event
node limit
Compiler

Compiled 25 to 11 computations (56% saved)

end44.0ms (2%)

Compiler

Compiled 26 to 9 computations (65.4% saved)

Profiling

Loading profile data...