Details

Time bar (total: 6.3s)

analyze110.0ms (1.7%)

Algorithm
search
Search
TrueOtherFalseIter
0%6.2%93.8%0
0%6.2%93.8%1
3.1%3.1%93.8%2
3.1%3.1%93.8%3
4.7%1.6%93.8%4
4.7%1.6%93.8%5
5.5%0.8%93.8%6
5.5%0.8%93.8%7
5.8%0.4%93.8%8
5.8%0.4%93.8%9
6%0.2%93.8%10
6%0.2%93.8%11
6.1%0.1%93.8%12
6.1%0.1%93.8%13
6.2%0%93.8%14
Compiler

Compiled 36 to 30 computations (16.7% saved)

sample2.3s (37.1%)

Results
2.2s8256×body128valid
Compiler

Compiled 93 to 79 computations (15.1% saved)

simplify123.0ms (1.9%)

Algorithm
egg-herbie
Rules
909×cube-prod_binary64
818×unswap-sqr_binary64
698×fabs-mul_binary64
671×sqr-pow_binary64
541×cube-mult_binary64
Counts
1 → 2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02024
13824
26324
310124
420324
552824
666724
785624
8144224
9148124
10151224
11157624
12158224
13185424
14207724
15249824
16310624
17360424
18403724
19444524
20475424
21485924

prune4.0ms (0.1%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New112
Fresh011
Picked000
Done000
Total123
Error
0.4b
Counts
3 → 1
Alt Table
StatusErrorProgram
0.4b
(+.f64 (*.f64 (*.f64 (/.f64 1 6) (pow.f64 (*.f64 -2 (log.f64 u1)) 1/2)) (cos.f64 (*.f64 (*.f64 2 (PI.f64)) u2))) 1/2)
Compiler

Compiled 78 to 68 computations (12.8% saved)

localize14.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(+.f64 (*.f64 (*.f64 (/.f64 1 6) (pow.f64 (*.f64 -2 (log.f64 u1)) 1/2)) (cos.f64 (*.f64 (*.f64 2 (PI.f64)) u2))) 1/2)
0.1b
(pow.f64 (*.f64 -2 (log.f64 u1)) 1/2)
0.3b
(*.f64 (*.f64 2 (PI.f64)) u2)
0.4b
(*.f64 (/.f64 1 6) (pow.f64 (*.f64 -2 (log.f64 u1)) 1/2))

series592.0ms (9.4%)

Counts
4 → 60
Calls

4 calls:

380.0ms
(pow.f64 (*.f64 -2 (log.f64 u1)) 1/2)
170.0ms
(+.f64 (*.f64 (*.f64 (/.f64 1 6) (pow.f64 (*.f64 -2 (log.f64 u1)) 1/2)) (cos.f64 (*.f64 (*.f64 2 (PI.f64)) u2))) 1/2)
35.0ms
(*.f64 (/.f64 1 6) (pow.f64 (*.f64 -2 (log.f64 u1)) 1/2))
7.0ms
(*.f64 (*.f64 2 (PI.f64)) u2)

rewrite29.0ms (0.5%)

Algorithm
rewrite-expression-head
Rules
48×add-exp-log_binary64
25×add-sqr-sqrt_binary64
24×prod-exp_binary64
16×*-un-lft-identity_binary64
14×associate-*l*_binary64
Counts
4 → 107
Calls

4 calls:

9.0ms
(+.f64 (*.f64 (*.f64 (/.f64 1 6) (pow.f64 (*.f64 -2 (log.f64 u1)) 1/2)) (cos.f64 (*.f64 (*.f64 2 (PI.f64)) u2))) 1/2)
7.0ms
(*.f64 (/.f64 1 6) (pow.f64 (*.f64 -2 (log.f64 u1)) 1/2))
6.0ms
(*.f64 (*.f64 2 (PI.f64)) u2)
3.0ms
(pow.f64 (*.f64 -2 (log.f64 u1)) 1/2)

simplify145.0ms (2.3%)

Algorithm
egg-herbie
Rules
411×unswap-sqr_binary64
378×cancel-sign-sub-inv_binary64
371×fma-def_binary64
332×fma-neg_binary64
234×associate-*l*_binary64
Counts
167 → 173
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
02262863
14732660
215322604
332182602
448072602
549982602
649242602

prune199.0ms (3.1%)

Pruning

8 alts after pruning (8 fresh and 0 done)

PrunedKeptTotal
New1658173
Fresh000
Picked101
Done000
Total1668174
Error
0b
Counts
174 → 8
Alt Table
StatusErrorProgram
0.6b
(*.f64 (sqrt.f64 (fma.f64 1/6 (*.f64 (sqrt.f64 (*.f64 -2 (log.f64 u1))) (cos.f64 (*.f64 2 (*.f64 u2 (PI.f64))))) 1/2)) (sqrt.f64 (fma.f64 1/6 (*.f64 (sqrt.f64 (*.f64 -2 (log.f64 u1))) (cos.f64 (*.f64 2 (*.f64 u2 (PI.f64))))) 1/2)))
0.4b
(+.f64 (*.f64 (*.f64 (sqrt.f64 (/.f64 1 6)) (*.f64 (sqrt.f64 (*.f64 -2 (log.f64 u1))) (sqrt.f64 1/6))) (cos.f64 (*.f64 (*.f64 2 (PI.f64)) u2))) 1/2)
0.5b
(cbrt.f64 (pow.f64 (fma.f64 1/6 (*.f64 (sqrt.f64 (*.f64 -2 (log.f64 u1))) (cos.f64 (*.f64 2 (*.f64 u2 (PI.f64))))) 1/2) 3))
0.7b
(+.f64 (*.f64 (exp.f64 (+.f64 (neg.f64 (log.f64 6)) (*.f64 (log.f64 (*.f64 -2 (log.f64 u1))) 1/2))) (cos.f64 (*.f64 (*.f64 2 (PI.f64)) u2))) 1/2)
0.6b
(expm1.f64 (log1p.f64 (fma.f64 1/6 (*.f64 (sqrt.f64 (*.f64 -2 (log.f64 u1))) (cos.f64 (*.f64 2 (*.f64 u2 (PI.f64))))) 1/2)))
0.7b
(+.f64 (*.f64 (*.f64 (/.f64 1 6) (exp.f64 (*.f64 (log.f64 (*.f64 -2 (log.f64 u1))) 1/2))) (cos.f64 (*.f64 (*.f64 2 (PI.f64)) u2))) 1/2)
0.4b
(fma.f64 1/6 (*.f64 (sqrt.f64 (*.f64 -2 (log.f64 u1))) (cos.f64 (*.f64 2 (*.f64 u2 (PI.f64))))) 1/2)
0.5b
(+.f64 (*.f64 (cbrt.f64 (*.f64 1/216 (pow.f64 (*.f64 -2 (log.f64 u1)) 3/2))) (cos.f64 (*.f64 (*.f64 2 (PI.f64)) u2))) 1/2)
Compiler

Compiled 4786 to 3817 computations (20.2% saved)

localize13.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(cos.f64 (*.f64 2 (*.f64 u2 (PI.f64))))
0.1b
(sqrt.f64 (*.f64 -2 (log.f64 u1)))
0.3b
(*.f64 u2 (PI.f64))
0.4b
(fma.f64 1/6 (*.f64 (sqrt.f64 (*.f64 -2 (log.f64 u1))) (cos.f64 (*.f64 2 (*.f64 u2 (PI.f64))))) 1/2)

series197.0ms (3.1%)

Counts
4 → 56
Calls

4 calls:

167.0ms
(fma.f64 1/6 (*.f64 (sqrt.f64 (*.f64 -2 (log.f64 u1))) (cos.f64 (*.f64 2 (*.f64 u2 (PI.f64))))) 1/2)
24.0ms
(sqrt.f64 (*.f64 -2 (log.f64 u1)))
3.0ms
(cos.f64 (*.f64 2 (*.f64 u2 (PI.f64))))
2.0ms
(*.f64 u2 (PI.f64))

rewrite8.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
pow1_binary64
add-sqr-sqrt_binary64
*-un-lft-identity_binary64
add-cube-cbrt_binary64
add-cbrt-cube_binary64
Counts
4 → 53
Calls

4 calls:

3.0ms
(*.f64 u2 (PI.f64))
2.0ms
(sqrt.f64 (*.f64 -2 (log.f64 u1)))
1.0ms
(cos.f64 (*.f64 2 (*.f64 u2 (PI.f64))))
0.0ms
(fma.f64 1/6 (*.f64 (sqrt.f64 (*.f64 -2 (log.f64 u1))) (cos.f64 (*.f64 2 (*.f64 u2 (PI.f64))))) 1/2)

simplify91.0ms (1.4%)

Algorithm
egg-herbie
Rules
974×fma-neg_binary64
603×associate-*l*_binary64
447×distribute-rgt-neg-in_binary64
416×distribute-lft-neg-in_binary64
351×unswap-sqr_binary64
Counts
109 → 104
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01531860
12971745
28311685
323641653
448391653
551491653

prune123.0ms (1.9%)

Pruning

8 alts after pruning (7 fresh and 1 done)

PrunedKeptTotal
New1031104
Fresh167
Picked011
Done000
Total1048112
Error
0b
Counts
112 → 8
Alt Table
StatusErrorProgram
0.6b
(*.f64 (sqrt.f64 (fma.f64 1/6 (*.f64 (sqrt.f64 (*.f64 -2 (log.f64 u1))) (cos.f64 (*.f64 2 (*.f64 u2 (PI.f64))))) 1/2)) (sqrt.f64 (fma.f64 1/6 (*.f64 (sqrt.f64 (*.f64 -2 (log.f64 u1))) (cos.f64 (*.f64 2 (*.f64 u2 (PI.f64))))) 1/2)))
0.4b
(+.f64 (*.f64 (*.f64 (sqrt.f64 (/.f64 1 6)) (*.f64 (sqrt.f64 (*.f64 -2 (log.f64 u1))) (sqrt.f64 1/6))) (cos.f64 (*.f64 (*.f64 2 (PI.f64)) u2))) 1/2)
0.5b
(cbrt.f64 (pow.f64 (fma.f64 1/6 (*.f64 (sqrt.f64 (*.f64 -2 (log.f64 u1))) (cos.f64 (*.f64 2 (*.f64 u2 (PI.f64))))) 1/2) 3))
0.7b
(+.f64 (*.f64 (exp.f64 (+.f64 (neg.f64 (log.f64 6)) (*.f64 (log.f64 (*.f64 -2 (log.f64 u1))) 1/2))) (cos.f64 (*.f64 (*.f64 2 (PI.f64)) u2))) 1/2)
0.6b
(expm1.f64 (log1p.f64 (fma.f64 1/6 (*.f64 (sqrt.f64 (*.f64 -2 (log.f64 u1))) (cos.f64 (*.f64 2 (*.f64 u2 (PI.f64))))) 1/2)))
0.4b
(fma.f64 1/6 (*.f64 (sqrt.f64 (*.f64 -2 (log.f64 u1))) (cos.f64 (*.f64 2 (*.f64 u2 (PI.f64))))) 1/2)
0.5b
(+.f64 (*.f64 (cbrt.f64 (*.f64 1/216 (pow.f64 (*.f64 -2 (log.f64 u1)) 3/2))) (cos.f64 (*.f64 (*.f64 2 (PI.f64)) u2))) 1/2)
0.4b
(fma.f64 1/6 (*.f64 (sqrt.f64 (neg.f64 (log.f64 u1))) (*.f64 (cos.f64 (*.f64 2 (*.f64 (PI.f64) u2))) (sqrt.f64 2))) 1/2)
Compiler

Compiled 2565 to 1834 computations (28.5% saved)

localize14.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(sqrt.f64 (neg.f64 (log.f64 u1)))
0.3b
(*.f64 (PI.f64) u2)
0.4b
(fma.f64 1/6 (*.f64 (sqrt.f64 (neg.f64 (log.f64 u1))) (*.f64 (cos.f64 (*.f64 2 (*.f64 (PI.f64) u2))) (sqrt.f64 2))) 1/2)
0.5b
(*.f64 (sqrt.f64 (neg.f64 (log.f64 u1))) (*.f64 (cos.f64 (*.f64 2 (*.f64 (PI.f64) u2))) (sqrt.f64 2)))

series364.0ms (5.8%)

Counts
4 → 56
Calls

4 calls:

173.0ms
(fma.f64 1/6 (*.f64 (sqrt.f64 (neg.f64 (log.f64 u1))) (*.f64 (cos.f64 (*.f64 2 (*.f64 (PI.f64) u2))) (sqrt.f64 2))) 1/2)
165.0ms
(*.f64 (sqrt.f64 (neg.f64 (log.f64 u1))) (*.f64 (cos.f64 (*.f64 2 (*.f64 (PI.f64) u2))) (sqrt.f64 2)))
23.0ms
(sqrt.f64 (neg.f64 (log.f64 u1)))
3.0ms
(*.f64 (PI.f64) u2)

rewrite18.0ms (0.3%)

Algorithm
rewrite-expression-head
Rules
24×sqrt-prod_binary64
18×associate-*l*_binary64
16×add-sqr-sqrt_binary64
16×pow1_binary64
13×*-un-lft-identity_binary64
Counts
4 → 86
Calls

4 calls:

8.0ms
(*.f64 (sqrt.f64 (neg.f64 (log.f64 u1))) (*.f64 (cos.f64 (*.f64 2 (*.f64 (PI.f64) u2))) (sqrt.f64 2)))
3.0ms
(*.f64 (PI.f64) u2)
2.0ms
(sqrt.f64 (neg.f64 (log.f64 u1)))
0.0ms
(fma.f64 1/6 (*.f64 (sqrt.f64 (neg.f64 (log.f64 u1))) (*.f64 (cos.f64 (*.f64 2 (*.f64 (PI.f64) u2))) (sqrt.f64 2))) 1/2)

simplify126.0ms (2%)

Algorithm
egg-herbie
Rules
793×fma-neg_binary64
522×*-commutative_binary64
358×distribute-rgt-neg-in_binary64
328×distribute-lft-neg-in_binary64
266×fma-def_binary64
Counts
142 → 145
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
01833334
14063156
212393062
326453043
449203041
551153041

prune145.0ms (2.3%)

Pruning

8 alts after pruning (6 fresh and 2 done)

PrunedKeptTotal
New1450145
Fresh066
Picked011
Done011
Total1458153
Error
0b
Counts
153 → 8
Alt Table
StatusErrorProgram
0.6b
(*.f64 (sqrt.f64 (fma.f64 1/6 (*.f64 (sqrt.f64 (*.f64 -2 (log.f64 u1))) (cos.f64 (*.f64 2 (*.f64 u2 (PI.f64))))) 1/2)) (sqrt.f64 (fma.f64 1/6 (*.f64 (sqrt.f64 (*.f64 -2 (log.f64 u1))) (cos.f64 (*.f64 2 (*.f64 u2 (PI.f64))))) 1/2)))
0.4b
(+.f64 (*.f64 (*.f64 (sqrt.f64 (/.f64 1 6)) (*.f64 (sqrt.f64 (*.f64 -2 (log.f64 u1))) (sqrt.f64 1/6))) (cos.f64 (*.f64 (*.f64 2 (PI.f64)) u2))) 1/2)
0.5b
(cbrt.f64 (pow.f64 (fma.f64 1/6 (*.f64 (sqrt.f64 (*.f64 -2 (log.f64 u1))) (cos.f64 (*.f64 2 (*.f64 u2 (PI.f64))))) 1/2) 3))
0.7b
(+.f64 (*.f64 (exp.f64 (+.f64 (neg.f64 (log.f64 6)) (*.f64 (log.f64 (*.f64 -2 (log.f64 u1))) 1/2))) (cos.f64 (*.f64 (*.f64 2 (PI.f64)) u2))) 1/2)
0.6b
(expm1.f64 (log1p.f64 (fma.f64 1/6 (*.f64 (sqrt.f64 (*.f64 -2 (log.f64 u1))) (cos.f64 (*.f64 2 (*.f64 u2 (PI.f64))))) 1/2)))
0.4b
(fma.f64 1/6 (*.f64 (sqrt.f64 (*.f64 -2 (log.f64 u1))) (cos.f64 (*.f64 2 (*.f64 u2 (PI.f64))))) 1/2)
0.5b
(+.f64 (*.f64 (cbrt.f64 (*.f64 1/216 (pow.f64 (*.f64 -2 (log.f64 u1)) 3/2))) (cos.f64 (*.f64 (*.f64 2 (PI.f64)) u2))) 1/2)
0.4b
(fma.f64 1/6 (*.f64 (sqrt.f64 (neg.f64 (log.f64 u1))) (*.f64 (cos.f64 (*.f64 2 (*.f64 (PI.f64) u2))) (sqrt.f64 2))) 1/2)
Compiler

Compiled 3867 to 2398 computations (38% saved)

localize16.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(sqrt.f64 (*.f64 -2 (log.f64 u1)))
0.3b
(*.f64 (sqrt.f64 (/.f64 1 6)) (*.f64 (sqrt.f64 (*.f64 -2 (log.f64 u1))) (sqrt.f64 1/6)))
0.3b
(*.f64 (*.f64 2 (PI.f64)) u2)
0.3b
(*.f64 (sqrt.f64 (*.f64 -2 (log.f64 u1))) (sqrt.f64 1/6))

series60.0ms (1%)

Counts
2 → 20
Calls

2 calls:

32.0ms
(*.f64 (sqrt.f64 (/.f64 1 6)) (*.f64 (sqrt.f64 (*.f64 -2 (log.f64 u1))) (sqrt.f64 1/6)))
28.0ms
(*.f64 (sqrt.f64 (*.f64 -2 (log.f64 u1))) (sqrt.f64 1/6))

rewrite27.0ms (0.4%)

Algorithm
rewrite-expression-head
Rules
21×pow1_binary64
20×associate-*l*_binary64
18×sqrt-prod_binary64
17×add-sqr-sqrt_binary64
15×pow-prod-down_binary64
Counts
2 → 67
Calls

2 calls:

17.0ms
(*.f64 (sqrt.f64 (/.f64 1 6)) (*.f64 (sqrt.f64 (*.f64 -2 (log.f64 u1))) (sqrt.f64 1/6)))
6.0ms
(*.f64 (sqrt.f64 (*.f64 -2 (log.f64 u1))) (sqrt.f64 1/6))

simplify108.0ms (1.7%)

Algorithm
egg-herbie
Rules
756×fma-def_binary64
520×fma-neg_binary64
224×*-commutative_binary64
211×associate-*r/_binary64
190×associate-*l/_binary64
Counts
87 → 108
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0981483
11851312
24861272
36341240
48421240
517251240
640951240
749881240
848341240

prune164.0ms (2.6%)

Pruning

8 alts after pruning (5 fresh and 3 done)

PrunedKeptTotal
New1530153
Fresh055
Picked011
Done022
Total1538161
Error
0b
Counts
161 → 8
Alt Table
StatusErrorProgram
0.6b
(*.f64 (sqrt.f64 (fma.f64 1/6 (*.f64 (sqrt.f64 (*.f64 -2 (log.f64 u1))) (cos.f64 (*.f64 2 (*.f64 u2 (PI.f64))))) 1/2)) (sqrt.f64 (fma.f64 1/6 (*.f64 (sqrt.f64 (*.f64 -2 (log.f64 u1))) (cos.f64 (*.f64 2 (*.f64 u2 (PI.f64))))) 1/2)))
0.4b
(+.f64 (*.f64 (*.f64 (sqrt.f64 (/.f64 1 6)) (*.f64 (sqrt.f64 (*.f64 -2 (log.f64 u1))) (sqrt.f64 1/6))) (cos.f64 (*.f64 (*.f64 2 (PI.f64)) u2))) 1/2)
0.5b
(cbrt.f64 (pow.f64 (fma.f64 1/6 (*.f64 (sqrt.f64 (*.f64 -2 (log.f64 u1))) (cos.f64 (*.f64 2 (*.f64 u2 (PI.f64))))) 1/2) 3))
0.7b
(+.f64 (*.f64 (exp.f64 (+.f64 (neg.f64 (log.f64 6)) (*.f64 (log.f64 (*.f64 -2 (log.f64 u1))) 1/2))) (cos.f64 (*.f64 (*.f64 2 (PI.f64)) u2))) 1/2)
0.6b
(expm1.f64 (log1p.f64 (fma.f64 1/6 (*.f64 (sqrt.f64 (*.f64 -2 (log.f64 u1))) (cos.f64 (*.f64 2 (*.f64 u2 (PI.f64))))) 1/2)))
0.4b
(fma.f64 1/6 (*.f64 (sqrt.f64 (*.f64 -2 (log.f64 u1))) (cos.f64 (*.f64 2 (*.f64 u2 (PI.f64))))) 1/2)
0.5b
(+.f64 (*.f64 (cbrt.f64 (*.f64 1/216 (pow.f64 (*.f64 -2 (log.f64 u1)) 3/2))) (cos.f64 (*.f64 (*.f64 2 (PI.f64)) u2))) 1/2)
0.4b
(fma.f64 1/6 (*.f64 (sqrt.f64 (neg.f64 (log.f64 u1))) (*.f64 (cos.f64 (*.f64 2 (*.f64 (PI.f64) u2))) (sqrt.f64 2))) 1/2)
Compiler

Compiled 4291 to 3548 computations (17.3% saved)

regimes1.1s (17.9%)

Accuracy

Total 0.3b remaining (93.6%)

Threshold costs 0.3b (93.6%)

Counts
83 → 1
Compiler

Compiled 21717 to 19517 computations (10.1% saved)

simplify3.0ms (0%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
+-commutative_binary64
sub-neg_binary64
neg-sub0_binary64
neg-mul-1_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01830
12830
23030
33130
43130

end151.0ms (2.4%)

Compiler

Compiled 217 to 192 computations (11.5% saved)

Profiling

Loading profile data...