[BACK]Return to s_roundf.c CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / lib / libm / src

Annotation of src/lib/libm/src/s_roundf.c, Revision 1.2

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

CVSweb <webmaster@jp.NetBSD.org>