1 /* rint replacement
2 
3   Copyright (C) 2002,2007 Free Software Foundation, Inc.
4 
5   This file is part of Gforth.
6 
7   Gforth is free software; you can redistribute it and/or
8   modify it under the terms of the GNU General Public License
9   as published by the Free Software Foundation, either version 3
10   of the License, or (at your option) any later version.
11 
12   This program is distributed in the hope that it will be useful,
13   but WITHOUT ANY WARRANTY; without even the implied warranty of
14   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15   GNU General Public License for more details.
16 
17   You should have received a copy of the GNU General Public License
18   along with this program; if not, see http://www.gnu.org/licenses/.
19 */
20 
21 #ifdef i386
22 #define X (1024.*1024.*1024.*1024.*1024.*1024.*16.)
23 #else /* !defined(386) */
24 #define X (1024.*1024.*1024.*1024.*1024.*8.)
25 #endif /* !defined(386) */
rint(double r)26 double rint(double r)
27 {
28   if (r<0.0)
29     return (r+X)-X;
30   else
31     return (r-X)+X;
32 }
33 
34