Details

Time bar (total: 12.0s)

analyze665.0ms (5.5%)

Algorithm
search
Search
TrueOtherFalseIter
0%99.9%0.1%0
0%99.9%0.1%1
0%99.9%0.1%2
49.9%49.9%0.1%3
49.9%49.9%0.1%4
49.9%49.9%0.1%5
74.9%25%0.1%6
74.9%25%0.1%7
74.9%25%0.1%8
87.4%12.5%0.1%9
87.4%12.5%0.1%10
87.4%12.5%0.1%11
93.6%6.2%0.1%12
93.6%6.2%0.1%13
93.6%6.2%0.1%14
Compiler

Compiled 27 to 21 computations (22.2% saved)

sample162.0ms (1.3%)

Algorithm
intervals
Results
48.0ms29×body4096valid
39.0ms177×body128valid
36.0ms24×body2048valid
12.0ms13×body1024valid
6.0msbody512valid
2.0msbody256valid
Compiler

Compiled 56 to 44 computations (21.4% saved)

simplify81.0ms (0.7%)

Algorithm
egg-herbie
Rules
652×div-sub_binary64
554×fma-neg_binary64
550×hypot-def_binary64
431×fma-def_binary64
378×cancel-sign-sub-inv_binary64
Counts
1 → 2
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
02036
14425
29625
326425
470625
5222325
6417525
7482525
8498325

prune9.0ms (0.1%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
12.2b
Counts
3 → 2
Alt Table
StatusErrorProgram
30.1b
(*.f64 180 (/.f64 (atan.f64 (*.f64 (/.f64 1 B) (-.f64 (-.f64 C A) (sqrt.f64 (+.f64 (pow.f64 (-.f64 A C) 2) (pow.f64 B 2)))))) PI.f64))
12.3b
(*.f64 180 (/.f64 (atan.f64 (/.f64 (-.f64 (-.f64 C A) (hypot.f64 B (-.f64 C A))) B)) PI.f64))
Compiler

Compiled 132 to 91 computations (31.1% saved)

localize20.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(atan.f64 (/.f64 (-.f64 (-.f64 C A) (hypot.f64 B (-.f64 C A))) B))
0.0b
(/.f64 (atan.f64 (/.f64 (-.f64 (-.f64 C A) (hypot.f64 B (-.f64 C A))) B)) PI.f64)
0.0b
(/.f64 (-.f64 (-.f64 C A) (hypot.f64 B (-.f64 C A))) B)
1.1b
(-.f64 (-.f64 C A) (hypot.f64 B (-.f64 C A)))

rewrite74.0ms (0.6%)

Algorithm
rewrite-expression-head
Rules
73×*-un-lft-identity_binary64
58×add-sqr-sqrt_binary64
40×add-cube-cbrt_binary64
27×times-frac_binary64
24×prod-diff_binary64
Counts
4 → 136
Calls

4 calls:

23.0ms
(/.f64 (-.f64 (-.f64 C A) (hypot.f64 B (-.f64 C A))) B)
14.0ms
(-.f64 (-.f64 C A) (hypot.f64 B (-.f64 C A)))
12.0ms
(atan.f64 (/.f64 (-.f64 (-.f64 C A) (hypot.f64 B (-.f64 C A))) B))
7.0ms
(/.f64 (atan.f64 (/.f64 (-.f64 (-.f64 C A) (hypot.f64 B (-.f64 C A))) B)) PI.f64)

series339.0ms (2.8%)

Counts
4 → 144
Calls

4 calls:

139.0ms
(/.f64 (-.f64 (-.f64 C A) (hypot.f64 B (-.f64 C A))) B)
107.0ms
(-.f64 (-.f64 C A) (hypot.f64 B (-.f64 C A)))
80.0ms
(/.f64 (atan.f64 (/.f64 (-.f64 (-.f64 C A) (hypot.f64 B (-.f64 C A))) B)) PI.f64)
11.0ms
(atan.f64 (/.f64 (-.f64 (-.f64 C A) (hypot.f64 B (-.f64 C A))) B))

simplify389.0ms (3.2%)

Algorithm
egg-herbie
Rules
605×fma-def_binary64
336×associate-/l*_binary64
232×times-frac_binary64
204×sub-neg_binary64
193×associate-/r*_binary64
Counts
280 → 465
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
06379182
118598041
248948039
349878039

prune524.0ms (4.4%)

Pruning

8 alts after pruning (8 fresh and 0 done)

PrunedKeptTotal
New4578465
Fresh101
Picked101
Done000
Total4598467
Error
0.2b
Counts
467 → 8
Alt Table
StatusErrorProgram
12.7b
(*.f64 180 (/.f64 (atan.f64 (/.f64 (/.f64 (-.f64 (-.f64 C A) (hypot.f64 B (-.f64 C A))) (*.f64 (cbrt.f64 B) (cbrt.f64 B))) (cbrt.f64 B))) PI.f64))
54.3b
(*.f64 180 (/.f64 (atan.f64 (fma.f64 1/2 (+.f64 (/.f64 C (/.f64 (*.f64 A A) B)) (+.f64 (/.f64 B A) (/.f64 (*.f64 B (*.f64 C C)) (pow.f64 A 3)))) (*.f64 (/.f64 (pow.f64 B 3) (pow.f64 A 3)) -1/8))) PI.f64))
19.5b
(*.f64 180 (/.f64 (atan.f64 (-.f64 (/.f64 (-.f64 C A) B) (/.f64 (hypot.f64 B (-.f64 C A)) B))) PI.f64))
48.4b
(*.f64 180 (/.f64 (atan.f64 (/.f64 (*.f64 1/2 (+.f64 (/.f64 (*.f64 (*.f64 B B) C) (*.f64 A A)) (/.f64 (*.f64 B B) A))) B)) PI.f64))
48.4b
(*.f64 180 (/.f64 (atan.f64 (/.f64 (*.f64 -1/2 (/.f64 (pow.f64 B 2) C)) B)) PI.f64))
12.3b
(*.f64 180 (/.f64 1 (/.f64 PI.f64 (atan.f64 (/.f64 (-.f64 (-.f64 C A) (hypot.f64 B (-.f64 C A))) B)))))
47.3b
(*.f64 180 (/.f64 (atan.f64 (*.f64 1/2 (/.f64 B A))) PI.f64))
47.0b
(*.f64 180 (/.f64 (atan.f64 (*.f64 -1/2 (/.f64 B C))) PI.f64))
Compiler

Compiled 11897 to 5025 computations (57.8% saved)

localize21.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(atan.f64 (/.f64 (-.f64 (-.f64 C A) (hypot.f64 B (-.f64 C A))) B))
0.0b
(/.f64 1 (/.f64 PI.f64 (atan.f64 (/.f64 (-.f64 (-.f64 C A) (hypot.f64 B (-.f64 C A))) B))))
0.0b
(/.f64 (-.f64 (-.f64 C A) (hypot.f64 B (-.f64 C A))) B)
1.1b
(-.f64 (-.f64 C A) (hypot.f64 B (-.f64 C A)))

rewrite22.0ms (0.2%)

Algorithm
rewrite-expression-head
Rules
75×times-frac_binary64
43×*-un-lft-identity_binary64
43×add-sqr-sqrt_binary64
43×add-cube-cbrt_binary64
13×associate-/r*_binary64
Counts
1 → 78
Calls

1 calls:

8.0ms
(/.f64 1 (/.f64 PI.f64 (atan.f64 (/.f64 (-.f64 (-.f64 C A) (hypot.f64 B (-.f64 C A))) B))))

series82.0ms (0.7%)

Counts
1 → 36
Calls

1 calls:

82.0ms
(/.f64 1 (/.f64 PI.f64 (atan.f64 (/.f64 (-.f64 (-.f64 C A) (hypot.f64 B (-.f64 C A))) B))))

simplify633.0ms (5.3%)

Algorithm
egg-herbie
Rules
994×fma-def_binary64
946×fabs-mul_binary64
831×fma-neg_binary64
459×unswap-sqr_binary64
331×pow-sqr_binary64
Counts
114 → 191
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01043954
11903661
24553634
39533634
413403634
517183634
621943634
727123634
832173634
943423634
1049103634
1145463634
1247463634
1349733634

prune622.0ms (5.2%)

Pruning

9 alts after pruning (8 fresh and 1 done)

PrunedKeptTotal
New5583561
Fresh257
Picked011
Done000
Total5609569
Error
0.2b
Counts
569 → 9
Alt Table
StatusErrorProgram
19.5b
(*.f64 180 (/.f64 (atan.f64 (-.f64 (/.f64 (-.f64 C A) B) (/.f64 (hypot.f64 B (-.f64 C A)) B))) PI.f64))
48.4b
(*.f64 180 (/.f64 (atan.f64 (/.f64 (*.f64 1/2 (+.f64 (/.f64 (*.f64 (*.f64 B B) C) (*.f64 A A)) (/.f64 (*.f64 B B) A))) B)) PI.f64))
12.3b
(*.f64 180 (/.f64 1 (/.f64 PI.f64 (atan.f64 (/.f64 (-.f64 (-.f64 C A) (hypot.f64 B (-.f64 C A))) B)))))
12.7b
(*.f64 180 (/.f64 (atan.f64 (/.f64 (/.f64 (-.f64 (-.f64 C A) (hypot.f64 B (-.f64 C A))) (*.f64 (cbrt.f64 B) (cbrt.f64 B))) (cbrt.f64 B))) PI.f64))
48.4b
(*.f64 180 (/.f64 1 (/.f64 PI.f64 (atan.f64 (/.f64 (*.f64 -1/2 (/.f64 (*.f64 B B) C)) B)))))
47.3b
(*.f64 180 (/.f64 (atan.f64 (*.f64 1/2 (/.f64 B A))) PI.f64))
47.0b
(*.f64 180 (/.f64 (atan.f64 (*.f64 -1/2 (/.f64 B C))) PI.f64))
47.4b
(*.f64 180 (/.f64 1 (/.f64 PI.f64 (atan.f64 (*.f64 1/2 (/.f64 B A))))))
54.3b
(*.f64 180 (/.f64 1 (/.f64 PI.f64 (atan.f64 (fma.f64 1/2 (+.f64 (/.f64 C (/.f64 (*.f64 A A) B)) (+.f64 (/.f64 B A) (/.f64 (*.f64 B (*.f64 C C)) (pow.f64 A 3)))) (*.f64 (/.f64 (pow.f64 B 3) (pow.f64 A 3)) -1/8))))))
Compiler

Compiled 14762 to 6196 computations (58% saved)

localize26.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.6b
(cbrt.f64 B)
0.6b
(cbrt.f64 B)
0.6b
(cbrt.f64 B)
1.1b
(-.f64 (-.f64 C A) (hypot.f64 B (-.f64 C A)))

rewrite2.0ms (0%)

Algorithm
rewrite-expression-head
Rules
cbrt-prod_binary64
*-un-lft-identity_binary64
add-sqr-sqrt_binary64
add-cube-cbrt_binary64
add-cbrt-cube_binary64
Counts
1 → 13
Calls

1 calls:

1.0ms
(cbrt.f64 B)

series440.0ms (3.7%)

Counts
1 → 12
Calls

1 calls:

439.0ms
(cbrt.f64 B)

simplify110.0ms (0.9%)

Algorithm
egg-herbie
Rules
610×associate-/l/_binary64
374×log-prod_binary64
316×distribute-rgt-neg-in_binary64
314×distribute-lft-neg-in_binary64
287×*-commutative_binary64
Counts
25 → 42
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
024141
138137
286137
3208137
4626133
51904133
62565133
73552133
84861133

prune319.0ms (2.6%)

Pruning

10 alts after pruning (9 fresh and 1 done)

PrunedKeptTotal
New5002502
Fresh077
Picked101
Done011
Total50110511
Error
0.2b
Counts
511 → 10
Alt Table
StatusErrorProgram
19.5b
(*.f64 180 (/.f64 (atan.f64 (-.f64 (/.f64 (-.f64 C A) B) (/.f64 (hypot.f64 B (-.f64 C A)) B))) PI.f64))
48.4b
(*.f64 180 (/.f64 (atan.f64 (/.f64 (*.f64 1/2 (+.f64 (/.f64 (*.f64 (*.f64 B B) C) (*.f64 A A)) (/.f64 (*.f64 B B) A))) B)) PI.f64))
12.3b
(*.f64 180 (/.f64 1 (/.f64 PI.f64 (atan.f64 (/.f64 (-.f64 (-.f64 C A) (hypot.f64 B (-.f64 C A))) B)))))
48.4b
(*.f64 180 (/.f64 1 (/.f64 PI.f64 (atan.f64 (/.f64 (*.f64 -1/2 (/.f64 (*.f64 B B) C)) B)))))
47.3b
(*.f64 180 (/.f64 (atan.f64 (*.f64 1/2 (/.f64 B A))) PI.f64))
47.0b
(*.f64 180 (/.f64 (atan.f64 (*.f64 -1/2 (/.f64 B C))) PI.f64))
47.4b
(*.f64 180 (/.f64 1 (/.f64 PI.f64 (atan.f64 (*.f64 1/2 (/.f64 B A))))))
48.4b
(*.f64 180 (/.f64 (atan.f64 (/.f64 (/.f64 (*.f64 -1/2 (/.f64 (pow.f64 B 2) C)) (*.f64 (cbrt.f64 B) (cbrt.f64 B))) (cbrt.f64 B))) PI.f64))
12.8b
(*.f64 180 (/.f64 (atan.f64 (/.f64 (/.f64 (-.f64 (-.f64 C A) (hypot.f64 B (-.f64 C A))) (*.f64 (*.f64 (*.f64 (cbrt.f64 (cbrt.f64 B)) (cbrt.f64 (cbrt.f64 B))) (cbrt.f64 (cbrt.f64 B))) (cbrt.f64 B))) (cbrt.f64 B))) PI.f64))
54.3b
(*.f64 180 (/.f64 1 (/.f64 PI.f64 (atan.f64 (fma.f64 1/2 (+.f64 (/.f64 C (/.f64 (*.f64 A A) B)) (+.f64 (/.f64 B A) (/.f64 (*.f64 B (*.f64 C C)) (pow.f64 A 3)))) (*.f64 (/.f64 (pow.f64 B 3) (pow.f64 A 3)) -1/8))))))
Compiler

Compiled 7931 to 3287 computations (58.6% saved)

localize34.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.6b
(cbrt.f64 B)
0.6b
(cbrt.f64 B)
0.6b
(cbrt.f64 B)
1.1b
(-.f64 (-.f64 C A) (hypot.f64 B (-.f64 C A)))

rewrite0.0ms (0%)

Algorithm
rewrite-expression-head
Counts
0 → 0

series0.0ms (0%)

Counts
0 → 0

simplify51.0ms (0.4%)

Algorithm
egg-herbie
Counts
0 → 0
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
000
100

prune347.0ms (2.9%)

Pruning

10 alts after pruning (8 fresh and 2 done)

PrunedKeptTotal
New184401844
Fresh088
Picked011
Done011
Total1844101854
Error
0.2b
Counts
1854 → 10
Alt Table
StatusErrorProgram
19.5b
(*.f64 180 (/.f64 (atan.f64 (-.f64 (/.f64 (-.f64 C A) B) (/.f64 (hypot.f64 B (-.f64 C A)) B))) PI.f64))
48.4b
(*.f64 180 (/.f64 (atan.f64 (/.f64 (*.f64 1/2 (+.f64 (/.f64 (*.f64 (*.f64 B B) C) (*.f64 A A)) (/.f64 (*.f64 B B) A))) B)) PI.f64))
12.3b
(*.f64 180 (/.f64 1 (/.f64 PI.f64 (atan.f64 (/.f64 (-.f64 (-.f64 C A) (hypot.f64 B (-.f64 C A))) B)))))
48.4b
(*.f64 180 (/.f64 1 (/.f64 PI.f64 (atan.f64 (/.f64 (*.f64 -1/2 (/.f64 (*.f64 B B) C)) B)))))
47.3b
(*.f64 180 (/.f64 (atan.f64 (*.f64 1/2 (/.f64 B A))) PI.f64))
47.0b
(*.f64 180 (/.f64 (atan.f64 (*.f64 -1/2 (/.f64 B C))) PI.f64))
47.4b
(*.f64 180 (/.f64 1 (/.f64 PI.f64 (atan.f64 (*.f64 1/2 (/.f64 B A))))))
48.4b
(*.f64 180 (/.f64 (atan.f64 (/.f64 (/.f64 (*.f64 -1/2 (/.f64 (pow.f64 B 2) C)) (*.f64 (cbrt.f64 B) (cbrt.f64 B))) (cbrt.f64 B))) PI.f64))
12.8b
(*.f64 180 (/.f64 (atan.f64 (/.f64 (/.f64 (-.f64 (-.f64 C A) (hypot.f64 B (-.f64 C A))) (*.f64 (*.f64 (*.f64 (cbrt.f64 (cbrt.f64 B)) (cbrt.f64 (cbrt.f64 B))) (cbrt.f64 (cbrt.f64 B))) (cbrt.f64 B))) (cbrt.f64 B))) PI.f64))
54.3b
(*.f64 180 (/.f64 1 (/.f64 PI.f64 (atan.f64 (fma.f64 1/2 (+.f64 (/.f64 C (/.f64 (*.f64 A A) B)) (+.f64 (/.f64 B A) (/.f64 (*.f64 B (*.f64 C C)) (pow.f64 A 3)))) (*.f64 (/.f64 (pow.f64 B 3) (pow.f64 A 3)) -1/8))))))
Compiler

Compiled 9423 to 3295 computations (65% saved)

regimes1.6s (13.1%)

Accuracy

Total 10.9b remaining (96.5%)

Threshold costs 0b (0%)

Compiler

Compiled 16067 to 11566 computations (28% saved)

bsearch8.0ms (0.1%)

Compiler

Compiled 21 to 15 computations (28.6% saved)

simplify14.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
042155
157155
270155
378155
482155
581155

end3.0ms (0%)

Compiler

Compiled 103 to 54 computations (47.6% saved)

sample5.5s (45.3%)

Algorithm
intervals
Results
1.5s860×body4096valid
1.3s5422×body128valid
1.1s852×body2048valid
497.0ms493×body1024valid
191.0ms253×body512valid
59.0ms120×body256valid
Compiler

Compiled 363 to 237 computations (34.7% saved)

Profiling

Loading profile data...