Re: How to use floating point in a module?

From: Peter Williams
Date: Mon May 31 2004 - 17:45:03 EST


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@xxxxxxxxxx
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@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/