Details

Time bar (total: 1.4s)

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)

sample673.0ms (47.6%)

Results
661.0ms8256×body256valid
Bogosity

preprocess142.0ms (10%)

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)

simplify136.0ms (9.6%)

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
0b
Counts
5 → 3
Alt Table
Click to see full alt table
StatusErrorProgram
0b
(pow.f64 d1 4)
0.1b
(*.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.3%)

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)

series5.0ms (0.3%)

Counts
1 → 0
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))
Compiler

Compiled 270 to 210 computations (22.2% saved)

rewrite35.0ms (2.5%)

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

simplify45.0ms (3.1%)

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

Useful iterations: 2 (0.0ms)

IterNodesCost
089393
1218222
2602218
33037218
Stop Event
node limit
Counts
32 → 42
Calls
Call 1
Inputs
(+.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
(+.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 (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)
(+.f64 1 (-.f64 (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 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)
(pow.f64 d1 4)
(+.f64 1 (-.f64 (pow.f64 d1 4) 1))
(pow.f64 (*.f64 d1 d1) 2)
(+.f64 1 (-.f64 (pow.f64 d1 4) 1))
(pow.f64 d1 4)
(pow.f64 (pow.f64 d1 4) 1)
(+.f64 1 (-.f64 (pow.f64 d1 4) 1))
(pow.f64 d1 4)
(pow.f64 (pow.f64 d1 6) 2/3)
(+.f64 1 (-.f64 (pow.f64 d1 4) 1))
(pow.f64 d1 4)
(pow.f64 (pow.f64 d1 3) 4/3)
(+.f64 1 (-.f64 (pow.f64 d1 4) 1))
(pow.f64 d1 4)
(pow.f64 (pow.f64 d1 8) 1/2)
(+.f64 1 (-.f64 (pow.f64 d1 4) 1))
(pow.f64 d1 4)
(pow.f64 (pow.f64 d1 12) 1/3)
(+.f64 1 (-.f64 (pow.f64 d1 4) 1))
(pow.f64 d1 4)
(pow.f64 (*.f64 d1 (cbrt.f64 d1)) 3)
(+.f64 1 (-.f64 (pow.f64 d1 4) 1))
(pow.f64 d1 4)
(pow.f64 (cbrt.f64 d1) 12)
(+.f64 1 (-.f64 (pow.f64 d1 4) 1))
(pow.f64 d1 4)
(pow.f64 (pow.f64 (cbrt.f64 d1) 2) 6)
(+.f64 1 (-.f64 (pow.f64 d1 4) 1))
(pow.f64 d1 4)
(pow.f64 (sqrt.f64 d1) 8)
(+.f64 1 (-.f64 (pow.f64 d1 4) 1))
(pow.f64 d1 4)
(pow.f64 (E.f64) (*.f64 4 (log.f64 d1)))
(+.f64 1 (-.f64 (pow.f64 d1 4) 1))
(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 (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))
(+.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 (*.f64 4 (log.f64 d1)))
(+.f64 1 (-.f64 (pow.f64 d1 4) 1))
(pow.f64 d1 4)
(exp.f64 (*.f64 (log.f64 d1) 4))
(+.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 (*.f64 d1 (cbrt.f64 d1))) 3))
(+.f64 1 (-.f64 (pow.f64 d1 4) 1))
(pow.f64 d1 4)

localize5.0ms (0.4%)

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)

series10.0ms (0.7%)

Counts
2 → 0
Calls

6 calls:

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

Compiled 570 to 450 computations (21.1% saved)

rewrite42.0ms (2.9%)

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

simplify43.0ms (3%)

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

Useful iterations: 1 (0.0ms)

IterNodesCost
088224
1192200
2447200
32221200
45486200
Stop Event
node limit
Counts
39 → 47
Calls
Call 1
Inputs
(+.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
(+.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)
(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 (*.f64 2 (log.f64 (cbrt.f64 (exp.f64 (pow.f64 d1 3))))) (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%)

Compiler

Compiled 6 to 4 computations (33.3% saved)

eval23.0ms (1.6%)

Compiler

Compiled 727 to 564 computations (22.4% saved)

prune46.0ms (3.2%)

Pruning

3 alts after pruning (0 fresh and 3 done)

PrunedKeptTotal
New89089
Fresh000
Picked011
Done022
Total89392
Error
0b
Counts
92 → 3
Alt Table
Click to see full alt table
StatusErrorProgram
0b
(pow.f64 d1 4)
0.1b
(*.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
0b1d1
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 (-64.5%)

Threshold costs -0.1b (-64.5%)

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
2.0ms
(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
Results
ErrorSegmentsBranch
0.1b1d1
0.1b1(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
Compiler

Compiled 25 to 10 computations (60% saved)

simplify4.0ms (0.3%)

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)

soundness167.0ms (11.8%)

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)

end18.0ms (1.3%)

Compiler

Compiled 18 to 7 computations (61.1% saved)

Profiling

Loading profile data...