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

Subversion Repositories openrisc

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

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

Line No. Rev Author Line
1 747 jeremybenn
// Copyright 2009 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
// This table might overflow 127-bit exponent representations.
8
// In that case, truncate it after 1.0e38.
9
var pow10tab [70]float64
10
 
11
// Pow10 returns 10**e, the base-10 exponential of e.
12
//
13
// Special cases are:
14
//      Pow10(e) = +Inf for e > 309
15
//      Pow10(e) = 0 for e < -324
16
func Pow10(e int) float64 {
17
        if e <= -325 {
18
                return 0
19
        } else if e > 309 {
20
                return Inf(1)
21
        }
22
 
23
        if e < 0 {
24
                return 1 / Pow10(-e)
25
        }
26
        if e < len(pow10tab) {
27
                return pow10tab[e]
28
        }
29
        m := e / 2
30
        return Pow10(m) * Pow10(e-m)
31
}
32
 
33
func init() {
34
        pow10tab[0] = 1.0e0
35
        pow10tab[1] = 1.0e1
36
        for i := 2; i < len(pow10tab); i++ {
37
                m := i / 2
38
                pow10tab[i] = pow10tab[m] * pow10tab[i-m]
39
        }
40
}

powered by: WebSVN 2.1.0

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