]> git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/m2/gm2-libs/MathLib0.mod
Update copyright years.
[thirdparty/gcc.git] / gcc / m2 / gm2-libs / MathLib0.mod
1 (* MathLib0.mod provides access to math functions.
2
3 Copyright (C) 2003-2023 Free Software Foundation, Inc.
4 Contributed by Gaius Mulley <gaius.mulley@southwales.ac.uk>.
5
6 This file is part of GNU Modula-2.
7
8 GNU Modula-2 is free software; you can redistribute it and/or modify
9 it under the terms of the GNU General Public License as published by
10 the Free Software Foundation; either version 3, or (at your option)
11 any later version.
12
13 GNU Modula-2 is distributed in the hope that it will be useful, but
14 WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 General Public License for more details.
17
18 Under Section 7 of GPL version 3, you are granted additional
19 permissions described in the GCC Runtime Library Exception, version
20 3.1, as published by the Free Software Foundation.
21
22 You should have received a copy of the GNU General Public License and
23 a copy of the GCC Runtime Library Exception along with this program;
24 see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
25 <http://www.gnu.org/licenses/>. *)
26
27 IMPLEMENTATION MODULE MathLib0 ;
28
29 IMPORT cbuiltin, libm ;
30
31 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_sqrt)) sqrt (x: REAL): REAL;
32 BEGIN
33 RETURN cbuiltin.sqrt (x)
34 END sqrt ;
35
36 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_sqrtl)) sqrtl (x: LONGREAL): LONGREAL;
37 BEGIN
38 RETURN cbuiltin.sqrtl (x)
39 END sqrtl ;
40
41 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_sqrts)) sqrts (x: SHORTREAL) : SHORTREAL ;
42 BEGIN
43 RETURN cbuiltin.sqrtf (x)
44 END sqrts ;
45
46 PROCEDURE exp (x: REAL) : REAL ;
47 BEGIN
48 RETURN libm.exp (x)
49 END exp ;
50
51 PROCEDURE exps (x: SHORTREAL) : SHORTREAL ;
52 BEGIN
53 RETURN libm.expf (x)
54 END exps ;
55
56 PROCEDURE expl (x: LONGREAL) : LONGREAL ;
57 BEGIN
58 RETURN libm.expl (x)
59 END expl ;
60
61
62 (*
63 log (b)
64 log (b) = c
65 a ------
66 log (a)
67 c
68 *)
69
70 PROCEDURE ln (x: REAL) : REAL ;
71 BEGIN
72 RETURN libm.log (x) / libm.log (exp1)
73 END ln ;
74
75 PROCEDURE lns (x: SHORTREAL) : SHORTREAL ;
76 BEGIN
77 RETURN libm.logf (x) / libm.logf (exp1)
78 END lns ;
79
80 PROCEDURE lnl (x: LONGREAL) : LONGREAL ;
81 BEGIN
82 RETURN libm.logl (x) / libm.logl (exp1)
83 END lnl ;
84
85 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_sin)) sin (x: REAL) : REAL ;
86 BEGIN
87 RETURN cbuiltin.sin (x)
88 END sin ;
89
90 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_sinl)) sinl (x: LONGREAL) : LONGREAL ;
91 BEGIN
92 RETURN cbuiltin.sinl (x)
93 END sinl ;
94
95 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_sinf)) sins (x: SHORTREAL) : SHORTREAL ;
96 BEGIN
97 RETURN cbuiltin.sinf (x)
98 END sins ;
99
100 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_cos)) cos (x: REAL) : REAL ;
101 BEGIN
102 RETURN cbuiltin.cos (x)
103 END cos ;
104
105 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_cosf)) coss (x: SHORTREAL) : SHORTREAL ;
106 BEGIN
107 RETURN cbuiltin.cosf (x)
108 END coss ;
109
110 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_cosl)) cosl (x: LONGREAL) : LONGREAL ;
111 BEGIN
112 RETURN cbuiltin.cosl (x)
113 END cosl ;
114
115 PROCEDURE tan (x: REAL) : REAL ;
116 BEGIN
117 RETURN libm.tan (x)
118 END tan ;
119
120 PROCEDURE tanl (x: LONGREAL) : LONGREAL ;
121 BEGIN
122 RETURN libm.tanl (x)
123 END tanl ;
124
125 PROCEDURE tans (x: SHORTREAL) : SHORTREAL ;
126 BEGIN
127 RETURN libm.tanf (x)
128 END tans ;
129
130 PROCEDURE arctan (x: REAL) : REAL ;
131 BEGIN
132 RETURN libm.atan (x)
133 END arctan ;
134
135 PROCEDURE arctans (x: SHORTREAL) : SHORTREAL ;
136 BEGIN
137 RETURN libm.atanf (x)
138 END arctans ;
139
140 PROCEDURE arctanl (x: LONGREAL) : LONGREAL ;
141 BEGIN
142 RETURN libm.atanl (x)
143 END arctanl ;
144
145 PROCEDURE entier (x: REAL) : INTEGER ;
146 BEGIN
147 RETURN TRUNC (libm.floor (x))
148 END entier ;
149
150 PROCEDURE entiers (x: SHORTREAL) : INTEGER ;
151 BEGIN
152 RETURN TRUNC (libm.floorf (x))
153 END entiers ;
154
155 PROCEDURE entierl (x: LONGREAL) : INTEGER ;
156 BEGIN
157 RETURN TRUNC (libm.floorl (x))
158 END entierl ;
159
160
161 END MathLib0.