ABCF->ab-angle angle

Time bar (total: 6.4s)

analyze97.0ms (1.5%)

Memory
0.2MiB live, 32.3MiB allocated
Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.9%0.1%0%0%0%0
0%0%99.9%0.1%0%0%0%1
0%0%99.9%0.1%0%0%0%2
50%49.9%49.9%0.1%0%0%0%3
50%49.9%49.9%0.1%0%0%0%4
50%49.9%49.9%0.1%0%0%0%5
75%74.9%25%0.1%0%0%0%6
75%74.9%25%0.1%0%0%0%7
75%74.9%25%0.1%0%0%0%8
87.5%87.4%12.5%0.1%0%0%0%9
87.5%87.4%12.5%0.1%0%0%0%10
87.5%87.4%12.5%0.1%0%0%0%11
93.8%93.6%6.2%0.1%0%0%0%12
Compiler

Compiled 52 to 41 computations (21.2% saved)

sample6.2s (96.4%)

Memory
2.7MiB live, 1 842.4MiB allocated
Samples
802.0ms1 211×2valid-baseline
721.0ms913×3valid-baseline
597.0ms5 526×0valid-baseline
585.0ms5 526×0valid-rival
431.0ms5 526×0valid-sollya
384.0ms913×3valid-rival
382.0ms1 211×2valid-rival
342.0ms913×3valid-sollya
339.0ms1 211×2valid-sollya
258.0ms606×1valid-baseline
129.0ms606×1valid-rival
117.0ms606×1valid-sollya
Bogosity

preprocess104.0ms (1.6%)

Memory
-7.9MiB live, 23.6MiB allocated
Algorithm
egg-herbie
Rules
867×fma-define
805×div-sub
420×distribute-lft-in
397×distribute-rgt-in
351×sub-neg
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0931027
1222761
2650753
32100745
46823745
Stop Event
node limit
Calls
Call 1
Inputs
(*.f64 #s(literal 180 binary64) (/.f64 (atan.f64 (*.f64 (/.f64 #s(literal 1 binary64) B) (-.f64 (-.f64 C A) (sqrt.f64 (+.f64 (pow.f64 (-.f64 A C) #s(literal 2 binary64)) (pow.f64 B #s(literal 2 binary64))))))) (PI.f64)))
(*.f64 #s(literal 180 binary64) (/.f64 (atan.f64 (*.f64 (/.f64 #s(literal 1 binary64) B) (-.f64 (-.f64 C A) (sqrt.f64 (+.f64 (pow.f64 (-.f64 A C) #s(literal 2 binary64)) (pow.f64 B #s(literal 2 binary64))))))) (PI.f64)))
(*.f64 #s(literal 180 binary64) (/.f64 (atan.f64 (*.f64 (/.f64 #s(literal 1 binary64) B) (-.f64 (-.f64 C (neg.f64 A)) (sqrt.f64 (+.f64 (pow.f64 (-.f64 (neg.f64 A) C) #s(literal 2 binary64)) (pow.f64 B #s(literal 2 binary64))))))) (PI.f64)))
(*.f64 #s(literal 180 binary64) (/.f64 (atan.f64 (*.f64 (/.f64 #s(literal 1 binary64) (neg.f64 B)) (-.f64 (-.f64 C A) (sqrt.f64 (+.f64 (pow.f64 (-.f64 A C) #s(literal 2 binary64)) (pow.f64 (neg.f64 B) #s(literal 2 binary64))))))) (PI.f64)))
(*.f64 #s(literal 180 binary64) (/.f64 (atan.f64 (*.f64 (/.f64 #s(literal 1 binary64) B) (-.f64 (-.f64 (neg.f64 C) A) (sqrt.f64 (+.f64 (pow.f64 (-.f64 A (neg.f64 C)) #s(literal 2 binary64)) (pow.f64 B #s(literal 2 binary64))))))) (PI.f64)))
(neg.f64 (*.f64 #s(literal 180 binary64) (/.f64 (atan.f64 (*.f64 (/.f64 #s(literal 1 binary64) B) (-.f64 (-.f64 C (neg.f64 A)) (sqrt.f64 (+.f64 (pow.f64 (-.f64 (neg.f64 A) C) #s(literal 2 binary64)) (pow.f64 B #s(literal 2 binary64))))))) (PI.f64))))
(neg.f64 (*.f64 #s(literal 180 binary64) (/.f64 (atan.f64 (*.f64 (/.f64 #s(literal 1 binary64) (neg.f64 B)) (-.f64 (-.f64 C A) (sqrt.f64 (+.f64 (pow.f64 (-.f64 A C) #s(literal 2 binary64)) (pow.f64 (neg.f64 B) #s(literal 2 binary64))))))) (PI.f64))))
(neg.f64 (*.f64 #s(literal 180 binary64) (/.f64 (atan.f64 (*.f64 (/.f64 #s(literal 1 binary64) B) (-.f64 (-.f64 (neg.f64 C) A) (sqrt.f64 (+.f64 (pow.f64 (-.f64 A (neg.f64 C)) #s(literal 2 binary64)) (pow.f64 B #s(literal 2 binary64))))))) (PI.f64))))
(*.f64 #s(literal 180 binary64) (/.f64 (atan.f64 (*.f64 (/.f64 #s(literal 1 binary64) A) (-.f64 (-.f64 C B) (sqrt.f64 (+.f64 (pow.f64 (-.f64 B C) #s(literal 2 binary64)) (pow.f64 A #s(literal 2 binary64))))))) (PI.f64)))
(*.f64 #s(literal 180 binary64) (/.f64 (atan.f64 (*.f64 (/.f64 #s(literal 1 binary64) B) (-.f64 (-.f64 A C) (sqrt.f64 (+.f64 (pow.f64 (-.f64 C A) #s(literal 2 binary64)) (pow.f64 B #s(literal 2 binary64))))))) (PI.f64)))
(*.f64 #s(literal 180 binary64) (/.f64 (atan.f64 (*.f64 (/.f64 #s(literal 1 binary64) C) (-.f64 (-.f64 B A) (sqrt.f64 (+.f64 (pow.f64 (-.f64 A B) #s(literal 2 binary64)) (pow.f64 C #s(literal 2 binary64))))))) (PI.f64)))
Outputs
(*.f64 #s(literal 180 binary64) (/.f64 (atan.f64 (*.f64 (/.f64 #s(literal 1 binary64) B) (-.f64 (-.f64 C A) (sqrt.f64 (+.f64 (pow.f64 (-.f64 A C) #s(literal 2 binary64)) (pow.f64 B #s(literal 2 binary64))))))) (PI.f64)))
(*.f64 #s(literal 180 binary64) (/.f64 (atan.f64 (/.f64 (-.f64 C (+.f64 A (hypot.f64 B (-.f64 A C)))) B)) (PI.f64)))
(*.f64 #s(literal 180 binary64) (/.f64 (atan.f64 (/.f64 (-.f64 (-.f64 C A) (hypot.f64 B (-.f64 A C))) B)) (PI.f64)))
(*.f64 #s(literal 180 binary64) (/.f64 (atan.f64 (*.f64 (/.f64 #s(literal 1 binary64) B) (-.f64 (-.f64 C A) (sqrt.f64 (+.f64 (pow.f64 (-.f64 A C) #s(literal 2 binary64)) (pow.f64 B #s(literal 2 binary64))))))) (PI.f64)))
(*.f64 #s(literal 180 binary64) (/.f64 (atan.f64 (/.f64 (-.f64 C (+.f64 A (hypot.f64 B (-.f64 A C)))) B)) (PI.f64)))
(*.f64 #s(literal 180 binary64) (/.f64 (atan.f64 (/.f64 (-.f64 (-.f64 C A) (hypot.f64 B (-.f64 A C))) B)) (PI.f64)))
(*.f64 #s(literal 180 binary64) (/.f64 (atan.f64 (*.f64 (/.f64 #s(literal 1 binary64) B) (-.f64 (-.f64 C (neg.f64 A)) (sqrt.f64 (+.f64 (pow.f64 (-.f64 (neg.f64 A) C) #s(literal 2 binary64)) (pow.f64 B #s(literal 2 binary64))))))) (PI.f64)))
(/.f64 (*.f64 #s(literal 180 binary64) (atan.f64 (*.f64 (/.f64 #s(literal 1 binary64) B) (-.f64 C (+.f64 (neg.f64 A) (sqrt.f64 (+.f64 (pow.f64 B #s(literal 2 binary64)) (pow.f64 (-.f64 (neg.f64 A) C) #s(literal 2 binary64))))))))) (PI.f64))
(*.f64 #s(literal 180 binary64) (/.f64 (atan.f64 (/.f64 (-.f64 (+.f64 C A) (hypot.f64 B (-.f64 (neg.f64 A) C))) B)) (PI.f64)))
(*.f64 (atan.f64 (/.f64 (+.f64 C (-.f64 A (hypot.f64 B (+.f64 C A)))) B)) (/.f64 #s(literal 180 binary64) (PI.f64)))
(*.f64 #s(literal 180 binary64) (/.f64 (atan.f64 (/.f64 (+.f64 C (-.f64 A (hypot.f64 B (+.f64 C A)))) B)) (PI.f64)))
(*.f64 #s(literal 180 binary64) (/.f64 (atan.f64 (*.f64 (/.f64 #s(literal 1 binary64) (neg.f64 B)) (-.f64 (-.f64 C A) (sqrt.f64 (+.f64 (pow.f64 (-.f64 A C) #s(literal 2 binary64)) (pow.f64 (neg.f64 B) #s(literal 2 binary64))))))) (PI.f64)))
(*.f64 #s(literal 180 binary64) (/.f64 (atan.f64 (*.f64 (/.f64 #s(literal 1 binary64) (neg.f64 B)) (-.f64 C (+.f64 A (sqrt.f64 (+.f64 (pow.f64 (-.f64 A C) #s(literal 2 binary64)) (pow.f64 (neg.f64 B) #s(literal 2 binary64)))))))) (PI.f64)))
(*.f64 #s(literal 180 binary64) (/.f64 (atan.f64 (/.f64 (-.f64 C (+.f64 A (hypot.f64 B (-.f64 A C)))) (neg.f64 B))) (PI.f64)))
(*.f64 (atan.f64 (/.f64 (-.f64 C (+.f64 A (hypot.f64 B (-.f64 A C)))) (neg.f64 B))) (/.f64 #s(literal 180 binary64) (PI.f64)))
(*.f64 #s(literal 180 binary64) (/.f64 (atan.f64 (/.f64 (+.f64 (-.f64 A C) (hypot.f64 B (-.f64 A C))) B)) (PI.f64)))
(*.f64 #s(literal 180 binary64) (/.f64 (atan.f64 (*.f64 (/.f64 #s(literal 1 binary64) B) (-.f64 (-.f64 (neg.f64 C) A) (sqrt.f64 (+.f64 (pow.f64 (-.f64 A (neg.f64 C)) #s(literal 2 binary64)) (pow.f64 B #s(literal 2 binary64))))))) (PI.f64)))
(*.f64 #s(literal 180 binary64) (/.f64 (atan.f64 (*.f64 (/.f64 #s(literal 1 binary64) B) (-.f64 (neg.f64 C) (+.f64 A (sqrt.f64 (+.f64 (pow.f64 B #s(literal 2 binary64)) (pow.f64 (-.f64 A (neg.f64 C)) #s(literal 2 binary64)))))))) (PI.f64)))
(*.f64 #s(literal 180 binary64) (/.f64 (atan.f64 (/.f64 (-.f64 (-.f64 (neg.f64 A) C) (hypot.f64 B (+.f64 C A))) B)) (PI.f64)))
(*.f64 (atan.f64 (/.f64 (-.f64 (neg.f64 A) (+.f64 C (hypot.f64 B (+.f64 C A)))) B)) (/.f64 #s(literal 180 binary64) (PI.f64)))
(*.f64 #s(literal 180 binary64) (/.f64 (atan.f64 (/.f64 (-.f64 (neg.f64 A) (+.f64 C (hypot.f64 B (+.f64 C A)))) B)) (PI.f64)))
(neg.f64 (*.f64 #s(literal 180 binary64) (/.f64 (atan.f64 (*.f64 (/.f64 #s(literal 1 binary64) B) (-.f64 (-.f64 C (neg.f64 A)) (sqrt.f64 (+.f64 (pow.f64 (-.f64 (neg.f64 A) C) #s(literal 2 binary64)) (pow.f64 B #s(literal 2 binary64))))))) (PI.f64))))
(*.f64 #s(literal -180 binary64) (/.f64 (atan.f64 (*.f64 (/.f64 #s(literal 1 binary64) B) (-.f64 C (+.f64 (neg.f64 A) (sqrt.f64 (+.f64 (pow.f64 B #s(literal 2 binary64)) (pow.f64 (-.f64 (neg.f64 A) C) #s(literal 2 binary64)))))))) (PI.f64)))
(*.f64 (/.f64 (atan.f64 (/.f64 (-.f64 (+.f64 C A) (hypot.f64 B (-.f64 (neg.f64 A) C))) B)) (PI.f64)) #s(literal -180 binary64))
(*.f64 (/.f64 (atan.f64 (/.f64 (+.f64 C (-.f64 A (hypot.f64 B (+.f64 C A)))) B)) (PI.f64)) #s(literal -180 binary64))
(*.f64 (atan.f64 (/.f64 (+.f64 C (-.f64 A (hypot.f64 B (+.f64 C A)))) B)) (/.f64 #s(literal -180 binary64) (PI.f64)))
(neg.f64 (*.f64 #s(literal 180 binary64) (/.f64 (atan.f64 (*.f64 (/.f64 #s(literal 1 binary64) (neg.f64 B)) (-.f64 (-.f64 C A) (sqrt.f64 (+.f64 (pow.f64 (-.f64 A C) #s(literal 2 binary64)) (pow.f64 (neg.f64 B) #s(literal 2 binary64))))))) (PI.f64))))
(*.f64 #s(literal -180 binary64) (/.f64 (atan.f64 (*.f64 (/.f64 #s(literal 1 binary64) (neg.f64 B)) (-.f64 C (+.f64 A (sqrt.f64 (+.f64 (pow.f64 (-.f64 A C) #s(literal 2 binary64)) (pow.f64 (neg.f64 B) #s(literal 2 binary64)))))))) (PI.f64)))
(*.f64 (/.f64 (atan.f64 (/.f64 (-.f64 C (+.f64 A (hypot.f64 B (-.f64 A C)))) (neg.f64 B))) (PI.f64)) #s(literal -180 binary64))
(*.f64 (atan.f64 (/.f64 (+.f64 (-.f64 A C) (hypot.f64 B (-.f64 A C))) B)) (/.f64 #s(literal -180 binary64) (PI.f64)))
(neg.f64 (*.f64 #s(literal 180 binary64) (/.f64 (atan.f64 (*.f64 (/.f64 #s(literal 1 binary64) B) (-.f64 (-.f64 (neg.f64 C) A) (sqrt.f64 (+.f64 (pow.f64 (-.f64 A (neg.f64 C)) #s(literal 2 binary64)) (pow.f64 B #s(literal 2 binary64))))))) (PI.f64))))
(*.f64 #s(literal -180 binary64) (/.f64 (atan.f64 (*.f64 (/.f64 #s(literal 1 binary64) B) (-.f64 (neg.f64 C) (+.f64 A (sqrt.f64 (+.f64 (pow.f64 B #s(literal 2 binary64)) (pow.f64 (-.f64 A (neg.f64 C)) #s(literal 2 binary64)))))))) (PI.f64)))
(*.f64 (/.f64 (atan.f64 (/.f64 (-.f64 (-.f64 (neg.f64 A) C) (hypot.f64 B (+.f64 C A))) B)) (PI.f64)) #s(literal -180 binary64))
(/.f64 (*.f64 (atan.f64 (/.f64 (-.f64 (neg.f64 A) (+.f64 C (hypot.f64 B (+.f64 C A)))) B)) #s(literal -180 binary64)) (PI.f64))
(*.f64 (atan.f64 (/.f64 (-.f64 (neg.f64 A) (+.f64 C (hypot.f64 B (+.f64 C A)))) B)) (/.f64 #s(literal -180 binary64) (PI.f64)))
(*.f64 #s(literal 180 binary64) (/.f64 (atan.f64 (*.f64 (/.f64 #s(literal 1 binary64) A) (-.f64 (-.f64 C B) (sqrt.f64 (+.f64 (pow.f64 (-.f64 B C) #s(literal 2 binary64)) (pow.f64 A #s(literal 2 binary64))))))) (PI.f64)))
(*.f64 #s(literal 180 binary64) (/.f64 (atan.f64 (*.f64 (/.f64 #s(literal 1 binary64) A) (-.f64 C (+.f64 B (sqrt.f64 (+.f64 (pow.f64 (-.f64 B C) #s(literal 2 binary64)) (pow.f64 A #s(literal 2 binary64)))))))) (PI.f64)))
(*.f64 #s(literal 180 binary64) (/.f64 (atan.f64 (/.f64 (-.f64 (-.f64 C B) (hypot.f64 A (-.f64 B C))) A)) (PI.f64)))
(*.f64 (atan.f64 (/.f64 (-.f64 C (+.f64 B (hypot.f64 A (-.f64 B C)))) A)) (/.f64 #s(literal 180 binary64) (PI.f64)))
(*.f64 #s(literal 180 binary64) (/.f64 (atan.f64 (/.f64 (-.f64 C (+.f64 B (hypot.f64 A (-.f64 B C)))) A)) (PI.f64)))
(*.f64 #s(literal 180 binary64) (/.f64 (atan.f64 (*.f64 (/.f64 #s(literal 1 binary64) B) (-.f64 (-.f64 A C) (sqrt.f64 (+.f64 (pow.f64 (-.f64 C A) #s(literal 2 binary64)) (pow.f64 B #s(literal 2 binary64))))))) (PI.f64)))
(*.f64 #s(literal 180 binary64) (/.f64 (atan.f64 (*.f64 (/.f64 #s(literal 1 binary64) B) (-.f64 (-.f64 A C) (sqrt.f64 (+.f64 (pow.f64 B #s(literal 2 binary64)) (pow.f64 (-.f64 C A) #s(literal 2 binary64))))))) (PI.f64)))
(*.f64 #s(literal 180 binary64) (/.f64 (atan.f64 (/.f64 (-.f64 (-.f64 A C) (hypot.f64 B (-.f64 C A))) B)) (PI.f64)))
(*.f64 (atan.f64 (/.f64 (-.f64 A (+.f64 C (hypot.f64 B (-.f64 A C)))) B)) (/.f64 #s(literal 180 binary64) (PI.f64)))
(*.f64 #s(literal 180 binary64) (/.f64 (atan.f64 (/.f64 (-.f64 A (+.f64 C (hypot.f64 B (-.f64 A C)))) B)) (PI.f64)))
(*.f64 #s(literal 180 binary64) (/.f64 (atan.f64 (*.f64 (/.f64 #s(literal 1 binary64) C) (-.f64 (-.f64 B A) (sqrt.f64 (+.f64 (pow.f64 (-.f64 A B) #s(literal 2 binary64)) (pow.f64 C #s(literal 2 binary64))))))) (PI.f64)))
(*.f64 #s(literal 180 binary64) (/.f64 (atan.f64 (*.f64 (/.f64 #s(literal 1 binary64) C) (-.f64 B (+.f64 A (sqrt.f64 (+.f64 (pow.f64 (-.f64 A B) #s(literal 2 binary64)) (pow.f64 C #s(literal 2 binary64)))))))) (PI.f64)))
(*.f64 #s(literal 180 binary64) (/.f64 (atan.f64 (/.f64 (-.f64 B (+.f64 A (hypot.f64 C (-.f64 A B)))) C)) (PI.f64)))
(*.f64 (atan.f64 (/.f64 (-.f64 B (+.f64 A (hypot.f64 C (-.f64 A B)))) C)) (/.f64 #s(literal 180 binary64) (PI.f64)))
(*.f64 #s(literal 180 binary64) (/.f64 (atan.f64 (/.f64 (-.f64 (-.f64 B A) (hypot.f64 C (-.f64 A B))) C)) (PI.f64)))
(*.f64 #s(literal 180 binary64) (/.f64 (atan.f64 (/.f64 (-.f64 (-.f64 B A) (hypot.f64 C (-.f64 B A))) C)) (PI.f64)))
Compiler

Compiled 26 to 19 computations (26.9% saved)

eval0.0ms (0%)

Memory
0.2MiB live, 0.2MiB allocated
Compiler

Compiled 3 to 3 computations (0% saved)

prune1.0ms (0%)

Memory
1.0MiB live, 1.0MiB allocated
Alt Table
Click to see full alt table
StatusAccuracyProgram
51.5%
(*.f64 #s(literal 180 binary64) (/.f64 (atan.f64 (*.f64 (/.f64 #s(literal 1 binary64) B) (-.f64 (-.f64 C A) (sqrt.f64 (+.f64 (pow.f64 (-.f64 A C) #s(literal 2 binary64)) (pow.f64 B #s(literal 2 binary64))))))) (PI.f64)))
Compiler

Compiled 52 to 38 computations (26.9% saved)

simplify3.0ms (0%)

Memory
0.7MiB live, 0.7MiB allocated
Algorithm
egg-herbie
Rules
+-commutative
sub-neg
*-commutative
1-exp
neg-sub0
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02689
14089
25089
35689
45989
Stop Event
saturated
Calls
Call 1
Inputs
(*.f64 #s(literal 180 binary64) (/.f64 (atan.f64 (*.f64 (/.f64 #s(literal 1 binary64) B) (-.f64 (-.f64 C A) (sqrt.f64 (+.f64 (pow.f64 (-.f64 A C) #s(literal 2 binary64)) (pow.f64 B #s(literal 2 binary64))))))) (PI.f64)))
Outputs
(*.f64 #s(literal 180 binary64) (/.f64 (atan.f64 (*.f64 (/.f64 #s(literal 1 binary64) B) (-.f64 (-.f64 C A) (sqrt.f64 (+.f64 (pow.f64 (-.f64 A C) #s(literal 2 binary64)) (pow.f64 B #s(literal 2 binary64))))))) (PI.f64)))

soundness0.0ms (0%)

Memory
0.4MiB live, 0.4MiB allocated
Stop Event
fuel
Compiler

Compiled 26 to 19 computations (26.9% saved)

preprocess23.0ms (0.4%)

Memory
-7.1MiB live, 24.0MiB allocated
Compiler

Compiled 104 to 76 computations (26.9% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...