PHP hypot,hypot - [ C语言中文开发手册 ] - 在线原生手册 - php中文网
在头文件中定义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中文网相关推荐
- php atan2,atan2l - [ C语言中文开发手册 ] - 在线原生手册 - php中文网
在头文件中定义float atan2f( float y, float x );(1)(since C99) double atan2( double y, double x ) ...
- php atan2,atan2f - [ C语言中文开发手册 ] - 在线原生手册 - php中文网
在头文件中定义float atan2f( float y, float x );(1)(since C99) double atan2( double y, double x ) ...
- cbrt c语音_isgraph - [ C语言中文开发手册 ] - 在线原生手册 - php中文网
在头文件中定义int isgraph(int ch); 检查给定字符是否具有图形表示形式,即它是数字(0123456789),大写字母(ABCDEFGHIJKLMNOPQRSTUVWXYZ),小写字母 ...
- c 语言memmove,memmove - [ C语言中文开发手册 ] - 在线原生手册 - php中文网
在头文件中定义void * memmove(void * dest,const void * src,size_t count);(1) errno_t memmove_s(void * dest,r ...
- php中的lc_time,LC_TIME - [ C语言中文开发手册 ] - 在线原生手册 - php中文网
在头文件中定义#define LC_ALL / *实现定义* / #define LC_COLLATE / *实现定义* / #define LC_CTYPE / *实现定义* / #define L ...
- c语言 strncat,strncat - [ C语言中文开发手册 ] - 在线原生手册 - php中文网
在头文件中定义(1) char * strncat(char * dest,const char * src,size_t count);(直到C99) char * strncat(char * r ...
- c语言fsetpos是什么,fsetpos - [ C语言中文开发手册 ] - 在线原生手册 - php中文网
在头文件中定义int fsetpos(FILE * stream,const fpos_t * pos); stream根据指向的值设置文件流的文件位置指示符和多字节解析状态(如果有)pos. 除了建 ...
- c语言中mw shl code,cacoshl - [ C语言中文开发手册 ] - 在线原生手册 - php中文网
在头文件中定义float complex cacoshf( float complex z );(1)(since C99) double complex cacosh( dou ...
- php vprintf,vprintf - [ C语言中文开发手册 ] - 在线原生手册 - php中文网
格式-指向以空字符结尾的字符串的指针,指定如何解释数据.格式字符串由普通的多字节字符(%除外)组成,它们被原样复制到输出流和转换规范中.每个转换规范具有以下格式:介绍%字符(可选)一个或多个标志,用于 ...
最新文章
- 赠票 | 互联网大厂的数据治理与资产管理实战 | DAMS 2020
- R语言-时间序列-arima模型-forecast、tseries包
- AccountManagment
- php ?redis,PHP使用Redis存储Session
- Post请求如何取消异步
- 终于,我也到了和 Eclipse 说再见的时候,难说再见
- 0830通用问题解决
- VC++ 使用CreateProcess创建新进程
- python安装及配置
- PKD-Bert:基于多层网络的Bert知识蒸馏
- List 与 Map的常用方法
- windows驱动开发技术详解 VC6与DDK搭配使用的设置
- 巧妙实现 Form 表单认证跨站点、跨服务器的单点登录(Single Sign On)
- scrapy技术进阶-URL路径依赖
- php读取移动硬盘数据,什么是移动硬盘
- 荣耀 android 11 rom,华为荣耀畅玩4/4X CM11 七版通刷
- python画美图_Python爬虫下手,就得从高清美图开始!
- 微擎公众号js支付util.pay()手动与自动引入
- 【HTML基础-1】HTML标签简介及常用标签
- 使用树莓派搭建家用 NAS