Math Helper Functions

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.

llMulDiv

Math Helper Functions

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.

Int64x32Div32

Math Helper Functions

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 Top of Page
© 2000 Microsoft and/or its suppliers. All rights reserved. Terms of Use.