Overview
Comment: | Minor opmitization to fibonacci's decoding. Changed plaindiff to show line numbers starting from 1. |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
9f5054e305b33a4e99e54809a6a31dd1 |
User & Date: | spaskalev on 2014-12-30 15:01:38 |
Other Links: | manifest | tags |
Context
2014-12-30
| ||
22:59 | Dropped the Nth method and return a populated slice by fibonacci.New(size). Changed all access to direct indexing. CC at 100% check-in: ffb139e305 user: spaskalev tags: trunk | |
15:01 | Minor opmitization to fibonacci's decoding. Changed plaindiff to show line numbers starting from 1. check-in: 9f5054e305 user: spaskalev tags: trunk | |
14:03 | Added encoding/fibonacci (cc: 100%) check-in: 7a1684ea05 user: spaskalev tags: trunk | |
Changes
Modified src/0dev.org/commands/plaindiff/main.go from [b2d6e402f0] to [98fd531468].
︙ | ︙ | |||
29 30 31 32 33 34 35 | gen := source(result) out := bufio.NewWriter(os.Stdout) for have, added, mark := gen(); have; have, added, mark = gen() { var from []line = hd.line(!added) fmt.Fprintln(out) for i := mark.From; i < mark.Length; i++ { | | | 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | gen := source(result) out := bufio.NewWriter(os.Stdout) for have, added, mark := gen(); have; have, added, mark = gen() { var from []line = hd.line(!added) fmt.Fprintln(out) for i := mark.From; i < mark.Length; i++ { fmt.Fprint(out, i+1) // Line numbers start from 1 for most people :) if added { fmt.Fprint(out, " > ") } else { fmt.Fprint(out, " < ") } fmt.Fprintln(out, from[i].text) } |
︙ | ︙ |
Modified src/0dev.org/encoding/fibonacci/fib.go from [bab2f5c2b7] to [36b31aa589].
︙ | ︙ | |||
53 54 55 56 57 58 59 60 61 | return } // Returns an integer from a fibonacci code as specified in the package doc. func (f Numbers) Decode(value uint64) (result uint64) { i := 1 for (value & 3) != 3 { if (value & 1) == 1 { result += f.Nth(i) | > | > > > > > > | 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 | return } // Returns an integer from a fibonacci code as specified in the package doc. func (f Numbers) Decode(value uint64) (result uint64) { i := 1 for (value & 3) != 3 { // Add the fibonacci number for the current bit if it is raised if (value & 1) == 1 { result += f.Nth(i) // We know that the next bit cannot be raised by Zeckendorf's theorem value >>= 2 i += 2 continue } value >>= 1 i++ } result += f.Nth(i) - 1 return } |