Details

Time bar (total: 9.4s)

analyze315.0ms (3.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 (42.6%)

Results
1.2s5629×body128valid
1.1s878×body4096valid
1.0s875×body2048valid
414.0ms503×body1024valid
146.0ms251×body512valid
55.0ms120×body256valid
Compiler

Compiled 80 to 62 computations (22.5% saved)

simplify62.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

prune5.0ms (0.1%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
13.1b
Counts
3 → 2
Alt Table
StatusErrorProgram
13.2b
(*.f64 180 (/.f64 (atan.f64 (/.f64 (-.f64 (-.f64 C A) (hypot.f64 B (-.f64 C A))) B)) (PI.f64)))
29.3b
(*.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)))
Compiler

Compiled 132 to 91 computations (31.1% saved)

localize11.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
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)
0.0b
(*.f64 180 (/.f64 (atan.f64 (/.f64 (-.f64 (-.f64 C A) (hypot.f64 B (-.f64 C A))) B)) (PI.f64)))
0.5b
(-.f64 (-.f64 C A) (hypot.f64 B (-.f64 C A)))

series163.0ms (1.7%)

Counts
4 → 144
Calls

4 calls:

56.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)))
36.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))

rewrite43.0ms (0.5%)

Algorithm
rewrite-expression-head
Rules
81×*-un-lft-identity_binary64
71×add-sqr-sqrt_binary64
48×add-cube-cbrt_binary64
37×times-frac_binary64
24×prod-diff_binary64
Counts
4 → 161
Calls

4 calls:

10.0ms
(/.f64 (-.f64 (-.f64 C A) (hypot.f64 B (-.f64 C A))) B)
8.0ms
(-.f64 (-.f64 C A) (hypot.f64 B (-.f64 C A)))
7.0ms
(*.f64 180 (/.f64 (atan.f64 (/.f64 (-.f64 (-.f64 C A) (hypot.f64 B (-.f64 C A))) B)) (PI.f64)))
4.0ms
(/.f64 (atan.f64 (/.f64 (-.f64 (-.f64 C A) (hypot.f64 B (-.f64 C A))) B)) (PI.f64))

simplify152.0ms (1.6%)

Algorithm
egg-herbie
Rules
605×fma-def_binary64
355×associate-/l*_binary64
238×times-frac_binary64
205×sub-neg_binary64
198×associate-/r*_binary64
Counts
305 → 377
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
067410323
119509081
249719081

prune407.0ms (4.3%)

Pruning

7 alts after pruning (7 fresh and 0 done)

PrunedKeptTotal
New3707377
Fresh101
Picked101
Done000
Total3727379
Error
0.2b
Counts
379 → 7
Alt Table
StatusErrorProgram
15.5b
(*.f64 180 (/.f64 (atan.f64 (/.f64 (+.f64 C (-.f64 (*.f64 (neg.f64 (*.f64 (cbrt.f64 A) (cbrt.f64 A))) (cbrt.f64 A)) (hypot.f64 B (-.f64 C A)))) B)) (PI.f64)))
50.1b
(*.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)))
44.7b
(*.f64 180 (/.f64 (atan.f64 (*.f64 1/2 (+.f64 (/.f64 C (/.f64 (*.f64 A A) B)) (/.f64 B A)))) (PI.f64)))
13.2b
(*.f64 180 (/.f64 1 (/.f64 (PI.f64) (atan.f64 (/.f64 (-.f64 (-.f64 C A) (hypot.f64 B (-.f64 C A))) B)))))
54.6b
(*.f64 180 (/.f64 (atan.f64 (-.f64 (*.f64 1/8 (/.f64 (pow.f64 B 3) (pow.f64 C 3))) (*.f64 1/2 (+.f64 (/.f64 B C) (+.f64 (/.f64 A (/.f64 (*.f64 C C) B)) (/.f64 (*.f64 (*.f64 A A) B) (pow.f64 C 3))))))) (PI.f64)))
47.4b
(*.f64 180 (/.f64 (atan.f64 (*.f64 -1/2 (/.f64 B C))) (PI.f64)))
48.8b
(*.f64 180 (/.f64 (atan.f64 (/.f64 (*.f64 -1/2 (/.f64 (pow.f64 B 2) C)) B)) (PI.f64)))
Compiler

Compiled 13394 to 5268 computations (60.7% saved)

localize13.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 1 (/.f64 (PI.f64) (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.5b
(-.f64 (-.f64 C A) (hypot.f64 B (-.f64 C A)))

series65.0ms (0.7%)

Counts
2 → 72
Calls

2 calls:

38.0ms
(*.f64 180 (/.f64 1 (/.f64 (PI.f64) (atan.f64 (/.f64 (-.f64 (-.f64 C A) (hypot.f64 B (-.f64 C A))) B)))))
27.0ms
(/.f64 1 (/.f64 (PI.f64) (atan.f64 (/.f64 (-.f64 (-.f64 C A) (hypot.f64 B (-.f64 C A))) B))))

rewrite42.0ms (0.4%)

Algorithm
rewrite-expression-head
Rules
147×times-frac_binary64
94×add-sqr-sqrt_binary64
82×*-un-lft-identity_binary64
80×add-cube-cbrt_binary64
44×associate-*r*_binary64
Counts
2 → 153
Calls

2 calls:

14.0ms
(*.f64 180 (/.f64 1 (/.f64 (PI.f64) (atan.f64 (/.f64 (-.f64 (-.f64 C A) (hypot.f64 B (-.f64 C A))) B)))))
5.0ms
(/.f64 1 (/.f64 (PI.f64) (atan.f64 (/.f64 (-.f64 (-.f64 C A) (hypot.f64 B (-.f64 C A))) B))))

simplify332.0ms (3.5%)

Algorithm
egg-herbie
Rules
784×fma-neg_binary64
615×fma-def_binary64
407×associate-/l/_binary64
397×*-commutative_binary64
328×sqr-pow_binary64
Counts
225 → 240
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01517180
13006638
27186611
317916611
425116611
530006611
637436611
744566611
846326611
951426611

prune391.0ms (4.1%)

Pruning

7 alts after pruning (6 fresh and 1 done)

PrunedKeptTotal
New5020502
Fresh066
Picked011
Done000
Total5027509
Error
0.2b
Counts
509 → 7
Alt Table
StatusErrorProgram
15.5b
(*.f64 180 (/.f64 (atan.f64 (/.f64 (+.f64 C (-.f64 (*.f64 (neg.f64 (*.f64 (cbrt.f64 A) (cbrt.f64 A))) (cbrt.f64 A)) (hypot.f64 B (-.f64 C A)))) B)) (PI.f64)))
50.1b
(*.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)))
44.7b
(*.f64 180 (/.f64 (atan.f64 (*.f64 1/2 (+.f64 (/.f64 C (/.f64 (*.f64 A A) B)) (/.f64 B A)))) (PI.f64)))
13.2b
(*.f64 180 (/.f64 1 (/.f64 (PI.f64) (atan.f64 (/.f64 (-.f64 (-.f64 C A) (hypot.f64 B (-.f64 C A))) B)))))
54.6b
(*.f64 180 (/.f64 (atan.f64 (-.f64 (*.f64 1/8 (/.f64 (pow.f64 B 3) (pow.f64 C 3))) (*.f64 1/2 (+.f64 (/.f64 B C) (+.f64 (/.f64 A (/.f64 (*.f64 C C) B)) (/.f64 (*.f64 (*.f64 A A) B) (pow.f64 C 3))))))) (PI.f64)))
47.4b
(*.f64 180 (/.f64 (atan.f64 (*.f64 -1/2 (/.f64 B C))) (PI.f64)))
48.8b
(*.f64 180 (/.f64 (atan.f64 (/.f64 (*.f64 -1/2 (/.f64 (pow.f64 B 2) C)) B)) (PI.f64)))
Compiler

Compiled 18803 to 7085 computations (62.3% saved)

localize15.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.5b
(*.f64 (cbrt.f64 A) (cbrt.f64 A))
0.6b
(cbrt.f64 A)
0.9b
(+.f64 C (-.f64 (*.f64 (neg.f64 (*.f64 (cbrt.f64 A) (cbrt.f64 A))) (cbrt.f64 A)) (hypot.f64 B (-.f64 C A))))
6.9b
(-.f64 (*.f64 (neg.f64 (*.f64 (cbrt.f64 A) (cbrt.f64 A))) (cbrt.f64 A)) (hypot.f64 B (-.f64 C A)))

series165.0ms (1.7%)

Counts
4 → 96
Calls

4 calls:

49.0ms
(+.f64 C (-.f64 (*.f64 (neg.f64 (*.f64 (cbrt.f64 A) (cbrt.f64 A))) (cbrt.f64 A)) (hypot.f64 B (-.f64 C A))))
42.0ms
(-.f64 (*.f64 (neg.f64 (*.f64 (cbrt.f64 A) (cbrt.f64 A))) (cbrt.f64 A)) (hypot.f64 B (-.f64 C A)))
37.0ms
(*.f64 (cbrt.f64 A) (cbrt.f64 A))
36.0ms
(cbrt.f64 A)

rewrite24.0ms (0.3%)

Algorithm
rewrite-expression-head
Rules
26×add-sqr-sqrt_binary64
20×*-un-lft-identity_binary64
19×cbrt-prod_binary64
18×add-cube-cbrt_binary64
11×pow1_binary64
Counts
4 → 101
Calls

4 calls:

8.0ms
(*.f64 (cbrt.f64 A) (cbrt.f64 A))
6.0ms
(+.f64 C (-.f64 (*.f64 (neg.f64 (*.f64 (cbrt.f64 A) (cbrt.f64 A))) (cbrt.f64 A)) (hypot.f64 B (-.f64 C A))))
4.0ms
(-.f64 (*.f64 (neg.f64 (*.f64 (cbrt.f64 A) (cbrt.f64 A))) (cbrt.f64 A)) (hypot.f64 B (-.f64 C A)))
1.0ms
(cbrt.f64 A)

simplify116.0ms (1.2%)

Algorithm
egg-herbie
Rules
659×fma-neg_binary64
441×fma-def_binary64
255×associate-*l*_binary64
248×associate-*r*_binary64
232×associate--r+_binary64
Counts
197 → 265
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
04334840
112544303
248984302
354584302

prune256.0ms (2.7%)

Pruning

7 alts after pruning (5 fresh and 2 done)

PrunedKeptTotal
New2970297
Fresh055
Picked011
Done011
Total2977304
Error
0.2b
Counts
304 → 7
Alt Table
StatusErrorProgram
15.5b
(*.f64 180 (/.f64 (atan.f64 (/.f64 (+.f64 C (-.f64 (*.f64 (neg.f64 (*.f64 (cbrt.f64 A) (cbrt.f64 A))) (cbrt.f64 A)) (hypot.f64 B (-.f64 C A)))) B)) (PI.f64)))
50.1b
(*.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)))
44.7b
(*.f64 180 (/.f64 (atan.f64 (*.f64 1/2 (+.f64 (/.f64 C (/.f64 (*.f64 A A) B)) (/.f64 B A)))) (PI.f64)))
13.2b
(*.f64 180 (/.f64 1 (/.f64 (PI.f64) (atan.f64 (/.f64 (-.f64 (-.f64 C A) (hypot.f64 B (-.f64 C A))) B)))))
54.6b
(*.f64 180 (/.f64 (atan.f64 (-.f64 (*.f64 1/8 (/.f64 (pow.f64 B 3) (pow.f64 C 3))) (*.f64 1/2 (+.f64 (/.f64 B C) (+.f64 (/.f64 A (/.f64 (*.f64 C C) B)) (/.f64 (*.f64 (*.f64 A A) B) (pow.f64 C 3))))))) (PI.f64)))
47.4b
(*.f64 180 (/.f64 (atan.f64 (*.f64 -1/2 (/.f64 B C))) (PI.f64)))
48.8b
(*.f64 180 (/.f64 (atan.f64 (/.f64 (*.f64 -1/2 (/.f64 (pow.f64 B 2) C)) B)) (PI.f64)))
Compiler

Compiled 10947 to 5204 computations (52.5% saved)

localize11.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(/.f64 (atan.f64 (*.f64 1/2 (+.f64 (/.f64 C (/.f64 (*.f64 A A) B)) (/.f64 B A)))) (PI.f64))
4.9b
(+.f64 (/.f64 C (/.f64 (*.f64 A A) B)) (/.f64 B A))
6.7b
(/.f64 (*.f64 A A) B)
7.9b
(/.f64 C (/.f64 (*.f64 A A) B))

series144.0ms (1.5%)

Counts
4 → 132
Calls

4 calls:

49.0ms
(/.f64 C (/.f64 (*.f64 A A) B))
45.0ms
(+.f64 (/.f64 C (/.f64 (*.f64 A A) B)) (/.f64 B A))
38.0ms
(/.f64 (atan.f64 (*.f64 1/2 (+.f64 (/.f64 C (/.f64 (*.f64 A A) B)) (/.f64 B A)))) (PI.f64))
11.0ms
(/.f64 (*.f64 A A) B)

rewrite44.0ms (0.5%)

Algorithm
rewrite-expression-head
Rules
77×times-frac_binary64
50×*-un-lft-identity_binary64
44×add-sqr-sqrt_binary64
44×add-cube-cbrt_binary64
26×fma-def_binary64
Counts
4 → 144
Calls

4 calls:

19.0ms
(+.f64 (/.f64 C (/.f64 (*.f64 A A) B)) (/.f64 B A))
7.0ms
(/.f64 (atan.f64 (*.f64 1/2 (+.f64 (/.f64 C (/.f64 (*.f64 A A) B)) (/.f64 B A)))) (PI.f64))
6.0ms
(/.f64 C (/.f64 (*.f64 A A) B))
4.0ms
(/.f64 (*.f64 A A) B)

simplify150.0ms (1.6%)

Algorithm
egg-herbie
Rules
678×times-frac_binary64
485×associate-/l*_binary64
440×associate-/l/_binary64
432×associate-*l/_binary64
429×associate-/r/_binary64
Counts
276 → 217
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
02124620
14534188
212874043
345384040
449734040
549574040

prune147.0ms (1.6%)

Pruning

9 alts after pruning (7 fresh and 2 done)

PrunedKeptTotal
New2143217
Fresh044
Picked101
Done022
Total2159224
Error
0.2b
Counts
224 → 9
Alt Table
StatusErrorProgram
54.6b
(*.f64 180 (/.f64 (atan.f64 (-.f64 (*.f64 1/8 (/.f64 (pow.f64 B 3) (pow.f64 C 3))) (*.f64 1/2 (+.f64 (/.f64 B C) (+.f64 (/.f64 A (/.f64 (*.f64 C C) B)) (/.f64 (*.f64 (*.f64 A A) B) (pow.f64 C 3))))))) (PI.f64)))
48.1b
(*.f64 180 (cbrt.f64 (pow.f64 (/.f64 (atan.f64 (*.f64 (*.f64 (/.f64 B A) (+.f64 (/.f64 C A) 1)) 1/2)) (PI.f64)) 3)))
15.5b
(*.f64 180 (/.f64 (atan.f64 (/.f64 (+.f64 C (-.f64 (*.f64 (neg.f64 (*.f64 (cbrt.f64 A) (cbrt.f64 A))) (cbrt.f64 A)) (hypot.f64 B (-.f64 C A)))) B)) (PI.f64)))
50.1b
(*.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)))
44.0b
(*.f64 180 (*.f64 (/.f64 (*.f64 (cbrt.f64 (atan.f64 (*.f64 (*.f64 (/.f64 B A) (+.f64 (/.f64 C A) 1)) 1/2))) (cbrt.f64 (atan.f64 (*.f64 (*.f64 (/.f64 B A) (+.f64 (/.f64 C A) 1)) 1/2)))) (sqrt.f64 (PI.f64))) (/.f64 (cbrt.f64 (atan.f64 (*.f64 (*.f64 (/.f64 B A) (+.f64 (/.f64 C A) 1)) 1/2))) (sqrt.f64 (PI.f64)))))
13.2b
(*.f64 180 (/.f64 1 (/.f64 (PI.f64) (atan.f64 (/.f64 (-.f64 (-.f64 C A) (hypot.f64 B (-.f64 C A))) B)))))
44.1b
(*.f64 180 (/.f64 (atan.f64 (*.f64 1/2 (*.f64 (+.f64 (/.f64 C (pow.f64 A 2)) (/.f64 1 A)) B))) (PI.f64)))
47.4b
(*.f64 180 (/.f64 (atan.f64 (*.f64 -1/2 (/.f64 B C))) (PI.f64)))
48.8b
(*.f64 180 (/.f64 (atan.f64 (/.f64 (*.f64 -1/2 (/.f64 (pow.f64 B 2) C)) B)) (PI.f64)))
Compiler

Compiled 5878 to 2513 computations (57.2% saved)

regimes2.1s (22.2%)

Accuracy

Total 11.3b remaining (97%)

Threshold costs 0b (0%)

Counts
237 → 2
Compiler

Compiled 37319 to 26056 computations (30.2% saved)

bsearch82.0ms (0.9%)

Steps
ItersRangePoint
6
-8.315152306477164e+139
-1.7599491337010797e+139
-3.205797192814889e+139
Compiler

Compiled 4 to 3 computations (25% saved)

simplify3.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
02959
13859
24559
34959
45159
55059

end161.0ms (1.7%)

Compiler

Compiled 323 to 223 computations (31% saved)

Profiling

Loading profile data...