src/share/native/java/lang/Float.c
author ohair
Tue May 25 14:40:38 2010 -0700 (3 years ago)
changeset 354 ffa98eed5766
parent 92d585507a41b
permissions -rw-r--r--
6943119: Rebrand source copyright notices
Reviewed-by: darcy, weijun
        1 /*
        2  * Copyright (c) 1997, 2005, Oracle and/or its affiliates. All rights reserved.
        3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
        4  *
        5  * This code is free software; you can redistribute it and/or modify it
        6  * under the terms of the GNU General Public License version 2 only, as
        7  * published by the Free Software Foundation.  Oracle designates this
        8  * particular file as subject to the "Classpath" exception as provided
        9  * by Oracle in the LICENSE file that accompanied this code.
       10  *
       11  * This code is distributed in the hope that it will be useful, but WITHOUT
       12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
       13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
       14  * version 2 for more details (a copy is included in the LICENSE file that
       15  * accompanied this code).
       16  *
       17  * You should have received a copy of the GNU General Public License version
       18  * 2 along with this work; if not, write to the Free Software Foundation,
       19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
       20  *
       21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
       22  * or visit www.oracle.com if you need additional information or have any
       23  * questions.
       24  */
       25 
       26 #include "jni.h"
       27 #include "jvm.h"
       28 
       29 #include "java_lang_Float.h"
       30 
       31 /*
       32  * Find the float corresponding to a given bit pattern
       33  */
       34 JNIEXPORT jfloat JNICALL
       35 Java_java_lang_Float_intBitsToFloat(JNIEnv *env, jclass unused, jint v)
       36 {
       37     union {
       38         int i;
       39         float f;
       40     } u;
       41     u.i = (long)v;
       42     return (jfloat)u.f;
       43 }
       44 
       45 /*
       46  * Find the bit pattern corresponding to a given float, NOT collapsing NaNs
       47  */
       48 JNIEXPORT jint JNICALL
       49 Java_java_lang_Float_floatToRawIntBits(JNIEnv *env, jclass unused, jfloat v)
       50 {
       51     union {
       52         int i;
       53         float f;
       54     } u;
       55     u.f = (float)v;
       56     return (jint)u.i;
       57 }