139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner/*===---- tgmath.h - Standard header for type generic math ----------------===*\
239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner *
339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner * Copyright (c) 2009 Howard Hinnant
439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner *
539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner * Permission is hereby granted, free of charge, to any person obtaining a copy
639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner * of this software and associated documentation files (the "Software"), to deal
739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner * in the Software without restriction, including without limitation the rights
839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner * copies of the Software, and to permit persons to whom the Software is
1039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner * furnished to do so, subject to the following conditions:
1139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner *
1239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner * The above copyright notice and this permission notice shall be included in
1339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner * all copies or substantial portions of the Software.
1439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner *
1539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
1639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
1739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
1839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
1939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
2039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
2139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner * THE SOFTWARE.
2239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner *
2339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner\*===----------------------------------------------------------------------===*/
2439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
2539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#ifndef __TGMATH_H
2639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#define __TGMATH_H
2739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
2839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner/* C99 7.22 Type-generic math <tgmath.h>. */
2939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#include <math.h>
3039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
3139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner/* C++ handles type genericity with overloading in math.h. */
3239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#ifndef __cplusplus
33ebb1004d09968f51ec22bde2225112709dc0f386Douglas Gregor#include <complex.h>
3439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
3539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#define _TG_ATTRSp __attribute__((__overloadable__))
3639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#define _TG_ATTRS __attribute__((__overloadable__, __always_inline__))
3739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
3839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner// promotion
3939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
40c13c0125a0543f0d994b63a5c3d2474ac12d632dDouglas Gregortypedef void _Argument_type_is_not_arithmetic;
41ccb8f089d72ed8a01f9e13bcd0de3d2a8cd4af93Howard Hinnantstatic _Argument_type_is_not_arithmetic __tg_promote(...)
42c13c0125a0543f0d994b63a5c3d2474ac12d632dDouglas Gregor  __attribute__((__unavailable__,__overloadable__));
4339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic double               _TG_ATTRSp __tg_promote(int);
4439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic double               _TG_ATTRSp __tg_promote(unsigned int);
4539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic double               _TG_ATTRSp __tg_promote(long);
4639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic double               _TG_ATTRSp __tg_promote(unsigned long);
4739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic double               _TG_ATTRSp __tg_promote(long long);
4839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic double               _TG_ATTRSp __tg_promote(unsigned long long);
4939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic float                _TG_ATTRSp __tg_promote(float);
5039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic double               _TG_ATTRSp __tg_promote(double);
5139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic long double          _TG_ATTRSp __tg_promote(long double);
5239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic float _Complex       _TG_ATTRSp __tg_promote(float _Complex);
5339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic double _Complex      _TG_ATTRSp __tg_promote(double _Complex);
5439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic long double _Complex _TG_ATTRSp __tg_promote(long double _Complex);
5539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
5639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#define __tg_promote1(__x)           (__typeof__(__tg_promote(__x)))
5739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#define __tg_promote2(__x, __y)      (__typeof__(__tg_promote(__x) + \
5839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner                                                 __tg_promote(__y)))
5939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#define __tg_promote3(__x, __y, __z) (__typeof__(__tg_promote(__x) + \
6039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner                                                 __tg_promote(__y) + \
6139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner                                                 __tg_promote(__z)))
6239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
6339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner// acos
6439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
6539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic float
6639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
6739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_acos(float __x) {return acosf(__x);}
6839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
6939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic double
7039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
7139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_acos(double __x) {return acos(__x);}
7239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
7339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic long double
7439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
7539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_acos(long double __x) {return acosl(__x);}
7639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
7739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic float _Complex
7839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
7939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_acos(float _Complex __x) {return cacosf(__x);}
8039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
8139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic double _Complex
8239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
8339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_acos(double _Complex __x) {return cacos(__x);}
8439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
8539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic long double _Complex
8639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
8739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_acos(long double _Complex __x) {return cacosl(__x);}
8839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
8939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#undef acos
9039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#define acos(__x) __tg_acos(__tg_promote1((__x))(__x))
9139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
9239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner// asin
9339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
9439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic float
9539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
9639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_asin(float __x) {return asinf(__x);}
9739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
9839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic double
9939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
10039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_asin(double __x) {return asin(__x);}
10139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
10239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic long double
10339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
10439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_asin(long double __x) {return asinl(__x);}
10539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
10639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic float _Complex
10739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
10839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_asin(float _Complex __x) {return casinf(__x);}
10939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
11039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic double _Complex
11139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
11239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_asin(double _Complex __x) {return casin(__x);}
11339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
11439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic long double _Complex
11539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
11639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_asin(long double _Complex __x) {return casinl(__x);}
11739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
11839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#undef asin
11939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#define asin(__x) __tg_asin(__tg_promote1((__x))(__x))
12039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
12139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner// atan
12239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
12339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic float
12439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
12539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_atan(float __x) {return atanf(__x);}
12639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
12739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic double
12839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
12939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_atan(double __x) {return atan(__x);}
13039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
13139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic long double
13239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
13339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_atan(long double __x) {return atanl(__x);}
13439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
13539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic float _Complex
13639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
13739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_atan(float _Complex __x) {return catanf(__x);}
13839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
13939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic double _Complex
14039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
14139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_atan(double _Complex __x) {return catan(__x);}
14239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
14339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic long double _Complex
14439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
14539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_atan(long double _Complex __x) {return catanl(__x);}
14639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
14739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#undef atan
14839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#define atan(__x) __tg_atan(__tg_promote1((__x))(__x))
14939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
15039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner// acosh
15139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
15239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic float
15339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
15439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_acosh(float __x) {return acoshf(__x);}
15539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
15639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic double
15739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
15839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_acosh(double __x) {return acosh(__x);}
15939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
16039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic long double
16139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
16239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_acosh(long double __x) {return acoshl(__x);}
16339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
16439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic float _Complex
16539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
16639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_acosh(float _Complex __x) {return cacoshf(__x);}
16739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
16839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic double _Complex
16939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
17039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_acosh(double _Complex __x) {return cacosh(__x);}
17139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
17239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic long double _Complex
17339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
17439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_acosh(long double _Complex __x) {return cacoshl(__x);}
17539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
17639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#undef acosh
17739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#define acosh(__x) __tg_acosh(__tg_promote1((__x))(__x))
17839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
17939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner// asinh
18039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
18139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic float
18239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
18339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_asinh(float __x) {return asinhf(__x);}
18439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
18539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic double
18639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
18739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_asinh(double __x) {return asinh(__x);}
18839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
18939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic long double
19039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
19139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_asinh(long double __x) {return asinhl(__x);}
19239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
19339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic float _Complex
19439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
19539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_asinh(float _Complex __x) {return casinhf(__x);}
19639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
19739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic double _Complex
19839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
19939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_asinh(double _Complex __x) {return casinh(__x);}
20039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
20139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic long double _Complex
20239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
20339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_asinh(long double _Complex __x) {return casinhl(__x);}
20439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
20539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#undef asinh
20639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#define asinh(__x) __tg_asinh(__tg_promote1((__x))(__x))
20739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
20839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner// atanh
20939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
21039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic float
21139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
21239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_atanh(float __x) {return atanhf(__x);}
21339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
21439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic double
21539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
21639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_atanh(double __x) {return atanh(__x);}
21739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
21839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic long double
21939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
22039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_atanh(long double __x) {return atanhl(__x);}
22139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
22239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic float _Complex
22339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
22439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_atanh(float _Complex __x) {return catanhf(__x);}
22539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
22639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic double _Complex
22739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
22839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_atanh(double _Complex __x) {return catanh(__x);}
22939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
23039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic long double _Complex
23139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
23239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_atanh(long double _Complex __x) {return catanhl(__x);}
23339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
23439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#undef atanh
23539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#define atanh(__x) __tg_atanh(__tg_promote1((__x))(__x))
23639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
23739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner// cos
23839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
23939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic float
24039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
24139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_cos(float __x) {return cosf(__x);}
24239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
24339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic double
24439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
24539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_cos(double __x) {return cos(__x);}
24639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
24739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic long double
24839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
24939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_cos(long double __x) {return cosl(__x);}
25039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
25139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic float _Complex
25239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
25339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_cos(float _Complex __x) {return ccosf(__x);}
25439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
25539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic double _Complex
25639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
25739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_cos(double _Complex __x) {return ccos(__x);}
25839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
25939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic long double _Complex
26039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
26139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_cos(long double _Complex __x) {return ccosl(__x);}
26239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
26339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#undef cos
26439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#define cos(__x) __tg_cos(__tg_promote1((__x))(__x))
26539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
26639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner// sin
26739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
26839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic float
26939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
27039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_sin(float __x) {return sinf(__x);}
27139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
27239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic double
27339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
27439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_sin(double __x) {return sin(__x);}
27539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
27639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic long double
27739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
27839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_sin(long double __x) {return sinl(__x);}
27939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
28039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic float _Complex
28139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
28239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_sin(float _Complex __x) {return csinf(__x);}
28339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
28439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic double _Complex
28539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
28639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_sin(double _Complex __x) {return csin(__x);}
28739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
28839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic long double _Complex
28939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
29039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_sin(long double _Complex __x) {return csinl(__x);}
29139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
29239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#undef sin
29339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#define sin(__x) __tg_sin(__tg_promote1((__x))(__x))
29439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
29539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner// tan
29639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
29739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic float
29839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
29939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_tan(float __x) {return tanf(__x);}
30039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
30139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic double
30239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
30339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_tan(double __x) {return tan(__x);}
30439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
30539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic long double
30639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
30739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_tan(long double __x) {return tanl(__x);}
30839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
30939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic float _Complex
31039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
31139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_tan(float _Complex __x) {return ctanf(__x);}
31239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
31339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic double _Complex
31439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
31539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_tan(double _Complex __x) {return ctan(__x);}
31639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
31739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic long double _Complex
31839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
31939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_tan(long double _Complex __x) {return ctanl(__x);}
32039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
32139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#undef tan
32239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#define tan(__x) __tg_tan(__tg_promote1((__x))(__x))
32339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
32439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner// cosh
32539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
32639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic float
32739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
32839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_cosh(float __x) {return coshf(__x);}
32939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
33039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic double
33139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
33239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_cosh(double __x) {return cosh(__x);}
33339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
33439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic long double
33539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
33639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_cosh(long double __x) {return coshl(__x);}
33739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
33839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic float _Complex
33939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
34039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_cosh(float _Complex __x) {return ccoshf(__x);}
34139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
34239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic double _Complex
34339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
34439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_cosh(double _Complex __x) {return ccosh(__x);}
34539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
34639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic long double _Complex
34739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
34839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_cosh(long double _Complex __x) {return ccoshl(__x);}
34939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
35039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#undef cosh
35139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#define cosh(__x) __tg_cosh(__tg_promote1((__x))(__x))
35239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
35339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner// sinh
35439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
35539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic float
35639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
35739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_sinh(float __x) {return sinhf(__x);}
35839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
35939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic double
36039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
36139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_sinh(double __x) {return sinh(__x);}
36239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
36339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic long double
36439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
36539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_sinh(long double __x) {return sinhl(__x);}
36639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
36739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic float _Complex
36839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
36939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_sinh(float _Complex __x) {return csinhf(__x);}
37039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
37139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic double _Complex
37239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
37339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_sinh(double _Complex __x) {return csinh(__x);}
37439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
37539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic long double _Complex
37639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
37739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_sinh(long double _Complex __x) {return csinhl(__x);}
37839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
37939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#undef sinh
38039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#define sinh(__x) __tg_sinh(__tg_promote1((__x))(__x))
38139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
38239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner// tanh
38339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
38439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic float
38539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
38639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_tanh(float __x) {return tanhf(__x);}
38739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
38839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic double
38939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
39039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_tanh(double __x) {return tanh(__x);}
39139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
39239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic long double
39339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
39439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_tanh(long double __x) {return tanhl(__x);}
39539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
39639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic float _Complex
39739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
39839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_tanh(float _Complex __x) {return ctanhf(__x);}
39939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
40039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic double _Complex
40139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
40239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_tanh(double _Complex __x) {return ctanh(__x);}
40339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
40439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic long double _Complex
40539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
40639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_tanh(long double _Complex __x) {return ctanhl(__x);}
40739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
40839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#undef tanh
40939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#define tanh(__x) __tg_tanh(__tg_promote1((__x))(__x))
41039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
41139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner// exp
41239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
41339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic float
41439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
41539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_exp(float __x) {return expf(__x);}
41639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
41739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic double
41839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
41939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_exp(double __x) {return exp(__x);}
42039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
42139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic long double
42239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
42339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_exp(long double __x) {return expl(__x);}
42439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
42539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic float _Complex
42639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
42739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_exp(float _Complex __x) {return cexpf(__x);}
42839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
42939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic double _Complex
43039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
43139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_exp(double _Complex __x) {return cexp(__x);}
43239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
43339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic long double _Complex
43439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
43539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_exp(long double _Complex __x) {return cexpl(__x);}
43639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
43739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#undef exp
43839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#define exp(__x) __tg_exp(__tg_promote1((__x))(__x))
43939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
44039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner// log
44139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
44239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic float
44339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
44439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_log(float __x) {return logf(__x);}
44539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
44639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic double
44739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
44839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_log(double __x) {return log(__x);}
44939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
45039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic long double
45139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
45239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_log(long double __x) {return logl(__x);}
45339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
45439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic float _Complex
45539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
45639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_log(float _Complex __x) {return clogf(__x);}
45739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
45839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic double _Complex
45939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
46039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_log(double _Complex __x) {return clog(__x);}
46139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
46239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic long double _Complex
46339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
46439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_log(long double _Complex __x) {return clogl(__x);}
46539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
46639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#undef log
46739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#define log(__x) __tg_log(__tg_promote1((__x))(__x))
46839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
46939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner// pow
47039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
47139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic float
47239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
47339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_pow(float __x, float __y) {return powf(__x, __y);}
47439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
47539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic double
47639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
47739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_pow(double __x, double __y) {return pow(__x, __y);}
47839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
47939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic long double
48039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
48139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_pow(long double __x, long double __y) {return powl(__x, __y);}
48239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
48339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic float _Complex
48439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
48539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_pow(float _Complex __x, float _Complex __y) {return cpowf(__x, __y);}
48639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
48739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic double _Complex
48839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
48939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_pow(double _Complex __x, double _Complex __y) {return cpow(__x, __y);}
49039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
49139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic long double _Complex
49239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
49339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_pow(long double _Complex __x, long double _Complex __y)
49439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    {return cpowl(__x, __y);}
49539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
49639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#undef pow
49739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#define pow(__x, __y) __tg_pow(__tg_promote2((__x), (__y))(__x), \
49839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner                               __tg_promote2((__x), (__y))(__y))
49939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
50039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner// sqrt
50139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
50239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic float
50339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
50439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_sqrt(float __x) {return sqrtf(__x);}
50539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
50639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic double
50739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
50839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_sqrt(double __x) {return sqrt(__x);}
50939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
51039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic long double
51139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
51239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_sqrt(long double __x) {return sqrtl(__x);}
51339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
51439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic float _Complex
51539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
51639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_sqrt(float _Complex __x) {return csqrtf(__x);}
51739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
51839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic double _Complex
51939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
52039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_sqrt(double _Complex __x) {return csqrt(__x);}
52139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
52239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic long double _Complex
52339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
52439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_sqrt(long double _Complex __x) {return csqrtl(__x);}
52539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
52639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#undef sqrt
52739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#define sqrt(__x) __tg_sqrt(__tg_promote1((__x))(__x))
52839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
52939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner// fabs
53039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
53139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic float
53239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
53339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_fabs(float __x) {return fabsf(__x);}
53439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
53539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic double
53639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
53739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_fabs(double __x) {return fabs(__x);}
53839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
53939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic long double
54039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
54139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_fabs(long double __x) {return fabsl(__x);}
54239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
543d184e53e8a66e174b2fdaee22c1794aa3cfc18edHoward Hinnantstatic float
54439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
54539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_fabs(float _Complex __x) {return cabsf(__x);}
54639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
547d184e53e8a66e174b2fdaee22c1794aa3cfc18edHoward Hinnantstatic double
54839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
54939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_fabs(double _Complex __x) {return cabs(__x);}
55039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
551d184e53e8a66e174b2fdaee22c1794aa3cfc18edHoward Hinnantstatic long double
55239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
55339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_fabs(long double _Complex __x) {return cabsl(__x);}
55439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
55539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#undef fabs
55639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#define fabs(__x) __tg_fabs(__tg_promote1((__x))(__x))
55739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
55839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner// atan2
55939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
56039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic float
56139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
56239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_atan2(float __x, float __y) {return atan2f(__x, __y);}
56339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
56439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic double
56539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
56639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_atan2(double __x, double __y) {return atan2(__x, __y);}
56739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
56839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic long double
56939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
57039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_atan2(long double __x, long double __y) {return atan2l(__x, __y);}
57139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
57239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#undef atan2
57339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#define atan2(__x, __y) __tg_atan2(__tg_promote2((__x), (__y))(__x), \
57439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner                                   __tg_promote2((__x), (__y))(__y))
57539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
57639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner// cbrt
57739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
57839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic float
57939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
58039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_cbrt(float __x) {return cbrtf(__x);}
58139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
58239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic double
58339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
58439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_cbrt(double __x) {return cbrt(__x);}
58539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
58639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic long double
58739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
58839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_cbrt(long double __x) {return cbrtl(__x);}
58939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
59039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#undef cbrt
59139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#define cbrt(__x) __tg_cbrt(__tg_promote1((__x))(__x))
59239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
59339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner// ceil
59439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
59539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic float
59639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
59739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_ceil(float __x) {return ceilf(__x);}
59839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
59939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic double
60039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
60139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_ceil(double __x) {return ceil(__x);}
60239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
60339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic long double
60439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
60539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_ceil(long double __x) {return ceill(__x);}
60639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
60739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#undef ceil
60839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#define ceil(__x) __tg_ceil(__tg_promote1((__x))(__x))
60939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
61039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner// copysign
61139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
61239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic float
61339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
61439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_copysign(float __x, float __y) {return copysignf(__x, __y);}
61539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
61639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic double
61739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
61839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_copysign(double __x, double __y) {return copysign(__x, __y);}
61939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
62039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic long double
62139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
62239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_copysign(long double __x, long double __y) {return copysignl(__x, __y);}
62339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
62439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#undef copysign
62539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#define copysign(__x, __y) __tg_copysign(__tg_promote2((__x), (__y))(__x), \
62639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner                                         __tg_promote2((__x), (__y))(__y))
62739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
62839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner// erf
62939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
63039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic float
63139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
63239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_erf(float __x) {return erff(__x);}
63339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
63439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic double
63539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
63639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_erf(double __x) {return erf(__x);}
63739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
63839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic long double
63939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
64039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_erf(long double __x) {return erfl(__x);}
64139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
64239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#undef erf
64339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#define erf(__x) __tg_erf(__tg_promote1((__x))(__x))
64439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
64539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner// erfc
64639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
64739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic float
64839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
64939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_erfc(float __x) {return erfcf(__x);}
65039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
65139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic double
65239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
65339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_erfc(double __x) {return erfc(__x);}
65439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
65539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic long double
65639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
65739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_erfc(long double __x) {return erfcl(__x);}
65839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
65939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#undef erfc
66039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#define erfc(__x) __tg_erfc(__tg_promote1((__x))(__x))
66139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
66239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner// exp2
66339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
66439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic float
66539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
66639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_exp2(float __x) {return exp2f(__x);}
66739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
66839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic double
66939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
67039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_exp2(double __x) {return exp2(__x);}
67139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
67239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic long double
67339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
67439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_exp2(long double __x) {return exp2l(__x);}
67539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
67639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#undef exp2
67739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#define exp2(__x) __tg_exp2(__tg_promote1((__x))(__x))
67839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
67939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner// expm1
68039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
68139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic float
68239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
68339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_expm1(float __x) {return expm1f(__x);}
68439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
68539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic double
68639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
68739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_expm1(double __x) {return expm1(__x);}
68839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
68939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic long double
69039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
69139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_expm1(long double __x) {return expm1l(__x);}
69239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
69339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#undef expm1
69439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#define expm1(__x) __tg_expm1(__tg_promote1((__x))(__x))
69539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
69639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner// fdim
69739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
69839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic float
69939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
70039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_fdim(float __x, float __y) {return fdimf(__x, __y);}
70139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
70239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic double
70339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
70439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_fdim(double __x, double __y) {return fdim(__x, __y);}
70539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
70639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic long double
70739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
70839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_fdim(long double __x, long double __y) {return fdiml(__x, __y);}
70939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
71039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#undef fdim
71139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#define fdim(__x, __y) __tg_fdim(__tg_promote2((__x), (__y))(__x), \
71239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner                                 __tg_promote2((__x), (__y))(__y))
71339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
71439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner// floor
71539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
71639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic float
71739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
71839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_floor(float __x) {return floorf(__x);}
71939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
72039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic double
72139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
72239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_floor(double __x) {return floor(__x);}
72339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
72439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic long double
72539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
72639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_floor(long double __x) {return floorl(__x);}
72739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
72839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#undef floor
72939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#define floor(__x) __tg_floor(__tg_promote1((__x))(__x))
73039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
73139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner// fma
73239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
73339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic float
73439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
73539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_fma(float __x, float __y, float __z)
73639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    {return fmaf(__x, __y, __z);}
73739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
73839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic double
73939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
74039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_fma(double __x, double __y, double __z)
74139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    {return fma(__x, __y, __z);}
74239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
74339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic long double
74439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
74539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_fma(long double __x,long double __y, long double __z)
74639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    {return fmal(__x, __y, __z);}
74739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
74839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#undef fma
74939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#define fma(__x, __y, __z)                                \
75039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner        __tg_fma(__tg_promote3((__x), (__y), (__z))(__x), \
75139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner                 __tg_promote3((__x), (__y), (__z))(__y), \
75239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner                 __tg_promote3((__x), (__y), (__z))(__z))
75339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
75439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner// fmax
75539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
75639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic float
75739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
75839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_fmax(float __x, float __y) {return fmaxf(__x, __y);}
75939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
76039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic double
76139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
76239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_fmax(double __x, double __y) {return fmax(__x, __y);}
76339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
76439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic long double
76539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
76639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_fmax(long double __x, long double __y) {return fmaxl(__x, __y);}
76739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
76839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#undef fmax
76939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#define fmax(__x, __y) __tg_fmax(__tg_promote2((__x), (__y))(__x), \
77039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner                                 __tg_promote2((__x), (__y))(__y))
77139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
77239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner// fmin
77339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
77439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic float
77539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
77639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_fmin(float __x, float __y) {return fminf(__x, __y);}
77739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
77839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic double
77939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
78039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_fmin(double __x, double __y) {return fmin(__x, __y);}
78139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
78239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic long double
78339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
78439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_fmin(long double __x, long double __y) {return fminl(__x, __y);}
78539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
78639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#undef fmin
78739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#define fmin(__x, __y) __tg_fmin(__tg_promote2((__x), (__y))(__x), \
78839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner                                 __tg_promote2((__x), (__y))(__y))
78939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
79039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner// fmod
79139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
79239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic float
79339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
79439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_fmod(float __x, float __y) {return fmodf(__x, __y);}
79539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
79639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic double
79739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
79839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_fmod(double __x, double __y) {return fmod(__x, __y);}
79939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
80039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic long double
80139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
80239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_fmod(long double __x, long double __y) {return fmodl(__x, __y);}
80339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
80439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#undef fmod
80539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#define fmod(__x, __y) __tg_fmod(__tg_promote2((__x), (__y))(__x), \
80639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner                                 __tg_promote2((__x), (__y))(__y))
80739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
80839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner// frexp
80939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
81039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic float
81139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
81239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_frexp(float __x, int* __y) {return frexpf(__x, __y);}
81339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
81439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic double
81539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
81639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_frexp(double __x, int* __y) {return frexp(__x, __y);}
81739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
81839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic long double
81939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
82039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_frexp(long double __x, int* __y) {return frexpl(__x, __y);}
82139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
82239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#undef frexp
82339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#define frexp(__x, __y) __tg_frexp(__tg_promote1((__x))(__x), __y)
82439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
82539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner// hypot
82639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
82739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic float
82839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
82939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_hypot(float __x, float __y) {return hypotf(__x, __y);}
83039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
83139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic double
83239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
83339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_hypot(double __x, double __y) {return hypot(__x, __y);}
83439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
83539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic long double
83639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
83739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_hypot(long double __x, long double __y) {return hypotl(__x, __y);}
83839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
83939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#undef hypot
84039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#define hypot(__x, __y) __tg_hypot(__tg_promote2((__x), (__y))(__x), \
84139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner                                   __tg_promote2((__x), (__y))(__y))
84239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
84339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner// ilogb
84439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
84539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic int
84639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
84739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_ilogb(float __x) {return ilogbf(__x);}
84839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
84939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic int
85039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
85139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_ilogb(double __x) {return ilogb(__x);}
85239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
85339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic int
85439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
85539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_ilogb(long double __x) {return ilogbl(__x);}
85639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
85739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#undef ilogb
85839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#define ilogb(__x) __tg_ilogb(__tg_promote1((__x))(__x))
85939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
86039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner// ldexp
86139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
86239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic float
86339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
86439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_ldexp(float __x, int __y) {return ldexpf(__x, __y);}
86539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
86639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic double
86739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
86839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_ldexp(double __x, int __y) {return ldexp(__x, __y);}
86939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
87039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic long double
87139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
87239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_ldexp(long double __x, int __y) {return ldexpl(__x, __y);}
87339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
87439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#undef ldexp
87539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#define ldexp(__x, __y) __tg_ldexp(__tg_promote1((__x))(__x), __y)
87639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
87739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner// lgamma
87839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
87939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic float
88039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
88139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_lgamma(float __x) {return lgammaf(__x);}
88239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
88339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic double
88439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
88539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_lgamma(double __x) {return lgamma(__x);}
88639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
88739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic long double
88839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
88939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_lgamma(long double __x) {return lgammal(__x);}
89039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
89139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#undef lgamma
89239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#define lgamma(__x) __tg_lgamma(__tg_promote1((__x))(__x))
89339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
89439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner// llrint
89539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
89639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic long long
89739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
89839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_llrint(float __x) {return llrintf(__x);}
89939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
90039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic long long
90139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
90239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_llrint(double __x) {return llrint(__x);}
90339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
90439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic long long
90539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
90639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_llrint(long double __x) {return llrintl(__x);}
90739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
90839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#undef llrint
90939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#define llrint(__x) __tg_llrint(__tg_promote1((__x))(__x))
91039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
91139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner// llround
91239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
91339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic long long
91439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
91539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_llround(float __x) {return llroundf(__x);}
91639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
91739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic long long
91839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
91939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_llround(double __x) {return llround(__x);}
92039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
92139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic long long
92239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
92339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_llround(long double __x) {return llroundl(__x);}
92439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
92539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#undef llround
92639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#define llround(__x) __tg_llround(__tg_promote1((__x))(__x))
92739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
92839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner// log10
92939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
93039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic float
93139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
93239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_log10(float __x) {return log10f(__x);}
93339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
93439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic double
93539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
93639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_log10(double __x) {return log10(__x);}
93739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
93839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic long double
93939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
94039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_log10(long double __x) {return log10l(__x);}
94139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
94239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#undef log10
94339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#define log10(__x) __tg_log10(__tg_promote1((__x))(__x))
94439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
94539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner// log1p
94639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
94739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic float
94839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
94939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_log1p(float __x) {return log1pf(__x);}
95039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
95139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic double
95239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
95339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_log1p(double __x) {return log1p(__x);}
95439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
95539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic long double
95639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
95739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_log1p(long double __x) {return log1pl(__x);}
95839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
95939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#undef log1p
96039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#define log1p(__x) __tg_log1p(__tg_promote1((__x))(__x))
96139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
96239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner// log2
96339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
96439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic float
96539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
96639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_log2(float __x) {return log2f(__x);}
96739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
96839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic double
96939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
97039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_log2(double __x) {return log2(__x);}
97139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
97239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic long double
97339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
97439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_log2(long double __x) {return log2l(__x);}
97539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
97639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#undef log2
97739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#define log2(__x) __tg_log2(__tg_promote1((__x))(__x))
97839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
979d184e53e8a66e174b2fdaee22c1794aa3cfc18edHoward Hinnant// logb
980d184e53e8a66e174b2fdaee22c1794aa3cfc18edHoward Hinnant
981d184e53e8a66e174b2fdaee22c1794aa3cfc18edHoward Hinnantstatic float
982d184e53e8a66e174b2fdaee22c1794aa3cfc18edHoward Hinnant    _TG_ATTRS
983d184e53e8a66e174b2fdaee22c1794aa3cfc18edHoward Hinnant    __tg_logb(float __x) {return logbf(__x);}
984d184e53e8a66e174b2fdaee22c1794aa3cfc18edHoward Hinnant
985d184e53e8a66e174b2fdaee22c1794aa3cfc18edHoward Hinnantstatic double
986d184e53e8a66e174b2fdaee22c1794aa3cfc18edHoward Hinnant    _TG_ATTRS
987d184e53e8a66e174b2fdaee22c1794aa3cfc18edHoward Hinnant    __tg_logb(double __x) {return logb(__x);}
988d184e53e8a66e174b2fdaee22c1794aa3cfc18edHoward Hinnant
989d184e53e8a66e174b2fdaee22c1794aa3cfc18edHoward Hinnantstatic long double
990d184e53e8a66e174b2fdaee22c1794aa3cfc18edHoward Hinnant    _TG_ATTRS
991d184e53e8a66e174b2fdaee22c1794aa3cfc18edHoward Hinnant    __tg_logb(long double __x) {return logbl(__x);}
992d184e53e8a66e174b2fdaee22c1794aa3cfc18edHoward Hinnant
993d184e53e8a66e174b2fdaee22c1794aa3cfc18edHoward Hinnant#undef logb
994d184e53e8a66e174b2fdaee22c1794aa3cfc18edHoward Hinnant#define logb(__x) __tg_logb(__tg_promote1((__x))(__x))
995d184e53e8a66e174b2fdaee22c1794aa3cfc18edHoward Hinnant
99639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner// lrint
99739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
99839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic long
99939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
100039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_lrint(float __x) {return lrintf(__x);}
100139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
100239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic long
100339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
100439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_lrint(double __x) {return lrint(__x);}
100539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
100639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic long
100739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
100839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_lrint(long double __x) {return lrintl(__x);}
100939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
101039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#undef lrint
101139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#define lrint(__x) __tg_lrint(__tg_promote1((__x))(__x))
101239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
101339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner// lround
101439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
101539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic long
101639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
101739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_lround(float __x) {return lroundf(__x);}
101839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
101939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic long
102039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
102139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_lround(double __x) {return lround(__x);}
102239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
102339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic long
102439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
102539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_lround(long double __x) {return lroundl(__x);}
102639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
102739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#undef lround
102839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#define lround(__x) __tg_lround(__tg_promote1((__x))(__x))
102939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
103039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner// nearbyint
103139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
103239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic float
103339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
103439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_nearbyint(float __x) {return nearbyintf(__x);}
103539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
103639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic double
103739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
103839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_nearbyint(double __x) {return nearbyint(__x);}
103939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
104039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic long double
104139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
104239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_nearbyint(long double __x) {return nearbyintl(__x);}
104339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
104439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#undef nearbyint
104539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#define nearbyint(__x) __tg_nearbyint(__tg_promote1((__x))(__x))
104639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
104739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner// nextafter
104839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
104939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic float
105039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
105139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_nextafter(float __x, float __y) {return nextafterf(__x, __y);}
105239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
105339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic double
105439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
105539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_nextafter(double __x, double __y) {return nextafter(__x, __y);}
105639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
105739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic long double
105839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
105939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_nextafter(long double __x, long double __y) {return nextafterl(__x, __y);}
106039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
106139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#undef nextafter
106239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#define nextafter(__x, __y) __tg_nextafter(__tg_promote2((__x), (__y))(__x), \
106339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner                                           __tg_promote2((__x), (__y))(__y))
106439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
106539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner// nexttoward
106639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
106739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic float
106839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
1069725fb0e2b72a644b090b962fdec47516d186409aHoward Hinnant    __tg_nexttoward(float __x, long double __y) {return nexttowardf(__x, __y);}
107039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
107139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic double
107239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
1073725fb0e2b72a644b090b962fdec47516d186409aHoward Hinnant    __tg_nexttoward(double __x, long double __y) {return nexttoward(__x, __y);}
107439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
107539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic long double
107639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
107739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_nexttoward(long double __x, long double __y) {return nexttowardl(__x, __y);}
107839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
107939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#undef nexttoward
1080725fb0e2b72a644b090b962fdec47516d186409aHoward Hinnant#define nexttoward(__x, __y) __tg_nexttoward(__tg_promote1((__x))(__x), (__y))
108139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
108239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner// remainder
108339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
108439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic float
108539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
108639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_remainder(float __x, float __y) {return remainderf(__x, __y);}
108739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
108839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic double
108939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
109039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_remainder(double __x, double __y) {return remainder(__x, __y);}
109139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
109239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic long double
109339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
109439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_remainder(long double __x, long double __y) {return remainderl(__x, __y);}
109539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
109639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#undef remainder
109739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#define remainder(__x, __y) __tg_remainder(__tg_promote2((__x), (__y))(__x), \
109839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner                                           __tg_promote2((__x), (__y))(__y))
109939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
110039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner// remquo
110139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
110239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic float
110339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
110439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_remquo(float __x, float __y, int* __z)
110539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    {return remquof(__x, __y, __z);}
110639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
110739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic double
110839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
110939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_remquo(double __x, double __y, int* __z)
111039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    {return remquo(__x, __y, __z);}
111139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
111239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic long double
111339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
111439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_remquo(long double __x,long double __y, int* __z)
111539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    {return remquol(__x, __y, __z);}
111639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
111739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#undef remquo
111839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#define remquo(__x, __y, __z)                         \
111939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner        __tg_remquo(__tg_promote2((__x), (__y))(__x), \
112039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner                    __tg_promote2((__x), (__y))(__y), \
112139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner                    (__z))
112239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
112339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner// rint
112439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
112539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic float
112639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
112739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_rint(float __x) {return rintf(__x);}
112839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
112939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic double
113039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
113139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_rint(double __x) {return rint(__x);}
113239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
113339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic long double
113439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
113539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_rint(long double __x) {return rintl(__x);}
113639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
113739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#undef rint
113839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#define rint(__x) __tg_rint(__tg_promote1((__x))(__x))
113939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
114039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner// round
114139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
114239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic float
114339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
114439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_round(float __x) {return roundf(__x);}
114539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
114639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic double
114739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
114839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_round(double __x) {return round(__x);}
114939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
115039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic long double
115139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
115239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_round(long double __x) {return roundl(__x);}
115339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
115439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#undef round
115539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#define round(__x) __tg_round(__tg_promote1((__x))(__x))
115639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
115739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner// scalbn
115839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
115939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic float
116039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
116139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_scalbn(float __x, int __y) {return scalbnf(__x, __y);}
116239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
116339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic double
116439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
116539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_scalbn(double __x, int __y) {return scalbn(__x, __y);}
116639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
116739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic long double
116839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
116939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_scalbn(long double __x, int __y) {return scalbnl(__x, __y);}
117039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
117139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#undef scalbn
117239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#define scalbn(__x, __y) __tg_scalbn(__tg_promote1((__x))(__x), __y)
117339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
117439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner// scalbln
117539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
117639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic float
117739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
117839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_scalbln(float __x, long __y) {return scalblnf(__x, __y);}
117939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
118039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic double
118139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
118239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_scalbln(double __x, long __y) {return scalbln(__x, __y);}
118339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
118439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic long double
118539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
118639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_scalbln(long double __x, long __y) {return scalblnl(__x, __y);}
118739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
118839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#undef scalbln
118939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#define scalbln(__x, __y) __tg_scalbln(__tg_promote1((__x))(__x), __y)
119039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
119139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner// tgamma
119239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
119339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic float
119439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
119539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_tgamma(float __x) {return tgammaf(__x);}
119639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
119739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic double
119839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
119939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_tgamma(double __x) {return tgamma(__x);}
120039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
120139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic long double
120239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
120339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_tgamma(long double __x) {return tgammal(__x);}
120439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
120539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#undef tgamma
120639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#define tgamma(__x) __tg_tgamma(__tg_promote1((__x))(__x))
120739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
120839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner// trunc
120939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
121039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic float
121139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
121239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_trunc(float __x) {return truncf(__x);}
121339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
121439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic double
121539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
121639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_trunc(double __x) {return trunc(__x);}
121739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
121839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic long double
121939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
122039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_trunc(long double __x) {return truncl(__x);}
122139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
122239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#undef trunc
122339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#define trunc(__x) __tg_trunc(__tg_promote1((__x))(__x))
122439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
122539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner// carg
122639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
122739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic float
122839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
122939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_carg(float __x) {return atan2f(0.F, __x);}
123039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
123139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic double
123239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
123339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_carg(double __x) {return atan2(0., __x);}
123439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
123539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic long double
123639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
123739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_carg(long double __x) {return atan2l(0.L, __x);}
123839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
123939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic float
124039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
124139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_carg(float _Complex __x) {return cargf(__x);}
124239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
124339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic double
124439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
124539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_carg(double _Complex __x) {return carg(__x);}
124639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
124739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic long double
124839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
124939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_carg(long double _Complex __x) {return cargl(__x);}
125039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
125139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#undef carg
125239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#define carg(__x) __tg_carg(__tg_promote1((__x))(__x))
125339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
125439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner// cimag
125539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
125639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic float
125739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
125839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_cimag(float __x) {return 0;}
125939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
126039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic double
126139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
126239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_cimag(double __x) {return 0;}
126339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
126439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic long double
126539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
126639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_cimag(long double __x) {return 0;}
126739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
126839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic float
126939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
127039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_cimag(float _Complex __x) {return cimagf(__x);}
127139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
127239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic double
127339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
127439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_cimag(double _Complex __x) {return cimag(__x);}
127539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
127639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic long double
127739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
127839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_cimag(long double _Complex __x) {return cimagl(__x);}
127939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
128039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#undef cimag
128139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#define cimag(__x) __tg_cimag(__tg_promote1((__x))(__x))
128239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
128339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner// conj
128439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
128539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic float _Complex
128639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
128739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_conj(float __x) {return __x;}
128839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
128939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic double _Complex
129039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
129139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_conj(double __x) {return __x;}
129239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
129339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic long double _Complex
129439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
129539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_conj(long double __x) {return __x;}
129639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
129739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic float _Complex
129839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
129939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_conj(float _Complex __x) {return conjf(__x);}
130039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
130139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic double _Complex
130239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
130339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_conj(double _Complex __x) {return conj(__x);}
130439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
130539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic long double _Complex
130639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
130739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_conj(long double _Complex __x) {return conjl(__x);}
130839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
130939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#undef conj
131039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#define conj(__x) __tg_conj(__tg_promote1((__x))(__x))
131139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
131239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner// cproj
131339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
131439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic float _Complex
131539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
131639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_cproj(float __x) {return cprojf(__x);}
131739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
131839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic double _Complex
131939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
132039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_cproj(double __x) {return cproj(__x);}
132139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
132239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic long double _Complex
132339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
132439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_cproj(long double __x) {return cprojl(__x);}
132539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
132639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic float _Complex
132739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
132839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_cproj(float _Complex __x) {return cprojf(__x);}
132939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
133039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic double _Complex
133139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
133239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_cproj(double _Complex __x) {return cproj(__x);}
133339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
133439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic long double _Complex
133539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
133639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_cproj(long double _Complex __x) {return cprojl(__x);}
133739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
133839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#undef cproj
133939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#define cproj(__x) __tg_cproj(__tg_promote1((__x))(__x))
134039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
134139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner// creal
134239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
134339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic float _Complex
134439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
134539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_creal(float __x) {return __x;}
134639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
134739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic double _Complex
134839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
134939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_creal(double __x) {return __x;}
135039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
135139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic long double _Complex
135239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
135339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_creal(long double __x) {return __x;}
135439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
135539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic float
135639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
135739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_creal(float _Complex __x) {return crealf(__x);}
135839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
135939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic double
136039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
136139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_creal(double _Complex __x) {return creal(__x);}
136239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
136339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattnerstatic long double
136439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    _TG_ATTRS
136539aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner    __tg_creal(long double _Complex __x) {return creall(__x);}
136639aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
136739aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#undef creal
136839aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#define creal(__x) __tg_creal(__tg_promote1((__x))(__x))
136939aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
137039aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#undef _TG_ATTRSp
137139aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#undef _TG_ATTRS
137239aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner
137339aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#endif /* __cplusplus */
137439aa1ed8f9b8d85947a2ef9febe50511362d8ed1Chris Lattner#endif /* __TGMATH_H */
1375