1/* 2 * floor, trunc, ceil 3 */ 4/* 5 * MIPS floating point support 6 * Copyright (C) 1994-2000 Algorithmics Ltd. 7 * http://www.algor.co.uk 8 * 9 * ######################################################################## 10 * 11 * This program is free software; you can distribute it and/or modify it 12 * under the terms of the GNU General Public License (Version 2) as 13 * published by the Free Software Foundation. 14 * 15 * This program is distributed in the hope it will be useful, but WITHOUT 16 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 17 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 18 * for more details. 19 * 20 * You should have received a copy of the GNU General Public License along 21 * with this program; if not, write to the Free Software Foundation, Inc., 22 * 59 Temple Place - Suite 330, Boston MA 02111-1307, USA. 23 * 24 * ######################################################################## 25 */ 26 27 28#include "ieee754.h" 29 30ieee754dp ieee754dp_floor(ieee754dp x) 31{ 32 ieee754dp i; 33 34 if (ieee754dp_lt(ieee754dp_modf(x, &i), ieee754dp_zero(0))) 35 return ieee754dp_sub(i, ieee754dp_one(0)); 36 else 37 return i; 38} 39 40ieee754dp ieee754dp_ceil(ieee754dp x) 41{ 42 ieee754dp i; 43 44 if (ieee754dp_gt(ieee754dp_modf(x, &i), ieee754dp_zero(0))) 45 return ieee754dp_add(i, ieee754dp_one(0)); 46 else 47 return i; 48} 49 50ieee754dp ieee754dp_trunc(ieee754dp x) 51{ 52 ieee754dp i; 53 54 (void) ieee754dp_modf(x, &i); 55 return i; 56} 57