[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/
>