Details

Time bar (total: 4.8s)

analyze96.0ms (2%)

Algorithm
search
Search
TrueOtherFalseIter
0%99.9%0.1%0
0%99.9%0.1%1
0%99.9%0.1%2
0%99.9%0.1%3
0%99.9%0.1%4
25%74.9%0.1%5
37.5%62.4%0.1%6
50%37.5%12.6%7
56.2%31.2%12.6%8
62.4%18.7%18.8%9
65.6%15.6%18.8%10
68.7%9.4%22%11
70.2%7.8%22%12
71.8%4.7%23.5%13
72.6%3.9%23.5%14
Compiler

Compiled 10 to 7 computations (30% saved)

sample898.0ms (18.7%)

Results
809.0ms8256×body128valid
15.0ms186×body128invalid
Compiler

Compiled 29 to 20 computations (31% saved)

simplify24.0ms (0.5%)

Algorithm
egg-herbie
Rules
601×fma-def_binary64
148×fma-neg_binary64
84×distribute-rgt-in_binary64
50×distribute-lft-in_binary64
50×cancel-sign-sub-inv_binary64
Counts
1 → 1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0710
11510
23710
37110
414810
521110
629710
752610
856010
955910
1059510
1154410

prune2.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New011
Fresh011
Picked000
Done000
Total022
Error
0.1b
Counts
2 → 1
Alt Table
StatusErrorProgram
0.1b
(*.f64 (*.f64 x y) (-.f64 1 y))
Compiler

Compiled 27 to 18 computations (33.3% saved)

localize4.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.1b
(*.f64 (*.f64 x y) (-.f64 1 y))

series7.0ms (0.1%)

Counts
1 → 24
Calls

1 calls:

6.0ms
(*.f64 (*.f64 x y) (-.f64 1 y))

rewrite42.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
692×log1p-expm1-u_binary64
692×expm1-log1p-u_binary64
132×prod-diff_binary64
131×fma-def_binary64
128×expm1-udef_binary64
Counts
1 → 52
Calls

1 calls:

41.0ms
(*.f64 (*.f64 x y) (-.f64 1 y))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0710
114410
2175910
3495610
000
100

simplify69.0ms (1.4%)

Algorithm
egg-herbie
Rules
423×fma-neg_binary64
367×neg-sub0_binary64
365×distribute-rgt-neg-in_binary64
361×neg-mul-1_binary64
345×associate-*r*_binary64
Counts
76 → 59
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
016232
141232
278232
3166232
4444232
51310232
62464232
74517232
84907232

prune35.0ms (0.7%)

Pruning

5 alts after pruning (5 fresh and 0 done)

PrunedKeptTotal
New54559
Fresh000
Picked101
Done000
Total55560
Error
0.0b
Counts
60 → 5
Alt Table
StatusErrorProgram
0.1b
(fma.f64 x y (*.f64 (neg.f64 y) (*.f64 x y)))
32.0b
(cbrt.f64 (pow.f64 (*.f64 (*.f64 x y) (-.f64 1 y)) 3))
1.1b
(pow.f64 (cbrt.f64 (*.f64 (*.f64 x y) (-.f64 1 y))) 3)
15.3b
(/.f64 (*.f64 (-.f64 1 (pow.f64 y 3)) (*.f64 x y)) (+.f64 1 (fma.f64 y y y)))
8.8b
(*.f64 (-.f64 y (pow.f64 y 2)) x)
Compiler

Compiled 812 to 300 computations (63.1% saved)

localize5.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(fma.f64 x y (*.f64 (neg.f64 y) (*.f64 x y)))
0.2b
(*.f64 (neg.f64 y) (*.f64 x y))

series19.0ms (0.4%)

Counts
2 → 48
Calls

2 calls:

10.0ms
(fma.f64 x y (*.f64 (neg.f64 y) (*.f64 x y)))
9.0ms
(*.f64 (neg.f64 y) (*.f64 x y))

rewrite80.0ms (1.7%)

Algorithm
batch-egg-rewrite
Rules
551×log1p-expm1-u_binary64
551×expm1-log1p-u_binary64
450×prod-diff_binary64
331×log-prod_binary64
231×egg-rr
Counts
2 → 231
Calls

2 calls:

73.0ms
(fma.f64 x y (*.f64 (neg.f64 y) (*.f64 x y)))
73.0ms
(*.f64 (neg.f64 y) (*.f64 x y))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0722
114517
2148317
3519017
000
100

simplify162.0ms (3.4%)

Algorithm
egg-herbie
Rules
1315×difference-of-squares_binary64
881×unsub-neg_binary64
792×sub-neg_binary64
531×fma-neg_binary64
424×neg-mul-1_binary64
Counts
279 → 238
Iterations

Useful iterations: 9 (0.0ms)

IterNodesCost
015448
140448
282448
3188448
4510448
51250448
62607448
74092448
84521448
94833354
102918354
113366354
123484354
136450354

prune259.0ms (5.4%)

Pruning

6 alts after pruning (5 fresh and 1 done)

PrunedKeptTotal
New2362238
Fresh134
Picked011
Done000
Total2376243
Error
0.0b
Counts
243 → 6
Alt Table
StatusErrorProgram
0.1b
(fma.f64 x y (*.f64 (neg.f64 y) (*.f64 x y)))
32.0b
(cbrt.f64 (pow.f64 (*.f64 (*.f64 x y) (-.f64 1 y)) 3))
0.6b
(+.f64 (fma.f64 y x (neg.f64 (*.f64 (*.f64 (cbrt.f64 (*.f64 y x)) y) (pow.f64 (cbrt.f64 (*.f64 y x)) 2)))) (fma.f64 (neg.f64 (*.f64 (cbrt.f64 (*.f64 y x)) y)) (pow.f64 (cbrt.f64 (*.f64 y x)) 2) (*.f64 (*.f64 (cbrt.f64 (*.f64 y x)) y) (pow.f64 (cbrt.f64 (*.f64 y x)) 2))))
9.0b
(+.f64 (fma.f64 y x (neg.f64 (*.f64 (*.f64 (cbrt.f64 y) (*.f64 y x)) (cbrt.f64 (*.f64 y y))))) (fma.f64 (neg.f64 (*.f64 (cbrt.f64 y) (*.f64 y x))) (cbrt.f64 (*.f64 y y)) (*.f64 (*.f64 (cbrt.f64 y) (*.f64 y x)) (cbrt.f64 (*.f64 y y)))))
15.3b
(/.f64 (*.f64 (-.f64 1 (pow.f64 y 3)) (*.f64 x y)) (+.f64 1 (fma.f64 y y y)))
8.8b
(*.f64 (-.f64 y (pow.f64 y 2)) x)
Compiler

Compiled 7811 to 1483 computations (81% saved)

localize13.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(*.f64 (*.f64 (cbrt.f64 (*.f64 y x)) y) (pow.f64 (cbrt.f64 (*.f64 y x)) 2))
0.5b
(pow.f64 (cbrt.f64 (*.f64 y x)) 2)
9.4b
(cbrt.f64 (*.f64 y x))
44.0b
(fma.f64 (neg.f64 (*.f64 (cbrt.f64 (*.f64 y x)) y)) (pow.f64 (cbrt.f64 (*.f64 y x)) 2) (*.f64 (*.f64 (cbrt.f64 (*.f64 y x)) y) (pow.f64 (cbrt.f64 (*.f64 y x)) 2)))

series919.0ms (19.1%)

Counts
4 → 96
Calls

4 calls:

352.0ms
(cbrt.f64 (*.f64 y x))
310.0ms
(pow.f64 (cbrt.f64 (*.f64 y x)) 2)
223.0ms
(fma.f64 (neg.f64 (*.f64 (cbrt.f64 (*.f64 y x)) y)) (pow.f64 (cbrt.f64 (*.f64 y x)) 2) (*.f64 (*.f64 (cbrt.f64 (*.f64 y x)) y) (pow.f64 (cbrt.f64 (*.f64 y x)) 2)))
33.0ms
(*.f64 (*.f64 (cbrt.f64 (*.f64 y x)) y) (pow.f64 (cbrt.f64 (*.f64 y x)) 2))

rewrite64.0ms (1.3%)

Algorithm
batch-egg-rewrite
Rules
880×expm1-log1p-u_binary64
832×prod-diff_binary64
114×associate-*r*_binary64
111×add-sqr-sqrt_binary64
104×log1p-expm1-u_binary64
Counts
4 → 87
Calls

4 calls:

62.0ms
(*.f64 (*.f64 (cbrt.f64 (*.f64 y x)) y) (pow.f64 (cbrt.f64 (*.f64 y x)) 2))
62.0ms
(pow.f64 (cbrt.f64 (*.f64 y x)) 2)
62.0ms
(cbrt.f64 (*.f64 y x))
62.0ms
(fma.f64 (neg.f64 (*.f64 (cbrt.f64 (*.f64 y x)) y)) (pow.f64 (cbrt.f64 (*.f64 y x)) 2) (*.f64 (*.f64 (cbrt.f64 (*.f64 y x)) y) (pow.f64 (cbrt.f64 (*.f64 y x)) 2)))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01177
122938
2237238
3529438
000
100

simplify127.0ms (2.7%)

Algorithm
egg-herbie
Rules
543×fma-neg_binary64
488×unswap-sqr_binary64
349×fma-def_binary64
216×exp-diff_binary64
200×exp-prod_binary64
Counts
183 → 115
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
0831920
12081892
23701684
312771304
443641295
550031295

prune518.0ms (10.8%)

Pruning

9 alts after pruning (7 fresh and 2 done)

PrunedKeptTotal
New3514355
Fresh134
Picked011
Done011
Total3529361
Error
0b
Counts
361 → 9
Alt Table
StatusErrorProgram
3.2b
(+.f64 (fma.f64 y x (neg.f64 (*.f64 (*.f64 (cbrt.f64 (*.f64 y x)) y) (pow.f64 (cbrt.f64 (*.f64 y x)) 2)))) (fma.f64 (neg.f64 (*.f64 (cbrt.f64 (*.f64 y x)) y)) (pow.f64 (cbrt.f64 (*.f64 y x)) 2) (*.f64 (*.f64 (cbrt.f64 (*.f64 y x)) y) (*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 y x))) 2) (cbrt.f64 (pow.f64 (cbrt.f64 (*.f64 y x)) 4))))))
15.3b
(/.f64 (*.f64 (-.f64 1 (pow.f64 y 3)) (*.f64 x y)) (+.f64 1 (fma.f64 y y y)))
0.5b
(+.f64 (fma.f64 y x (neg.f64 (*.f64 (*.f64 (cbrt.f64 (*.f64 y x)) y) (pow.f64 (cbrt.f64 (*.f64 y x)) 2)))) (fma.f64 (neg.f64 (*.f64 (cbrt.f64 (*.f64 y x)) y)) (*.f64 (cbrt.f64 y) (*.f64 (cbrt.f64 x) (cbrt.f64 (*.f64 y x)))) (*.f64 (*.f64 (cbrt.f64 (*.f64 y x)) y) (pow.f64 (cbrt.f64 (*.f64 y x)) 2))))
0.6b
(+.f64 (fma.f64 y x (neg.f64 (*.f64 (*.f64 (cbrt.f64 (*.f64 y x)) y) (pow.f64 (cbrt.f64 (*.f64 y x)) 2)))) (fma.f64 (neg.f64 (*.f64 (*.f64 (cbrt.f64 (/.f64 x (/.f64 -1 y))) (cbrt.f64 -1)) y)) (pow.f64 (cbrt.f64 (*.f64 y x)) 2) (*.f64 (*.f64 (cbrt.f64 (*.f64 y x)) y) (pow.f64 (cbrt.f64 (*.f64 y x)) 2))))
0.1b
(fma.f64 x y (*.f64 (neg.f64 y) (*.f64 x y)))
0.6b
(+.f64 (fma.f64 y x (neg.f64 (*.f64 (*.f64 (cbrt.f64 (*.f64 y x)) y) (pow.f64 (cbrt.f64 (*.f64 y x)) 2)))) (fma.f64 (neg.f64 (*.f64 (cbrt.f64 (*.f64 y x)) y)) (pow.f64 (*.f64 (cbrt.f64 y) (cbrt.f64 x)) 2) (*.f64 (*.f64 (cbrt.f64 (*.f64 y x)) y) (pow.f64 (cbrt.f64 (*.f64 y x)) 2))))
0.6b
(+.f64 (fma.f64 y x (neg.f64 (*.f64 (*.f64 (cbrt.f64 (*.f64 y x)) y) (pow.f64 (cbrt.f64 (*.f64 y x)) 2)))) (fma.f64 (neg.f64 (*.f64 (cbrt.f64 (*.f64 y x)) y)) (pow.f64 (cbrt.f64 (*.f64 y x)) 2) (*.f64 (*.f64 (cbrt.f64 (*.f64 y x)) y) (pow.f64 (cbrt.f64 (*.f64 y x)) 2))))
9.0b
(+.f64 (fma.f64 y x (neg.f64 (*.f64 (*.f64 (cbrt.f64 y) (*.f64 y x)) (cbrt.f64 (*.f64 y y))))) (fma.f64 (neg.f64 (*.f64 (cbrt.f64 y) (*.f64 y x))) (cbrt.f64 (*.f64 y y)) (*.f64 (*.f64 (cbrt.f64 y) (*.f64 y x)) (cbrt.f64 (*.f64 y y)))))
8.8b
(*.f64 (-.f64 y (pow.f64 y 2)) x)
Compiler

Compiled 17388 to 5596 computations (67.8% saved)

localize18.0ms (0.4%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.6b
(cbrt.f64 x)
0.6b
(cbrt.f64 y)
9.4b
(cbrt.f64 (*.f64 y x))
43.5b
(fma.f64 (neg.f64 (*.f64 (cbrt.f64 (*.f64 y x)) y)) (*.f64 (cbrt.f64 y) (*.f64 (cbrt.f64 x) (cbrt.f64 (*.f64 y x)))) (*.f64 (*.f64 (cbrt.f64 (*.f64 y x)) y) (pow.f64 (cbrt.f64 (*.f64 y x)) 2)))

series319.0ms (6.7%)

Counts
3 → 48
Calls

3 calls:

263.0ms
(fma.f64 (neg.f64 (*.f64 (cbrt.f64 (*.f64 y x)) y)) (*.f64 (cbrt.f64 y) (*.f64 (cbrt.f64 x) (cbrt.f64 (*.f64 y x)))) (*.f64 (*.f64 (cbrt.f64 (*.f64 y x)) y) (pow.f64 (cbrt.f64 (*.f64 y x)) 2)))
28.0ms
(cbrt.f64 x)
28.0ms
(cbrt.f64 y)

rewrite62.0ms (1.3%)

Algorithm
batch-egg-rewrite
Rules
720×log-prod_binary64
217×expm1-udef_binary64
217×log1p-udef_binary64
203×log-pow_binary64
186×fma-def_binary64
Counts
3 → 84
Calls

3 calls:

60.0ms
(cbrt.f64 x)
60.0ms
(cbrt.f64 y)
60.0ms
(fma.f64 (neg.f64 (*.f64 (cbrt.f64 (*.f64 y x)) y)) (*.f64 (cbrt.f64 y) (*.f64 (cbrt.f64 x) (cbrt.f64 (*.f64 y x)))) (*.f64 (*.f64 (cbrt.f64 (*.f64 y x)) y) (pow.f64 (cbrt.f64 (*.f64 y x)) 2)))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01548
128722
2300820
3518320
000
100

simplify108.0ms (2.2%)

Algorithm
egg-herbie
Rules
868×fma-def_binary64
486×exp-sum_binary64
477×exp-prod_binary64
253×fma-neg_binary64
240×exp-diff_binary64
Counts
132 → 101
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
0931006
1249880
2465823
31454692
44357662
54842662
64171662
74933662

prune497.0ms (10.4%)

Pruning

9 alts after pruning (6 fresh and 3 done)

PrunedKeptTotal
New2981299
Fresh156
Picked011
Done022
Total2999308
Error
0b
Counts
308 → 9
Alt Table
StatusErrorProgram
9.0b
(+.f64 (fma.f64 y x (neg.f64 (*.f64 (*.f64 (cbrt.f64 y) (*.f64 y x)) (cbrt.f64 (*.f64 y y))))) (fma.f64 (neg.f64 (*.f64 (cbrt.f64 y) (*.f64 y x))) (cbrt.f64 (*.f64 y y)) (*.f64 (*.f64 (cbrt.f64 y) (*.f64 y x)) (cbrt.f64 (*.f64 y y)))))
0.6b
(+.f64 (fma.f64 y x (neg.f64 (*.f64 (*.f64 (cbrt.f64 (*.f64 y x)) y) (pow.f64 (cbrt.f64 (*.f64 y x)) 2)))) (fma.f64 (neg.f64 (*.f64 (cbrt.f64 (*.f64 y x)) y)) (*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 y)) 3) (*.f64 (cbrt.f64 x) (cbrt.f64 (*.f64 y x)))) (*.f64 (*.f64 (cbrt.f64 (*.f64 y x)) y) (pow.f64 (cbrt.f64 (*.f64 y x)) 2))))
0.5b
(+.f64 (fma.f64 y x (neg.f64 (*.f64 (*.f64 (cbrt.f64 (*.f64 y x)) y) (pow.f64 (cbrt.f64 (*.f64 y x)) 2)))) (fma.f64 (neg.f64 (*.f64 (cbrt.f64 (*.f64 y x)) y)) (*.f64 (cbrt.f64 y) (*.f64 (cbrt.f64 x) (cbrt.f64 (*.f64 y x)))) (*.f64 (*.f64 (cbrt.f64 (*.f64 y x)) y) (pow.f64 (cbrt.f64 (*.f64 y x)) 2))))
0.6b
(+.f64 (fma.f64 y x (neg.f64 (*.f64 (*.f64 (cbrt.f64 (*.f64 y x)) y) (pow.f64 (cbrt.f64 (*.f64 y x)) 2)))) (fma.f64 (neg.f64 (*.f64 (*.f64 (cbrt.f64 (/.f64 x (/.f64 -1 y))) (cbrt.f64 -1)) y)) (pow.f64 (cbrt.f64 (*.f64 y x)) 2) (*.f64 (*.f64 (cbrt.f64 (*.f64 y x)) y) (pow.f64 (cbrt.f64 (*.f64 y x)) 2))))
0.1b
(fma.f64 x y (*.f64 (neg.f64 y) (*.f64 x y)))
0.6b
(+.f64 (fma.f64 y x (neg.f64 (*.f64 (*.f64 (cbrt.f64 (*.f64 y x)) y) (pow.f64 (cbrt.f64 (*.f64 y x)) 2)))) (fma.f64 (neg.f64 (*.f64 (cbrt.f64 (*.f64 y x)) y)) (pow.f64 (*.f64 (cbrt.f64 y) (cbrt.f64 x)) 2) (*.f64 (*.f64 (cbrt.f64 (*.f64 y x)) y) (pow.f64 (cbrt.f64 (*.f64 y x)) 2))))
0.6b
(+.f64 (fma.f64 y x (neg.f64 (*.f64 (*.f64 (cbrt.f64 (*.f64 y x)) y) (pow.f64 (cbrt.f64 (*.f64 y x)) 2)))) (fma.f64 (neg.f64 (*.f64 (cbrt.f64 (*.f64 y x)) y)) (pow.f64 (cbrt.f64 (*.f64 y x)) 2) (*.f64 (*.f64 (cbrt.f64 (*.f64 y x)) y) (pow.f64 (cbrt.f64 (*.f64 y x)) 2))))
15.3b
(/.f64 (*.f64 (-.f64 1 (pow.f64 y 3)) (*.f64 x y)) (+.f64 1 (fma.f64 y y y)))
8.8b
(*.f64 (-.f64 y (pow.f64 y 2)) x)
Compiler

Compiled 15437 to 4348 computations (71.8% saved)

regimes289.0ms (6%)

Accuracy

Total 0.1b remaining (79.7%)

Threshold costs 0.1b (79.7%)

Counts
86 → 1
Compiler

Compiled 9848 to 3613 computations (63.3% saved)

simplify3.0ms (0.1%)

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
0713
11513
22213
33313
43813
54113
64213
74213

end161.0ms (3.3%)

Compiler

Compiled 353 to 157 computations (55.5% saved)

Profiling

Loading profile data...