]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/m2/gm2-libs-iso/ShortMath.mod
Update copyright years.
[thirdparty/gcc.git] / gcc / m2 / gm2-libs-iso / ShortMath.mod
CommitLineData
33a3f85e
GM
1(* LongMath.mod implement the ISO LongMath specification.
2
a945c346 3Copyright (C) 2023-2024 Free Software Foundation, Inc.
33a3f85e
GM
4Contributed by Gaius Mulley <gaiusmod2@gmail.com>.
5
6This file is part of GNU Modula-2.
7
8GNU Modula-2 is free software; you can redistribute it and/or modify
9it under the terms of the GNU General Public License as published by
10the Free Software Foundation; either version 3, or (at your option)
11any later version.
12
13GNU Modula-2 is distributed in the hope that it will be useful, but
14WITHOUT ANY WARRANTY; without even the implied warranty of
15MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16General Public License for more details.
17
18Under Section 7 of GPL version 3, you are granted additional
19permissions described in the GCC Runtime Library Exception, version
203.1, as published by the Free Software Foundation.
21
22You should have received a copy of the GNU General Public License and
23a copy of the GCC Runtime Library Exception along with this program;
24see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
25<http://www.gnu.org/licenses/>. *)
26
27IMPLEMENTATION MODULE ShortMath ;
28
29IMPORT libm ;
30IMPORT cbuiltin ;
31
32PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_sqrtf)) sqrt (x: SHORTREAL): SHORTREAL;
33 (* Returns the positive square root of x *)
34BEGIN
35 RETURN cbuiltin.sqrtf (x)
36END sqrt ;
37
38PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_expf)) exp (x: SHORTREAL): SHORTREAL;
39 (* Returns the exponential of x *)
40BEGIN
41 RETURN cbuiltin.expf (x)
42END exp ;
43
44PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_logf)) ln (x: SHORTREAL): SHORTREAL;
45 (* Returns the natural logarithm of x *)
46BEGIN
47 RETURN cbuiltin.logf (x)
48END ln ;
49
50 (* The angle in all trigonometric functions is measured in radians *)
51
52PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_sinf)) sin (x: SHORTREAL): SHORTREAL;
53 (* Returns the sine of x *)
54BEGIN
55 RETURN cbuiltin.sinf (x)
56END sin ;
57
58PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_cosf)) cos (x: SHORTREAL): SHORTREAL;
59 (* Returns the cosine of x *)
60BEGIN
61 RETURN cbuiltin.cosf (x)
62END cos ;
63
64PROCEDURE tan (x: SHORTREAL): SHORTREAL;
65 (* Returns the tangent of x *)
66BEGIN
67 RETURN libm.tanf (x)
68END tan ;
69
70PROCEDURE arcsin (x: SHORTREAL): SHORTREAL;
71 (* Returns the arcsine of x *)
72BEGIN
73 RETURN libm.asinf (x)
74END arcsin ;
75
76PROCEDURE arccos (x: SHORTREAL): SHORTREAL;
77 (* Returns the arccosine of x *)
78BEGIN
79 RETURN libm.acosf (x)
80END arccos ;
81
82PROCEDURE arctan (x: SHORTREAL): SHORTREAL;
83 (* Returns the arctangent of x *)
84BEGIN
85 RETURN libm.atanf (x)
86END arctan ;
87
88PROCEDURE power (base, exponent: SHORTREAL): SHORTREAL;
89 (* Returns the value of the number base raised to the power exponent *)
90BEGIN
91 RETURN libm.powf (base, exponent)
92END power ;
93
94PROCEDURE round (x: SHORTREAL) : INTEGER;
95 (* Returns the value of x rounded to the nearest integer *)
96BEGIN
97 RETURN TRUNC (x)
98END round ;
99
100PROCEDURE IsRMathException (): BOOLEAN;
101 (* Returns TRUE if the current coroutine is in the
102 exceptional execution state because of the raising
103 of an exception in a routine from this module; otherwise
104 returns FALSE.
105 *)
106BEGIN
107 RETURN FALSE
108END IsRMathException ;
109
110END ShortMath.