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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [libgo/] [go/] [math/] [floor.go] - Blame information for rev 747

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 747 jeremybenn
// Copyright 2009-2010 The Go Authors. All rights reserved.
2
// Use of this source code is governed by a BSD-style
3
// license that can be found in the LICENSE file.
4
 
5
package math
6
 
7
// Floor returns the greatest integer value less than or equal to x.
8
//
9
// Special cases are:
10
//      Floor(±0) = ±0
11
//      Floor(±Inf) = ±Inf
12
//      Floor(NaN) = NaN
13
 
14
//extern floor
15
func libc_floor(float64) float64
16
 
17
func Floor(x float64) float64 {
18
        return libc_floor(x)
19
}
20
 
21
func floor(x float64) float64 {
22
        if x == 0 || IsNaN(x) || IsInf(x, 0) {
23
                return x
24
        }
25
        if x < 0 {
26
                d, fract := Modf(-x)
27
                if fract != 0.0 {
28
                        d = d + 1
29
                }
30
                return -d
31
        }
32
        d, _ := Modf(x)
33
        return d
34
}
35
 
36
// Ceil returns the least integer value greater than or equal to x.
37
//
38
// Special cases are:
39
//      Ceil(±0) = ±0
40
//      Ceil(±Inf) = ±Inf
41
//      Ceil(NaN) = NaN
42
 
43
//extern ceil
44
func libc_ceil(float64) float64
45
 
46
func Ceil(x float64) float64 {
47
        return libc_ceil(x)
48
}
49
 
50
func ceil(x float64) float64 {
51
        return -Floor(-x)
52
}
53
 
54
// Trunc returns the integer value of x.
55
//
56
// Special cases are:
57
//      Trunc(±0) = ±0
58
//      Trunc(±Inf) = ±Inf
59
//      Trunc(NaN) = NaN
60
 
61
func Trunc(x float64) float64 {
62
        return trunc(x)
63
}
64
 
65
func trunc(x float64) float64 {
66
        if x == 0 || IsNaN(x) || IsInf(x, 0) {
67
                return x
68
        }
69
        d, _ := Modf(x)
70
        return d
71
}

powered by: WebSVN 2.1.0

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