Skip to main content

primitive_float_atan2_pi

Function primitive_float_atan2_pi 

Source
pub fn primitive_float_atan2_pi<T>(y: T, x: T) -> T
where Float: From<T> + PartialOrd<T>, for<'a> T: ExactFrom<&'a Float> + PrimitiveFloat,
Expand description

Computes $\operatorname{atan2}(y,x)/\pi$, the angle of the point $(x,y)$ measured from the positive $x$-axis in half-turns, for primitive floats.

This is primitive_float_atan2_with_period with a period of 2: see primitive_float_atan2_with_period for the error bound and the special cases, with $u = 2$.

§Worst-case complexity

Constant time and additional memory.

§Examples

use malachite_base::num::float::NiceFloat;
use malachite_float::float::arithmetic::atan2::primitive_float_atan2_pi;

assert!(primitive_float_atan2_pi(f32::NAN, 1.0).is_nan());
// the first quadrant's diagonal is a quarter turn
assert_eq!(
    NiceFloat(primitive_float_atan2_pi(1.0f32, 1.0)),
    NiceFloat(0.25)
);
// the second quadrant's is three quarters
assert_eq!(
    NiceFloat(primitive_float_atan2_pi(1.0f32, -1.0)),
    NiceFloat(0.75)
);
assert_eq!(
    NiceFloat(primitive_float_atan2_pi(3.0f64, 4.0)),
    NiceFloat(0.20483276469913345)
);