Details

Time bar (total: 10.3s)

analyze305.0ms (3%)

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)

sample4.0s (39.3%)

Results
1.2s5602×body128valid
1.2s900×body4096valid
916.0ms891×body2048valid
358.0ms486×body1024valid
181.0ms122×body256valid
143.0ms255×body512valid
Compiler

Compiled 80 to 62 computations (22.5% saved)

simplify64.0ms (0.6%)

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

prune5.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
13.6b
Counts
3 → 2
Alt Table
StatusErrorProgram
30.2b
(*.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)))
13.7b
(*.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)

localize10.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(/.f64 (-.f64 (-.f64 C A) (hypot.f64 B (-.f64 C A))) B)
0.0b
(*.f64 180 (/.f64 (atan.f64 (/.f64 (-.f64 (-.f64 C A) (hypot.f64 B (-.f64 C A))) B)) (PI.f64)))
0.0b
(/.f64 (atan.f64 (/.f64 (-.f64 (-.f64 C A) (hypot.f64 B (-.f64 C A))) B)) (PI.f64))
0.7b
(-.f64 (-.f64 C A) (hypot.f64 B (-.f64 C A)))

series165.0ms (1.6%)

Counts
4 → 144
Calls

4 calls:

57.0ms
(/.f64 (-.f64 (-.f64 C A) (hypot.f64 B (-.f64 C A))) B)
44.0ms
(-.f64 (-.f64 C A) (hypot.f64 B (-.f64 C A)))
37.0ms
(*.f64 180 (/.f64 (atan.f64 (/.f64 (-.f64 (-.f64 C A) (hypot.f64 B (-.f64 C A))) B)) (PI.f64)))
26.0ms
(/.f64 (atan.f64 (/.f64 (-.f64 (-.f64 C A) (hypot.f64 B (-.f64 C A))) B)) (PI.f64))

rewrite80.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
285×expm1-udef_binary64
285×log1p-udef_binary64
156×add-sqr-sqrt_binary64
150×log1p-expm1-u_binary64
150×expm1-log1p-u_binary64
Counts
4 → 140
Calls

4 calls:

77.0ms
(/.f64 (-.f64 (-.f64 C A) (hypot.f64 B (-.f64 C A))) B)
77.0ms
(*.f64 180 (/.f64 (atan.f64 (/.f64 (-.f64 (-.f64 C A) (hypot.f64 B (-.f64 C A))) B)) (PI.f64)))
77.0ms
(/.f64 (atan.f64 (/.f64 (-.f64 (-.f64 C A) (hypot.f64 B (-.f64 C A))) B)) (PI.f64))
77.0ms
(-.f64 (-.f64 C A) (hypot.f64 B (-.f64 C A)))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01376
129976
2419576
3502276
000
100

simplify91.0ms (0.9%)

Algorithm
egg-herbie
Rules
464×fma-def_binary64
266×associate-+l+_binary64
252×associate--r+_binary64
231×associate-/l*_binary64
224×associate--l+_binary64
Counts
284 → 276
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
04475489
115065060
252605060

prune257.0ms (2.5%)

Pruning

6 alts after pruning (6 fresh and 0 done)

PrunedKeptTotal
New2706276
Fresh101
Picked101
Done000
Total2726278
Error
0.2b
Counts
278 → 6
Alt Table
StatusErrorProgram
55.7b
(*.f64 180 (/.f64 (atan.f64 (/.f64 (fma.f64 1/2 (/.f64 (*.f64 (*.f64 B B) (*.f64 C C)) (pow.f64 A 3)) (fma.f64 1/2 (+.f64 (/.f64 (*.f64 (*.f64 B B) C) (*.f64 A A)) (/.f64 (*.f64 B B) A)) (*.f64 (/.f64 (pow.f64 B 4) (pow.f64 A 3)) -1/8))) B)) (PI.f64)))
51.8b
(*.f64 180 (/.f64 (atan.f64 (fma.f64 1/2 (/.f64 C (/.f64 (*.f64 A A) B)) (fma.f64 1/2 (+.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)))
22.0b
(*.f64 180 (/.f64 (atan.f64 (/.f64 (fma.f64 (pow.f64 (cbrt.f64 (-.f64 C A)) 2) (cbrt.f64 (-.f64 C A)) (neg.f64 (hypot.f64 B (-.f64 C A)))) B)) (PI.f64)))
45.9b
(*.f64 180 (/.f64 (atan.f64 (*.f64 1/2 (/.f64 B A))) (PI.f64)))
47.5b
(*.f64 180 (/.f64 (atan.f64 (*.f64 -1/2 (/.f64 B C))) (PI.f64)))
13.7b
(*.f64 180 (/.f64 (atan.f64 (pow.f64 (/.f64 B (-.f64 (-.f64 C A) (hypot.f64 B (-.f64 C A)))) -1)) (PI.f64)))
Compiler

Compiled 9397 to 4634 computations (50.7% saved)

localize12.0ms (0.1%)

Local error

Found 4 expressions with local error:

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

series977.0ms (9.5%)

Counts
3 → 108
Calls

3 calls:

807.0ms
(pow.f64 (/.f64 B (-.f64 (-.f64 C A) (hypot.f64 B (-.f64 C A)))) -1)
132.0ms
(/.f64 B (-.f64 (-.f64 C A) (hypot.f64 B (-.f64 C A))))
35.0ms
(/.f64 (atan.f64 (pow.f64 (/.f64 B (-.f64 (-.f64 C A) (hypot.f64 B (-.f64 C A)))) -1)) (PI.f64))

rewrite75.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
273×expm1-udef_binary64
273×log1p-udef_binary64
253×fma-neg_binary64
153×add-sqr-sqrt_binary64
147×log1p-expm1-u_binary64
Counts
3 → 117
Calls

3 calls:

71.0ms
(/.f64 B (-.f64 (-.f64 C A) (hypot.f64 B (-.f64 C A))))
71.0ms
(/.f64 (atan.f64 (pow.f64 (/.f64 B (-.f64 (-.f64 C A) (hypot.f64 B (-.f64 C A)))) -1)) (PI.f64))
71.0ms
(pow.f64 (/.f64 B (-.f64 (-.f64 C A) (hypot.f64 B (-.f64 C A)))) -1)
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01360
129554
2396954
3502654
000
100

simplify309.0ms (3%)

Algorithm
egg-herbie
Rules
537×*-commutative_binary64
359×associate-+r+_binary64
338×fma-def_binary64
223×associate-/l*_binary64
198×associate-*r*_binary64
Counts
225 → 245
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0139325353
1499825353
2501925353

prune646.0ms (6.3%)

Pruning

6 alts after pruning (5 fresh and 1 done)

PrunedKeptTotal
New3562358
Fresh235
Picked011
Done000
Total3586364
Error
0.2b
Counts
364 → 6
Alt Table
StatusErrorProgram
47.3b
(*.f64 180 (/.f64 (atan.f64 (pow.f64 (/.f64 B (*.f64 1/2 (+.f64 (/.f64 (*.f64 (*.f64 B B) C) (*.f64 A A)) (/.f64 (*.f64 B B) A)))) -1)) (PI.f64)))
47.5b
(*.f64 180 (/.f64 (atan.f64 (*.f64 -1/2 (/.f64 B C))) (PI.f64)))
22.0b
(*.f64 180 (/.f64 (atan.f64 (/.f64 (fma.f64 (pow.f64 (cbrt.f64 (-.f64 C A)) 2) (cbrt.f64 (-.f64 C A)) (neg.f64 (hypot.f64 B (-.f64 C A)))) B)) (PI.f64)))
40.8b
(*.f64 180 (/.f64 (atan.f64 (pow.f64 (*.f64 2 (-.f64 (/.f64 A B) (/.f64 C B))) -1)) (PI.f64)))
45.9b
(*.f64 180 (/.f64 (atan.f64 (*.f64 1/2 (/.f64 B A))) (PI.f64)))
13.7b
(*.f64 180 (/.f64 (atan.f64 (pow.f64 (/.f64 B (-.f64 (-.f64 C A) (hypot.f64 B (-.f64 C A)))) -1)) (PI.f64)))
Compiler

Compiled 40787 to 21087 computations (48.3% saved)

localize14.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(/.f64 (atan.f64 (/.f64 (fma.f64 (pow.f64 (cbrt.f64 (-.f64 C A)) 2) (cbrt.f64 (-.f64 C A)) (neg.f64 (hypot.f64 B (-.f64 C A)))) B)) (PI.f64))
0.5b
(pow.f64 (cbrt.f64 (-.f64 C A)) 2)
0.6b
(cbrt.f64 (-.f64 C A))
21.8b
(fma.f64 (pow.f64 (cbrt.f64 (-.f64 C A)) 2) (cbrt.f64 (-.f64 C A)) (neg.f64 (hypot.f64 B (-.f64 C A))))

series185.0ms (1.8%)

Counts
4 → 120
Calls

4 calls:

70.0ms
(fma.f64 (pow.f64 (cbrt.f64 (-.f64 C A)) 2) (cbrt.f64 (-.f64 C A)) (neg.f64 (hypot.f64 B (-.f64 C A))))
51.0ms
(/.f64 (atan.f64 (/.f64 (fma.f64 (pow.f64 (cbrt.f64 (-.f64 C A)) 2) (cbrt.f64 (-.f64 C A)) (neg.f64 (hypot.f64 B (-.f64 C A)))) B)) (PI.f64))
40.0ms
(pow.f64 (cbrt.f64 (-.f64 C A)) 2)
24.0ms
(cbrt.f64 (-.f64 C A))

rewrite101.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
745×prod-diff_binary64
230×egg-rr
163×add-sqr-sqrt_binary64
155×log1p-expm1-u_binary64
155×expm1-log1p-u_binary64
Counts
4 → 230
Calls

4 calls:

92.0ms
(/.f64 (atan.f64 (/.f64 (fma.f64 (pow.f64 (cbrt.f64 (-.f64 C A)) 2) (cbrt.f64 (-.f64 C A)) (neg.f64 (hypot.f64 B (-.f64 C A)))) B)) (PI.f64))
92.0ms
(pow.f64 (cbrt.f64 (-.f64 C A)) 2)
92.0ms
(cbrt.f64 (-.f64 C A))
92.0ms
(fma.f64 (pow.f64 (cbrt.f64 (-.f64 C A)) 2) (cbrt.f64 (-.f64 C A)) (neg.f64 (hypot.f64 B (-.f64 C A))))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01554
132350
2377650
3514450
000
100

simplify114.0ms (1.1%)

Algorithm
egg-herbie
Rules
475×fma-neg_binary64
347×fma-def_binary64
302×associate-*r*_binary64
228×+-commutative_binary64
224×associate-*l*_binary64
Counts
350 → 361
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
04014741
112734033
245624008
349754008

prune313.0ms (3.1%)

Pruning

6 alts after pruning (4 fresh and 2 done)

PrunedKeptTotal
New4181419
Fresh134
Picked011
Done011
Total4196425
Error
0.2b
Counts
425 → 6
Alt Table
StatusErrorProgram
47.3b
(*.f64 180 (/.f64 (atan.f64 (/.f64 (*.f64 1/2 (+.f64 (/.f64 (*.f64 B B) A) (/.f64 (*.f64 (*.f64 B B) C) (*.f64 A A)))) B)) (PI.f64)))
22.0b
(*.f64 180 (/.f64 (atan.f64 (/.f64 (fma.f64 (pow.f64 (cbrt.f64 (-.f64 C A)) 2) (cbrt.f64 (-.f64 C A)) (neg.f64 (hypot.f64 B (-.f64 C A)))) B)) (PI.f64)))
40.8b
(*.f64 180 (/.f64 (atan.f64 (pow.f64 (*.f64 2 (-.f64 (/.f64 A B) (/.f64 C B))) -1)) (PI.f64)))
45.9b
(*.f64 180 (/.f64 (atan.f64 (*.f64 1/2 (/.f64 B A))) (PI.f64)))
47.5b
(*.f64 180 (/.f64 (atan.f64 (*.f64 -1/2 (/.f64 B C))) (PI.f64)))
13.7b
(*.f64 180 (/.f64 (atan.f64 (pow.f64 (/.f64 B (-.f64 (-.f64 C A) (hypot.f64 B (-.f64 C A)))) -1)) (PI.f64)))
Compiler

Compiled 17288 to 7620 computations (55.9% saved)

localize11.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(/.f64 (atan.f64 (pow.f64 (*.f64 2 (-.f64 (/.f64 A B) (/.f64 C B))) -1)) (PI.f64))
0.2b
(*.f64 180 (/.f64 (atan.f64 (pow.f64 (*.f64 2 (-.f64 (/.f64 A B) (/.f64 C B))) -1)) (PI.f64)))
0.8b
(pow.f64 (*.f64 2 (-.f64 (/.f64 A B) (/.f64 C B))) -1)
2.1b
(-.f64 (/.f64 A B) (/.f64 C B))

series205.0ms (2%)

Counts
4 → 62
Calls

4 calls:

94.0ms
(*.f64 180 (/.f64 (atan.f64 (pow.f64 (*.f64 2 (-.f64 (/.f64 A B) (/.f64 C B))) -1)) (PI.f64)))
74.0ms
(/.f64 (atan.f64 (pow.f64 (*.f64 2 (-.f64 (/.f64 A B) (/.f64 C B))) -1)) (PI.f64))
26.0ms
(pow.f64 (*.f64 2 (-.f64 (/.f64 A B) (/.f64 C B))) -1)
11.0ms
(-.f64 (/.f64 A B) (/.f64 C B))

rewrite84.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
323×log1p-udef_binary64
181×add-sqr-sqrt_binary64
171×log1p-expm1-u_binary64
171×expm1-log1p-u_binary64
168×add-cbrt-cube_binary64
Counts
4 → 143
Calls

4 calls:

80.0ms
(/.f64 (atan.f64 (pow.f64 (*.f64 2 (-.f64 (/.f64 A B) (/.f64 C B))) -1)) (PI.f64))
80.0ms
(*.f64 180 (/.f64 (atan.f64 (pow.f64 (*.f64 2 (-.f64 (/.f64 A B) (/.f64 C B))) -1)) (PI.f64)))
80.0ms
(pow.f64 (*.f64 2 (-.f64 (/.f64 A B) (/.f64 C B))) -1)
80.0ms
(-.f64 (/.f64 A B) (/.f64 C B))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01661
135852
2478052
3520352
000
100

simplify71.0ms (0.7%)

Algorithm
egg-herbie
Rules
851×fma-neg_binary64
645×cancel-sign-sub-inv_binary64
360×times-frac_binary64
311×fma-def_binary64
278×distribute-rgt-neg-in_binary64
Counts
205 → 170
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0801096
12451040
2747953
32969953
44854953
55176953

prune118.0ms (1.2%)

Pruning

10 alts after pruning (8 fresh and 2 done)

PrunedKeptTotal
New1628170
Fresh303
Picked101
Done022
Total16610176
Error
0.1b
Counts
176 → 10
Alt Table
StatusErrorProgram
39.5b
(/.f64 (*.f64 180 (atan.f64 (/.f64 1/2 (/.f64 (-.f64 A C) B)))) (PI.f64))
39.1b
(*.f64 180 (/.f64 (atan.f64 (*.f64 1/2 (/.f64 B (-.f64 A C)))) (PI.f64)))
39.7b
(*.f64 180 (*.f64 (pow.f64 (cbrt.f64 (atan.f64 (/.f64 1/2 (/.f64 (-.f64 A C) B)))) 2) (*.f64 (cbrt.f64 (atan.f64 (/.f64 1/2 (/.f64 (-.f64 A C) B)))) (/.f64 1 (PI.f64)))))
39.7b
(pow.f64 (cbrt.f64 (*.f64 180 (/.f64 (atan.f64 (/.f64 1/2 (/.f64 (-.f64 A C) B))) (PI.f64)))) 3)
39.5b
(/.f64 1 (/.f64 (PI.f64) (*.f64 180 (atan.f64 (/.f64 1/2 (/.f64 (-.f64 A C) B))))))
39.5b
(/.f64 180 (/.f64 (PI.f64) (atan.f64 (/.f64 1/2 (/.f64 (-.f64 A C) B)))))
22.0b
(*.f64 180 (/.f64 (atan.f64 (/.f64 (fma.f64 (pow.f64 (cbrt.f64 (-.f64 C A)) 2) (cbrt.f64 (-.f64 C A)) (neg.f64 (hypot.f64 B (-.f64 C A)))) B)) (PI.f64)))
41.0b
(*.f64 180 (/.f64 (atan.f64 (pow.f64 (*.f64 2 (/.f64 (/.f64 (-.f64 (*.f64 A B) (*.f64 B C)) B) B)) -1)) (PI.f64)))
13.7b
(*.f64 180 (/.f64 (atan.f64 (pow.f64 (/.f64 B (-.f64 (-.f64 C A) (hypot.f64 B (-.f64 C A)))) -1)) (PI.f64)))
39.8b
(*.f64 180 (pow.f64 (cbrt.f64 (/.f64 (atan.f64 (/.f64 1/2 (/.f64 (-.f64 A C) B))) (PI.f64))) 3))
Compiler

Compiled 3522 to 2035 computations (42.2% saved)

regimes1.8s (17.8%)

Accuracy

Total 7.5b remaining (97.8%)

Threshold costs 0b (0%)

Counts
199 → 3
Compiler

Compiled 29048 to 21264 computations (26.8% saved)

bsearch7.0ms (0.1%)

Compiler

Compiled 21 to 15 computations (28.6% saved)

simplify5.0ms (0.1%)

Algorithm
egg-herbie
Rules
10×+-commutative_binary64
*-commutative_binary64
sub-neg_binary64
neg-sub0_binary64
neg-mul-1_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
045138
159138
272138
380138
484138
583138

end174.0ms (1.7%)

Compiler

Compiled 383 to 255 computations (33.4% saved)

Profiling

Loading profile data...