www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 20284] New: CustomFloat.max_10_exp does not work for types

https://issues.dlang.org/show_bug.cgi?id=20284

          Issue ID: 20284
           Summary: CustomFloat.max_10_exp does not work for types with
                    too many digits in exponent
           Product: D
           Version: D2
          Hardware: x86_64
                OS: All
            Status: NEW
          Severity: normal
          Priority: P1
         Component: phobos
          Assignee: nobody puremagic.com
          Reporter: bugzilla d-ecke.de

CustomFloat!(15, 16).max_10_exp == -2147483648 should be 9864. The reason is,
that 16 bit exponents do not fit into real, which has only 15 bits on x86_64. 

It is probably possible to calculate the value without the need to convert to
real, but the question is, if this is of any help. CustomFloats are used by
converting to real, doing the calculation there, and then converting back. What
I want to say, such CustomFloats cannot be used and maybe the solution is to
restrict them to exponents with length less than that of real.

--
Oct 08 2019