IntPow Function
Calculate any float to non-negative integer power.

Unit
QESBPCSMath

Declaration
Function IntPow(const Base: Extended; const Exponent: LongWord): Extended;

Description
Developed by Rory Daulton and used with permission. Last modified December 1998.

Implementation

function IntPow (const Base: Extended; const Exponent: LongWord): Extended;
{ Heart of Rory Daulton's IntPower: assumes valid parameters &
non-negative exponent }
asm
		fld1                      { Result := 1 }
		cmp     eax, 0            { eax := Exponent }
		jz      @@3
		fld     Base
		jmp     @@2
  @@1:    fmul    ST, ST            { X := Base * Base }
  @@2:    shr     eax,1
		jnc     @@1
		fmul    ST(1),ST          { Result := Result * X }
		jnz     @@1
		fstp    st                { pop X from FPU stack }
  @@3:
		fwait
End;


HTML generated by Time2HELP
http://www.time2help.com