Details

Time bar (total: 14.9s)

analyze276.0ms (1.9%)

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.2s (21.7%)

Results
957.0ms5555×body128valid
938.0ms887×body4096valid
775.0ms926×body2048valid
312.0ms501×body1024valid
122.0ms253×body512valid
44.0ms134×body256valid
Compiler

Compiled 80 to 62 computations (22.5% saved)

simplify63.0ms (0.4%)

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
15.6b
Counts
3 → 2
Alt Table
StatusErrorProgram
15.8b
(*.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)

localize10.0ms (0.1%)

Local error

Found 4 expressions with local error:

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

series191.0ms (1.3%)

Counts
4 → 144
Calls

4 calls:

67.0ms
(-.f64 (-.f64 C A) (hypot.f64 B (-.f64 C A)))
52.0ms
(hypot.f64 B (-.f64 C A))
41.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))

rewrite34.0ms (0.2%)

Algorithm
rewrite-expression-head
Rules
52×add-sqr-sqrt_binary64
50×*-un-lft-identity_binary64
37×add-cube-cbrt_binary64
24×prod-diff_binary64
19×times-frac_binary64
Counts
4 → 127
Calls

4 calls:

10.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))
0.0ms
(hypot.f64 B (-.f64 C A))

simplify192.0ms (1.3%)

Algorithm
egg-herbie
Rules
711×fma-neg_binary64
556×fma-def_binary64
230×associate-*l*_binary64
229×associate-*r*_binary64
211×associate--l+_binary64
Counts
271 → 324
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
05449108
115117967
248957966
354987966

prune338.0ms (2.3%)

Pruning

12 alts after pruning (12 fresh and 0 done)

PrunedKeptTotal
New31212324
Fresh101
Picked101
Done000
Total31412326
Error
7.1b
Counts
326 → 12
Alt Table
StatusErrorProgram
52.9b
(*.f64 180 (/.f64 (atan.f64 (/.f64 B B)) (PI.f64)))
15.7b
(*.f64 (*.f64 180 (/.f64 1 (sqrt.f64 (PI.f64)))) (/.f64 (atan.f64 (/.f64 (-.f64 (-.f64 C A) (hypot.f64 B (-.f64 C A))) B)) (sqrt.f64 (PI.f64))))
54.0b
(*.f64 180 (/.f64 (atan.f64 (/.f64 (+.f64 (fma.f64 (sqrt.f64 (-.f64 C A)) (sqrt.f64 (-.f64 C A)) (neg.f64 (*.f64 (cbrt.f64 (hypot.f64 B (-.f64 C A))) (*.f64 (cbrt.f64 (hypot.f64 B (-.f64 C A))) (cbrt.f64 (hypot.f64 B (-.f64 C A))))))) (fma.f64 (neg.f64 (cbrt.f64 (hypot.f64 B (-.f64 C A)))) (*.f64 (cbrt.f64 (hypot.f64 B (-.f64 C A))) (cbrt.f64 (hypot.f64 B (-.f64 C A)))) (*.f64 (cbrt.f64 (hypot.f64 B (-.f64 C A))) (*.f64 (cbrt.f64 (hypot.f64 B (-.f64 C A))) (cbrt.f64 (hypot.f64 B (-.f64 C A))))))) B)) (PI.f64)))
56.4b
(*.f64 180 (/.f64 (atan.f64 (/.f64 (-.f64 (*.f64 1/8 (/.f64 (pow.f64 B 4) (pow.f64 C 3))) (*.f64 1/2 (+.f64 (/.f64 (*.f64 B B) C) (+.f64 (/.f64 (*.f64 A (*.f64 A (*.f64 B B))) (pow.f64 C 3)) (/.f64 (*.f64 A (*.f64 B B)) (*.f64 C C)))))) B)) (PI.f64)))
37.3b
(*.f64 180 (exp.f64 (-.f64 (log.f64 (atan.f64 (/.f64 (-.f64 (-.f64 C A) (hypot.f64 B (-.f64 C A))) B))) (log.f64 (PI.f64)))))
48.1b
(*.f64 180 (/.f64 (atan.f64 (/.f64 (*.f64 -1/2 (/.f64 (pow.f64 B 2) C)) B)) (PI.f64)))
21.9b
(*.f64 180 (/.f64 (atan.f64 (/.f64 (+.f64 (fma.f64 1 (-.f64 C A) (neg.f64 (*.f64 (sqrt.f64 (hypot.f64 B (-.f64 C A))) (sqrt.f64 (hypot.f64 B (-.f64 C A)))))) (fma.f64 (neg.f64 (sqrt.f64 (hypot.f64 B (-.f64 C A)))) (sqrt.f64 (hypot.f64 B (-.f64 C A))) (*.f64 (sqrt.f64 (hypot.f64 B (-.f64 C A))) (sqrt.f64 (hypot.f64 B (-.f64 C A)))))) B)) (PI.f64)))
49.4b
(*.f64 180 (/.f64 (atan.f64 (/.f64 (neg.f64 B) B)) (PI.f64)))
58.1b
(*.f64 180 (/.f64 (atan.f64 (/.f64 (-.f64 (fma.f64 1/2 (/.f64 (*.f64 (*.f64 B B) (pow.f64 C 3)) (pow.f64 A 4)) (*.f64 1/2 (+.f64 (+.f64 (/.f64 (*.f64 (*.f64 B B) C) (*.f64 A A)) (/.f64 (*.f64 B B) A)) (/.f64 (*.f64 (*.f64 B B) (*.f64 C C)) (pow.f64 A 3))))) (fma.f64 1/8 (/.f64 (pow.f64 B 4) (pow.f64 A 3)) (*.f64 3/8 (/.f64 (*.f64 C (pow.f64 B 4)) (pow.f64 A 4))))) B)) (PI.f64)))
26.5b
(*.f64 180 (/.f64 (atan.f64 (/.f64 (-.f64 (fma.f64 (*.f64 A C) (sqrt.f64 (/.f64 1 (fma.f64 A A (*.f64 B B)))) C) (+.f64 A (hypot.f64 A B))) B)) (PI.f64)))
37.7b
(*.f64 180 (/.f64 (atan.f64 (/.f64 (*.f64 -1 (+.f64 A (sqrt.f64 (+.f64 (pow.f64 A 2) (pow.f64 B 2))))) B)) (PI.f64)))
47.4b
(*.f64 180 (/.f64 (atan.f64 (/.f64 (*.f64 1/2 (/.f64 (pow.f64 B 2) A)) B)) (PI.f64)))
Compiler

Compiled 12606 to 5368 computations (57.4% saved)

localize13.0ms (0.1%)

Local error

Found 4 expressions with local error:

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

series82.0ms (0.5%)

Counts
3 → 72
Calls

3 calls:

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

rewrite54.0ms (0.4%)

Algorithm
rewrite-expression-head
Rules
40×add-exp-log_binary64
36×times-frac_binary64
33×add-sqr-sqrt_binary64
32×*-un-lft-identity_binary64
32×add-cube-cbrt_binary64
Counts
3 → 112
Calls

3 calls:

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

simplify267.0ms (1.8%)

Algorithm
egg-herbie
Rules
573×fma-neg_binary64
448×associate-/l*_binary64
376×div-sub_binary64
355×fma-def_binary64
334×*-commutative_binary64
Counts
184 → 161
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01636017
13595230
212095230
325395116
429845116
538615116
645855116
751975116

prune306.0ms (2.1%)

Pruning

13 alts after pruning (12 fresh and 1 done)

PrunedKeptTotal
New3113314
Fresh2911
Picked011
Done000
Total31313326
Error
7.1b
Counts
326 → 13
Alt Table
StatusErrorProgram
52.9b
(*.f64 180 (/.f64 (atan.f64 (/.f64 B B)) (PI.f64)))
15.7b
(*.f64 (*.f64 180 (/.f64 1 (sqrt.f64 (PI.f64)))) (/.f64 (atan.f64 (/.f64 (-.f64 (-.f64 C A) (hypot.f64 B (-.f64 C A))) B)) (sqrt.f64 (PI.f64))))
54.0b
(*.f64 180 (/.f64 (atan.f64 (/.f64 (+.f64 (fma.f64 (sqrt.f64 (-.f64 C A)) (sqrt.f64 (-.f64 C A)) (neg.f64 (*.f64 (cbrt.f64 (hypot.f64 B (-.f64 C A))) (*.f64 (cbrt.f64 (hypot.f64 B (-.f64 C A))) (cbrt.f64 (hypot.f64 B (-.f64 C A))))))) (fma.f64 (neg.f64 (cbrt.f64 (hypot.f64 B (-.f64 C A)))) (*.f64 (cbrt.f64 (hypot.f64 B (-.f64 C A))) (cbrt.f64 (hypot.f64 B (-.f64 C A)))) (*.f64 (cbrt.f64 (hypot.f64 B (-.f64 C A))) (*.f64 (cbrt.f64 (hypot.f64 B (-.f64 C A))) (cbrt.f64 (hypot.f64 B (-.f64 C A))))))) B)) (PI.f64)))
56.4b
(*.f64 180 (/.f64 (atan.f64 (/.f64 (-.f64 (*.f64 1/8 (/.f64 (pow.f64 B 4) (pow.f64 C 3))) (*.f64 1/2 (+.f64 (/.f64 (*.f64 B B) C) (+.f64 (/.f64 (*.f64 A (*.f64 A (*.f64 B B))) (pow.f64 C 3)) (/.f64 (*.f64 A (*.f64 B B)) (*.f64 C C)))))) B)) (PI.f64)))
21.9b
(*.f64 (*.f64 180 (/.f64 1 (sqrt.f64 (PI.f64)))) (/.f64 (atan.f64 (/.f64 (+.f64 (fma.f64 1 (-.f64 C A) (neg.f64 (*.f64 (sqrt.f64 (hypot.f64 B (-.f64 C A))) (sqrt.f64 (hypot.f64 B (-.f64 C A)))))) (fma.f64 (neg.f64 (sqrt.f64 (hypot.f64 B (-.f64 C A)))) (sqrt.f64 (hypot.f64 B (-.f64 C A))) (*.f64 (sqrt.f64 (hypot.f64 B (-.f64 C A))) (sqrt.f64 (hypot.f64 B (-.f64 C A)))))) B)) (sqrt.f64 (PI.f64))))
49.4b
(*.f64 180 (/.f64 (atan.f64 (/.f64 (neg.f64 B) B)) (PI.f64)))
37.3b
(*.f64 180 (exp.f64 (-.f64 (log.f64 (atan.f64 (/.f64 (-.f64 (-.f64 C A) (hypot.f64 B (-.f64 C A))) B))) (log.f64 (PI.f64)))))
48.1b
(*.f64 180 (/.f64 (atan.f64 (/.f64 (*.f64 -1/2 (/.f64 (pow.f64 B 2) C)) B)) (PI.f64)))
47.4b
(*.f64 180 (/.f64 (atan.f64 (/.f64 (*.f64 1/2 (/.f64 (pow.f64 B 2) A)) B)) (PI.f64)))
47.3b
(*.f64 (*.f64 180 (/.f64 1 (sqrt.f64 (PI.f64)))) (/.f64 (atan.f64 (/.f64 (*.f64 1/2 (/.f64 (*.f64 B B) A)) B)) (sqrt.f64 (PI.f64))))
26.5b
(*.f64 180 (/.f64 (atan.f64 (/.f64 (-.f64 (fma.f64 (*.f64 A C) (sqrt.f64 (/.f64 1 (fma.f64 A A (*.f64 B B)))) C) (+.f64 A (hypot.f64 A B))) B)) (PI.f64)))
37.7b
(*.f64 180 (/.f64 (atan.f64 (/.f64 (*.f64 -1 (+.f64 A (sqrt.f64 (+.f64 (pow.f64 A 2) (pow.f64 B 2))))) B)) (PI.f64)))
58.1b
(*.f64 (*.f64 180 (/.f64 1 (sqrt.f64 (PI.f64)))) (/.f64 (atan.f64 (/.f64 (-.f64 (fma.f64 1/2 (/.f64 (*.f64 (*.f64 B B) (pow.f64 C 3)) (pow.f64 A 4)) (*.f64 1/2 (+.f64 (+.f64 (/.f64 (*.f64 (*.f64 B B) C) (*.f64 A A)) (/.f64 (*.f64 B B) A)) (/.f64 (*.f64 (*.f64 B B) (*.f64 C C)) (pow.f64 A 3))))) (fma.f64 1/8 (/.f64 (pow.f64 B 4) (pow.f64 A 3)) (*.f64 3/8 (/.f64 (*.f64 C (pow.f64 B 4)) (pow.f64 A 4))))) B)) (sqrt.f64 (PI.f64))))
Compiler

Compiled 12819 to 4632 computations (63.9% saved)

localize20.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.8b
(/.f64 (atan.f64 (/.f64 (+.f64 (fma.f64 1 (-.f64 C A) (neg.f64 (*.f64 (sqrt.f64 (hypot.f64 B (-.f64 C A))) (sqrt.f64 (hypot.f64 B (-.f64 C A)))))) (fma.f64 (neg.f64 (sqrt.f64 (hypot.f64 B (-.f64 C A)))) (sqrt.f64 (hypot.f64 B (-.f64 C A))) (*.f64 (sqrt.f64 (hypot.f64 B (-.f64 C A))) (sqrt.f64 (hypot.f64 B (-.f64 C A)))))) B)) (sqrt.f64 (PI.f64)))
1.0b
(sqrt.f64 (PI.f64))
10.4b
(fma.f64 1 (-.f64 C A) (neg.f64 (*.f64 (sqrt.f64 (hypot.f64 B (-.f64 C A))) (sqrt.f64 (hypot.f64 B (-.f64 C A))))))
62.4b
(fma.f64 (neg.f64 (sqrt.f64 (hypot.f64 B (-.f64 C A)))) (sqrt.f64 (hypot.f64 B (-.f64 C A))) (*.f64 (sqrt.f64 (hypot.f64 B (-.f64 C A))) (sqrt.f64 (hypot.f64 B (-.f64 C A)))))

series6.7s (45.1%)

Counts
3 → 90
Calls

3 calls:

6.6s
(fma.f64 (neg.f64 (sqrt.f64 (hypot.f64 B (-.f64 C A)))) (sqrt.f64 (hypot.f64 B (-.f64 C A))) (*.f64 (sqrt.f64 (hypot.f64 B (-.f64 C A))) (sqrt.f64 (hypot.f64 B (-.f64 C A)))))
59.0ms
(fma.f64 1 (-.f64 C A) (neg.f64 (*.f64 (sqrt.f64 (hypot.f64 B (-.f64 C A))) (sqrt.f64 (hypot.f64 B (-.f64 C A))))))
57.0ms
(/.f64 (atan.f64 (/.f64 (+.f64 (fma.f64 1 (-.f64 C A) (neg.f64 (*.f64 (sqrt.f64 (hypot.f64 B (-.f64 C A))) (sqrt.f64 (hypot.f64 B (-.f64 C A)))))) (fma.f64 (neg.f64 (sqrt.f64 (hypot.f64 B (-.f64 C A)))) (sqrt.f64 (hypot.f64 B (-.f64 C A))) (*.f64 (sqrt.f64 (hypot.f64 B (-.f64 C A))) (sqrt.f64 (hypot.f64 B (-.f64 C A)))))) B)) (sqrt.f64 (PI.f64)))

rewrite14.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
18×times-frac_binary64
18×*-un-lft-identity_binary64
18×add-sqr-sqrt_binary64
18×add-cube-cbrt_binary64
12×sqrt-prod_binary64
Counts
3 → 61
Calls

3 calls:

3.0ms
(/.f64 (atan.f64 (/.f64 (+.f64 (fma.f64 1 (-.f64 C A) (neg.f64 (*.f64 (sqrt.f64 (hypot.f64 B (-.f64 C A))) (sqrt.f64 (hypot.f64 B (-.f64 C A)))))) (fma.f64 (neg.f64 (sqrt.f64 (hypot.f64 B (-.f64 C A)))) (sqrt.f64 (hypot.f64 B (-.f64 C A))) (*.f64 (sqrt.f64 (hypot.f64 B (-.f64 C A))) (sqrt.f64 (hypot.f64 B (-.f64 C A)))))) B)) (sqrt.f64 (PI.f64)))
0.0ms
(fma.f64 (neg.f64 (sqrt.f64 (hypot.f64 B (-.f64 C A)))) (sqrt.f64 (hypot.f64 B (-.f64 C A))) (*.f64 (sqrt.f64 (hypot.f64 B (-.f64 C A))) (sqrt.f64 (hypot.f64 B (-.f64 C A)))))
0.0ms
(fma.f64 1 (-.f64 C A) (neg.f64 (*.f64 (sqrt.f64 (hypot.f64 B (-.f64 C A))) (sqrt.f64 (hypot.f64 B (-.f64 C A))))))

simplify161.0ms (1.1%)

Algorithm
egg-herbie
Rules
427×fma-neg_binary64
401×fma-def_binary64
257×+-commutative_binary64
255×associate-+r+_binary64
204×associate-*r*_binary64
Counts
151 → 185
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
04418303
112106447
245556444
349736444

prune283.0ms (1.9%)

Pruning

15 alts after pruning (14 fresh and 1 done)

PrunedKeptTotal
New2143217
Fresh01111
Picked101
Done011
Total21515230
Error
7.1b
Counts
230 → 15
Alt Table
StatusErrorProgram
52.9b
(*.f64 180 (/.f64 (atan.f64 (/.f64 B B)) (PI.f64)))
15.7b
(*.f64 (*.f64 180 (/.f64 1 (sqrt.f64 (PI.f64)))) (/.f64 (atan.f64 (/.f64 (-.f64 (-.f64 C A) (hypot.f64 B (-.f64 C A))) B)) (sqrt.f64 (PI.f64))))
54.0b
(*.f64 180 (/.f64 (atan.f64 (/.f64 (+.f64 (fma.f64 (sqrt.f64 (-.f64 C A)) (sqrt.f64 (-.f64 C A)) (neg.f64 (*.f64 (cbrt.f64 (hypot.f64 B (-.f64 C A))) (*.f64 (cbrt.f64 (hypot.f64 B (-.f64 C A))) (cbrt.f64 (hypot.f64 B (-.f64 C A))))))) (fma.f64 (neg.f64 (cbrt.f64 (hypot.f64 B (-.f64 C A)))) (*.f64 (cbrt.f64 (hypot.f64 B (-.f64 C A))) (cbrt.f64 (hypot.f64 B (-.f64 C A)))) (*.f64 (cbrt.f64 (hypot.f64 B (-.f64 C A))) (*.f64 (cbrt.f64 (hypot.f64 B (-.f64 C A))) (cbrt.f64 (hypot.f64 B (-.f64 C A))))))) B)) (PI.f64)))
56.4b
(*.f64 180 (/.f64 (atan.f64 (/.f64 (-.f64 (*.f64 1/8 (/.f64 (pow.f64 B 4) (pow.f64 C 3))) (*.f64 1/2 (+.f64 (/.f64 (*.f64 B B) C) (+.f64 (/.f64 (*.f64 A (*.f64 A (*.f64 B B))) (pow.f64 C 3)) (/.f64 (*.f64 A (*.f64 B B)) (*.f64 C C)))))) B)) (PI.f64)))
37.3b
(*.f64 180 (exp.f64 (-.f64 (log.f64 (atan.f64 (/.f64 (-.f64 (-.f64 C A) (hypot.f64 B (-.f64 C A))) B))) (log.f64 (PI.f64)))))
48.1b
(*.f64 180 (/.f64 (atan.f64 (/.f64 (*.f64 -1/2 (/.f64 (pow.f64 B 2) C)) B)) (PI.f64)))
47.4b
(*.f64 180 (/.f64 (atan.f64 (/.f64 (*.f64 1/2 (/.f64 (pow.f64 B 2) A)) B)) (PI.f64)))
47.3b
(*.f64 (*.f64 180 (/.f64 1 (sqrt.f64 (PI.f64)))) (/.f64 (atan.f64 (/.f64 (*.f64 1/2 (/.f64 (*.f64 B B) A)) B)) (sqrt.f64 (PI.f64))))
22.1b
(*.f64 (*.f64 180 (/.f64 1 (sqrt.f64 (PI.f64)))) (log.f64 (exp.f64 (/.f64 (atan.f64 (/.f64 (+.f64 (fma.f64 1 (-.f64 C A) (neg.f64 (*.f64 (sqrt.f64 (hypot.f64 B (-.f64 C A))) (sqrt.f64 (hypot.f64 B (-.f64 C A)))))) (fma.f64 (neg.f64 (sqrt.f64 (hypot.f64 B (-.f64 C A)))) (sqrt.f64 (hypot.f64 B (-.f64 C A))) (*.f64 (sqrt.f64 (hypot.f64 B (-.f64 C A))) (sqrt.f64 (hypot.f64 B (-.f64 C A)))))) B)) (sqrt.f64 (PI.f64))))))
49.4b
(*.f64 180 (/.f64 (atan.f64 (/.f64 (neg.f64 B) B)) (PI.f64)))
26.5b
(*.f64 180 (/.f64 (atan.f64 (/.f64 (-.f64 (fma.f64 (*.f64 A C) (sqrt.f64 (/.f64 1 (fma.f64 A A (*.f64 B B)))) C) (+.f64 A (hypot.f64 A B))) B)) (PI.f64)))
37.7b
(*.f64 180 (/.f64 (atan.f64 (/.f64 (*.f64 -1 (+.f64 A (sqrt.f64 (+.f64 (pow.f64 A 2) (pow.f64 B 2))))) B)) (PI.f64)))
23.2b
(*.f64 (*.f64 180 (/.f64 1 (sqrt.f64 (PI.f64)))) (*.f64 (/.f64 (*.f64 (cbrt.f64 (atan.f64 (/.f64 (+.f64 (fma.f64 1 (-.f64 C A) (neg.f64 (*.f64 (sqrt.f64 (hypot.f64 B (-.f64 C A))) (sqrt.f64 (hypot.f64 B (-.f64 C A)))))) (fma.f64 (neg.f64 (sqrt.f64 (hypot.f64 B (-.f64 C A)))) (sqrt.f64 (hypot.f64 B (-.f64 C A))) (*.f64 (sqrt.f64 (hypot.f64 B (-.f64 C A))) (sqrt.f64 (hypot.f64 B (-.f64 C A)))))) B))) (cbrt.f64 (atan.f64 (/.f64 (+.f64 (fma.f64 1 (-.f64 C A) (neg.f64 (*.f64 (sqrt.f64 (hypot.f64 B (-.f64 C A))) (sqrt.f64 (hypot.f64 B (-.f64 C A)))))) (fma.f64 (neg.f64 (sqrt.f64 (hypot.f64 B (-.f64 C A)))) (sqrt.f64 (hypot.f64 B (-.f64 C A))) (*.f64 (sqrt.f64 (hypot.f64 B (-.f64 C A))) (sqrt.f64 (hypot.f64 B (-.f64 C A)))))) B)))) (sqrt.f64 (sqrt.f64 (PI.f64)))) (/.f64 (cbrt.f64 (atan.f64 (/.f64 (+.f64 (fma.f64 1 (-.f64 C A) (neg.f64 (*.f64 (sqrt.f64 (hypot.f64 B (-.f64 C A))) (sqrt.f64 (hypot.f64 B (-.f64 C A)))))) (fma.f64 (neg.f64 (sqrt.f64 (hypot.f64 B (-.f64 C A)))) (sqrt.f64 (hypot.f64 B (-.f64 C A))) (*.f64 (sqrt.f64 (hypot.f64 B (-.f64 C A))) (sqrt.f64 (hypot.f64 B (-.f64 C A)))))) B))) (sqrt.f64 (sqrt.f64 (PI.f64))))))
22.5b
(*.f64 (*.f64 180 (/.f64 1 (sqrt.f64 (PI.f64)))) (/.f64 (atan.f64 (/.f64 (+.f64 (fma.f64 1 (-.f64 C A) (neg.f64 (*.f64 (sqrt.f64 (hypot.f64 B (-.f64 C A))) (sqrt.f64 (hypot.f64 B (-.f64 C A)))))) (neg.f64 C)) B)) (sqrt.f64 (PI.f64))))
58.1b
(*.f64 (*.f64 180 (/.f64 1 (sqrt.f64 (PI.f64)))) (/.f64 (atan.f64 (/.f64 (-.f64 (fma.f64 1/2 (/.f64 (*.f64 (*.f64 B B) (pow.f64 C 3)) (pow.f64 A 4)) (*.f64 1/2 (+.f64 (+.f64 (/.f64 (*.f64 (*.f64 B B) C) (*.f64 A A)) (/.f64 (*.f64 B B) A)) (/.f64 (*.f64 (*.f64 B B) (*.f64 C C)) (pow.f64 A 3))))) (fma.f64 1/8 (/.f64 (pow.f64 B 4) (pow.f64 A 3)) (*.f64 3/8 (/.f64 (*.f64 C (pow.f64 B 4)) (pow.f64 A 4))))) B)) (sqrt.f64 (PI.f64))))
Compiler

Compiled 17866 to 5809 computations (67.5% saved)

localize23.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
1.0b
(sqrt.f64 (PI.f64))
1.4b
(log.f64 (exp.f64 (/.f64 (atan.f64 (/.f64 (+.f64 (fma.f64 1 (-.f64 C A) (neg.f64 (*.f64 (sqrt.f64 (hypot.f64 B (-.f64 C A))) (sqrt.f64 (hypot.f64 B (-.f64 C A)))))) (fma.f64 (neg.f64 (sqrt.f64 (hypot.f64 B (-.f64 C A)))) (sqrt.f64 (hypot.f64 B (-.f64 C A))) (*.f64 (sqrt.f64 (hypot.f64 B (-.f64 C A))) (sqrt.f64 (hypot.f64 B (-.f64 C A)))))) B)) (sqrt.f64 (PI.f64)))))
10.4b
(fma.f64 1 (-.f64 C A) (neg.f64 (*.f64 (sqrt.f64 (hypot.f64 B (-.f64 C A))) (sqrt.f64 (hypot.f64 B (-.f64 C A))))))
62.4b
(fma.f64 (neg.f64 (sqrt.f64 (hypot.f64 B (-.f64 C A)))) (sqrt.f64 (hypot.f64 B (-.f64 C A))) (*.f64 (sqrt.f64 (hypot.f64 B (-.f64 C A))) (sqrt.f64 (hypot.f64 B (-.f64 C A)))))

series56.0ms (0.4%)

Counts
1 → 36
Calls

1 calls:

56.0ms
(log.f64 (exp.f64 (/.f64 (atan.f64 (/.f64 (+.f64 (fma.f64 1 (-.f64 C A) (neg.f64 (*.f64 (sqrt.f64 (hypot.f64 B (-.f64 C A))) (sqrt.f64 (hypot.f64 B (-.f64 C A)))))) (fma.f64 (neg.f64 (sqrt.f64 (hypot.f64 B (-.f64 C A)))) (sqrt.f64 (hypot.f64 B (-.f64 C A))) (*.f64 (sqrt.f64 (hypot.f64 B (-.f64 C A))) (sqrt.f64 (hypot.f64 B (-.f64 C A)))))) B)) (sqrt.f64 (PI.f64)))))

rewrite17.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
23×log-pow_binary64
22×exp-prod_binary64
18×times-frac_binary64
15×*-un-lft-identity_binary64
15×add-sqr-sqrt_binary64
Counts
1 → 36
Calls

1 calls:

5.0ms
(log.f64 (exp.f64 (/.f64 (atan.f64 (/.f64 (+.f64 (fma.f64 1 (-.f64 C A) (neg.f64 (*.f64 (sqrt.f64 (hypot.f64 B (-.f64 C A))) (sqrt.f64 (hypot.f64 B (-.f64 C A)))))) (fma.f64 (neg.f64 (sqrt.f64 (hypot.f64 B (-.f64 C A)))) (sqrt.f64 (hypot.f64 B (-.f64 C A))) (*.f64 (sqrt.f64 (hypot.f64 B (-.f64 C A))) (sqrt.f64 (hypot.f64 B (-.f64 C A)))))) B)) (sqrt.f64 (PI.f64)))))

simplify133.0ms (0.9%)

Algorithm
egg-herbie
Rules
617×unsub-neg_binary64
589×div-sub_binary64
357×times-frac_binary64
327×sub-neg_binary64
251×+-commutative_binary64
Counts
72 → 60
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01023851
11292892
22272004
33882004
48332004
522052004
637072004
750902004

prune248.0ms (1.7%)

Pruning

14 alts after pruning (13 fresh and 1 done)

PrunedKeptTotal
New2102212
Fresh21113
Picked101
Done011
Total21314227
Error
7.1b
Counts
227 → 14
Alt Table
StatusErrorProgram
52.9b
(*.f64 180 (/.f64 (atan.f64 (/.f64 B B)) (PI.f64)))
15.7b
(*.f64 (*.f64 180 (/.f64 1 (sqrt.f64 (PI.f64)))) (/.f64 (atan.f64 (/.f64 (-.f64 (-.f64 C A) (hypot.f64 B (-.f64 C A))) B)) (sqrt.f64 (PI.f64))))
22.5b
(*.f64 (*.f64 180 (/.f64 1 (sqrt.f64 (PI.f64)))) (+.f64 (log.f64 (sqrt.f64 (exp.f64 (/.f64 (atan.f64 (/.f64 (+.f64 (fma.f64 1 (-.f64 C A) (neg.f64 (*.f64 (sqrt.f64 (hypot.f64 B (-.f64 C A))) (sqrt.f64 (hypot.f64 B (-.f64 C A)))))) (fma.f64 (neg.f64 (sqrt.f64 (hypot.f64 B (-.f64 C A)))) (sqrt.f64 (hypot.f64 B (-.f64 C A))) (*.f64 (sqrt.f64 (hypot.f64 B (-.f64 C A))) (sqrt.f64 (hypot.f64 B (-.f64 C A)))))) B)) (sqrt.f64 (PI.f64)))))) (log.f64 (sqrt.f64 (exp.f64 (/.f64 (atan.f64 (/.f64 (+.f64 (fma.f64 1 (-.f64 C A) (neg.f64 (*.f64 (sqrt.f64 (hypot.f64 B (-.f64 C A))) (sqrt.f64 (hypot.f64 B (-.f64 C A)))))) (fma.f64 (neg.f64 (sqrt.f64 (hypot.f64 B (-.f64 C A)))) (sqrt.f64 (hypot.f64 B (-.f64 C A))) (*.f64 (sqrt.f64 (hypot.f64 B (-.f64 C A))) (sqrt.f64 (hypot.f64 B (-.f64 C A)))))) B)) (sqrt.f64 (PI.f64))))))))
54.0b
(*.f64 180 (/.f64 (atan.f64 (/.f64 (+.f64 (fma.f64 (sqrt.f64 (-.f64 C A)) (sqrt.f64 (-.f64 C A)) (neg.f64 (*.f64 (cbrt.f64 (hypot.f64 B (-.f64 C A))) (*.f64 (cbrt.f64 (hypot.f64 B (-.f64 C A))) (cbrt.f64 (hypot.f64 B (-.f64 C A))))))) (fma.f64 (neg.f64 (cbrt.f64 (hypot.f64 B (-.f64 C A)))) (*.f64 (cbrt.f64 (hypot.f64 B (-.f64 C A))) (cbrt.f64 (hypot.f64 B (-.f64 C A)))) (*.f64 (cbrt.f64 (hypot.f64 B (-.f64 C A))) (*.f64 (cbrt.f64 (hypot.f64 B (-.f64 C A))) (cbrt.f64 (hypot.f64 B (-.f64 C A))))))) B)) (PI.f64)))
56.4b
(*.f64 180 (/.f64 (atan.f64 (/.f64 (-.f64 (*.f64 1/8 (/.f64 (pow.f64 B 4) (pow.f64 C 3))) (*.f64 1/2 (+.f64 (/.f64 (*.f64 B B) C) (+.f64 (/.f64 (*.f64 A (*.f64 A (*.f64 B B))) (pow.f64 C 3)) (/.f64 (*.f64 A (*.f64 B B)) (*.f64 C C)))))) B)) (PI.f64)))
22.6b
(*.f64 (*.f64 180 (/.f64 1 (sqrt.f64 (PI.f64)))) (+.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (/.f64 (atan.f64 (/.f64 (+.f64 (fma.f64 1 (-.f64 C A) (neg.f64 (*.f64 (sqrt.f64 (hypot.f64 B (-.f64 C A))) (sqrt.f64 (hypot.f64 B (-.f64 C A)))))) (fma.f64 (neg.f64 (sqrt.f64 (hypot.f64 B (-.f64 C A)))) (sqrt.f64 (hypot.f64 B (-.f64 C A))) (*.f64 (sqrt.f64 (hypot.f64 B (-.f64 C A))) (sqrt.f64 (hypot.f64 B (-.f64 C A)))))) B)) (sqrt.f64 (PI.f64))))) (cbrt.f64 (exp.f64 (/.f64 (atan.f64 (/.f64 (+.f64 (fma.f64 1 (-.f64 C A) (neg.f64 (*.f64 (sqrt.f64 (hypot.f64 B (-.f64 C A))) (sqrt.f64 (hypot.f64 B (-.f64 C A)))))) (fma.f64 (neg.f64 (sqrt.f64 (hypot.f64 B (-.f64 C A)))) (sqrt.f64 (hypot.f64 B (-.f64 C A))) (*.f64 (sqrt.f64 (hypot.f64 B (-.f64 C A))) (sqrt.f64 (hypot.f64 B (-.f64 C A)))))) B)) (sqrt.f64 (PI.f64))))))) (log.f64 (cbrt.f64 (exp.f64 (/.f64 (atan.f64 (/.f64 (+.f64 (fma.f64 1 (-.f64 C A) (neg.f64 (*.f64 (sqrt.f64 (hypot.f64 B (-.f64 C A))) (sqrt.f64 (hypot.f64 B (-.f64 C A)))))) (fma.f64 (neg.f64 (sqrt.f64 (hypot.f64 B (-.f64 C A)))) (sqrt.f64 (hypot.f64 B (-.f64 C A))) (*.f64 (sqrt.f64 (hypot.f64 B (-.f64 C A))) (sqrt.f64 (hypot.f64 B (-.f64 C A)))))) B)) (sqrt.f64 (PI.f64))))))))
47.4b
(*.f64 180 (/.f64 (atan.f64 (/.f64 (*.f64 1/2 (/.f64 (pow.f64 B 2) A)) B)) (PI.f64)))
47.3b
(*.f64 (*.f64 180 (/.f64 1 (sqrt.f64 (PI.f64)))) (/.f64 (atan.f64 (/.f64 (*.f64 1/2 (/.f64 (*.f64 B B) A)) B)) (sqrt.f64 (PI.f64))))
49.4b
(*.f64 180 (/.f64 (atan.f64 (/.f64 (neg.f64 B) B)) (PI.f64)))
48.1b
(*.f64 180 (/.f64 (atan.f64 (/.f64 (*.f64 -1/2 (/.f64 (pow.f64 B 2) C)) B)) (PI.f64)))
26.5b
(*.f64 180 (/.f64 (atan.f64 (/.f64 (-.f64 (fma.f64 (*.f64 A C) (sqrt.f64 (/.f64 1 (fma.f64 A A (*.f64 B B)))) C) (+.f64 A (hypot.f64 A B))) B)) (PI.f64)))
37.7b
(*.f64 180 (/.f64 (atan.f64 (/.f64 (*.f64 -1 (+.f64 A (sqrt.f64 (+.f64 (pow.f64 A 2) (pow.f64 B 2))))) B)) (PI.f64)))
22.5b
(*.f64 (*.f64 180 (/.f64 1 (sqrt.f64 (PI.f64)))) (/.f64 (atan.f64 (/.f64 (+.f64 (fma.f64 1 (-.f64 C A) (neg.f64 (*.f64 (sqrt.f64 (hypot.f64 B (-.f64 C A))) (sqrt.f64 (hypot.f64 B (-.f64 C A)))))) (neg.f64 C)) B)) (sqrt.f64 (PI.f64))))
58.1b
(*.f64 (*.f64 180 (/.f64 1 (sqrt.f64 (PI.f64)))) (/.f64 (atan.f64 (/.f64 (-.f64 (fma.f64 1/2 (/.f64 (*.f64 (*.f64 B B) (pow.f64 C 3)) (pow.f64 A 4)) (*.f64 1/2 (+.f64 (+.f64 (/.f64 (*.f64 (*.f64 B B) C) (*.f64 A A)) (/.f64 (*.f64 B B) A)) (/.f64 (*.f64 (*.f64 B B) (*.f64 C C)) (pow.f64 A 3))))) (fma.f64 1/8 (/.f64 (pow.f64 B 4) (pow.f64 A 3)) (*.f64 3/8 (/.f64 (*.f64 C (pow.f64 B 4)) (pow.f64 A 4))))) B)) (sqrt.f64 (PI.f64))))
Compiler

Compiled 17537 to 5661 computations (67.7% saved)

regimes1.8s (11.8%)

Accuracy

Total 7.1b remaining (53.3%)

Threshold costs 0b (0%)

Counts
200 → 2
Compiler

Compiled 51009 to 26560 computations (47.9% saved)

bsearch102.0ms (0.7%)

Steps
ItersRangePoint
9
-1.0494353104400879e+155
-1.2731922880892132e+147
-2.259626659035608e+150
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
02964
13964
24664
35064
45264
55164

end285.0ms (1.9%)

Compiler

Compiled 793 to 377 computations (52.5% saved)

Profiling

Loading profile data...