DEFINITION MODULE R3MATH;
 
PROCEDURE SIN(x:REAL3):REAL3;
PROCEDURE COS(x:REAL3):REAL3;
PROCEDURE TAN(x:REAL3):REAL3;
PROCEDURE ARCSIN(x:REAL3):REAL3;
PROCEDURE ARCCOS(x:REAL3):REAL3;
PROCEDURE ARCTAN(x:REAL3):REAL3;
PROCEDURE ARCTAN2(Y,X:REAL3):REAL3;
PROCEDURE EXP(x:REAL3):REAL3;
PROCEDURE LN(x:REAL3):REAL3;
PROCEDURE SQRT(x:REAL3):REAL3;
PROCEDURE SQUARE(x:REAL3):REAL3;
PROCEDURE POWER(x,y:REAL3):REAL3;
PROCEDURE FRAC(X:REAL3):REAL3;
PROCEDURE ENTIER(x:REAL3):INTEGER;
(*
PROCEDURE HAV(X:REAL3):REAL3;
PROCEDURE ARCHAV(X:REAL3):REAL3;
*)
END R3MATH.
 
IMPLEMENTATION MODULE R3MATH;
 
PROCEDURE COS(X:REAL3):REAL3;
HEX FE C0 F2 (@COS+7) D6 80 A7 FA (@COS+23) 06 00 11 20 92
CD (@29) D6 80 18 16 3D CD (@SIN+5) 47 54 5D CD (@5)
   3C 06 80 11 00 00 CD (@13) D6 80 C9 END COS;
 
PROCEDURE SIN(X:REAL3):REAL3;
HEX FE C0 FA (@SIN+46) FE F9 F8 A7 FA (@SIN+72) 11 20 92 28
0C 47 10 11 06 01 CD (@29) D6 80 18 E3 06 00 CD
(@29) C3 (@COS) 10 0F 06 02 CD (@29) 18 D2 D6 80
CD (@SIN+5) D6 80 C9 06 02 CD (@21) CD (@FRAC+13) 06 02
11 20 92 CD (@5) 18 B8 E5 F5 47 54 5D CD (@5)
FE FA F2 (@SIN+69H) 06 7D 11 11 55 CD (@5) 06 00 50
58 CD (@13) C1 D1 C3 (@5) E5 F5 06 F9 11 79 07
CD (@5) 06 7D 11 22 55 CD (@13) C1 D1 18 DB END SIN;
 
PROCEDURE ARCSIN(X:REAL3):REAL3;
HEX FE C0 FA (@ARCSIN+84) FE F9 F8 3C FA (@ARCSIN+48) 3D F2 (@ARCSIN+23)
7C FE 99 3E FF 38 1A 06 00 50 58 CD (@29) D6 81 CD
(@SQRT) CD (@ARCSIN+5) D6 7F 06 00 11 20 92 C3 (@13)
3D E5 F5 47 54 5D CD (@5) FE FA 06 FD 11 C1 5C
FA (@SIN+90) EB 47 3E FD 21 39 63 D9 21 (@ARCSIN+92) CD (@POLYN)
   C3 (@SIN+90) EE 80 CD (@ARCSIN+5) EE 80 C9 FB E8 7C 81
98 FC 2F 13 FC F5 55 FD END ARCSIN;
 
PROCEDURE ARCTAN2(Y,X:REAL3):REAL3;HEX
F1 D1 C1 E3 C5 D5 F5 7C 65 68 41 4F C6 40 E6 80
08 3E 7F A1 EE 40 C5 4F 3E 7F A0 EE 40 B9 C1 38
15 20 05 ED 52 19 38 0F EB 78 41 EE 80 CD (@ARCTAN2+65)
08 11 0F 92 C3 (@13) 08 3C 08 78 FE C0 79 FA (@ARCTAN2+45)
   CD (@22) END ARCTAN2;
PROCEDURE ARCTAN(X:REAL3):REAL3;
HEX FE C0 FA (@ARCTAN+79) FE F8 F8 A7 F2 (@ARCTAN+56) E5 F5 47 54
5D CD (@5) FE FA 06 7E 11 2B 52 FA (@SIN+90) E5 F5
D6 06 06 79 11 E8 E4 CD (@13) C1 D1 D9 21 (@ARCTAN+87)
CD (@POLYN) C1 D1 C3 (@5) 47 54 5D AF 67 6F CD (@21)
   CD (@ARCTAN+5) 06 00 11 20 92 CD (@29) D6 80 C9 D6
80 CD (@ARCTAN+5) D6 80 C9 C5 DF 7B 67 63 FD 36 52 7E
F9 FF FF END ARCTAN;
 
PROCEDURE HAV(X:REAL3):REAL3;
HEX FE C0 F2 (@HAV+7) D6 80 A7 F2 (@HAV+21) 3D CD (@SIN) 47
54 5D C3 (@5) 20 0E CD (@COS+11) 06 80 11 00 00 CD
(@13) D6 81 C9 47 11 20 92 10 15 06 81 CD (@13)
D6 80 CD (@HAV) 06 80 11 00 00 CD (@13) D6 80 C9
10 09 06 82 CD (@13) D6 80 18 B5 06 02 CD (@21)
CD (@FRAC+13) 06 02 11 92 10 CD (@5) 18 A3 END HAV;
 
PROCEDURE ARCHAV(X:REAL3):REAL3;
HEX FE FE F2 (@ARCHAV+13) CD (@SQRT) CD (@ARCSIN) 3C C9 20 0F FE
FF 20 12 7C FE 80 3E FF 06 00 50 58 30 07 D6 7F
CD (@13) 18 12 D6 80 CD (@13) CD (@ARCHAV) D6 80 06
01 11 20 92 C3 (@13) END ARCHAV;
 
PROCEDURE ARCCOS(X:REAL3):REAL3;
HEX CD (@ARCSIN) 06 00 11 20 92 D6 80 C3 (@13) END ARCCOS;
 
PROCEDURE TWOXP(X:REAL3):REAL3;
HEX CD (@FRAC+13) D5 47 54 5D 3E F9 21 65 C0 D9 21 (@TWOXP+22)
CD (@POLYN) D1 83 C9 A4 A8 FB 7A EE FD D6 62 FF 00
00 00 END TWOXP;
 
PROCEDURE LN(X:REAL3):REAL3;
HEX  CB 7C 20 1C F5 AF CD (@LN+50) E3 F5 6C CB 04 9F 67
CD (@41) 06 FF 11 E4 62 CD (@5) C1 D1 C3 (@13)
3C F5 EB AF 67 6F 06 FF CD (@21) CD (@LN+50) EE 80
18 D7 06 80 11 00 00 CD (@13) 47 54 5D 3E FC 21
F7 50 D9 21 (@LN+76) CD (@POLYN) C3 (@5) 03 AD 7D 3A
4F FE BC FF 7E 00 00 00 END LN;
  
PROCEDURE POLYN;
HEX D9 0E 04 C5 D5 CD (@5) 47 EB D9 5E 23 56 23 7E
23 D5 D9 E1 CD (@13) D1 C1 0D 20 E7 C9 END POLYN;
 
PROCEDURE FRAC(X:REAL3):REAL3;HEX
FE C0 F2 (@FRAC+13) EE 80 CD (@FRAC+13) EE 80 C9 11 00 00
FE C0 FA (@FRAC+31) D0 1C CD (@FRAC+50) 06 FF C3 (@40+2) EB
A7 ED 52 11 FE FF 38 01 1C D6 80 CD (@FRAC+48) 18 EA
38 0C 47 04 18 05 29 EB ED 6A EB 10 F9 C9 CB 2A
CB 1B CB 1C CB 1D 3C 20 F5 C9 END FRAC;

PROCEDURE ENTIER(x:REAL3):INTEGER;HEX
C3 (@4CH) END ENTIER;
 
PROCEDURE SQRT(X:REAL3):REAL3;
HEX 37 CB 1C CB 1D CB 2F 38 04 CB 1C CB 1D F5 CD (@SQRT+20)
   F1 29 C9 4C 7D 06 10 21 00 00 54 5D A7 ED 52
38 16 28 25 87 CB 11 ED 6A 87 CB 11 ED 6A 37 CB
13 CB 12 2B 10 E7 EB C9 19 87 CB 11 ED 6A 87 CB
11 ED 6A CB 23 CB 12 18 EB 87 CB 11 38 D9 87 CB
11 38 D9 19 29 29 18 EB END SQRT;
 
PROCEDURE SQUARE(x:REAL3):REAL3;
HEX 47 54 5D C3 (@5) END SQUARE;
 
PROCEDURE POWER(x,y:REAL3):REAL3;
CONST Log2e=RL3(1.442695);
BEGIN
RETURN TWOXP(LN(x)*y*Log2e)
END POWER;
 
PROCEDURE TAN(x:REAL3):REAL3;
BEGIN
RETURN SIN(x)/COS(x)
END TAN;
 
PROCEDURE EXP(x:REAL3):REAL3;
CONST Log2e=RL3(1.442695);
BEGIN
RETURN TWOXP(x*Log2e)
END EXP;
 
END R3MATH.
