File: MathLib.mi

package info (click to toggle)
mocka 9905-2
  • links: PTS
  • area: non-free
  • in suites: potato, sarge, woody
  • size: 5,436 kB
  • ctags: 160
  • sloc: asm: 23,203; makefile: 124; sh: 102; ansic: 23
file content (109 lines) | stat: -rw-r--r-- 2,452 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
(******************************************************************************)
(* Copyright (c) 1988 by GMD Karlruhe, Germany				      *)
(* Gesellschaft fuer Mathematik und Datenverarbeitung			      *)
(* (German National Research Center for Computer Science)		      *)
(* Forschungsstelle fuer Programmstrukturen an Universitaet Karlsruhe	      *)
(* All rights reserved.							      *)
(******************************************************************************)

IMPLEMENTATION MODULE MathLib;

  CONST
    log2     =  0.693147180559945309E0;  (* ln (2.0) *)
    pi       = 3.1415926535897932384626434;
    twoopi   = 2.0 / pi;
    pio2     =   pi / 2.0;
    pio4     =   pi / 4.0;
    sqrt2    =  1.4142135623730950488016887;
    MaxCardI = 65535;
    MaxCardR = 65535.0;
    


  (* The backend always inlines these functions.  Hence, the following  *)
  (* implementations are not recursive and are only used with procedure *)
  (* types.								*)
  
  PROCEDURE sqrt (arg: REAL): REAL;
  BEGIN 
    RETURN sqrt (arg)
  END sqrt;

  PROCEDURE sqrtL (arg: LONGREAL): LONGREAL;
  BEGIN
    RETURN sqrtL (arg);
  END sqrtL;

  PROCEDURE exp (arg: REAL): REAL;
  BEGIN 
    RETURN exp (arg)
  END exp;

  PROCEDURE expL (arg: LONGREAL): LONGREAL;
  BEGIN (* exp *)
    RETURN expL (arg)
  END expL;

  PROCEDURE ln (arg: REAL): REAL;
  BEGIN 
    RETURN ln (arg)
  END ln;

  PROCEDURE lnL (arg: LONGREAL): LONGREAL;
  BEGIN
    RETURN lnL (arg)
  END lnL;

  PROCEDURE sin (arg: REAL): REAL;
  BEGIN 
    RETURN sin (arg)
  END sin;

  PROCEDURE sinL (arg: LONGREAL): LONGREAL;
  BEGIN
    RETURN sinL (arg);
  END sinL;

  PROCEDURE cos (arg: REAL): REAL;
  BEGIN 
    RETURN cos (arg)
  END cos;

  PROCEDURE cosL (arg: LONGREAL): LONGREAL;
  BEGIN
    RETURN cosL (arg);
  END cosL;

  PROCEDURE arctan (arg: REAL): REAL;
  BEGIN 
    RETURN arctan (arg)
  END arctan;

  PROCEDURE arctanL (arg: LONGREAL): LONGREAL;
  BEGIN (* arctan *)
    RETURN arctanL (arg)
  END arctanL;

  PROCEDURE real (arg: INTEGER): REAL;
  BEGIN 
    RETURN real (arg)
  END real;

  PROCEDURE realL (arg: INTEGER): LONGREAL;
  BEGIN
    RETURN realL (arg)
  END realL;

  PROCEDURE entier (arg: REAL): INTEGER;
    (* Returns the largest integer <= arg *)
  BEGIN 
    RETURN entier (arg)
  END entier;

  PROCEDURE entierL (arg: LONGREAL): INTEGER;
    (* Returns the largest integer <= arg *)
  BEGIN
    RETURN entierL (arg)
  END entierL;

END MathLib.