1 MODULE Reals
; (* interface based on Oberon V4 *)
3 IMPORT SYSTEM
, CPStrings
, CPMath
;
5 PROCEDURE Expo
*(x
: REAL): INTEGER;
7 RETURN SHORT(CPMath
.Exponent(x
));
10 PROCEDURE ExpoL
*(x
: LONGREAL): INTEGER;
12 RETURN SHORT(CPMath
.Exponent(x
));
15 PROCEDURE SetExpo
*(e
: INTEGER; VAR x
: REAL);
17 x
:= SHORT(CPMath
.Real(CPMath
.Mantissa(x
), e
));
20 PROCEDURE SetExpoL
*(e
: INTEGER; VAR x
: LONGREAL);
22 x
:= CPMath
.Real(CPMath
.Mantissa(x
), e
);
25 PROCEDURE Ten
*(e
: INTEGER): REAL;
27 RETURN SHORT(CPMath
.IntPower(10, e
));
30 PROCEDURE TenL
*(e
: INTEGER): LONGREAL;
32 RETURN CPMath
.IntPower(10, e
);
35 PROCEDURE Convert
*(x
: REAL; n
: INTEGER; VAR d
: ARRAY OF CHAR);
37 CPStrings
.RealToStringForm(x
, n
, 0, 3, "0", d
);
40 PROCEDURE ConvertL
*(x
: LONGREAL; n
: INTEGER; VAR d
: ARRAY OF CHAR);
42 CPStrings
.RealToStringForm(x
, n
, 0, 3, "0", d
);
45 PROCEDURE ConvertH
*(x
: REAL; VAR d
: ARRAY OF CHAR);
47 CPStrings
.IntToStringForm(SYSTEM
.VAL(LONGINT, x
), CPStrings
.hexadecimal
, 0, "0", FALSE
, d
);
50 PROCEDURE ConvertHL
*(x
: LONGREAL; VAR d
: ARRAY OF CHAR);
52 CPStrings
.IntToStringForm(SYSTEM
.VAL(HUGEINT
, x
), CPStrings
.hexadecimal
, 0, "0", FALSE
, d
);