diff options
Diffstat (limited to 'vendor/libm/src/math/copysignf.rs')
-rw-r--r-- | vendor/libm/src/math/copysignf.rs | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/vendor/libm/src/math/copysignf.rs b/vendor/libm/src/math/copysignf.rs new file mode 100644 index 000000000..35148561a --- /dev/null +++ b/vendor/libm/src/math/copysignf.rs @@ -0,0 +1,11 @@ +/// Sign of Y, magnitude of X (f32) +/// +/// Constructs a number with the magnitude (absolute value) of its +/// first argument, `x`, and the sign of its second argument, `y`. +pub fn copysignf(x: f32, y: f32) -> f32 { + let mut ux = x.to_bits(); + let uy = y.to_bits(); + ux &= 0x7fffffff; + ux |= uy & 0x80000000; + f32::from_bits(ux) +} |