Messages in this thread | | | Date | Tue, 01 Jun 2004 08:43:46 +1000 | From | Peter Williams <> | Subject | Re: How to use floating point in a module? |
| |
Michal Jaegermann wrote: > On Mon, May 31, 2004 at 01:44:40PM +0800, Ian Kent wrote: > >>Why not scaled longs (or bigger), scalled to number of significant >>digits. The Taylor series for the trig functions might be a painfull. > > > Taylor series usually are painful for anything you want to calculate > by any practical means. Slow convergence but, for a change, quickly > growing roundup errors and things like that. An importance and uses > of Taylor series lie elsewhere. > > OTOH polynomial approximations, or rational ones (after all division > is quite quick on modern processors), can be fast and surprisingly > precise; especially if you know bounds for your arguments and that > that range is not too wide. Of course when doing that in a fixed > point one needs to pay attention to possible overflows and > structuring calculations to guard against a loss of precision is > always a good idea. > > My guess is that finding some fixed-point libraries, at least to use > as a starting point, should be not too hard.
See the "Handbook of Mathematical Functions" by Abromawitz and Stegun, Dover Publications (ISBN 486-61272-2, Library of Congress number 65-12253) which has some small but accurate polynomial approximations for many functions.
-- Dr Peter Williams, Chief Scientist peterw@aurema.com Aurema Pty Limited Tel:+61 2 9698 2322 PO Box 305, Strawberry Hills NSW 2012, Australia Fax:+61 2 9699 9174 79 Myrtle Street, Chippendale NSW 2008, Australia http://www.aurema.com
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |