Details

Time bar (total: 9.2s)

analyze306.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)

sample3.7s (39.9%)

Results
1.2s934×body4096valid
1.1s5577×body128valid
862.0ms867×body2048valid
376.0ms518×body1024valid
131.0ms239×body512valid
43.0ms121×body256valid
Compiler

Compiled 54 to 42 computations (22.2% saved)

preprocess40.0ms (0.4%)

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)

simplify24.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.1%)

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

Compiled 132 to 93 computations (29.5% saved)

localize11.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)))

series173.0ms (1.9%)

Counts
4 → 144
Calls

36 calls:

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

rewrite75.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
312×log1p-udef_binary64
178×add-sqr-sqrt_binary64
174×pow1_binary64
173×*-un-lft-identity_binary64
166×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify86.0ms (0.9%)

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

prune315.0ms (3.4%)

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
43.1b
(*.f64 (atan.f64 (*.f64 -1/2 (+.f64 (/.f64 B C) (*.f64 (/.f64 B C) (/.f64 A C))))) (/.f64 180 (PI.f64)))
17.5b
(*.f64 (atan.f64 (-.f64 (/.f64 (-.f64 C A) B) (/.f64 (hypot.f64 B (-.f64 A C)) B))) (/.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)))
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)))
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)))
14.8b
(/.f64 (atan.f64 (/.f64 (-.f64 C (+.f64 A (hypot.f64 B (-.f64 A C)))) B)) (*.f64 (PI.f64) 1/180))
47.8b
(*.f64 (atan.f64 (*.f64 1/2 (/.f64 B A))) (/.f64 180 (PI.f64)))
Compiler

Compiled 12017 to 6529 computations (45.7% saved)

localize10.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)))

series170.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
9.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
8.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

rewrite50.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
177×add-sqr-sqrt_binary64
174×pow1_binary64
173×*-un-lft-identity_binary64
165×add-exp-log_binary64
165×add-log-exp_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01464
132764
Stop Event
node limit
Counts
4 → 154

simplify85.0ms (0.9%)

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

prune327.0ms (3.5%)

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
17.5b
(*.f64 (atan.f64 (-.f64 (/.f64 (-.f64 C A) B) (/.f64 (hypot.f64 B (-.f64 A C)) B))) (/.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))
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))
43.1b
(*.f64 (atan.f64 (*.f64 -1/2 (+.f64 (/.f64 B C) (*.f64 (/.f64 B C) (/.f64 A C))))) (/.f64 180 (PI.f64)))
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))
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)))
14.8b
(/.f64 (atan.f64 (/.f64 (-.f64 C (+.f64 A (hypot.f64 B (-.f64 A C)))) B)) (*.f64 (PI.f64) 1/180))
47.8b
(*.f64 (atan.f64 (*.f64 1/2 (/.f64 B A))) (/.f64 180 (PI.f64)))
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)

series546.0ms (5.9%)

Counts
4 → 82
Calls

36 calls:

45.0ms
(fma.f64 (sqrt.f64 (hypot.f64 B (-.f64 A C))) (sqrt.f64 (hypot.f64 B (-.f64 A C))) A)
C
0
36.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
35.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
35.0ms
(fma.f64 (sqrt.f64 (hypot.f64 B (-.f64 A C))) (sqrt.f64 (hypot.f64 B (-.f64 A C))) A)
A
0
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)
B
inf

rewrite80.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
314×log1p-udef_binary64
178×add-sqr-sqrt_binary64
174×pow1_binary64
173×*-un-lft-identity_binary64
165×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01564
133664
2485364
Stop Event
node limit
Counts
4 → 134

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

prune221.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
17.5b
(*.f64 (atan.f64 (-.f64 (/.f64 (-.f64 C A) B) (/.f64 (hypot.f64 B (-.f64 A C)) B))) (/.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))
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))
43.1b
(*.f64 (atan.f64 (*.f64 -1/2 (+.f64 (/.f64 B C) (*.f64 (/.f64 B C) (/.f64 A C))))) (/.f64 180 (PI.f64)))
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))
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)))
14.8b
(/.f64 (atan.f64 (/.f64 (-.f64 C (+.f64 A (hypot.f64 B (-.f64 A C)))) B)) (*.f64 (PI.f64) 1/180))
47.8b
(*.f64 (atan.f64 (*.f64 1/2 (/.f64 B A))) (/.f64 180 (PI.f64)))
Compiler

Compiled 9122 to 4686 computations (48.6% saved)

localize11.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))

series164.0ms (1.8%)

Counts
3 → 108
Calls

27 calls:

16.0ms
(/.f64 (hypot.f64 B (-.f64 A C)) B)
B
-inf
12.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 (/.f64 (-.f64 C A) B) (/.f64 (hypot.f64 B (-.f64 A C)) B))
C
0
8.0ms
(/.f64 (hypot.f64 B (-.f64 A C)) B)
A
0

rewrite46.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
193×add-sqr-sqrt_binary64
189×pow1_binary64
188×*-un-lft-identity_binary64
180×add-exp-log_binary64
180×add-log-exp_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01551
135751
Stop Event
node limit
Counts
3 → 107

simplify69.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
215 → 235

prune358.0ms (3.9%)

Pruning

8 alts after pruning (6 fresh and 2 done)

PrunedKeptTotal
New3122314
Fresh145
Picked101
Done022
Total3148322
Error
0.3b
Counts
322 → 8
Alt Table
StatusErrorProgram
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))
43.1b
(*.f64 (atan.f64 (*.f64 -1/2 (+.f64 (/.f64 B C) (*.f64 (/.f64 B C) (/.f64 A C))))) (/.f64 180 (PI.f64)))
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)))
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))
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)))
14.8b
(/.f64 (atan.f64 (/.f64 (-.f64 C (+.f64 A (hypot.f64 B (-.f64 A C)))) B)) (*.f64 (PI.f64) 1/180))
47.8b
(*.f64 (atan.f64 (*.f64 1/2 (/.f64 B A))) (/.f64 180 (PI.f64)))
Compiler

Compiled 13030 to 6639 computations (49% saved)

regimes2.0s (22.2%)

Accuracy

Total 11.3b remaining (97.2%)

Threshold costs 0b (0%)

Counts
257 → 2
Compiler

Compiled 40656 to 28210 computations (30.6% saved)

bsearch74.0ms (0.8%)

Algorithm
binary-search
Calls

1 calls:

65.0ms
C
Steps
ItersPointRange
4.283004787062823e+31
∈ [
1.936685331243197e+29
,
4.916011673615074e+31
]
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
02862
14162
25162
35762
46062
Stop Event
saturated

end135.0ms (1.5%)

Stop Event
fuel
Compiler

Compiled 280 to 175 computations (37.5% saved)

Profiling

Loading profile data...