From 82dcffa336ec4c35e6212ec87482f77fda014978 Mon Sep 17 00:00:00 2001 From: DeaDDooMER Date: Sat, 16 Sep 2017 18:10:00 +0300 Subject: [PATCH] =?utf8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB=D0=B5?= =?utf8?q?=D0=BD=D1=8B=20=D0=BF=D0=B5=D1=80=D0=B5=D0=B2=D0=BE=D0=B4=D1=8B?= =?utf8?q?=20=D1=81=D1=82=D1=80=D0=BE=D0=BA=20=D0=B2=20=D0=BC=D0=BE=D0=B4?= =?utf8?q?=D1=83=D0=BB=D0=B5=20Reals?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- rtl/Reals.obn | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 55 insertions(+), 1 deletion(-) diff --git a/rtl/Reals.obn b/rtl/Reals.obn index 4c9f665..9efd5a2 100644 --- a/rtl/Reals.obn +++ b/rtl/Reals.obn @@ -1 +1,55 @@ -MODULE Reals; (* interface based on Oberon V4 *) IMPORT SYSTEM, CPStrings, CPMath; PROCEDURE Expo*(x: REAL): INTEGER; BEGIN RETURN SHORT(CPMath.Exponent(x)); END Expo; PROCEDURE ExpoL*(x: LONGREAL): INTEGER; BEGIN RETURN SHORT(CPMath.Exponent(x)); END ExpoL; PROCEDURE SetExpo*(e: INTEGER; VAR x: REAL); BEGIN x := SHORT(CPMath.Real(CPMath.Mantissa(x), e)); END SetExpo; PROCEDURE SetExpoL*(e: INTEGER; VAR x: LONGREAL); BEGIN x := CPMath.Real(CPMath.Mantissa(x), e); END SetExpoL; PROCEDURE Ten*(e: INTEGER): REAL; BEGIN RETURN SHORT(CPMath.IntPower(10, e)); END Ten; PROCEDURE TenL*(e: INTEGER): LONGREAL; BEGIN RETURN CPMath.IntPower(10, e); END TenL; PROCEDURE Convert*(x: REAL; n: INTEGER; VAR d: ARRAY OF CHAR); BEGIN CPStrings.RealToStringForm(x, n, 0, 3, "0", d); END Convert; PROCEDURE ConvertL*(x: LONGREAL; n: INTEGER; VAR d: ARRAY OF CHAR); BEGIN CPStrings.RealToStringForm(x, n, 0, 3, "0", d); END ConvertL; PROCEDURE ConvertH*(x: REAL; VAR d: ARRAY OF CHAR); BEGIN CPStrings.IntToStringForm(SYSTEM.VAL(LONGINT, x), CPStrings.hexadecimal, 0, "0", FALSE, d); END ConvertH; PROCEDURE ConvertHL*(x: LONGREAL; VAR d: ARRAY OF CHAR); BEGIN CPStrings.IntToStringForm(SYSTEM.VAL(HUGEINT, x), CPStrings.hexadecimal, 0, "0", FALSE, d); END ConvertHL; END Reals. \ No newline at end of file +MODULE Reals; (* interface based on Oberon V4 *) + + IMPORT SYSTEM, CPStrings, CPMath; + + PROCEDURE Expo*(x: REAL): INTEGER; + BEGIN + RETURN SHORT(CPMath.Exponent(x)); + END Expo; + + PROCEDURE ExpoL*(x: LONGREAL): INTEGER; + BEGIN + RETURN SHORT(CPMath.Exponent(x)); + END ExpoL; + + PROCEDURE SetExpo*(e: INTEGER; VAR x: REAL); + BEGIN + x := SHORT(CPMath.Real(CPMath.Mantissa(x), e)); + END SetExpo; + + PROCEDURE SetExpoL*(e: INTEGER; VAR x: LONGREAL); + BEGIN + x := CPMath.Real(CPMath.Mantissa(x), e); + END SetExpoL; + + PROCEDURE Ten*(e: INTEGER): REAL; + BEGIN + RETURN SHORT(CPMath.IntPower(10, e)); + END Ten; + + PROCEDURE TenL*(e: INTEGER): LONGREAL; + BEGIN + RETURN CPMath.IntPower(10, e); + END TenL; + + PROCEDURE Convert*(x: REAL; n: INTEGER; VAR d: ARRAY OF CHAR); + BEGIN + CPStrings.RealToStringForm(x, n, 0, 3, "0", d); + END Convert; + + PROCEDURE ConvertL*(x: LONGREAL; n: INTEGER; VAR d: ARRAY OF CHAR); + BEGIN + CPStrings.RealToStringForm(x, n, 0, 3, "0", d); + END ConvertL; + + PROCEDURE ConvertH*(x: REAL; VAR d: ARRAY OF CHAR); + BEGIN + CPStrings.IntToStringForm(SYSTEM.VAL(LONGINT, x), CPStrings.hexadecimal, 0, "0", FALSE, d); + END ConvertH; + + PROCEDURE ConvertHL*(x: LONGREAL; VAR d: ARRAY OF CHAR); + BEGIN + CPStrings.IntToStringForm(SYSTEM.VAL(HUGEINT, x), CPStrings.hexadecimal, 0, "0", FALSE, d); + END ConvertHL; + +END Reals. -- 2.29.2