sinf compiler error I don't understand

les hlhowell at pacbell.net
Fri Apr 1 22:29:26 UTC 2011


First let me say, that while I have used C++ I don't normally use it for
my work and so am not throughly familiar with what it does, so if this
is due to a C++ error, please be gentle.

I am working on some DSP code I developed a long time ago, and now want
to port it to 64 bit.  I have read several articles on the differences
in C and C++ between 32 and 64 bit, but this has me stymied.

Here is the smallest sample I have been working with to show the current
error:

#include <math.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>

main()
{
    long double temp;
    printf ("M_PI=%e\n",M_PI);
    printf ("sin 90 = %e\n",sinf(M_PI/2));
    temp=M_PI/2.0;
// the following line won't compile for temp 
// regardless of how temp is declared (float, double, long double)
//   printf ("sin 90 = %e\n",sinf(temp));
}


Clearly sinf is recognized, and compiles and runs.  It returns 1.000 as
expected for M_PI/2.  But the line that is commented out will not
compile.

If you can see the issue here, please let me know.

MY system is:
Release Kernel Linux 2.6.35.``-83.fc14.x86_64
GNOME 2.32.0
Hardware
	Memory 7.8GiB
	AMD Phenom(tm) II X6 1035T
Lots of disk space

yum info GCC shows:
Name        : gcc
Arch        : x86_64
Version     : 4.5.1
Release     : 4.fc14

Thanks,
Les H



More information about the users mailing list