* use generic int64 power

This commit is contained in:
peter 2003-01-15 00:45:17 +00:00
parent 166fe37203
commit dd08014a49
2 changed files with 13 additions and 33 deletions

View File

@ -190,39 +190,12 @@
power:=exp(ln(bas)*expo);
end;
{****************************************************************************
Longint data type routines
****************************************************************************}
function power(bas,expo : int64) : int64;
begin
if bas=0 then
begin
if expo<>0 then
power:=0
else
HandleError(207);
end
else if expo=0 then
power:=1
else
begin
if bas<0 then
begin
if odd(expo) then
power:=-round(exp(ln(-bas)*expo))
else
power:=round(exp(ln(-bas)*expo));
end
else
power:=round(exp(ln(bas)*expo));
end;
end;
{
$Log$
Revision 1.11 2003-01-15 00:40:18 peter
Revision 1.12 2003-01-15 00:45:17 peter
* use generic int64 power
Revision 1.11 2003/01/15 00:40:18 peter
* power returns int64
Revision 1.10 2003/01/03 20:34:02 peter

View File

@ -956,8 +956,11 @@ Function float32_to_int32_round_to_zero( a: Float32 ): longint;
else
power:=exp(ln(bas)*expo);
end;
{$endif}
function power(bas,expo : longint) : longint;
{$ifndef FPC_SYSTEM_HAS_POWER_INT64}
function power(bas,expo : int64) : int64;
begin
if bas=0 then
begin
@ -983,6 +986,7 @@ Function float32_to_int32_round_to_zero( a: Float32 ): longint;
end;
{$endif}
{$ifdef SUPPORT_DOUBLE}
{****************************************************************************
Helper routines to support old TP styled reals
@ -1020,7 +1024,10 @@ Function float32_to_int32_round_to_zero( a: Float32 ): longint;
{
$Log$
Revision 1.9 2002-10-12 20:28:49 carl
Revision 1.10 2003-01-15 00:45:17 peter
* use generic int64 power
Revision 1.9 2002/10/12 20:28:49 carl
* round returns int64
Revision 1.8 2002/10/07 15:15:02 florian