chrislo-sourceclassifier 0.2.0 → 0.2.1
Sign up to get free protection for your applications and to get access to all the features.
- data/Manifest +0 -312
- data/Rakefile +2 -2
- data/sourceclassifier.gemspec +6 -6
- metadata +4 -316
- data/sources/gcc/ackermann.gcc-2.gcc +0 -93
- data/sources/gcc/ackermann.gcc-3.gcc +0 -20
- data/sources/gcc/ary.gcc +0 -40
- data/sources/gcc/binarytrees.gcc +0 -136
- data/sources/gcc/binarytrees.gcc-2.gcc +0 -140
- data/sources/gcc/binarytrees.gcc-3.gcc +0 -134
- data/sources/gcc/chameneos.gcc +0 -117
- data/sources/gcc/chameneos.gcc-2.gcc +0 -134
- data/sources/gcc/chameneos.gcc-3.gcc +0 -120
- data/sources/gcc/chameneosredux.gcc +0 -306
- data/sources/gcc/echo.gcc +0 -144
- data/sources/gcc/except.gcc +0 -52
- data/sources/gcc/fannkuch.gcc +0 -105
- data/sources/gcc/fannkuch.gcc-2.gcc +0 -94
- data/sources/gcc/fasta.gcc +0 -158
- data/sources/gcc/fasta.gcc-2.gcc +0 -132
- data/sources/gcc/fasta.gcc-3.gcc +0 -145
- data/sources/gcc/fasta.gcc-4.gcc +0 -141
- data/sources/gcc/fibo.gcc +0 -20
- data/sources/gcc/harmonic.gcc +0 -22
- data/sources/gcc/hash.gcc +0 -31
- data/sources/gcc/hash2.gcc +0 -38
- data/sources/gcc/heapsort.gcc +0 -72
- data/sources/gcc/hello.gcc-2.gcc +0 -12
- data/sources/gcc/hello.gcc-3.gcc +0 -20
- data/sources/gcc/knucleotide.gcc +0 -173
- data/sources/gcc/knucleotide.gcc-2.gcc +0 -168
- data/sources/gcc/lists.gcc +0 -226
- data/sources/gcc/magicsquares.gcc +0 -378
- data/sources/gcc/mandelbrot.gcc +0 -84
- data/sources/gcc/mandelbrot.gcc-2.gcc +0 -63
- data/sources/gcc/mandelbrot.gcc-3.gcc +0 -91
- data/sources/gcc/mandelbrot.gcc-4.gcc +0 -78
- data/sources/gcc/matrix.gcc +0 -66
- data/sources/gcc/message.gcc-2.gcc +0 -72
- data/sources/gcc/message.gcc-3.gcc +0 -64
- data/sources/gcc/methcall.gcc +0 -89
- data/sources/gcc/moments.gcc +0 -120
- data/sources/gcc/nbody.gcc +0 -142
- data/sources/gcc/nbody.gcc-2.gcc +0 -143
- data/sources/gcc/nbody.gcc-3.gcc +0 -142
- data/sources/gcc/nestedloop.gcc +0 -25
- data/sources/gcc/nsieve.gcc +0 -35
- data/sources/gcc/nsievebits.gcc-2.gcc +0 -37
- data/sources/gcc/nsievebits.gcc-3.gcc +0 -53
- data/sources/gcc/objinst.gcc +0 -95
- data/sources/gcc/partialsums.gcc +0 -86
- data/sources/gcc/partialsums.gcc-3.gcc +0 -81
- data/sources/gcc/partialsums.gcc-4.gcc +0 -68
- data/sources/gcc/pidigits.gcc +0 -105
- data/sources/gcc/primes.gcc +0 -75
- data/sources/gcc/prodcons.gcc +0 -86
- data/sources/gcc/random.gcc +0 -29
- data/sources/gcc/raytracer.gcc +0 -125
- data/sources/gcc/raytracer.gcc-2.gcc +0 -181
- data/sources/gcc/recursive.gcc +0 -68
- data/sources/gcc/recursive.gcc-2.gcc +0 -55
- data/sources/gcc/regexdna.gcc-2.gcc +0 -126
- data/sources/gcc/regexmatch.gcc +0 -136
- data/sources/gcc/revcomp.gcc +0 -85
- data/sources/gcc/revcomp.gcc-2.gcc +0 -88
- data/sources/gcc/revcomp.gcc-4.gcc +0 -71
- data/sources/gcc/reversefile.gcc +0 -103
- data/sources/gcc/reversefile.gcc-2.gcc +0 -56
- data/sources/gcc/sieve.gcc +0 -34
- data/sources/gcc/spectralnorm.gcc +0 -54
- data/sources/gcc/spellcheck.gcc +0 -72
- data/sources/gcc/spellcheck.gcc-2.gcc +0 -61
- data/sources/gcc/strcat.gcc +0 -38
- data/sources/gcc/sumcol.gcc-2.gcc +0 -98
- data/sources/gcc/sumcol.gcc-3.gcc +0 -22
- data/sources/gcc/sumcol.gcc-4.gcc +0 -18
- data/sources/gcc/sumcol.gcc-5.gcc +0 -32
- data/sources/gcc/takfp.gcc +0 -23
- data/sources/gcc/tcp-stream.gcc +0 -122
- data/sources/gcc/tcpecho.gcc +0 -122
- data/sources/gcc/tcpecho.gcc-2.gcc +0 -136
- data/sources/gcc/tcprequest.gcc +0 -122
- data/sources/gcc/threadring.gcc +0 -73
- data/sources/gcc/wc.gcc +0 -52
- data/sources/gcc/wc.gcc-2.gcc +0 -40
- data/sources/gcc/wc.gcc-3.gcc +0 -46
- data/sources/gcc/wordfreq.gcc-2.gcc +0 -85
- data/sources/perl/ackermann.perl +0 -28
- data/sources/perl/ackermann.perl-2.perl +0 -25
- data/sources/perl/ackermann.perl-3.perl +0 -20
- data/sources/perl/ackermann.perl-4.perl +0 -18
- data/sources/perl/ary.perl +0 -25
- data/sources/perl/ary.perl-2.perl +0 -23
- data/sources/perl/binarytrees.perl +0 -66
- data/sources/perl/binarytrees.perl-2.perl +0 -71
- data/sources/perl/chameneos.perl +0 -67
- data/sources/perl/echo.perl +0 -81
- data/sources/perl/except.perl +0 -73
- data/sources/perl/fannkuch.perl +0 -44
- data/sources/perl/fannkuch.perl-2.perl +0 -38
- data/sources/perl/fasta.perl +0 -112
- data/sources/perl/fasta.perl-2.perl +0 -135
- data/sources/perl/fasta.perl-4.perl +0 -122
- data/sources/perl/fibo.perl +0 -15
- data/sources/perl/fibo.perl-2.perl +0 -0
- data/sources/perl/fibo.perl-3.perl +0 -0
- data/sources/perl/harmonic.perl +0 -7
- data/sources/perl/hash.perl +0 -23
- data/sources/perl/hash.perl-2.perl +0 -17
- data/sources/perl/hash.perl-3.perl +0 -24
- data/sources/perl/hash2.perl +0 -16
- data/sources/perl/heapsort.perl +0 -65
- data/sources/perl/heapsort.perl-2.perl +0 -0
- data/sources/perl/hello.perl +0 -5
- data/sources/perl/knucleotide.perl-2.perl +0 -30
- data/sources/perl/lists.perl +0 -48
- data/sources/perl/mandelbrot.perl-2.perl +0 -32
- data/sources/perl/matrix.perl +0 -59
- data/sources/perl/matrix.perl-2.perl +0 -0
- data/sources/perl/matrix.perl-3.perl +0 -0
- data/sources/perl/message.perl +0 -27
- data/sources/perl/methcall.perl +0 -66
- data/sources/perl/moments.perl +0 -44
- data/sources/perl/nbody.perl +0 -108
- data/sources/perl/nestedloop.perl +0 -28
- data/sources/perl/nsieve.perl-2.perl +0 -41
- data/sources/perl/nsieve.perl-4.perl +0 -43
- data/sources/perl/nsievebits.perl +0 -37
- data/sources/perl/objinst.perl +0 -73
- data/sources/perl/partialsums.perl-3.perl +0 -31
- data/sources/perl/pidigits.perl +0 -52
- data/sources/perl/pidigits.perl-2.perl +0 -47
- data/sources/perl/process.perl +0 -50
- data/sources/perl/prodcons.perl +0 -47
- data/sources/perl/random.perl-4.perl +0 -17
- data/sources/perl/recursive.perl-2.perl +0 -57
- data/sources/perl/regexdna.perl +0 -48
- data/sources/perl/regexdna.perl-2.perl +0 -43
- data/sources/perl/regexdna.perl-3.perl +0 -50
- data/sources/perl/regexdna.perl-4.perl +0 -49
- data/sources/perl/regexdna.perl-5.perl +0 -42
- data/sources/perl/regexdna.perl-6.perl +0 -43
- data/sources/perl/regexmatch.perl +0 -35
- data/sources/perl/revcomp.perl-2.perl +0 -34
- data/sources/perl/reversefile.perl +0 -8
- data/sources/perl/reversefile.perl-2.perl +0 -0
- data/sources/perl/reversefile.perl-3.perl +0 -0
- data/sources/perl/sieve.perl +0 -23
- data/sources/perl/spectralnorm.perl-2.perl +0 -54
- data/sources/perl/spellcheck.perl +0 -24
- data/sources/perl/strcat.perl +0 -13
- data/sources/perl/strcat.perl-2.perl +0 -0
- data/sources/perl/sumcol.perl +0 -8
- data/sources/perl/takfp.perl +0 -23
- data/sources/perl/takfp.perl-3.perl +0 -20
- data/sources/perl/tcpecho.perl +0 -61
- data/sources/perl/tcprequest.perl +0 -61
- data/sources/perl/tcpstream.perl +0 -61
- data/sources/perl/threadring.perl +0 -55
- data/sources/perl/threadring.perl-2.perl +0 -43
- data/sources/perl/wc.perl +0 -20
- data/sources/perl/wc.perl-2.perl +0 -14
- data/sources/perl/wordfreq.perl +0 -22
- data/sources/perl/wordfreq.perl-3.perl +0 -0
- data/sources/perl/wordfreq.perl3.perl +0 -0
- data/sources/python/ackermann.python +0 -21
- data/sources/python/ary.python +0 -19
- data/sources/python/binarytrees.python +0 -39
- data/sources/python/binarytrees.python-3.python +0 -44
- data/sources/python/chameneos.python-6.python +0 -73
- data/sources/python/chameneosredux.python +0 -126
- data/sources/python/chameneosredux.python-2.python +0 -122
- data/sources/python/dispatch.python +0 -176
- data/sources/python/dispatch.python-2.python +0 -136
- data/sources/python/echo.python +0 -64
- data/sources/python/except.python +0 -62
- data/sources/python/fannkuch.python +0 -50
- data/sources/python/fannkuch.python-2.python +0 -54
- data/sources/python/fasta.python-2.python +0 -79
- data/sources/python/fibo.python +0 -17
- data/sources/python/fibo.python-2.python +0 -0
- data/sources/python/fibo.python-3.python +0 -0
- data/sources/python/harmonic.python-2.python +0 -9
- data/sources/python/hash.python +0 -21
- data/sources/python/hash.python-2.python +0 -0
- data/sources/python/hash2.python +0 -30
- data/sources/python/heapsort.python-3.python +0 -66
- data/sources/python/hello.python +0 -5
- data/sources/python/implicitode.python +0 -231
- data/sources/python/knucleotide.python +0 -55
- data/sources/python/lists.python +0 -44
- data/sources/python/magicsquares.python +0 -145
- data/sources/python/mandelbrot.python +0 -44
- data/sources/python/mandelbrot.python-2.python +0 -35
- data/sources/python/mandelbrot.python-3.python +0 -46
- data/sources/python/matrix.python +0 -34
- data/sources/python/matrix.python-2.python +0 -23
- data/sources/python/message.python +0 -24
- data/sources/python/message.python-2.python +0 -20
- data/sources/python/message.python-3.python +0 -19
- data/sources/python/meteor.python +0 -210
- data/sources/python/meteor.python-2.python +0 -192
- data/sources/python/methcall.python +0 -51
- data/sources/python/moments.python +0 -65
- data/sources/python/nbody.python +0 -123
- data/sources/python/nbody.python-2.python +0 -120
- data/sources/python/nestedloop.python +0 -24
- data/sources/python/nsieve.python +0 -27
- data/sources/python/nsieve.python-2.python +0 -23
- data/sources/python/nsieve.python-4.python +0 -25
- data/sources/python/nsievebits.python +0 -27
- data/sources/python/nsievebits.python-2.python +0 -43
- data/sources/python/objinst.python +0 -53
- data/sources/python/partialsums.python +0 -37
- data/sources/python/partialsums.python-2.python +0 -35
- data/sources/python/partialsums.python-3.python +0 -48
- data/sources/python/pidigits.python +0 -38
- data/sources/python/pidigits.python-3.python +0 -63
- data/sources/python/pidigits.python-4.python +0 -24
- data/sources/python/process.python +0 -51
- data/sources/python/process.python-2.python +0 -133
- data/sources/python/prodcons.python +0 -51
- data/sources/python/prodcons.python-2.python +0 -0
- data/sources/python/random.python +0 -27
- data/sources/python/raytracer.python +0 -203
- data/sources/python/recursive.python +0 -35
- data/sources/python/regexdna.python +0 -39
- data/sources/python/regexdna.python-2.python +0 -34
- data/sources/python/regexmatch.python +0 -36
- data/sources/python/revcomp.python-3.python +0 -31
- data/sources/python/reversefile.python +0 -13
- data/sources/python/reversefile.python-2.python +0 -0
- data/sources/python/reversefile.python-3.python +0 -0
- data/sources/python/sieve.python +0 -50
- data/sources/python/spectralnorm.python-2.python +0 -36
- data/sources/python/spellcheck.python +0 -17
- data/sources/python/strcat.python +0 -35
- data/sources/python/strcat.python-2.python +0 -0
- data/sources/python/sumcol.python-2.python +0 -0
- data/sources/python/sumcol.python-3.python +0 -0
- data/sources/python/takfp.python +0 -19
- data/sources/python/tcpecho.python +0 -67
- data/sources/python/tcprequest.python +0 -67
- data/sources/python/tcpstream.python +0 -67
- data/sources/python/threadring.python +0 -47
- data/sources/python/threadring.python-2.python +0 -40
- data/sources/python/threadring.python-3.python +0 -34
- data/sources/python/wc.python-2.python +0 -19
- data/sources/python/wordfreq.python +0 -43
- data/sources/python/wordfreq.python-2.python +0 -0
- data/sources/python/wordfreq.python-3.python +0 -28
- data/sources/python/wordfreq.python-4.python +0 -38
- data/sources/python/wordfreq.python-5.python +0 -39
- data/sources/ruby/ackermann.ruby +0 -17
- data/sources/ruby/ackermann.ruby-5.ruby +0 -153
- data/sources/ruby/ary.ruby +0 -22
- data/sources/ruby/binarytrees.ruby-2.ruby +0 -55
- data/sources/ruby/chameneos.ruby-2.ruby +0 -71
- data/sources/ruby/dispatch.ruby +0 -114
- data/sources/ruby/echo.ruby +0 -41
- data/sources/ruby/except.ruby +0 -61
- data/sources/ruby/except.ruby-2.ruby +0 -61
- data/sources/ruby/fannkuch.ruby +0 -42
- data/sources/ruby/fasta.ruby +0 -81
- data/sources/ruby/fibo.ruby +0 -15
- data/sources/ruby/harmonic.ruby-2.ruby +0 -15
- data/sources/ruby/hash.ruby +0 -19
- data/sources/ruby/hash2.ruby +0 -23
- data/sources/ruby/heapsort.ruby +0 -55
- data/sources/ruby/hello.ruby +0 -6
- data/sources/ruby/knucleotide.ruby-2.ruby +0 -44
- data/sources/ruby/lists.ruby +0 -46
- data/sources/ruby/mandelbrot.ruby-3.ruby +0 -63
- data/sources/ruby/matrix.ruby +0 -40
- data/sources/ruby/matrix.ruby-2.ruby +0 -30
- data/sources/ruby/message.ruby +0 -29
- data/sources/ruby/message.ruby-2.ruby +0 -24
- data/sources/ruby/meteor.ruby +0 -386
- data/sources/ruby/meteor.ruby-2.ruby +0 -561
- data/sources/ruby/methcall.ruby +0 -58
- data/sources/ruby/methcall.ruby-2.ruby +0 -54
- data/sources/ruby/moments.ruby +0 -64
- data/sources/ruby/nbody.ruby-2.ruby +0 -145
- data/sources/ruby/nestedloop.ruby +0 -22
- data/sources/ruby/nsieve.ruby +0 -36
- data/sources/ruby/nsieve.ruby-2.ruby +0 -25
- data/sources/ruby/nsievebits.ruby-2.ruby +0 -42
- data/sources/ruby/objinst.ruby +0 -58
- data/sources/ruby/partialsums.ruby +0 -39
- data/sources/ruby/pidigits.ruby +0 -92
- data/sources/ruby/pidigits.ruby-2.ruby +0 -109
- data/sources/ruby/prodcons.ruby +0 -41
- data/sources/ruby/random.ruby +0 -17
- data/sources/ruby/recursive.ruby-2.ruby +0 -53
- data/sources/ruby/regexdna.ruby +0 -32
- data/sources/ruby/regexdna.ruby-2.ruby +0 -38
- data/sources/ruby/regexmatch.ruby +0 -33
- data/sources/ruby/revcomp.ruby +0 -28
- data/sources/ruby/reversefile.ruby +0 -7
- data/sources/ruby/sieve.ruby +0 -30
- data/sources/ruby/spectralnorm.ruby +0 -48
- data/sources/ruby/spellcheck.ruby +0 -18
- data/sources/ruby/spellcheck.ruby-2.ruby +0 -0
- data/sources/ruby/strcat.ruby +0 -12
- data/sources/ruby/strcat.ruby-2.ruby +0 -12
- data/sources/ruby/sumcol.ruby +0 -12
- data/sources/ruby/sumcol.ruby-2.ruby +0 -5
- data/sources/ruby/takfp.ruby +0 -15
- data/sources/ruby/tcpecho.ruby +0 -45
- data/sources/ruby/tcprequest.ruby +0 -45
- data/sources/ruby/tcpstream.ruby +0 -45
- data/sources/ruby/threadring.ruby +0 -61
- data/sources/ruby/threadring.ruby-2.ruby +0 -33
- data/sources/ruby/wc.ruby +0 -15
- data/sources/ruby/wordfreq.ruby +0 -17
- data/sources/ruby/wordfreq.ruby2.ruby +0 -0
@@ -1,62 +0,0 @@
|
|
1
|
-
#!/usr/bin/python
|
2
|
-
# http://www.bagley.org/~doug/shootout/
|
3
|
-
|
4
|
-
import sys
|
5
|
-
|
6
|
-
HI = 0
|
7
|
-
LO = 0
|
8
|
-
|
9
|
-
|
10
|
-
class Hi_exception:
|
11
|
-
def __init__(self, value):
|
12
|
-
self.value = value
|
13
|
-
def __str__(self):
|
14
|
-
return `self.value`
|
15
|
-
|
16
|
-
|
17
|
-
class Lo_exception:
|
18
|
-
def __init__(self, value):
|
19
|
-
self.value = value
|
20
|
-
def __str__(self):
|
21
|
-
return `self.value`
|
22
|
-
|
23
|
-
|
24
|
-
def some_function(num):
|
25
|
-
try:
|
26
|
-
hi_function(num)
|
27
|
-
except:
|
28
|
-
raise "We shouldn't get here (%s)" % sys.exc_info()[0]
|
29
|
-
|
30
|
-
|
31
|
-
def hi_function(num):
|
32
|
-
global HI
|
33
|
-
try:
|
34
|
-
lo_function(num)
|
35
|
-
except Hi_exception, ex:
|
36
|
-
HI += 1
|
37
|
-
#print 'Hi_exception occurred, value:', ex.value
|
38
|
-
|
39
|
-
|
40
|
-
def lo_function(num):
|
41
|
-
global LO
|
42
|
-
try:
|
43
|
-
blowup(num)
|
44
|
-
except Lo_exception, ex:
|
45
|
-
LO += 1
|
46
|
-
#print 'Lo_exception occurred, value:', ex.value
|
47
|
-
|
48
|
-
|
49
|
-
def blowup(num):
|
50
|
-
raise (((num & 1) and Lo_exception) or Hi_exception)(num)
|
51
|
-
|
52
|
-
def main():
|
53
|
-
global LO, HI
|
54
|
-
NUM = int(sys.argv[1])
|
55
|
-
if NUM < 1:
|
56
|
-
NUM = 1
|
57
|
-
for i in xrange(NUM-1,-1,-1):
|
58
|
-
some_function(i)
|
59
|
-
print "Exceptions: HI=%d / LO=%d" % (HI, LO)
|
60
|
-
|
61
|
-
|
62
|
-
main()
|
@@ -1,50 +0,0 @@
|
|
1
|
-
# The Computer Language Shootout
|
2
|
-
# http://shootout.alioth.debian.org/
|
3
|
-
#
|
4
|
-
# Contributed by Sokolov Yura
|
5
|
-
|
6
|
-
from sys import argv
|
7
|
-
def fannkuch(n):
|
8
|
-
count = range(1,n+1)
|
9
|
-
maxFlipsCount, m, r, check = 0, n-1, n, 0
|
10
|
-
|
11
|
-
perm1 = range(n)
|
12
|
-
perm = range(n)
|
13
|
-
perm1_ins = perm1.insert
|
14
|
-
perm1_pop = perm1.pop
|
15
|
-
while True:
|
16
|
-
if check < 30:
|
17
|
-
print "".join(`i+1` for i in perm1)
|
18
|
-
check += 1;
|
19
|
-
|
20
|
-
while r != 1:
|
21
|
-
count[r-1] = r
|
22
|
-
r -= 1
|
23
|
-
|
24
|
-
if perm1[0] != 0 and perm1[m] != m:
|
25
|
-
perm[:]=perm1
|
26
|
-
flipsCount = 0
|
27
|
-
k = perm[0]
|
28
|
-
while k:
|
29
|
-
perm[:k+1] = perm[k::-1]
|
30
|
-
flipsCount += 1
|
31
|
-
k = perm[0]
|
32
|
-
|
33
|
-
if flipsCount > maxFlipsCount:
|
34
|
-
maxFlipsCount = flipsCount
|
35
|
-
maxPerm = list(perm1)
|
36
|
-
|
37
|
-
while True:
|
38
|
-
if r == n: return maxFlipsCount
|
39
|
-
perm1_ins(r,perm1_pop(0))
|
40
|
-
count[r] -= 1
|
41
|
-
if count[r] > 0: break
|
42
|
-
r += 1
|
43
|
-
|
44
|
-
def main():
|
45
|
-
n = int(argv and argv[1] or 1)
|
46
|
-
print "Pfannkuchen(%d) = %d\n"%(n,fannkuch(n)),
|
47
|
-
|
48
|
-
if __name__=="__main__":
|
49
|
-
main()
|
50
|
-
|
@@ -1,54 +0,0 @@
|
|
1
|
-
# The Computer Language Benchmarks Game
|
2
|
-
# http://shootout.alioth.debian.org/
|
3
|
-
#
|
4
|
-
# contributed by Sokolov Yura
|
5
|
-
# modified by Tupteq
|
6
|
-
|
7
|
-
def fannkuch(n):
|
8
|
-
count = range(1, n+1)
|
9
|
-
max_flips = 0
|
10
|
-
m = n-1
|
11
|
-
r = n
|
12
|
-
check = 0
|
13
|
-
perm1 = range(n)
|
14
|
-
perm = range(n)
|
15
|
-
perm1_ins = perm1.insert
|
16
|
-
perm1_pop = perm1.pop
|
17
|
-
|
18
|
-
while 1:
|
19
|
-
if check < 30:
|
20
|
-
print "".join(str(i+1) for i in perm1)
|
21
|
-
check += 1
|
22
|
-
|
23
|
-
while r != 1:
|
24
|
-
count[r-1] = r
|
25
|
-
r -= 1
|
26
|
-
|
27
|
-
if perm1[0] != 0 and perm1[m] != m:
|
28
|
-
perm = perm1[:]
|
29
|
-
flips_count = 0
|
30
|
-
k = perm[0]
|
31
|
-
while k:
|
32
|
-
perm[:k+1] = perm[k::-1]
|
33
|
-
flips_count += 1
|
34
|
-
k = perm[0]
|
35
|
-
|
36
|
-
if flips_count > max_flips:
|
37
|
-
max_flips = flips_count
|
38
|
-
|
39
|
-
while r != n:
|
40
|
-
perm1_ins(r, perm1_pop(0))
|
41
|
-
count[r] -= 1
|
42
|
-
if count[r] > 0:
|
43
|
-
break
|
44
|
-
r += 1
|
45
|
-
else:
|
46
|
-
return max_flips
|
47
|
-
|
48
|
-
def main():
|
49
|
-
from sys import argv
|
50
|
-
n = int(argv and argv[1] or 1)
|
51
|
-
print "Pfannkuchen(%d) = %d\n" % (n, fannkuch(n)),
|
52
|
-
|
53
|
-
if __name__=="__main__":
|
54
|
-
main()
|
@@ -1,79 +0,0 @@
|
|
1
|
-
# The Computer Language Benchmarks Game
|
2
|
-
# http://shootout.alioth.debian.org/
|
3
|
-
#
|
4
|
-
# modified by Ian Osgood
|
5
|
-
# modified again by Heinrich Acker
|
6
|
-
|
7
|
-
import sys, bisect
|
8
|
-
|
9
|
-
alu = (
|
10
|
-
'GGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGG'
|
11
|
-
'GAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGA'
|
12
|
-
'CCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAAT'
|
13
|
-
'ACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCA'
|
14
|
-
'GCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGG'
|
15
|
-
'AGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCC'
|
16
|
-
'AGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAA')
|
17
|
-
|
18
|
-
iub = zip('acgtBDHKMNRSVWY', [0.27, 0.12, 0.12, 0.27] + [0.02]*11)
|
19
|
-
|
20
|
-
homosapiens = [
|
21
|
-
('a', 0.3029549426680),
|
22
|
-
('c', 0.1979883004921),
|
23
|
-
('g', 0.1975473066391),
|
24
|
-
('t', 0.3015094502008),
|
25
|
-
]
|
26
|
-
|
27
|
-
|
28
|
-
def genRandom(lim, ia = 3877, ic = 29573, im = 139968):
|
29
|
-
seed = 42
|
30
|
-
imf = float(im)
|
31
|
-
while 1:
|
32
|
-
seed = (seed * ia + ic) % im
|
33
|
-
yield lim * seed / imf
|
34
|
-
|
35
|
-
Random = genRandom(1.)
|
36
|
-
|
37
|
-
def makeCumulative(table):
|
38
|
-
P = []
|
39
|
-
C = []
|
40
|
-
prob = 0.
|
41
|
-
for char, p in table:
|
42
|
-
prob += p
|
43
|
-
P += [prob]
|
44
|
-
C += [char]
|
45
|
-
return (P, C)
|
46
|
-
|
47
|
-
def repeatFasta(src, n):
|
48
|
-
width = 60
|
49
|
-
r = len(src)
|
50
|
-
s = src + src + src[:n % r]
|
51
|
-
for j in xrange(n // width):
|
52
|
-
i = j*width % r
|
53
|
-
print s[i:i+width]
|
54
|
-
if n % width:
|
55
|
-
print s[-(n % width):]
|
56
|
-
|
57
|
-
def randomFasta(table, n):
|
58
|
-
width = 60
|
59
|
-
r = xrange(width)
|
60
|
-
gR = Random.next
|
61
|
-
bb = bisect.bisect
|
62
|
-
jn = ''.join
|
63
|
-
probs, chars = makeCumulative(table)
|
64
|
-
for j in xrange(n // width):
|
65
|
-
print jn([chars[bb(probs, gR())] for i in r])
|
66
|
-
if n % width:
|
67
|
-
print jn([chars[bb(probs, gR())] for i in xrange(n % width)])
|
68
|
-
|
69
|
-
|
70
|
-
n = int(sys.argv[1])
|
71
|
-
|
72
|
-
print '>ONE Homo sapiens alu'
|
73
|
-
repeatFasta(alu, n*2)
|
74
|
-
|
75
|
-
print '>TWO IUB ambiguity codes'
|
76
|
-
randomFasta(iub, n*3)
|
77
|
-
|
78
|
-
print '>THREE Homo sapiens frequency'
|
79
|
-
randomFasta(homosapiens, n*5)
|
data/sources/python/fibo.python
DELETED
@@ -1,17 +0,0 @@
|
|
1
|
-
#!/usr/bin/python
|
2
|
-
# $Id: fibo.python,v 1.3 2005-04-25 19:01:38 igouy-guest Exp $
|
3
|
-
# http://www.bagley.org/~doug/shootout/
|
4
|
-
|
5
|
-
import sys
|
6
|
-
|
7
|
-
def fib(n):
|
8
|
-
if (n < 2):
|
9
|
-
return(1)
|
10
|
-
return( fib(n-2) + fib(n-1) )
|
11
|
-
|
12
|
-
def main():
|
13
|
-
N = int(sys.argv[1])
|
14
|
-
#sys.setrecursionlimit(3000)
|
15
|
-
print fib(N)
|
16
|
-
|
17
|
-
main()
|
File without changes
|
File without changes
|
data/sources/python/hash.python
DELETED
@@ -1,21 +0,0 @@
|
|
1
|
-
#!/usr/bin/python
|
2
|
-
# $Id: hash.python,v 1.1.1.1 2004-05-19 18:09:55 bfulgham Exp $
|
3
|
-
# http://www.bagley.org/~doug/shootout/
|
4
|
-
# with help from from Gustavo Niemeyer
|
5
|
-
|
6
|
-
import sys
|
7
|
-
#sys.setcheckinterval(10000)
|
8
|
-
|
9
|
-
def main():
|
10
|
-
n = int(sys.argv[1])
|
11
|
-
X = {}
|
12
|
-
myhex = hex
|
13
|
-
for i in xrange(1,n+1):
|
14
|
-
X[myhex(i)[2:]] = i
|
15
|
-
c = 0
|
16
|
-
has_key = X.has_key
|
17
|
-
for i in xrange(n, 0, -1):
|
18
|
-
c += has_key(`i`)
|
19
|
-
print c
|
20
|
-
|
21
|
-
main()
|
File without changes
|
data/sources/python/hash2.python
DELETED
@@ -1,30 +0,0 @@
|
|
1
|
-
#!/usr/bin/python
|
2
|
-
# $Id: hash2.python,v 1.2 2004-11-30 07:10:03 bfulgham Exp $
|
3
|
-
# http://shootout.alioth.debian.org
|
4
|
-
# Contributed by Antoine Pitrou, based on code by Mark Baker
|
5
|
-
#
|
6
|
-
# 1. Put critical code in a function -- otherwise the local variable
|
7
|
-
# optimizations by the interpreter don't work.
|
8
|
-
# 2. Iterator versions of common functions are often a bit faster than
|
9
|
-
# other methods (e.g., iterkeys() instead of keys() ).
|
10
|
-
|
11
|
-
import sys
|
12
|
-
|
13
|
-
def main():
|
14
|
-
n = int(sys.argv[1])
|
15
|
-
hash1 = {}
|
16
|
-
for i in xrange(10000):
|
17
|
-
hash1['foo_' + `i`] = i
|
18
|
-
|
19
|
-
hash2 = {}
|
20
|
-
for i in xrange(n):
|
21
|
-
for k in hash1.iterkeys():
|
22
|
-
try:
|
23
|
-
hash2[k] += hash1[k]
|
24
|
-
except KeyError:
|
25
|
-
hash2[k] = hash1[k]
|
26
|
-
|
27
|
-
print hash1['foo_1'], hash1['foo_9999'], hash2['foo_1'], hash2['foo_9999']
|
28
|
-
|
29
|
-
|
30
|
-
main()
|
@@ -1,66 +0,0 @@
|
|
1
|
-
#!/usr/bin/python -O
|
2
|
-
# $Id: heapsort.python-3.python,v 1.1 2005-03-27 19:43:21 igouy-guest Exp $
|
3
|
-
#
|
4
|
-
# The Great Computer Language Shootout
|
5
|
-
# http://shootout.alioth.debian.org/
|
6
|
-
#
|
7
|
-
# Updated by Valentino Volonghi for Python 2.4
|
8
|
-
# Reworked by Kevin Carson to produce correct results and same intent
|
9
|
-
|
10
|
-
import sys
|
11
|
-
|
12
|
-
IM = 139968
|
13
|
-
IA = 3877
|
14
|
-
IC = 29573
|
15
|
-
|
16
|
-
LAST = 42
|
17
|
-
def gen_random(max) :
|
18
|
-
global LAST
|
19
|
-
LAST = (LAST * IA + IC) % IM
|
20
|
-
return( (max * LAST) / IM )
|
21
|
-
|
22
|
-
def heapsort(n, ra) :
|
23
|
-
ir = n
|
24
|
-
l = (n >> 1) + 1
|
25
|
-
|
26
|
-
while True :
|
27
|
-
if l > 1 :
|
28
|
-
l -= 1
|
29
|
-
rra = ra[l]
|
30
|
-
else :
|
31
|
-
rra = ra[ir]
|
32
|
-
ra[ir] = ra[1]
|
33
|
-
ir -= 1
|
34
|
-
if ir == 1 :
|
35
|
-
ra[1] = rra
|
36
|
-
return
|
37
|
-
|
38
|
-
i = l
|
39
|
-
j = l << 1
|
40
|
-
while j <= ir :
|
41
|
-
if (j < ir) and (ra[j] < ra[j + 1]) :
|
42
|
-
j += 1
|
43
|
-
|
44
|
-
if rra < ra[j] :
|
45
|
-
ra[i] = ra[j]
|
46
|
-
i = j
|
47
|
-
j += j
|
48
|
-
else :
|
49
|
-
j = ir + 1;
|
50
|
-
ra[i] = rra;
|
51
|
-
|
52
|
-
def main() :
|
53
|
-
if len(sys.argv) == 2 :
|
54
|
-
N = int(sys.argv[1])
|
55
|
-
else :
|
56
|
-
N = 1
|
57
|
-
|
58
|
-
ary = [None]*(N + 1)
|
59
|
-
for i in xrange(1, N + 1) :
|
60
|
-
ary[i] = gen_random(1.0)
|
61
|
-
|
62
|
-
heapsort(N, ary)
|
63
|
-
|
64
|
-
print "%.10f" % ary[N]
|
65
|
-
|
66
|
-
main()
|
data/sources/python/hello.python
DELETED
@@ -1,231 +0,0 @@
|
|
1
|
-
#!/usr/bin/env python
|
2
|
-
#
|
3
|
-
# The Great Computer Language Shootout
|
4
|
-
# http://shootout.alioth.debian.org/
|
5
|
-
#
|
6
|
-
# Contributed by Sebastien Loisel
|
7
|
-
#
|
8
|
-
# OVERVIEW: In this test, we solve an ordinary differential equation
|
9
|
-
# u'=f(t,u)
|
10
|
-
# using the Trapezoid numerical method, which can be written as
|
11
|
-
# (u[k+1]-u[k])=(f(t[k],u[k])+f(t[k]+dt,u[k+1]))*dt/2,
|
12
|
-
# where t[k], u[k], dt and the function f are known and u[k+1] is the
|
13
|
-
# unknown.
|
14
|
-
#
|
15
|
-
# Since u[k+1] appears on both sides of the equation, we use an iterative
|
16
|
-
# solver called the newton iteration to compute u[k+1]. The newton iteration
|
17
|
-
# computes the solution to
|
18
|
-
# h(x)=0
|
19
|
-
# where h is a known function and x is the unknown 0 of h, using the method
|
20
|
-
# x[k+1]=x[k]-f(x[k])/f'(x[k]).
|
21
|
-
# Here, f' denotes the derivative of f.
|
22
|
-
#
|
23
|
-
# To compute f' from the definition of f alone, we use a technique called
|
24
|
-
# automatic differentiation. This works by replacing all floating point
|
25
|
-
# variables by a special type we call ad (for automatic differentiation.)
|
26
|
-
# If the python program for f is called with parameter x of type ad,
|
27
|
-
# it will do the same work as if it were called with the equivalent parameter
|
28
|
-
# of type floating point, but will also return f'. That's why it's called
|
29
|
-
# "automatic."
|
30
|
-
#
|
31
|
-
# To shake things up, we also have another type, fl (for "float") which
|
32
|
-
# works exactly like a double precision floating point, but with much
|
33
|
-
# less precision.
|
34
|
-
#
|
35
|
-
# Summary of classes:
|
36
|
-
#
|
37
|
-
# ad -- automatic differentiation type
|
38
|
-
# fl -- low precision floating point type
|
39
|
-
# mycomplex -- complex numbers whose real and imaginary parts can be fl
|
40
|
-
# trapezoid_method_rooter -- implements the function that the trapezoid method
|
41
|
-
# must solve
|
42
|
-
|
43
|
-
import sys
|
44
|
-
from math import log,exp,floor,fabs
|
45
|
-
|
46
|
-
def sqr(x):
|
47
|
-
"""sqr(x): a helper function that computes the square of any "number" x."""
|
48
|
-
return x*x
|
49
|
-
|
50
|
-
def pwr(x,k):
|
51
|
-
"""pwr(x,k): a helper function that computes the kth power of any
|
52
|
-
"number" x."""
|
53
|
-
if k<=0:
|
54
|
-
return 1
|
55
|
-
elif (k&1):
|
56
|
-
return x*pwr(x,k-1)
|
57
|
-
return sqr(pwr(x,k/2))
|
58
|
-
|
59
|
-
def pr(x):
|
60
|
-
"""Print a value depending on its type."""
|
61
|
-
if isinstance(x,float):
|
62
|
-
return "%.12e"%x
|
63
|
-
elif isinstance(x,complex):
|
64
|
-
return "%.12e %.12e"%(x.real,x.imag)
|
65
|
-
else:
|
66
|
-
return x.pr()
|
67
|
-
|
68
|
-
class fl:
|
69
|
-
"""A low-precision floating point class."""
|
70
|
-
def pr(x):
|
71
|
-
return "%.2e"%x.a
|
72
|
-
def __init__(x,a=0):
|
73
|
-
global count
|
74
|
-
if a==0:
|
75
|
-
x.a=0.0
|
76
|
-
else:
|
77
|
-
k=int(log(fabs(a)))
|
78
|
-
x.a=floor(a*exp(-k+6)+0.5)*exp(k-6)
|
79
|
-
def __add__(x,y):
|
80
|
-
return fl(x.a+y.a)
|
81
|
-
def __radd__(y,x):
|
82
|
-
return x+y
|
83
|
-
def __sub__(x,y):
|
84
|
-
return fl(x.a-y.a)
|
85
|
-
def __mul__(x,y):
|
86
|
-
return fl(x.a*y.a)
|
87
|
-
def __rmul__(y,x):
|
88
|
-
return x*y
|
89
|
-
def __div__(x,y):
|
90
|
-
return fl(x.a/y.a)
|
91
|
-
def __coerce__(x,y):
|
92
|
-
if isinstance(y,fl):
|
93
|
-
return (x,y)
|
94
|
-
return (x,fl(y))
|
95
|
-
|
96
|
-
class mycomplex:
|
97
|
-
"""A complex type so that the type of the real or imaginary part can be
|
98
|
-
any kind of number."""
|
99
|
-
def __init__(x,a=0,b=0):
|
100
|
-
x.real,x.imag=a,b
|
101
|
-
def __add__(a,b):
|
102
|
-
return mycomplex(a.real+b.real,a.imag+b.imag)
|
103
|
-
def __radd__(b,a):
|
104
|
-
return a+b
|
105
|
-
def __sub__(a,b):
|
106
|
-
return mycomplex(a.real-b.real,a.imag-b.imag)
|
107
|
-
def __mul__(a,b):
|
108
|
-
return mycomplex(a.real*b.real-a.imag*b.imag,
|
109
|
-
a.real*b.imag+a.imag*b.real)
|
110
|
-
def __rmul__(b,a):
|
111
|
-
return a*b
|
112
|
-
def __div__(a,b):
|
113
|
-
mag=b.real*b.real+b.imag*b.imag
|
114
|
-
return mycomplex((a.real*b.real+a.imag*b.imag)/mag,
|
115
|
-
(a.imag*b.real-a.real*b.imag)/mag)
|
116
|
-
def __coerce__(a,b):
|
117
|
-
if isinstance(b,mycomplex):
|
118
|
-
return (a,b)
|
119
|
-
return (a,mycomplex(b))
|
120
|
-
def pr(a):
|
121
|
-
return pr(a.real)+' '+pr(a.imag)
|
122
|
-
|
123
|
-
def one(x):
|
124
|
-
if isinstance(x,float):
|
125
|
-
return 1.0
|
126
|
-
if isinstance(x,complex):
|
127
|
-
return 1.0+0.0j
|
128
|
-
if isinstance(x,fl):
|
129
|
-
return fl(1.0)
|
130
|
-
if isinstance(x,mycomplex):
|
131
|
-
return mycomplex(one(x.real),0.0)
|
132
|
-
|
133
|
-
class ad:
|
134
|
-
"""Automatic differentiation type. An ad has two attributes, x and dx."""
|
135
|
-
def __init__(self,x=0,dx=0):
|
136
|
-
self.x,self.dx=x,dx
|
137
|
-
def __add__(a,b):
|
138
|
-
"""ad's add like vectors."""
|
139
|
-
return ad(a.x+b.x,a.dx+b.dx)
|
140
|
-
def __sub__(a,b):
|
141
|
-
"""ad's subtract like vectors."""
|
142
|
-
return ad(a.x-b.x,a.dx-b.dx)
|
143
|
-
def __mul__(a,b):
|
144
|
-
"""The product of ad's is given by the "product rule" of differentation:
|
145
|
-
(x,dx)*(y,dy)=(xy,xdy+ydx)."""
|
146
|
-
return ad(a.x*b.x,a.dx*b.x+a.x*b.dx)
|
147
|
-
def __div__(a,b):
|
148
|
-
"""The quotient rule of differentiation gives
|
149
|
-
(x,dx)/(y,dy)=(x/y,(ydx-xdy)/(y*y))."""
|
150
|
-
return ad(a.x/b.x,(a.dx*b.x-a.x*b.dx)/(b.x*b.x))
|
151
|
-
def __coerce__(self,other):
|
152
|
-
if isinstance(other,ad):
|
153
|
-
return (self,other)
|
154
|
-
return (self,ad(other))
|
155
|
-
def pr(a):
|
156
|
-
return pr(a.x)+' '+pr(a.dx)
|
157
|
-
|
158
|
-
def rat(x):
|
159
|
-
"""This is just a quotient of two polynomials p/q, with degree p=11 and
|
160
|
-
degree q=7."""
|
161
|
-
return (x*2+pwr(x,2)*3+pwr(x,6)*7+pwr(x,11)*5+1)/(x*5-pwr(x,3)*6-pwr(x,7)*3+2)
|
162
|
-
|
163
|
-
def newton(x0,n,g):
|
164
|
-
"""The newton iteration computes the zero of g starting with initial guess
|
165
|
-
x0. This implementation iterates n times and then returns the answer."""
|
166
|
-
for i in range(n):
|
167
|
-
val=g(ad(x0,one(x0)))
|
168
|
-
x0=x0-val.x/val.dx
|
169
|
-
return x0
|
170
|
-
|
171
|
-
def mysqrt(x):
|
172
|
-
"""This isn't actually a square root. However, newton(1,10,mysqrt) should
|
173
|
-
return the square root of 2 (1.4142...)."""
|
174
|
-
return sqr(x)-ad(2)
|
175
|
-
|
176
|
-
class trapezoid_method_rooter:
|
177
|
-
"""The trapezoid method (see below) works by computing the solution of some
|
178
|
-
problem of the form h(x)=0. This class implements the function h needed
|
179
|
-
in the trapezoid method."""
|
180
|
-
def __init__(self,g,y0,t0,t1):
|
181
|
-
self.g,self.y0,self.t0,self.t1=g,y0,t0,t1
|
182
|
-
self.g0=g(t0,y0)
|
183
|
-
def __call__(self,y1):
|
184
|
-
"""The function is (g(t1,y1)-g(t0,y0))*(t1-t0)/2+y0-y1. The parameters
|
185
|
-
t0,y0,t1,g are set at construction time, so the only parameter left is
|
186
|
-
y1."""
|
187
|
-
# raz=(self.g(ad(self.t1),y1))
|
188
|
-
ret=(self.g(ad(self.t1),y1)+self.g0)*((self.t1-self.t0)/2)+ad(self.y0)-y1
|
189
|
-
# print "t0",pr(self.t0),"t1",pr(self.t1),"y0",pr(self.y0),"g0",pr(self.g0),"y1",pr(y1),"ret",pr(ret),"raz",pr(raz)
|
190
|
-
return ret
|
191
|
-
|
192
|
-
def trapezoid_method(t0,dt,y0,g,numsteps):
|
193
|
-
"""This function will approximate the solution of y'=g(t,y) at time
|
194
|
-
t0+numsteps*dt with initial value y(t0)=y0 using the trapezoid method
|
195
|
-
of numerical integration."""
|
196
|
-
for i in range(numsteps):
|
197
|
-
foo=trapezoid_method_rooter(g,y0,t0,t0+dt)
|
198
|
-
y0=newton(y0,10,foo)
|
199
|
-
t0=t0+dt
|
200
|
-
return y0
|
201
|
-
|
202
|
-
def sqrintegrand(t,y):
|
203
|
-
"""This is a version of sqr which has the correct signature so that it can
|
204
|
-
be passed to trapezoid_method. The first parameter, t, is ignored.
|
205
|
-
The second parameter, y, is passed on to sqr."""
|
206
|
-
return sqr(y)
|
207
|
-
def ratintegrand(t,y):
|
208
|
-
"""This is a version of the rational function rat above that can be passed
|
209
|
-
to trapezoid_method. In this instance, we do use the t parameter."""
|
210
|
-
return rat(y)-t
|
211
|
-
|
212
|
-
def integrate_functions(t0,x0,dt,n):
|
213
|
-
"""Integrate sqrintegrand and ratintegrand with given initial value.
|
214
|
-
Depending on the type of initial value, this will result in float, complex,
|
215
|
-
iv or complex iv integration."""
|
216
|
-
print ('i1 '+pr(trapezoid_method(t0,dt,x0,sqrintegrand,n)))
|
217
|
-
print ('i2 '+pr(trapezoid_method(t0,dt,x0,ratintegrand,n)))
|
218
|
-
|
219
|
-
try:
|
220
|
-
N = int(sys.argv[1])
|
221
|
-
except:
|
222
|
-
N = 50
|
223
|
-
print ('rational_taylor_series: '+pr(rat(ad(0.25,1))))
|
224
|
-
print ('newton-sqrt_2: '+pr(newton(1.0,10,mysqrt)))
|
225
|
-
x=newton(-1.0,6,rat)
|
226
|
-
print ('newton-rat: '+pr(x))
|
227
|
-
integrate_functions(1.0,0.02,1.0/(4*N),4*N)
|
228
|
-
integrate_functions(fl(1.0),fl(0.02),fl(1.0)/fl(float(N)),N)
|
229
|
-
integrate_functions(1.0+0.0j,0.02+0.02j,1.0/N,N)
|
230
|
-
integrate_functions(mycomplex(fl(1.0),fl(0.0)),mycomplex(fl(0.02),fl(0.02)),mycomplex(fl(1.0))/mycomplex(fl(float(N))),N)
|
231
|
-
|