//1。三角函数
double sin(double);
//1。1。正弦
double cos(double);
//1。2。余弦
double tan(double);
//1。
3。正切
//2。反三角函数
double asin (double);?
//2。1。结果介于[-PI/2,PI/2]
double acos (double);?
//2。
2。结果介于[0,PI]搜索
double atan (double);?
//2。3。反正切(主值),结果介于[-PI/2,PI/2]
double atan2 (double,double);?
//2。
4。反正切(整圆值),结果介于[-PI,PI]
//3。双曲三角函数
double sinh (double);
//3。1。双曲正弦函数
double cosh (double);
//3。
2。双曲余弦函数
double tanh (double);
//3。3。双曲正切函数
//4。指数与对数
double frexp(double value,int *exp);
//4。
1。这是一个将value值拆分成小数部分f和(以2为底的)指数部分exp,并返回小数部分f,即f*2^exp。其中f取值在0。5~1。0范围或者0。
double ldexp(double x,int exp);
//4。
2。这个函数刚好跟上面那个frexp函数功能相反,它的返回值是x*2^exp
double modf(double value,double *iptr);
//4。3。拆分value值,返回它的小数部分,iptr指向整数部分。
double log (double);
//4。4。以e为底的对数
double log10 (double);
//4。5。以10为底的对数
double pow(double x,double y);
//4。
6。计算x的y次幂
float powf(float x,float y);?
//4。7。功能与pow一致,只是输入与输出皆为浮点数
double exp (double);
//4。
8。求取自然数e的幂
double sqrt (double);
//4。9。开平方
//5。取整
double ceil (double);?
//5。
1。取上整,返回不比x小的最小整数
double floor (double);
//5。2。取下整,返回不比x大的最大整数,即高斯函数[x]
//6。绝对值
int abs(int i);
//6。
1。求整型的绝对值
double fabs (double);
//6。2。求实型的绝对值
double cabs(struct complex znum);
//6。
3。求复数的绝对值
//7。标准化浮点数
double frexp (double f,int *p);?
//7。1。标准化浮点数,f = x * 2^p,已知f求x,p (x介于[0。
5,1])
double ldexp (double x,int p);?
//7。2。与frexp相反,已知x,p求f
//8。取整与取余
double modf (double,double*);?
//8。
1。将参数的整数部分通过指针回传,返回小数部分
double fmod (double,double);?
//8。2。返回两参数相除的余数
//9。其他
double hypot(double x,double y);
//9。
1。已知直角三角形两个直角边长度,求斜边长度
double ldexp(double x,int exponent);
//9。2。计算x*(2的exponent次幂)
double poly(double x,int degree,double coeffs []);
//9。
3。计算多项式
int matherr(struct exception *e);
//9。4。数学错误计算处理程序
追答 : 追问:
double ldexp (double x,int p); 与frexp相反,已知x,p求f
double ldexp(double x,int exponent);计算x*(2的exponent次幂)
这两个。
。。有区别吗
……
追答:
就函数方法来说,没有区别,
就是一个“由两个源数据(一个双浮点数x、一个整型数p)得出一个双浮点数”的方法,
p和exponent实际上是一样的,都只是一个形参名,实际传参都是一个整型数;
之所以分了两种公式表述,是为了不同目的需要用这个类时、可以快速查找相关函数;
……
另,
C语言的math。
h是个比较成熟的类,
你可以找他的源代码来看,
CSDN和CODEFORGE还有其他很多网站里都有,
不过源代码很多、360问答里贴不下;
如果你对某个函数有兴趣,
不妨单独开一个问题供大家讨论。
追答 : 追问:
double ldexp (double x,int p); 与frexp相反,已知x,p求f
double ldexp(double x,int exponent);计算x*(2的exponent次幂)
……
追答:
{
首先明白数学公式:f=lg(a),即
对数=lg(真数);
而在编程中为了适应计算机的性能,使用的公式是
对数=整数*((log2)(尾数));
仔细查看frexp(),即原答索引7。
1,
是由真数求尾数和整数;
反之,由尾数和整数作为源数据求对数的方法,就是7。2的ldexp(),
是由尾数和整数求真数;
同样,9。2中求的正是由尾数和整数来求真数。
}
……
备注:
7。1中形参*p其实是多给出一个返回值可以存放的地址,
也就是说这个函数其实给出了两个返回值,
而不是需要两个传参。
全部