chrislo-sourceclassifier 0.2.0 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (316) hide show
  1. data/Manifest +0 -312
  2. data/Rakefile +2 -2
  3. data/sourceclassifier.gemspec +6 -6
  4. metadata +4 -316
  5. data/sources/gcc/ackermann.gcc-2.gcc +0 -93
  6. data/sources/gcc/ackermann.gcc-3.gcc +0 -20
  7. data/sources/gcc/ary.gcc +0 -40
  8. data/sources/gcc/binarytrees.gcc +0 -136
  9. data/sources/gcc/binarytrees.gcc-2.gcc +0 -140
  10. data/sources/gcc/binarytrees.gcc-3.gcc +0 -134
  11. data/sources/gcc/chameneos.gcc +0 -117
  12. data/sources/gcc/chameneos.gcc-2.gcc +0 -134
  13. data/sources/gcc/chameneos.gcc-3.gcc +0 -120
  14. data/sources/gcc/chameneosredux.gcc +0 -306
  15. data/sources/gcc/echo.gcc +0 -144
  16. data/sources/gcc/except.gcc +0 -52
  17. data/sources/gcc/fannkuch.gcc +0 -105
  18. data/sources/gcc/fannkuch.gcc-2.gcc +0 -94
  19. data/sources/gcc/fasta.gcc +0 -158
  20. data/sources/gcc/fasta.gcc-2.gcc +0 -132
  21. data/sources/gcc/fasta.gcc-3.gcc +0 -145
  22. data/sources/gcc/fasta.gcc-4.gcc +0 -141
  23. data/sources/gcc/fibo.gcc +0 -20
  24. data/sources/gcc/harmonic.gcc +0 -22
  25. data/sources/gcc/hash.gcc +0 -31
  26. data/sources/gcc/hash2.gcc +0 -38
  27. data/sources/gcc/heapsort.gcc +0 -72
  28. data/sources/gcc/hello.gcc-2.gcc +0 -12
  29. data/sources/gcc/hello.gcc-3.gcc +0 -20
  30. data/sources/gcc/knucleotide.gcc +0 -173
  31. data/sources/gcc/knucleotide.gcc-2.gcc +0 -168
  32. data/sources/gcc/lists.gcc +0 -226
  33. data/sources/gcc/magicsquares.gcc +0 -378
  34. data/sources/gcc/mandelbrot.gcc +0 -84
  35. data/sources/gcc/mandelbrot.gcc-2.gcc +0 -63
  36. data/sources/gcc/mandelbrot.gcc-3.gcc +0 -91
  37. data/sources/gcc/mandelbrot.gcc-4.gcc +0 -78
  38. data/sources/gcc/matrix.gcc +0 -66
  39. data/sources/gcc/message.gcc-2.gcc +0 -72
  40. data/sources/gcc/message.gcc-3.gcc +0 -64
  41. data/sources/gcc/methcall.gcc +0 -89
  42. data/sources/gcc/moments.gcc +0 -120
  43. data/sources/gcc/nbody.gcc +0 -142
  44. data/sources/gcc/nbody.gcc-2.gcc +0 -143
  45. data/sources/gcc/nbody.gcc-3.gcc +0 -142
  46. data/sources/gcc/nestedloop.gcc +0 -25
  47. data/sources/gcc/nsieve.gcc +0 -35
  48. data/sources/gcc/nsievebits.gcc-2.gcc +0 -37
  49. data/sources/gcc/nsievebits.gcc-3.gcc +0 -53
  50. data/sources/gcc/objinst.gcc +0 -95
  51. data/sources/gcc/partialsums.gcc +0 -86
  52. data/sources/gcc/partialsums.gcc-3.gcc +0 -81
  53. data/sources/gcc/partialsums.gcc-4.gcc +0 -68
  54. data/sources/gcc/pidigits.gcc +0 -105
  55. data/sources/gcc/primes.gcc +0 -75
  56. data/sources/gcc/prodcons.gcc +0 -86
  57. data/sources/gcc/random.gcc +0 -29
  58. data/sources/gcc/raytracer.gcc +0 -125
  59. data/sources/gcc/raytracer.gcc-2.gcc +0 -181
  60. data/sources/gcc/recursive.gcc +0 -68
  61. data/sources/gcc/recursive.gcc-2.gcc +0 -55
  62. data/sources/gcc/regexdna.gcc-2.gcc +0 -126
  63. data/sources/gcc/regexmatch.gcc +0 -136
  64. data/sources/gcc/revcomp.gcc +0 -85
  65. data/sources/gcc/revcomp.gcc-2.gcc +0 -88
  66. data/sources/gcc/revcomp.gcc-4.gcc +0 -71
  67. data/sources/gcc/reversefile.gcc +0 -103
  68. data/sources/gcc/reversefile.gcc-2.gcc +0 -56
  69. data/sources/gcc/sieve.gcc +0 -34
  70. data/sources/gcc/spectralnorm.gcc +0 -54
  71. data/sources/gcc/spellcheck.gcc +0 -72
  72. data/sources/gcc/spellcheck.gcc-2.gcc +0 -61
  73. data/sources/gcc/strcat.gcc +0 -38
  74. data/sources/gcc/sumcol.gcc-2.gcc +0 -98
  75. data/sources/gcc/sumcol.gcc-3.gcc +0 -22
  76. data/sources/gcc/sumcol.gcc-4.gcc +0 -18
  77. data/sources/gcc/sumcol.gcc-5.gcc +0 -32
  78. data/sources/gcc/takfp.gcc +0 -23
  79. data/sources/gcc/tcp-stream.gcc +0 -122
  80. data/sources/gcc/tcpecho.gcc +0 -122
  81. data/sources/gcc/tcpecho.gcc-2.gcc +0 -136
  82. data/sources/gcc/tcprequest.gcc +0 -122
  83. data/sources/gcc/threadring.gcc +0 -73
  84. data/sources/gcc/wc.gcc +0 -52
  85. data/sources/gcc/wc.gcc-2.gcc +0 -40
  86. data/sources/gcc/wc.gcc-3.gcc +0 -46
  87. data/sources/gcc/wordfreq.gcc-2.gcc +0 -85
  88. data/sources/perl/ackermann.perl +0 -28
  89. data/sources/perl/ackermann.perl-2.perl +0 -25
  90. data/sources/perl/ackermann.perl-3.perl +0 -20
  91. data/sources/perl/ackermann.perl-4.perl +0 -18
  92. data/sources/perl/ary.perl +0 -25
  93. data/sources/perl/ary.perl-2.perl +0 -23
  94. data/sources/perl/binarytrees.perl +0 -66
  95. data/sources/perl/binarytrees.perl-2.perl +0 -71
  96. data/sources/perl/chameneos.perl +0 -67
  97. data/sources/perl/echo.perl +0 -81
  98. data/sources/perl/except.perl +0 -73
  99. data/sources/perl/fannkuch.perl +0 -44
  100. data/sources/perl/fannkuch.perl-2.perl +0 -38
  101. data/sources/perl/fasta.perl +0 -112
  102. data/sources/perl/fasta.perl-2.perl +0 -135
  103. data/sources/perl/fasta.perl-4.perl +0 -122
  104. data/sources/perl/fibo.perl +0 -15
  105. data/sources/perl/fibo.perl-2.perl +0 -0
  106. data/sources/perl/fibo.perl-3.perl +0 -0
  107. data/sources/perl/harmonic.perl +0 -7
  108. data/sources/perl/hash.perl +0 -23
  109. data/sources/perl/hash.perl-2.perl +0 -17
  110. data/sources/perl/hash.perl-3.perl +0 -24
  111. data/sources/perl/hash2.perl +0 -16
  112. data/sources/perl/heapsort.perl +0 -65
  113. data/sources/perl/heapsort.perl-2.perl +0 -0
  114. data/sources/perl/hello.perl +0 -5
  115. data/sources/perl/knucleotide.perl-2.perl +0 -30
  116. data/sources/perl/lists.perl +0 -48
  117. data/sources/perl/mandelbrot.perl-2.perl +0 -32
  118. data/sources/perl/matrix.perl +0 -59
  119. data/sources/perl/matrix.perl-2.perl +0 -0
  120. data/sources/perl/matrix.perl-3.perl +0 -0
  121. data/sources/perl/message.perl +0 -27
  122. data/sources/perl/methcall.perl +0 -66
  123. data/sources/perl/moments.perl +0 -44
  124. data/sources/perl/nbody.perl +0 -108
  125. data/sources/perl/nestedloop.perl +0 -28
  126. data/sources/perl/nsieve.perl-2.perl +0 -41
  127. data/sources/perl/nsieve.perl-4.perl +0 -43
  128. data/sources/perl/nsievebits.perl +0 -37
  129. data/sources/perl/objinst.perl +0 -73
  130. data/sources/perl/partialsums.perl-3.perl +0 -31
  131. data/sources/perl/pidigits.perl +0 -52
  132. data/sources/perl/pidigits.perl-2.perl +0 -47
  133. data/sources/perl/process.perl +0 -50
  134. data/sources/perl/prodcons.perl +0 -47
  135. data/sources/perl/random.perl-4.perl +0 -17
  136. data/sources/perl/recursive.perl-2.perl +0 -57
  137. data/sources/perl/regexdna.perl +0 -48
  138. data/sources/perl/regexdna.perl-2.perl +0 -43
  139. data/sources/perl/regexdna.perl-3.perl +0 -50
  140. data/sources/perl/regexdna.perl-4.perl +0 -49
  141. data/sources/perl/regexdna.perl-5.perl +0 -42
  142. data/sources/perl/regexdna.perl-6.perl +0 -43
  143. data/sources/perl/regexmatch.perl +0 -35
  144. data/sources/perl/revcomp.perl-2.perl +0 -34
  145. data/sources/perl/reversefile.perl +0 -8
  146. data/sources/perl/reversefile.perl-2.perl +0 -0
  147. data/sources/perl/reversefile.perl-3.perl +0 -0
  148. data/sources/perl/sieve.perl +0 -23
  149. data/sources/perl/spectralnorm.perl-2.perl +0 -54
  150. data/sources/perl/spellcheck.perl +0 -24
  151. data/sources/perl/strcat.perl +0 -13
  152. data/sources/perl/strcat.perl-2.perl +0 -0
  153. data/sources/perl/sumcol.perl +0 -8
  154. data/sources/perl/takfp.perl +0 -23
  155. data/sources/perl/takfp.perl-3.perl +0 -20
  156. data/sources/perl/tcpecho.perl +0 -61
  157. data/sources/perl/tcprequest.perl +0 -61
  158. data/sources/perl/tcpstream.perl +0 -61
  159. data/sources/perl/threadring.perl +0 -55
  160. data/sources/perl/threadring.perl-2.perl +0 -43
  161. data/sources/perl/wc.perl +0 -20
  162. data/sources/perl/wc.perl-2.perl +0 -14
  163. data/sources/perl/wordfreq.perl +0 -22
  164. data/sources/perl/wordfreq.perl-3.perl +0 -0
  165. data/sources/perl/wordfreq.perl3.perl +0 -0
  166. data/sources/python/ackermann.python +0 -21
  167. data/sources/python/ary.python +0 -19
  168. data/sources/python/binarytrees.python +0 -39
  169. data/sources/python/binarytrees.python-3.python +0 -44
  170. data/sources/python/chameneos.python-6.python +0 -73
  171. data/sources/python/chameneosredux.python +0 -126
  172. data/sources/python/chameneosredux.python-2.python +0 -122
  173. data/sources/python/dispatch.python +0 -176
  174. data/sources/python/dispatch.python-2.python +0 -136
  175. data/sources/python/echo.python +0 -64
  176. data/sources/python/except.python +0 -62
  177. data/sources/python/fannkuch.python +0 -50
  178. data/sources/python/fannkuch.python-2.python +0 -54
  179. data/sources/python/fasta.python-2.python +0 -79
  180. data/sources/python/fibo.python +0 -17
  181. data/sources/python/fibo.python-2.python +0 -0
  182. data/sources/python/fibo.python-3.python +0 -0
  183. data/sources/python/harmonic.python-2.python +0 -9
  184. data/sources/python/hash.python +0 -21
  185. data/sources/python/hash.python-2.python +0 -0
  186. data/sources/python/hash2.python +0 -30
  187. data/sources/python/heapsort.python-3.python +0 -66
  188. data/sources/python/hello.python +0 -5
  189. data/sources/python/implicitode.python +0 -231
  190. data/sources/python/knucleotide.python +0 -55
  191. data/sources/python/lists.python +0 -44
  192. data/sources/python/magicsquares.python +0 -145
  193. data/sources/python/mandelbrot.python +0 -44
  194. data/sources/python/mandelbrot.python-2.python +0 -35
  195. data/sources/python/mandelbrot.python-3.python +0 -46
  196. data/sources/python/matrix.python +0 -34
  197. data/sources/python/matrix.python-2.python +0 -23
  198. data/sources/python/message.python +0 -24
  199. data/sources/python/message.python-2.python +0 -20
  200. data/sources/python/message.python-3.python +0 -19
  201. data/sources/python/meteor.python +0 -210
  202. data/sources/python/meteor.python-2.python +0 -192
  203. data/sources/python/methcall.python +0 -51
  204. data/sources/python/moments.python +0 -65
  205. data/sources/python/nbody.python +0 -123
  206. data/sources/python/nbody.python-2.python +0 -120
  207. data/sources/python/nestedloop.python +0 -24
  208. data/sources/python/nsieve.python +0 -27
  209. data/sources/python/nsieve.python-2.python +0 -23
  210. data/sources/python/nsieve.python-4.python +0 -25
  211. data/sources/python/nsievebits.python +0 -27
  212. data/sources/python/nsievebits.python-2.python +0 -43
  213. data/sources/python/objinst.python +0 -53
  214. data/sources/python/partialsums.python +0 -37
  215. data/sources/python/partialsums.python-2.python +0 -35
  216. data/sources/python/partialsums.python-3.python +0 -48
  217. data/sources/python/pidigits.python +0 -38
  218. data/sources/python/pidigits.python-3.python +0 -63
  219. data/sources/python/pidigits.python-4.python +0 -24
  220. data/sources/python/process.python +0 -51
  221. data/sources/python/process.python-2.python +0 -133
  222. data/sources/python/prodcons.python +0 -51
  223. data/sources/python/prodcons.python-2.python +0 -0
  224. data/sources/python/random.python +0 -27
  225. data/sources/python/raytracer.python +0 -203
  226. data/sources/python/recursive.python +0 -35
  227. data/sources/python/regexdna.python +0 -39
  228. data/sources/python/regexdna.python-2.python +0 -34
  229. data/sources/python/regexmatch.python +0 -36
  230. data/sources/python/revcomp.python-3.python +0 -31
  231. data/sources/python/reversefile.python +0 -13
  232. data/sources/python/reversefile.python-2.python +0 -0
  233. data/sources/python/reversefile.python-3.python +0 -0
  234. data/sources/python/sieve.python +0 -50
  235. data/sources/python/spectralnorm.python-2.python +0 -36
  236. data/sources/python/spellcheck.python +0 -17
  237. data/sources/python/strcat.python +0 -35
  238. data/sources/python/strcat.python-2.python +0 -0
  239. data/sources/python/sumcol.python-2.python +0 -0
  240. data/sources/python/sumcol.python-3.python +0 -0
  241. data/sources/python/takfp.python +0 -19
  242. data/sources/python/tcpecho.python +0 -67
  243. data/sources/python/tcprequest.python +0 -67
  244. data/sources/python/tcpstream.python +0 -67
  245. data/sources/python/threadring.python +0 -47
  246. data/sources/python/threadring.python-2.python +0 -40
  247. data/sources/python/threadring.python-3.python +0 -34
  248. data/sources/python/wc.python-2.python +0 -19
  249. data/sources/python/wordfreq.python +0 -43
  250. data/sources/python/wordfreq.python-2.python +0 -0
  251. data/sources/python/wordfreq.python-3.python +0 -28
  252. data/sources/python/wordfreq.python-4.python +0 -38
  253. data/sources/python/wordfreq.python-5.python +0 -39
  254. data/sources/ruby/ackermann.ruby +0 -17
  255. data/sources/ruby/ackermann.ruby-5.ruby +0 -153
  256. data/sources/ruby/ary.ruby +0 -22
  257. data/sources/ruby/binarytrees.ruby-2.ruby +0 -55
  258. data/sources/ruby/chameneos.ruby-2.ruby +0 -71
  259. data/sources/ruby/dispatch.ruby +0 -114
  260. data/sources/ruby/echo.ruby +0 -41
  261. data/sources/ruby/except.ruby +0 -61
  262. data/sources/ruby/except.ruby-2.ruby +0 -61
  263. data/sources/ruby/fannkuch.ruby +0 -42
  264. data/sources/ruby/fasta.ruby +0 -81
  265. data/sources/ruby/fibo.ruby +0 -15
  266. data/sources/ruby/harmonic.ruby-2.ruby +0 -15
  267. data/sources/ruby/hash.ruby +0 -19
  268. data/sources/ruby/hash2.ruby +0 -23
  269. data/sources/ruby/heapsort.ruby +0 -55
  270. data/sources/ruby/hello.ruby +0 -6
  271. data/sources/ruby/knucleotide.ruby-2.ruby +0 -44
  272. data/sources/ruby/lists.ruby +0 -46
  273. data/sources/ruby/mandelbrot.ruby-3.ruby +0 -63
  274. data/sources/ruby/matrix.ruby +0 -40
  275. data/sources/ruby/matrix.ruby-2.ruby +0 -30
  276. data/sources/ruby/message.ruby +0 -29
  277. data/sources/ruby/message.ruby-2.ruby +0 -24
  278. data/sources/ruby/meteor.ruby +0 -386
  279. data/sources/ruby/meteor.ruby-2.ruby +0 -561
  280. data/sources/ruby/methcall.ruby +0 -58
  281. data/sources/ruby/methcall.ruby-2.ruby +0 -54
  282. data/sources/ruby/moments.ruby +0 -64
  283. data/sources/ruby/nbody.ruby-2.ruby +0 -145
  284. data/sources/ruby/nestedloop.ruby +0 -22
  285. data/sources/ruby/nsieve.ruby +0 -36
  286. data/sources/ruby/nsieve.ruby-2.ruby +0 -25
  287. data/sources/ruby/nsievebits.ruby-2.ruby +0 -42
  288. data/sources/ruby/objinst.ruby +0 -58
  289. data/sources/ruby/partialsums.ruby +0 -39
  290. data/sources/ruby/pidigits.ruby +0 -92
  291. data/sources/ruby/pidigits.ruby-2.ruby +0 -109
  292. data/sources/ruby/prodcons.ruby +0 -41
  293. data/sources/ruby/random.ruby +0 -17
  294. data/sources/ruby/recursive.ruby-2.ruby +0 -53
  295. data/sources/ruby/regexdna.ruby +0 -32
  296. data/sources/ruby/regexdna.ruby-2.ruby +0 -38
  297. data/sources/ruby/regexmatch.ruby +0 -33
  298. data/sources/ruby/revcomp.ruby +0 -28
  299. data/sources/ruby/reversefile.ruby +0 -7
  300. data/sources/ruby/sieve.ruby +0 -30
  301. data/sources/ruby/spectralnorm.ruby +0 -48
  302. data/sources/ruby/spellcheck.ruby +0 -18
  303. data/sources/ruby/spellcheck.ruby-2.ruby +0 -0
  304. data/sources/ruby/strcat.ruby +0 -12
  305. data/sources/ruby/strcat.ruby-2.ruby +0 -12
  306. data/sources/ruby/sumcol.ruby +0 -12
  307. data/sources/ruby/sumcol.ruby-2.ruby +0 -5
  308. data/sources/ruby/takfp.ruby +0 -15
  309. data/sources/ruby/tcpecho.ruby +0 -45
  310. data/sources/ruby/tcprequest.ruby +0 -45
  311. data/sources/ruby/tcpstream.ruby +0 -45
  312. data/sources/ruby/threadring.ruby +0 -61
  313. data/sources/ruby/threadring.ruby-2.ruby +0 -33
  314. data/sources/ruby/wc.ruby +0 -15
  315. data/sources/ruby/wordfreq.ruby +0 -17
  316. data/sources/ruby/wordfreq.ruby2.ruby +0 -0
@@ -1,47 +0,0 @@
1
- # The Computer Language Benchmarks Game
2
- # http://shootout.alioth.debian.org/
3
- #
4
- # contributed by Robert Bradshaw
5
- # modified by Ruud H.G.van Tol
6
- # modified by Emanuele Zeppieri
7
- # modified to use Math:GMP by Kuang-che Wu
8
-
9
- use strict;
10
- use Math::GMP;
11
-
12
- my($z0, $z1, $z2) = map Math::GMP->new($_),1,0,1;
13
-
14
- sub extract_digit { return ($z0*$_[0]+$z1)/$z2; }
15
-
16
- sub compose {
17
- if ( defined $_[3] ) {
18
- $z1 = $z1*$_[0]+$_[1]*$z2;
19
- } else {
20
- $z1 = $z1*$_[2]+$_[1]*$z0;
21
- }
22
- $z0 = $z0*$_[0];
23
- $z2 = $z2*$_[2];
24
- return;
25
- }
26
-
27
- my $n = $ARGV[0];
28
- ($,, $\) = ("\t", "\n");
29
- my ($i, $s, $d); my $k = 0;
30
-
31
- # main loop
32
- for $i (1..$n) {
33
- while (
34
- $z0>$z2 || ( $d = extract_digit(3) ) != extract_digit(4)
35
- ) {
36
- # y not safe
37
- $k++; compose($k, 4*$k+2, 2*$k+1)
38
- }
39
- compose(10, -10*$d, 1, 1);
40
- $s .= $d;
41
-
42
- unless ( $i % 10 ) { print $s, ":$i"; undef $s }
43
- }
44
-
45
- $s .= ' ' x (10-$i) if $i = $n % 10;
46
-
47
- print $s, ":$n" if $s
@@ -1,50 +0,0 @@
1
- #!/usr/bin/perl
2
-
3
- # perl thread benchmark for The Great Computer Language Shootout
4
- # http://shootout.alioth.debian.org/
5
- # Contributed by Steve Clark
6
-
7
- # perl threads creates an interpreter per thread so this won't
8
- # be pretty.
9
- use threads;
10
-
11
- # The thread code blocks til it gets a message, then sends it
12
- # Argument is reference to last thread
13
- sub inc_thread {
14
- my $thr = shift;
15
- my ($num) = $thr->join;
16
- $num++;
17
- return ($num);
18
- }
19
-
20
- # special thread to kick off the chain
21
- sub zero_thread {
22
- return (0);
23
- }
24
-
25
-
26
- # Algorithm:
27
- # Create n threads from 1 to n
28
- # Each thread x has ref to thread x-1
29
- # Creates extra zero_thread to send 0 to start of chain
30
- # prints return of last thread created
31
-
32
- sub dothread {
33
- my $n = shift;
34
- my $thread = threads->new(\&zero_thread);
35
-
36
- for ($i = 1; $i <= $n; $i++) {
37
- $thread = threads->new(\&inc_thread, $thread);
38
- }
39
-
40
- # Now wait for end
41
- my $num = $thread->join;
42
-
43
- # print the result
44
- print "$num\n";
45
- }
46
-
47
-
48
- my $NUM = $ARGV[0];
49
- $NUM = 1 if ($NUM < 1);
50
- dothread ($NUM);
@@ -1,47 +0,0 @@
1
- #!/usr/bin/perl
2
- # $Id: prodcons.perl,v 1.3 2005-05-13 16:24:18 igouy-guest Exp $
3
- # http://www.bagley.org/~doug/shootout/
4
-
5
- use strict;
6
- use Thread qw(cond_wait cond_signal);
7
-
8
- my $count = 0;
9
- my $data = 0;
10
- my $produced = 0;
11
- my $consumed = 0;
12
-
13
- sub consumer {
14
- my $n = shift;
15
- while (1) {
16
- lock($count);
17
- cond_wait($count) while ($count == 0);
18
- my $i = $data;
19
- $count = 0;
20
- $consumed++;
21
- last if ($i == $n);
22
- cond_signal($count);
23
- }
24
- }
25
-
26
- sub producer {
27
- my $n = shift;
28
- for (my $i=1; $i<=$n; $i++) {
29
- lock($count);
30
- cond_wait($count) while ($count == 1);
31
- $data = $i;
32
- $count = 1;
33
- $produced++;
34
- cond_signal($count);
35
- }
36
- }
37
-
38
- sub main {
39
- my $n = ($ARGV[0] < 1) ? 1 : $ARGV[0];
40
- my $p = Thread->new(\&producer, $n);
41
- my $c = Thread->new(\&consumer, $n);
42
- $p->join;
43
- $c->join;
44
- print "$produced $consumed\n";
45
- }
46
-
47
- &main();
@@ -1,17 +0,0 @@
1
- # The Computer Language Shootout
2
- # http://shootout.alioth.debian.org/
3
- # Contributed by Kjetil Skotheim
4
-
5
- use constant {IM => 139968, IA => 3877, IC => 29573};
6
- my $LAST=42;
7
-
8
- sub gen_random {
9
- my ($n,$max) = @_;
10
- use integer;
11
- $LAST = ($LAST * IA + IC) % IM for 1..$n;
12
- no integer;
13
- return $max * $LAST / IM;
14
- }
15
-
16
- printf "%.9f\n", gen_random($ARGV[0] || 1, 100.0);
17
-
@@ -1,57 +0,0 @@
1
- # The Computer Language Shootout
2
- # http://shootout.alioth.debian.org/
3
- # recursive test, by Andreas Koenig, Sep 24 2006
4
-
5
- ### Uses temp variables to help perl free memory earlier
6
-
7
- use strict;
8
-
9
- sub Ack
10
- {
11
- my ($x, $y) = @_;
12
-
13
- return $y + 1 if $x == 0;
14
- return Ack($x - 1, 1) if $y == 0;
15
-
16
- my $y2 = Ack($x, $y - 1);
17
- my $ret = Ack($x - 1, $y2);
18
- return $ret;
19
- }
20
-
21
- sub Fib
22
- {
23
- my ($n) = @_;
24
-
25
- return 1 if $n < 2;
26
-
27
- my $f1 = Fib($n - 1);
28
- my $f2 = Fib($n - 2);
29
- return $f2 + $f1;
30
- }
31
-
32
- sub Tak
33
- {
34
- my ($x, $y, $z) = @_;
35
-
36
- if ($y < $x) {
37
- my $z1 = Tak($x - 1.0, $y, $z);
38
- my $z2 = Tak($y - 1.0, $z, $x);
39
- my $z3 = Tak($z - 1.0, $x, $y);
40
- my $ret = Tak($z1, $z2, $z3);
41
- return $ret;
42
- } else {
43
- return $z;
44
- }
45
- }
46
-
47
- my $n = ($ARGV[0] || 0) - 1;
48
- printf "Ack(%d,%d): %d\n",
49
- 3, $n + 1, Ack(3, $n + 1);
50
- printf "Fib(%.1f): %.1f\n",
51
- 28.0 + $n, Fib(28.0 + $n);
52
- printf "Tak(%d,%d,%d): %d\n",
53
- $n * 3, $n * 2, $n, Tak($n * 3, $n * 2, $n);
54
- printf "Fib(%d): %d\n",
55
- 3, Fib(3);
56
- printf "Tak(%.1f,%.1f,%.1f): %.1f\n",
57
- 3.0,2.0,1.0, Tak(3.0,2.0,1.0);
@@ -1,48 +0,0 @@
1
- # The Computer Language Benchmarks Game
2
- # http://shootout.alioth.debian.org/
3
- # contributed by Danny Sauer
4
- # completely rewritten and
5
- # cleaned up for speed and fun by
6
- # Mirco Wahab (wahab@chemie.uni-halle.de)
7
- #
8
- # Rewritten by
9
- # Emanuele Zeppieri
10
-
11
- use strict;
12
-
13
- my $input = do { local $/; <STDIN> };
14
- my $file_length = length $input;
15
-
16
- $input =~ s/^>.*$//mg;
17
- $input =~ tr/\n//d;
18
-
19
- my $seq_length = length $input;
20
-
21
- for (
22
- 'agggtaaa|tttaccct',
23
- '[cgt]gggtaaa|tttaccc[acg]',
24
- 'a[act]ggtaaa|tttacc[agt]t',
25
- 'ag[act]gtaaa|tttac[agt]ct',
26
- 'agg[act]taaa|ttta[agt]cct',
27
- 'aggg[acg]aaa|ttt[cgt]ccct',
28
- 'agggt[cgt]aa|tt[acg]accct',
29
- 'agggta[cgt]a|t[acg]taccct',
30
- 'agggtaa[cgt]|[acg]ttaccct'
31
- ) {
32
- my ($r1, $r2) = split /\|/;
33
- my $count;
34
- $count++ while $input =~ /$r1/gi;
35
- $count++ while $input =~ /$r2/gi;
36
- print "$_ $count\n"
37
- }
38
-
39
- my %iub = (
40
- B => '(c|g|t)', D => '(a|g|t)', H => '(a|c|t)' ,
41
- K => '(g|t)' , M => '(a|c)' , N => '(a|c|g|t)',
42
- R => '(a|g)' , S => '(c|g)' , V => '(a|c|g)' ,
43
- W => '(a|t)' , Y => '(c|t)'
44
- );
45
- my $findiub = '([' . join('', keys %iub) . '])';
46
- $input =~ s/$findiub/$iub{$1}/og;
47
-
48
- printf "\n%d\n%d\n%d\n", $file_length, $seq_length, length $input;
@@ -1,43 +0,0 @@
1
- # The Computer Language Shootout
2
- # http://shootout.alioth.debian.org/
3
- # contributed by Danny Sauer
4
- # completely rewritten and
5
- # cleaned up for speed and fun by
6
- # Mirco Wahab (wahab@chemie.uni-halle.de)
7
-
8
- use strict;
9
- use warnings;
10
- use re 'eval';
11
-
12
- my $content = do { local $/; <STDIN> };
13
- my $l_file = length $content;
14
- my $dispose = qr/^>.*$|\n/m;
15
- $content =~ s/$dispose//g;
16
- my $l_code = length $content;
17
-
18
- my @seq = ( 'agggtaaa|tttaccct',
19
- '[cgt]gggtaaa|tttaccc[acg]',
20
- 'a[act]ggtaaa|tttacc[agt]t',
21
- 'ag[act]gtaaa|tttac[agt]ct',
22
- 'agg[act]taaa|ttta[agt]cct',
23
- 'aggg[acg]aaa|ttt[cgt]ccct',
24
- 'agggt[cgt]aa|tt[acg]accct',
25
- 'agggta[cgt]a|t[acg]taccct',
26
- 'agggtaa[cgt]|[acg]ttaccct' );
27
-
28
- my @cnt = (0) x @seq;
29
- for my $k (0..$#seq) {
30
- ++$cnt[$k] while $content=~/$seq[$k]/gi;
31
- printf "$seq[$k] $cnt[$k]\n"
32
- }
33
-
34
- my %iub = ( B => '(c|g|t)', D => '(a|g|t)',
35
- H => '(a|c|t)', K => '(g|t)', M => '(a|c)',
36
- N => '(a|c|g|t)', R => '(a|g)', S => '(c|g)',
37
- V => '(a|c|g)', W => '(a|t)', Y => '(c|t)' );
38
-
39
- my $findiub = '(['.(join '', keys %iub).'])';
40
-
41
- 1 while $content =~ s/$findiub/$iub{$1}/og;
42
- printf "\n%d\n%d\n%d\n", $l_file, $l_code, length $content;
43
-
@@ -1,50 +0,0 @@
1
- # The Computer Language Shootout
2
- # http://shootout.alioth.debian.org/
3
- # contributed by Danny Sauer
4
- # completely rewritten and
5
- # cleaned up for speed and fun by
6
- # Mirco Wahab (wahab@chemie.uni-halle.de)
7
- #
8
- # Rewritten for speed sextuplication by
9
- # Emanuele Zeppieri
10
-
11
- use strict;
12
-
13
- my $input = do { local $/; <STDIN> };
14
- my $file_length = length $input;
15
-
16
- $input =~ s/^>.*$//mg;
17
- $input =~ tr/\n//d;
18
-
19
- my $seq_length = length $input;
20
-
21
- my $input_lc = lc $input;
22
-
23
- for (
24
- 'agggtaaa|tttaccct',
25
- '[cgt]gggtaaa|tttaccc[acg]',
26
- 'a[act]ggtaaa|tttacc[agt]t',
27
- 'ag[act]gtaaa|tttac[agt]ct',
28
- 'agg[act]taaa|ttta[agt]cct',
29
- 'aggg[acg]aaa|ttt[cgt]ccct',
30
- 'agggt[cgt]aa|tt[acg]accct',
31
- 'agggta[cgt]a|t[acg]taccct',
32
- 'agggtaa[cgt]|[acg]ttaccct'
33
- ) {
34
- my ($r1, $r2) = split /\|/;
35
- my $count;
36
- $count++ while $input_lc =~ /$r1/g;
37
- $count++ while $input_lc =~ /$r2/g;
38
- print "$_ $count\n"
39
- }
40
-
41
- my %iub = (
42
- B => '(c|g|t)', D => '(a|g|t)', H => '(a|c|t)' ,
43
- K => '(g|t)' , M => '(a|c)' , N => '(a|c|g|t)',
44
- R => '(a|g)' , S => '(c|g)' , V => '(a|c|g)' ,
45
- W => '(a|t)' , Y => '(c|t)'
46
- );
47
- my $findiub = '([' . join('', keys %iub) . '])';
48
- $input =~ s/$findiub/$iub{$1}/og;
49
-
50
- printf "\n%d\n%d\n%d\n", $file_length, $seq_length, length $input;
@@ -1,49 +0,0 @@
1
- # The Computer Language Benchmarks Game
2
- # http://shootout.alioth.debian.org/
3
- # contributed by Danny Sauer
4
- # completely rewritten and
5
- # cleaned up for speed and fun by Mirco Wahab
6
- # improved STDIN read, regex clean up by Jake Berner
7
-
8
- use strict;
9
- use warnings;
10
-
11
- my $l_file = -s STDIN;
12
- my $content; read STDIN, $content, $l_file;
13
- # this is significantly faster than using <> in this case
14
-
15
- my $dispose = qr/(^>.*)?\n/m; # slight performance gain here
16
- $content =~ s/$dispose//g;
17
- my $l_code = length $content;
18
-
19
- my @seq = ( 'agggtaaa|tttaccct',
20
- '[cgt]gggtaaa|tttaccc[acg]',
21
- 'a[act]ggtaaa|tttacc[agt]t',
22
- 'ag[act]gtaaa|tttac[agt]ct',
23
- 'agg[act]taaa|ttta[agt]cct',
24
- 'aggg[acg]aaa|ttt[cgt]ccct',
25
- 'agggt[cgt]aa|tt[acg]accct',
26
- 'agggta[cgt]a|t[acg]taccct',
27
- 'agggtaa[cgt]|[acg]ttaccct' );
28
-
29
- my @cnt = (0) x @seq;
30
- for my $k (0..$#seq) {
31
- ++$cnt[$k] while $content=~/$seq[$k]/gi;
32
- printf "$seq[$k] $cnt[$k]\n"
33
- }
34
-
35
- my %iub = ( B => '(c|g|t)', D => '(a|g|t)',
36
- H => '(a|c|t)', K => '(g|t)', M => '(a|c)',
37
- N => '(a|c|g|t)', R => '(a|g)', S => '(c|g)',
38
- V => '(a|c|g)', W => '(a|t)', Y => '(c|t)' );
39
-
40
- # using $& and no submatch marginally improves the
41
- # speed here, but mentioning $& causes perl to
42
- # define that value for the @seq patterns too, which
43
- # slows those down considerably. No change.
44
-
45
- my $findiub = '(['.(join '', keys %iub).'])';
46
-
47
- $content =~ s/$findiub/$iub{$1}/g;
48
-
49
- printf "\n%d\n%d\n%d\n", $l_file, $l_code, length $content;
@@ -1,42 +0,0 @@
1
- # The Computer Language Benchmarks Game
2
- # http://shootout.alioth.debian.org/
3
- # contributed by Danny Sauer
4
- # modified by Mirco Wahab
5
- # Sped up by 2^2 in 2007 by Steffen Mueller
6
-
7
- use strict;
8
- use warnings;
9
-
10
- my $content = do { local $/; <STDIN> };
11
- my $l_file = length $content;
12
- my $dispose = qr/^>.*$|\n/m;
13
- $content =~ s/$dispose//g;
14
- my $l_code = length $content;
15
-
16
- my @seq = ( 'agggtaaa|tttaccct',
17
- '[cgt]gggtaaa|tttaccc[acg]',
18
- 'a[act]ggtaaa|tttacc[agt]t',
19
- 'ag[act]gtaaa|tttac[agt]ct',
20
- 'agg[act]taaa|ttta[agt]cct',
21
- 'aggg[acg]aaa|ttt[cgt]ccct',
22
- 'agggt[cgt]aa|tt[acg]accct',
23
- 'agggta[cgt]a|t[acg]taccct',
24
- 'agggtaa[cgt]|[acg]ttaccct' );
25
-
26
- my @cnt = (0) x @seq;
27
- for (0..$#seq) {
28
- my ($l, $r) = map {qr/$_/} split /\|/, $seq[$_];
29
- $cnt[$_] += (() = ($content=~/$l/gi, $content=~/$r/gi));
30
- print $seq[$_], ' ', $cnt[$_], "\n";
31
- }
32
-
33
- my %iub = ( B => '(c|g|t)', D => '(a|g|t)',
34
- H => '(a|c|t)', K => '(g|t)', M => '(a|c)',
35
- N => '(a|c|g|t)', R => '(a|g)', S => '(c|g)',
36
- V => '(a|c|g)', W => '(a|t)', Y => '(c|t)' );
37
-
38
- my $findiub = '(['.(join '', keys %iub).'])';
39
-
40
- $content =~ s/$findiub/$iub{$1}/g;
41
- print "\n", $l_file, "\n", $l_code, "\n", length($content), "\n";
42
-