table of contents
other versions
- wheezy 1.4.1-4
RtlExtendedMagicDivide(3w) | Wine API | RtlExtendedMagicDivide(3w) |
NAME¶
RtlExtendedMagicDivide (NTDLL.@)SYNOPSIS¶
#define RtlExtendedMagicDivide( A )
DESCRIPTION¶
Allows replacing a division by a longlong constant with a multiplication by the inverse constant.RETURNS¶
(dividend * inverse_divisor) >> ( 64 + shift).NOTES¶
If the divisor of a division is constant, the constants inverse_divisor and shift must be chosen such that inverse_divisor = 2^( 64 + shift) / divisor. Then we have RtlExtendedMagicDivide(dividend,inverse_divisor,shift) == dividend * inverse_divisor / 2^( 64 + shift) == dividend / divisor. The Parameter inverse_divisor although defined as LONGLONG is used as ULONGLONG.IMPLEMENTATION¶
Declared in "winternl.h". Implemented in "dlls/ntdll/large_int.c".Oct 2012 | Wine API |