Details

Time bar (total: 1.3s)

analyze4.0ms (0.3%)

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
50%6.2%43.8%6
53.1%3.1%43.8%7
54.7%1.6%43.8%8
54.7%0.8%44.6%9
54.7%0.4%44.9%10
54.9%0.2%44.9%11
54.9%0.1%45%12
Compiler

Compiled 21 to 10 computations (52.4% saved)

sample808.0ms (63.7%)

Results
794.0ms8256×body256valid
0.0msbody256invalid

preprocess119.0ms (9.3%)

Algorithm
egg-herbie
Rules
855×unswap-sqr_binary64
734×sqr-pow_binary64
627×cube-prod_binary64
516×associate-*l*_binary64
478×fabs-mul_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01022
12816
25710
31114
44214
515244
630944
732454
834784
937754
1041484
1146454
1252904
1360694
1465684
1569984
1674214
1778234
011
Stop Event
saturated
node limit
Calls
Call 1
Inputs
0
Outputs
0
Call 2
Inputs
(*.f64 (*.f64 d1 (*.f64 (*.f64 (*.f64 (*.f64 (*.f64 d1 (*.f64 d1 d1)) d1) d1) (*.f64 d1 d1)) d1)) d1)
Outputs
(*.f64 (*.f64 d1 (*.f64 (*.f64 (*.f64 (*.f64 (*.f64 d1 (*.f64 d1 d1)) d1) d1) (*.f64 d1 d1)) d1)) d1)
(*.f64 d1 (*.f64 d1 (*.f64 d1 (*.f64 (*.f64 d1 (pow.f64 d1 3)) (pow.f64 d1 3)))))
(*.f64 d1 (*.f64 (*.f64 d1 (pow.f64 d1 4)) (pow.f64 d1 4)))
(*.f64 (*.f64 d1 d1) (pow.f64 d1 8))
(pow.f64 d1 10)
Compiler

Compiled 21 to 10 computations (52.4% saved)

simplify112.0ms (8.8%)

Algorithm
egg-herbie
Rules
855×unswap-sqr_binary64
734×sqr-pow_binary64
627×cube-prod_binary64
516×associate-*l*_binary64
478×fabs-mul_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01022
12816
25710
31114
44214
515244
630944
732454
834784
937754
1041484
1146454
1252904
1360694
1465684
1569984
1674214
1778234
Stop Event
node limit
Counts
1 → 2
Calls
Call 1
Inputs
(*.f64 (*.f64 d1 (*.f64 (*.f64 (*.f64 (*.f64 (*.f64 d1 (*.f64 d1 d1)) d1) d1) (*.f64 d1 d1)) d1)) d1)
Outputs
(*.f64 (*.f64 d1 (*.f64 (*.f64 (*.f64 (*.f64 (*.f64 d1 (*.f64 d1 d1)) d1) d1) (*.f64 d1 d1)) d1)) d1)
(*.f64 d1 (*.f64 d1 (*.f64 d1 (*.f64 (*.f64 d1 (pow.f64 d1 3)) (pow.f64 d1 3)))))
(*.f64 d1 (*.f64 (*.f64 d1 (pow.f64 d1 4)) (pow.f64 d1 4)))
(*.f64 (*.f64 d1 d1) (pow.f64 d1 8))
(pow.f64 d1 10)

eval1.0ms (0.1%)

Compiler

Compiled 23 to 11 computations (52.2% saved)

prune1.0ms (0.1%)

Pruning

3 alts after pruning (3 fresh and 0 done)

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

Compiled 24 to 12 computations (50% saved)

localize9.0ms (0.7%)

Local error

Found 8 expressions with local error:

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

series6.0ms (0.5%)

Counts
4 → 48
Calls

12 calls:

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

rewrite47.0ms (3.7%)

Algorithm
batch-egg-rewrite
Rules
587×pow1_binary64
544×add-log-exp_binary64
544×log1p-expm1-u_binary64
544×expm1-log1p-u_binary64
529×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0734
114619
2172919
Stop Event
node limit
Counts
4 → 46
Calls
Call 1
Inputs
(*.f64 d1 (*.f64 d1 d1))
(*.f64 (*.f64 (*.f64 (*.f64 d1 (*.f64 d1 d1)) d1) d1) (*.f64 d1 d1))
(*.f64 (*.f64 (*.f64 d1 (*.f64 d1 d1)) d1) d1)
(*.f64 (*.f64 d1 (*.f64 d1 d1)) d1)
Outputs
((#(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 (pow.f64 d1 3) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (pow.f64 d1 3) 3) 1/3)))) (#(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 (pow.f64 d1 3) 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 expm1.f64 (log1p.f64 (pow.f64 d1 3)))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 d1 (pow.f64 d1 6))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 d1 (pow.f64 d1 6)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 d1 (pow.f64 d1 6)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 d1 (pow.f64 d1 6))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 d1 (sqrt.f64 (pow.f64 d1 5))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 d1 (pow.f64 d1 6)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (pow.f64 d1 6)) d1))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 d1 (pow.f64 d1 6)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 d1 (pow.f64 d1 6))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 d1 (pow.f64 d1 6))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 d1 (pow.f64 d1 6))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (pow.f64 d1 5)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 d1 5)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 d1 5) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (pow.f64 d1 5) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (pow.f64 d1 5)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (pow.f64 d1 5)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (pow.f64 d1 5) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 d1 5)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (pow.f64 d1 5) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 d1 5)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (pow.f64 d1 5)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 d1 5)))))))
((#(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 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 (cbrt.f64 d1)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (pow.f64 d1 4) 2))))) (#(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 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 expm1.f64 (log1p.f64 (pow.f64 d1 4)))))))

simplify112.0ms (8.8%)

Algorithm
egg-herbie
Rules
1159×sqr-pow_binary64
673×cube-prod_binary64
594×pow-sqr_binary64
574×fabs-mul_binary64
568×unswap-sqr_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
010192
129192
250192
387192
4190192
5603192
61805192
72015192
82321192
92671192
103161192
113895192
124792192
135249192
145706192
156104192
166501192
176769192
Stop Event
node limit
Counts
94 → 47
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 7)
(pow.f64 d1 7)
(pow.f64 d1 7)
(pow.f64 d1 7)
(pow.f64 d1 7)
(pow.f64 d1 7)
(pow.f64 d1 7)
(pow.f64 d1 7)
(pow.f64 d1 7)
(pow.f64 d1 7)
(pow.f64 d1 7)
(pow.f64 d1 7)
(pow.f64 d1 5)
(pow.f64 d1 5)
(pow.f64 d1 5)
(pow.f64 d1 5)
(pow.f64 d1 5)
(pow.f64 d1 5)
(pow.f64 d1 5)
(pow.f64 d1 5)
(pow.f64 d1 5)
(pow.f64 d1 5)
(pow.f64 d1 5)
(pow.f64 d1 5)
(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 7)
(pow.f64 d1 7)
(pow.f64 d1 7)
(pow.f64 d1 7)
(pow.f64 d1 7)
(pow.f64 d1 7)
(pow.f64 d1 7)
(pow.f64 d1 7)
(pow.f64 d1 7)
(pow.f64 d1 7)
(pow.f64 d1 7)
(pow.f64 d1 7)
(pow.f64 d1 5)
(pow.f64 d1 5)
(pow.f64 d1 5)
(pow.f64 d1 5)
(pow.f64 d1 5)
(pow.f64 d1 5)
(pow.f64 d1 5)
(pow.f64 d1 5)
(pow.f64 d1 5)
(pow.f64 d1 5)
(pow.f64 d1 5)
(pow.f64 d1 5)
(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)

localize2.0ms (0.1%)

eval13.0ms (1%)

Compiler

Compiled 767 to 427 computations (44.3% saved)

prune7.0ms (0.6%)

Pruning

2 alts after pruning (0 fresh and 2 done)

PrunedKeptTotal
New47047
Fresh000
Picked011
Done011
Total47249
Error
0b
Counts
49 → 2
Alt Table
Click to see full alt table
StatusErrorProgram
0b
(pow.f64 d1 10)
0.1b
(*.f64 (*.f64 d1 (*.f64 (*.f64 (*.f64 (*.f64 (*.f64 d1 (*.f64 d1 d1)) d1) d1) (*.f64 d1 d1)) d1)) d1)
Compiler

Compiled 24 to 12 computations (50% saved)

regimes6.0ms (0.5%)

Accuracy

Total -0.1b remaining (-∞%)

Threshold costs -0.1b (-∞%)

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

2 calls:

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

Compiled 45 to 21 computations (53.3% saved)

simplify2.0ms (0.2%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01232
11932
Stop Event
saturated
Calls
Call 1
Inputs
(pow.f64 d1 10)
(*.f64 (*.f64 d1 (*.f64 (*.f64 (*.f64 (*.f64 (*.f64 d1 (*.f64 d1 d1)) d1) d1) (*.f64 d1 d1)) d1)) d1)
Outputs
(pow.f64 d1 10)
(*.f64 (*.f64 d1 (*.f64 (*.f64 (*.f64 (*.f64 (*.f64 d1 (*.f64 d1 d1)) d1) d1) (*.f64 d1 d1)) d1)) d1)
(*.f64 d1 (*.f64 d1 (*.f64 d1 (*.f64 (*.f64 d1 d1) (*.f64 d1 (*.f64 d1 (*.f64 d1 (*.f64 d1 d1))))))))

end21.0ms (1.7%)

Stop Event
done
Compiler

Compiled 47 to 23 computations (51.1% saved)

Profiling

Loading profile data...