OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [libgo/] [go/] [math/] [modf.go] - Rev 867

Go to most recent revision | Compare with Previous | Blame | View Log

// Copyright 2009 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

package math

// Modf returns integer and fractional floating-point numbers
// that sum to f.  Both values have the same sign as f.
//
// Special cases are:
//      Modf(±Inf) = ±Inf, NaN
//      Modf(NaN) = NaN, NaN
func Modf(f float64) (int float64, frac float64) {
        return modf(f)
}

func modf(f float64) (int float64, frac float64) {
        if f < 1 {
                if f < 0 {
                        int, frac = Modf(-f)
                        return -int, -frac
                }
                return 0, f
        }

        x := Float64bits(f)
        e := uint(x>>shift)&mask - bias

        // Keep the top 12+e bits, the integer part; clear the rest.
        if e < 64-12 {
                x &^= 1<<(64-12-e) - 1
        }
        int = Float64frombits(x)
        frac = f - int
        return
}

Go to most recent revision | Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.