Details

Time bar (total: 1.5s)

analyze3.0ms (0.2%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%100%0%0%0%0%0
0%0%100%0%0%0%0%1
0%0%100%0%0%0%0%2
50%50%50%0%0%0%0%3
66.7%50%25%0%25%0%0%4
80%50%12.5%0%37.5%0%0%5
90%56.2%6.2%0%37.5%0%0%6
95%59.3%3.1%0%37.5%0%0%7
97.5%60.9%1.6%0%37.5%0%0%8
98.8%61.7%0.8%0%37.5%0%0%9
99.4%62.1%0.4%0%37.5%0%0%10
99.7%62.3%0.2%0%37.5%0%0%11
99.8%62.4%0.1%0%37.5%0%0%12
Compiler

Compiled 9 to 5 computations (44.4% saved)

sample675.0ms (45.3%)

Results
663.0ms8256×body256valid
0.0msbody256infinite
Bogosity

preprocess148.0ms (9.9%)

Algorithm
egg-herbie
Rules
958×sqr-pow_binary64
677×associate-*l*_binary64
556×cube-prod_binary64
520×fabs-mul_binary64
484×pow-sqr_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0510
187
2104
3194
4334
5594
61294
74264
824224
925204
1026744
1128914
1231844
1335514
1441564
1547274
1654504
1759034
1862314
1964934
2067194
2168554
2276384
011
Stop Event
saturated
node limit
Calls
Call 1
Inputs
0
Outputs
0
Call 2
Inputs
(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
Outputs
(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
(*.f64 (*.f64 d1 d1) (*.f64 d1 d1))
(*.f64 d1 (pow.f64 d1 3))
(pow.f64 d1 4)
Compiler

Compiled 9 to 5 computations (44.4% saved)

simplify137.0ms (9.2%)

Algorithm
egg-herbie
Rules
958×sqr-pow_binary64
677×associate-*l*_binary64
556×cube-prod_binary64
520×fabs-mul_binary64
484×pow-sqr_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0510
187
2104
3194
4334
5594
61294
74264
824224
925204
1026744
1128914
1231844
1335514
1441564
1547274
1654504
1759034
1862314
1964934
2067194
2168554
2276384
Stop Event
node limit
Counts
1 → 4
Calls
Call 1
Inputs
(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
Outputs
(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
(*.f64 (*.f64 d1 d1) (*.f64 d1 d1))
(*.f64 d1 (pow.f64 d1 3))
(pow.f64 d1 4)

eval1.0ms (0%)

Compiler

Compiled 23 to 10 computations (56.5% saved)

prune2.0ms (0.1%)

Pruning

4 alts after pruning (4 fresh and 0 done)

PrunedKeptTotal
New134
Fresh011
Picked000
Done000
Total145
Error
0.0b
Counts
5 → 3
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(pow.f64 d1 4)
0.2b
(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
0.2b
(*.f64 (*.f64 d1 d1) (*.f64 d1 d1))
Compiler

Compiled 20 to 10 computations (50% saved)

localize4.0ms (0.2%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.2b
(*.f64 (*.f64 d1 d1) (*.f64 d1 d1))
Compiler

Compiled 12 to 3 computations (75% saved)

series1.0ms (0.1%)

Counts
1 → 12
Calls

3 calls:

TimeVariablePointExpression
1.0ms
d1
@0
(*.f64 (*.f64 d1 d1) (*.f64 d1 d1))
1.0ms
d1
@inf
(*.f64 (*.f64 d1 d1) (*.f64 d1 d1))
0.0ms
d1
@-inf
(*.f64 (*.f64 d1 d1) (*.f64 d1 d1))

rewrite36.0ms (2.4%)

Algorithm
batch-egg-rewrite
Rules
328×pow1_binary64
312×add-sqr-sqrt_binary64
306×*-un-lft-identity_binary64
304×add-log-exp_binary64
304×log1p-expm1-u_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
047
1814
29694
Stop Event
node limit
Counts
1 → 32
Calls
Call 1
Inputs
(*.f64 (*.f64 d1 d1) (*.f64 d1 d1))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 1 (pow.f64 d1 4)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (pow.f64 d1 4))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (pow.f64 d1 4)))) (log.f64 (sqrt.f64 (exp.f64 (pow.f64 d1 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (pow.f64 d1 4))) 2)) (log.f64 (cbrt.f64 (exp.f64 (pow.f64 d1 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (pow.f64 d1 4)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (+.f64 1 (pow.f64 d1 4)) 3) 1) (+.f64 (*.f64 (+.f64 1 (pow.f64 d1 4)) (+.f64 1 (pow.f64 d1 4))) (+.f64 1 (*.f64 (+.f64 1 (pow.f64 d1 4)) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (+.f64 1 (pow.f64 d1 4)) (+.f64 1 (pow.f64 d1 4))) 1) (+.f64 (+.f64 1 (pow.f64 d1 4)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 d1 4)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 d1 d1) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 d1 4) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 d1 6) 2/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 d1 3) 4/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 d1 8) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 d1 12) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 d1 (cbrt.f64 d1)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 d1) 12)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (cbrt.f64 d1) 2) 6)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 d1) 8)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (E.f64) (*.f64 4 (log.f64 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 2) (*.f64 (log.f64 d1) 2))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (*.f64 4 (log.f64 d1)))) (sqrt.f64 (*.f64 4 (log.f64 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (*.f64 4 (log.f64 d1))) 2)) (cbrt.f64 (*.f64 4 (log.f64 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 d1 8))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (pow.f64 d1 4))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 d1 4)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 d1 12))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 d1 4)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 d1 4)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 4 (log.f64 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 d1) 4))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 d1 12)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 d1 (cbrt.f64 d1))) 3))))))

simplify40.0ms (2.7%)

Algorithm
egg-herbie
Rules
733×times-frac_binary64
436×fma-neg_binary64
330×distribute-rgt-out_binary64
324×log-prod_binary64
268×associate-*l*_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
089285
1218270
2602266
33039266
Stop Event
node limit
Counts
44 → 42
Calls
Call 1
Inputs
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(+.f64 (+.f64 1 (pow.f64 d1 4)) -1)
(+.f64 0 (pow.f64 d1 4))
(+.f64 (log.f64 (sqrt.f64 (exp.f64 (pow.f64 d1 4)))) (log.f64 (sqrt.f64 (exp.f64 (pow.f64 d1 4)))))
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (pow.f64 d1 4))) 2)) (log.f64 (cbrt.f64 (exp.f64 (pow.f64 d1 4)))))
(-.f64 (+.f64 1 (pow.f64 d1 4)) 1)
(/.f64 (-.f64 (pow.f64 (+.f64 1 (pow.f64 d1 4)) 3) 1) (+.f64 (*.f64 (+.f64 1 (pow.f64 d1 4)) (+.f64 1 (pow.f64 d1 4))) (+.f64 1 (*.f64 (+.f64 1 (pow.f64 d1 4)) 1))))
(/.f64 (-.f64 (*.f64 (+.f64 1 (pow.f64 d1 4)) (+.f64 1 (pow.f64 d1 4))) 1) (+.f64 (+.f64 1 (pow.f64 d1 4)) 1))
(pow.f64 d1 4)
(pow.f64 (*.f64 d1 d1) 2)
(pow.f64 (pow.f64 d1 4) 1)
(pow.f64 (pow.f64 d1 6) 2/3)
(pow.f64 (pow.f64 d1 3) 4/3)
(pow.f64 (pow.f64 d1 8) 1/2)
(pow.f64 (pow.f64 d1 12) 1/3)
(pow.f64 (*.f64 d1 (cbrt.f64 d1)) 3)
(pow.f64 (cbrt.f64 d1) 12)
(pow.f64 (pow.f64 (cbrt.f64 d1) 2) 6)
(pow.f64 (sqrt.f64 d1) 8)
(pow.f64 (E.f64) (*.f64 4 (log.f64 d1)))
(pow.f64 (exp.f64 2) (*.f64 (log.f64 d1) 2))
(pow.f64 (exp.f64 (sqrt.f64 (*.f64 4 (log.f64 d1)))) (sqrt.f64 (*.f64 4 (log.f64 d1))))
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (*.f64 4 (log.f64 d1))) 2)) (cbrt.f64 (*.f64 4 (log.f64 d1))))
(sqrt.f64 (pow.f64 d1 8))
(fabs.f64 (pow.f64 d1 4))
(log.f64 (exp.f64 (pow.f64 d1 4)))
(cbrt.f64 (pow.f64 d1 12))
(expm1.f64 (log1p.f64 (pow.f64 d1 4)))
(log1p.f64 (expm1.f64 (pow.f64 d1 4)))
(exp.f64 (*.f64 4 (log.f64 d1)))
(exp.f64 (*.f64 (log.f64 d1) 4))
(exp.f64 (*.f64 (log.f64 (pow.f64 d1 12)) 1/3))
(exp.f64 (*.f64 (log.f64 (*.f64 d1 (cbrt.f64 d1))) 3))
Outputs
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(+.f64 (+.f64 1 (pow.f64 d1 4)) -1)
(pow.f64 d1 4)
(+.f64 0 (pow.f64 d1 4))
(pow.f64 d1 4)
(+.f64 (log.f64 (sqrt.f64 (exp.f64 (pow.f64 d1 4)))) (log.f64 (sqrt.f64 (exp.f64 (pow.f64 d1 4)))))
(*.f64 2 (log.f64 (sqrt.f64 (exp.f64 (pow.f64 d1 4)))))
(*.f64 (log.f64 (sqrt.f64 (exp.f64 (pow.f64 d1 4)))) 2)
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (pow.f64 d1 4))) 2)) (log.f64 (cbrt.f64 (exp.f64 (pow.f64 d1 4)))))
(+.f64 (*.f64 2 (log.f64 (cbrt.f64 (exp.f64 (pow.f64 d1 4))))) (log.f64 (cbrt.f64 (exp.f64 (pow.f64 d1 4)))))
(*.f64 3 (log.f64 (cbrt.f64 (exp.f64 (pow.f64 d1 4)))))
(*.f64 (log.f64 (cbrt.f64 (exp.f64 (pow.f64 d1 4)))) 3)
(-.f64 (+.f64 1 (pow.f64 d1 4)) 1)
(pow.f64 d1 4)
(/.f64 (-.f64 (pow.f64 (+.f64 1 (pow.f64 d1 4)) 3) 1) (+.f64 (*.f64 (+.f64 1 (pow.f64 d1 4)) (+.f64 1 (pow.f64 d1 4))) (+.f64 1 (*.f64 (+.f64 1 (pow.f64 d1 4)) 1))))
(/.f64 (+.f64 (pow.f64 (+.f64 (pow.f64 d1 4) 1) 3) -1) (fma.f64 (+.f64 (pow.f64 d1 4) 1) (+.f64 (pow.f64 d1 4) 1) (+.f64 1 (+.f64 (pow.f64 d1 4) 1))))
(/.f64 (+.f64 -1 (pow.f64 (+.f64 (pow.f64 d1 4) 1) 3)) (fma.f64 (+.f64 (pow.f64 d1 4) 1) (+.f64 (pow.f64 d1 4) 1) (+.f64 (pow.f64 d1 4) 2)))
(/.f64 (+.f64 -1 (pow.f64 (+.f64 (pow.f64 d1 4) 1) 3)) (+.f64 1 (*.f64 (+.f64 (pow.f64 d1 4) 1) (+.f64 (pow.f64 d1 4) 2))))
(/.f64 (-.f64 (*.f64 (+.f64 1 (pow.f64 d1 4)) (+.f64 1 (pow.f64 d1 4))) 1) (+.f64 (+.f64 1 (pow.f64 d1 4)) 1))
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 (*.f64 d1 d1) 2)
(pow.f64 d1 4)
(pow.f64 (pow.f64 d1 4) 1)
(pow.f64 d1 4)
(pow.f64 (pow.f64 d1 6) 2/3)
(pow.f64 d1 4)
(pow.f64 (pow.f64 d1 3) 4/3)
(pow.f64 d1 4)
(pow.f64 (pow.f64 d1 8) 1/2)
(pow.f64 d1 4)
(pow.f64 (pow.f64 d1 12) 1/3)
(pow.f64 d1 4)
(pow.f64 (*.f64 d1 (cbrt.f64 d1)) 3)
(pow.f64 d1 4)
(pow.f64 (cbrt.f64 d1) 12)
(pow.f64 d1 4)
(pow.f64 (pow.f64 (cbrt.f64 d1) 2) 6)
(pow.f64 d1 4)
(pow.f64 (sqrt.f64 d1) 8)
(pow.f64 d1 4)
(pow.f64 (E.f64) (*.f64 4 (log.f64 d1)))
(pow.f64 d1 4)
(pow.f64 (exp.f64 2) (*.f64 (log.f64 d1) 2))
(pow.f64 (exp.f64 2) (*.f64 2 (log.f64 d1)))
(pow.f64 (exp.f64 2) (log.f64 (*.f64 d1 d1)))
(pow.f64 (exp.f64 (sqrt.f64 (*.f64 4 (log.f64 d1)))) (sqrt.f64 (*.f64 4 (log.f64 d1))))
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (*.f64 4 (log.f64 d1))) 2)) (cbrt.f64 (*.f64 4 (log.f64 d1))))
(sqrt.f64 (pow.f64 d1 8))
(pow.f64 d1 4)
(fabs.f64 (pow.f64 d1 4))
(pow.f64 d1 4)
(log.f64 (exp.f64 (pow.f64 d1 4)))
(pow.f64 d1 4)
(cbrt.f64 (pow.f64 d1 12))
(pow.f64 d1 4)
(expm1.f64 (log1p.f64 (pow.f64 d1 4)))
(pow.f64 d1 4)
(log1p.f64 (expm1.f64 (pow.f64 d1 4)))
(pow.f64 d1 4)
(exp.f64 (*.f64 4 (log.f64 d1)))
(pow.f64 d1 4)
(exp.f64 (*.f64 (log.f64 d1) 4))
(pow.f64 d1 4)
(exp.f64 (*.f64 (log.f64 (pow.f64 d1 12)) 1/3))
(pow.f64 d1 4)
(exp.f64 (*.f64 (log.f64 (*.f64 d1 (cbrt.f64 d1))) 3))
(pow.f64 d1 4)

localize5.0ms (0.3%)

Local error

Found 2 expressions with local error:

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

Compiled 17 to 4 computations (76.5% saved)

series2.0ms (0.1%)

Counts
2 → 24
Calls

6 calls:

TimeVariablePointExpression
1.0ms
d1
@-inf
(*.f64 (*.f64 d1 d1) d1)
0.0ms
d1
@0
(*.f64 (*.f64 d1 d1) d1)
0.0ms
d1
@inf
(*.f64 (*.f64 d1 d1) d1)
0.0ms
d1
@0
(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
0.0ms
d1
@-inf
(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)

rewrite39.0ms (2.6%)

Algorithm
batch-egg-rewrite
Rules
385×pow1_binary64
369×add-sqr-sqrt_binary64
360×*-un-lft-identity_binary64
359×add-log-exp_binary64
359×log1p-expm1-u_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0511
1988
211188
Stop Event
node limit
Counts
2 → 39
Calls
Call 1
Inputs
(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
(*.f64 (*.f64 d1 d1) d1)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (pow.f64 d1 4))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (pow.f64 d1 4)))) (log.f64 (sqrt.f64 (exp.f64 (pow.f64 d1 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (pow.f64 d1 4))) 2)) (log.f64 (cbrt.f64 (exp.f64 (pow.f64 d1 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (pow.f64 d1 4)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 d1 4)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 d1 d1) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 d1 3) 4/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 d1 4) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 d1 8) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 d1 12) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 d1 6) 2/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 d1 (cbrt.f64 d1)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 d1) 12)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (cbrt.f64 d1) 2) 6)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 d1) 8)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 d1 8))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 d1 4)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 d1 12))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 d1 4)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 d1 4)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 4 (log.f64 d1)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (pow.f64 d1 3))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (pow.f64 d1 3)))) (log.f64 (sqrt.f64 (exp.f64 (pow.f64 d1 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (pow.f64 d1 3))) 2)) (log.f64 (cbrt.f64 (exp.f64 (pow.f64 d1 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (pow.f64 d1 3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 d1 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 d1 d1) 3/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 d1 3) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 d1 6) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 d1 9) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 d1) 9)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 d1) 6)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 d1 3/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 d1 6))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 d1 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 d1 9))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 d1 3)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 d1 3)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 d1) 3))))))

simplify49.0ms (3.3%)

Algorithm
egg-herbie
Rules
846×fma-neg_binary64
485×exp-prod_binary64
311×cube-prod_binary64
308×prod-exp_binary64
251×associate-*l*_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
088320
1192296
2447296
32226296
45508296
Stop Event
node limit
Counts
63 → 44
Calls
Call 1
Inputs
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 3)
(pow.f64 d1 3)
(pow.f64 d1 3)
(pow.f64 d1 3)
(pow.f64 d1 3)
(pow.f64 d1 3)
(pow.f64 d1 3)
(pow.f64 d1 3)
(pow.f64 d1 3)
(pow.f64 d1 3)
(pow.f64 d1 3)
(pow.f64 d1 3)
(+.f64 0 (pow.f64 d1 4))
(+.f64 (log.f64 (sqrt.f64 (exp.f64 (pow.f64 d1 4)))) (log.f64 (sqrt.f64 (exp.f64 (pow.f64 d1 4)))))
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (pow.f64 d1 4))) 2)) (log.f64 (cbrt.f64 (exp.f64 (pow.f64 d1 4)))))
(-.f64 (+.f64 1 (pow.f64 d1 4)) 1)
(pow.f64 d1 4)
(pow.f64 (*.f64 d1 d1) 2)
(pow.f64 (pow.f64 d1 3) 4/3)
(pow.f64 (pow.f64 d1 4) 1)
(pow.f64 (pow.f64 d1 8) 1/2)
(pow.f64 (pow.f64 d1 12) 1/3)
(pow.f64 (pow.f64 d1 6) 2/3)
(pow.f64 (*.f64 d1 (cbrt.f64 d1)) 3)
(pow.f64 (cbrt.f64 d1) 12)
(pow.f64 (pow.f64 (cbrt.f64 d1) 2) 6)
(pow.f64 (sqrt.f64 d1) 8)
(sqrt.f64 (pow.f64 d1 8))
(log.f64 (exp.f64 (pow.f64 d1 4)))
(cbrt.f64 (pow.f64 d1 12))
(expm1.f64 (log1p.f64 (pow.f64 d1 4)))
(log1p.f64 (expm1.f64 (pow.f64 d1 4)))
(exp.f64 (*.f64 4 (log.f64 d1)))
(+.f64 0 (pow.f64 d1 3))
(+.f64 (log.f64 (sqrt.f64 (exp.f64 (pow.f64 d1 3)))) (log.f64 (sqrt.f64 (exp.f64 (pow.f64 d1 3)))))
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (pow.f64 d1 3))) 2)) (log.f64 (cbrt.f64 (exp.f64 (pow.f64 d1 3)))))
(-.f64 (+.f64 1 (pow.f64 d1 3)) 1)
(pow.f64 d1 3)
(pow.f64 (*.f64 d1 d1) 3/2)
(pow.f64 (pow.f64 d1 3) 1)
(pow.f64 (pow.f64 d1 6) 1/2)
(pow.f64 (pow.f64 d1 9) 1/3)
(pow.f64 (cbrt.f64 d1) 9)
(pow.f64 (sqrt.f64 d1) 6)
(pow.f64 (pow.f64 d1 3/2) 2)
(sqrt.f64 (pow.f64 d1 6))
(log.f64 (exp.f64 (pow.f64 d1 3)))
(cbrt.f64 (pow.f64 d1 9))
(expm1.f64 (log1p.f64 (pow.f64 d1 3)))
(log1p.f64 (expm1.f64 (pow.f64 d1 3)))
(exp.f64 (*.f64 (log.f64 d1) 3))
Outputs
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 3)
(pow.f64 d1 3)
(pow.f64 d1 3)
(pow.f64 d1 3)
(pow.f64 d1 3)
(pow.f64 d1 3)
(pow.f64 d1 3)
(pow.f64 d1 3)
(pow.f64 d1 3)
(pow.f64 d1 3)
(pow.f64 d1 3)
(pow.f64 d1 3)
(+.f64 0 (pow.f64 d1 4))
(pow.f64 d1 4)
(+.f64 (log.f64 (sqrt.f64 (exp.f64 (pow.f64 d1 4)))) (log.f64 (sqrt.f64 (exp.f64 (pow.f64 d1 4)))))
(*.f64 2 (log.f64 (sqrt.f64 (exp.f64 (pow.f64 d1 4)))))
(*.f64 (log.f64 (sqrt.f64 (exp.f64 (pow.f64 d1 4)))) 2)
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (pow.f64 d1 4))) 2)) (log.f64 (cbrt.f64 (exp.f64 (pow.f64 d1 4)))))
(*.f64 3 (log.f64 (cbrt.f64 (exp.f64 (pow.f64 d1 4)))))
(-.f64 (+.f64 1 (pow.f64 d1 4)) 1)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 (*.f64 d1 d1) 2)
(pow.f64 d1 4)
(pow.f64 (pow.f64 d1 3) 4/3)
(pow.f64 d1 4)
(pow.f64 (pow.f64 d1 4) 1)
(pow.f64 d1 4)
(pow.f64 (pow.f64 d1 8) 1/2)
(pow.f64 d1 4)
(pow.f64 (pow.f64 d1 12) 1/3)
(cbrt.f64 (pow.f64 d1 12))
(pow.f64 (pow.f64 d1 6) 2/3)
(pow.f64 d1 4)
(pow.f64 (*.f64 d1 (cbrt.f64 d1)) 3)
(pow.f64 d1 4)
(pow.f64 (cbrt.f64 d1) 12)
(pow.f64 d1 4)
(pow.f64 (pow.f64 (cbrt.f64 d1) 2) 6)
(pow.f64 d1 4)
(pow.f64 (sqrt.f64 d1) 8)
(pow.f64 d1 4)
(sqrt.f64 (pow.f64 d1 8))
(pow.f64 d1 4)
(log.f64 (exp.f64 (pow.f64 d1 4)))
(pow.f64 d1 4)
(cbrt.f64 (pow.f64 d1 12))
(expm1.f64 (log1p.f64 (pow.f64 d1 4)))
(pow.f64 d1 4)
(log1p.f64 (expm1.f64 (pow.f64 d1 4)))
(pow.f64 d1 4)
(exp.f64 (*.f64 4 (log.f64 d1)))
(pow.f64 d1 4)
(+.f64 0 (pow.f64 d1 3))
(pow.f64 d1 3)
(+.f64 (log.f64 (sqrt.f64 (exp.f64 (pow.f64 d1 3)))) (log.f64 (sqrt.f64 (exp.f64 (pow.f64 d1 3)))))
(*.f64 2 (log.f64 (sqrt.f64 (exp.f64 (pow.f64 d1 3)))))
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (pow.f64 d1 3))) 2)) (log.f64 (cbrt.f64 (exp.f64 (pow.f64 d1 3)))))
(*.f64 3 (log.f64 (cbrt.f64 (exp.f64 (pow.f64 d1 3)))))
(-.f64 (+.f64 1 (pow.f64 d1 3)) 1)
(pow.f64 d1 3)
(pow.f64 d1 3)
(pow.f64 (*.f64 d1 d1) 3/2)
(pow.f64 d1 3)
(pow.f64 (pow.f64 d1 3) 1)
(pow.f64 d1 3)
(pow.f64 (pow.f64 d1 6) 1/2)
(pow.f64 d1 3)
(pow.f64 (pow.f64 d1 9) 1/3)
(cbrt.f64 (pow.f64 d1 9))
(pow.f64 (cbrt.f64 d1) 9)
(pow.f64 d1 3)
(pow.f64 (sqrt.f64 d1) 6)
(pow.f64 d1 3)
(pow.f64 (pow.f64 d1 3/2) 2)
(pow.f64 d1 3)
(sqrt.f64 (pow.f64 d1 6))
(pow.f64 d1 3)
(log.f64 (exp.f64 (pow.f64 d1 3)))
(pow.f64 d1 3)
(cbrt.f64 (pow.f64 d1 9))
(expm1.f64 (log1p.f64 (pow.f64 d1 3)))
(pow.f64 d1 3)
(log1p.f64 (expm1.f64 (pow.f64 d1 3)))
(pow.f64 d1 3)
(exp.f64 (*.f64 (log.f64 d1) 3))
(pow.f64 d1 3)

localize3.0ms (0.2%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.0b
(pow.f64 d1 4)
Compiler

Compiled 6 to 4 computations (33.3% saved)

series2.0ms (0.1%)

Counts
1 → 0
Calls

3 calls:

TimeVariablePointExpression
1.0ms
d1
@-inf
(pow.f64 d1 4)
1.0ms
d1
@inf
(pow.f64 d1 4)
0.0ms
d1
@0
(pow.f64 d1 4)

rewrite37.0ms (2.5%)

Algorithm
batch-egg-rewrite
Rules
330×pow1_binary64
319×add-sqr-sqrt_binary64
312×*-un-lft-identity_binary64
308×add-log-exp_binary64
308×log1p-expm1-u_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
044
1854
28944
Stop Event
node limit
Counts
1 → 40
Calls
Call 1
Inputs
(pow.f64 d1 4)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 1 (pow.f64 d1 4)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (pow.f64 d1 4))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (pow.f64 d1 4)) 2))) (log.f64 (cbrt.f64 (exp.f64 (pow.f64 d1 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (pow.f64 d1 4)))) (log.f64 (sqrt.f64 (exp.f64 (pow.f64 d1 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (pow.f64 d1 4)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 d1 (pow.f64 d1 3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 d1 4) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 d1 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 d1) (*.f64 d1 d1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 d1 3) d1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 d1) 2) (*.f64 (cbrt.f64 (pow.f64 d1 4)) (*.f64 d1 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 d1) 2) (*.f64 (pow.f64 (cbrt.f64 d1) 2) (pow.f64 (cbrt.f64 d1) 8)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 d1 4)) (pow.f64 (cbrt.f64 d1) 8))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 d1 4)) (*.f64 (pow.f64 (cbrt.f64 d1) 8) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 d1) 8) (cbrt.f64 (pow.f64 d1 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 d1) (*.f64 (pow.f64 d1 3/2) (*.f64 d1 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 d1 3/2) (pow.f64 d1 5/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (cbrt.f64 d1) 8)) (*.f64 (cbrt.f64 (cbrt.f64 (pow.f64 d1 4))) (pow.f64 (cbrt.f64 d1) 8)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (cbrt.f64 (pow.f64 d1 16))) (*.f64 (cbrt.f64 (pow.f64 (cbrt.f64 d1) 8)) (cbrt.f64 (pow.f64 d1 4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 d1) 5) (*.f64 (cbrt.f64 d1) (*.f64 d1 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (cbrt.f64 d1) 5) (pow.f64 (cbrt.f64 d1) 5)) (pow.f64 (cbrt.f64 d1) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (pow.f64 d1 8) (pow.f64 (cbrt.f64 d1) 8))) (cbrt.f64 (cbrt.f64 (pow.f64 d1 4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 d1 10)) (pow.f64 (cbrt.f64 d1) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (pow.f64 d1 4)) 5)) (pow.f64 (cbrt.f64 d1) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/3) (pow.f64 d1 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 d1) 5) 2) (pow.f64 (cbrt.f64 d1) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 (pow.f64 d1 8) (pow.f64 (cbrt.f64 d1) 8)) 1/3) (cbrt.f64 (cbrt.f64 (pow.f64 d1 4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 d1 10) 1/3) (pow.f64 (cbrt.f64 d1) 2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (+.f64 1 (pow.f64 d1 4)) 3) 1) (+.f64 (*.f64 (+.f64 1 (pow.f64 d1 4)) (+.f64 1 (pow.f64 d1 4))) (+.f64 1 (*.f64 (+.f64 1 (pow.f64 d1 4)) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (+.f64 1 (pow.f64 d1 4)) (+.f64 1 (pow.f64 d1 4))) 1) (+.f64 (+.f64 1 (pow.f64 d1 4)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 d1 8))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (pow.f64 d1 4))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 d1 4)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 d1 12))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 d1 4)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 d1 4)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (pow.f64 d1 4)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 d1 d1)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 d1 12)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (pow.f64 d1 4))) 3))))))

simplify42.0ms (2.8%)

Algorithm
egg-herbie
Rules
511×times-frac_binary64
505×associate-*l/_binary64
384×associate-/l*_binary64
354×fma-def_binary64
299×associate-/r*_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0118528
1271342
2831333
33097333
Stop Event
node limit
Counts
40 → 61
Calls
Call 1
Inputs
(+.f64 (+.f64 1 (pow.f64 d1 4)) -1)
(+.f64 0 (pow.f64 d1 4))
(+.f64 (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (pow.f64 d1 4)) 2))) (log.f64 (cbrt.f64 (exp.f64 (pow.f64 d1 4)))))
(+.f64 (log.f64 (sqrt.f64 (exp.f64 (pow.f64 d1 4)))) (log.f64 (sqrt.f64 (exp.f64 (pow.f64 d1 4)))))
(-.f64 (+.f64 1 (pow.f64 d1 4)) 1)
(*.f64 d1 (pow.f64 d1 3))
(*.f64 (pow.f64 d1 4) 1)
(*.f64 1 (pow.f64 d1 4))
(*.f64 (*.f64 d1 d1) (*.f64 d1 d1))
(*.f64 (pow.f64 d1 3) d1)
(*.f64 (pow.f64 (cbrt.f64 d1) 2) (*.f64 (cbrt.f64 (pow.f64 d1 4)) (*.f64 d1 d1)))
(*.f64 (pow.f64 (cbrt.f64 d1) 2) (*.f64 (pow.f64 (cbrt.f64 d1) 2) (pow.f64 (cbrt.f64 d1) 8)))
(*.f64 (cbrt.f64 (pow.f64 d1 4)) (pow.f64 (cbrt.f64 d1) 8))
(*.f64 (cbrt.f64 (pow.f64 d1 4)) (*.f64 (pow.f64 (cbrt.f64 d1) 8) 1))
(*.f64 (pow.f64 (cbrt.f64 d1) 8) (cbrt.f64 (pow.f64 d1 4)))
(*.f64 (sqrt.f64 d1) (*.f64 (pow.f64 d1 3/2) (*.f64 d1 d1)))
(*.f64 (pow.f64 d1 3/2) (pow.f64 d1 5/2))
(*.f64 (cbrt.f64 (pow.f64 (cbrt.f64 d1) 8)) (*.f64 (cbrt.f64 (cbrt.f64 (pow.f64 d1 4))) (pow.f64 (cbrt.f64 d1) 8)))
(*.f64 (cbrt.f64 (cbrt.f64 (pow.f64 d1 16))) (*.f64 (cbrt.f64 (pow.f64 (cbrt.f64 d1) 8)) (cbrt.f64 (pow.f64 d1 4))))
(*.f64 (pow.f64 (cbrt.f64 d1) 5) (*.f64 (cbrt.f64 d1) (*.f64 d1 d1)))
(*.f64 (*.f64 (pow.f64 (cbrt.f64 d1) 5) (pow.f64 (cbrt.f64 d1) 5)) (pow.f64 (cbrt.f64 d1) 2))
(*.f64 (cbrt.f64 (*.f64 (pow.f64 d1 8) (pow.f64 (cbrt.f64 d1) 8))) (cbrt.f64 (cbrt.f64 (pow.f64 d1 4))))
(*.f64 (cbrt.f64 (pow.f64 d1 10)) (pow.f64 (cbrt.f64 d1) 2))
(*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (pow.f64 d1 4)) 5)) (pow.f64 (cbrt.f64 d1) 2))
(*.f64 (pow.f64 1 1/3) (pow.f64 d1 4))
(*.f64 (pow.f64 (pow.f64 (cbrt.f64 d1) 5) 2) (pow.f64 (cbrt.f64 d1) 2))
(*.f64 (pow.f64 (*.f64 (pow.f64 d1 8) (pow.f64 (cbrt.f64 d1) 8)) 1/3) (cbrt.f64 (cbrt.f64 (pow.f64 d1 4))))
(*.f64 (pow.f64 (pow.f64 d1 10) 1/3) (pow.f64 (cbrt.f64 d1) 2))
(/.f64 (-.f64 (pow.f64 (+.f64 1 (pow.f64 d1 4)) 3) 1) (+.f64 (*.f64 (+.f64 1 (pow.f64 d1 4)) (+.f64 1 (pow.f64 d1 4))) (+.f64 1 (*.f64 (+.f64 1 (pow.f64 d1 4)) 1))))
(/.f64 (-.f64 (*.f64 (+.f64 1 (pow.f64 d1 4)) (+.f64 1 (pow.f64 d1 4))) 1) (+.f64 (+.f64 1 (pow.f64 d1 4)) 1))
(sqrt.f64 (pow.f64 d1 8))
(fabs.f64 (pow.f64 d1 4))
(log.f64 (exp.f64 (pow.f64 d1 4)))
(cbrt.f64 (pow.f64 d1 12))
(expm1.f64 (log1p.f64 (pow.f64 d1 4)))
(log1p.f64 (expm1.f64 (pow.f64 d1 4)))
(exp.f64 (log.f64 (pow.f64 d1 4)))
(exp.f64 (*.f64 (log.f64 (*.f64 d1 d1)) 2))
(exp.f64 (*.f64 (log.f64 (pow.f64 d1 12)) 1/3))
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (pow.f64 d1 4))) 3))
Outputs
(+.f64 (+.f64 1 (pow.f64 d1 4)) -1)
(+.f64 1 (-.f64 (pow.f64 d1 4) 1))
(pow.f64 d1 4)
(+.f64 0 (pow.f64 d1 4))
(+.f64 1 (-.f64 (pow.f64 d1 4) 1))
(pow.f64 d1 4)
(+.f64 (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (pow.f64 d1 4)) 2))) (log.f64 (cbrt.f64 (exp.f64 (pow.f64 d1 4)))))
(+.f64 (log.f64 (cbrt.f64 (pow.f64 (exp.f64 2) (pow.f64 d1 4)))) (log.f64 (cbrt.f64 (exp.f64 (pow.f64 d1 4)))))
(+.f64 (log.f64 (sqrt.f64 (exp.f64 (pow.f64 d1 4)))) (log.f64 (sqrt.f64 (exp.f64 (pow.f64 d1 4)))))
(+.f64 1 (-.f64 (pow.f64 d1 4) 1))
(pow.f64 d1 4)
(-.f64 (+.f64 1 (pow.f64 d1 4)) 1)
(+.f64 1 (-.f64 (pow.f64 d1 4) 1))
(pow.f64 d1 4)
(*.f64 d1 (pow.f64 d1 3))
(+.f64 1 (-.f64 (pow.f64 d1 4) 1))
(pow.f64 d1 4)
(*.f64 (pow.f64 d1 4) 1)
(+.f64 1 (-.f64 (pow.f64 d1 4) 1))
(pow.f64 d1 4)
(*.f64 1 (pow.f64 d1 4))
(+.f64 1 (-.f64 (pow.f64 d1 4) 1))
(pow.f64 d1 4)
(*.f64 (*.f64 d1 d1) (*.f64 d1 d1))
(+.f64 1 (-.f64 (pow.f64 d1 4) 1))
(pow.f64 d1 4)
(*.f64 (pow.f64 d1 3) d1)
(+.f64 1 (-.f64 (pow.f64 d1 4) 1))
(pow.f64 d1 4)
(*.f64 (pow.f64 (cbrt.f64 d1) 2) (*.f64 (cbrt.f64 (pow.f64 d1 4)) (*.f64 d1 d1)))
(+.f64 1 (-.f64 (pow.f64 d1 4) 1))
(pow.f64 d1 4)
(*.f64 (pow.f64 (cbrt.f64 d1) 2) (*.f64 (pow.f64 (cbrt.f64 d1) 2) (pow.f64 (cbrt.f64 d1) 8)))
(+.f64 1 (-.f64 (pow.f64 d1 4) 1))
(pow.f64 d1 4)
(*.f64 (cbrt.f64 (pow.f64 d1 4)) (pow.f64 (cbrt.f64 d1) 8))
(+.f64 1 (-.f64 (pow.f64 d1 4) 1))
(pow.f64 d1 4)
(*.f64 (cbrt.f64 (pow.f64 d1 4)) (*.f64 (pow.f64 (cbrt.f64 d1) 8) 1))
(+.f64 1 (-.f64 (pow.f64 d1 4) 1))
(pow.f64 d1 4)
(*.f64 (pow.f64 (cbrt.f64 d1) 8) (cbrt.f64 (pow.f64 d1 4)))
(+.f64 1 (-.f64 (pow.f64 d1 4) 1))
(pow.f64 d1 4)
(*.f64 (sqrt.f64 d1) (*.f64 (pow.f64 d1 3/2) (*.f64 d1 d1)))
(*.f64 (sqrt.f64 d1) (*.f64 (*.f64 d1 d1) (pow.f64 d1 3/2)))
(*.f64 (sqrt.f64 d1) (*.f64 d1 (pow.f64 d1 5/2)))
(*.f64 (sqrt.f64 d1) (pow.f64 d1 7/2))
(*.f64 (pow.f64 d1 3/2) (pow.f64 d1 5/2))
(+.f64 1 (-.f64 (pow.f64 d1 4) 1))
(pow.f64 d1 4)
(*.f64 (cbrt.f64 (pow.f64 (cbrt.f64 d1) 8)) (*.f64 (cbrt.f64 (cbrt.f64 (pow.f64 d1 4))) (pow.f64 (cbrt.f64 d1) 8)))
(*.f64 (cbrt.f64 (pow.f64 (cbrt.f64 d1) 8)) (*.f64 (pow.f64 (cbrt.f64 d1) 8) (cbrt.f64 (cbrt.f64 (pow.f64 d1 4)))))
(*.f64 (pow.f64 (cbrt.f64 d1) 8) (*.f64 (cbrt.f64 (pow.f64 (cbrt.f64 d1) 8)) (cbrt.f64 (cbrt.f64 (pow.f64 d1 4)))))
(*.f64 (pow.f64 (cbrt.f64 d1) 8) (*.f64 (cbrt.f64 (pow.f64 (cbrt.f64 d1) 8)) (cbrt.f64 (*.f64 d1 (cbrt.f64 d1)))))
(*.f64 (cbrt.f64 (cbrt.f64 (pow.f64 d1 16))) (*.f64 (cbrt.f64 (pow.f64 (cbrt.f64 d1) 8)) (cbrt.f64 (pow.f64 d1 4))))
(*.f64 (cbrt.f64 (cbrt.f64 (pow.f64 d1 16))) (*.f64 (cbrt.f64 (pow.f64 d1 4)) (cbrt.f64 (pow.f64 (cbrt.f64 d1) 8))))
(*.f64 (cbrt.f64 (pow.f64 (cbrt.f64 d1) 8)) (*.f64 (cbrt.f64 (pow.f64 d1 4)) (cbrt.f64 (cbrt.f64 (pow.f64 d1 16)))))
(*.f64 (cbrt.f64 (pow.f64 (cbrt.f64 d1) 8)) (*.f64 (cbrt.f64 (cbrt.f64 (pow.f64 d1 16))) (*.f64 d1 (cbrt.f64 d1))))
(*.f64 (pow.f64 (cbrt.f64 d1) 5) (*.f64 (cbrt.f64 d1) (*.f64 d1 d1)))
(+.f64 1 (-.f64 (pow.f64 d1 4) 1))
(pow.f64 d1 4)
(*.f64 (*.f64 (pow.f64 (cbrt.f64 d1) 5) (pow.f64 (cbrt.f64 d1) 5)) (pow.f64 (cbrt.f64 d1) 2))
(+.f64 1 (-.f64 (pow.f64 d1 4) 1))
(pow.f64 d1 4)
(*.f64 (cbrt.f64 (*.f64 (pow.f64 d1 8) (pow.f64 (cbrt.f64 d1) 8))) (cbrt.f64 (cbrt.f64 (pow.f64 d1 4))))
(*.f64 (cbrt.f64 (cbrt.f64 (pow.f64 d1 4))) (cbrt.f64 (*.f64 (pow.f64 (cbrt.f64 d1) 8) (pow.f64 d1 8))))
(*.f64 (cbrt.f64 (*.f64 d1 (cbrt.f64 d1))) (cbrt.f64 (*.f64 (pow.f64 d1 4) (pow.f64 (cbrt.f64 d1) 20))))
(*.f64 (cbrt.f64 (pow.f64 d1 10)) (pow.f64 (cbrt.f64 d1) 2))
(*.f64 (pow.f64 (cbrt.f64 d1) 2) (cbrt.f64 (pow.f64 d1 10)))
(*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (pow.f64 d1 4)) 5)) (pow.f64 (cbrt.f64 d1) 2))
(*.f64 (pow.f64 (cbrt.f64 d1) 2) (sqrt.f64 (pow.f64 (cbrt.f64 (pow.f64 d1 4)) 5)))
(*.f64 (pow.f64 (cbrt.f64 d1) 2) (pow.f64 (cbrt.f64 (pow.f64 d1 4)) 5/2))
(*.f64 (pow.f64 (cbrt.f64 d1) 2) (pow.f64 (*.f64 d1 (cbrt.f64 d1)) 5/2))
(*.f64 (pow.f64 1 1/3) (pow.f64 d1 4))
(+.f64 1 (-.f64 (pow.f64 d1 4) 1))
(pow.f64 d1 4)
(*.f64 (pow.f64 (pow.f64 (cbrt.f64 d1) 5) 2) (pow.f64 (cbrt.f64 d1) 2))
(+.f64 1 (-.f64 (pow.f64 d1 4) 1))
(pow.f64 d1 4)
(*.f64 (pow.f64 (*.f64 (pow.f64 d1 8) (pow.f64 (cbrt.f64 d1) 8)) 1/3) (cbrt.f64 (cbrt.f64 (pow.f64 d1 4))))
(*.f64 (cbrt.f64 (cbrt.f64 (pow.f64 d1 4))) (cbrt.f64 (*.f64 (pow.f64 (cbrt.f64 d1) 8) (pow.f64 d1 8))))
(*.f64 (cbrt.f64 (*.f64 d1 (cbrt.f64 d1))) (cbrt.f64 (*.f64 (pow.f64 d1 4) (pow.f64 (cbrt.f64 d1) 20))))
(*.f64 (pow.f64 (pow.f64 d1 10) 1/3) (pow.f64 (cbrt.f64 d1) 2))
(*.f64 (pow.f64 (cbrt.f64 d1) 2) (cbrt.f64 (pow.f64 d1 10)))
(/.f64 (-.f64 (pow.f64 (+.f64 1 (pow.f64 d1 4)) 3) 1) (+.f64 (*.f64 (+.f64 1 (pow.f64 d1 4)) (+.f64 1 (pow.f64 d1 4))) (+.f64 1 (*.f64 (+.f64 1 (pow.f64 d1 4)) 1))))
(/.f64 (+.f64 (pow.f64 (+.f64 1 (pow.f64 d1 4)) 3) -1) (fma.f64 (+.f64 1 (pow.f64 d1 4)) (+.f64 1 (pow.f64 d1 4)) (+.f64 1 (+.f64 1 (pow.f64 d1 4)))))
(/.f64 (+.f64 -1 (pow.f64 (+.f64 1 (pow.f64 d1 4)) 3)) (fma.f64 (+.f64 1 (pow.f64 d1 4)) (+.f64 1 (pow.f64 d1 4)) (+.f64 (pow.f64 d1 4) 2)))
(/.f64 (+.f64 -1 (pow.f64 (+.f64 1 (pow.f64 d1 4)) 3)) (+.f64 1 (*.f64 (+.f64 1 (pow.f64 d1 4)) (+.f64 (pow.f64 d1 4) 2))))
(/.f64 (-.f64 (*.f64 (+.f64 1 (pow.f64 d1 4)) (+.f64 1 (pow.f64 d1 4))) 1) (+.f64 (+.f64 1 (pow.f64 d1 4)) 1))
(+.f64 1 (-.f64 (pow.f64 d1 4) 1))
(pow.f64 d1 4)
(sqrt.f64 (pow.f64 d1 8))
(+.f64 1 (-.f64 (pow.f64 d1 4) 1))
(pow.f64 d1 4)
(fabs.f64 (pow.f64 d1 4))
(+.f64 1 (-.f64 (pow.f64 d1 4) 1))
(pow.f64 d1 4)
(log.f64 (exp.f64 (pow.f64 d1 4)))
(+.f64 1 (-.f64 (pow.f64 d1 4) 1))
(pow.f64 d1 4)
(cbrt.f64 (pow.f64 d1 12))
(+.f64 1 (-.f64 (pow.f64 d1 4) 1))
(pow.f64 d1 4)
(expm1.f64 (log1p.f64 (pow.f64 d1 4)))
(+.f64 1 (-.f64 (pow.f64 d1 4) 1))
(pow.f64 d1 4)
(log1p.f64 (expm1.f64 (pow.f64 d1 4)))
(+.f64 1 (-.f64 (pow.f64 d1 4) 1))
(pow.f64 d1 4)
(exp.f64 (log.f64 (pow.f64 d1 4)))
(+.f64 1 (-.f64 (pow.f64 d1 4) 1))
(pow.f64 d1 4)
(exp.f64 (*.f64 (log.f64 (*.f64 d1 d1)) 2))
(+.f64 1 (-.f64 (pow.f64 d1 4) 1))
(pow.f64 d1 4)
(exp.f64 (*.f64 (log.f64 (pow.f64 d1 12)) 1/3))
(+.f64 1 (-.f64 (pow.f64 d1 4) 1))
(pow.f64 d1 4)
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (pow.f64 d1 4))) 3))
(+.f64 1 (-.f64 (pow.f64 d1 4) 1))
(pow.f64 d1 4)

eval33.0ms (2.2%)

Compiler

Compiled 1372 to 1013 computations (26.2% saved)

prune16.0ms (1.1%)

Pruning

3 alts after pruning (0 fresh and 3 done)

PrunedKeptTotal
New1470147
Fresh000
Picked011
Done022
Total1473150
Error
0.0b
Counts
150 → 3
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(pow.f64 d1 4)
0.2b
(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
0.2b
(*.f64 (*.f64 d1 d1) (*.f64 d1 d1))
Compiler

Compiled 20 to 10 computations (50% saved)

regimes6.0ms (0.4%)

Counts
3 → 1
Calls
Call 1
Inputs
(*.f64 (*.f64 d1 d1) (*.f64 d1 d1))
(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
(pow.f64 d1 4)
Outputs
(pow.f64 d1 4)
Calls

2 calls:

3.0ms
d1
2.0ms
(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
Results
ErrorSegmentsBranch
0.0b1d1
0.0b1(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
Compiler

Compiled 28 to 12 computations (57.1% saved)

regimes6.0ms (0.4%)

Accuracy

Total -0.1b remaining (-40.4%)

Threshold costs -0.1b (-40.4%)

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

2 calls:

3.0ms
d1
3.0ms
(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
Results
ErrorSegmentsBranch
0.2b1d1
0.2b1(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
Compiler

Compiled 25 to 10 computations (60% saved)

simplify3.0ms (0.2%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0824
11024
Stop Event
done
saturated
Calls
Call 1
Inputs
(pow.f64 d1 4)
(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
(*.f64 (*.f64 d1 d1) (*.f64 d1 d1))
Outputs
(pow.f64 d1 4)
(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
(*.f64 d1 (*.f64 d1 (*.f64 d1 d1)))
(*.f64 (*.f64 d1 d1) (*.f64 d1 d1))
Compiler

Compiled 20 to 10 computations (50% saved)

soundness168.0ms (11.3%)

Algorithm
egg-herbie
Rules
958×sqr-pow_binary64
677×associate-*l*_binary64
556×cube-prod_binary64
520×fabs-mul_binary64
484×pow-sqr_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0510
187
2104
3194
4334
5594
61294
74264
824224
925204
1026744
1128914
1231844
1335514
1441564
1547274
1654504
1759034
1862314
1964934
2067194
2168554
2276384
Stop Event
node limit
Compiler

Compiled 24 to 16 computations (33.3% saved)

end32.0ms (2.2%)

Compiler

Compiled 18 to 7 computations (61.1% saved)

Profiling

Loading profile data...