[lkml]   [2004]   [May]   [31]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: How to use floating point in a module?
    Ian Kent wrote:
    > On Sun, 30 May 2004 wrote:
    >>Yes, if we use a real-time Linux and make a daemon cooperate very closely
    >>with the driver.
    >>>Maybe you could use lookup tables instead of doing floating point
    >>You might be right, if the device can only be controlled to position itself
    >>in say 1,000 different ways, then we could have lookup tables for 1,000
    >>different intervals of (emulations of) floating-point numbers, that yield
    >>1,000 different values of sin. Another table for cos, another for log10,
    >>etc. But I'd still have to write my own emulations for binary operators
    >>such as +, /, etc., since a 1,000*1,000 lookup table would be too big.
    > Why not scaled longs (or bigger), scalled to number of significant
    > digits. The Taylor series for the trig functions might be a painfull.

    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. I have used these successfully with fixed point
    rational numbers (FDRN) (which are probably the same as your scaled
    longs) using 64 bit integers and the results were generally accurate to
    the least significant bit when compared to values calculated using the
    normal maths library and converted to FDRN representation.

    Of course, the available range of values is smaller than for floats or
    double and you have to be careful w.r.t. overflow etc.

    Dr Peter Williams

    "Learning, n. The kind of ignorance distinguishing the studious."
    -- Ambrose Bierce

    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to
    More majordomo info at
    Please read the FAQ at

     \ /
      Last update: 2005-03-22 14:03    [W:0.022 / U:6.720 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site