Make muldiv() inline instead of a #define, too.

This commit is contained in:
Markus Hitter 2012-06-27 01:26:09 +02:00
parent d49c0745d5
commit e0959f7ce2
1 changed files with 9 additions and 4 deletions

View File

@ -6,13 +6,18 @@
#include "config.h" #include "config.h"
// return rounded result of multiplicand * multiplier / divisor // return rounded result of multiplicand * multiplier / divisor
#define muldiv(multiplicand, multiplier, divisor) \ // this version is with quotient and remainder precalculated elsewhere
muldivQR(multiplicand, multiplier / divisor, multiplier % divisor, divisor)
// same as before, but with quotient and remainder precalculated elsewhere
const int32_t muldivQR(int32_t multiplicand, uint32_t qn, uint32_t rn, const int32_t muldivQR(int32_t multiplicand, uint32_t qn, uint32_t rn,
uint32_t divisor); uint32_t divisor);
// return rounded result of multiplicand * multiplier / divisor
static int32_t muldiv(int32_t, uint32_t, uint32_t) __attribute__ ((always_inline));
inline int32_t muldiv(int32_t multiplicand, uint32_t multiplier,
uint32_t divisor) {
return muldivQR(multiplicand, multiplier / divisor,
multiplier % divisor, divisor);
}
/* /*
micrometer distance <=> motor step distance conversions micrometer distance <=> motor step distance conversions
*/ */