Details

Time bar (total: 9.1s)

analyze308.0ms (3.4%)

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)

sample3.5s (38.4%)

Results
1.1s934×body4096valid
1.0s5577×body128valid
793.0ms867×body2048valid
360.0ms518×body1024valid
128.0ms239×body512valid
44.0ms121×body256valid
Compiler

Compiled 54 to 42 computations (22.2% saved)

preprocess69.0ms (0.8%)

Algorithm
egg-herbie
Rules
685×fma-neg_binary64
476×fma-def_binary64
312×associate-*l*_binary64
295×associate-*r*_binary64
162×distribute-rgt-in_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
052144
1129100
2363100
31152100
44674100
033
Stop Event
saturated
node limit
Compiler

Compiled 26 to 20 computations (23.1% saved)

simplify26.0ms (0.3%)

Algorithm
egg-herbie
Rules
554×fma-neg_binary64
423×fma-def_binary64
380×cancel-sign-sub-inv_binary64
305×div-sub_binary64
227×unsub-neg_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
02036
14425
210925
329625
496025
5345725
Stop Event
node limit
Counts
1 → 2

prune5.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

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

Compiled 132 to 93 computations (29.5% saved)

localize10.0ms (0.1%)

Local error

Found 4 expressions with local error:

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

series219.0ms (2.4%)

Counts
4 → 144
Calls

36 calls:

41.0ms
(/.f64 (-.f64 (-.f64 C A) (hypot.f64 B (-.f64 A C))) B)
A
0
22.0ms
(*.f64 (atan.f64 (/.f64 (-.f64 (-.f64 C A) (hypot.f64 B (-.f64 A C))) B)) (/.f64 180 (PI.f64)))
C
inf
9.0ms
(hypot.f64 B (-.f64 A C))
B
-inf
9.0ms
(/.f64 (-.f64 (-.f64 C A) (hypot.f64 B (-.f64 A C))) B)
B
0
8.0ms
(-.f64 (-.f64 C A) (hypot.f64 B (-.f64 A C)))
C
0

rewrite74.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
312×log1p-udef_binary64
174×add-sqr-sqrt_binary64
166×log1p-expm1-u_binary64
166×expm1-log1p-u_binary64
165×add-cbrt-cube_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01461
132961
2491361
Stop Event
node limit
Counts
4 → 124

simplify88.0ms (1%)

Algorithm
egg-herbie
Rules
614×fma-def_binary64
263×associate-/l*_binary64
229×sub-neg_binary64
221×times-frac_binary64
184×+-commutative_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
05496531
119815907
Stop Event
node limit
Counts
268 → 318

prune335.0ms (3.7%)

Pruning

7 alts after pruning (7 fresh and 0 done)

PrunedKeptTotal
New3117318
Fresh101
Picked101
Done000
Total3137320
Error
0.3b
Counts
320 → 7
Alt Table
StatusErrorProgram
49.3b
(*.f64 (atan.f64 (/.f64 (*.f64 1/2 (+.f64 (/.f64 (*.f64 B B) A) (*.f64 (/.f64 (*.f64 B B) A) (/.f64 C A)))) B)) (/.f64 180 (PI.f64)))
47.8b
(*.f64 (atan.f64 (*.f64 1/2 (/.f64 B A))) (/.f64 180 (PI.f64)))
43.1b
(*.f64 (atan.f64 (*.f64 -1/2 (+.f64 (/.f64 B C) (*.f64 (/.f64 B C) (/.f64 A C))))) (/.f64 180 (PI.f64)))
51.9b
(*.f64 (atan.f64 (/.f64 (/.f64 (-.f64 (pow.f64 (-.f64 C A) 2) (pow.f64 (hypot.f64 B (-.f64 A C)) 2)) (+.f64 (-.f64 C A) (hypot.f64 B (-.f64 A C)))) B)) (/.f64 180 (PI.f64)))
14.8b
(/.f64 (atan.f64 (/.f64 (-.f64 C (+.f64 A (hypot.f64 B (-.f64 A C)))) B)) (*.f64 (PI.f64) 1/180))
17.5b
(*.f64 (atan.f64 (-.f64 (/.f64 (-.f64 C A) B) (/.f64 (hypot.f64 B (-.f64 A C)) B))) (/.f64 180 (PI.f64)))
17.6b
(*.f64 (atan.f64 (/.f64 (+.f64 (-.f64 C (+.f64 A (hypot.f64 B (-.f64 A C)))) (fma.f64 (neg.f64 (sqrt.f64 (hypot.f64 B (-.f64 A C)))) (sqrt.f64 (hypot.f64 B (-.f64 A C))) (hypot.f64 B (-.f64 A C)))) B)) (/.f64 180 (PI.f64)))
Compiler

Compiled 12017 to 6522 computations (45.7% saved)

localize11.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(/.f64 (-.f64 C (+.f64 A (hypot.f64 B (-.f64 A C)))) B)
0.0b
(/.f64 (atan.f64 (/.f64 (-.f64 C (+.f64 A (hypot.f64 B (-.f64 A C)))) B)) (*.f64 (PI.f64) 1/180))
0.3b
(-.f64 C (+.f64 A (hypot.f64 B (-.f64 A C))))
0.6b
(+.f64 A (hypot.f64 B (-.f64 A C)))

series163.0ms (1.8%)

Counts
4 → 144
Calls

36 calls:

10.0ms
(/.f64 (-.f64 C (+.f64 A (hypot.f64 B (-.f64 A C)))) B)
A
0
8.0ms
(/.f64 (-.f64 C (+.f64 A (hypot.f64 B (-.f64 A C)))) B)
C
0
8.0ms
(/.f64 (-.f64 C (+.f64 A (hypot.f64 B (-.f64 A C)))) B)
B
-inf
7.0ms
(/.f64 (-.f64 C (+.f64 A (hypot.f64 B (-.f64 A C)))) B)
B
0
7.0ms
(-.f64 C (+.f64 A (hypot.f64 B (-.f64 A C))))
A
0

rewrite53.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
173×add-sqr-sqrt_binary64
165×log1p-expm1-u_binary64
165×expm1-log1p-u_binary64
164×add-cbrt-cube_binary64
161×add-log-exp_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01464
132764
Stop Event
node limit
Counts
4 → 154

simplify88.0ms (1%)

Algorithm
egg-herbie
Rules
529×fma-def_binary64
314×associate--l+_binary64
231×associate-/l*_binary64
230×sub-neg_binary64
196×times-frac_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
04886259
117635621
Stop Event
node limit
Counts
298 → 348

prune353.0ms (3.9%)

Pruning

8 alts after pruning (7 fresh and 1 done)

PrunedKeptTotal
New3453348
Fresh246
Picked011
Done000
Total3478355
Error
0.3b
Counts
355 → 8
Alt Table
StatusErrorProgram
49.3b
(*.f64 (atan.f64 (/.f64 (*.f64 1/2 (+.f64 (/.f64 (*.f64 B B) A) (*.f64 (/.f64 (*.f64 B B) A) (/.f64 C A)))) B)) (/.f64 180 (PI.f64)))
47.8b
(*.f64 (atan.f64 (*.f64 1/2 (/.f64 B A))) (/.f64 180 (PI.f64)))
43.1b
(*.f64 (atan.f64 (*.f64 -1/2 (+.f64 (/.f64 B C) (*.f64 (/.f64 B C) (/.f64 A C))))) (/.f64 180 (PI.f64)))
42.5b
(/.f64 (atan.f64 (/.f64 (-.f64 C (/.f64 (-.f64 (*.f64 A A) (pow.f64 (hypot.f64 B (-.f64 A C)) 2)) (-.f64 A (hypot.f64 B (-.f64 A C))))) B)) (*.f64 (PI.f64) 1/180))
14.8b
(/.f64 (atan.f64 (/.f64 (-.f64 C (+.f64 A (hypot.f64 B (-.f64 A C)))) B)) (*.f64 (PI.f64) 1/180))
17.5b
(*.f64 (atan.f64 (-.f64 (/.f64 (-.f64 C A) B) (/.f64 (hypot.f64 B (-.f64 A C)) B))) (/.f64 180 (PI.f64)))
16.6b
(/.f64 (atan.f64 (/.f64 (-.f64 C (fma.f64 (sqrt.f64 (hypot.f64 B (-.f64 A C))) (sqrt.f64 (hypot.f64 B (-.f64 A C))) A)) B)) (*.f64 (PI.f64) 1/180))
46.3b
(/.f64 (atan.f64 (/.f64 (*.f64 1/2 (+.f64 (/.f64 C (*.f64 (/.f64 A B) (/.f64 A B))) (/.f64 B (/.f64 A B)))) B)) (*.f64 (PI.f64) 1/180))
Compiler

Compiled 12490 to 6492 computations (48% saved)

localize12.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(/.f64 (atan.f64 (/.f64 (-.f64 C (fma.f64 (sqrt.f64 (hypot.f64 B (-.f64 A C))) (sqrt.f64 (hypot.f64 B (-.f64 A C))) A)) B)) (*.f64 (PI.f64) 1/180))
0.0b
(/.f64 (-.f64 C (fma.f64 (sqrt.f64 (hypot.f64 B (-.f64 A C))) (sqrt.f64 (hypot.f64 B (-.f64 A C))) A)) B)
5.9b
(-.f64 C (fma.f64 (sqrt.f64 (hypot.f64 B (-.f64 A C))) (sqrt.f64 (hypot.f64 B (-.f64 A C))) A))
8.5b
(fma.f64 (sqrt.f64 (hypot.f64 B (-.f64 A C))) (sqrt.f64 (hypot.f64 B (-.f64 A C))) A)

series455.0ms (5%)

Counts
4 → 82
Calls

36 calls:

34.0ms
(/.f64 (-.f64 C (fma.f64 (sqrt.f64 (hypot.f64 B (-.f64 A C))) (sqrt.f64 (hypot.f64 B (-.f64 A C))) A)) B)
A
0
32.0ms
(/.f64 (-.f64 C (fma.f64 (sqrt.f64 (hypot.f64 B (-.f64 A C))) (sqrt.f64 (hypot.f64 B (-.f64 A C))) A)) B)
B
-inf
30.0ms
(/.f64 (-.f64 C (fma.f64 (sqrt.f64 (hypot.f64 B (-.f64 A C))) (sqrt.f64 (hypot.f64 B (-.f64 A C))) A)) B)
B
inf
28.0ms
(-.f64 C (fma.f64 (sqrt.f64 (hypot.f64 B (-.f64 A C))) (sqrt.f64 (hypot.f64 B (-.f64 A C))) A))
A
0
24.0ms
(fma.f64 (sqrt.f64 (hypot.f64 B (-.f64 A C))) (sqrt.f64 (hypot.f64 B (-.f64 A C))) A)
A
0

rewrite79.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
314×log1p-udef_binary64
174×add-sqr-sqrt_binary64
165×log1p-expm1-u_binary64
165×expm1-log1p-u_binary64
164×add-cbrt-cube_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01564
133764
2484064
Stop Event
node limit
Counts
4 → 134

simplify88.0ms (1%)

Algorithm
egg-herbie
Rules
575×times-frac_binary64
376×fma-neg_binary64
349×fma-def_binary64
215×+-commutative_binary64
202×associate-+r+_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
03175283
111354180
241964180
Stop Event
node limit
Counts
216 → 216

prune217.0ms (2.4%)

Pruning

8 alts after pruning (6 fresh and 2 done)

PrunedKeptTotal
New2160216
Fresh066
Picked011
Done011
Total2168224
Error
0.3b
Counts
224 → 8
Alt Table
StatusErrorProgram
49.3b
(*.f64 (atan.f64 (/.f64 (*.f64 1/2 (+.f64 (/.f64 (*.f64 B B) A) (*.f64 (/.f64 (*.f64 B B) A) (/.f64 C A)))) B)) (/.f64 180 (PI.f64)))
47.8b
(*.f64 (atan.f64 (*.f64 1/2 (/.f64 B A))) (/.f64 180 (PI.f64)))
43.1b
(*.f64 (atan.f64 (*.f64 -1/2 (+.f64 (/.f64 B C) (*.f64 (/.f64 B C) (/.f64 A C))))) (/.f64 180 (PI.f64)))
42.5b
(/.f64 (atan.f64 (/.f64 (-.f64 C (/.f64 (-.f64 (*.f64 A A) (pow.f64 (hypot.f64 B (-.f64 A C)) 2)) (-.f64 A (hypot.f64 B (-.f64 A C))))) B)) (*.f64 (PI.f64) 1/180))
14.8b
(/.f64 (atan.f64 (/.f64 (-.f64 C (+.f64 A (hypot.f64 B (-.f64 A C)))) B)) (*.f64 (PI.f64) 1/180))
17.5b
(*.f64 (atan.f64 (-.f64 (/.f64 (-.f64 C A) B) (/.f64 (hypot.f64 B (-.f64 A C)) B))) (/.f64 180 (PI.f64)))
16.6b
(/.f64 (atan.f64 (/.f64 (-.f64 C (fma.f64 (sqrt.f64 (hypot.f64 B (-.f64 A C))) (sqrt.f64 (hypot.f64 B (-.f64 A C))) A)) B)) (*.f64 (PI.f64) 1/180))
46.3b
(/.f64 (atan.f64 (/.f64 (*.f64 1/2 (+.f64 (/.f64 C (*.f64 (/.f64 A B) (/.f64 A B))) (/.f64 B (/.f64 A B)))) B)) (*.f64 (PI.f64) 1/180))
Compiler

Compiled 9122 to 4684 computations (48.7% saved)

localize12.0ms (0.1%)

Local error

Found 4 expressions with local error:

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

series150.0ms (1.7%)

Counts
3 → 108
Calls

27 calls:

14.0ms
(/.f64 (hypot.f64 B (-.f64 A C)) B)
B
-inf
11.0ms
(-.f64 (/.f64 (-.f64 C A) B) (/.f64 (hypot.f64 B (-.f64 A C)) B))
A
0
11.0ms
(/.f64 (hypot.f64 B (-.f64 A C)) B)
B
inf
9.0ms
(-.f64 (/.f64 (-.f64 C A) B) (/.f64 (hypot.f64 B (-.f64 A C)) B))
C
0
9.0ms
(-.f64 (/.f64 (-.f64 C A) B) (/.f64 (hypot.f64 B (-.f64 A C)) B))
B
0

rewrite44.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
189×add-sqr-sqrt_binary64
180×log1p-expm1-u_binary64
180×expm1-log1p-u_binary64
179×add-cbrt-cube_binary64
176×add-log-exp_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01551
135751
Stop Event
node limit
Counts
3 → 114

simplify70.0ms (0.8%)

Algorithm
egg-herbie
Rules
413×fma-def_binary64
281×associate-+r+_binary64
247×associate-+l+_binary64
210×associate--r+_binary64
195×associate--l+_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
03795164
113894697
Stop Event
node limit
Counts
222 → 242

prune353.0ms (3.9%)

Pruning

8 alts after pruning (6 fresh and 2 done)

PrunedKeptTotal
New3192321
Fresh145
Picked101
Done022
Total3218329
Error
0.3b
Counts
329 → 8
Alt Table
StatusErrorProgram
49.3b
(*.f64 (atan.f64 (/.f64 (*.f64 1/2 (+.f64 (/.f64 (*.f64 B B) A) (*.f64 (/.f64 (*.f64 B B) A) (/.f64 C A)))) B)) (/.f64 180 (PI.f64)))
47.8b
(*.f64 (atan.f64 (*.f64 1/2 (/.f64 B A))) (/.f64 180 (PI.f64)))
43.1b
(*.f64 (atan.f64 (*.f64 -1/2 (+.f64 (/.f64 B C) (*.f64 (/.f64 B C) (/.f64 A C))))) (/.f64 180 (PI.f64)))
14.8b
(/.f64 (atan.f64 (/.f64 (-.f64 C (+.f64 A (hypot.f64 B (-.f64 A C)))) B)) (*.f64 (PI.f64) 1/180))
17.6b
(*.f64 (atan.f64 (-.f64 (/.f64 (-.f64 C A) B) (cbrt.f64 (pow.f64 (/.f64 (hypot.f64 B (-.f64 A C)) B) 3)))) (/.f64 180 (PI.f64)))
25.6b
(*.f64 (atan.f64 (/.f64 (-.f64 (/.f64 B (hypot.f64 B (-.f64 A C))) (*.f64 (/.f64 B (-.f64 C A)) 1)) (*.f64 (/.f64 B (-.f64 C A)) (/.f64 B (hypot.f64 B (-.f64 A C)))))) (/.f64 180 (PI.f64)))
16.6b
(/.f64 (atan.f64 (/.f64 (-.f64 C (fma.f64 (sqrt.f64 (hypot.f64 B (-.f64 A C))) (sqrt.f64 (hypot.f64 B (-.f64 A C))) A)) B)) (*.f64 (PI.f64) 1/180))
46.3b
(/.f64 (atan.f64 (/.f64 (*.f64 1/2 (+.f64 (/.f64 C (*.f64 (/.f64 A B) (/.f64 A B))) (/.f64 B (/.f64 A B)))) B)) (*.f64 (PI.f64) 1/180))
Compiler

Compiled 13172 to 6701 computations (49.1% saved)

regimes2.1s (23.1%)

Accuracy

Total 11.3b remaining (97.2%)

Threshold costs 0b (0%)

Counts
261 → 2
Compiler

Compiled 41195 to 28609 computations (30.6% saved)

bsearch74.0ms (0.8%)

Algorithm
binary-search
Calls

1 calls:

62.0ms
C
Steps
ItersPointRange
4.283004787062823e+31
∈ [
1.936685331243197e+29
,
4.916011673615074e+31
]
Compiler

Compiled 4 to 3 computations (25% saved)

simplify4.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
02862
14162
25162
35762
46062
Stop Event
saturated

end130.0ms (1.4%)

Stop Event
fuel
Compiler

Compiled 280 to 175 computations (37.5% saved)

Profiling

Loading profile data...