Details

Time bar (total: 2.2s)

analyze3.0ms (0.1%)

Algorithm
search
Search
TrueOtherFalseIter
0%100%0%0
0%100%0%1
0%100%0%2
50%50%0%3
50%25%25%4
50%12.5%37.5%5
56.2%6.2%37.5%6
59.3%3.1%37.5%7
60.9%1.6%37.5%8
61.7%0.8%37.5%9
62.1%0.4%37.5%10
62.3%0.2%37.5%11
62.4%0.1%37.5%12
Compiler

Compiled 9 to 5 computations (44.4% saved)

sample784.0ms (36%)

Results
770.0ms8256×body256valid
0.0msbody256invalid

preprocess176.0ms (8.1%)

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)

simplify162.0ms (7.4%)

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 → 2
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 11 to 6 computations (45.5% saved)

prune1.0ms (0.1%)

Pruning

3 alts after pruning (3 fresh and 0 done)

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

Compiled 12 to 7 computations (41.7% saved)

localize6.0ms (0.3%)

Local error

Found 2 expressions with local error:

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

Compiled 17 to 4 computations (76.5% saved)

series3.0ms (0.1%)

Counts
2 → 24
Calls

6 calls:

TimeVariablePointExpression
1.0ms
d1
@0
(*.f64 (*.f64 d1 d1) d1)
1.0ms
d1
@-inf
(*.f64 (*.f64 d1 d1) d1)
1.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)

rewrite47.0ms (2.2%)

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 d1 d1) d1)
(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
Outputs
((#(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))))))
((#(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)))))))

simplify157.0ms (7.2%)

Algorithm
egg-herbie
Rules
1078×sqr-pow_binary64
733×associate-*l*_binary64
533×associate-*r*_binary64
516×*-commutative_binary64
508×cube-prod_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0696
11796
22996
34896
411196
542496
6265796
7280896
8307196
9340896
10380196
11433896
12533396
13613596
14663596
15695996
16722496
17740596
18749696
Stop Event
node limit
Counts
63 → 39
Calls
Call 1
Inputs
(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)
(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)
Outputs
(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)
(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)

localize3.0ms (0.1%)

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)

rewrite43.0ms (2%)

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

simplify7.0ms (0.3%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
000
Stop Event
saturated
Counts
40 → 40
Calls
Call 1
Inputs
Outputs

eval19.0ms (0.9%)

Compiler

Compiled 652 to 471 computations (27.8% saved)

prune10.0ms (0.5%)

Pruning

4 alts after pruning (2 fresh and 2 done)

PrunedKeptTotal
New77279
Fresh000
Picked011
Done011
Total77481
Error
0b
Counts
81 → 4
Alt Table
Click to see full alt table
StatusErrorProgram
0.2b
(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
0.1b
(*.f64 (pow.f64 d1 3) d1)
0.0b
(pow.f64 d1 4)
0.3b
(*.f64 (*.f64 d1 d1) (*.f64 d1 d1))
Compiler

Compiled 26 to 14 computations (46.2% saved)

localize4.0ms (0.2%)

Local error

Found 1 expressions with local error:

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

Compiled 12 to 3 computations (75% saved)

series1.0ms (0%)

Counts
1 → 12
Calls

3 calls:

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

rewrite44.0ms (2%)

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

simplify202.0ms (9.3%)

Algorithm
egg-herbie
Rules
1319×sqr-pow_binary64
662×cube-prod_binary64
659×pow-sqr_binary64
522×fabs-mul_binary64
384×unpow3_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0448
1848
21448
32548
45048
513748
648948
7114148
8126548
9143448
10163348
11190448
12226148
13271048
14324148
15387348
16462448
17493448
18516248
19535848
20541048
21543248
22626648
23717948
24758148
25784548
Stop Event
node limit
Counts
44 → 32
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)
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)

localize6.0ms (0.3%)

Local error

Found 1 expressions with local error:

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

Compiled 11 to 7 computations (36.4% saved)

series1.0ms (0%)

Counts
1 → 12
Calls

3 calls:

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

rewrite43.0ms (2%)

Algorithm
batch-egg-rewrite
Rules
427×pow1_binary64
416×add-sqr-sqrt_binary64
404×*-un-lft-identity_binary64
403×add-log-exp_binary64
402×log1p-expm1-u_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
054
11114
211804
Stop Event
node limit
Counts
1 → 15
Calls
Call 1
Inputs
(*.f64 (pow.f64 d1 3) 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 (*.f64 (cbrt.f64 (exp.f64 (pow.f64 d1 4))) (cbrt.f64 (exp.f64 (pow.f64 d1 4))))) (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 (pow.f64 d1 4) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (pow.f64 d1 4) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 d1 d1) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 d1 (cbrt.f64 d1)) 3)))) (#(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 (pow.f64 d1 4) 3))))) (#(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 (log.f64 d1) 4))))))

simplify196.0ms (9%)

Algorithm
egg-herbie
Rules
1319×sqr-pow_binary64
662×cube-prod_binary64
659×pow-sqr_binary64
522×fabs-mul_binary64
384×unpow3_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0448
1848
21448
32548
45048
513748
648948
7114148
8126548
9143448
10163348
11190448
12226148
13271048
14324148
15387348
16462448
17493448
18516248
19535848
20541048
21543248
22626648
23717948
24758148
25784548
Stop Event
node limit
Counts
27 → 15
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)
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)

eval10.0ms (0.5%)

Compiler

Compiled 344 to 265 computations (23% saved)

prune7.0ms (0.3%)

Pruning

4 alts after pruning (0 fresh and 4 done)

PrunedKeptTotal
New47047
Fresh000
Picked011
Done033
Total47451
Error
0b
Counts
51 → 4
Alt Table
Click to see full alt table
StatusErrorProgram
0.2b
(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
0.1b
(*.f64 (pow.f64 d1 3) d1)
0.0b
(pow.f64 d1 4)
0.3b
(*.f64 (*.f64 d1 d1) (*.f64 d1 d1))
Compiler

Compiled 26 to 14 computations (46.2% saved)

regimes11.0ms (0.5%)

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

2 calls:

8.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 33 to 15 computations (54.5% saved)

regimes6.0ms (0.3%)

Accuracy

Total -0.1b remaining (-72.9%)

Threshold costs -0.1b (-72.9%)

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.2b1d1
0.2b1(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
Compiler

Compiled 25 to 10 computations (60% saved)

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

soundness197.0ms (9.1%)

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)

end19.0ms (0.9%)

Compiler

Compiled 18 to 7 computations (61.1% saved)

Profiling

Loading profile data...