gonzui


Format: Advanced Search

t2ex/bsd_source/lib/libc/src_bsd/math/s_roundf.cbare sourcepermlink (0.00 seconds)

Search this content:

    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: }