diff options
author | Rob Pike <r@golang.org> | 2009-11-18 15:24:24 -0800 |
---|---|---|
committer | Rob Pike <r@golang.org> | 2009-11-18 15:24:24 -0800 |
commit | 6adbf55a9662f436d168ca59fd230e49da5ba794 (patch) | |
tree | a54bad89b8447ed713d40539471ce8d1b9f811ff /test/bench | |
parent | 4efd9b892c94e5279ef3e89c8ddef4c2b2fd9227 (diff) | |
download | go-6adbf55a9662f436d168ca59fd230e49da5ba794.tar.gz |
remove bytes.Copy
replace all calls with calls to copy
use copy in regexp and bytes.Buffer
R=rsc
CC=golang-dev
http://codereview.appspot.com/157073
Diffstat (limited to 'test/bench')
-rw-r--r-- | test/bench/fasta.go | 89 | ||||
-rw-r--r-- | test/bench/reverse-complement.go | 51 |
2 files changed, 69 insertions, 71 deletions
diff --git a/test/bench/fasta.go b/test/bench/fasta.go index 52a55447e..8855d6bb5 100644 --- a/test/bench/fasta.go +++ b/test/bench/fasta.go @@ -39,7 +39,6 @@ package main import ( "bufio"; - "bytes"; "flag"; "os"; "strings"; @@ -55,7 +54,7 @@ func min(a, b int) int { if a < b { return a } - return b + return b; } type AminoAcid struct { @@ -63,23 +62,23 @@ type AminoAcid struct { c byte; } -var lastrandom uint32 = 42 +var lastrandom uint32 = 42 // Random number between 0.0 and 1.0 func myrandom() float { const ( - IM = 139968; - IA = 3877; - IC = 29573; + IM = 139968; + IA = 3877; + IC = 29573; ) - lastrandom = (lastrandom * IA + IC) % IM; + lastrandom = (lastrandom*IA + IC) % IM; // Integer to float conversions are faster if the integer is signed. return float(int32(lastrandom)) / IM; } func AccumulateProbabilities(genelist []AminoAcid) { for i := 1; i < len(genelist); i++ { - genelist[i].p += genelist[i-1].p; + genelist[i].p += genelist[i-1].p } } @@ -90,16 +89,16 @@ func AccumulateProbabilities(genelist []AminoAcid) { // It assumes that WIDTH <= len(s) + 1. func RepeatFasta(s []byte, count int) { pos := 0; - s2 := make([]byte, len(s) + WIDTH); - bytes.Copy(s2, s); - bytes.Copy(s2[len(s):len(s2)], s); + s2 := make([]byte, len(s)+WIDTH); + copy(s2, s); + copy(s2[len(s):len(s2)], s); for count > 0 { line := min(WIDTH, count); - out.Write(s2[pos:pos+line]); + out.Write(s2[pos : pos+line]); out.WriteByte('\n'); pos += line; if pos >= len(s) { - pos -= len(s); + pos -= len(s) } count -= line; } @@ -114,7 +113,7 @@ func RepeatFasta(s []byte, count int) { // This sequence is repeated count times. // Between each WIDTH consecutive characters, the function prints a newline. func RandomFasta(genelist []AminoAcid, count int) { - buf := make([]byte, WIDTH + 1); + buf := make([]byte, WIDTH+1); for count > 0 { line := min(WIDTH, count); for pos := 0; pos < line; pos++ { @@ -125,7 +124,7 @@ func RandomFasta(genelist []AminoAcid, count int) { buf[pos] = genelist[i].c; } buf[line] = '\n'; - out.Write(buf[0:line + 1]); + out.Write(buf[0 : line+1]); count -= line; } } @@ -136,29 +135,29 @@ func main() { flag.Parse(); - iub := []AminoAcid { - AminoAcid{ 0.27, 'a' }, - AminoAcid{ 0.12, 'c' }, - AminoAcid{ 0.12, 'g' }, - AminoAcid{ 0.27, 't' }, - AminoAcid{ 0.02, 'B' }, - AminoAcid{ 0.02, 'D' }, - AminoAcid{ 0.02, 'H' }, - AminoAcid{ 0.02, 'K' }, - AminoAcid{ 0.02, 'M' }, - AminoAcid{ 0.02, 'N' }, - AminoAcid{ 0.02, 'R' }, - AminoAcid{ 0.02, 'S' }, - AminoAcid{ 0.02, 'V' }, - AminoAcid{ 0.02, 'W' }, - AminoAcid{ 0.02, 'Y' } + iub := []AminoAcid{ + AminoAcid{0.27, 'a'}, + AminoAcid{0.12, 'c'}, + AminoAcid{0.12, 'g'}, + AminoAcid{0.27, 't'}, + AminoAcid{0.02, 'B'}, + AminoAcid{0.02, 'D'}, + AminoAcid{0.02, 'H'}, + AminoAcid{0.02, 'K'}, + AminoAcid{0.02, 'M'}, + AminoAcid{0.02, 'N'}, + AminoAcid{0.02, 'R'}, + AminoAcid{0.02, 'S'}, + AminoAcid{0.02, 'V'}, + AminoAcid{0.02, 'W'}, + AminoAcid{0.02, 'Y'}, }; - homosapiens := []AminoAcid { - AminoAcid{ 0.3029549426680, 'a' }, - AminoAcid{ 0.1979883004921, 'c' }, - AminoAcid{ 0.1975473066391, 'g' }, - AminoAcid{ 0.3015094502008, 't' } + homosapiens := []AminoAcid{ + AminoAcid{0.3029549426680, 'a'}, + AminoAcid{0.1979883004921, 'c'}, + AminoAcid{0.1975473066391, 'g'}, + AminoAcid{0.3015094502008, 't'}, }; AccumulateProbabilities(iub); @@ -166,17 +165,17 @@ func main() { alu := strings.Bytes( "GGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGG" - "GAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGA" - "CCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAAT" - "ACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCA" - "GCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGG" - "AGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCC" - "AGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAA"); + "GAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGA" + "CCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAAT" + "ACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCA" + "GCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGG" + "AGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCC" + "AGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAA"); out.WriteString(">ONE Homo sapiens alu\n"); - RepeatFasta(alu, 2 * *n); + RepeatFasta(alu, 2**n); out.WriteString(">TWO IUB ambiguity codes\n"); - RandomFasta(iub, 3 * *n); + RandomFasta(iub, 3**n); out.WriteString(">THREE Homo sapiens frequency\n"); - RandomFasta(homosapiens, 5 * *n); + RandomFasta(homosapiens, 5**n); } diff --git a/test/bench/reverse-complement.go b/test/bench/reverse-complement.go index 28feed094..a7ea8afbd 100644 --- a/test/bench/reverse-complement.go +++ b/test/bench/reverse-complement.go @@ -37,39 +37,38 @@ package main import ( "bufio"; - "bytes"; "os"; ) -const lineSize = 60 +const lineSize = 60 -var complement = [256]uint8 { - 'A': 'T', 'a': 'T', - 'C': 'G', 'c': 'G', - 'G': 'C', 'g': 'C', - 'T': 'A', 't': 'A', - 'U': 'A', 'u': 'A', - 'M': 'K', 'm': 'K', - 'R': 'Y', 'r': 'Y', - 'W': 'W', 'w': 'W', - 'S': 'S', 's': 'S', - 'Y': 'R', 'y': 'R', - 'K': 'M', 'k': 'M', - 'V': 'B', 'v': 'B', - 'H': 'D', 'h': 'D', - 'D': 'H', 'd': 'H', - 'B': 'V', 'b': 'V', - 'N': 'N', 'n': 'N', +var complement = [256]uint8{ + 'A': 'T', 'a': 'T', + 'C': 'G', 'c': 'G', + 'G': 'C', 'g': 'C', + 'T': 'A', 't': 'A', + 'U': 'A', 'u': 'A', + 'M': 'K', 'm': 'K', + 'R': 'Y', 'r': 'Y', + 'W': 'W', 'w': 'W', + 'S': 'S', 's': 'S', + 'Y': 'R', 'y': 'R', + 'K': 'M', 'k': 'M', + 'V': 'B', 'v': 'B', + 'H': 'D', 'h': 'D', + 'D': 'H', 'd': 'H', + 'B': 'V', 'b': 'V', + 'N': 'N', 'n': 'N', } var in *bufio.Reader func reverseComplement(in []byte) []byte { - outLen := len(in) + (len(in) + lineSize -1)/lineSize; + outLen := len(in) + (len(in)+lineSize-1)/lineSize; out := make([]byte, outLen); j := 0; k := 0; - for i := len(in)-1; i >= 0; i-- { + for i := len(in) - 1; i >= 0; i-- { if k == lineSize { out[j] = '\n'; j++; @@ -106,15 +105,15 @@ func main() { top = 0; } os.Stdout.Write(line); - continue + continue; } - line = line[0:len(line)-1]; // drop newline + line = line[0 : len(line)-1]; // drop newline if top+len(line) > len(buf) { - nbuf := make([]byte, 2*len(buf) + 1024*(100+len(line))); - bytes.Copy(nbuf, buf[0:top]); + nbuf := make([]byte, 2*len(buf)+1024*(100+len(line))); + copy(nbuf, buf[0:top]); buf = nbuf; } - bytes.Copy(buf[top:len(buf)], line); + copy(buf[top:len(buf)], line); top += len(line); } output(buf[0:top]); |