Advertisement
Abaduaber

PowerFnc

Feb 16th, 2014
373
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 0.65 KB | None | 0 0
  1. Function IntPower(X: Real; I: LongInt): Real;
  2. Var
  3.     Y: LongInt;
  4.     Res: Real;
  5. Begin
  6.     Y:= Abs(I);
  7.     Res:= 1.0;
  8.     While Y > 0 Do Begin
  9.         While Not Odd(Y) Do Begin
  10.             Y:= Y Shr 1;
  11.             X:= X * X
  12.         End;
  13.         Dec(Y);
  14.         Res:= Res * X;
  15.     End;
  16.     If I < 0 Then Res:= 1.0 / Res;
  17.     IntPower:= Res;
  18. End;
  19.  
  20.  
  21. Function Power(B, E: Real): Real;
  22. Begin
  23.     If E = 0.0 Then
  24.         Power:= 1.0
  25.     Else If (B = 0.0) And (E > 0.0) Then
  26.         Power:= 0.0
  27.     Else If (Frac(E) = 0.0) And (Abs(E) <= MaxLongInt) Then
  28.         Power:= IntPower(B, LongInt(Trunc(E)))
  29.     Else
  30.         Power:= Exp(E * Ln(B));
  31. End;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement