📄 f_llrint.c
字号:
/* * ==================================================== * x87 FP implementation contributed to Newlib by * Dave Korn, November 2007. This file is placed in the * public domain. Permission to use, copy, modify, and * distribute this software is freely granted. * ==================================================== */#ifdef __GNUC__#if !defined(_SOFT_FLOAT)#include <math.h>/*FUNCTION<<llrint>>, <<llrintf>>, <<llrintl>>---round and convert to long long integerINDEX llrintINDEX llrintfINDEX llrintlANSI_SYNOPSIS #include <math.h> long long int llrint(double x); long long int llrintf(float x); long long int llrintl(long double x);TRAD_SYNOPSIS ANSI-only.DESCRIPTIONThe <<llrint>>, <<llrintf>> and <<llrintl>> functions round <[x]> to the nearest integer value,according to the current rounding direction. If the rounded value is outside therange of the return type, the numeric result is unspecified. A range error may occur if the magnitude of <[x]> is too large.RETURNSThese functions return the rounded integer value of <[x]>.<<llrint>>, <<llrintf>> and <<llrintl>> return the result as a long long integer.PORTABILITY<<llrint>>, <<llrintf>> and <<llrintl>> are ANSI.<<llrint>>, <<llrintf>> and <<llrintl>> are only available on i386 platforms whenhardware floating point support is available and when compiling with GCC.*//* * Fast math version of llrint(x) * Return x rounded to integral value according to the prevailing * rounding mode. * Method: * Using inline x87 asms. * Exception: * Governed by x87 FPCR. */long long int _f_llrint (double x){ long long int _result; asm ("fistpll %0" : "=m" (_result) : "t" (x) : "st"); return _result;}/* For now, we only have the fast math version. */long long int llrint (double x) { return _f_llrint(x);}#endif /* !_SOFT_FLOAT */#endif /* __GNUC__ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -