Last change
on this file since 822 was 822, checked in by yakumo.izuru, 22 months ago |
Prefer immortal.run over runit and rc.d, use vendored modules
for convenience.
Signed-off-by: Izuru Yakumo <yakumo.izuru@…>
|
File size:
612 bytes
|
Line | |
---|
1 | package humanize
|
---|
2 |
|
---|
3 | import (
|
---|
4 | "math/big"
|
---|
5 | )
|
---|
6 |
|
---|
7 | // order of magnitude (to a max order)
|
---|
8 | func oomm(n, b *big.Int, maxmag int) (float64, int) {
|
---|
9 | mag := 0
|
---|
10 | m := &big.Int{}
|
---|
11 | for n.Cmp(b) >= 0 {
|
---|
12 | n.DivMod(n, b, m)
|
---|
13 | mag++
|
---|
14 | if mag == maxmag && maxmag >= 0 {
|
---|
15 | break
|
---|
16 | }
|
---|
17 | }
|
---|
18 | return float64(n.Int64()) + (float64(m.Int64()) / float64(b.Int64())), mag
|
---|
19 | }
|
---|
20 |
|
---|
21 | // total order of magnitude
|
---|
22 | // (same as above, but with no upper limit)
|
---|
23 | func oom(n, b *big.Int) (float64, int) {
|
---|
24 | mag := 0
|
---|
25 | m := &big.Int{}
|
---|
26 | for n.Cmp(b) >= 0 {
|
---|
27 | n.DivMod(n, b, m)
|
---|
28 | mag++
|
---|
29 | }
|
---|
30 | return float64(n.Int64()) + (float64(m.Int64()) / float64(b.Int64())), mag
|
---|
31 | }
|
---|
Note:
See
TracBrowser
for help on using the repository browser.