[LLVMdev] APFloat renaming isNormal => isFiniteNonZero and isIEEENormal => isNormal

Shuxin Yang
Tue, 18 Jun 2013 23:51:47 -0000

I would give you 20 thumb up if I could.

At the time I add the isDenormal() , I realized the name "isNormal()"
need some change to reflect its real meaning,
but I was reluctant to make that change, partially because I was a big
llvm newbie at that time.
(now, I'm just slightly smaller nut than I was :-)).

To test a real "normal" FP, I wrote the code this way "isNormal()
&&
!isDenorma()".
With your change, this condition can be simplified.

On 6/18/13 4:21 PM, Stephen Canon wrote:
> I think it's a splendid idea (but you already knew that).
>
> On Jun 18, 2013, at 6:45 PM, Michael Gottesman <mgottesman at apple.com
> <mailto:mgottesman at apple.com>> wrote:
>
>> IEEE-754R defines a normal floating point number as:
>>
>> 2.1.38 normal number:For a particular format, a finite non-zero
>> floating-point number with magnitude greater than or equal to a
>> minimumbeminvalue, wherebis the radix. Normal numbers can use the
>> full precision available in a format. In this standard, zero is
>> neither normal nor subnormal.
>>
>> This implies that a denormal is*not* a normal number.
>>
>> In contrast, the current implementation of isNormal in
>> APFloat* does* treat denormal numbers as normal numbers breaking this
>> definition. This is not just a predicate that has a name that differs
>> from IEEE-754R (which I am fine with), but is an actual name
>> collision with IEEE-754R with a different semantic meaning. This
>> could easily lead to programmer error and thus in my humble opinion
>> is worth the hassle/trouble of fixing.
>>
>> Does anyone have any thoughts/suggestions/objections with my renaming
>> isNormal => isFiniteNonZero (and making all the relevant changes in
>> the relevant codebases) and isIEEENormal => isNormal?
>>
>> Awaiting the flames,
>> Michael
>
>
>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev

-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://lists.llvm.org/pipermail/llvm-dev/attachments/20130618/92838c7b/attachment.html>