t2ex/bsd_source/lib/libc/src_bsd/math/s_roundf.c | bare source | permlink (0.02 seconds) |
1: /* $OpenBSD: s_roundf.c,v 1.1 2006/07/12 07:26:08 brad Exp $ */ 2: 3: /*- 4: * Copyright (c) 2003, Steven G. Kargl 5: * All rights reserved. 6: * 7: * Redistribution and use in source and binary forms, with or without 8: * modification, are permitted provided that the following conditions 9: * are met: 10: * 1. Redistributions of source code must retain the above copyright 11: * notice unmodified, this list of conditions, and the following 12: * disclaimer. 13: * 2. Redistributions in binary form must reproduce the above copyright 14: * notice, this list of conditions and the following disclaimer in the 15: * documentation and/or other materials provided with the distribution. 16: * 17: * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 18: * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 19: * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 20: * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 21: * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 22: * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 23: * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 24: * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25: * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 26: * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27: */ 28: 29: #include "math.h" 30: #include "math_private.h" 31: 32: float 33: roundf(float x) 34: { 35: float t; 36: 37: if (isinff(x) || isnanf(x)) 38: return (x); 39: 40: if (x >= 0.0) { 41: t = floorf(x); 42: if (t - x <= -0.5) 43: t += 1.0; 44: return (t); 45: } else { 46: t = floorf(-x); 47: if (t + x <= -0.5) 48: t += 1.0; 49: return (-t); 50: } 51: }