Subject: Re: Problem with lroundf()
From: Jeff Johnston <[email-masked]>
To: [email-masked]
Cc: [email-masked]
Date: Fri, 24 Aug 2007 16:50:11 -0400
List-Id: <cygwin.cygwin.com>

I have just made a patch.  The code in lroundf() was making a comparison 
between an int and a calculation using sizeof.  This ended up being an 
unsigned comparison and in this case, the int value was < 1.

-- Jeff J.

Dave Korn wrote:
> On 24 August 2007 17:16, François-Xavier Coudert wrote:
> 
>> Hi all,
>>
>> I think the following exhibits a bug in the lroundf() routine:
> 
>   Gahh, it's entirely likely, we keep finding cruft and corner cases in the fp
> math.  Cygwin's maths routines come from newlib; post redirected there and
> fups-to set.
> 
>  
>> $ cat a.c
>> #include <math.h>
>> #include <stdio.h>
>>
>> int main (void) {
>>   printf ("%d\n", (int) lroundf(0.7));
>> }
>>
>> $ gcc a.c && ./a.exe
>> 0
>>
>> The result of lroundf(0.7) should be 1, not 0. If lround() is used
>> instead of lroundf(), then it's working OK.
>>
>> I didn't file a PR in bugzilla because the bug report instructions say
>> to send a mail to this list, but I can open one if need be.
>>
>> Thanks,
>> FX
> 
>   Might get some spare time over the weekend to look at this with you, might not.
> Sorry I can't be more certain.
> 
>     cheers,
>       DaveK

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/