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