当前位置: 首页 > news >正文

C++11标准模板(STL)- 常用数学函数 - 计算e的给定幂 (ex)(std::exp, std::expf, std::expl)

常用数学函数

计算e的给定幂 (ex)

std::exp, 
std::expf, 
std::expl

定义于头文件 <math.h>

float       expf( float arg );

(1)(C99 起)

double      exp( double arg );

(2)

long double expl( long double arg );

(3)(C99 起)

定义于头文件 <tgmath.h>

#define exp( arg )

(4)(C99 起)

1-3) 计算 e (欧拉数, 2.7182818 )的 arg 次幂。

4) 泛型宏:若 arg 拥有 long double 类型,则调用 expl 。否则,若 arg 拥有整数类型或 double 类型,则调用 exp 。否则调用 expf 。若 arg 为复数或虚数,则宏调用对应的复数函数( cexpf 、 cexp 、 cexpl )。

参数

arg-浮点值

返回值

若不出现错误,则返回 arg 的底 e 指数( earg
)。

若出现上溢所致的值域错误,则返回 +HUGE_VAL+HUGE_VALF+HUGE_VALL

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

错误处理

报告 math_errhandling 中指定的错误。

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

  • 若参数为 ±0 ,则返回 1
  • 若参数为 -∞ ,则返回 +0
  • 若参数为 +∞ ,则返回 +∞
  • 若参数为 NaN ,则返回 NaN

注意

对于 IEEE 兼容的 double 类型,若 709.8 < arg 则保证上溢,而若 arg < -708.4 则保证下溢。

调用示例

#include <iostream>
#include <cstdlib>
#include <typeinfo>
#include <cinttypes>
#include <cmath>int main()
{//计算浮点值 arg 的绝对值。const float fNumber = 0.1314;std::cout << "typeid(float).name():   " << typeid(float).name() << std::endl;for (int i = 0; i < 18; i += 3){std::cout << "std::exp(" << fNumber + i << "):   "<< std::exp(fNumber + i) << std::endl;}std::cout << std::endl;for (int i = 0; i < 18; i += 3){std::cout << "std::exp(" << -fNumber - i << "):   "<< std::exp(-fNumber - i) << std::endl;}std::cout << std::endl;const double dNumber = 0.00001314;std::cout << "typeid(double).name():   " << typeid(double).name() << std::endl;for (int i = 0; i < 18; i += 3){std::cout << "std::exp(" << dNumber + i << "):   "<< std::exp(dNumber + i) << std::endl;}std::cout << std::endl;for (int i = 0; i < 18; i += 3){std::cout << "std::exp(" << -dNumber - i << "):   "<< std::exp(-dNumber - i) << std::endl;}std::cout << std::endl;return 0;
}

输出

typeid(float).name():   f
std::exp(0.1314):   1.14042
std::exp(3.1314):   22.906
std::exp(6.1314):   460.08
std::exp(9.1314):   9240.95
std::exp(12.1314):   185609
std::exp(15.1314):   3.72807e+006std::exp(-0.1314):   0.876867
std::exp(-3.1314):   0.0436566
std::exp(-6.1314):   0.00217354
std::exp(-9.1314):   0.000108214
std::exp(-12.1314):   5.38766e-006
std::exp(-15.1314):   2.68236e-007typeid(double).name():   d
std::exp(1.314e-005):   1.00001
std::exp(3.00001):   20.0858
std::exp(6.00001):   403.434
std::exp(9.00001):   8103.19
std::exp(12):   162757
std::exp(15):   3.26906e+006std::exp(-1.314e-005):   0.999987
std::exp(-3.00001):   0.0497864
std::exp(-6.00001):   0.00247872
std::exp(-9.00001):   0.000123408
std::exp(-12):   6.14413e-006
std::exp(-15):   3.05898e-007

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【Oracle】ORA-02292: integrity constraint
  • Qt clicked()、clicked(bool)、toggled(bool)信号的区别和联系
  • 基于C语言的基数排序算法
  • 如何安装1Panel面板并架设一个静态网站
  • 【ChatGPT】提示词助力高效文献处理、公文撰写、会议纪要与视频总结
  • 深度学习——基础知识
  • Android carrier_list.textpb 和apns-conf.xml 配置文件参考
  • 数据结构--第六章图
  • Redis 缓存雪崩、缓存穿透、缓存击穿详解
  • 2024年中国研究生数学建模竞赛C题——解题思路
  • 【已解决】Linux ubuntu 20.04 docker 不需要sudo权限
  • 机器视觉OpenCV
  • 【系统架构设计师】专题:特定领域软件架构 DSSA(详细知识点及历年真题)
  • ER 图 Entity-Relationship (ER) diagram 101 电子商城 数据库设计
  • Cisco 基础网络汇总
  • C++11: atomic 头文件
  • ECS应用管理最佳实践
  • JavaScript 一些 DOM 的知识点
  • java第三方包学习之lombok
  • Java多线程(4):使用线程池执行定时任务
  • java取消线程实例
  • Next.js之基础概念(二)
  • php中curl和soap方式请求服务超时问题
  • Quartz实现数据同步 | 从0开始构建SpringCloud微服务(3)
  • socket.io+express实现聊天室的思考(三)
  • 简单易用的leetcode开发测试工具(npm)
  • 那些被忽略的 JavaScript 数组方法细节
  • 如何学习JavaEE,项目又该如何做?
  • 如何用Ubuntu和Xen来设置Kubernetes?
  • 软件开发学习的5大技巧,你知道吗?
  • 数据仓库的几种建模方法
  • 我看到的前端
  • 一道面试题引发的“血案”
  • 与 ConTeXt MkIV 官方文档的接驳
  • Play Store发现SimBad恶意软件,1.5亿Android用户成受害者 ...
  • # 20155222 2016-2017-2 《Java程序设计》第5周学习总结
  • #使用清华镜像源 安装/更新 指定版本tensorflow
  • $con= MySQL有关填空题_2015年计算机二级考试《MySQL》提高练习题(10)
  • (10)STL算法之搜索(二) 二分查找
  • (附源码)ssm航空客运订票系统 毕业设计 141612
  • (过滤器)Filter和(监听器)listener
  • (剑指Offer)面试题34:丑数
  • (六)什么是Vite——热更新时vite、webpack做了什么
  • (三)Hyperledger Fabric 1.1安装部署-chaincode测试
  • (转)shell调试方法
  • (转)Unity3DUnity3D在android下调试
  • .net core webapi Startup 注入ConfigurePrimaryHttpMessageHandler
  • .NET Core 中的路径问题
  • .NET Entity FrameWork 总结 ,在项目中用处个人感觉不大。适合初级用用,不涉及到与数据库通信。
  • .NET MVC 验证码
  • .NET WebClient 类下载部分文件会错误?可能是解压缩的锅
  • .Net 执行Linux下多行shell命令方法
  • .NET 中的轻量级线程安全
  • .net 逐行读取大文本文件_如何使用 Java 灵活读取 Excel 内容 ?
  • .NET中使用Redis (二)