Zig 0.17.0-dev (Split by item) This is an example of documentation generated by
ZigDoc , an alternative to Zig's built-in
Auto Doc feature. See also
examples in other modes/formats . The project being documented here (as the example) is the Zig standard library.
std › math › float › FloatRepr › Normalized › reconstruct Public Function reconstruct Doc Source Public Function std.math.float.FloatRepr.Normalized.reconstruct
pub fn reconstruct (normalized : Normalized , sign : std .math .Sign ) Float Params File math/float.zig: 114
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135 pub fn reconstruct (normalized : Normalized , sign : std .math .Sign ) Float {
if (normalized .exponent > comptime BiasedExponent .max_normal .unbias ()) return @bitCast (Repr {
.mantissa = 0 ,
.exponent = .infinite ,
.sign = sign ,
});
const mantissa = @as (Mantissa , 1 << fractional_bits ) | normalized .fraction ;
if (normalized .exponent < comptime BiasedExponent .min_normal .unbias ()) return @bitCast (Repr {
.mantissa = @truncate (std .math .shr (
Mantissa ,
mantissa ,
(comptime BiasedExponent .min_normal .unbias ()) - normalized .exponent ,
)),
.exponent = .denormal ,
.sign = sign ,
});
return @bitCast (Repr {
.mantissa = @truncate (mantissa ),
.exponent = .bias (@intCast (normalized .exponent )),
.sign = sign ,
});
}
This currently truncates denormal values, which needs to be fixed before this can be used to produce a rounded value.