Optimal throwing angle

Time bar (total: 3.0s)

analyze41.0ms (1.4%)

Memory
13.8MiB live, 13.8MiB 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
25%25%74.9%0.1%0%0%0%3
37.5%37.5%62.4%0.1%0%0%0%4
50%43.7%43.7%0.1%0%12.5%0%5
60.7%53.1%34.3%0.1%0%12.5%0%6
72.2%60.9%23.4%0.1%0%15.6%0%7
79.4%63.2%16.4%0.1%0%20.3%0%8
85.6%67.5%11.3%0.1%0%21.1%0%9
89.6%68.9%8%0.1%0%23%0%10
92.7%71.1%5.6%0.1%0%23.2%0%11
94.8%71.9%4%0.1%0%24.1%0%12
Compiler

Compiled 31 to 25 computations (19.4% saved)

sample2.8s (94.5%)

Memory
-1.3MiB live, 766.5MiB allocated
Samples
689.0ms8 256×0valid-baseline
662.0ms8 256×0valid-rival
495.0ms8 256×0valid-sollya
Bogosity

preprocess99.0ms (3.4%)

Memory
-10.5MiB live, 21.9MiB allocated
Algorithm
egg-herbie
Rules
299×fma-define
229×fmm-def
68×associate-*l*
65×distribute-lft-neg-in
61×div-sub
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
038339
179303
2142303
3285303
4521303
5837303
61168303
71481303
81636303
91693303
101734303
Stop Event
saturated
Calls
Call 1
Inputs
(atan.f64 (/.f64 v (sqrt.f64 (-.f64 (*.f64 v v) (*.f64 (*.f64 #s(literal 2 binary64) #s(literal 49/5 binary64)) H)))))
(atan.f64 (/.f64 v (sqrt.f64 (-.f64 (*.f64 v v) (*.f64 (*.f64 #s(literal 2 binary64) #s(literal 49/5 binary64)) H)))))
(atan.f64 (/.f64 (neg.f64 v) (sqrt.f64 (-.f64 (*.f64 (neg.f64 v) (neg.f64 v)) (*.f64 (*.f64 #s(literal 2 binary64) #s(literal 49/5 binary64)) H)))))
(atan.f64 (/.f64 v (sqrt.f64 (-.f64 (*.f64 v v) (*.f64 (*.f64 #s(literal 2 binary64) #s(literal 49/5 binary64)) (neg.f64 H))))))
(neg.f64 (atan.f64 (/.f64 (neg.f64 v) (sqrt.f64 (-.f64 (*.f64 (neg.f64 v) (neg.f64 v)) (*.f64 (*.f64 #s(literal 2 binary64) #s(literal 49/5 binary64)) H))))))
(neg.f64 (atan.f64 (/.f64 v (sqrt.f64 (-.f64 (*.f64 v v) (*.f64 (*.f64 #s(literal 2 binary64) #s(literal 49/5 binary64)) (neg.f64 H)))))))
(atan.f64 (/.f64 H (sqrt.f64 (-.f64 (*.f64 H H) (*.f64 (*.f64 #s(literal 2 binary64) #s(literal 49/5 binary64)) v)))))
Outputs
(atan.f64 (/.f64 v (sqrt.f64 (-.f64 (*.f64 v v) (*.f64 (*.f64 #s(literal 2 binary64) #s(literal 49/5 binary64)) H)))))
(atan.f64 (/.f64 v (sqrt.f64 (-.f64 (*.f64 v v) (*.f64 #s(literal 98/5 binary64) H)))))
(atan.f64 (/.f64 v (sqrt.f64 (fma.f64 v v (*.f64 H #s(literal -98/5 binary64))))))
(atan.f64 (/.f64 v (sqrt.f64 (-.f64 (*.f64 v v) (*.f64 (*.f64 #s(literal 2 binary64) #s(literal 49/5 binary64)) H)))))
(atan.f64 (/.f64 v (sqrt.f64 (-.f64 (*.f64 v v) (*.f64 #s(literal 98/5 binary64) H)))))
(atan.f64 (/.f64 v (sqrt.f64 (fma.f64 v v (*.f64 H #s(literal -98/5 binary64))))))
(atan.f64 (/.f64 (neg.f64 v) (sqrt.f64 (-.f64 (*.f64 (neg.f64 v) (neg.f64 v)) (*.f64 (*.f64 #s(literal 2 binary64) #s(literal 49/5 binary64)) H)))))
(atan.f64 (/.f64 (neg.f64 v) (sqrt.f64 (-.f64 (*.f64 v v) (*.f64 #s(literal 98/5 binary64) H)))))
(atan.f64 (/.f64 (neg.f64 v) (sqrt.f64 (fma.f64 v v (*.f64 H #s(literal -98/5 binary64))))))
(atan.f64 (/.f64 v (neg.f64 (sqrt.f64 (fma.f64 v v (*.f64 H #s(literal -98/5 binary64)))))))
(atan.f64 (/.f64 v (sqrt.f64 (-.f64 (*.f64 v v) (*.f64 (*.f64 #s(literal 2 binary64) #s(literal 49/5 binary64)) (neg.f64 H))))))
(atan.f64 (/.f64 v (sqrt.f64 (+.f64 (*.f64 v v) (*.f64 #s(literal -98/5 binary64) (neg.f64 H))))))
(atan.f64 (/.f64 v (sqrt.f64 (fma.f64 v v (*.f64 #s(literal 98/5 binary64) H)))))
(neg.f64 (atan.f64 (/.f64 (neg.f64 v) (sqrt.f64 (-.f64 (*.f64 (neg.f64 v) (neg.f64 v)) (*.f64 (*.f64 #s(literal 2 binary64) #s(literal 49/5 binary64)) H))))))
(neg.f64 (atan.f64 (/.f64 (neg.f64 v) (sqrt.f64 (-.f64 (*.f64 v v) (*.f64 #s(literal 98/5 binary64) H))))))
(neg.f64 (atan.f64 (/.f64 (neg.f64 v) (sqrt.f64 (fma.f64 v v (*.f64 H #s(literal -98/5 binary64)))))))
(neg.f64 (atan.f64 (/.f64 v (neg.f64 (sqrt.f64 (fma.f64 v v (*.f64 H #s(literal -98/5 binary64))))))))
(neg.f64 (atan.f64 (/.f64 v (sqrt.f64 (-.f64 (*.f64 v v) (*.f64 (*.f64 #s(literal 2 binary64) #s(literal 49/5 binary64)) (neg.f64 H)))))))
(neg.f64 (atan.f64 (/.f64 v (sqrt.f64 (+.f64 (*.f64 v v) (*.f64 #s(literal -98/5 binary64) (neg.f64 H)))))))
(neg.f64 (atan.f64 (/.f64 v (sqrt.f64 (fma.f64 v v (*.f64 #s(literal 98/5 binary64) H))))))
(atan.f64 (/.f64 H (sqrt.f64 (-.f64 (*.f64 H H) (*.f64 (*.f64 #s(literal 2 binary64) #s(literal 49/5 binary64)) v)))))
(atan.f64 (/.f64 H (sqrt.f64 (+.f64 (*.f64 H H) (*.f64 #s(literal -98/5 binary64) v)))))
(atan.f64 (/.f64 H (sqrt.f64 (fma.f64 H H (*.f64 v #s(literal -98/5 binary64))))))
(atan.f64 (/.f64 H (sqrt.f64 (fma.f64 v #s(literal -98/5 binary64) (*.f64 H H)))))
Compiler

Compiled 15 to 11 computations (26.7% saved)

eval0.0ms (0%)

Memory
0.3MiB live, 0.3MiB allocated
Compiler

Compiled 2 to 2 computations (0% saved)

prune1.0ms (0%)

Memory
0.9MiB live, 0.9MiB allocated
Alt Table
Click to see full alt table
StatusAccuracyProgram
65.8%
(atan.f64 (/.f64 v (sqrt.f64 (-.f64 (*.f64 v v) (*.f64 (*.f64 #s(literal 2 binary64) #s(literal 49/5 binary64)) H)))))
Compiler

Compiled 30 to 22 computations (26.7% saved)

simplify2.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01845
12445
23645
34245
44645
54745
Stop Event
saturated
Calls
Call 1
Inputs
(atan.f64 (/.f64 v (sqrt.f64 (-.f64 (*.f64 v v) (*.f64 (*.f64 #s(literal 2 binary64) #s(literal 49/5 binary64)) H)))))
Outputs
(atan.f64 (/.f64 v (sqrt.f64 (-.f64 (*.f64 v v) (*.f64 (*.f64 #s(literal 2 binary64) #s(literal 49/5 binary64)) H)))))
(atan.f64 (/.f64 v (sqrt.f64 (-.f64 (*.f64 v v) (*.f64 #s(literal 98/5 binary64) H)))))

soundness0.0ms (0%)

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

Compiled 13 to 9 computations (30.8% saved)

preprocess17.0ms (0.6%)

Memory
6.5MiB live, 22.2MiB allocated
Compiler

Compiled 56 to 40 computations (28.6% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...