The Wxutil.h header file in the Microsoft® DirectShow® base classes provides some mathematical helper functions. These are intended to help with time format conversions.
llMulDiv Implements ((a*b)+rnd)/c for 32-bit values of a. Int64x32Div32 Implements ((a*b)+rnd)/c for 64-bit values of a.
Multiplies a by b, adds rnd to the 128-bit result, then divides by c.
Syntax
LONGLONG WINAPI llMulDiv(
LONGLONG a,
LONGLONG b,
LONGLONG c,
LONGLONG rnd
);
Return Value
Returns either the (a * b + rnd)/c calculation or one of the following values.
0x7FFFFFFFFFFFFFFF Overflow occurred because the result is too large (positive). 0x8000000000000000 Overflow occurred because the result is too large (negative).
Remarks
Rounding on the division is toward zero. Division by zero is counted as an overflow condition.
Multiplies a by b, adds rnd to the 96-bit result, then divides by c.
Syntax
LONGLONG WINAPI Int64x32Div32(
LONGLONG a,
LONG b,
LONG c,
LONG rnd
);
Return Value
Returns either the (a * b + rnd)/c calculation or one of the following values.
0x7FFFFFFFFFFFFFFF Overflow occurred because the result is too large (positive). 0x8000000000000000 Overflow occurred because the result is too large (negative).
Remarks
Rounding on the division is toward zero. Division by zero is counted as an overflow condition.
Top of Page
© 2000 Microsoft and/or its suppliers. All rights reserved. Terms of Use.