Split Real / Float into Mantissa, Exponent, and Base
pineapple via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Fri Mar 3 11:17:25 PST 2017
On Friday, 3 March 2017 at 18:09:02 UTC, Jonathan M. Wilbur wrote:
> I have tried to come up with a good way to get the mantissa,
> exponent, and base from a real number, and I just can't come up
> with a good cross-platform way of doing it. I know about
> std.math.frexp(), but that function only gives you another real
> as the mantissa. I need an integral mantissa, exponent, and
> base.
>
> Is there either (1) a crafty, cross-platform way of doing this
> or (2) a function in a standard library that does this that I
> somehow missed? If there is no such function, what are your
> thoughts on me implementing such a thing and submitting it to
> Phobos, probably similar to how frexp is implemented (elseifs
> for each FP format)?
The various functions in std.math mostly extract these values on
their own, using the floatTraits template to help.
The mach library has the module mach.math.floats.extract:
https://github.com/pineapplemachine/mach.d/tree/master/mach/math/floats
More information about the Digitalmars-d-learn
mailing list