## Math Helper Functions

The Wxutil.h header file in the DirectShow base classes provides some mathematical helper functions. These are intended to help with time format conversions.

Function | Description
llMulDiv | Implements ((a*b)+rnd)/c for 32-bit values of a.
Int64x32Div32 | Implements ((a*b)+rnd)/c for 64-bit values of a.

###

llMulDiv

Math Helper Functions

Multiplies a by b, adds rnd to the 128-bit result, then divides by c.

LONGLONG WINAPI llMulDiv(
LONGLONG a,
LONGLONG b,
LONGLONG c,
LONGLONG rnd
);

##### Return Values

Returns either the (a * b + rnd)/c calculation or one of the following values.

Value | Condition
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.

###

Int64x32Div32

Math Helper Functions

Multiplies a by b, adds rnd to the 96-bit result, then divides by c.

LONGLONG WINAPI Int64x32Div32(
LONGLONG a,
LONG b,
LONG c,
LONG rnd
);

##### Return Values

Returns either the (a * b + rnd)/c calculation or one of the following values.

Value | Condition
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.

© 1997 Microsoft Corporation. All rights reserved. Terms of Use.