⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 math.h

📁 c编写的嵌入式程序源码
💻 H
字号:
#ifndef _MATH_H
#define _MATH_H

#define HUGE_VAL (__DBL_MAX__ * 2.0)

/*
 *   prototypes for the standard C maths functions.  
 */

#if (__DBL_MANT_DIG__ != __FLT_MANT_DIG__)
double acos(double);
double asin(double);
double atan(double);
double atan2(double, double);
double cos(double);
double sin(double);
double tan(double);
double cosh(double);
double sinh(double);
double tanh(double);
double exp(double);
double frexp(double, int *);
double ldexp(double, int);
double log(double);
double log10(double);
double modf(double, double *);
double pow(double, double);
double sqrt(double);
double ceil(double);
double fabs(double);
double floor(double);
double fmod(double, double);
#endif

/*
 *   prototypes for the float maths functions. 
 */
float acosf(float);
float asinf(float);
float atanf(float);
float atan2f(float, float);
float cosf(float);
float sinf(float);
float tanf(float);
float coshf(float);
float sinhf(float);
float tanhf(float);
float expf(float);
float frexpf(float, int *);
float ldexpf(float, int);
float logf(float);
float log10f(float);
#if (__DBL_MANT_DIG__ == __FLT_MANT_DIG__)
/*
 *  Without -fno-short-double, float * and double * are compatable, but a
 *  warning can still be produced.
 */
float modff(float, void *);
#else
float modff(float, float *);
#endif
float powf(float, float);
float sqrtf(float);
float ceilf(float);
float fabsf(float);
float floorf(float);
float fmodf(float, float);

/*
 *    prototypes for long double maths functions.  On dsPIC30, long double
 *      is always 64bits regardless of the setting of the -fno-short-double
 *      and -fshort-double options.
 */
long double acosl(long double);
long double asinl(long double);
long double atanl(long double);
long double atan2l(long double, long double);
long double cosl(long double);
long double sinl(long double);
long double tanl(long double);
long double coshl(long double);
long double sinhl(long double);
long double tanhl(long double);
long double expl(long double);
long double frexpl(long double, int *);
long double ldexpl(long double, int);
long double logl(long double);
long double log10l(long double);
long double modfl(long double, long double *);
long double powl(long double, long double);
long double sqrtl(long double);
long double ceill(long double);
long double fabsl(long double);
long double floorl(long double);
long double fmodl(long double, long double);

/*
 *   macro definitions to ensure that the default functions are correct
 *     for the chosen size of double:  see -fno-short-double and -fshort-double
 */

#if (__DBL_MANT_DIG__ == __FLT_MANT_DIG__)
#define __MPROTO(x)  x ## f
#else
#define __MPROTO(x)  x
#endif


#define acos __MPROTO(acos)
#define asin __MPROTO(asin)
#define atan __MPROTO(atan)
#define atan2 __MPROTO(atan2)
#define cos __MPROTO(cos)
#define sin __MPROTO(sin)
#define tan __MPROTO(tan)
#define cosh __MPROTO(cosh)
#define sinh __MPROTO(sinh)
#define tanh __MPROTO(tanh)
#define exp __MPROTO(exp)
#define frexp __MPROTO(frexp)
#define ldexp __MPROTO(ldexp)
#define log __MPROTO(log)
#define log10 __MPROTO(log10)
#define modf __MPROTO(modf)
#define pow __MPROTO(pow)
#define sqrt __MPROTO(sqrt)
#define ceil __MPROTO(ceil)
#define fabs __MPROTO(fabs)
#define floor __MPROTO(floor)
#define fmod __MPROTO(fmod)

/*
 *  Prototypes for non-standard maths functions; these are part of libm
 *    and will be satisfied by libm-<omf>.a which is automatically included
 *    by the compiler.
 */

unsigned long __udiv3216(unsigned long, unsigned int);
         long __div3216(long, int);

#endif 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -