sinf compiler error I don't understand
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 ",M_PI); printf ("sin 90 = %e ",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 ",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 -- users mailing list users@lists.fedoraproject.org To unsubscribe or change subscription options: https://admin.fedoraproject.org/mailman/listinfo/users Guidelines: http://fedoraproject.org/wiki/Mailing_list_guidelines |
sinf compiler error I don't understand
On 1 April 2011 23:29, les <hlhowell@pacbell.net> wrote:
> 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 ",M_PI); > Â* Â*printf ("sin 90 = %e ",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 ",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. > > yum info GCC shows: > Name Â* Â* Â* Â*: gcc > Arch Â* Â* Â* Â*: x86_64 > Version Â* Â* : 4.5.1 > Release Â* Â* : 4.fc14 > F13 here: Name : gcc Arch : x86_64 Version : 4.4.5 Release : 2.fc13 How are you compiling it? If I uncomment the last printf then compile like: $ g++ test.cc -Wall -o test I get: test.cc:6: warning: ISO C++ forbids declaration of ‘main’ with no type But otherwise compiles and runs as expected. I'd point out that sinf is float precision, sin is double and sinl long double. With c++ I might expect type issues (as you did in your comment), but struggling to see anything wrong with this. Any particular error when it fails to compile? -- imalone -- users mailing list users@lists.fedoraproject.org To unsubscribe or change subscription options: https://admin.fedoraproject.org/mailman/listinfo/users Guidelines: http://fedoraproject.org/wiki/Mailing_list_guidelines |
| All times are GMT. The time now is 12:20 AM. |
VBulletin, Copyright ©2000 - 2013, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.