[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: [rtl] Floating point question
Jonas,
I have seen problems like this before where the compiler does not promote variable types when you expect it. I suggest that you type cast all to float. Sometimes just putting the float first in line solves this as well.
Regards,
Rich
> ----------
> From: Jonas Persson[SMTP:jonas.persson@comsys.se]
> Reply To: rtl@fsmlabs.com
> Sent: Wednesday, May 09, 2001 9:33 AM
> To: RTLinux Mailing list
> Subject: [rtl] Floating point question
>
> Hi all!
>
> So, now I have gotten to the dreaded floating point issue. However, I think my problem is a little rare... the problem is that the FPU simply does not give correct answers. Consider the following code excerpt:
>
> m0 = ramp*chi_off*ang_lim/ my_2_pi;
>
> Given the following parameters,
> ramp = 1,
> chi_off = 0.299,
> ang_lim = 198,
> my_2_pi = 6.28,
>
> the statement above returns
>
> m0 = -2147483648 !!!
>
> Interesting, isn't it? m0 is an int, the rest are floats. If I run the program without debugging and trace data through an RT-fifo, I get lots of results like the above example. However if I debug the program, and wait for a few seconds, sometimes different results are returned.
>
> Can anyone guess at possible causes for this happening? Have anyone else experienced the same behaviour?
>
> Apart from this, my system is working fine, I have no crashes, hangups or other bad behaviour.
>
> My configuration is:
> Pentium III 866 processor, tyan SMP motherboard, kernel 2.2.18-rtl. Base distribution is SuSE 7.0, and exchanged the stock installed debugger for gdb 5.0. I am using the stock gcc 2.95.2 19991024 that comes with SuSE.
>
> BTW, I solved my previous problem by NOT doing rtf_flush() from a rt-thread... :-)
>
> Yours very confusedly,
> Jonas Persson
>
> ______________________________________________________________________
> Jonas Persson E-mail: jonas.persson@comsys.se
> Project Manager, M.Sc C.Sc&E http://www.comsys.se/
> Comsys AB Phone: +46-(0)46-286 3500
> Forskningsbyn IDEON Fax: +46-(0)46-286 3505
> S-223 70 Lund, Sweden
> -- [rtl] ---
> To unsubscribe:
> echo "unsubscribe rtl" | mail majordomo@rtlinux.org OR
> echo "unsubscribe rtl <Your_email>" | mail majordomo@rtlinux.org
> --
> For more information on Real-Time Linux see:
> http://www.rtlinux.org/rtlinux/
>