Merge pull request 'Numeric limits for int24 class' (#158) from int24_numeric_limits into master

Reviewed-on: https://git.madvoxel.net/OpenVulkano/OpenVulkano/pulls/158
Reviewed-by: Georg Hagen <georg.hagen@madvoxel.com>
This commit is contained in:
Vladyslav_Baranovskyi_EXT
2024-11-10 17:30:43 +01:00

View File

@@ -244,3 +244,45 @@ namespace OpenVulkano
}
};
}
namespace std
{
template <>
class numeric_limits<OpenVulkano::int24>
{
public:
static const bool is_specialized = true;
static constexpr OpenVulkano::int24 min() { return OpenVulkano::int24(0x800000); }
static constexpr OpenVulkano::int24 max() { return OpenVulkano::int24(0x7FFFFF); }
static const int radix = 2;
static const int digits = 23;
static const int digits10 = 6;
static const bool is_signed = true;
static const bool is_integer = true;
static const bool is_exact = true;
static const bool traps = false;
static const bool is_modulo = false;
static const bool is_bounded = true;
static constexpr OpenVulkano::int24 epsilon() { return OpenVulkano::int24(1); }
static constexpr OpenVulkano::int24 round_error() { return OpenVulkano::int24(0); }
static const int min_exponent10 = 0;
static const int max_exponent10 = 0;
static const int min_exponent = 0;
static const int max_exponent = 0;
static const bool has_infinity = false;
static const bool has_quiet_NaN = false;
static const bool has_signaling_NaN = false;
static const bool is_iec559 = false;
static const bool has_denorm = false;
static const bool tinyness_before = false;
static const float_round_style round_style = round_toward_zero;
// Not meaningful for int24...
static constexpr OpenVulkano::int24 denorm_min() { return OpenVulkano::int24(0); }
static constexpr OpenVulkano::int24 infinity() { return OpenVulkano::int24(0); }
static constexpr OpenVulkano::int24 quiet_NaN() { return OpenVulkano::int24(0); }
static constexpr OpenVulkano::int24 signaling_NaN() { return OpenVulkano::int24(0); }
};
}