Details

Time bar (total: 10.5s)

analyze2.6s (25%)

Algorithm
search
Search
TrueOtherFalseIter
0%99.9%0.1%0
0%99.9%0.1%1
0%99.9%0.1%2
0%99.9%0.1%3
0%99.9%0.1%4
0%99.9%0.1%5
0%99.9%0.1%6
0%99.9%0.1%7
2.3%97.5%0.1%8
6.2%93.6%0.1%9
9.4%90.5%0.1%10
12%87.9%0.1%11
17.7%82.1%0.1%12
20.1%79.8%0.1%13
21.6%78.3%0.1%14
Compiler

Compiled 27 to 21 computations (22.2% saved)

sample3.8s (36.7%)

Results
1.2s927×body4096valid
1.1s5568×body128valid
878.0ms906×body2048valid
364.0ms484×body1024valid
145.0ms235×body512valid
53.0ms136×body256valid
Compiler

Compiled 53 to 41 computations (22.6% saved)

simplify66.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
11.0b
Counts
3 → 2
Alt Table
StatusErrorProgram
11.1b
(*.f64 180 (/.f64 (atan.f64 (/.f64 (-.f64 (-.f64 C A) (hypot.f64 B (-.f64 C A))) B)) (PI.f64)))
28.8b
(*.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)

localize9.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
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.0b
(/.f64 (-.f64 (-.f64 C A) (hypot.f64 B (-.f64 C A))) B)
0.4b
(-.f64 (-.f64 C A) (hypot.f64 B (-.f64 C A)))

series216.0ms (2.1%)

Counts
4 → 144
Calls

4 calls:

87.0ms
(/.f64 (-.f64 (-.f64 C A) (hypot.f64 B (-.f64 C A))) B)
58.0ms
(-.f64 (-.f64 C A) (hypot.f64 B (-.f64 C A)))
38.0ms
(*.f64 180 (/.f64 (atan.f64 (/.f64 (-.f64 (-.f64 C A) (hypot.f64 B (-.f64 C A))) B)) (PI.f64)))
31.0ms
(/.f64 (atan.f64 (/.f64 (-.f64 (-.f64 C A) (hypot.f64 B (-.f64 C A))) B)) (PI.f64))

rewrite42.0ms (0.4%)

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:

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

simplify163.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 → 378
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
067410323
119509081
249719081

prune322.0ms (3.1%)

Pruning

7 alts after pruning (7 fresh and 0 done)

PrunedKeptTotal
New3717378
Fresh101
Picked101
Done000
Total3737380
Error
0.3b
Counts
380 → 7
Alt Table
StatusErrorProgram
45.4b
(*.f64 180 (/.f64 (atan.f64 (*.f64 1/2 (+.f64 (/.f64 C (/.f64 (*.f64 A A) B)) (/.f64 B A)))) (PI.f64)))
50.9b
(*.f64 180 (/.f64 (atan.f64 (/.f64 (*.f64 1/2 (/.f64 (pow.f64 B 2) A)) B)) (PI.f64)))
48.4b
(*.f64 180 (/.f64 (atan.f64 (/.f64 (*.f64 -1/2 (/.f64 (pow.f64 B 2) C)) B)) (PI.f64)))
11.1b
(*.f64 (/.f64 (atan.f64 (/.f64 (-.f64 (-.f64 C A) (hypot.f64 B (-.f64 C A))) B)) (PI.f64)) 180)
54.5b
(*.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)))
11.1b
(*.f64 180 (/.f64 (atan.f64 (/.f64 1 (/.f64 B (-.f64 (-.f64 C A) (hypot.f64 B (-.f64 C A)))))) (PI.f64)))
48.6b
(*.f64 180 (/.f64 (atan.f64 (*.f64 -1/2 (/.f64 B C))) (PI.f64)))
Compiler

Compiled 13374 to 5253 computations (60.7% saved)

localize9.0ms (0.1%)

Local error

Found 4 expressions with local error:

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

series38.0ms (0.4%)

Counts
1 → 36
Calls

1 calls:

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

rewrite9.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
14×add-sqr-sqrt_binary64
13×associate-*l*_binary64
10×times-frac_binary64
*-un-lft-identity_binary64
add-cube-cbrt_binary64
Counts
1 → 34
Calls

1 calls:

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

simplify185.0ms (1.8%)

Algorithm
egg-herbie
Rules
684×fma-def_binary64
681×fma-neg_binary64
450×fabs-mul_binary64
445×associate-*l/_binary64
445×associate-/l*_binary64
Counts
70 → 61
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0912007
11931863
24481863
310321863
423501863
527551863
632611863
738421863
844511863
948601863
1049541863
1151041863

prune268.0ms (2.6%)

Pruning

7 alts after pruning (6 fresh and 1 done)

PrunedKeptTotal
New3760376
Fresh066
Picked011
Done000
Total3767383
Error
0.3b
Counts
383 → 7
Alt Table
StatusErrorProgram
45.4b
(*.f64 180 (/.f64 (atan.f64 (*.f64 1/2 (+.f64 (/.f64 C (/.f64 (*.f64 A A) B)) (/.f64 B A)))) (PI.f64)))
50.9b
(*.f64 180 (/.f64 (atan.f64 (/.f64 (*.f64 1/2 (/.f64 (pow.f64 B 2) A)) B)) (PI.f64)))
48.4b
(*.f64 180 (/.f64 (atan.f64 (/.f64 (*.f64 -1/2 (/.f64 (pow.f64 B 2) C)) B)) (PI.f64)))
11.1b
(*.f64 (/.f64 (atan.f64 (/.f64 (-.f64 (-.f64 C A) (hypot.f64 B (-.f64 C A))) B)) (PI.f64)) 180)
54.5b
(*.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)))
11.1b
(*.f64 180 (/.f64 (atan.f64 (/.f64 1 (/.f64 B (-.f64 (-.f64 C A) (hypot.f64 B (-.f64 C A)))))) (PI.f64)))
48.6b
(*.f64 180 (/.f64 (atan.f64 (*.f64 -1/2 (/.f64 B C))) (PI.f64)))
Compiler

Compiled 13329 to 5245 computations (60.6% saved)

localize10.0ms (0.1%)

Local error

Found 4 expressions with local error:

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

series145.0ms (1.4%)

Counts
3 → 108
Calls

3 calls:

78.0ms
(/.f64 1 (/.f64 B (-.f64 (-.f64 C A) (hypot.f64 B (-.f64 C A)))))
37.0ms
(*.f64 180 (/.f64 (atan.f64 (/.f64 1 (/.f64 B (-.f64 (-.f64 C A) (hypot.f64 B (-.f64 C A)))))) (PI.f64)))
29.0ms
(/.f64 (atan.f64 (/.f64 1 (/.f64 B (-.f64 (-.f64 C A) (hypot.f64 B (-.f64 C A)))))) (PI.f64))

rewrite39.0ms (0.4%)

Algorithm
rewrite-expression-head
Rules
163×times-frac_binary64
144×*-un-lft-identity_binary64
113×add-sqr-sqrt_binary64
84×add-cube-cbrt_binary64
36×distribute-lft-out--_binary64
Counts
3 → 185
Calls

3 calls:

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

simplify243.0ms (2.3%)

Algorithm
egg-herbie
Rules
271×fma-neg_binary64
242×fma-def_binary64
212×*-commutative_binary64
197×+-commutative_binary64
195×associate-/l*_binary64
Counts
293 → 320
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
04759995
112858930
244308896
349748896
449758896

prune325.0ms (3.1%)

Pruning

7 alts after pruning (5 fresh and 2 done)

PrunedKeptTotal
New4561457
Fresh145
Picked011
Done011
Total4577464
Error
0.3b
Counts
464 → 7
Alt Table
StatusErrorProgram
45.4b
(*.f64 180 (/.f64 (atan.f64 (*.f64 1/2 (+.f64 (/.f64 C (/.f64 (*.f64 A A) B)) (/.f64 B A)))) (PI.f64)))
50.9b
(*.f64 180 (/.f64 (atan.f64 (/.f64 (*.f64 1/2 (/.f64 (pow.f64 B 2) A)) B)) (PI.f64)))
48.4b
(*.f64 180 (/.f64 (atan.f64 (/.f64 (*.f64 -1/2 (/.f64 (pow.f64 B 2) C)) B)) (PI.f64)))
11.1b
(*.f64 (/.f64 (atan.f64 (/.f64 (-.f64 (-.f64 C A) (hypot.f64 B (-.f64 C A))) B)) (PI.f64)) 180)
53.7b
(*.f64 180 (/.f64 (atan.f64 (fma.f64 1/2 (+.f64 (/.f64 C (/.f64 (*.f64 A A) B)) (+.f64 (/.f64 B A) (/.f64 (*.f64 C (*.f64 C B)) (pow.f64 A 3)))) (*.f64 (/.f64 (pow.f64 B 3) (pow.f64 A 3)) -1/8))) (PI.f64)))
11.1b
(*.f64 180 (/.f64 (atan.f64 (/.f64 1 (/.f64 B (-.f64 (-.f64 C A) (hypot.f64 B (-.f64 C A)))))) (PI.f64)))
48.6b
(*.f64 180 (/.f64 (atan.f64 (*.f64 -1/2 (/.f64 B C))) (PI.f64)))
Compiler

Compiled 16809 to 6980 computations (58.5% saved)

localize11.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(*.f64 180 (/.f64 (atan.f64 (*.f64 1/2 (+.f64 (/.f64 C (/.f64 (*.f64 A A) B)) (/.f64 B A)))) (PI.f64)))
4.3b
(+.f64 (/.f64 C (/.f64 (*.f64 A A) B)) (/.f64 B A))
5.1b
(/.f64 C (/.f64 (*.f64 A A) B))
7.5b
(/.f64 (*.f64 A A) B)

series180.0ms (1.7%)

Counts
4 → 132
Calls

4 calls:

59.0ms
(*.f64 180 (/.f64 (atan.f64 (*.f64 1/2 (+.f64 (/.f64 C (/.f64 (*.f64 A A) B)) (/.f64 B A)))) (PI.f64)))
58.0ms
(/.f64 C (/.f64 (*.f64 A A) B))
50.0ms
(+.f64 (/.f64 C (/.f64 (*.f64 A A) B)) (/.f64 B A))
12.0ms
(/.f64 (*.f64 A A) B)

rewrite43.0ms (0.4%)

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

4 calls:

18.0ms
(+.f64 (/.f64 C (/.f64 (*.f64 A A) B)) (/.f64 B A))
7.0ms
(*.f64 180 (/.f64 (atan.f64 (*.f64 1/2 (+.f64 (/.f64 C (/.f64 (*.f64 A A) B)) (/.f64 B A)))) (PI.f64)))
5.0ms
(/.f64 C (/.f64 (*.f64 A A) B))
3.0ms
(/.f64 (*.f64 A A) B)

simplify164.0ms (1.6%)

Algorithm
egg-herbie
Rules
708×times-frac_binary64
548×associate-/l*_binary64
448×associate-/l/_binary64
446×associate-/r/_binary64
381×associate-/r*_binary64
Counts
281 → 218
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
02344817
15224353
215054228
345734225
449904225
549614225

prune131.0ms (1.2%)

Pruning

9 alts after pruning (7 fresh and 2 done)

PrunedKeptTotal
New2144218
Fresh134
Picked101
Done022
Total2169225
Error
0.3b
Counts
225 → 9
Alt Table
StatusErrorProgram
48.4b
(*.f64 180 (/.f64 (atan.f64 (/.f64 (*.f64 -1/2 (/.f64 (pow.f64 B 2) C)) B)) (PI.f64)))
11.1b
(*.f64 (/.f64 (atan.f64 (/.f64 (-.f64 (-.f64 C A) (hypot.f64 B (-.f64 C A))) B)) (PI.f64)) 180)
53.7b
(*.f64 180 (/.f64 (atan.f64 (fma.f64 1/2 (+.f64 (/.f64 C (/.f64 (*.f64 A A) B)) (+.f64 (/.f64 B A) (/.f64 (*.f64 C (*.f64 C B)) (pow.f64 A 3)))) (*.f64 (/.f64 (pow.f64 B 3) (pow.f64 A 3)) -1/8))) (PI.f64)))
44.0b
(/.f64 (*.f64 180 (atan.f64 (*.f64 (*.f64 (/.f64 B A) (+.f64 (/.f64 C A) 1)) 1/2))) (PI.f64))
11.1b
(*.f64 180 (/.f64 (atan.f64 (/.f64 1 (/.f64 B (-.f64 (-.f64 C A) (hypot.f64 B (-.f64 C A)))))) (PI.f64)))
52.4b
(exp.f64 (+.f64 (log.f64 180) (-.f64 (log.f64 (atan.f64 (*.f64 1/2 (+.f64 (/.f64 C (/.f64 (*.f64 A A) B)) (/.f64 B A))))) (log.f64 (PI.f64)))))
52.1b
(*.f64 180 (/.f64 (atan.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (+.f64 (/.f64 C (/.f64 (*.f64 A A) B)) (/.f64 B A))) (sqrt.f64 (+.f64 (/.f64 C (/.f64 (*.f64 A A) B)) (/.f64 B A)))))) (PI.f64)))
48.6b
(*.f64 180 (/.f64 (atan.f64 (*.f64 -1/2 (/.f64 B C))) (PI.f64)))
45.8b
(*.f64 (*.f64 180 (*.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))))) (/.f64 (cbrt.f64 (atan.f64 (*.f64 1/2 (+.f64 (/.f64 C (/.f64 (*.f64 A A) B)) (/.f64 B A))))) (PI.f64)))
Compiler

Compiled 6020 to 2585 computations (57.1% saved)

regimes1000.0ms (9.5%)

Accuracy

Total 12.1b remaining (97.3%)

Threshold costs 0b (0%)

Counts
114 → 4
Compiler

Compiled 18228 to 12579 computations (31% saved)

bsearch220.0ms (2.1%)

Steps
ItersRangePoint
8
-7.294645781180627e-87
-2.8900879796133787e-90
-7.205558733068473e-87
8
-1.235277286249337e-52
-4.2582190071545396e-55
-4.310305532084718e-55
9
-6.024191267419436e+118
-3.229007630929998e+111
-2.783231107200671e+114
Compiler

Compiled 4 to 3 computations (25% saved)

simplify6.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
048114
165114
277114
385114
488114
587114

end170.0ms (1.6%)

Compiler

Compiled 391 to 261 computations (33.2% saved)

Profiling

Loading profile data...