C++11标准模板(STL)- 常用数学函数 - 计算一个数的给定次幂 (xy)(std::pow, std::powf, std::powl)

news2024/9/28 15:33:50

常用数学函数

计算一个数的给定次幂 (xy)

std::pow, 
std::powf, 
std::powl

定义于头文件 <math.h>

float powf( float base, float exponent );

(1)(C99 起)

double pow( double base, double exponent );

(2)

long double powl( long double base, long double exponent );

(3)(C99 起)

定义于头文件 <tgmath.h>

#define pow( base, exponent )

(4)(C99 起)

1-3) 计算 baseexponent 次幂。

4) 泛型宏:若任何参数拥有 long double 类型,则调用 powl 。否则,若任何参数拥有整数类型或 double 类型,则调用 pow 。否则调用 powf 。若至少一个参数为复数或序数,则宏调用对应的复函数( cpowf 、 cpow 、 cpowl )。

参数

base-作为底的浮点值
exponent-作为指数的浮点值

返回值

若不出现错误,则返回 baseexponent 次幂( baseexponent
)。

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

若出现极点错误或上溢所致的值域错误,则返回 ±HUGE_VAL±HUGE_VALF±HUGE_VALL

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

错误处理

报告 math_errhandling 中指定的错误。

base 有限且为负,且 exponent 有限且为非整数,则出现定义域错误,并可能出现值域错误。

base 为零且 exponent 为零,则可能出现定义域错误。

base 为零且 exponent 为负,则可能出现定义域错误或极点错误。

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

  • pow(+0, exponent) ,其中 exponent 为负奇数,返回 +∞ 并引发 FE_DIVBYZERO
  • pow(-0, exponent) ,其中 exponent 为负奇数,返回 -∞ 并引发 FE_DIVBYZERO
  • pow(±0, exponent) ,其中 exponent 为有限负数,且为偶数或非整数,则返回 +∞ 并引发 FE_DIVBYZERO
  • pow(±0, -∞) 返回 +∞ 并可能引发 FE_DIVBYZERO (C2x 前)
  • pow(+0, exponent) ,其中 exponent 为正奇数,返回 +0
  • pow(-0, exponent) ,其中 exponent 为正奇数,返回 -0
  • pow(±0, exponent) ,其中 exponent 为正非整数或正偶数,返回 +0
  • pow(-1, ±∞) returns 1
  • pow(+1, exponent) 对于任何 exponent 返回 1 ,即使 exponentNaN
  • pow(base, ±0) 对于任何 base 返回 1 ,即使 baseNaN
  • pow(base, exponent) 返回 NaN 并引发 FE_INVALID ,若 base 为有限负数且 exponent 为有限非整数。
  • pow(base, -∞) 对任何 |base|<1 返回 +∞
  • pow(base, -∞) 对任何 |base|>1 返回 +0
  • pow(base, +∞) 对任何 |base|<1 返回 +0
  • pow(base, +∞) 对任何 |base|>1 返回 +∞
  • pow(-∞, exponent) 返回 -0 ,若 exponent 为负奇整数
  • pow(-∞, exponent) 返回 +0 ,若 exponent 为负非整数或负偶数
  • pow(-∞, exponent) 返回 -∞ ,若 exponent 为正奇整数
  • pow(-∞, exponent) 返回 +∞ ,若 exponent 为正非整数或正偶数
  • pow(+∞, exponent) 对任何 exponent 返回 +0
  • pow(+∞, exponent) 对任何 exponent 返回 +∞
  • 除了指定于上处,若任何参数为 NaN ,则返回 NaN

注意

尽管 pow 不能获得负数的开方根,也为 exponent 为 1/3 的常用情况提供了 cbrt 。

调用示例

#include <iostream>
#include <cstdlib>
#include <typeinfo>
#include <cinttypes>
#include <cmath>

int main()
{
    //1-3) 计算 base 的 exponent 次幂。
    const float fNumber = 0.1314;
    const float fExponent = 2;
    std::cout << "typeid(float).name():   " << typeid(float).name() << std::endl;
    for (int i = 0; i < 100; i += 10)
    {
        std::cout << "std::pow(" << fNumber + i << "," << fExponent << "):   "
                  << std::pow(fNumber + i, fExponent) << std::endl;
    }
    std::cout << std::endl;

    for (int i = 0; i < 100; i += 10)
    {
        std::cout << "std::pow(" << - fNumber + i << "," << fExponent << "):   "
                  << std::pow(- fNumber + i, fExponent) << std::endl;
    }
    std::cout << std::endl;

    const double dNumber = 0.01314;
    const double dExponent = 2.2;
    std::cout << "typeid(double).name():   " << typeid(double).name() << std::endl;
    for (int i = 0; i < 100; i += 10)
    {
        std::cout << "std::pow(" << dNumber + i << "," << dExponent << "):   "
                  << std::pow(dNumber + i, dExponent) << std::endl;
    }
    std::cout << std::endl;

    for (int i = 0; i < 100; i += 10)
    {
        std::cout << "std::pow(" << - dNumber + i << "," << dExponent << "):   "
                  << std::pow(- dNumber + i, dExponent) << std::endl;
    }
    std::cout << std::endl;

    const long double ldNumber = 0.1314;
    const long double ldExponent = 1.13;
    std::cout << "typeid(long double).name():   " << typeid(long double).name() << std::endl;
    for (int i = 0; i < 100; i += 10)
    {
        std::cout << "std::pow(" << ldNumber + i << "," << ldExponent << "):   "
                  << std::pow(ldNumber + i, ldExponent) << std::endl;
    }
    std::cout << std::endl;

    for (int i = 0; i < 100; i += 10)
    {
        std::cout << "std::pow(" << - ldNumber + i << "," << ldExponent << "):   "
                  << std::pow(- ldNumber + i, ldExponent) << std::endl;
    }
    std::cout << std::endl;

    return 0;
}

输出

typeid(float).name():   f
std::pow(0.1314,2):   0.017266
std::pow(10.1314,2):   102.645
std::pow(20.1314,2):   405.273
std::pow(30.1314,2):   907.901
std::pow(40.1314,2):   1610.53
std::pow(50.1314,2):   2513.16
std::pow(60.1314,2):   3615.79
std::pow(70.1314,2):   4918.41
std::pow(80.1314,2):   6421.04
std::pow(90.1314,2):   8123.67

std::pow(-0.1314,2):   0.017266
std::pow(9.8686,2):   97.3893
std::pow(19.8686,2):   394.761
std::pow(29.8686,2):   892.133
std::pow(39.8686,2):   1589.51
std::pow(49.8686,2):   2486.88
std::pow(59.8686,2):   3584.25
std::pow(69.8686,2):   4881.62
std::pow(79.8686,2):   6378.99
std::pow(89.8686,2):   8076.37

typeid(double).name():   d
std::pow(0.01314,2.2):   7.25955e-005
std::pow(10.0131,2.2):   158.948
std::pow(20.0131,2.2):   729.279
std::pow(30.0131,2.2):   1778.63
std::pow(40.0131,2.2):   3348.47
std::pow(50.0131,2.2):   5469.97
std::pow(60.0131,2.2):   8168.49
std::pow(70.0131,2.2):   11465.6
std::pow(80.0131,2.2):   15379.9
std::pow(90.0131,2.2):   19928.4

std::pow(-0.01314,2.2):   nan
std::pow(9.98686,2.2):   158.032
std::pow(19.9869,2.2):   727.174
std::pow(29.9869,2.2):   1775.2
std::pow(39.9869,2.2):   3343.63
std::pow(49.9869,2.2):   5463.65
std::pow(59.9869,2.2):   8160.63
std::pow(69.9869,2.2):   11456.1
std::pow(79.9869,2.2):   15368.8
std::pow(89.9869,2.2):   19915.6

typeid(long double).name():   e
std::pow(0.1314,1.13):   0.100928
std::pow(10.1314,1.13):   13.6901
std::pow(20.1314,1.13):   29.7425
std::pow(30.1314,1.13):   46.9129
std::pow(40.1314,1.13):   64.8541
std::pow(50.1314,1.13):   83.3919
std::pow(60.1314,1.13):   102.42
std::pow(70.1314,1.13):   121.866
std::pow(80.1314,1.13):   141.676
std::pow(90.1314,1.13):   161.812

std::pow(-0.1314,1.13):   nan
std::pow(9.8686,1.13):   13.2895
std::pow(19.8686,1.13):   29.3041
std::pow(29.8686,1.13):   46.4508
std::pow(39.8686,1.13):   64.3744
std::pow(49.8686,1.13):   82.8981
std::pow(59.8686,1.13):   101.914
std::pow(69.8686,1.13):   121.35
std::pow(79.8686,1.13):   141.151
std::pow(89.8686,1.13):   161.279

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2173936.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

8610 顺序查找

### 思路 1. **创建顺序表**&#xff1a;从输入中读取元素个数和元素值&#xff0c;构造顺序表。 2. **顺序查找**&#xff1a;在顺序表中依次查找关键字&#xff0c;找到则返回位置&#xff0c;否则返回0。 ### 伪代码 1. **创建顺序表**&#xff1a; - 动态分配存储空间。…

统信服务器操作系统【虚拟机CPU核数显示不对】处理方案

虚拟机CPU核数显示不对的问题现象、问题原因以及解决方案 文章目录 一、问题现象二、问题原因三、解决方案 一、问题现象 新建虚拟机安装过程分配 CPU 个数为 20 个&#xff0c;进入系统终端执行 lscpu 命令查看 CPU 只显示 1 个问题。 如图下所示&#xff1a; 二、问题原因 …

设备管理平台-支持快速开发

技术路线&#xff08;同时支持前后端分离 / 前后端一体&#xff0c;可用于网关或者服务器部署&#xff09; 前端&#xff1a;layui-v2.9.17 后端&#xff1a;Net8.0 使用组件 Swagger、Jwt、Freesql、MiniExcel、MemoryCache(存储登录用户信息&#xff0c;代替HttpContext.S…

维修服务品牌小程序渠道客获

维修服务可覆盖家电电器、家具、手机电脑等多个细分类目&#xff0c;本地同城也有着不少目标用户且该行业客户有着一定粘性&#xff0c;比如服务完成递上一张名片/电话留存则有着较高复购率。 线上各行业便捷化程度提升&#xff0c;服务进店/上门都需要快捷完成&#xff0c;包…

又一挣钱副业:AI生成影视解说,半个月涨粉变现3.5W+!

这两年大家都在感叹生活不易&#xff0c;然而我想说的是&#xff0c;机会还是有的&#xff0c;但问题不在于有没有&#xff0c;而在于你是否能够认准机会&#xff0c;然后抓住它。 接触过很多咨询项目的人&#xff0c;发现很多人依旧停留在传统思维中&#xff0c;认为副业就是…

IP 地址大数据分析如何进行网络优化?

一、大数据分析在网络优化中的作用 1.流量分析 大数据分析可以对网络中的流量进行实时监测和分析&#xff0c;了解网络的使用情况和流量趋势。通过对流量数据的分析&#xff0c;可以发现网络中的瓶颈和问题&#xff0c;为网络优化提供依据。 2.用户行为分析 大数据分析可以…

学习JavaScript

js引入方式 1. 内部脚本 内部脚本&#xff1a;将JS代码定义在HTML页面中 JavaScript代码必须位于<script></script>标签之间在HTML文档中,可以在任意地方,放置任意数量的<script>一般会把脚本置于<body>元素的底部,可改善显示速度 弹出一个警告窗口…

Redis集群的两种方式

1.Redis集群 1.1 搭建主从集群 单节点Redis的并发能力是有上限的&#xff0c;要进一步提高Redis的并发能力&#xff0c;就需要搭建主从集群&#xff0c;实现读写的分离。一般情况下&#xff0c;主节点负责写操作&#xff0c;从节点负责读操作。而从节点如何得知数据呢&#xff…

828华为云征文 | 解锁高效项目管理,Zentao在华为云Flexusx容器化部署与应用指南

前言 在当今快速迭代的商业环境中&#xff0c;高效且灵活的项目管理成为企业竞争力的关键。华为云Flexusx实例&#xff0c;以其灵活的vCPU内存配比、热变配功能及按需计费模式&#xff0c;为项目管理软件如Zentao的部署提供了理想平台。Flexusx实例采用按需计费的灵活定价模式&…

Mysql优化(常见优化)

插入数据 批量插入&#xff1a;因为一条条插入时&#xff0c;每一条数据的插入都要与数据库建立连接&#xff0c;并且关闭连接 手动提交事物&#xff1a; 主键顺序插入 大批量数据插入 如果一次性需要插入大批量数据&#xff0c;使用insert语句插入性能较低&#xff0c;此时可…

高等数学 第11讲 多元函数偏导数的计算与应用_复合函数求偏导_隐函数求偏导_条件极值

偏导数的计算 文章目录 偏导数的计算1.复合函数求偏导1.1 复合函数一阶偏导1.2 复合函数二阶偏导 2.隐函数求偏导2.1 直接法2.2 公式法(最重要&#xff09;2.3 全微分形式不变性(好用&#xff0c;但是可以不会) 3.多元函数的极值和最值3.1 无条件极值3.2 最值问题3.2.1 概要3.2…

HuggingChat macOS 版现已发布

Hugging Face 的开源聊天应用程序 Hugging Chat&#xff0c;现已推出适用于 macOS 的版本。 主要特点 Hugging Chat macOS 版本具有以下亮点: 强大的模型支持: 用户可以一键访问多个顶尖的开源大语言模型&#xff0c;包括 Qwen 2.5 72B、Command R、Phi 3.5、Mistral 12B 等等&…

6.微服务架构的一般架构模式概论

TOC Survive by day and develop by night. talk for import biz , show your perfect code,full busy&#xff0c;skip hardness,make a better result,wait for change,challenge Survive. happy for hardess to solve denpendies. 目录 概述 理解一下微服务架构 需求&…

4.浮点数二分【求数的平方根】

模板 public class BinarySearch {// 检查x是否满足某种性质public static boolean check(double x) {// 实现具体的检查逻辑return false; // 这里仅为示例&#xff0c;实际根据需求修改}public static double bsearch_3(double l, double r) {final double eps 1e-6; // …

SpringBoot集成Redis及SpringCache缓存管理

1.集成Redis 1.导入依赖 <!--spirngboot springdata对redis支持--> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId> </dependency> 2.配置信息 #数据源配置…

基于SSM的高校实验室管理系统【附源码】

基于SSM的高校实验室管理系统&#xff08;源码L文说明文档&#xff09; 目录 4.系统设计 4.1 设计原则 4.2 功能结构设计 4.3 数据库设计 4.3.1 数据库概念设计 4.3.2 数据库物理设计 5.系统实现 5.1 管理员功能实现 5.1.1 实验室管理 5.1.2 实验课…

心理咨询展示网站建设渠道拓展

心理问题长期以来都受到关注&#xff0c;每个城市里也都有相关服务商家&#xff0c;除了进店外&#xff0c;线上也可以开展咨询服务&#xff0c;对需求者来说需要找到靠谱的品牌&#xff0c;而商家也需要触达到更多客户获取转化。 网站是品牌线上工具&#xff0c;利于商家通过…

C++黑暗迷宫

目录 开头程序程序的流程图程序游玩的效果下一篇博客要说的东西 开头 大家好&#xff0c;我叫这是我58。 程序 #include <iostream> #include <cstdlib> #include <ctime> using namespace std; struct near {int i;int ia;int ix;int iy;int iwalk; }; v…

【无人机设计与控制】基于蚁群算法的三维无人机航迹规划+无人机路径规划

摘要 无人机航迹规划是无人机任务中至关重要的一部分&#xff0c;其目标是为无人机设计出一条安全、经济且高效的飞行路线&#xff0c;避开障碍物并达到指定目标。本文基于蚁群算法&#xff08;Ant Colony Optimization, ACO&#xff09;&#xff0c;提出了一种三维空间中的无…

k8s搭建双主的mysql8集群---无坑

《k8s搭建一主三从的mysql8集群---无坑-CSDN博客》通过搭建一主三从&#xff0c;我们能理解到主节点只有1个&#xff0c;那么承担增删改主要还是主节点&#xff0c;如果你在从节点上去操作增删改操作&#xff0c;数据不会同步到其他节点。本章我们将实现多主&#xff08;双主&a…