From: Darren Dale <dd55@cornell.edu>
To: gentoo-science@lists.gentoo.org
Subject: Re: [gentoo-science] question about signbit
Date: Thu, 27 Oct 2005 08:52:35 -0400 [thread overview]
Message-ID: <200510270852.35524.dd55@cornell.edu> (raw)
In-Reply-To: <435AA97C.7020103@gmx.net>
Hi Marco,
On Saturday 22 October 2005 5:05 pm, Marco Matthies wrote:
> Darren Dale wrote:
> > On my system, SciPy's signbit function reports that the sign bit is not
> > set for any number, positive or negative. Could someone here help me
> > understand how to test the libc signbit function? I have to admit I have
> > no experience with C programming.
>
> Hi Darren,
>
> the signbit fuction is actually a macro (as the manpage says) defined in
> math.h that in turn calls the right inline function (for the type
> needed) which is defined in mathinline.h --- so as far as i can see,
> libc should not be involved, only header files. I have attached a small
> example below on how to use the function. Please note the use of
> -std=c99 (you may also use -std=gnu99) as the macro is only activated
> when in C99 mode and gcc's default mode is C89 ("ANSI C"). If you're
> interested in the differences between the two standards the wikipedia
> entry on c has some info:
> http://en.wikipedia.org/wiki/C_programming_language
>
>
> the program (save it under signbit_test.c):
> [cut]
> #include <math.h>
> #include <stdio.h>
>
> int main() {
> printf("sign of 1.7 is %d\n", signbit(1.7));
> printf("sign of -1.1 is %d\n", signbit(-1.1));
> printf("sign of -0.0 is %d\n", signbit(-0.0));
> printf("sign of 0.0 is %d\n", signbit(0.0));
> return 0;
> }
> [/cut]
>
> compile with:
> gcc -Wall -std=c99 -lm signbit_test.c -o signbit_test
>
> run with:
> ./signbit_test
>
> should produce this output:
> sign of 1.7 is 0
> sign of -1.1 is -2147483648
> sign of -0.0 is -2147483648
> sign of 0.0 is 0
>
> This was run with gcc 3.4.4 on amd64, if you want to i can try on a x86
> install in qemu.
Here is another test:
#include <math.h>
#include <stdio.h>
int main() {
printf("signbit(-1): %d\n", signbit(-1));
printf("isnan(0.0/0): %d\n", isnan(0.0/0));
printf("isinf(1.0/0): %d\n", isinf(1.0/0));
return 0;
}
which yields:
signbit(-1): -2147483648
isnan(0.0/0): 1
isinf(1.0/0): 1
Do you know why signbit doesn't yield 1? I wonder if this might be the source
of the problem in Scipy.
Thanks,
Darren
--
gentoo-science@gentoo.org mailing list
next prev parent reply other threads:[~2005-10-27 12:53 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-10-22 18:16 [gentoo-science] question about signbit Darren Dale
2005-10-22 21:05 ` Marco Matthies
2005-10-22 21:32 ` Darren Dale
2005-10-22 21:39 ` Marco Matthies
2005-10-27 12:52 ` Darren Dale [this message]
2005-10-27 14:24 ` Miguel Barao
2005-10-28 0:27 ` Ertugrul Soeylemez
2005-10-28 15:40 ` Marco Matthies
2005-10-28 16:00 ` Darren Dale
2005-10-23 6:39 ` Ertugrul Soeylemez
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200510270852.35524.dd55@cornell.edu \
--to=dd55@cornell.edu \
--cc=gentoo-science@lists.gentoo.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox