您的位置:首页 > 教育 > 锐评 > 手机编程app_长沙服务好的网络营销_seo推广方法集合_最近的疫情情况最新消息

手机编程app_长沙服务好的网络营销_seo推广方法集合_最近的疫情情况最新消息

2024/10/6 10:44:55 来源:https://blog.csdn.net/qq_40788199/article/details/142700720  浏览:    关键词:手机编程app_长沙服务好的网络营销_seo推广方法集合_最近的疫情情况最新消息
手机编程app_长沙服务好的网络营销_seo推广方法集合_最近的疫情情况最新消息

常用数学函数

计算反余弦 (arccos(x))

std::acos, 
std::acosf, 
std::acosl

定义于头文件 <math.h>

float       acosf( float arg );

(1)(C99 起)

double      acos( double arg );

(2)

long double acosl( long double arg );

(3)(C99 起)

定义于头文件 <tgmath.h>

#define acos( arg )

(4)(C99 起)

1-3) 计算 arg 的弧(反)余弦主值。

4) 泛型宏:若参数拥有 long double 类型,则调用 acosl 。否则,若参数拥有整数类型或 double 类型,则调用 acos 。否则调用 acosf 。若参数为复数,则宏调用对应的复数函数( cacosf 、 cacos 、 cacosl )。

参数

arg-浮点值

返回值

若不出现错误,则返回 arg 于范围 [0 ; π] 中的弧(反)余弦( arccos(arg) )。

若出现定义域错误,则返回实现定义值(受支持平台上为 NaN )。

若出现下溢所致的值域错误,则返回(舍入后的)正确结果。

错误处理

报告 math_errhandling 中指定的错误。

arg 在范围 [-1.0; 1.0] 外则出现定义域错误。

若实现支持 IEEE 浮点算术( IEC 60559 ),则

  • 若参数为 +1 ,则返回值 +0
  • 若 |arg| > 1 ,则返回定义域错误并返回 NaN 。
  • 若参数为 NaN ,则返回 NaN 。

调用示例

#include <iostream>
#include <cstdlib>
#include <typeinfo>
#include <cinttypes>
#include <cmath>
#include <math.h>
#include <tgmath.h>int main()
{//1-3) 计算 arg 的弧(反)余弦主值。const float fNumber = std::acos(-1);std::cout << "typeid(float).name():   " << typeid(float).name() << std::endl;for (int i = 1; i <= 10; i += 1){std::cout << "std::acos(" << fNumber / i << "):   "<< std::acos(fNumber / i) << std::endl;}std::cout << std::endl;for (int i = 1; i <= 10; i += 1){std::cout << "std::acos(" << - fNumber / i << "):   "<< std::acos(- fNumber / i) << std::endl;}std::cout << std::endl;const double dNumber = std::acos(-1);for (int i = 1; i <= 10; i += 1){std::cout << "std::acos(" << dNumber / i << "):   "<< std::acos(dNumber / i) << std::endl;}std::cout << std::endl;for (int i = 1; i <= 10; i += 1){std::cout << "std::acos(" << - dNumber / i << "):   "<< std::acos(- dNumber / i) << std::endl;}std::cout << std::endl;const long double ldNumber = std::acos(-1);std::cout << "typeid(long double).name():   " << typeid(long double).name() << std::endl;for (int i = 1; i <= 10; i += 1){std::cout << "std::acos(" << ldNumber / i << "):   "<< std::acos(ldNumber / i) << std::endl;}std::cout << std::endl;for (int i = 1; i <= 10; i += 1){std::cout << "std::acos(" << - ldNumber / i << "):   "<< std::acos(- ldNumber / i) << std::endl;}std::cout << std::endl;return 0;
}

输出

typeid(float).name():   f
std::asin(3.14159):   nan
std::asin(1.5708):   nan
std::asin(1.0472):   nan
std::asin(0.785398):   0.903339
std::asin(0.628319):   0.67939
std::asin(0.523599):   0.55107
std::asin(0.448799):   0.465421
std::asin(0.392699):   0.403565
std::asin(0.349066):   0.356574
std::asin(0.314159):   0.319571std::asin(-3.14159):   nan
std::asin(-1.5708):   nan
std::asin(-1.0472):   nan
std::asin(-0.785398):   -0.903339
std::asin(-0.628319):   -0.67939
std::asin(-0.523599):   -0.55107
std::asin(-0.448799):   -0.465421
std::asin(-0.392699):   -0.403565
std::asin(-0.349066):   -0.356574
std::asin(-0.314159):   -0.319571std::asin(3.14159):   nan
std::asin(1.5708):   nan
std::asin(1.0472):   nan
std::asin(0.785398):   0.903339
std::asin(0.628319):   0.67939
std::asin(0.523599):   0.55107
std::asin(0.448799):   0.465421
std::asin(0.392699):   0.403565
std::asin(0.349066):   0.356574
std::asin(0.314159):   0.319571std::asin(-3.14159):   nan
std::asin(-1.5708):   nan
std::asin(-1.0472):   nan
std::asin(-0.785398):   -0.903339
std::asin(-0.628319):   -0.67939
std::asin(-0.523599):   -0.55107
std::asin(-0.448799):   -0.465421
std::asin(-0.392699):   -0.403565
std::asin(-0.349066):   -0.356574
std::asin(-0.314159):   -0.319571typeid(long double).name():   e
std::asin(3.14159):   nan
std::asin(1.5708):   nan
std::asin(1.0472):   nan
std::asin(0.785398):   0.903339
std::asin(0.628319):   0.67939
std::asin(0.523599):   0.55107
std::asin(0.448799):   0.465421
std::asin(0.392699):   0.403565
std::asin(0.349066):   0.356574
std::asin(0.314159):   0.319571std::asin(-3.14159):   nan
std::asin(-1.5708):   nan
std::asin(-1.0472):   nan
std::asin(-0.785398):   -0.903339
std::asin(-0.628319):   -0.67939
std::asin(-0.523599):   -0.55107
std::asin(-0.448799):   -0.465421
std::asin(-0.392699):   -0.403565
std::asin(-0.349066):   -0.356574
std::asin(-0.314159):   -0.319571

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com