You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
120 lines
3.3 KiB
120 lines
3.3 KiB
/*
|
|
* complex.h: ISO/IEC 9899:1999 (C99), section 7.3
|
|
*
|
|
* Copyright (C) ARM Ltd., 2006. All rights reserved
|
|
* RCS $Revision: 179217 $
|
|
* Checkin $Date: 2013-03-12 14:03:19 +0000 (Tue, 12 Mar 2013) $
|
|
* Revising $Author: kwalker $
|
|
*/
|
|
|
|
#if __STDC_VERSION__ < 199901L && !defined(__GNUC__)
|
|
# error complex.h requires c99 mode or gnu mode
|
|
#endif
|
|
#define __ARMCLIB_VERSION 5050106
|
|
|
|
/*
|
|
In order to get the float, double, and long double versions
|
|
this file includes itself twice, for a total of three inclusions,
|
|
each time defining __CFLOAT __FLOAT and __CFUNC appropriately
|
|
so that we get three versions of each function
|
|
*/
|
|
|
|
/* defined once we have been included thrice */
|
|
#ifndef __complex_h
|
|
|
|
#if defined(__complex_h_twice) && !defined(__complex_h_thrice)
|
|
# define __complex_h_thrice
|
|
# undef __CFLOAT
|
|
# define __CFLOAT long double complex
|
|
# undef __FLOAT
|
|
# define __FLOAT long double
|
|
# undef __CFUNC
|
|
# define __CFUNC(x) x##l
|
|
#endif /* complex_h_thrice */
|
|
|
|
|
|
#if defined(__complex_h_once) && !defined(__complex_h_twice)
|
|
# define __complex_h_twice
|
|
# undef __CFLOAT
|
|
# define __CFLOAT float complex
|
|
# undef __FLOAT
|
|
# define __FLOAT float
|
|
# undef __CFUNC
|
|
# define __CFUNC(x) x##f
|
|
#endif /* complex_h_twice */
|
|
|
|
|
|
#ifndef __complex_h_once
|
|
# define __complex_h_once
|
|
|
|
# define complex _Complex
|
|
# define _Complex_I ((float _Complex)__I__)
|
|
|
|
/* imaginary types not supported in gnu mode */
|
|
# if !defined(__GNUC__) && !defined(__ARM_NO_IMAGINARY_TYPE)
|
|
# define imaginary _Imaginary
|
|
# define _Imaginary_I ((float _Imaginary)__I__)
|
|
# define I _Imaginary_I
|
|
# else
|
|
# define I _Complex_I
|
|
# endif
|
|
|
|
# define __CFLOAT double complex
|
|
# define __FLOAT double
|
|
# define __CFUNC(x) x
|
|
|
|
/* _ARMABI may have been defined by math.h */
|
|
# ifndef _ARMABI
|
|
# define _ARMABI __declspec(__nothrow)
|
|
# endif
|
|
|
|
#endif /* __complex_h_once */
|
|
|
|
|
|
/* trigonometric */
|
|
extern _ARMABI __CFLOAT __CFUNC(cacos)(__CFLOAT /*z*/);
|
|
extern _ARMABI __CFLOAT __CFUNC(casin)(__CFLOAT /*z*/);
|
|
extern _ARMABI __CFLOAT __CFUNC(catan)(__CFLOAT /*z*/);
|
|
extern _ARMABI __CFLOAT __CFUNC(ccos)(__CFLOAT /*z*/);
|
|
extern _ARMABI __CFLOAT __CFUNC(csin)(__CFLOAT /*z*/);
|
|
extern _ARMABI __CFLOAT __CFUNC(ctan)(__CFLOAT /*z*/);
|
|
|
|
/* hyperbolic */
|
|
extern _ARMABI __CFLOAT __CFUNC(cacosh)(__CFLOAT /*z*/);
|
|
extern _ARMABI __CFLOAT __CFUNC(casinh)(__CFLOAT /*z*/);
|
|
extern _ARMABI __CFLOAT __CFUNC(catanh)(__CFLOAT /*z*/);
|
|
extern _ARMABI __CFLOAT __CFUNC(ccosh)(__CFLOAT /*z*/);
|
|
extern _ARMABI __CFLOAT __CFUNC(csinh)(__CFLOAT /*z*/);
|
|
extern _ARMABI __CFLOAT __CFUNC(ctanh)(__CFLOAT /*z*/);
|
|
|
|
/* exponential and logarithmic */
|
|
extern _ARMABI __CFLOAT __CFUNC(cexp)(__CFLOAT /*x*/);
|
|
extern _ARMABI __CFLOAT __CFUNC(clog)(__CFLOAT /*z*/);
|
|
|
|
/* power and absolute-value */
|
|
extern _ARMABI __FLOAT __CFUNC(cabs)(__CFLOAT /*z*/);
|
|
extern _ARMABI __CFLOAT __CFUNC(cpow)(__CFLOAT /*x*/, __CFLOAT /*y*/);
|
|
extern _ARMABI __CFLOAT __CFUNC(csqrt)(__CFLOAT /*z*/);
|
|
|
|
/* manipulation */
|
|
extern _ARMABI __FLOAT __CFUNC(carg)(__CFLOAT /*z*/);
|
|
extern _ARMABI __FLOAT __CFUNC(cimag)(__CFLOAT /*z*/);
|
|
extern _ARMABI __CFLOAT __CFUNC(conj)(__CFLOAT /*z*/);
|
|
extern _ARMABI __CFLOAT __CFUNC(cproj)(__CFLOAT /*z*/);
|
|
extern _ARMABI __FLOAT __CFUNC(creal)(__CFLOAT /*z*/);
|
|
|
|
|
|
#if defined(__complex_h_thrice)
|
|
# define __complex_h
|
|
# undef __CFUNC
|
|
# undef __CFLOAT
|
|
# undef __FLOAT
|
|
#else
|
|
# include <complex.h>
|
|
#endif
|
|
|
|
#endif /* __complex_h */
|
|
|
|
/* end of complex.h */
|
|
|