diff options
Diffstat (limited to 'lib/std/math/isnan.zig')
| -rw-r--r-- | lib/std/math/isnan.zig | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/lib/std/math/isnan.zig b/lib/std/math/isnan.zig new file mode 100644 index 0000000000..cf8cd2e1c2 --- /dev/null +++ b/lib/std/math/isnan.zig @@ -0,0 +1,27 @@ +const std = @import("../std.zig"); +const math = std.math; +const expect = std.testing.expect; +const maxInt = std.math.maxInt; + +/// Returns whether x is a nan. +pub fn isNan(x: var) bool { + return x != x; +} + +/// Returns whether x is a signalling nan. +pub fn isSignalNan(x: var) bool { + // Note: A signalling nan is identical to a standard nan right now but may have a different bit + // representation in the future when required. + return isNan(x); +} + +test "math.isNan" { + expect(isNan(math.nan(f16))); + expect(isNan(math.nan(f32))); + expect(isNan(math.nan(f64))); + expect(isNan(math.nan(f128))); + expect(!isNan(f16(1.0))); + expect(!isNan(f32(1.0))); + expect(!isNan(f64(1.0))); + expect(!isNan(f128(1.0))); +} |
