Details

Time bar (total: 16.9s)

analyze670.0ms (4%)

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
0%87.4%12.6%5
0%74.9%25.1%6
6.2%68.6%25.1%7
12.5%56.2%31.4%8
14%48.4%37.6%9
21.1%41.3%37.6%10
26.9%32.4%40.7%11
28.7%27.5%43.8%12
33.4%22.7%43.8%13
37.2%17.4%45.4%14
Compiler

Compiled 12 to 8 computations (33.3% saved)

sample1.8s (10.9%)

Results
1.5s8256×body128valid
131.0ms825×body128invalid
Compiler

Compiled 35 to 23 computations (34.3% saved)

simplify220.0ms (1.3%)

Algorithm
egg-herbie
Rules
2528×fma-neg_binary64
1701×fma-def_binary64
364×distribute-rgt-in_binary64
336×unsub-neg_binary64
328×associate--r-_binary64
Counts
1 → 1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0812
11512
22312
33912
48512
518412
632212
751812
868112
9109712
10178312
11181212
12188212
13191612
14193012
15331212
16422012
17391912
18405312
19411812
20415412
21416412
22422412
23418212
24418212
25599412

prune3.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

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

Compiled 33 to 21 computations (36.4% saved)

localize11.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
0.3b
(*.f64 x (log.f64 (/.f64 x y)))
16.6b
(log.f64 (/.f64 x y))

series1.3s (7.5%)

Counts
3 → 84
Calls

3 calls:

568.0ms
(log.f64 (/.f64 x y))
436.0ms
(*.f64 x (log.f64 (/.f64 x y)))
269.0ms
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)

rewrite67.0ms (0.4%)

Algorithm
batch-egg-rewrite
Rules
916×expm1-log1p-u_binary64
642×prod-diff_binary64
140×egg-rr
90×add-sqr-sqrt_binary64
85×log1p-expm1-u_binary64
Counts
3 → 140
Calls

3 calls:

64.0ms
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
64.0ms
(*.f64 x (log.f64 (/.f64 x y)))
64.0ms
(log.f64 (/.f64 x y))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0827
117327
2230327
3517527
000
100

simplify357.0ms (2.1%)

Algorithm
egg-herbie
Rules
2467×fma-neg_binary64
510×distribute-rgt-in_binary64
508×sub-neg_binary64
506×unsub-neg_binary64
472×associate--r-_binary64
Counts
224 → 162
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
056756
1120756
2249756
3563756
41375756
51807756
61950756
71863756
81927756
91881756
101889756
111975756
121941756
131939756
141939756
154495756
164326756
174450756
184590756
194635756
204639756
214721756
224681756
234693756
244733756
254807756
265096756

prune124.0ms (0.7%)

Pruning

13 alts after pruning (13 fresh and 0 done)

PrunedKeptTotal
New14913162
Fresh000
Picked101
Done000
Total15013163
Error
0.0b
Counts
163 → 13
Alt Table
StatusErrorProgram
30.9b
(-.f64 (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) z)
39.4b
(-.f64 (pow.f64 (sqrt.f64 (*.f64 x (log.f64 (/.f64 x y)))) 2) z)
33.7b
(-.f64 (*.f64 x (+.f64 (fma.f64 (*.f64 (cbrt.f64 (log.f64 x)) (cbrt.f64 (log.f64 x))) (cbrt.f64 (log.f64 x)) (neg.f64 (*.f64 (log.f64 y) 1))) (fma.f64 (neg.f64 (log.f64 y)) 1 (*.f64 (log.f64 y) 1)))) z)
17.2b
(fma.f64 (pow.f64 (cbrt.f64 (*.f64 x (log.f64 (/.f64 x y)))) 2) (cbrt.f64 (*.f64 x (log.f64 (/.f64 x y)))) (neg.f64 z))
30.9b
(-.f64 (+.f64 (*.f64 (log.f64 (/.f64 -1 y)) x) (*.f64 (log.f64 (neg.f64 x)) x)) z)
33.5b
(-.f64 (*.f64 x (/.f64 (-.f64 (*.f64 (log.f64 x) (log.f64 x)) (*.f64 (log.f64 y) (log.f64 y))) (+.f64 (log.f64 x) (log.f64 y)))) z)
33.7b
(-.f64 (*.f64 (log.f64 x) x) (+.f64 (*.f64 (log.f64 y) x) z))
41.3b
(+.f64 (fma.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 x) (log.f64 (/.f64 x y))) (neg.f64 z)) (fma.f64 -1 z z))
28.9b
(+.f64 (fma.f64 (cbrt.f64 (*.f64 x x)) (*.f64 (cbrt.f64 x) (log.f64 (/.f64 x y))) (neg.f64 z)) (fma.f64 -1 z z))
38.6b
(-.f64 (*.f64 x (exp.f64 (log.f64 (log.f64 (/.f64 x y))))) z)
16.9b
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z))
33.6b
(-.f64 (*.f64 x (+.f64 (fma.f64 1 (log.f64 x) (neg.f64 (*.f64 (cbrt.f64 (log.f64 y)) (*.f64 (cbrt.f64 (log.f64 y)) (cbrt.f64 (log.f64 y)))))) (fma.f64 (neg.f64 (cbrt.f64 (log.f64 y))) (*.f64 (cbrt.f64 (log.f64 y)) (cbrt.f64 (log.f64 y))) (*.f64 (cbrt.f64 (log.f64 y)) (*.f64 (cbrt.f64 (log.f64 y)) (cbrt.f64 (log.f64 y))))))) z)
16.9b
(-.f64 (*.f64 x (+.f64 (log.f64 (pow.f64 (cbrt.f64 (/.f64 x y)) 2)) (log.f64 (cbrt.f64 (/.f64 x y))))) z)
Compiler

Compiled 3352 to 1019 computations (69.6% saved)

localize9.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.2b
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z))
16.6b
(log.f64 (/.f64 x y))

series280.0ms (1.7%)

Counts
1 → 36
Calls

1 calls:

279.0ms
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z))

rewrite62.0ms (0.4%)

Algorithm
batch-egg-rewrite
Rules
710×log1p-expm1-u_binary64
710×expm1-log1p-u_binary64
165×prod-diff_binary64
155×egg-rr
137×expm1-udef_binary64
Counts
1 → 155
Calls

1 calls:

58.0ms
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0812
116410
2184210
3502310
000
100

simplify257.0ms (1.5%)

Algorithm
egg-herbie
Rules
2495×fma-neg_binary64
507×unsub-neg_binary64
504×sub-neg_binary64
467×associate--r-_binary64
431×distribute-rgt-in_binary64
Counts
191 → 168
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
048534
1115396
2233396
3524396
41270396
51773396
62047396
71876396
81950396
91874396
101880396
111882396
121934396
131906396
141906396
154495396
164455396
174595396
184653396
194719396
204791396
214933396
224878396

prune110.0ms (0.7%)

Pruning

13 alts after pruning (12 fresh and 1 done)

PrunedKeptTotal
New2071208
Fresh11112
Picked011
Done000
Total20813221
Error
0.0b
Counts
221 → 13
Alt Table
StatusErrorProgram
41.3b
(+.f64 (fma.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 x) (log.f64 (/.f64 x y))) (neg.f64 z)) (fma.f64 -1 z z))
38.4b
(fma.f64 x (pow.f64 (sqrt.f64 (log.f64 (/.f64 x y))) 2) (neg.f64 z))
30.9b
(-.f64 (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) z)
39.4b
(-.f64 (pow.f64 (sqrt.f64 (*.f64 x (log.f64 (/.f64 x y)))) 2) z)
33.7b
(-.f64 (*.f64 x (+.f64 (fma.f64 (*.f64 (cbrt.f64 (log.f64 x)) (cbrt.f64 (log.f64 x))) (cbrt.f64 (log.f64 x)) (neg.f64 (*.f64 (log.f64 y) 1))) (fma.f64 (neg.f64 (log.f64 y)) 1 (*.f64 (log.f64 y) 1)))) z)
17.2b
(fma.f64 (pow.f64 (cbrt.f64 (*.f64 x (log.f64 (/.f64 x y)))) 2) (cbrt.f64 (*.f64 x (log.f64 (/.f64 x y)))) (neg.f64 z))
30.9b
(-.f64 (+.f64 (*.f64 (log.f64 (/.f64 -1 y)) x) (*.f64 (log.f64 (neg.f64 x)) x)) z)
33.5b
(-.f64 (*.f64 x (/.f64 (-.f64 (*.f64 (log.f64 x) (log.f64 x)) (*.f64 (log.f64 y) (log.f64 y))) (+.f64 (log.f64 x) (log.f64 y)))) z)
33.7b
(-.f64 (*.f64 (log.f64 x) x) (+.f64 (*.f64 (log.f64 y) x) z))
28.9b
(+.f64 (fma.f64 (cbrt.f64 (*.f64 x x)) (*.f64 (cbrt.f64 x) (log.f64 (/.f64 x y))) (neg.f64 z)) (fma.f64 -1 z z))
16.9b
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z))
33.6b
(-.f64 (*.f64 x (+.f64 (fma.f64 1 (log.f64 x) (neg.f64 (*.f64 (cbrt.f64 (log.f64 y)) (*.f64 (cbrt.f64 (log.f64 y)) (cbrt.f64 (log.f64 y)))))) (fma.f64 (neg.f64 (cbrt.f64 (log.f64 y))) (*.f64 (cbrt.f64 (log.f64 y)) (cbrt.f64 (log.f64 y))) (*.f64 (cbrt.f64 (log.f64 y)) (*.f64 (cbrt.f64 (log.f64 y)) (cbrt.f64 (log.f64 y))))))) z)
16.9b
(-.f64 (*.f64 x (+.f64 (log.f64 (pow.f64 (cbrt.f64 (/.f64 x y)) 2)) (log.f64 (cbrt.f64 (/.f64 x y))))) z)
Compiler

Compiled 5117 to 1197 computations (76.6% saved)

localize12.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(*.f64 x (+.f64 (log.f64 (pow.f64 (cbrt.f64 (/.f64 x y)) 2)) (log.f64 (cbrt.f64 (/.f64 x y)))))
0.4b
(pow.f64 (cbrt.f64 (/.f64 x y)) 2)
5.4b
(log.f64 (pow.f64 (cbrt.f64 (/.f64 x y)) 2))
16.9b
(cbrt.f64 (/.f64 x y))

series6.2s (36.9%)

Counts
4 → 96
Calls

4 calls:

3.6s
(*.f64 x (+.f64 (log.f64 (pow.f64 (cbrt.f64 (/.f64 x y)) 2)) (log.f64 (cbrt.f64 (/.f64 x y)))))
1.9s
(log.f64 (pow.f64 (cbrt.f64 (/.f64 x y)) 2))
385.0ms
(pow.f64 (cbrt.f64 (/.f64 x y)) 2)
372.0ms
(cbrt.f64 (/.f64 x y))

rewrite69.0ms (0.4%)

Algorithm
batch-egg-rewrite
Rules
959×prod-diff_binary64
194×log1p-udef_binary64
114×add-sqr-sqrt_binary64
109×add-log-exp_binary64
109×log1p-expm1-u_binary64
Counts
4 → 104
Calls

4 calls:

67.0ms
(*.f64 x (+.f64 (log.f64 (pow.f64 (cbrt.f64 (/.f64 x y)) 2)) (log.f64 (cbrt.f64 (/.f64 x y)))))
67.0ms
(pow.f64 (cbrt.f64 (/.f64 x y)) 2)
67.0ms
(log.f64 (pow.f64 (cbrt.f64 (/.f64 x y)) 2))
67.0ms
(cbrt.f64 (/.f64 x y))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01135
123331
2285331
3496731
000
100

simplify85.0ms (0.5%)

Algorithm
egg-herbie
Rules
663×fma-def_binary64
592×associate-*l*_binary64
340×unswap-sqr_binary64
340×fma-neg_binary64
293×distribute-rgt-in_binary64
Counts
200 → 136
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0672408
11582200
23261744
312331176
449941176
551311176

prune170.0ms (1%)

Pruning

12 alts after pruning (10 fresh and 2 done)

PrunedKeptTotal
New1761177
Fresh2911
Picked011
Done011
Total17812190
Error
0.0b
Counts
190 → 12
Alt Table
StatusErrorProgram
16.9b
(-.f64 (fma.f64 x (log.f64 (pow.f64 (/.f64 x y) 2/3)) (*.f64 x (log.f64 (cbrt.f64 (/.f64 x y))))) z)
28.9b
(+.f64 (fma.f64 (cbrt.f64 (*.f64 x x)) (*.f64 (cbrt.f64 x) (log.f64 (/.f64 x y))) (neg.f64 z)) (fma.f64 -1 z z))
33.7b
(-.f64 (*.f64 x (+.f64 (fma.f64 (*.f64 (cbrt.f64 (log.f64 x)) (cbrt.f64 (log.f64 x))) (cbrt.f64 (log.f64 x)) (neg.f64 (*.f64 (log.f64 y) 1))) (fma.f64 (neg.f64 (log.f64 y)) 1 (*.f64 (log.f64 y) 1)))) z)
17.2b
(fma.f64 (pow.f64 (cbrt.f64 (*.f64 x (log.f64 (/.f64 x y)))) 2) (cbrt.f64 (*.f64 x (log.f64 (/.f64 x y)))) (neg.f64 z))
30.9b
(-.f64 (+.f64 (*.f64 (log.f64 (/.f64 -1 y)) x) (*.f64 (log.f64 (neg.f64 x)) x)) z)
33.5b
(-.f64 (*.f64 x (/.f64 (-.f64 (*.f64 (log.f64 x) (log.f64 x)) (*.f64 (log.f64 y) (log.f64 y))) (+.f64 (log.f64 x) (log.f64 y)))) z)
33.7b
(-.f64 (*.f64 (log.f64 x) x) (+.f64 (*.f64 (log.f64 y) x) z))
41.3b
(+.f64 (fma.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 x) (log.f64 (/.f64 x y))) (neg.f64 z)) (fma.f64 -1 z z))
30.9b
(-.f64 (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) z)
16.9b
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z))
33.6b
(-.f64 (*.f64 x (+.f64 (fma.f64 1 (log.f64 x) (neg.f64 (*.f64 (cbrt.f64 (log.f64 y)) (*.f64 (cbrt.f64 (log.f64 y)) (cbrt.f64 (log.f64 y)))))) (fma.f64 (neg.f64 (cbrt.f64 (log.f64 y))) (*.f64 (cbrt.f64 (log.f64 y)) (cbrt.f64 (log.f64 y))) (*.f64 (cbrt.f64 (log.f64 y)) (*.f64 (cbrt.f64 (log.f64 y)) (cbrt.f64 (log.f64 y))))))) z)
16.9b
(-.f64 (*.f64 x (+.f64 (log.f64 (pow.f64 (cbrt.f64 (/.f64 x y)) 2)) (log.f64 (cbrt.f64 (/.f64 x y))))) z)
Compiler

Compiled 4313 to 2087 computations (51.6% saved)

localize14.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(*.f64 x (log.f64 (cbrt.f64 (/.f64 x y))))
5.4b
(log.f64 (pow.f64 (/.f64 x y) 2/3))
14.9b
(pow.f64 (/.f64 x y) 2/3)
16.9b
(cbrt.f64 (/.f64 x y))

series3.1s (18.3%)

Counts
3 → 72
Calls

3 calls:

1.5s
(*.f64 x (log.f64 (cbrt.f64 (/.f64 x y))))
1.1s
(log.f64 (pow.f64 (/.f64 x y) 2/3))
411.0ms
(pow.f64 (/.f64 x y) 2/3)

rewrite56.0ms (0.3%)

Algorithm
batch-egg-rewrite
Rules
850×log1p-expm1-u_binary64
850×expm1-log1p-u_binary64
96×add-sqr-sqrt_binary64
91×add-log-exp_binary64
90×add-exp-log_binary64
Counts
3 → 60
Calls

3 calls:

55.0ms
(*.f64 x (log.f64 (cbrt.f64 (/.f64 x y))))
55.0ms
(log.f64 (pow.f64 (/.f64 x y) 2/3))
55.0ms
(pow.f64 (/.f64 x y) 2/3)
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01027
119927
2225027
3522427
000
100

simplify111.0ms (0.7%)

Algorithm
egg-herbie
Rules
504×distribute-rgt-in_binary64
493×fma-neg_binary64
488×div-sub_binary64
446×prod-exp_binary64
406×unsub-neg_binary64
Counts
132 → 78
Iterations

Useful iterations: 6 (0.0ms)

IterNodesCost
057912
1124912
2252912
3695768
41863672
53397672
64662648
74733648
85542648

prune114.0ms (0.7%)

Pruning

12 alts after pruning (9 fresh and 3 done)

PrunedKeptTotal
New1190119
Fresh099
Picked011
Done022
Total11912131
Error
0.0b
Counts
131 → 12
Alt Table
StatusErrorProgram
16.9b
(-.f64 (fma.f64 x (log.f64 (pow.f64 (/.f64 x y) 2/3)) (*.f64 x (log.f64 (cbrt.f64 (/.f64 x y))))) z)
28.9b
(+.f64 (fma.f64 (cbrt.f64 (*.f64 x x)) (*.f64 (cbrt.f64 x) (log.f64 (/.f64 x y))) (neg.f64 z)) (fma.f64 -1 z z))
33.7b
(-.f64 (*.f64 x (+.f64 (fma.f64 (*.f64 (cbrt.f64 (log.f64 x)) (cbrt.f64 (log.f64 x))) (cbrt.f64 (log.f64 x)) (neg.f64 (*.f64 (log.f64 y) 1))) (fma.f64 (neg.f64 (log.f64 y)) 1 (*.f64 (log.f64 y) 1)))) z)
17.2b
(fma.f64 (pow.f64 (cbrt.f64 (*.f64 x (log.f64 (/.f64 x y)))) 2) (cbrt.f64 (*.f64 x (log.f64 (/.f64 x y)))) (neg.f64 z))
30.9b
(-.f64 (+.f64 (*.f64 (log.f64 (/.f64 -1 y)) x) (*.f64 (log.f64 (neg.f64 x)) x)) z)
33.5b
(-.f64 (*.f64 x (/.f64 (-.f64 (*.f64 (log.f64 x) (log.f64 x)) (*.f64 (log.f64 y) (log.f64 y))) (+.f64 (log.f64 x) (log.f64 y)))) z)
33.7b
(-.f64 (*.f64 (log.f64 x) x) (+.f64 (*.f64 (log.f64 y) x) z))
41.3b
(+.f64 (fma.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 x) (log.f64 (/.f64 x y))) (neg.f64 z)) (fma.f64 -1 z z))
30.9b
(-.f64 (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) z)
16.9b
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z))
33.6b
(-.f64 (*.f64 x (+.f64 (fma.f64 1 (log.f64 x) (neg.f64 (*.f64 (cbrt.f64 (log.f64 y)) (*.f64 (cbrt.f64 (log.f64 y)) (cbrt.f64 (log.f64 y)))))) (fma.f64 (neg.f64 (cbrt.f64 (log.f64 y))) (*.f64 (cbrt.f64 (log.f64 y)) (cbrt.f64 (log.f64 y))) (*.f64 (cbrt.f64 (log.f64 y)) (*.f64 (cbrt.f64 (log.f64 y)) (cbrt.f64 (log.f64 y))))))) z)
16.9b
(-.f64 (*.f64 x (+.f64 (log.f64 (pow.f64 (cbrt.f64 (/.f64 x y)) 2)) (log.f64 (cbrt.f64 (/.f64 x y))))) z)
Compiler

Compiled 2808 to 1278 computations (54.5% saved)

regimes1.3s (7.7%)

Accuracy

Total 0.3b remaining (93.2%)

Threshold costs 0.3b (93.2%)

Counts
99 → 2
Compiler

Compiled 9376 to 5889 computations (37.2% saved)

bsearch39.0ms (0.2%)

Steps
ItersRangePoint
4
-1.0277119456466784e-307
9.341725953948487e-307
-4.369006329198465e-309
Compiler

Compiled 4 to 3 computations (25% saved)

simplify7.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
02446
13446
24246
35546
46246
56746
66946
76846

end309.0ms (1.8%)

Compiler

Compiled 330 to 192 computations (41.8% saved)

Profiling

Loading profile data...