1 /* $NetBSD: ldbl_dummy.c,v 1.2 2014/11/13 21:43:27 christos 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.2 2014/11/13 21:43:27 christos 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(expl, _expl)
47 __weak_alias(exp2l, _exp2l)
48 __weak_alias(powl, _powl)
49 __weak_alias(cosl, _cosl)
50 __weak_alias(sinl, _sinl)
51 __weak_alias(tanl, _tanl)
52 __weak_alias(coshl, _coshl)
53 __weak_alias(sinhl, _sinhl)
54 __weak_alias(tanhl, _tanhl)
55 __weak_alias(acosl, _acosl)
56 __weak_alias(asinl, _asinl)
57 __weak_alias(atanl, _atanl)
58 __weak_alias(acoshl, _acoshl)
59 __weak_alias(asinhl, _asinhl)
60 __weak_alias(atanhl, _atanhl)
61 __weak_alias(erfl, _erfl)
62 __weak_alias(erfcl, _erfcl)
63
64 long double
65 atan2l(long double y, long double x)
66 {
67 return atan2(y, x);
68 }
69
70 long double
hypotl(long double x,long double y)71 hypotl(long double x, long double y)
72 {
73 return hypot(x, y);
74 }
75
76 long double
logl(long double x)77 logl(long double x)
78 {
79 return log(x);
80 }
81
82 long double
log10l(long double x)83 log10l(long double x)
84 {
85 return log10(x);
86 }
87
88 long double
expl(long double x)89 expl(long double x)
90 {
91 return exp(x);
92 }
93
94 long double
exp2l(long double x)95 exp2l(long double x)
96 {
97 return exp2(x);
98 }
99
100 long double
powl(long double x,long double y)101 powl(long double x, long double y)
102 {
103 return pow(x, y);
104 }
105
106 long double
cosl(long double x)107 cosl(long double x)
108 {
109 return cos(x);
110 }
111
112 long double
sinl(long double x)113 sinl(long double x)
114 {
115 return sin(x);
116 }
117
118
119 long double
tanl(long double x)120 tanl(long double x)
121 {
122 return tan(x);
123 }
124
125 long double
sinhl(long double x)126 sinhl(long double x)
127 {
128 return sinh(x);
129 }
130
131 long double
coshl(long double x)132 coshl(long double x)
133 {
134 return cosh(x);
135 }
136
137 long double
tanhl(long double x)138 tanhl(long double x)
139 {
140 return tanh(x);
141 }
142
143 long double
acosl(long double x)144 acosl(long double x)
145 {
146 return acos(x);
147 }
148
149 long double
asinl(long double x)150 asinl(long double x)
151 {
152 return asin(x);
153 }
154
155 long double
atanl(long double x)156 atanl(long double x)
157 {
158 return atan(x);
159 }
160
161 long double
asinhl(long double x)162 asinhl(long double x)
163 {
164 return asinh(x);
165 }
166
167 long double
acoshl(long double x)168 acoshl(long double x)
169 {
170 return acosh(x);
171 }
172
173 long double
atanhl(long double x)174 atanhl(long double x)
175 {
176 return atanh(x);
177 }
178
179 long double
erfl(long double x)180 erfl(long double x)
181 {
182 return erf(x);
183 }
184
185 long double
erfcl(long double x)186 erfcl(long double x)
187 {
188 return erfc(x);
189 }
190