1 /* $NetBSD: ldbl_dummy.c,v 1.3 2023/03/13 18:18:36 riastradh Exp $ */
2
3 /*-
4 * Copyright (c) 2013 The NetBSD Foundation, Inc.
5 * All rights reserved.
6 *
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions
9 * are met:
10 * 1. Redistributions of source code must retain the above copyright
11 * notice, this list of conditions and the following disclaimer.
12 * 2. Redistributions in binary form must reproduce the above copyright
13 * notice, this list of conditions and the following disclaimer in the
14 * documentation and/or other materials provided with the distribution.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
17 * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
18 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
19 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
20 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
21 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
22 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
23 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
24 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
25 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
26 * POSSIBILITY OF SUCH DAMAGE.
27 */
28
29 /*
30 * Simple long double -> double wrappers for various transcendental functions.
31 * They work neither on the additional range of long double nor do they use
32 * the additional precision. They exist as stop gap fix for various programs
33 * picking up long double, e.g. via the C++ run time.
34 */
35
36 #include <sys/cdefs.h>
37 __RCSID("$NetBSD: ldbl_dummy.c,v 1.3 2023/03/13 18:18:36 riastradh Exp $");
38
39 #include "namespace.h"
40 #include <math.h>
41
__weak_alias(atan2l,_atan2l)42 __weak_alias(atan2l, _atan2l)
43 __weak_alias(hypotl, _hypotl)
44 __weak_alias(logl, _logl)
45 __weak_alias(log10l, _log10l)
46 __weak_alias(log2l, _log2l)
47 __weak_alias(log1pl, _log1pl)
48 __weak_alias(expl, _expl)
49 __weak_alias(exp2l, _exp2l)
50 __weak_alias(expm1l, _expm1l)
51 __weak_alias(powl, _powl)
52 __weak_alias(cosl, _cosl)
53 __weak_alias(sinl, _sinl)
54 __weak_alias(tanl, _tanl)
55 __weak_alias(coshl, _coshl)
56 __weak_alias(sinhl, _sinhl)
57 __weak_alias(tanhl, _tanhl)
58 __weak_alias(acosl, _acosl)
59 __weak_alias(asinl, _asinl)
60 __weak_alias(atanl, _atanl)
61 __weak_alias(acoshl, _acoshl)
62 __weak_alias(asinhl, _asinhl)
63 __weak_alias(atanhl, _atanhl)
64 __weak_alias(erfl, _erfl)
65 __weak_alias(erfcl, _erfcl)
66 __weak_alias(lgammal, _lgammal)
67 __weak_alias(tgammal, _tgammal)
68
69 long double
70 atan2l(long double y, long double x)
71 {
72 return atan2(y, x);
73 }
74
75 long double
hypotl(long double x,long double y)76 hypotl(long double x, long double y)
77 {
78 return hypot(x, y);
79 }
80
81 long double
logl(long double x)82 logl(long double x)
83 {
84 return log(x);
85 }
86
87 long double
log10l(long double x)88 log10l(long double x)
89 {
90 return log10(x);
91 }
92
93 long double
log2l(long double x)94 log2l(long double x)
95 {
96 return log2(x);
97 }
98
99 long double
log1pl(long double x)100 log1pl(long double x)
101 {
102 return log1p(x);
103 }
104
105 long double
expl(long double x)106 expl(long double x)
107 {
108 return exp(x);
109 }
110
111 long double
exp2l(long double x)112 exp2l(long double x)
113 {
114 return exp2(x);
115 }
116
117 long double
expm1l(long double x)118 expm1l(long double x)
119 {
120 return expm1(x);
121 }
122
123 long double
powl(long double x,long double y)124 powl(long double x, long double y)
125 {
126 return pow(x, y);
127 }
128
129 long double
cosl(long double x)130 cosl(long double x)
131 {
132 return cos(x);
133 }
134
135 long double
sinl(long double x)136 sinl(long double x)
137 {
138 return sin(x);
139 }
140
141
142 long double
tanl(long double x)143 tanl(long double x)
144 {
145 return tan(x);
146 }
147
148 long double
sinhl(long double x)149 sinhl(long double x)
150 {
151 return sinh(x);
152 }
153
154 long double
coshl(long double x)155 coshl(long double x)
156 {
157 return cosh(x);
158 }
159
160 long double
tanhl(long double x)161 tanhl(long double x)
162 {
163 return tanh(x);
164 }
165
166 long double
acosl(long double x)167 acosl(long double x)
168 {
169 return acos(x);
170 }
171
172 long double
asinl(long double x)173 asinl(long double x)
174 {
175 return asin(x);
176 }
177
178 long double
atanl(long double x)179 atanl(long double x)
180 {
181 return atan(x);
182 }
183
184 long double
asinhl(long double x)185 asinhl(long double x)
186 {
187 return asinh(x);
188 }
189
190 long double
acoshl(long double x)191 acoshl(long double x)
192 {
193 return acosh(x);
194 }
195
196 long double
atanhl(long double x)197 atanhl(long double x)
198 {
199 return atanh(x);
200 }
201
202 long double
erfl(long double x)203 erfl(long double x)
204 {
205 return erf(x);
206 }
207
208 long double
erfcl(long double x)209 erfcl(long double x)
210 {
211 return erfc(x);
212 }
213
214 long double
lgammal(long double x)215 lgammal(long double x)
216 {
217 return lgamma(x);
218 }
219
220 long double
tgammal(long double x)221 tgammal(long double x)
222 {
223 return tgamma(x);
224 }
225