Fix error in fix16_lerp16 on platforms with sizeof(int) == 2.

Patch by georgjohann. Closes issue 20.
This commit is contained in:
PetteriAimonen 2013-01-28 15:52:08 +00:00
parent 52214f192f
commit bf4299bf58
1 changed files with 2 additions and 2 deletions

View File

@ -481,6 +481,7 @@ fix16_t fix16_mod(fix16_t x, fix16_t y)
}
#ifndef FIXMATH_NO_64BIT
fix16_t fix16_lerp8(fix16_t inArg0, fix16_t inArg1, uint8_t inFract)
{
@ -492,13 +493,12 @@ fix16_t fix16_lerp8(fix16_t inArg0, fix16_t inArg1, uint8_t inFract)
fix16_t fix16_lerp16(fix16_t inArg0, fix16_t inArg1, uint16_t inFract)
{
int64_t tempOut = int64_mul_i32_i32(inArg0, ((1 << 16) - inFract));
int64_t tempOut = int64_mul_i32_i32(inArg0, (((int32_t)1 << 16) - inFract));
tempOut = int64_add(tempOut, int64_mul_i32_i32(inArg1, inFract));
tempOut = int64_shift(tempOut, -16);
return (fix16_t)int64_lo(tempOut);
}
#ifndef FIXMATH_NO_64BIT
fix16_t fix16_lerp32(fix16_t inArg0, fix16_t inArg1, uint32_t inFract)
{
int64_t tempOut;