mirror of git://gcc.gnu.org/git/gcc.git
re PR libfortran/40863 (Build failure in libgfortran)
2009-07-27 Tobias Burnus <burnus@net-b.de> PR fortran/40863 * c99_functions.c: Define complex I, if not defined. Create prototypes for C99 functions to silence warnings. * gfortran.map: Add missing functions to GFORTRAN_C99_1.0 and new GFORTRAN_C99_1.1. From-SVN: r150107
This commit is contained in:
parent
4b89636ea4
commit
d08d49885a
|
@ -1,3 +1,11 @@
|
|||
2009-07-27 Tobias Burnus <burnus@net-b.de>
|
||||
|
||||
PR fortran/40863
|
||||
* c99_functions.c: Define complex I, if not defined.
|
||||
Create prototypes for C99 functions to silence warnings.
|
||||
* gfortran.map: Add missing functions to GFORTRAN_C99_1.0
|
||||
and new GFORTRAN_C99_1.1.
|
||||
|
||||
2009-07-25 Tobias Burnus <burnus@net-b.de>
|
||||
|
||||
PR fortran/33197
|
||||
|
|
|
@ -1206,13 +1206,20 @@ GFORTRAN_C99_1.0 {
|
|||
jnf;
|
||||
lgamma;
|
||||
lgammaf;
|
||||
llround;
|
||||
llroundf;
|
||||
llroundl;
|
||||
log10f;
|
||||
log10l;
|
||||
logf;
|
||||
lround;
|
||||
lroundf;
|
||||
lroundl;
|
||||
nextafterf;
|
||||
powf;
|
||||
round;
|
||||
roundf;
|
||||
roundl;
|
||||
scalbn;
|
||||
scalbnf;
|
||||
sinf;
|
||||
|
@ -1228,3 +1235,25 @@ GFORTRAN_C99_1.0 {
|
|||
y1f;
|
||||
ynf;
|
||||
};
|
||||
|
||||
GFORTRAN_C99_1.1 {
|
||||
global:
|
||||
cacos;
|
||||
cacosf;
|
||||
cacosh;
|
||||
cacoshf;
|
||||
cacoshl;
|
||||
cacosl;
|
||||
casin;
|
||||
casinf;
|
||||
casinh;
|
||||
casinhf;
|
||||
casinhl;
|
||||
casinl;
|
||||
catan;
|
||||
catanf;
|
||||
catanh;
|
||||
catanhf;
|
||||
catanhl;
|
||||
catanl;
|
||||
} GFORTRAN_C99_1.0;
|
||||
|
|
|
@ -54,19 +54,20 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
|||
#define cabsl __gfc_cabsl
|
||||
#endif
|
||||
|
||||
/* Prototypes to silence -Wstrict-prototypes -Wmissing-prototypes. */
|
||||
/* On a C99 system "I" (with I*I = -1) should be defined in complex.h;
|
||||
if not, we define a fallback version here. */
|
||||
#ifndef I
|
||||
# if defined(_Imaginary_I)
|
||||
# define I _Imaginary_I
|
||||
# elif defined(_Complex_I)
|
||||
# define I _Complex_I
|
||||
# else
|
||||
# define I (1.0fi)
|
||||
# endif
|
||||
#endif
|
||||
|
||||
float cabsf(float complex);
|
||||
double cabs(double complex);
|
||||
long double cabsl(long double complex);
|
||||
|
||||
float cargf(float complex);
|
||||
double carg(double complex);
|
||||
long double cargl(long double complex);
|
||||
|
||||
float complex clog10f(float complex);
|
||||
double complex clog10(double complex);
|
||||
long double complex clog10l(long double complex);
|
||||
/* Prototypes are included to silence -Wstrict-prototypes
|
||||
-Wmissing-prototypes. */
|
||||
|
||||
|
||||
/* Wrappers for systems without the various C99 single precision Bessel
|
||||
|
@ -74,7 +75,7 @@ long double complex clog10l(long double complex);
|
|||
|
||||
#if defined(HAVE_J0) && ! defined(HAVE_J0F)
|
||||
#define HAVE_J0F 1
|
||||
extern float j0f (float);
|
||||
float j0f (float);
|
||||
|
||||
float
|
||||
j0f (float x)
|
||||
|
@ -85,7 +86,7 @@ j0f (float x)
|
|||
|
||||
#if defined(HAVE_J1) && !defined(HAVE_J1F)
|
||||
#define HAVE_J1F 1
|
||||
extern float j1f (float);
|
||||
float j1f (float);
|
||||
|
||||
float j1f (float x)
|
||||
{
|
||||
|
@ -95,7 +96,7 @@ float j1f (float x)
|
|||
|
||||
#if defined(HAVE_JN) && !defined(HAVE_JNF)
|
||||
#define HAVE_JNF 1
|
||||
extern float jnf (int, float);
|
||||
float jnf (int, float);
|
||||
|
||||
float
|
||||
jnf (int n, float x)
|
||||
|
@ -106,7 +107,7 @@ jnf (int n, float x)
|
|||
|
||||
#if defined(HAVE_Y0) && !defined(HAVE_Y0F)
|
||||
#define HAVE_Y0F 1
|
||||
extern float y0f (float);
|
||||
float y0f (float);
|
||||
|
||||
float
|
||||
y0f (float x)
|
||||
|
@ -117,7 +118,7 @@ y0f (float x)
|
|||
|
||||
#if defined(HAVE_Y1) && !defined(HAVE_Y1F)
|
||||
#define HAVE_Y1F 1
|
||||
extern float y1f (float);
|
||||
float y1f (float);
|
||||
|
||||
float
|
||||
y1f (float x)
|
||||
|
@ -128,7 +129,7 @@ y1f (float x)
|
|||
|
||||
#if defined(HAVE_YN) && !defined(HAVE_YNF)
|
||||
#define HAVE_YNF 1
|
||||
extern float ynf (int, float);
|
||||
float ynf (int, float);
|
||||
|
||||
float
|
||||
ynf (int n, float x)
|
||||
|
@ -142,7 +143,7 @@ ynf (int n, float x)
|
|||
|
||||
#if defined(HAVE_ERF) && !defined(HAVE_ERFF)
|
||||
#define HAVE_ERFF 1
|
||||
extern float erff (float);
|
||||
float erff (float);
|
||||
|
||||
float
|
||||
erff (float x)
|
||||
|
@ -153,7 +154,7 @@ erff (float x)
|
|||
|
||||
#if defined(HAVE_ERFC) && !defined(HAVE_ERFCF)
|
||||
#define HAVE_ERFCF 1
|
||||
extern float erfcf (float);
|
||||
float erfcf (float);
|
||||
|
||||
float
|
||||
erfcf (float x)
|
||||
|
@ -165,6 +166,8 @@ erfcf (float x)
|
|||
|
||||
#ifndef HAVE_ACOSF
|
||||
#define HAVE_ACOSF 1
|
||||
float acosf (float x);
|
||||
|
||||
float
|
||||
acosf (float x)
|
||||
{
|
||||
|
@ -173,6 +176,8 @@ acosf(float x)
|
|||
#endif
|
||||
|
||||
#if HAVE_ACOSH && !HAVE_ACOSHF
|
||||
float acoshf (float x);
|
||||
|
||||
float
|
||||
acoshf (float x)
|
||||
{
|
||||
|
@ -182,6 +187,8 @@ acoshf (float x)
|
|||
|
||||
#ifndef HAVE_ASINF
|
||||
#define HAVE_ASINF 1
|
||||
float asinf (float x);
|
||||
|
||||
float
|
||||
asinf (float x)
|
||||
{
|
||||
|
@ -190,6 +197,8 @@ asinf(float x)
|
|||
#endif
|
||||
|
||||
#if HAVE_ASINH && !HAVE_ASINHF
|
||||
float asinhf (float x);
|
||||
|
||||
float
|
||||
asinhf (float x)
|
||||
{
|
||||
|
@ -199,6 +208,8 @@ asinhf (float x)
|
|||
|
||||
#ifndef HAVE_ATAN2F
|
||||
#define HAVE_ATAN2F 1
|
||||
float atan2f (float y, float x);
|
||||
|
||||
float
|
||||
atan2f (float y, float x)
|
||||
{
|
||||
|
@ -208,6 +219,8 @@ atan2f(float y, float x)
|
|||
|
||||
#ifndef HAVE_ATANF
|
||||
#define HAVE_ATANF 1
|
||||
float atanf (float x);
|
||||
|
||||
float
|
||||
atanf (float x)
|
||||
{
|
||||
|
@ -216,6 +229,8 @@ atanf(float x)
|
|||
#endif
|
||||
|
||||
#if HAVE_ATANH && !HAVE_ATANHF
|
||||
float atanhf (float x);
|
||||
|
||||
float
|
||||
atanhf (float x)
|
||||
{
|
||||
|
@ -225,6 +240,8 @@ atanhf (float x)
|
|||
|
||||
#ifndef HAVE_CEILF
|
||||
#define HAVE_CEILF 1
|
||||
float ceilf (float x);
|
||||
|
||||
float
|
||||
ceilf (float x)
|
||||
{
|
||||
|
@ -234,6 +251,8 @@ ceilf(float x)
|
|||
|
||||
#ifndef HAVE_COPYSIGNF
|
||||
#define HAVE_COPYSIGNF 1
|
||||
float copysignf (float x, float y);
|
||||
|
||||
float
|
||||
copysignf (float x, float y)
|
||||
{
|
||||
|
@ -243,6 +262,8 @@ copysignf(float x, float y)
|
|||
|
||||
#ifndef HAVE_COSF
|
||||
#define HAVE_COSF 1
|
||||
float cosf (float x);
|
||||
|
||||
float
|
||||
cosf (float x)
|
||||
{
|
||||
|
@ -252,6 +273,8 @@ cosf(float x)
|
|||
|
||||
#ifndef HAVE_COSHF
|
||||
#define HAVE_COSHF 1
|
||||
float coshf (float x);
|
||||
|
||||
float
|
||||
coshf (float x)
|
||||
{
|
||||
|
@ -261,6 +284,8 @@ coshf(float x)
|
|||
|
||||
#ifndef HAVE_EXPF
|
||||
#define HAVE_EXPF 1
|
||||
float expf (float x);
|
||||
|
||||
float
|
||||
expf (float x)
|
||||
{
|
||||
|
@ -270,6 +295,8 @@ expf(float x)
|
|||
|
||||
#ifndef HAVE_FABSF
|
||||
#define HAVE_FABSF 1
|
||||
float fabsf (float x);
|
||||
|
||||
float
|
||||
fabsf (float x)
|
||||
{
|
||||
|
@ -279,6 +306,8 @@ fabsf(float x)
|
|||
|
||||
#ifndef HAVE_FLOORF
|
||||
#define HAVE_FLOORF 1
|
||||
float floorf (float x);
|
||||
|
||||
float
|
||||
floorf (float x)
|
||||
{
|
||||
|
@ -288,6 +317,8 @@ floorf(float x)
|
|||
|
||||
#ifndef HAVE_FMODF
|
||||
#define HAVE_FMODF 1
|
||||
float fmodf (float x, float y);
|
||||
|
||||
float
|
||||
fmodf (float x, float y)
|
||||
{
|
||||
|
@ -297,6 +328,8 @@ fmodf (float x, float y)
|
|||
|
||||
#ifndef HAVE_FREXPF
|
||||
#define HAVE_FREXPF 1
|
||||
float frexpf (float x, int *exp);
|
||||
|
||||
float
|
||||
frexpf (float x, int *exp)
|
||||
{
|
||||
|
@ -306,6 +339,8 @@ frexpf(float x, int *exp)
|
|||
|
||||
#ifndef HAVE_HYPOTF
|
||||
#define HAVE_HYPOTF 1
|
||||
float hypotf (float x, float y);
|
||||
|
||||
float
|
||||
hypotf (float x, float y)
|
||||
{
|
||||
|
@ -315,6 +350,8 @@ hypotf(float x, float y)
|
|||
|
||||
#ifndef HAVE_LOGF
|
||||
#define HAVE_LOGF 1
|
||||
float logf (float x);
|
||||
|
||||
float
|
||||
logf (float x)
|
||||
{
|
||||
|
@ -324,6 +361,8 @@ logf(float x)
|
|||
|
||||
#ifndef HAVE_LOG10F
|
||||
#define HAVE_LOG10F 1
|
||||
float log10f (float x);
|
||||
|
||||
float
|
||||
log10f (float x)
|
||||
{
|
||||
|
@ -333,6 +372,8 @@ log10f(float x)
|
|||
|
||||
#ifndef HAVE_SCALBN
|
||||
#define HAVE_SCALBN 1
|
||||
double scalbn (double x, int y);
|
||||
|
||||
double
|
||||
scalbn (double x, int y)
|
||||
{
|
||||
|
@ -346,6 +387,8 @@ scalbn(double x, int y)
|
|||
|
||||
#ifndef HAVE_SCALBNF
|
||||
#define HAVE_SCALBNF 1
|
||||
float scalbnf (float x, int y);
|
||||
|
||||
float
|
||||
scalbnf (float x, int y)
|
||||
{
|
||||
|
@ -355,6 +398,8 @@ scalbnf(float x, int y)
|
|||
|
||||
#ifndef HAVE_SINF
|
||||
#define HAVE_SINF 1
|
||||
float sinf (float x);
|
||||
|
||||
float
|
||||
sinf (float x)
|
||||
{
|
||||
|
@ -364,6 +409,8 @@ sinf(float x)
|
|||
|
||||
#ifndef HAVE_SINHF
|
||||
#define HAVE_SINHF 1
|
||||
float sinhf (float x);
|
||||
|
||||
float
|
||||
sinhf (float x)
|
||||
{
|
||||
|
@ -373,6 +420,8 @@ sinhf(float x)
|
|||
|
||||
#ifndef HAVE_SQRTF
|
||||
#define HAVE_SQRTF 1
|
||||
float sqrtf (float x);
|
||||
|
||||
float
|
||||
sqrtf (float x)
|
||||
{
|
||||
|
@ -382,6 +431,8 @@ sqrtf(float x)
|
|||
|
||||
#ifndef HAVE_TANF
|
||||
#define HAVE_TANF 1
|
||||
float tanf (float x);
|
||||
|
||||
float
|
||||
tanf (float x)
|
||||
{
|
||||
|
@ -391,6 +442,8 @@ tanf(float x)
|
|||
|
||||
#ifndef HAVE_TANHF
|
||||
#define HAVE_TANHF 1
|
||||
float tanhf (float x);
|
||||
|
||||
float
|
||||
tanhf (float x)
|
||||
{
|
||||
|
@ -400,6 +453,8 @@ tanhf(float x)
|
|||
|
||||
#ifndef HAVE_TRUNC
|
||||
#define HAVE_TRUNC 1
|
||||
double trunc (double x);
|
||||
|
||||
double
|
||||
trunc (double x)
|
||||
{
|
||||
|
@ -415,6 +470,8 @@ trunc(double x)
|
|||
|
||||
#ifndef HAVE_TRUNCF
|
||||
#define HAVE_TRUNCF 1
|
||||
float truncf (float x);
|
||||
|
||||
float
|
||||
truncf (float x)
|
||||
{
|
||||
|
@ -427,6 +484,8 @@ truncf(float x)
|
|||
/* This is a portable implementation of nextafterf that is intended to be
|
||||
independent of the floating point format or its in memory representation.
|
||||
This implementation works correctly with denormalized values. */
|
||||
float nextafterf (float x, float y);
|
||||
|
||||
float
|
||||
nextafterf (float x, float y)
|
||||
{
|
||||
|
@ -490,6 +549,8 @@ nextafterf(float x, float y)
|
|||
#ifndef HAVE_POWF
|
||||
#define HAVE_POWF 1
|
||||
#endif
|
||||
float powf (float x, float y);
|
||||
|
||||
float
|
||||
powf (float x, float y)
|
||||
{
|
||||
|
@ -503,6 +564,8 @@ powf(float x, float y)
|
|||
|
||||
#if !defined(HAVE_ROUNDL)
|
||||
#define HAVE_ROUNDL 1
|
||||
long double roundl (long double x);
|
||||
|
||||
#if defined(HAVE_CEILL)
|
||||
/* Round to nearest integral value. If the argument is halfway between two
|
||||
integral values then round away from zero. */
|
||||
|
@ -556,6 +619,7 @@ roundl(long double x)
|
|||
#define HAVE_ROUND 1
|
||||
/* Round to nearest integral value. If the argument is halfway between two
|
||||
integral values then round away from zero. */
|
||||
double round (double x);
|
||||
|
||||
double
|
||||
round (double x)
|
||||
|
@ -585,6 +649,7 @@ round(double x)
|
|||
#define HAVE_ROUNDF 1
|
||||
/* Round to nearest integral value. If the argument is halfway between two
|
||||
integral values then round away from zero. */
|
||||
float roundf (float x);
|
||||
|
||||
float
|
||||
roundf (float x)
|
||||
|
@ -615,6 +680,8 @@ roundf(float x)
|
|||
|
||||
#if !defined(HAVE_LROUNDF) && defined(HAVE_ROUNDF)
|
||||
#define HAVE_LROUNDF 1
|
||||
long int lroundf (float x);
|
||||
|
||||
long int
|
||||
lroundf (float x)
|
||||
{
|
||||
|
@ -624,6 +691,8 @@ lroundf (float x)
|
|||
|
||||
#if !defined(HAVE_LROUND) && defined(HAVE_ROUND)
|
||||
#define HAVE_LROUND 1
|
||||
long int lround (double x);
|
||||
|
||||
long int
|
||||
lround (double x)
|
||||
{
|
||||
|
@ -633,6 +702,8 @@ lround (double x)
|
|||
|
||||
#if !defined(HAVE_LROUNDL) && defined(HAVE_ROUNDL)
|
||||
#define HAVE_LROUNDL 1
|
||||
long int lroundl (long double x);
|
||||
|
||||
long int
|
||||
lroundl (long double x)
|
||||
{
|
||||
|
@ -642,6 +713,8 @@ lroundl (long double x)
|
|||
|
||||
#if !defined(HAVE_LLROUNDF) && defined(HAVE_ROUNDF)
|
||||
#define HAVE_LLROUNDF 1
|
||||
long long int llroundf (float x);
|
||||
|
||||
long long int
|
||||
llroundf (float x)
|
||||
{
|
||||
|
@ -651,6 +724,8 @@ llroundf (float x)
|
|||
|
||||
#if !defined(HAVE_LLROUND) && defined(HAVE_ROUND)
|
||||
#define HAVE_LLROUND 1
|
||||
long long int llround (double x);
|
||||
|
||||
long long int
|
||||
llround (double x)
|
||||
{
|
||||
|
@ -660,6 +735,8 @@ llround (double x)
|
|||
|
||||
#if !defined(HAVE_LLROUNDL) && defined(HAVE_ROUNDL)
|
||||
#define HAVE_LLROUNDL 1
|
||||
long long int llroundl (long double x);
|
||||
|
||||
long long int
|
||||
llroundl (long double x)
|
||||
{
|
||||
|
@ -672,6 +749,8 @@ llroundl (long double x)
|
|||
#define HAVE_LOG10L 1
|
||||
/* log10 function for long double variables. The version provided here
|
||||
reduces the argument until it fits into a double, then use log10. */
|
||||
long double log10l (long double x);
|
||||
|
||||
long double
|
||||
log10l (long double x)
|
||||
{
|
||||
|
@ -710,6 +789,8 @@ log10l(long double x)
|
|||
|
||||
#ifndef HAVE_FLOORL
|
||||
#define HAVE_FLOORL 1
|
||||
long double floorl (long double x);
|
||||
|
||||
long double
|
||||
floorl (long double x)
|
||||
{
|
||||
|
@ -736,6 +817,8 @@ floorl (long double x)
|
|||
|
||||
#ifndef HAVE_FMODL
|
||||
#define HAVE_FMODL 1
|
||||
long double fmodl (long double x, long double y);
|
||||
|
||||
long double
|
||||
fmodl (long double x, long double y)
|
||||
{
|
||||
|
@ -751,6 +834,8 @@ fmodl (long double x, long double y)
|
|||
|
||||
#if !defined(HAVE_CABSF)
|
||||
#define HAVE_CABSF 1
|
||||
float cabsf (float complex z);
|
||||
|
||||
float
|
||||
cabsf (float complex z)
|
||||
{
|
||||
|
@ -760,6 +845,8 @@ cabsf (float complex z)
|
|||
|
||||
#if !defined(HAVE_CABS)
|
||||
#define HAVE_CABS 1
|
||||
double cabs (double complex z);
|
||||
|
||||
double
|
||||
cabs (double complex z)
|
||||
{
|
||||
|
@ -769,6 +856,8 @@ cabs (double complex z)
|
|||
|
||||
#if !defined(HAVE_CABSL) && defined(HAVE_HYPOTL)
|
||||
#define HAVE_CABSL 1
|
||||
long double cabsl (long double complex z);
|
||||
|
||||
long double
|
||||
cabsl (long double complex z)
|
||||
{
|
||||
|
@ -779,6 +868,8 @@ cabsl (long double complex z)
|
|||
|
||||
#if !defined(HAVE_CARGF)
|
||||
#define HAVE_CARGF 1
|
||||
float cargf (float complex z);
|
||||
|
||||
float
|
||||
cargf (float complex z)
|
||||
{
|
||||
|
@ -788,6 +879,8 @@ cargf (float complex z)
|
|||
|
||||
#if !defined(HAVE_CARG)
|
||||
#define HAVE_CARG 1
|
||||
double carg (double complex z);
|
||||
|
||||
double
|
||||
carg (double complex z)
|
||||
{
|
||||
|
@ -797,6 +890,8 @@ carg (double complex z)
|
|||
|
||||
#if !defined(HAVE_CARGL) && defined(HAVE_ATAN2L)
|
||||
#define HAVE_CARGL 1
|
||||
long double cargl (long double complex z);
|
||||
|
||||
long double
|
||||
cargl (long double complex z)
|
||||
{
|
||||
|
@ -808,6 +903,8 @@ cargl (long double complex z)
|
|||
/* exp(z) = exp(a)*(cos(b) + i sin(b)) */
|
||||
#if !defined(HAVE_CEXPF)
|
||||
#define HAVE_CEXPF 1
|
||||
float complex cexpf (float complex z);
|
||||
|
||||
float complex
|
||||
cexpf (float complex z)
|
||||
{
|
||||
|
@ -823,6 +920,8 @@ cexpf (float complex z)
|
|||
|
||||
#if !defined(HAVE_CEXP)
|
||||
#define HAVE_CEXP 1
|
||||
double complex cexp (double complex z);
|
||||
|
||||
double complex
|
||||
cexp (double complex z)
|
||||
{
|
||||
|
@ -838,6 +937,8 @@ cexp (double complex z)
|
|||
|
||||
#if !defined(HAVE_CEXPL) && defined(HAVE_COSL) && defined(HAVE_SINL) && defined(EXPL)
|
||||
#define HAVE_CEXPL 1
|
||||
long double complex cexpl (long double complex z);
|
||||
|
||||
long double complex
|
||||
cexpl (long double complex z)
|
||||
{
|
||||
|
@ -855,6 +956,8 @@ cexpl (long double complex z)
|
|||
/* log(z) = log (cabs(z)) + i*carg(z) */
|
||||
#if !defined(HAVE_CLOGF)
|
||||
#define HAVE_CLOGF 1
|
||||
float complex clogf (float complex z);
|
||||
|
||||
float complex
|
||||
clogf (float complex z)
|
||||
{
|
||||
|
@ -867,6 +970,8 @@ clogf (float complex z)
|
|||
|
||||
#if !defined(HAVE_CLOG)
|
||||
#define HAVE_CLOG 1
|
||||
double complex clog (double complex z);
|
||||
|
||||
double complex
|
||||
clog (double complex z)
|
||||
{
|
||||
|
@ -879,6 +984,8 @@ clog (double complex z)
|
|||
|
||||
#if !defined(HAVE_CLOGL) && defined(HAVE_LOGL) && defined(HAVE_CABSL) && defined(HAVE_CARGL)
|
||||
#define HAVE_CLOGL 1
|
||||
long double complex clogl (long double complex z);
|
||||
|
||||
long double complex
|
||||
clogl (long double complex z)
|
||||
{
|
||||
|
@ -893,6 +1000,8 @@ clogl (long double complex z)
|
|||
/* log10(z) = log10 (cabs(z)) + i*carg(z) */
|
||||
#if !defined(HAVE_CLOG10F)
|
||||
#define HAVE_CLOG10F 1
|
||||
float complex clog10f (float complex z);
|
||||
|
||||
float complex
|
||||
clog10f (float complex z)
|
||||
{
|
||||
|
@ -905,6 +1014,8 @@ clog10f (float complex z)
|
|||
|
||||
#if !defined(HAVE_CLOG10)
|
||||
#define HAVE_CLOG10 1
|
||||
double complex clog10 (double complex z);
|
||||
|
||||
double complex
|
||||
clog10 (double complex z)
|
||||
{
|
||||
|
@ -917,6 +1028,8 @@ clog10 (double complex z)
|
|||
|
||||
#if !defined(HAVE_CLOG10L) && defined(HAVE_LOG10L) && defined(HAVE_CABSL) && defined(HAVE_CARGL)
|
||||
#define HAVE_CLOG10L 1
|
||||
long double complex clog10l (long double complex z);
|
||||
|
||||
long double complex
|
||||
clog10l (long double complex z)
|
||||
{
|
||||
|
@ -931,6 +1044,8 @@ clog10l (long double complex z)
|
|||
/* pow(base, power) = cexp (power * clog (base)) */
|
||||
#if !defined(HAVE_CPOWF)
|
||||
#define HAVE_CPOWF 1
|
||||
float complex cpowf (float complex base, float complex power);
|
||||
|
||||
float complex
|
||||
cpowf (float complex base, float complex power)
|
||||
{
|
||||
|
@ -940,6 +1055,8 @@ cpowf (float complex base, float complex power)
|
|||
|
||||
#if !defined(HAVE_CPOW)
|
||||
#define HAVE_CPOW 1
|
||||
double complex cpow (double complex base, double complex power);
|
||||
|
||||
double complex
|
||||
cpow (double complex base, double complex power)
|
||||
{
|
||||
|
@ -949,6 +1066,8 @@ cpow (double complex base, double complex power)
|
|||
|
||||
#if !defined(HAVE_CPOWL) && defined(HAVE_CEXPL) && defined(HAVE_CLOGL)
|
||||
#define HAVE_CPOWL 1
|
||||
long double complex cpowl (long double complex base, long double complex power);
|
||||
|
||||
long double complex
|
||||
cpowl (long double complex base, long double complex power)
|
||||
{
|
||||
|
@ -960,6 +1079,8 @@ cpowl (long double complex base, long double complex power)
|
|||
/* sqrt(z). Algorithm pulled from glibc. */
|
||||
#if !defined(HAVE_CSQRTF)
|
||||
#define HAVE_CSQRTF 1
|
||||
float complex csqrtf (float complex z);
|
||||
|
||||
float complex
|
||||
csqrtf (float complex z)
|
||||
{
|
||||
|
@ -1013,6 +1134,8 @@ csqrtf (float complex z)
|
|||
|
||||
#if !defined(HAVE_CSQRT)
|
||||
#define HAVE_CSQRT 1
|
||||
double complex csqrt (double complex z);
|
||||
|
||||
double complex
|
||||
csqrt (double complex z)
|
||||
{
|
||||
|
@ -1066,6 +1189,8 @@ csqrt (double complex z)
|
|||
|
||||
#if !defined(HAVE_CSQRTL) && defined(HAVE_COPYSIGNL) && defined(HAVE_SQRTL) && defined(HAVE_FABSL) && defined(HAVE_HYPOTL)
|
||||
#define HAVE_CSQRTL 1
|
||||
long double complex csqrtl (long double complex z);
|
||||
|
||||
long double complex
|
||||
csqrtl (long double complex z)
|
||||
{
|
||||
|
@ -1121,6 +1246,8 @@ csqrtl (long double complex z)
|
|||
/* sinh(a + i b) = sinh(a) cos(b) + i cosh(a) sin(b) */
|
||||
#if !defined(HAVE_CSINHF)
|
||||
#define HAVE_CSINHF 1
|
||||
float complex csinhf (float complex a);
|
||||
|
||||
float complex
|
||||
csinhf (float complex a)
|
||||
{
|
||||
|
@ -1136,6 +1263,8 @@ csinhf (float complex a)
|
|||
|
||||
#if !defined(HAVE_CSINH)
|
||||
#define HAVE_CSINH 1
|
||||
double complex csinh (double complex a);
|
||||
|
||||
double complex
|
||||
csinh (double complex a)
|
||||
{
|
||||
|
@ -1151,6 +1280,8 @@ csinh (double complex a)
|
|||
|
||||
#if !defined(HAVE_CSINHL) && defined(HAVE_COSL) && defined(HAVE_COSHL) && defined(HAVE_SINL) && defined(HAVE_SINHL)
|
||||
#define HAVE_CSINHL 1
|
||||
long double complex csinhl (long double complex a);
|
||||
|
||||
long double complex
|
||||
csinhl (long double complex a)
|
||||
{
|
||||
|
@ -1168,6 +1299,8 @@ csinhl (long double complex a)
|
|||
/* cosh(a + i b) = cosh(a) cos(b) + i sinh(a) sin(b) */
|
||||
#if !defined(HAVE_CCOSHF)
|
||||
#define HAVE_CCOSHF 1
|
||||
float complex ccoshf (float complex a);
|
||||
|
||||
float complex
|
||||
ccoshf (float complex a)
|
||||
{
|
||||
|
@ -1183,6 +1316,8 @@ ccoshf (float complex a)
|
|||
|
||||
#if !defined(HAVE_CCOSH)
|
||||
#define HAVE_CCOSH 1
|
||||
double complex ccosh (double complex a);
|
||||
|
||||
double complex
|
||||
ccosh (double complex a)
|
||||
{
|
||||
|
@ -1198,6 +1333,8 @@ ccosh (double complex a)
|
|||
|
||||
#if !defined(HAVE_CCOSHL) && defined(HAVE_COSL) && defined(HAVE_COSHL) && defined(HAVE_SINL) && defined(HAVE_SINHL)
|
||||
#define HAVE_CCOSHL 1
|
||||
long double complex ccoshl (long double complex a);
|
||||
|
||||
long double complex
|
||||
ccoshl (long double complex a)
|
||||
{
|
||||
|
@ -1215,6 +1352,8 @@ ccoshl (long double complex a)
|
|||
/* tanh(a + i b) = (tanh(a) + i tan(b)) / (1 + i tanh(a) tan(b)) */
|
||||
#if !defined(HAVE_CTANHF)
|
||||
#define HAVE_CTANHF 1
|
||||
float complex ctanhf (float complex a);
|
||||
|
||||
float complex
|
||||
ctanhf (float complex a)
|
||||
{
|
||||
|
@ -1232,6 +1371,7 @@ ctanhf (float complex a)
|
|||
|
||||
#if !defined(HAVE_CTANH)
|
||||
#define HAVE_CTANH 1
|
||||
double complex ctanh (double complex a);
|
||||
double complex
|
||||
ctanh (double complex a)
|
||||
{
|
||||
|
@ -1249,6 +1389,8 @@ ctanh (double complex a)
|
|||
|
||||
#if !defined(HAVE_CTANHL) && defined(HAVE_TANL) && defined(HAVE_TANHL)
|
||||
#define HAVE_CTANHL 1
|
||||
long double complex ctanhl (long double complex a);
|
||||
|
||||
long double complex
|
||||
ctanhl (long double complex a)
|
||||
{
|
||||
|
@ -1268,6 +1410,8 @@ ctanhl (long double complex a)
|
|||
/* sin(a + i b) = sin(a) cosh(b) + i cos(a) sinh(b) */
|
||||
#if !defined(HAVE_CSINF)
|
||||
#define HAVE_CSINF 1
|
||||
float complex csinf (float complex a);
|
||||
|
||||
float complex
|
||||
csinf (float complex a)
|
||||
{
|
||||
|
@ -1283,6 +1427,8 @@ csinf (float complex a)
|
|||
|
||||
#if !defined(HAVE_CSIN)
|
||||
#define HAVE_CSIN 1
|
||||
double complex csin (double complex a);
|
||||
|
||||
double complex
|
||||
csin (double complex a)
|
||||
{
|
||||
|
@ -1298,6 +1444,8 @@ csin (double complex a)
|
|||
|
||||
#if !defined(HAVE_CSINL) && defined(HAVE_COSL) && defined(HAVE_COSHL) && defined(HAVE_SINL) && defined(HAVE_SINHL)
|
||||
#define HAVE_CSINL 1
|
||||
long double complex csinl (long double complex a);
|
||||
|
||||
long double complex
|
||||
csinl (long double complex a)
|
||||
{
|
||||
|
@ -1315,6 +1463,8 @@ csinl (long double complex a)
|
|||
/* cos(a + i b) = cos(a) cosh(b) - i sin(a) sinh(b) */
|
||||
#if !defined(HAVE_CCOSF)
|
||||
#define HAVE_CCOSF 1
|
||||
float complex ccosf (float complex a);
|
||||
|
||||
float complex
|
||||
ccosf (float complex a)
|
||||
{
|
||||
|
@ -1330,6 +1480,8 @@ ccosf (float complex a)
|
|||
|
||||
#if !defined(HAVE_CCOS)
|
||||
#define HAVE_CCOS 1
|
||||
double complex ccos (double complex a);
|
||||
|
||||
double complex
|
||||
ccos (double complex a)
|
||||
{
|
||||
|
@ -1345,6 +1497,8 @@ ccos (double complex a)
|
|||
|
||||
#if !defined(HAVE_CCOSL) && defined(HAVE_COSL) && defined(HAVE_COSHL) && defined(HAVE_SINL) && defined(HAVE_SINHL)
|
||||
#define HAVE_CCOSL 1
|
||||
long double complex ccosl (long double complex a);
|
||||
|
||||
long double complex
|
||||
ccosl (long double complex a)
|
||||
{
|
||||
|
@ -1362,6 +1516,8 @@ ccosl (long double complex a)
|
|||
/* tan(a + i b) = (tan(a) + i tanh(b)) / (1 - i tan(a) tanh(b)) */
|
||||
#if !defined(HAVE_CTANF)
|
||||
#define HAVE_CTANF 1
|
||||
float complex ctanf (float complex a);
|
||||
|
||||
float complex
|
||||
ctanf (float complex a)
|
||||
{
|
||||
|
@ -1379,6 +1535,8 @@ ctanf (float complex a)
|
|||
|
||||
#if !defined(HAVE_CTAN)
|
||||
#define HAVE_CTAN 1
|
||||
double complex ctan (double complex a);
|
||||
|
||||
double complex
|
||||
ctan (double complex a)
|
||||
{
|
||||
|
@ -1396,6 +1554,8 @@ ctan (double complex a)
|
|||
|
||||
#if !defined(HAVE_CTANL) && defined(HAVE_TANL) && defined(HAVE_TANHL)
|
||||
#define HAVE_CTANL 1
|
||||
long double complex ctanl (long double complex a);
|
||||
|
||||
long double complex
|
||||
ctanl (long double complex a)
|
||||
{
|
||||
|
@ -1417,6 +1577,8 @@ ctanl (long double complex a)
|
|||
|
||||
#if !defined(HAVE_CASINF) && defined(HAVE_CLOGF) && defined(HAVE_CSQRTF)
|
||||
#define HAVE_CASINF 1
|
||||
complex float casinf (complex float z);
|
||||
|
||||
complex float
|
||||
casinf (complex float z)
|
||||
{
|
||||
|
@ -1427,6 +1589,8 @@ casinf (complex float z)
|
|||
|
||||
#if !defined(HAVE_CASIN) && defined(HAVE_CLOG) && defined(HAVE_CSQRT)
|
||||
#define HAVE_CASIN 1
|
||||
complex double casin (complex double z);
|
||||
|
||||
complex double
|
||||
casin (complex double z)
|
||||
{
|
||||
|
@ -1437,6 +1601,8 @@ casin (complex double z)
|
|||
|
||||
#if !defined(HAVE_CASINL) && defined(HAVE_CLOGL) && defined(HAVE_CSQRTL)
|
||||
#define HAVE_CASINL 1
|
||||
complex long double casinl (complex long double z);
|
||||
|
||||
complex long double
|
||||
casinl (complex long double z)
|
||||
{
|
||||
|
@ -1450,6 +1616,8 @@ casinl (complex long double z)
|
|||
|
||||
#if !defined(HAVE_CACOSF) && defined(HAVE_CLOGF) && defined(HAVE_CSQRTF)
|
||||
#define HAVE_CACOSF 1
|
||||
complex float cacosf (complex float z);
|
||||
|
||||
complex float
|
||||
cacosf (complex float z)
|
||||
{
|
||||
|
@ -1458,9 +1626,11 @@ cacosf (complex float z)
|
|||
#endif
|
||||
|
||||
|
||||
complex double
|
||||
#if !defined(HAVE_CACOS) && defined(HAVE_CLOG) && defined(HAVE_CSQRT)
|
||||
#define HAVE_CACOS 1
|
||||
complex double cacos (complex double z);
|
||||
|
||||
complex double
|
||||
cacos (complex double z)
|
||||
{
|
||||
return -I*clog (z + I*csqrt (1.0-z*z));
|
||||
|
@ -1470,6 +1640,8 @@ cacos (complex double z)
|
|||
|
||||
#if !defined(HAVE_CACOSL) && defined(HAVE_CLOGL) && defined(HAVE_CSQRTL)
|
||||
#define HAVE_CACOSL 1
|
||||
complex long double cacosl (complex long double z);
|
||||
|
||||
complex long double
|
||||
cacosl (complex long double z)
|
||||
{
|
||||
|
@ -1483,6 +1655,8 @@ cacosl (complex long double z)
|
|||
|
||||
#if !defined(HAVE_CATANF) && defined(HAVE_CLOGF)
|
||||
#define HAVE_CACOSF 1
|
||||
complex float catanf (complex float z);
|
||||
|
||||
complex float
|
||||
catanf (complex float z)
|
||||
{
|
||||
|
@ -1493,6 +1667,8 @@ catanf (complex float z)
|
|||
|
||||
#if !defined(HAVE_CATAN) && defined(HAVE_CLOG)
|
||||
#define HAVE_CACOS 1
|
||||
complex double catan (complex double z);
|
||||
|
||||
complex double
|
||||
catan (complex double z)
|
||||
{
|
||||
|
@ -1503,6 +1679,8 @@ catan (complex double z)
|
|||
|
||||
#if !defined(HAVE_CATANL) && defined(HAVE_CLOGL)
|
||||
#define HAVE_CACOSL 1
|
||||
complex long double catanl (complex long double z);
|
||||
|
||||
complex long double
|
||||
catanl (complex long double z)
|
||||
{
|
||||
|
@ -1516,6 +1694,8 @@ catanl (complex long double z)
|
|||
|
||||
#if !defined(HAVE_CASINHF) && defined(HAVE_CLOGF) && defined(HAVE_CSQRTF)
|
||||
#define HAVE_CASINHF 1
|
||||
complex float casinhf (complex float z);
|
||||
|
||||
complex float
|
||||
casinhf (complex float z)
|
||||
{
|
||||
|
@ -1526,6 +1706,8 @@ casinhf (complex float z)
|
|||
|
||||
#if !defined(HAVE_CASINH) && defined(HAVE_CLOG) && defined(HAVE_CSQRT)
|
||||
#define HAVE_CASINH 1
|
||||
complex double casinh (complex double z);
|
||||
|
||||
complex double
|
||||
casinh (complex double z)
|
||||
{
|
||||
|
@ -1536,6 +1718,8 @@ casinh (complex double z)
|
|||
|
||||
#if !defined(HAVE_CASINHL) && defined(HAVE_CLOGL) && defined(HAVE_CSQRTL)
|
||||
#define HAVE_CASINHL 1
|
||||
complex long double casinhl (complex long double z);
|
||||
|
||||
complex long double
|
||||
casinhl (complex long double z)
|
||||
{
|
||||
|
@ -1549,6 +1733,8 @@ casinhl (complex long double z)
|
|||
|
||||
#if !defined(HAVE_CACOSHF) && defined(HAVE_CLOGF) && defined(HAVE_CSQRTF)
|
||||
#define HAVE_CACOSHF 1
|
||||
complex float cacoshf (complex float z);
|
||||
|
||||
complex float
|
||||
cacoshf (complex float z)
|
||||
{
|
||||
|
@ -1559,6 +1745,8 @@ cacoshf (complex float z)
|
|||
|
||||
#if !defined(HAVE_CACOSH) && defined(HAVE_CLOG) && defined(HAVE_CSQRT)
|
||||
#define HAVE_CACOSH 1
|
||||
complex double cacosh (complex double z);
|
||||
|
||||
complex double
|
||||
cacosh (complex double z)
|
||||
{
|
||||
|
@ -1569,6 +1757,8 @@ cacosh (complex double z)
|
|||
|
||||
#if !defined(HAVE_CACOSHL) && defined(HAVE_CLOGL) && defined(HAVE_CSQRTL)
|
||||
#define HAVE_CACOSHL 1
|
||||
complex long double cacoshl (complex long double z);
|
||||
|
||||
complex long double
|
||||
cacoshl (complex long double z)
|
||||
{
|
||||
|
@ -1582,6 +1772,8 @@ cacoshl (complex long double z)
|
|||
|
||||
#if !defined(HAVE_CATANHF) && defined(HAVE_CLOGF)
|
||||
#define HAVE_CATANHF 1
|
||||
complex float catanhf (complex float z);
|
||||
|
||||
complex float
|
||||
catanhf (complex float z)
|
||||
{
|
||||
|
@ -1592,6 +1784,8 @@ catanhf (complex float z)
|
|||
|
||||
#if !defined(HAVE_CATANH) && defined(HAVE_CLOG)
|
||||
#define HAVE_CATANH 1
|
||||
complex double catanh (complex double z);
|
||||
|
||||
complex double
|
||||
catanh (complex double z)
|
||||
{
|
||||
|
@ -1601,6 +1795,8 @@ catanh (complex double z)
|
|||
|
||||
#if !defined(HAVE_CATANHL) && defined(HAVE_CLOGL)
|
||||
#define HAVE_CATANHL 1
|
||||
complex long double catanhl (complex long double z);
|
||||
|
||||
complex long double
|
||||
catanhl (complex long double z)
|
||||
{
|
||||
|
@ -1611,8 +1807,7 @@ catanhl (complex long double z)
|
|||
|
||||
#if !defined(HAVE_TGAMMA)
|
||||
#define HAVE_TGAMMA 1
|
||||
|
||||
extern double tgamma (double);
|
||||
double tgamma (double);
|
||||
|
||||
/* Fallback tgamma() function. Uses the algorithm from
|
||||
http://www.netlib.org/specfun/gamma and references therein. */
|
||||
|
@ -1750,8 +1945,7 @@ tgamma (double x)
|
|||
|
||||
#if !defined(HAVE_LGAMMA)
|
||||
#define HAVE_LGAMMA 1
|
||||
|
||||
extern double lgamma (double);
|
||||
double lgamma (double);
|
||||
|
||||
/* Fallback lgamma() function. Uses the algorithm from
|
||||
http://www.netlib.org/specfun/algama and references therein,
|
||||
|
@ -1921,7 +2115,7 @@ lgamma (double y)
|
|||
|
||||
#if defined(HAVE_TGAMMA) && !defined(HAVE_TGAMMAF)
|
||||
#define HAVE_TGAMMAF 1
|
||||
extern float tgammaf (float);
|
||||
float tgammaf (float);
|
||||
|
||||
float
|
||||
tgammaf (float x)
|
||||
|
@ -1932,7 +2126,7 @@ tgammaf (float x)
|
|||
|
||||
#if defined(HAVE_LGAMMA) && !defined(HAVE_LGAMMAF)
|
||||
#define HAVE_LGAMMAF 1
|
||||
extern float lgammaf (float);
|
||||
float lgammaf (float);
|
||||
|
||||
float
|
||||
lgammaf (float x)
|
||||
|
|
Loading…
Reference in New Issue