在头文件中定义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) polarhypot(NAN,INFINITY) = infhypot(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 ++文档 |

PHP hypot,hypot - [ C语言中文开发手册 ] - 在线原生手册 - php中文网相关推荐

  1. php atan2,atan2l - [ C语言中文开发手册 ] - 在线原生手册 - php中文网

    在头文件中定义float       atan2f( float y, float x );(1)(since C99) double      atan2( double y, double x ) ...

  2. php atan2,atan2f - [ C语言中文开发手册 ] - 在线原生手册 - php中文网

    在头文件中定义float       atan2f( float y, float x );(1)(since C99) double      atan2( double y, double x ) ...

  3. cbrt c语音_isgraph - [ C语言中文开发手册 ] - 在线原生手册 - php中文网

    在头文件中定义int isgraph(int ch); 检查给定字符是否具有图形表示形式,即它是数字(0123456789),大写字母(ABCDEFGHIJKLMNOPQRSTUVWXYZ),小写字母 ...

  4. c 语言memmove,memmove - [ C语言中文开发手册 ] - 在线原生手册 - php中文网

    在头文件中定义void * memmove(void * dest,const void * src,size_t count);(1) errno_t memmove_s(void * dest,r ...

  5. php中的lc_time,LC_TIME - [ C语言中文开发手册 ] - 在线原生手册 - php中文网

    在头文件中定义#define LC_ALL / *实现定义* / #define LC_COLLATE / *实现定义* / #define LC_CTYPE / *实现定义* / #define L ...

  6. c语言 strncat,strncat - [ C语言中文开发手册 ] - 在线原生手册 - php中文网

    在头文件中定义(1) char * strncat(char * dest,const char * src,size_t count);(直到C99) char * strncat(char * r ...

  7. c语言fsetpos是什么,fsetpos - [ C语言中文开发手册 ] - 在线原生手册 - php中文网

    在头文件中定义int fsetpos(FILE * stream,const fpos_t * pos); stream根据指向的值设置文件流的文件位置指示符和多字节解析状态(如果有)pos. 除了建 ...

  8. c语言中mw shl code,cacoshl - [ C语言中文开发手册 ] - 在线原生手册 - php中文网

    在头文件中定义float complex       cacoshf( float complex z );(1)(since C99) double complex      cacosh( dou ...

  9. php vprintf,vprintf - [ C语言中文开发手册 ] - 在线原生手册 - php中文网

    格式-指向以空字符结尾的字符串的指针,指定如何解释数据.格式字符串由普通的多字节字符(%除外)组成,它们被原样复制到输出流和转换规范中.每个转换规范具有以下格式:介绍%字符(可选)一个或多个标志,用于 ...

最新文章

  1. 赠票 | 互联网大厂的数据治理与资产管理实战 | DAMS 2020
  2. R语言-时间序列-arima模型-forecast、tseries包
  3. AccountManagment
  4. php ?redis,PHP使用Redis存储Session
  5. Post请求如何取消异步
  6. 终于,我也到了和 Eclipse 说再见的时候,难说再见
  7. 0830通用问题解决
  8. VC++ 使用CreateProcess创建新进程
  9. python安装及配置
  10. PKD-Bert:基于多层网络的Bert知识蒸馏
  11. List 与 Map的常用方法
  12. windows驱动开发技术详解 VC6与DDK搭配使用的设置
  13. 巧妙实现 Form 表单认证跨站点、跨服务器的单点登录(Single Sign On)
  14. scrapy技术进阶-URL路径依赖
  15. php读取移动硬盘数据,什么是移动硬盘
  16. 荣耀 android 11 rom,华为荣耀畅玩4/4X CM11 七版通刷
  17. python画美图_Python爬虫下手,就得从高清美图开始!
  18. 微擎公众号js支付util.pay()手动与自动引入
  19. 【HTML基础-1】HTML标签简介及常用标签
  20. 使用树莓派搭建家用 NAS

热门文章

  1. 批发进销存管理软件,商品分类管理,对商品分类批量价格管理,商品分类导入导出的操作
  2. Windows Server - AD域 副域控
  3. matlab绘图笔记
  4. Linux 系统设置 : hwclock 命令详解
  5. 在线客服系统|物流行业解决方案——助力企业构建物流行业新一体化模式
  6. Android蓝牙搜索连接通信
  7. 【征集反馈】工作中让你印象最深刻、最想吐槽的一件事是什么?
  8. 43套高质量PPT模板—创意风格主题
  9. DetachedCriteria查询和子查询
  10. 使用nvs管理node版本