ABCF->ab-angle angle

Time bar (total: 6.8s)

analyze82.0ms (1.2%)

Memory
15.8MiB live, 31.5MiB 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 40 computations (23.1% saved)

sample6.6s (96.8%)

Memory
68.7MiB live, 2 079.2MiB allocated
Samples
909.0ms1 209×2valid-baseline
843.0ms926×3valid-baseline
681.0ms5 463×0valid-baseline
582.0ms5 463×0valid-rival
429.0ms5 463×0valid-sollya
352.0ms926×3valid-rival
350.0ms926×3valid-sollya
341.0ms1 209×2valid-rival
339.0ms1 209×2valid-sollya
324.0ms656×1valid-baseline
134.0ms656×1valid-rival
129.0ms656×1valid-sollya
0.0ms2valid-rival+sollya-real
0.0ms0valid-rival+sollya-real
Precisions
Click to see Rival histograms. Total time spent on operations: 1.1s
ival-pow2: 213.0ms (19.1% of total)
ival-sub: 178.0ms (16% of total)
ival-div: 173.0ms (15.5% of total)
ival-mult: 154.0ms (13.8% of total)
adjust: 105.0ms (9.4% of total)
ival-sqrt: 103.0ms (9.2% of total)
ival-atan: 89.0ms (8% of total)
ival-add: 58.0ms (5.2% of total)
ival-pi: 27.0ms (2.4% of total)
ival-true: 7.0ms (0.6% of total)
...in/eval/compile.rkt:76:19: 5.0ms (0.4% of total)
ival-assert: 3.0ms (0.3% of total)
Precisions
Click to see Base histograms. Total time spent on operations: 2.1s
ival-pow: 582.0ms (28.1% of total)
ival-div: 308.0ms (14.9% of total)
ival-sub: 278.0ms (13.4% of total)
ival-atan: 273.0ms (13.2% of total)
ival-mult: 254.0ms (12.3% of total)
ival-sqrt: 157.0ms (7.6% of total)
ival-add: 96.0ms (4.6% of total)
ival-pi: 88.0ms (4.2% of total)
const: 37.0ms (1.8% of total)
Bogosity

preprocess104.0ms (1.5%)

Memory
-6.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.3MiB live, 0.3MiB 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.6%
(*.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.5MiB live, 0.5MiB allocated
Stop Event
fuel
Compiler

Compiled 26 to 19 computations (26.9% saved)

preprocess26.0ms (0.4%)

Memory
6.4MiB 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...