[DGD]Extensions interface: floats
    Felix A. Croes 
    felix at dworkin.nl
       
    Wed Jun 13 21:20:54 CEST 2001
    
    
  
Thomas Annandale <thomas at boredatheist.com> wrote:
>   In /dgd/doc/Extensions, DGD_FLOAT_GETVAL is documented as taking a
> DGD_VALUE_T for an argument and returning a DGD_FLOAT_T, though in
> actuality, it seems to take both the DGD_VALUE_T and the DGD_FLOAT_T as
> arguments.
This will be fixed (in the documentation) for the next patch.
>   Also, how do I go about turning a DGD_FLOAT_T into the normal C float
> type?
After the next patch (there is a bug in this macro), use DGD_FLOAT_GET()
to retrieve the sign, exponent and mantissa, and then use the following
expression:
    ((sign) ? -1 : 1) * ldexp(mantissa, exponent - 36)
To go from C float to DGD_FLOAT_T, use:
    sign = (f < 0);
    mantissa = ldexp(frexp(f, &exponent), 37);
    --exponent;
    DGD_FLOAT_PUT(DGDflt, sign, exponent, mantissa);
Regards,
Dworkin
List config page:  http://list.imaginary.com/mailman/listinfo/dgd
    
    
More information about the DGD
mailing list