PageRenderTime 21ms CodeModel.GetById 8ms app.highlight 9ms RepoModel.GetById 2ms app.codeStats 0ms

/build/pgo/js-input/string-fasta.html

http://github.com/zpao/v8monkey
HTML | 135 lines | 89 code | 22 blank | 24 comment | 0 complexity | 71c0f8cb532aada91ff8e79d74ed158d MD5 | raw file
  1<!DOCTYPE html>
  2<head>
  3<!--
  4 Copyright (C) 2007 Apple Inc.  All rights reserved.
  5
  6 Redistribution and use in source and binary forms, with or without
  7 modification, are permitted provided that the following conditions
  8 are met:
  9 1. Redistributions of source code must retain the above copyright
 10    notice, this list of conditions and the following disclaimer.
 11 2. Redistributions in binary form must reproduce the above copyright
 12    notice, this list of conditions and the following disclaimer in the
 13    documentation and/or other materials provided with the distribution.
 14
 15 THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
 16 EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 17 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
 18 PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR
 19 CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 20 EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
 21 PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
 22 PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
 23 OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 24 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 25 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
 26-->
 27
 28<title>SunSpider string-fasta</title>
 29
 30</head>
 31
 32<body>
 33<h3>string-fasta</h3>
 34<div id="console">
 35</div>
 36
 37<script>
 38
 39var _sunSpiderStartDate = new Date();
 40
 41// The Great Computer Language Shootout
 42//  http://shootout.alioth.debian.org
 43//
 44//  Contributed by Ian Osgood
 45
 46var last = 42, A = 3877, C = 29573, M = 139968;
 47
 48function rand(max) {
 49  last = (last * A + C) % M;
 50  return max * last / M;
 51}
 52
 53var ALU =
 54  "GGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGG" +
 55  "GAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGA" +
 56  "CCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAAT" +
 57  "ACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCA" +
 58  "GCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGG" +
 59  "AGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCC" +
 60  "AGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAA";
 61
 62var IUB = {
 63  a:0.27, c:0.12, g:0.12, t:0.27,
 64  B:0.02, D:0.02, H:0.02, K:0.02,
 65  M:0.02, N:0.02, R:0.02, S:0.02,
 66  V:0.02, W:0.02, Y:0.02
 67}
 68
 69var HomoSap = {
 70  a: 0.3029549426680,
 71  c: 0.1979883004921,
 72  g: 0.1975473066391,
 73  t: 0.3015094502008
 74}
 75
 76function makeCumulative(table) {
 77  var last = null;
 78  for (var c in table) {
 79    if (last) table[c] += table[last];
 80    last = c;
 81  }
 82}
 83
 84function fastaRepeat(n, seq) {
 85  var seqi = 0, lenOut = 60;
 86  while (n>0) {
 87    if (n<lenOut) lenOut = n;
 88    if (seqi + lenOut < seq.length) {
 89      ret = seq.substring(seqi, seqi+lenOut);
 90      seqi += lenOut;
 91    } else {
 92      var s = seq.substring(seqi);
 93      seqi = lenOut - s.length;
 94      ret = s + seq.substring(0, seqi);
 95    }
 96    n -= lenOut;
 97  }
 98}
 99
100function fastaRandom(n, table) {
101  var line = new Array(60);
102  makeCumulative(table);
103  while (n>0) {
104    if (n<line.length) line = new Array(n);
105    for (var i=0; i<line.length; i++) {
106      var r = rand(1);
107      for (var c in table) {
108        if (r < table[c]) {
109          line[i] = c;
110          break;
111        }
112      }
113    }
114    ret = line.join('');
115    n -= line.length;
116  }
117}
118
119var ret;
120
121var count = 7;
122ret = fastaRepeat(2*count*100000, ALU);
123ret = fastaRandom(3*count*1000, IUB);
124ret = fastaRandom(5*count*1000, HomoSap);
125
126
127
128var _sunSpiderInterval = new Date() - _sunSpiderStartDate;
129
130document.getElementById("console").innerHTML = _sunSpiderInterval;
131</script>
132
133
134</body>
135</html>