fdim, fdimf, fdiml

来自cppreference.com
< c‎ | numeric‎ | math
 
 
 
常用数学函数
函数
基本运算
(C99)
(C99)
fdim
(C99)
(C99)(C99)(C99)(C23)
最大/最小运算
(C99)
(C99)
指数函数
(C23)
(C99)
(C99)
(C23)
(C23)

(C99)
(C99)(C23)
(C23)
(C23)
幂函数
(C99)
(C23)
(C23)

(C99)
(C23)
(C23)
三角及双曲函数
(C23)
(C23)
(C23)
(C23)
(C99)
(C99)
(C99)
浮点数的临近整数
(C99)(C99)(C99)
(C23)(C23)(C23)(C23)
浮点数操作
(C99)(C99)
(C99)(C23)
(C99)
窄化运算
(C23)
(C23)
(C23)
(C23)
(C23)
(C23)
量与量指数函数
十进制重编码函数
全序与载荷函数
分类
误差及伽马函数
(C99)
(C99)
(C99)
(C99)
类型
宏常量
特殊浮点数值
(C99)(C23)
参数与返回值
错误处理
快速运算指示
 
在标头 <math.h> 定义
float       fdimf(float x, float y );
(1) (C99 起)
double      fdim(double x, double y );
(2) (C99 起)
longdouble fdiml(longdouble x, longdouble y );
(3) (C99 起)
在标头 <tgmath.h> 定义
#define fdim( x, y )
(4) (C99 起)
1-3) 返回 xy 间的正差,即若 x>y 则返回 x-y,否则(若 x≤y)返回 +0。
4) 泛型宏:若任何实参拥有 longdouble 类型,则调用 fdiml。否则,若任何实参拥有整数类型或 double 类型,则调用 fdim。否则调用 fdimf

目录

[编辑]参数

x, y - 浮点数

[编辑]返回值

若成功,则返回 xy 间的正差。

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

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

[编辑]错误处理

报告 math_errhandling 中指定的错误

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

  • 若任一实参为 NaN,则返回 NaN。

[编辑]注意

等价于 fmax(x-y, 0),除了 NaN 处理要求。

[编辑]示例

#include <errno.h>#include <fenv.h>#include <math.h>#include <stdio.h>// #pragma STDC FENV_ACCESS ON   int main(void){printf("fdim(4, 1) = %f, fdim(1, 4)=%f\n", fdim(4,1), fdim(1,4));printf("fdim(4,-1) = %f, fdim(1,-4)=%f\n", fdim(4,-1), fdim(1,-4));// 错误处理errno=0;feclearexcept(FE_ALL_EXCEPT);printf("fdim(1e308, -1e308) = %f\n", fdim(1e308, -1e308));if(errno==ERANGE)perror(" errno == ERANGE");if(fetestexcept(FE_OVERFLOW))puts(" FE_OVERFLOW raised");}

可能的输出:

fdim(4, 1) = 3.000000, fdim(1, 4)=0.000000 fdim(4,-1) = 5.000000, fdim(1,-4)=5.000000 fdim(1e308, -1e308) = inf errno == ERANGE: Numerical result out of range FE_OVERFLOW raised

[编辑]引用

  • C23 标准(ISO/IEC 9899:2024):
  • 7.12.12.1 The fdim functions (第 TBD 页)
  • 7.25 Type-generic math <tgmath.h> (第 TBD 页)
  • F.10.9.1 The fdim functions (第 TBD 页)
  • C17 标准(ISO/IEC 9899:2018):
  • 7.12.12.1 The fdim functions (第 187-188 页)
  • 7.25 Type-generic math <tgmath.h> (第 272-273 页)
  • F.10.9.1 The fdim functions (第 386 页)
  • C11 标准(ISO/IEC 9899:2011):
  • 7.12.12.1 The fdim functions (第 257 页)
  • 7.25 Type-generic math <tgmath.h> (第 373-375 页)
  • F.10.9.1 The fdim functions (第 530 页)
  • C99 标准(ISO/IEC 9899:1999):
  • 7.12.12.1 The fdim functions (第 238 页)
  • 7.22 Type-generic math <tgmath.h> (第 335-337 页)
  • F.9.9.1 The fdim functions (第 466 页)

[编辑]参阅

计算整数的绝对值(|x|
(函数)[编辑]
(C99)(C99)(C99)
确定两个浮点数的较大者
(函数)[编辑]
fdim 的 C++ 文档
close