⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rint.c

📁 VXWORKS源代码
💻 C
字号:
/* rint.c - round-to-integer routine *//* Copyright 1992 Wind River Systems, Inc. *//*modification history--------------------01a,30jul92,smb  documentation.*//*DESCRIPTION * algorithm for rint(x) in pseudo-pascal form ... * * real rint(x): real x; *      ... delivers integer nearest x in direction of prevailing rounding *      ... mode * const        L = (last consecutive integer)/2 *        = 2**55; for VAX D *        = 2**52; for IEEE 754 Double * real s,t; * begin *      if x != x then return x;                ... NaN *      if |x| >= L then return x;              ... already an integer *      s := copysign(L,x); *      t := x + s;                             ... = (x+s) rounded to integer *      return t - s * end; * * Note: Inexact will be signaled if x is not an integer, as is *      customary for IEEE 754.  No other signal can be emitted.SEE ALSO: American National Standard X3.159-1989*/#include "vxWorks.h"#include "math.h"#include "stddef.h"#include "errno.h"#include "private/mathP.h"#if defined(vax)||defined(tahoe)#ifdef vax#define _0x(A,B)        0x/**/A/**/B#else   /* vax */#define _0x(A,B)        0x/**/B/**/A#endif  /* vax */static long Lx[] = {_0x(0000,5c00),_0x(0000,0000)};     /* 2**55 */#define L *(double *) Lx#else   /* defined(vax)||defined(tahoe) */static double L = 4503599627370496.0E0;         /* 2**52 */#endif  /* defined(vax)||defined(tahoe) *//********************************************************************************     * rint -  needed for sparc math support * * RETURNS: */doublerint(x)double x;{        double s,t,one = 1.0,copysign();#if !defined(vax)&&!defined(tahoe)        if (x != x)                             /* NaN */                return (x);#endif  /* !defined(vax)&&!defined(tahoe) */        if (copysign(x,one) >= L)               /* already an integer */            return (x);        s = copysign(L,x);        t = x + s;                              /* x+s rounded to integer */        return (t - s);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -