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,55 +0,0 @@
1
- # The Computer Language Benchmarks Game
2
- # http://shootout.alioth.debian.org/
3
-
4
- # contributed by Richard Cottrill
5
-
6
-
7
- use strict;
8
- use warnings;
9
- use threads;
10
- use threads::shared;
11
- use Thread::Semaphore;
12
-
13
- my $numThreads :shared;
14
- my $data :shared;
15
- my $result :shared;
16
- my @mutex :shared;
17
-
18
- $numThreads = 503;
19
-
20
- sub thr_func {
21
- my ($nextThread, $thr_name);
22
- $thr_name = threads->tid();
23
- threads->detach();
24
- if ($thr_name == $numThreads) {
25
- $nextThread = 1;
26
- }
27
- else {
28
- $nextThread = $thr_name + 1;
29
- }
30
- while (1) {
31
- $mutex[$thr_name]->down();
32
- if ($data) {
33
- $data = --$data;
34
- $mutex[$nextThread]->up();
35
- }
36
- else {
37
- $result = $thr_name;
38
- $mutex[0]->up();
39
- }
40
- }
41
- }
42
-
43
- $data = $ARGV[0];
44
-
45
- $mutex[0] = new Thread::Semaphore(0);
46
- {
47
- for (1 .. $numThreads) {
48
- $mutex[$_] = new Thread::Semaphore(0);
49
- threads->create(\&thr_func);
50
- }
51
- }
52
- $mutex[1]->up();
53
- $mutex[0]->down();
54
- print "$result\n";
55
- exit(0);
@@ -1,43 +0,0 @@
1
- # The Computer Language Benchmarks Game
2
- # http://shootout.alioth.debian.org/
3
-
4
- # contributed by Marc Lehmann
5
-
6
- use strict;
7
- use Coro;
8
- use Coro::Semaphore;
9
-
10
- my $threads = 503;
11
- my $result;
12
- my @data = $ARGV[0];
13
- my @mutex;
14
-
15
- sub thr_func {
16
- my ($id, $next) = @_;
17
-
18
- my $next = ($id + 1) % $threads;
19
-
20
- while () {
21
- $mutex[$id]->down;
22
-
23
- if ($data[$id]) {
24
- $data[$next] = $data[$id] - 1;
25
- $mutex[$next]->up;
26
- } else {
27
- $result = $next;
28
- print "$next\n";
29
- exit;
30
- }
31
- }
32
- }
33
-
34
-
35
- for (0 .. $threads - 1) {
36
- $mutex[$_] = new Coro::Semaphore 0;
37
- async \&thr_func, $_;
38
- }
39
-
40
- $mutex[0]->up;
41
- schedule;
42
-
43
-
data/sources/perl/wc.perl DELETED
@@ -1,20 +0,0 @@
1
- #!/usr/bin/perl
2
- # $Id: wc.perl,v 1.1.1.1 2004-05-19 18:13:51 bfulgham Exp $
3
- # http://www.bagley.org/~doug/shootout/
4
-
5
- # this program is modified from:
6
- # http://cm.bell-labs.com/cm/cs/who/bwk/interps/pap.html
7
- # Timing Trials, or, the Trials of Timing: Experiments with Scripting
8
- # and User-Interface Languages</a> by Brian W. Kernighan and
9
- # Christopher J. Van Wyk.
10
-
11
- use strict;
12
-
13
- my($nl, $nw, $nc);
14
- while (read(STDIN, $_, 4095)) {
15
- $_ .= <STDIN>;
16
- $nl += scalar(split(/\n/));
17
- $nc += length;
18
- $nw += scalar(split);
19
- }
20
- print "$nl $nw $nc\n";
@@ -1,14 +0,0 @@
1
- #!/usr/bin/perl
2
- # The Computer Language Shootout
3
- # http://shootout.alioth.debian.org/
4
- # contributed by Cosimo Streppone
5
-
6
- use strict;
7
- my($nl, $nw, $nc);
8
- while (read(STDIN, $_, 4095)) {
9
- $_ .= <STDIN>;
10
- $nc += length;
11
- $nw += scalar split;
12
- $nl += tr/\n/\n/;
13
- }
14
- print "$nl $nw $nc\n";
@@ -1,22 +0,0 @@
1
- #!/usr/bin/perl
2
- # $Id: wordfreq.perl,v 1.2 2004-07-03 05:36:11 bfulgham Exp $
3
- # http://shootout.alioth.debian.org/
4
-
5
- # Tony Bowden suggested using tr versus lc and split(/[^a-z]/)
6
- # Some corrections to comply with tr/wc/sort "master" implementation
7
-
8
- use strict;
9
-
10
- my %count = ();
11
- while (read(STDIN, $_, 4095) and $_ .= <STDIN>) {
12
- tr/A-Za-z/\n/cs;
13
- ++$count{$_} foreach split('\n', lc $_);
14
- }
15
-
16
- my @lines = ();
17
- my ($w, $c);
18
- while (($w, $c) = each(%count)) {
19
- next if ("$w" eq "");
20
- push(@lines, sprintf("%7d %s\n", $c, $w));
21
- }
22
- print sort { $b cmp $a } @lines;
File without changes
File without changes
@@ -1,21 +0,0 @@
1
- #!/usr/bin/python
2
- # $Id: ackermann.python,v 1.3 2005-03-16 08:37:07 bfulgham Exp $
3
- # http://www.bagley.org/~doug/shootout/
4
- # from Brad Knotwell
5
-
6
- import sys
7
- sys.setrecursionlimit(5000000)
8
-
9
- def Ack(M, N):
10
- if (not M):
11
- return( N + 1 )
12
- if (not N):
13
- return( Ack(M-1, 1) )
14
- return( Ack(M-1, Ack(M, N-1)) )
15
-
16
- def main():
17
- NUM = int(sys.argv[1])
18
- sys.setrecursionlimit(10000)
19
- print "Ack(3,%d): %d" % (NUM, Ack(3, NUM))
20
-
21
- main()
@@ -1,19 +0,0 @@
1
- #!/usr/bin/python
2
- # $Id: ary.python,v 1.2 2004-05-22 07:25:00 bfulgham Exp $
3
- # http://www.bagley.org/~doug/shootout/
4
- # with help from Brad Knotwell
5
-
6
- import sys
7
-
8
- def main():
9
- n = int(sys.argv[1])
10
- x = n * [0]
11
- y = n * [0]
12
- for i in xrange(0,n):
13
- x[i] = i + 1
14
- for k in xrange(0,1000):
15
- for i in xrange(n-1,-1,-1):
16
- y[i] += x[i]
17
- print y[0], y[-1]
18
-
19
- main()
@@ -1,39 +0,0 @@
1
- # The Computer Language Benchmarks Game
2
- # http://shootout.alioth.debian.org/
3
- #
4
- # contributed by Antoine Pitrou
5
- # modified by Dominique Wahli
6
- # modified by Heinrich Acker
7
-
8
- import sys, gc
9
- gc.disable()
10
-
11
- def make_tree(item, depth):
12
- if not depth: return item, None, None
13
- item2 = item + item
14
- depth -= 1
15
- return item, make_tree(item2 - 1, depth), make_tree(item2, depth)
16
-
17
- def check_tree((item, left, right)):
18
- if not left: return item
19
- return item + check_tree(left) - check_tree(right)
20
-
21
- min_depth = 4
22
- max_depth = max(min_depth + 2, int(sys.argv[1]))
23
- stretch_depth = max_depth + 1
24
-
25
- print "stretch tree of depth %d\t check:" % stretch_depth, check_tree(make_tree(0, stretch_depth))
26
-
27
- long_lived_tree = make_tree(0, max_depth)
28
-
29
- iterations = 2**max_depth
30
- for depth in xrange(min_depth, stretch_depth, 2):
31
-
32
- check = 0
33
- for i in xrange(1, iterations + 1):
34
- check += check_tree(make_tree(i, depth)) + check_tree(make_tree(-i, depth))
35
-
36
- print "%d\t trees of depth %d\t check:" % (iterations * 2, depth), check
37
- iterations /= 4
38
-
39
- print "long lived tree of depth %d\t check:" % max_depth, check_tree(long_lived_tree)
@@ -1,44 +0,0 @@
1
- # The Computer Language Shootout Benchmarks
2
- # http://shootout.alioth.debian.org/
3
- #
4
- # contributed by Antoine Pitrou
5
- # modified by Dominique Wahli
6
-
7
- from sys import argv
8
-
9
- def make_tree(item, depth):
10
- if depth > 0:
11
- item2 = 2 * item
12
- depth -= 1
13
- return (item, make_tree(item2 - 1, depth), make_tree(item2, depth))
14
- else:
15
- return (item, None, None)
16
-
17
- def check_tree((item, left, right)):
18
- if left is not None:
19
- return item + check_tree(left) - check_tree(right)
20
- else:
21
- return item
22
-
23
- def main():
24
- min_depth = 4
25
- max_depth = max(min_depth + 2, int(argv[1]))
26
- stretch_depth = max_depth + 1
27
-
28
- print "stretch tree of depth %d\t check: %d" % (stretch_depth, check_tree(make_tree(0, stretch_depth)))
29
-
30
- long_lived_tree = make_tree(0, max_depth)
31
-
32
- for depth in xrange(min_depth, stretch_depth, 2):
33
- iterations = 2**(max_depth - depth + min_depth)
34
-
35
- check = 0
36
- for i in xrange(1, iterations + 1):
37
- check += check_tree(make_tree(i, depth)) + check_tree(make_tree(-i, depth))
38
-
39
- print "%d\t trees of depth %d\t check: %d" % (iterations * 2, depth, check)
40
-
41
- print "long lived tree of depth %d\t check: %d" % (max_depth, check_tree(long_lived_tree))
42
-
43
- if __name__ == '__main__':
44
- main()
@@ -1,73 +0,0 @@
1
- # The Computer Language Benchmarks Game
2
- # http://shootout.alioth.debian.org/
3
- # contributed by Tobias Polzin, translated from Mike Pall's Lua program
4
- # modified by Josh Goldfoot to use ifs for the complement routine
5
- # modified by Heinrich Acker
6
-
7
- import sys
8
-
9
- N = int(sys.argv[1])
10
- first = second = None
11
- meetings = 0
12
-
13
- RED, BLUE, YELLOW = range(1,4)
14
-
15
- # Create a very social creature.
16
- def creature(me):
17
- global N, first, second, meetings
18
- met = 0
19
- while 1:
20
- # Meet another creature.
21
-
22
- # Wait until meeting place clears.
23
- while second:
24
- yield None
25
-
26
- other = first
27
- if other:
28
- # Hey, I found a new friend!
29
- second = me
30
- else:
31
- # Sniff, nobody here (yet).
32
- if N <= 0:
33
- # Uh oh, the mall is closed.
34
- meetings += met
35
- yield None
36
-
37
- # The mall was closed, so everyone is faded.
38
- print meetings
39
- sys.exit()
40
-
41
- N -= 1
42
- first = me
43
- while not second:
44
- yield None # Wait for another creature.
45
- other = second
46
-
47
- first = second = None
48
- yield None
49
-
50
- # perform meeting
51
- met += 1
52
- if me != other:
53
- if me == BLUE:
54
- me = other == RED and YELLOW or RED
55
- elif me == RED:
56
- me = other == BLUE and YELLOW or BLUE
57
- else:
58
- me = other == BLUE and RED or BLUE
59
-
60
- # Trivial round-robin scheduler.
61
- def schedule(threads):
62
- while 1:
63
- for thread in threads:
64
- thread()
65
-
66
- # A bunch of colorful creatures.
67
- threads = [
68
- creature(BLUE).next,
69
- creature(RED).next,
70
- creature(YELLOW).next,
71
- creature(BLUE).next]
72
-
73
- schedule(threads)
@@ -1,126 +0,0 @@
1
- # The Computer Language Benchmarks Game
2
- # http://shootout.alioth.debian.org/
3
- # contributed by Tupteq
4
- #
5
- # Based on codes from PDF and Nice #3 version.
6
- # Before use of threading.Condition I tried semaphores (code similar to
7
- # C code from PDF), but it was slower.
8
-
9
- from __future__ import with_statement # Required until Python 2.6
10
-
11
- import sys
12
- from threading import Thread, Condition
13
-
14
- # Constatnts
15
- all_colors = blue, red, yellow = "blue", "red", "yellow"
16
- stop = 0, blue # Stop condition
17
-
18
-
19
- def complement(c1, c2):
20
- # I used 'is' except '==' here, it's faster
21
- return (c1 if c1 is c2
22
- else (yellow if c2 is red else red) if c1 is blue
23
- else (yellow if c2 is blue else blue) if c1 is red
24
- else (red if c2 is blue else blue))
25
-
26
-
27
- def print_color_changes():
28
- # Print complement for each combination
29
- for c1 in all_colors:
30
- for c2 in all_colors:
31
- print "%s + %s -> %s" % (c1, c2, complement(c1, c2))
32
-
33
-
34
- class Mall:
35
- def __init__(self, n):
36
- self.first = True
37
- self.must_wait = False
38
- self.counter = n
39
- self.cond = Condition()
40
-
41
- def notify(self, me):
42
- # "with" makes all the job (no acquire() and release() needed)
43
- with self.cond:
44
- while self.must_wait and self.counter > 0:
45
- self.cond.wait()
46
-
47
- if self.first:
48
- # Creature is first
49
- self.a = me
50
- self.first = False
51
-
52
- while not self.first and self.counter > 0:
53
- self.cond.wait()
54
-
55
- he = self.b
56
- self.must_wait = False
57
- self.cond.notifyAll()
58
-
59
- self.counter -= 1
60
- else:
61
- # Creature is second
62
- self.b = me
63
- he = self.a
64
- self.first = True
65
- self.must_wait = True
66
- self.cond.notifyAll()
67
-
68
- return he if self.counter >= 0 else stop
69
-
70
-
71
- class Creature(Thread):
72
- def __init__(self, name, color, mall):
73
- # Thread initialization, thread built in name is not used
74
- Thread.__init__(self)
75
- self.name = name
76
- self.color = color
77
- self.mall = mall
78
- self.self_met = 0
79
- self.met = 0
80
-
81
- def run(self):
82
- while 1:
83
- # Go to meeting place
84
- his_name, his_color = self.mall.notify((self.name, self.color))
85
- if his_name == 0:
86
- break
87
-
88
- # Change color and increment counters
89
- self.color = complement(self.color, his_color)
90
- if self.name is his_name:
91
- self.self_met += 1
92
- self.met += 1
93
-
94
-
95
- def simulate(colors, n):
96
- # Prepare and execute simulation
97
- r = Mall(n)
98
- creatures = [Creature(i+1, color, r) for i, color in enumerate(colors)]
99
- for c in creatures:
100
- c.start()
101
- for c in creatures:
102
- c.join()
103
-
104
- # Prepare spellout function
105
- numbers = ("zero", "one", "two", "three", "four",
106
- "five", "six", "seven", "eight", "nine")
107
- def spellout(i):
108
- return " " + " ".join(numbers[int(x)] for x in str(i))
109
-
110
- # Print results
111
- print
112
- print " " + " ".join(colors)
113
- sum = 0
114
- for c in creatures:
115
- sum += c.met
116
- print str(c.met) + spellout(c.self_met)
117
- print spellout(sum)
118
-
119
-
120
- def main():
121
- n = int(sys.argv[1])
122
- print_color_changes()
123
- simulate([blue, red, yellow], n)
124
- simulate([blue, red, yellow, red, yellow, blue, red, yellow, red, blue], n)
125
-
126
- main()