一、函数

1、 三角函数

double sin (double);正弦

double cos (double);余弦

double tan (double);正切

2 、反三角函数

double asin (double); 结果介于[-PI/2, PI/2]

double acos (double); 结果介于[0, PI]

double atan (double); 反正切(主值), 结果介于[-PI/2, PI/2]

double atan2 (double, double); 反正切(整圆值), 结果介于[-PI, PI]

3 、双曲三角函数

double sinh (double);

double cosh (double);

double tanh (double);

4 、指数与对数

double exp (double);求取自然数e的幂

double sqrt (double);开平方

double log (double); 以e为底的对数

double log10 (double);以10为底的对数

double pow(double x, double y);计算以x为底数的y次幂

float powf(float x, float y); 功能与pow一致,只是输入与输出皆为浮点数

5 、取整

double ceil (double); 取上整

double floor (double); 取下整

double round (double); 四舍五入

6 、绝对值

   int abs(int);求绝对值

double fabs (double);求绝对值

double cabs(struct complex znum) ;求复数的绝对值

7 、标准化浮点数

double frexp (double f, int *p); 标准化浮点数, f = x * 2^p, 已知f求x, p ( x介于[0.5, 1] )

double ldexp (double x, int p); 与frexp相反, 已知x, p求f

8 、取整与取余

double modf (double, double*); 将参数的整数部分通过指针回传, 返回小数部分

double fmod (double, double); 返回两参数相除的余数

9 、其他

double hypot(double x, double y);已知直角三角形两个直角边长度,求斜边长度

double ldexp(double x, int exponent);计算x*(2的exponent次幂)

double poly(double x, int degree, double coeffs [] );计算多项式

nt matherr(struct exception *e);数学错误计算处理程序

二、宏定义

#define M_E             2.71828182845904523536028747135266250   /* e              */

#define M_LOG2E         1.44269504088896340735992468100189214   /* log2(e)        */

#define M_LOG10E       0.434294481903251827651128918916605082  /* log10(e)       */

#define M_LN2           0.693147180559945309417232121458176568  /* loge(2)        */

#define M_LN10           2.30258509299404568401799145468436421   /* loge(10)       */

#define M_PI               3.14159265358979323846264338327950288   /* pi             */

#define M_PI_2           1.57079632679489661923132169163975144   /* pi/2           */

#define M_PI_4        0.785398163397448309615660845819875721  /* pi/4           */

#define M_1_PI        0.318309886183790671537767526745028724  /* 1/pi           */  

#define M_2_PI        0.636619772367581343075535053490057448  /* 2/pi           */

#define M_2_SQRTPI    1.12837916709551257389615890312154517   /* 2/sqrt(pi)     */

#define M_SQRT2       1.41421356237309504880168872420969808   /* sqrt(2)        */

#define M_SQRT1_2     0.707106781186547524400844362104849039  /* 1/sqrt(2)      */

  #define MAXFLOAT        0x1.fffffep+127f

OC常用的数学函数及宏定义的更多相关文章

  1. 【python游戏编程之旅】第四篇---pygame中加载位图与常用的数学函数。

    本系列博客介绍以python+pygame库进行小游戏的开发.有写的不对之处还望各位海涵. 在上一篇博客中,我们学习了pygame事件与设备轮询.http://www.cnblogs.com/msxh ...

  2. C++内联函数与宏定义

    用内联取代宏: 1.内联可调试: 2.可进行类型安全检查或自动类型转换: 3.可访问成员变量. 另外,定义在类声明中的成员函数自动转化为内联函数. 文章(一) 内联函数与宏定义 在C中,常用预处理语句 ...

  3. 【python游戏编程04--加载位图与常用的数学函数】

    一.pygame中常用的数学函数 首先介绍两个角度和弧度转换的函数 math.degress()和math.radians()用法很简单,只要将数值传进去然后接受返回值就可以 math.cos(ang ...

  4. ytu 1061: 从三个数中找出最大的数(水题,模板函数练习 + 宏定义练习)

    1061: 从三个数中找出最大的数 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 154  Solved: 124[Submit][Status][We ...

  5. iOS开发中常用的数学函数

    iOS开发中常用的数学函数 /*---- 常用数学公式 ----*/ //指数运算 3^2 3^3 NSLog(,)); //result 9 NSLog(,)); //result 27 //开平方 ...

  6. C++内联函数、宏定义和普通函数的区别

    C++内联函数.宏定义和普通函数的区别? 宏定义:在预处理阶段进行简单的文本替换,不会进行参数类型检查: 内联函数:在编译器的时候进行代码插入,编译器会在每次调用内联函数的地方直接将内联函数的内容展开 ...

  7. C 常用库函数memset,编译器宏定义assert

    一. 总览 1.1库函数 函数名 头文件 功能 原型 说明 syslog syslog.h 记录至系统记录(日志) void    syslog(int, const char *, ...) __p ...

  8. 【C++】函数指针宏定义

    看耗子叔文章学习虚函数表(http://blog.csdn.net/haoel/article/details/1948051)的时候被例子的第一句惊到了 typedef void(*Fun)(voi ...

  9. 转-C++内联函数与宏定义区别

    主要区别: 1.内联函数在编译时展开,而宏在预编译时展开. 2.在编译的时候,内联函数直接被嵌入到目标代码中去,而宏只是一个简单的文本替换. 3.内联函数可以进行诸如类型安全检查.语句是否正确等编译功 ...

随机推荐

  1. flask web开发日记

    from flask import Flask,make_response,redirect,abort app = Flask(__name__) @app.route('/index1') def ...

  2. Git与SVN版本控制系统

    关于版本控制 什么是版本控制?版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统.在本书所展示的例子中,我们仅对保存着软件源代码的文本文件作版本控制管理,但实际上,你可以对任 ...

  3. acedinitget

    // 提示用户选择选择方式 acedInitGet(0, _T("W CP")); int nRs = acedGetKword(_T("\n请输入关键字确定选择方式[窗 ...

  4. ThinkPHP框架表单验证AJAX

    验证有两种方式:静态验证与动态验证. 一.静态验证 在模型类里面预先定义好该模型的自动验证规则,我们称为静态定义. 验证时要在test表的Model里面加验证条件:新建testModel.class. ...

  5. BZOJ 3489: A simple rmq problem KDtree

    Code: #include<bits/stdc++.h> #define maxn 200000 #define inf 100000000 #define mid ((l+r)> ...

  6. 类 Fabric 主机管理程序开发

    类 Fabric 主机管理程序开发:1. 运行程序列出主机组或者主机列表2. 选择指定主机或主机组3. 选择让主机或者主机组执行命令或者向其传输文件(上传/下载4. 充分使用多线程或多进程5. 不同主 ...

  7. React 服务器渲染原理解析与实践

    第1章 服务器端渲染基础本章主要讲解客户端与服务器端渲染的概念,分析客户端渲染和服务器端渲染的利弊,带大家对服务器端渲染有一个粗浅认识. 1-1 课程导学1-2 什么是服务器端渲染1-3 什么是客户端 ...

  8. raspberry 重新烧录后的设置

    raspberry初学者在使用的时候经常遇到各种问题,常常重新烧录系统,现在把新系统的常用配置和安装内容整理一下,避免自己忘记 1.安装常用软件包: sudo apt-get gedit sudo a ...

  9. Problem 63

    Problem 63 https://projecteuler.net/problem=63 Powerful digit counts The 5-digit number, 16807=75, i ...

  10. Spring Boot的常见配置项解析

    1.spring-boot-starter-parent:springboot官方推荐的maven管理工具,最简单的做法就是继承它. spring-boot-starter-parent包含了以下信息 ...