hypot

在头文件中定义

float hypotf(float x,float y);

(1)

(自C99以来)

double hypot(double x,double y);

(2)

(自C99以来)

long double hypot(long double x,long double y);

(3)

(自C99以来)

在头文件中定义

#define hypot(x,y)

(4)

(自C99以来)

1-3)计算x和y平方和的平方根,而不会在计算的中间阶段发生不适当的上溢或下溢。

4)类型 - 通用宏:如果任何参数的类型为long double,则调用函数的长双重版本。 否则,如果任何参数具有整数类型或具有double类型,则调用该函数的双重版本。 否则,函数的float版本被调用。

由这个函数计算出的值是直角三角形的斜边长度,边长x和y,或点(x,y)与原点(0,0)的距离,或者 一个复数x + iy。

参数

X

-

浮点值

y

-

浮点值

返回值

如果没有错误发生,直角三角形的斜边√x2

+y2

,被返回。

如果发生由溢出引起的范围错误,则返回+ HUGE_VAL,+ HUGE_VALF或+ HUGE_VALL。

如果发生下溢引起的范围错误,则返回正确的结果(舍入后)。

错误处理

按照math_errhandling中的指定报告错误。

如果实现支持IEEE浮点运算(IEC 60559),

hypot(x,y),hypot(y,x)和hypot(x,-y)是等价的

如果其中一个参数为±0,则下限等同于使用非零参数调用的晶圆厂

如果其中一个参数是±∞,那么即使另一个参数是NaN,也会返回+∞

否则,如果任何参数是NaN,则返回NaN

注意

实现通常保证精度小于1 ulp(最后一个单位):GNU,BSD,Open64。

hypot(x, y)相当于cabs(x + I*y)。

POSIX指定只有当两个参数都是低于正常值且正确的结果也是低于正常值时才会发生下溢(这禁止了较为简单的实现)。

hypot(INFINITY,NAN)返回+∞,但sqrt(INFINITY * INFINITY + NAN * NAN)返回NaN。

#include

#include

#include

#include

#include

#pragma STDC FENV_ACCESS ON

int main(void)

{

// typical usage

printf("(1,1) cartesian is (%f,%f) polar\n", hypot(1,1), atan2(1,1));

// special values

printf("hypot(NAN,INFINITY) = %f\n", hypot(NAN,INFINITY));

// error handling

errno = 0; feclearexcept(FE_ALL_EXCEPT);

printf("hypot(DBL_MAX,DBL_MAX) = %f\n", hypot(DBL_MAX,DBL_MAX));

if(errno == ERANGE) perror(" errno == ERANGE");

if(fetestexcept(FE_OVERFLOW)) puts(" FE_OVERFLOW raised");

}

可能的输出:

(1,1) cartesian is (1.414214,0.785398) polar

hypot(NAN,INFINITY) = inf

hypot(DBL_MAX,DBL_MAX) = inf

errno == ERANGE: Numerical result out of range

FE_OVERFLOW raised

参考

C11标准(ISO / IEC 9899:2011): 7.12.7.3 低级函数(p:248)

7.25 类型通用数学(p:373-375)

F.10.4.3 hypot 函数(p:524)

C99标准(ISO / IEC 9899:1999): 7.12.7.3低级函数(p:229)

7.22类型通用数学(p:335-337)

F.9.4.3 hypot 函数(p:461)

扩展内容

powpowfpowl(C99)(C99)

计算一个给定的功率(xy)(函数)

sqrtsqrtfsqrtl(C99)(C99)

计算平方根(√x)(函数)

cbrtcbrtfcbrtl(C99)(C99)(C99)

计算立方根(3√x)(函数)

cabscabsfcabsl(C99)(C99)(C99)

计算复数(函数)的大小

| 关于hypot的C ++文档 |

c语言hypot函数,hypot_数值 | Numerics_C_参考手册_非常教程相关推荐

  1. c语言erfc函数,erfc_数值 | Numerics_C_参考手册_非常教程

    erfc 在头文件中定义 ​ ​ float erfcf(float arg); (1) (自C99以来) 双erfc(double arg); (2) (自C99以来) long double er ...

  2. c语言sinf函数,sinf_数值 | Numerics_C_参考手册_非常教程

    sinf 在头文件中定义 ​ ​ float sinf(float arg); (1) (自C99以来) double sin(double arg); (2) ​ long double sinl( ...

  3. c语言isnan,isnan_数值 | Numerics_C_参考手册_非常教程

    isnan 在头文件中定义 ​ ​ #define isnan(arg) /* implementation defined */ ​ (since C99) 确定给定的浮点数arg是否为非数字(Na ...

  4. c语言strrchr函数,strrchr_字符串 | Strings_C_参考手册_非常教程

    strrchr 在头文件中定义 ​ ​ char * strrchr(const char * str,int ch); ​ ​ 通过 str 指向的以空字符结尾的字节字符串(每个字符解释为无符号字符 ...

  5. c语言strtol函数用法,strtol_字符串 | Strings_C_参考手册_非常教程

    strtol 在头文件中定义 ​ ​ long strtol(const char * str,char ** str_end,int base); ​ (直到C99) long strtol(con ...

  6. java语言实现strtod方法,strtod_字符串 | Strings_C_参考手册_非常教程

    strtod 在头文件中定义 ​ ​ float strtof(const char * restrict str,char ** restrict str_end); ​ (自C99以来) doub ...

  7. python 数学符号读法大全_math_数字与数学 | Numeric Mathematical_Python_参考手册_非常教程...

    math 该模块始终可用.它提供对由C标准定义的数学函数的访问. 这些功能不能用于复数; cmath如果您需要支持复杂数字,请使用模块中相同名称的功能.支持复数的功能和不支持的功能之间的区别是由于大多 ...

  8. gmtime php 时间戳,gmtime_s_日期与时间 | Date and time_C_参考手册_非常教程

    gmtime_s 在头文件中定义 ​ ​ struct tm * gmtime(const time_t * time); (1) ​ struct tm * gmtime_s(const time_ ...

  9. iview mysql_国际化_组件_iView UI_参考手册_非常教程

    国际化 iView 的所有组件文案默认使用的是中文,通过设置可以使用其它语言. 在 Webpack 中使用 完整引入 iView import Vue from 'vue'; import iView ...

最新文章

  1. 全球 android手机排行 2013,全球Android手机性能排行 三星Note 3夺魁
  2. 基于python的人脸识别技术_用Python写个简单但强大的人脸识别系统
  3. TCP源端口选择算法与列维模型
  4. 1042: 筛法求素数
  5. js之函数设置默认值传参
  6. 进入环境_大学新生,进入新环境该怎样和舍友、同学相处
  7. 在路上---学习篇(一)Python 数据结构和算法 (3) --快速排序
  8. perlretut - Perl regular expressions tutorial ---- 中文版
  9. stanford sentiment treebank 数据集
  10. 广东电信 5.31 因「运维误操作」导致断网:流量突降 1.3 TB
  11. 机械设计基础课程设计【1】
  12. win10打开计算机黑屏怎么办,win10系统重启黑屏怎么办
  13. 多维数据库概述之一---多维数据库的选择
  14. [转载]工作5年的回顾,即成长历程
  15. 11.23Bom完以及pc端端offset
  16. 构建一个代号为1的聊天应用程序4
  17. Flyway 报错:Detected applied migration not resolved locally:2和执行脚本错误
  18. Android音视频学习系列(五) — 掌握音频基础知识并使用AudioTrack、OpenSL ES渲染PCM数据
  19. 基于matlab的齿轮,基于matlab的故障齿轮分析.doc
  20. 市场调研报告-全球与中国教育互动白板市场现状及未来发展趋势

热门文章

  1. 最新YGBOOK小说站源码/全自动采集+已修BUG
  2. Dell戴尔笔记本电脑G15 5520原装出厂Windows11系统恢复原厂OEM系统
  3. 一些很漂亮的字符图片
  4. 分享一个强大无痛的英语学习网站
  5. python爬虫爬取公众号_Python selenium爬取微信公众号文章代码详解
  6. netty 引用计数对象(reference counted objects)
  7. 设置centos笔记本合盖不休眠
  8. [知乎]如何做到像使用 LaTeX 那样“优雅”地使用 Word?
  9. jpg转bmp(使用libjpeg)
  10. 让机器人懂感情:表情符与深度学习