1 /* $NetBSD: ldbl_dummy.c,v 1.1 2013/11/12 17:36:14 joerg 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.1 2013/11/12 17:36:14 joerg Exp $"); 38 39 #include "namespace.h" 40 #include <math.h> 41 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 62 long double 63 atan2l(long double y, long double x) 64 { 65 return atan2(y, x); 66 } 67 68 long double 69 hypotl(long double x, long double y) 70 { 71 return hypot(x, y); 72 } 73 74 long double 75 logl(long double x) 76 { 77 return log(x); 78 } 79 80 long double 81 log10l(long double x) 82 { 83 return log10(x); 84 } 85 86 long double 87 expl(long double x) 88 { 89 return exp(x); 90 } 91 92 long double 93 exp2l(long double x) 94 { 95 return exp2(x); 96 } 97 98 long double 99 powl(long double x, long double y) 100 { 101 return pow(x, y); 102 } 103 104 long double 105 cosl(long double x) 106 { 107 return cos(x); 108 } 109 110 long double 111 sinl(long double x) 112 { 113 return sin(x); 114 } 115 116 117 long double 118 tanl(long double x) 119 { 120 return tan(x); 121 } 122 123 long double 124 sinhl(long double x) 125 { 126 return sinh(x); 127 } 128 129 long double 130 coshl(long double x) 131 { 132 return cosh(x); 133 } 134 135 long double 136 tanhl(long double x) 137 { 138 return tanh(x); 139 } 140 141 long double 142 acosl(long double x) 143 { 144 return acos(x); 145 } 146 147 long double 148 asinl(long double x) 149 { 150 return asin(x); 151 } 152 153 long double 154 atanl(long double x) 155 { 156 return atan(x); 157 } 158 159 long double 160 asinhl(long double x) 161 { 162 return asinh(x); 163 } 164 165 long double 166 acoshl(long double x) 167 { 168 return acosh(x); 169 } 170 171 long double 172 atanhl(long double x) 173 { 174 return atanh(x); 175 } 176