Module: OpenTelemetry::SDK::Metrics::Aggregation::ExponentialHistogram::IEEE754
- Defined in:
- lib/opentelemetry/sdk/metrics/aggregation/exponential_histogram/ieee_754.rb
Overview
IEEE754 standard for floating-point calculation
Constant Summary collapse
- MANTISSA_WIDTH =
52
- EXPONENT_WIDTH =
11
- MANTISSA_MASK =
(1 << MANTISSA_WIDTH) - 1
- EXPONENT_BIAS =
(2**(EXPONENT_WIDTH - 1)) - 1
- EXPONENT_MASK =
((1 << EXPONENT_WIDTH) - 1) << MANTISSA_WIDTH
- SIGN_MASK =
1 << (EXPONENT_WIDTH + MANTISSA_WIDTH)
- MIN_NORMAL_EXPONENT =
-EXPONENT_BIAS + 1
- MAX_NORMAL_EXPONENT =
EXPONENT_BIAS
- MIN_NORMAL_VALUE =
Float::MIN
- MAX_NORMAL_VALUE =
Float::MAX
Class Method Summary collapse
Class Method Details
.get_ieee_754_exponent(value) ⇒ Object
28 29 30 31 |
# File 'lib/opentelemetry/sdk/metrics/aggregation/exponential_histogram/ieee_754.rb', line 28 def self.get_ieee_754_exponent(value) bits = [value].pack('d').unpack1('Q') ((bits & EXPONENT_MASK) >> MANTISSA_WIDTH) - EXPONENT_BIAS end |
.get_ieee_754_mantissa(value) ⇒ Object
33 34 35 36 |
# File 'lib/opentelemetry/sdk/metrics/aggregation/exponential_histogram/ieee_754.rb', line 33 def self.get_ieee_754_mantissa(value) bits = [value].pack('d').unpack1('Q') bits & MANTISSA_MASK end |