add phobos module std.halffloat ?

Robert Jacques rjacque2 at live.johnshopkins.edu
Wed Dec 19 11:52:38 PST 2012


On Wed, 19 Dec 2012 09:35:39 -0600, Andrei Alexandrescu  
<SeeWebsiteForEmail at erdani.org> wrote:

> On 12/19/12 2:30 AM, Walter Bright wrote:
>> https://github.com/D-Programming-Language/phobos/pull/1018/files
>
> Shouldn't it be part of std.numeric?
>
> Related, we should have a decision point "this must go through the  
> review process" vs. "the pull review process is sufficient". New modules  
> definitely must go through the review process, as should large additions  
> to existing models.
>
>
> Andrei

It _IS_ part of std.numeric! Specifically std.numeric.CustomFloat!16; To  
quote our own documentation:

// Define a 16-bit floating point values
  CustomFloat!16                                x;     // Using the number  
of bits
  CustomFloat!(10, 5)                           y;     // Using the  
precision and exponent width
  CustomFloat!(10, 5,CustomFloatFlags.ieee)     z;     // Using the  
precision, exponent width and format flags
  CustomFloat!(10, 5,CustomFloatFlags.ieee, 15) w;     // Using the  
precision, exponent width, format flags and exponent offset bias

  // Use the 16-bit floats mostly like normal numbers
  w = x*y - 1;
  writeln(w);

  // Functions calls require conversion
  z = sin(+x)           + cos(+y);                     // Use uniary plus  
to concisely convert to a real
  z = sin(x.re)         + cos(y.re);                   // Or use the .re  
property to convert to a real
  z = sin(x.get!float)  + cos(y.get!float);            // Or use get!T
  z = sin(cast(float)x) + cos(cast(float)y);           // Or use cast(T) to  
explicitly convert

-------------------
The only item missing from std.numeric.CustomFloat is to add an alias this  
line so that implicit conversion is supported. Oh, and documentation of  
the standard float properties, such as infinity/min/min/etc, which exist  
in the code, but are template methods and so don't appear in the ddoc.


More information about the Digitalmars-d mailing list