[Back to MATH SWAG index] [Back to Main SWAG index] [Original]
unit Math;
interface
FUNCTION LogTen( X: REAL ) : REAL;
FUNCTION Power( x: REAL; y: REAL ) : REAL;
FUNCTION PowerInt( x: Integer; y: Integer ) : Integer;
FUNCTION PowerI( x: REAL; i: INTEGER ) : REAL;
FUNCTION PowTen( Power : INTEGER ) : REAL;
implementation
FUNCTION LogTen( X: REAL ) : REAL;
BEGIN (* LogTen *)
IF X <= 0.0 THEN
LogTen := 0.0
ELSE
LogTen := LN( X ) * (1/ln(10));
end;
FUNCTION Power( x: REAL; y: REAL ) : REAL;
BEGIN (* Power *)
IF x > 0 THEN
Power := EXP( y * LN( x ) )
ELSE
Power := 0.0;
END (* Power *);
FUNCTION PowerInt( x: Integer; y: Integer ) : Integer;
var
N,i : Integer;
begin
N:=X;
for i:=1 to y-1 do x:=x * n;
PowerInt:=X;
end;
FUNCTION PowerI( x: REAL; i: INTEGER ) : REAL;
VAR
Temp: REAL;
AbsI: INTEGER;
BEGIN (* PowerI *)
IF i < 0 THEN
BEGIN
i := -i;
IF x <> 0.0 THEN x := 1.0 / x;
END;
Temp := 1.0;
WHILE( i > 0 ) DO
BEGIN
WHILE ( NOT ODD( i ) ) DO
BEGIN
i := i DIV 2;
x := x * x;
END;
i := i - 1;
Temp := Temp * x;
END;
PowerI := Temp;
END (* PowerI *);
FUNCTION PowTen( Power : INTEGER ) : REAL;
VAR
Temp : REAL;
I : INTEGER;
AbsPow : INTEGER;
X : REAL;
BEGIN (* PowTen *)
X := 10.0;
IF Power < 0 THEN
BEGIN
Power := -Power;
X := 0.1;
END;
Temp := 1.0;
WHILE( Power > 0 ) DO
BEGIN
WHILE ( NOT ODD( Power ) ) DO
BEGIN
Power := Power DIV 2;
X := X * X;
END;
Power := Power - 1;
Temp := Temp * X;
END;
PowTen := Temp;
END (* PowTen *);
begin
end.
[Back to MATH SWAG index] [Back to Main SWAG index] [Original]