public inbox for gentoo-science@lists.gentoo.org
 help / color / mirror / Atom feed
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



  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