Details

Time bar (total: 4.5s)

analyze51.0ms (1.1%)

Algorithm
search
Search
TrueOtherFalseIter
0%99.9%0.1%0
0%99.9%0.1%1
50%50%0.1%2
50%50%0.1%3
50%25%25.1%4
50%25%25.1%5
50%12.5%37.6%6
50%12.5%37.6%7
50%6.2%43.8%8
50%6.2%43.8%9
50%3.1%46.9%10
50%3.1%46.9%11
50%1.6%48.5%12
50%1.6%48.5%13
50%0.8%49.3%14
Compiler

Compiled 17 to 14 computations (17.6% saved)

sample1.1s (25.6%)

Results
965.0ms8256×body128valid
14.0ms133×body128invalid
Compiler

Compiled 50 to 41 computations (18% saved)

simplify249.0ms (5.6%)

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

prune7.0ms (0.2%)

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.3b
(*.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)

localize17.0ms (0.4%)

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 1 (*.f64 x 9))
0.3b
(*.f64 3 (sqrt.f64 x))

series72.0ms (1.6%)

Counts
4 → 48
Calls

4 calls:

47.0ms
(*.f64 (*.f64 3 (sqrt.f64 x)) (-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1))
11.0ms
(*.f64 3 (sqrt.f64 x))
8.0ms
(+.f64 y (/.f64 1 (*.f64 x 9)))
6.0ms
(/.f64 1 (*.f64 x 9))

rewrite38.0ms (0.8%)

Algorithm
rewrite-expression-head
Rules
58×*-un-lft-identity_binary64
37×add-sqr-sqrt_binary64
30×prod-diff_binary64
29×add-cube-cbrt_binary64
22×add-exp-log_binary64
Counts
4 → 140
Calls

4 calls:

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

simplify119.0ms (2.7%)

Algorithm
egg-herbie
Rules
625×times-frac_binary64
456×distribute-rgt-in_binary64
422×distribute-lft-in_binary64
305×fma-def_binary64
289×associate-/l*_binary64
Counts
188 → 171
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01742841
14122251
212412225
350982225

prune309.0ms (6.9%)

Pruning

10 alts after pruning (10 fresh and 0 done)

PrunedKeptTotal
New16110171
Fresh101
Picked101
Done000
Total16310173
Error
0.0b
Counts
173 → 10
Alt Table
StatusErrorProgram
1.0b
(*.f64 (*.f64 (*.f64 3 (sqrt.f64 x)) (*.f64 (cbrt.f64 (-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1)) (cbrt.f64 (-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1)))) (cbrt.f64 (-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1)))
0.7b
(*.f64 (*.f64 (sqrt.f64 3) (*.f64 (sqrt.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 (/.f64 1 x) 9)) 1))
20.6b
(*.f64 (*.f64 3 (sqrt.f64 x)) (-.f64 (+.f64 y (cbrt.f64 (*.f64 (*.f64 (/.f64 1 (*.f64 x 9)) (/.f64 1 (*.f64 x 9))) (/.f64 1 (*.f64 x 9))))) 1))
0.6b
(*.f64 (*.f64 (*.f64 3 (sqrt.f64 (sqrt.f64 x))) (sqrt.f64 (sqrt.f64 x))) (-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1))
0.3b
(*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (-.f64 (/.f64 1/9 x) 1) y)))
0.6b
(*.f64 (*.f64 (sqrt.f64 (*.f64 3 (sqrt.f64 x))) (sqrt.f64 (*.f64 3 (sqrt.f64 x)))) (-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1))
17.1b
(*.f64 (cbrt.f64 (pow.f64 (*.f64 3 (sqrt.f64 x)) 3)) (-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1))
0.8b
(*.f64 (*.f64 (*.f64 3 (fabs.f64 (cbrt.f64 x))) (sqrt.f64 (cbrt.f64 x))) (-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1))
0.3b
(-.f64 (+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (*.f64 1/3 (sqrt.f64 (/.f64 1 x)))) (*.f64 3 (sqrt.f64 x)))
Compiler

Compiled 4313 to 3260 computations (24.4% saved)

localize10.0ms (0.2%)

Local error

Found 4 expressions with local error:

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

series35.0ms (0.8%)

Counts
3 → 0
Calls

3 calls:

17.0ms
(*.f64 3 (*.f64 y (sqrt.f64 x)))
11.0ms
(*.f64 y (sqrt.f64 x))
8.0ms
(*.f64 1/3 (sqrt.f64 (/.f64 1 x)))

rewrite19.0ms (0.4%)

Algorithm
rewrite-expression-head
Rules
29×add-sqr-sqrt_binary64
23×associate-*r*_binary64
20×sqrt-prod_binary64
17×*-un-lft-identity_binary64
16×add-cube-cbrt_binary64
Counts
3 → 81
Calls

3 calls:

7.0ms
(*.f64 1/3 (sqrt.f64 (/.f64 1 x)))
4.0ms
(*.f64 3 (*.f64 y (sqrt.f64 x)))
4.0ms
(*.f64 y (sqrt.f64 x))

simplify156.0ms (3.5%)

Algorithm
egg-herbie
Rules
923×fma-def_binary64
458×unswap-sqr_binary64
456×associate-*l*_binary64
344×*-commutative_binary64
324×associate-/r*_binary64
Counts
81 → 115
Iterations

Useful iterations: 5 (0.0ms)

IterNodesCost
0112894
1200843
2485842
31076842
41485842
52218801
62929801
73312801
84823801
94913801

prune233.0ms (5.2%)

Pruning

10 alts after pruning (10 fresh and 0 done)

PrunedKeptTotal
New1364140
Fresh369
Picked101
Done000
Total14010150
Error
0.0b
Counts
150 → 10
Alt Table
StatusErrorProgram
1.0b
(*.f64 (*.f64 (*.f64 3 (sqrt.f64 x)) (*.f64 (cbrt.f64 (-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1)) (cbrt.f64 (-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1)))) (cbrt.f64 (-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1)))
0.7b
(*.f64 (*.f64 (sqrt.f64 3) (*.f64 (sqrt.f64 3) (sqrt.f64 x))) (-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1))
0.4b
(-.f64 (+.f64 (*.f64 (*.f64 (cbrt.f64 3) (cbrt.f64 3)) (*.f64 (cbrt.f64 3) (*.f64 y (sqrt.f64 x)))) (*.f64 1/3 (sqrt.f64 (/.f64 1 x)))) (*.f64 3 (sqrt.f64 x)))
0.6b
(*.f64 (*.f64 (sqrt.f64 (*.f64 3 (sqrt.f64 x))) (sqrt.f64 (*.f64 3 (sqrt.f64 x)))) (-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1))
0.6b
(*.f64 (*.f64 (*.f64 3 (sqrt.f64 (sqrt.f64 x))) (sqrt.f64 (sqrt.f64 x))) (-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1))
0.3b
(*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (-.f64 (/.f64 1/9 x) 1) y)))
8.4b
(-.f64 (+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (*.f64 1/3 (sqrt.f64 (/.f64 1 x)))) (cbrt.f64 (pow.f64 (*.f64 3 (sqrt.f64 x)) 3)))
0.4b
(-.f64 (+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (*.f64 1/3 (sqrt.f64 (/.f64 1 x)))) (*.f64 (*.f64 3 (fabs.f64 (cbrt.f64 x))) (sqrt.f64 (cbrt.f64 x))))
0.4b
(*.f64 (*.f64 3 (sqrt.f64 x)) (-.f64 (+.f64 y (/.f64 (/.f64 1 x) 9)) 1))
0.3b
(-.f64 (+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (/.f64 1/3 (sqrt.f64 x))) (*.f64 3 (sqrt.f64 x)))
Compiler

Compiled 3727 to 2402 computations (35.6% saved)

localize10.0ms (0.2%)

Local error

Found 4 expressions with local error:

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

series16.0ms (0.4%)

Counts
1 → 0
Calls

1 calls:

16.0ms
(/.f64 1/3 (sqrt.f64 x))

rewrite5.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
18×times-frac_binary64
16×*-un-lft-identity_binary64
16×add-sqr-sqrt_binary64
16×add-cube-cbrt_binary64
12×sqrt-prod_binary64
Counts
1 → 41
Calls

1 calls:

3.0ms
(/.f64 1/3 (sqrt.f64 x))

simplify112.0ms (2.5%)

Algorithm
egg-herbie
Rules
1051×fma-neg_binary64
416×unswap-sqr_binary64
375×associate-/l/_binary64
356×times-frac_binary64
325×associate-/l*_binary64
Counts
41 → 45
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
068540
1101514
2165514
3221514
4353514
5469514
6645514
71189514
82252514
92826514
103214514
114235514
124855514

prune236.0ms (5.3%)

Pruning

10 alts after pruning (9 fresh and 1 done)

PrunedKeptTotal
New1320132
Fresh099
Picked011
Done000
Total13210142
Error
0.0b
Counts
142 → 10
Alt Table
StatusErrorProgram
1.0b
(*.f64 (*.f64 (*.f64 3 (sqrt.f64 x)) (*.f64 (cbrt.f64 (-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1)) (cbrt.f64 (-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1)))) (cbrt.f64 (-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1)))
0.7b
(*.f64 (*.f64 (sqrt.f64 3) (*.f64 (sqrt.f64 3) (sqrt.f64 x))) (-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1))
0.4b
(-.f64 (+.f64 (*.f64 (*.f64 (cbrt.f64 3) (cbrt.f64 3)) (*.f64 (cbrt.f64 3) (*.f64 y (sqrt.f64 x)))) (*.f64 1/3 (sqrt.f64 (/.f64 1 x)))) (*.f64 3 (sqrt.f64 x)))
0.6b
(*.f64 (*.f64 (sqrt.f64 (*.f64 3 (sqrt.f64 x))) (sqrt.f64 (*.f64 3 (sqrt.f64 x)))) (-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1))
0.6b
(*.f64 (*.f64 (*.f64 3 (sqrt.f64 (sqrt.f64 x))) (sqrt.f64 (sqrt.f64 x))) (-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1))
0.3b
(*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (-.f64 (/.f64 1/9 x) 1) y)))
8.4b
(-.f64 (+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (*.f64 1/3 (sqrt.f64 (/.f64 1 x)))) (cbrt.f64 (pow.f64 (*.f64 3 (sqrt.f64 x)) 3)))
0.4b
(-.f64 (+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (*.f64 1/3 (sqrt.f64 (/.f64 1 x)))) (*.f64 (*.f64 3 (fabs.f64 (cbrt.f64 x))) (sqrt.f64 (cbrt.f64 x))))
0.4b
(*.f64 (*.f64 3 (sqrt.f64 x)) (-.f64 (+.f64 y (/.f64 (/.f64 1 x) 9)) 1))
0.3b
(-.f64 (+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (/.f64 1/3 (sqrt.f64 x))) (*.f64 3 (sqrt.f64 x)))
Compiler

Compiled 3274 to 1851 computations (43.5% saved)

localize8.0ms (0.2%)

Local error

Found 4 expressions with local error:

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

series60.0ms (1.3%)

Counts
4 → 48
Calls

4 calls:

30.0ms
(*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (-.f64 (/.f64 1/9 x) 1) y)))
21.0ms
(*.f64 (sqrt.f64 x) (+.f64 (-.f64 (/.f64 1/9 x) 1) y))
7.0ms
(+.f64 (-.f64 (/.f64 1/9 x) 1) y)
2.0ms
(/.f64 1/9 x)

rewrite88.0ms (2%)

Algorithm
rewrite-expression-head
Rules
67×add-sqr-sqrt_binary64
66×*-un-lft-identity_binary64
52×add-cube-cbrt_binary64
43×associate-+l+_binary64
39×prod-diff_binary64
Counts
4 → 155
Calls

4 calls:

23.0ms
(*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (-.f64 (/.f64 1/9 x) 1) y)))
20.0ms
(*.f64 (sqrt.f64 x) (+.f64 (-.f64 (/.f64 1/9 x) 1) y))
17.0ms
(+.f64 (-.f64 (/.f64 1/9 x) 1) y)
3.0ms
(/.f64 1/9 x)

simplify124.0ms (2.8%)

Algorithm
egg-herbie
Rules
922×distribute-rgt-in_binary64
905×distribute-lft-in_binary64
285×fma-def_binary64
119×associate-*l*_binary64
117×associate-*r*_binary64
Counts
203 → 220
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01782465
13822234
212272200
352472200

prune384.0ms (8.6%)

Pruning

10 alts after pruning (8 fresh and 2 done)

PrunedKeptTotal
New2191220
Fresh178
Picked011
Done011
Total22010230
Error
0.0b
Counts
230 → 10
Alt Table
StatusErrorProgram
1.0b
(*.f64 (*.f64 (*.f64 3 (sqrt.f64 x)) (*.f64 (cbrt.f64 (-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1)) (cbrt.f64 (-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1)))) (cbrt.f64 (-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1)))
0.7b
(*.f64 (*.f64 (sqrt.f64 3) (*.f64 (sqrt.f64 3) (sqrt.f64 x))) (-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1))
0.4b
(-.f64 (+.f64 (*.f64 (*.f64 (cbrt.f64 3) (cbrt.f64 3)) (*.f64 (cbrt.f64 3) (*.f64 y (sqrt.f64 x)))) (*.f64 1/3 (sqrt.f64 (/.f64 1 x)))) (*.f64 3 (sqrt.f64 x)))
0.6b
(*.f64 (*.f64 (sqrt.f64 (*.f64 3 (sqrt.f64 x))) (sqrt.f64 (*.f64 3 (sqrt.f64 x)))) (-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1))
0.6b
(*.f64 (*.f64 (*.f64 3 (sqrt.f64 (sqrt.f64 x))) (sqrt.f64 (sqrt.f64 x))) (-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1))
0.3b
(*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (-.f64 (/.f64 1/9 x) 1) y)))
8.4b
(-.f64 (+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (*.f64 1/3 (sqrt.f64 (/.f64 1 x)))) (cbrt.f64 (pow.f64 (*.f64 3 (sqrt.f64 x)) 3)))
0.4b
(-.f64 (+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (*.f64 1/3 (sqrt.f64 (/.f64 1 x)))) (*.f64 (*.f64 3 (fabs.f64 (cbrt.f64 x))) (sqrt.f64 (cbrt.f64 x))))
0.4b
(*.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 (-.f64 (/.f64 1/9 x) 1) y))
0.3b
(-.f64 (+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (/.f64 1/3 (sqrt.f64 x))) (*.f64 3 (sqrt.f64 x)))
Compiler

Compiled 5154 to 3795 computations (26.4% saved)

regimes796.0ms (17.7%)

Accuracy

Total 0.3b remaining (89.4%)

Threshold costs 0.3b (89.4%)

Counts
161 → 1
Compiler

Compiled 10211 to 7960 computations (22% saved)

simplify5.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
01628
13028
23728
34128
44428
54528
64328

end178.0ms (4%)

Compiler

Compiled 264 to 205 computations (22.3% saved)

Profiling

Loading profile data...