lkml.org 
[lkml]   [2018]   [Jun]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v7 1/4] fixp-arith: add a linear interpolation function
    Date
    Adds a function to interpolate against two points,
    this is carried arount as a helper function by tons of drivers.

    Signed-off-by: Craig Tatlor <ctatlor97@gmail.com>
    Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
    ---
    include/linux/fixp-arith.h | 20 ++++++++++++++++++++
    1 file changed, 20 insertions(+)

    diff --git a/include/linux/fixp-arith.h b/include/linux/fixp-arith.h
    index d4686fe1cac7..b9e2bb59a734 100644
    --- a/include/linux/fixp-arith.h
    +++ b/include/linux/fixp-arith.h
    @@ -153,4 +153,24 @@ static inline s32 fixp_sin32_rad(u32 radians, u32 twopi)
    #define fixp_cos32_rad(rad, twopi) \
    fixp_sin32_rad(rad + twopi / 4, twopi)

    +
    +/**
    + * fixp_linear_interpolate() - interpolates a value from two known points
    + *
    + * @x0: x value of point 0
    + * @y0: y value of point 0
    + * @x1: x value of point 1
    + * @y1: y value of point 1
    + * @x: the linear interpolant
    + */
    +static inline int fixp_linear_interpolate(int x0, int y0, int x1, int y1, int x)
    +{
    + if (y0 == y1 || x == x0)
    + return y0;
    + if (x1 == x0 || x == x1)
    + return y1;
    +
    + return y0 + ((y1 - y0) * (x - x0) / (x1 - x0));
    +}
    +
    #endif
    --
    2.17.0
    \
     
     \ /
      Last update: 2018-06-14 17:15    [W:8.412 / U:0.052 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site