Details

Time bar (total: 3.4s)

analyze71.0ms (2.1%)

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%74.9%25.1%4
12.5%62.4%25.1%5
31.2%31.2%37.6%6
37.5%25%37.6%7
40.6%15.6%43.8%8
42.9%11.7%45.4%9
44.1%7.4%48.5%10
45.1%5.7%49.3%11
45.6%3.6%50.8%12
46%2.8%51.2%13
46.2%1.8%52%14
Compiler

Compiled 17 to 14 computations (17.6% saved)

sample1.1s (33.1%)

Results
969.0ms8256×body128valid
21.0ms204×body128invalid
Compiler

Compiled 50 to 41 computations (18% saved)

simplify180.0ms (5.3%)

Algorithm
egg-herbie
Rules
1205×fma-neg_binary64
900×fma-def_binary64
326×associate-/l*_binary64
318×cancel-sign-sub-inv_binary64
290×distribute-rgt-neg-in_binary64
Counts
1 → 2
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01321
12818
26818
314516
425716
541116
686116
7137116
8238616
9249316
10267516
11260716
12258116
13258116
14353116
15336416
16336416
17336416
18336416
19317116

prune4.0ms (0.1%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
0.2b
Counts
3 → 2
Alt Table
StatusErrorProgram
0.4b
(*.f64 (*.f64 3 (sqrt.f64 x)) (-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1))
0.4b
(*.f64 (sqrt.f64 x) (fma.f64 3 (+.f64 y (/.f64 1/9 x)) -3))
Compiler

Compiled 85 to 66 computations (22.4% saved)

localize10.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(+.f64 y (/.f64 1 (*.f64 x 9)))
0.2b
(*.f64 (*.f64 3 (sqrt.f64 x)) (-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1))
0.3b
(*.f64 3 (sqrt.f64 x))
0.5b
(/.f64 1 (*.f64 x 9))

series36.0ms (1.1%)

Counts
4 → 48
Calls

4 calls:

24.0ms
(*.f64 (*.f64 3 (sqrt.f64 x)) (-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1))
5.0ms
(*.f64 3 (sqrt.f64 x))
5.0ms
(+.f64 y (/.f64 1 (*.f64 x 9)))
2.0ms
(/.f64 1 (*.f64 x 9))

rewrite75.0ms (2.2%)

Algorithm
batch-egg-rewrite
Rules
620×prod-diff_binary64
226×log1p-udef_binary64
225×expm1-udef_binary64
134×add-sqr-sqrt_binary64
130×log1p-expm1-u_binary64
Counts
4 → 106
Calls

4 calls:

74.0ms
(+.f64 y (/.f64 1 (*.f64 x 9)))
74.0ms
(*.f64 (*.f64 3 (sqrt.f64 x)) (-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1))
74.0ms
(*.f64 3 (sqrt.f64 x))
74.0ms
(/.f64 1 (*.f64 x 9))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01344
128235
2333335
3512035
000
100

simplify122.0ms (3.6%)

Algorithm
egg-herbie
Rules
985×fma-def_binary64
640×fma-neg_binary64
234×distribute-rgt-in_binary64
221×distribute-rgt-neg-in_binary64
202×distribute-lft-in_binary64
Counts
154 → 115
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
024453
154408
2106387
3186387
4358387
5544387
61055387
71692387
82031387
92091387
102032387
112032387
122393387
132393387
142393387
152248387

prune120.0ms (3.5%)

Pruning

10 alts after pruning (9 fresh and 1 done)

PrunedKeptTotal
New1069115
Fresh101
Picked011
Done000
Total10710117
Error
0.0b
Counts
117 → 10
Alt Table
StatusErrorProgram
26.7b
(/.f64 (*.f64 (+.f64 (pow.f64 (+.f64 (/.f64 1/9 x) y) 2) -1) (*.f64 3 (sqrt.f64 x))) (+.f64 1 (+.f64 (/.f64 1/9 x) y)))
0.3b
(-.f64 (+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (*.f64 1/3 (sqrt.f64 (/.f64 1 x)))) (*.f64 3 (sqrt.f64 x)))
16.7b
(*.f64 (cbrt.f64 (pow.f64 (*.f64 3 (sqrt.f64 x)) 3)) (-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1))
0.5b
(*.f64 (sqrt.f64 (*.f64 x 9)) (-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1))
0.4b
(*.f64 (*.f64 3 (sqrt.f64 x)) (-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1))
0.4b
(*.f64 (*.f64 3 (sqrt.f64 x)) (-.f64 (+.f64 y (*.f64 (pow.f64 (*.f64 3 (sqrt.f64 x)) -1) (pow.f64 (*.f64 3 (sqrt.f64 x)) -1))) 1))
48.9b
(sqrt.f64 (*.f64 (*.f64 x 9) (pow.f64 (+.f64 (/.f64 1/9 x) (-.f64 y 1)) 2)))
1.3b
(pow.f64 (cbrt.f64 (*.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 (/.f64 1/9 x) (-.f64 y 1)))) 3)
0.3b
(fma.f64 (sqrt.f64 x) (fma.f64 3 y -3) (*.f64 1/3 (sqrt.f64 (/.f64 1 x))))
34.9b
(*.f64 (*.f64 3 (sqrt.f64 x)) (-.f64 (/.f64 1 (/.f64 (fma.f64 y y (*.f64 (/.f64 1/9 x) (-.f64 (/.f64 1/9 x) y))) (+.f64 (pow.f64 (*.f64 x 9) -3) (pow.f64 y 3)))) 1))
Compiler

Compiled 2364 to 1721 computations (27.2% saved)

localize13.0ms (0.4%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(*.f64 y (sqrt.f64 x))
0.3b
(*.f64 3 (sqrt.f64 x))
0.3b
(*.f64 3 (*.f64 y (sqrt.f64 x)))
0.4b
(*.f64 1/3 (sqrt.f64 (/.f64 1 x)))

series27.0ms (0.8%)

Counts
3 → 0
Calls

3 calls:

11.0ms
(*.f64 3 (*.f64 y (sqrt.f64 x)))
10.0ms
(*.f64 y (sqrt.f64 x))
6.0ms
(*.f64 1/3 (sqrt.f64 (/.f64 1 x)))

rewrite52.0ms (1.5%)

Algorithm
batch-egg-rewrite
Rules
515×log-prod_binary64
301×pow2_binary64
193×pow-unpow_binary64
192×expm1-udef_binary64
192×log1p-udef_binary64
Counts
3 → 58
Calls

3 calls:

51.0ms
(*.f64 y (sqrt.f64 x))
51.0ms
(*.f64 3 (*.f64 y (sqrt.f64 x)))
51.0ms
(*.f64 1/3 (sqrt.f64 (/.f64 1 x)))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01224
123921
2251521
3513321
000
100

simplify6.0ms (0.2%)

Algorithm
egg-herbie
Counts
58 → 58
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
000
100

prune84.0ms (2.5%)

Pruning

10 alts after pruning (8 fresh and 2 done)

PrunedKeptTotal
New73174
Fresh178
Picked011
Done011
Total741084
Error
0.0b
Counts
84 → 10
Alt Table
StatusErrorProgram
1.3b
(pow.f64 (cbrt.f64 (*.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 (/.f64 1/9 x) (-.f64 y 1)))) 3)
0.7b
(-.f64 (+.f64 (*.f64 3 (pow.f64 (cbrt.f64 (*.f64 y (sqrt.f64 x))) 3)) (*.f64 1/3 (sqrt.f64 (/.f64 1 x)))) (*.f64 3 (sqrt.f64 x)))
26.7b
(/.f64 (*.f64 (+.f64 (pow.f64 (+.f64 (/.f64 1/9 x) y) 2) -1) (*.f64 3 (sqrt.f64 x))) (+.f64 1 (+.f64 (/.f64 1/9 x) y)))
0.3b
(-.f64 (+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (*.f64 1/3 (sqrt.f64 (/.f64 1 x)))) (*.f64 3 (sqrt.f64 x)))
16.7b
(*.f64 (cbrt.f64 (pow.f64 (*.f64 3 (sqrt.f64 x)) 3)) (-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1))
0.5b
(*.f64 (sqrt.f64 (*.f64 x 9)) (-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1))
0.4b
(*.f64 (*.f64 3 (sqrt.f64 x)) (-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1))
0.4b
(*.f64 (*.f64 3 (sqrt.f64 x)) (-.f64 (+.f64 y (*.f64 (pow.f64 (*.f64 3 (sqrt.f64 x)) -1) (pow.f64 (*.f64 3 (sqrt.f64 x)) -1))) 1))
48.9b
(sqrt.f64 (*.f64 (*.f64 x 9) (pow.f64 (+.f64 (/.f64 1/9 x) (-.f64 y 1)) 2)))
0.3b
(fma.f64 (sqrt.f64 x) (fma.f64 3 y -3) (*.f64 1/3 (sqrt.f64 (/.f64 1 x))))
Compiler

Compiled 1891 to 1272 computations (32.7% saved)

localize10.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(fma.f64 3 y -3)
0.1b
(sqrt.f64 (/.f64 1 x))
0.2b
(fma.f64 (sqrt.f64 x) (fma.f64 3 y -3) (*.f64 1/3 (sqrt.f64 (/.f64 1 x))))
0.4b
(*.f64 1/3 (sqrt.f64 (/.f64 1 x)))

series29.0ms (0.8%)

Counts
3 → 24
Calls

3 calls:

23.0ms
(fma.f64 (sqrt.f64 x) (fma.f64 3 y -3) (*.f64 1/3 (sqrt.f64 (/.f64 1 x))))
4.0ms
(sqrt.f64 (/.f64 1 x))
2.0ms
(fma.f64 3 y -3)

rewrite59.0ms (1.7%)

Algorithm
batch-egg-rewrite
Rules
487×log-prod_binary64
206×expm1-udef_binary64
206×log1p-udef_binary64
204×pow1/3_binary64
187×pow3_binary64
Counts
3 → 92
Calls

3 calls:

57.0ms
(fma.f64 3 y -3)
57.0ms
(sqrt.f64 (/.f64 1 x))
57.0ms
(fma.f64 (sqrt.f64 x) (fma.f64 3 y -3) (*.f64 1/3 (sqrt.f64 (/.f64 1 x))))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01330
125925
2265225
3489425
000
100

simplify47.0ms (1.4%)

Algorithm
egg-herbie
Rules
665×fma-def_binary64
467×fma-neg_binary64
158×cancel-sign-sub-inv_binary64
73×distribute-rgt-neg-in_binary64
51×sub-neg_binary64
Counts
116 → 102
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
021323
143258
273258
3120258
4202258
5295258
6538258
7799258
8940258
91059258
101066258
11983258

prune140.0ms (4.1%)

Pruning

10 alts after pruning (9 fresh and 1 done)

PrunedKeptTotal
New1164120
Fresh257
Picked101
Done112
Total12010130
Error
0.0b
Counts
130 → 10
Alt Table
StatusErrorProgram
1.3b
(pow.f64 (cbrt.f64 (*.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 (/.f64 1/9 x) (-.f64 y 1)))) 3)
0.7b
(-.f64 (+.f64 (*.f64 3 (pow.f64 (cbrt.f64 (*.f64 y (sqrt.f64 x))) 3)) (*.f64 1/3 (sqrt.f64 (/.f64 1 x)))) (*.f64 3 (sqrt.f64 x)))
0.3b
(pow.f64 (fma.f64 (sqrt.f64 x) (fma.f64 3 y -3) (/.f64 1/3 (sqrt.f64 x))) 1)
26.7b
(/.f64 (*.f64 (+.f64 (pow.f64 (+.f64 (/.f64 1/9 x) y) 2) -1) (*.f64 3 (sqrt.f64 x))) (+.f64 1 (+.f64 (/.f64 1/9 x) y)))
0.3b
(-.f64 (+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (*.f64 1/3 (sqrt.f64 (/.f64 1 x)))) (*.f64 3 (sqrt.f64 x)))
0.5b
(*.f64 (sqrt.f64 (*.f64 x 9)) (-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1))
18.5b
(fma.f64 (sqrt.f64 x) (cbrt.f64 (pow.f64 (fma.f64 3 y -3) 3)) (*.f64 1/3 (sqrt.f64 (/.f64 1 x))))
0.8b
(fma.f64 (sqrt.f64 x) (pow.f64 (cbrt.f64 (fma.f64 3 y -3)) 3) (*.f64 1/3 (sqrt.f64 (/.f64 1 x))))
48.9b
(sqrt.f64 (*.f64 (*.f64 x 9) (pow.f64 (+.f64 (/.f64 1/9 x) (-.f64 y 1)) 2)))
13.8b
(/.f64 (-.f64 (*.f64 (*.f64 (sqrt.f64 x) (fma.f64 3 y -3)) (*.f64 (sqrt.f64 x) (fma.f64 3 y -3))) (*.f64 (/.f64 1 x) 1/9)) (-.f64 (*.f64 (sqrt.f64 x) (fma.f64 3 y -3)) (/.f64 1/3 (sqrt.f64 x))))
Compiler

Compiled 2358 to 1663 computations (29.5% saved)

localize8.0ms (0.2%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.1b
(fma.f64 3 y -3)
0.2b
(fma.f64 (sqrt.f64 x) (fma.f64 3 y -3) (/.f64 1/3 (sqrt.f64 x)))
0.4b
(/.f64 1/3 (sqrt.f64 x))

series34.0ms (1%)

Counts
2 → 12
Calls

2 calls:

22.0ms
(fma.f64 (sqrt.f64 x) (fma.f64 3 y -3) (/.f64 1/3 (sqrt.f64 x)))
12.0ms
(/.f64 1/3 (sqrt.f64 x))

rewrite54.0ms (1.6%)

Algorithm
batch-egg-rewrite
Rules
866×log1p-expm1-u_binary64
866×expm1-log1p-u_binary64
112×prod-diff_binary64
100×add-sqr-sqrt_binary64
95×add-log-exp_binary64
Counts
2 → 47
Calls

2 calls:

53.0ms
(fma.f64 (sqrt.f64 x) (fma.f64 3 y -3) (/.f64 1/3 (sqrt.f64 x)))
53.0ms
(/.f64 1/3 (sqrt.f64 x))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01022
120822
2225222
3537222
000
100

simplify44.0ms (1.3%)

Algorithm
egg-herbie
Rules
665×fma-def_binary64
467×fma-neg_binary64
158×cancel-sign-sub-inv_binary64
73×distribute-rgt-neg-in_binary64
51×sub-neg_binary64
Counts
59 → 54
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
018269
139222
269204
3119204
4202204
5295204
6538204
7799204
8940204
91059204
101066204
11983204

prune93.0ms (2.7%)

Pruning

10 alts after pruning (8 fresh and 2 done)

PrunedKeptTotal
New84084
Fresh088
Picked011
Done011
Total841094
Error
0.0b
Counts
94 → 10
Alt Table
StatusErrorProgram
1.3b
(pow.f64 (cbrt.f64 (*.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 (/.f64 1/9 x) (-.f64 y 1)))) 3)
0.7b
(-.f64 (+.f64 (*.f64 3 (pow.f64 (cbrt.f64 (*.f64 y (sqrt.f64 x))) 3)) (*.f64 1/3 (sqrt.f64 (/.f64 1 x)))) (*.f64 3 (sqrt.f64 x)))
0.3b
(pow.f64 (fma.f64 (sqrt.f64 x) (fma.f64 3 y -3) (/.f64 1/3 (sqrt.f64 x))) 1)
26.7b
(/.f64 (*.f64 (+.f64 (pow.f64 (+.f64 (/.f64 1/9 x) y) 2) -1) (*.f64 3 (sqrt.f64 x))) (+.f64 1 (+.f64 (/.f64 1/9 x) y)))
0.3b
(-.f64 (+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (*.f64 1/3 (sqrt.f64 (/.f64 1 x)))) (*.f64 3 (sqrt.f64 x)))
0.5b
(*.f64 (sqrt.f64 (*.f64 x 9)) (-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1))
18.5b
(fma.f64 (sqrt.f64 x) (cbrt.f64 (pow.f64 (fma.f64 3 y -3) 3)) (*.f64 1/3 (sqrt.f64 (/.f64 1 x))))
0.8b
(fma.f64 (sqrt.f64 x) (pow.f64 (cbrt.f64 (fma.f64 3 y -3)) 3) (*.f64 1/3 (sqrt.f64 (/.f64 1 x))))
48.9b
(sqrt.f64 (*.f64 (*.f64 x 9) (pow.f64 (+.f64 (/.f64 1/9 x) (-.f64 y 1)) 2)))
13.8b
(/.f64 (-.f64 (*.f64 (*.f64 (sqrt.f64 x) (fma.f64 3 y -3)) (*.f64 (sqrt.f64 x) (fma.f64 3 y -3))) (*.f64 (/.f64 1 x) 1/9)) (-.f64 (*.f64 (sqrt.f64 x) (fma.f64 3 y -3)) (/.f64 1/3 (sqrt.f64 x))))
Compiler

Compiled 1646 to 1142 computations (30.6% saved)

regimes764.0ms (22.4%)

Accuracy

Total 0.3b remaining (93.6%)

Threshold costs 0.3b (93.6%)

Counts
147 → 1
Compiler

Compiled 7472 to 5875 computations (21.4% saved)

simplify3.0ms (0.1%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
+-commutative_binary64
sub-neg_binary64
distribute-lft-neg-in_binary64
distribute-rgt-neg-in_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01528
12828
23528
33928
44228
54328
64128

end199.0ms (5.8%)

Compiler

Compiled 243 to 188 computations (22.6% saved)

Profiling

Loading profile data...