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,84 +0,0 @@
1
- /* The Computer Language Benchmarks Game
2
- http://shootout.alioth.debian.org/
3
-
4
- contributed by Greg Buchholz (original iterative version)
5
- modified by Yannick Gingras (made tail recursive)
6
- */
7
-
8
- #include<stdio.h>
9
- #include<stdlib.h>
10
-
11
- #define _ISOC99_SOURCE
12
-
13
- __attribute__((pure, const, nothrow, sseregparm, hot))
14
- int iterate(double Zr, double Zi,
15
- double Tr, double Ti,
16
- double Cr, double Ci,
17
- int iter)
18
- {
19
-
20
- if (iter == 0)
21
- return 1;
22
-
23
- Zi = 2.0 * Zr * Zi + Ci;
24
- Zr = Tr - Ti + Cr;
25
- Tr = Zr * Zr;
26
- Ti = Zi * Zi;
27
-
28
- if (Tr + Ti > 4.0)
29
- return 0;
30
-
31
- return iterate (Zr, Zi, Tr, Ti, Cr, Ci, iter - 1);
32
- }
33
-
34
-
35
-
36
- int main (int argc, char **argv)
37
- {
38
- int w, h, buflen, bit_num = 0;
39
- char byte_acc = 0;
40
- char *buf, *pbuf;
41
- double x, y, wrat, hrat;
42
- double Cr, Ci;
43
-
44
- w = h = atoi (argv[1]);
45
- wrat = 2.0 / w;
46
- hrat = 2.0 / h;
47
- buflen = (w / 8 + (w % 8 ? 1 : 0)) * h;
48
- buf = (char *) malloc (buflen);
49
- pbuf = buf;
50
-
51
- printf ("P4\n%d %d\n", w, h);
52
-
53
-
54
- for (y = 0; y < h; ++y)
55
- {
56
- Ci = y * hrat - 1.0;
57
-
58
- for (x = 0; x < w; ++x)
59
- {
60
- Cr = x * wrat - 1.5;
61
-
62
- byte_acc <<= 1;
63
- if (iterate (0.0, 0.0, 0.0, 0.0, Cr, Ci, 50))
64
- byte_acc |= 0x01;
65
-
66
- if (++bit_num == 8)
67
- {
68
- *(pbuf++) = byte_acc;
69
- bit_num = byte_acc = 0;
70
- }
71
- }
72
-
73
- if (bit_num)
74
- {
75
- byte_acc <<= (8 - w % 8);
76
-
77
- *(pbuf++) = byte_acc;
78
- bit_num = byte_acc = 0;
79
- }
80
- }
81
-
82
- fwrite (buf, buflen, 1, stdout);
83
- return 0;
84
- }
@@ -1,63 +0,0 @@
1
- /* The Computer Language Shootout
2
- http://shootout.alioth.debian.org/
3
-
4
- contributed by Greg Buchholz
5
-
6
- for the debian (AMD) machine...
7
- compile flags: -O3 -ffast-math -march=athlon-xp -funroll-loops
8
-
9
- for the gp4 (Intel) machine...
10
- compile flags: -O3 -ffast-math -march=pentium4 -funroll-loops
11
- */
12
-
13
- #include<stdio.h>
14
-
15
- int main (int argc, char **argv)
16
- {
17
- int w, h, bit_num = 0;
18
- char byte_acc = 0;
19
- int i, iter = 50;
20
- double x, y, limit = 2.0;
21
- double Zr, Zi, Cr, Ci, Tr, Ti;
22
-
23
- w = h = atoi(argv[1]);
24
-
25
- printf("P4\n%d %d\n",w,h);
26
-
27
- for(y=0;y<h;++y)
28
- {
29
- for(x=0;x<w;++x)
30
- {
31
- Zr = Zi = Tr = Ti = 0.0;
32
- Cr = (2.0*x/w - 1.5); Ci=(2.0*y/h - 1.0);
33
-
34
- for (i=0;i<iter && (Tr+Ti <= limit*limit);++i)
35
- {
36
- Zi = 2.0*Zr*Zi + Ci;
37
- Zr = Tr - Ti + Cr;
38
- Tr = Zr * Zr;
39
- Ti = Zi * Zi;
40
- }
41
-
42
- byte_acc <<= 1;
43
- if(Tr+Ti <= limit*limit) byte_acc |= 0x01;
44
-
45
- ++bit_num;
46
-
47
- if(bit_num == 8)
48
- {
49
- putc(byte_acc,stdout);
50
- byte_acc = 0;
51
- bit_num = 0;
52
- }
53
- else if(x == w-1)
54
- {
55
- byte_acc <<= (8-w%8);
56
- putc(byte_acc,stdout);
57
- byte_acc = 0;
58
- bit_num = 0;
59
- }
60
- }
61
- }
62
- }
63
-
@@ -1,91 +0,0 @@
1
- /*The Computer Language Shootout
2
- http://shootout.alioth.debian.org/
3
-
4
- contributed by Greg Buchholz
5
-
6
- Uses SSE packed doubles to run the inner loop computations in parallel.
7
- I don't have a machine with SSE to test with, but the assembly looks
8
- pretty nice. With gcc-3.4.2 there's no difference in the assembly
9
- between -msse2 and -msse3, YMMV. It uses gcc's vector extentions
10
- ( http://gcc.gnu.org/onlinedocs/gcc-4.0.0/gcc/Vector-Extensions.html ),
11
- so it will run (slowly) on hardware without SSE.
12
-
13
- compile (AMD):
14
- gcc -D_ISOC9X_SOURCE -O3 -mfpmath=sse -msse2 -march=athlon-xp
15
- -ffast-math -funroll-loops -o mandelbrot.gcc-3.gcc_run mandelbrot.c -lm
16
-
17
- compile (INTEL):
18
- gcc -D_ISOC9X_SOURCE -O3 -mfpmath=sse -msse2 -march=pentium4
19
- -ffast-math -funroll-loops -o mandelbrot.gcc-3.gcc_run mandelbrot.c -lm
20
- */
21
-
22
- #include<stdio.h>
23
- #include<math.h>
24
- #include<fenv.h>
25
- typedef double v2df __attribute__ ((mode(V2DF))); // vector of two double floats
26
-
27
- int main (int argc, char **argv)
28
- {
29
- int w, h, bit_num = 0;
30
- char byte_acc = 0;
31
- int i, iter = 50;
32
- double x, y, limit_sqr = 4.0;
33
- v2df Zrv, Ziv, Crv, Civ, Trv, Tiv;
34
- v2df zero, one, _1p5, two;
35
- double *Zr = (double*)&Zrv, *Zi = (double*)&Ziv,
36
- *Cr = (double*)&Crv, *Ci = (double*)&Civ,
37
- *Tr = (double*)&Trv, *Ti = (double*)&Tiv;
38
-
39
- #define initv(name, val) *((double*)&name) = (double) val; \
40
- *((double*)&name+1) = (double) val
41
- initv(zero,0.0); initv(one,1.0); initv(_1p5,1.5); initv(two,2.0);
42
-
43
- w = h = atoi(argv[1]);
44
-
45
- printf("P4\n%d %d\n",w,h);
46
-
47
- for(y=0;y<h;++y)
48
- {
49
- for(x=0;x<w;x+=2)
50
- {
51
- Zrv = Ziv = Trv = Tiv = zero;
52
- *Cr = x/w; *(Cr+1) = (x+1.0)/w;
53
- *Ci = y/h; *(Ci+1) = *Ci;
54
- Crv = two * Crv - _1p5;
55
- Civ = two * Civ - one;
56
-
57
- for (i=0;i<iter && (islessequal( *Tr + *Ti, limit_sqr) ||
58
- islessequal(*(Tr+1) + *(Ti+1),limit_sqr) ); ++i)
59
- {
60
- Ziv = two*Zrv*Ziv + Civ;
61
- Zrv = Trv - Tiv + Crv;
62
- Trv = Zrv * Zrv;
63
- Tiv = Ziv * Ziv;
64
- }
65
-
66
- byte_acc <<= 2;
67
- if(islessequal(*Tr + *Ti, limit_sqr))
68
- byte_acc |= 0x02;
69
-
70
- if(islessequal(*(Tr+1) + *(Ti+1), limit_sqr))
71
- byte_acc |= 0x01;
72
-
73
- bit_num+=2;
74
-
75
- if(bit_num == 8)
76
- {
77
- putc(byte_acc,stdout);
78
- byte_acc = 0;
79
- bit_num = 0;
80
- }
81
- else if(x == w-1)
82
- {
83
- byte_acc <<= (8-w%8);
84
- putc(byte_acc,stdout);
85
- byte_acc = 0;
86
- bit_num = 0;
87
- }
88
- }
89
- }
90
- }
91
-
@@ -1,78 +0,0 @@
1
- /*The Computer Language Benchmarks Game
2
- http://shootout.alioth.debian.org/
3
-
4
- contributed by Paolo Bonzini
5
- */
6
-
7
-
8
- #include <stdio.h>
9
- #include <stdlib.h>
10
-
11
- typedef double v2df __attribute__ ((vector_size(16))); // vector of two double floats
12
- typedef int v4si __attribute__ ((vector_size(16))); // vector of four 32-bit ints
13
-
14
- int main (int argc, char **argv)
15
- {
16
- int w, h, bit_num = 0;
17
- char byte_acc = 0;
18
- int i, iter = 50;
19
- double x, y;
20
- v2df zero = { 0.0, 0.0 };
21
- v2df four = { 4.0, 4.0 };
22
- v2df nzero = -zero;
23
-
24
- /* Detect endianness. */
25
- v4si mask = (v4si)nzero;
26
- int *pmask = (int *) &mask;
27
- if (pmask[1]) pmask++;
28
-
29
- w = h = atoi(argv[1]);
30
-
31
- printf("P4\n%d %d\n",w,h);
32
-
33
- for(y=0;y<h;++y)
34
- {
35
- for(x=0;x<w;x+=2)
36
- {
37
- v2df Crv = { 2*x/w-1.5, 2*(x+1.0)/w-1.5 };
38
- v2df Civ = { 2*y/h-1.0, 2*y/h-1.0 };
39
- v2df Zrv = { 0.0, 0.0 };
40
- v2df Ziv = { 0.0, 0.0 };
41
- v2df Trv = { 0.0, 0.0 };
42
- v2df Tiv = { 0.0, 0.0 };
43
-
44
- i = 0;
45
- do {
46
- Ziv = (Zrv*Ziv) + (Zrv*Ziv) + Civ;
47
- Zrv = Trv - Tiv + Crv;
48
- Trv = Zrv * Zrv;
49
- Tiv = Ziv * Ziv;
50
-
51
- /* sign bit zeroed if 4.0 - Trv - Tiv >= 0.0 (i.e. |Z| <= 4.0). */
52
- v2df delta = four - Trv - Tiv;
53
- mask = (v4si)delta & (v4si)nzero;
54
- } while (++i < iter && !(pmask[0] && pmask[2]));
55
-
56
- byte_acc <<= 2;
57
- if(!pmask[0])
58
- byte_acc |= 0x02;
59
- if(!pmask[2])
60
- byte_acc |= 0x01;
61
- bit_num+=2;
62
-
63
- if(bit_num == 8) {
64
- fputc(byte_acc,stdout);
65
- byte_acc = 0;
66
- bit_num = 0;
67
- }
68
- }
69
-
70
- if(bit_num != 0) {
71
- byte_acc <<= (8-w%8);
72
- fputc(byte_acc,stdout);
73
- byte_acc = 0;
74
- bit_num = 0;
75
- }
76
- }
77
- }
78
-
@@ -1,66 +0,0 @@
1
- /* -*- mode: c -*-
2
- * $Id: matrix.gcc,v 1.1.1.1 2004-05-19 18:10:33 bfulgham Exp $
3
- * http://www.bagley.org/~doug/shootout/
4
- */
5
-
6
- #include <stdio.h>
7
- #include <stdlib.h>
8
- #include <unistd.h>
9
-
10
- #define SIZE 30
11
-
12
- int **mkmatrix(int rows, int cols) {
13
- int i, j, count = 1;
14
- int **m = (int **) malloc(rows * sizeof(int *));
15
- for (i=0; i<rows; i++) {
16
- m[i] = (int *) malloc(cols * sizeof(int));
17
- for (j=0; j<cols; j++) {
18
- m[i][j] = count++;
19
- }
20
- }
21
- return(m);
22
- }
23
-
24
- void zeromatrix(int rows, int cols, int **m) {
25
- int i, j;
26
- for (i=0; i<rows; i++)
27
- for (j=0; j<cols; j++)
28
- m[i][j] = 0;
29
- }
30
-
31
- void freematrix(int rows, int **m) {
32
- while (--rows > -1) { free(m[rows]); }
33
- free(m);
34
- }
35
-
36
- int **mmult(int rows, int cols, int **m1, int **m2, int **m3) {
37
- int i, j, k, val;
38
- for (i=0; i<rows; i++) {
39
- for (j=0; j<cols; j++) {
40
- val = 0;
41
- for (k=0; k<cols; k++) {
42
- val += m1[i][k] * m2[k][j];
43
- }
44
- m3[i][j] = val;
45
- }
46
- }
47
- return(m3);
48
- }
49
-
50
- int main(int argc, char *argv[]) {
51
- int i, n = ((argc == 2) ? atoi(argv[1]) : 1);
52
-
53
- int **m1 = mkmatrix(SIZE, SIZE);
54
- int **m2 = mkmatrix(SIZE, SIZE);
55
- int **mm = mkmatrix(SIZE, SIZE);
56
-
57
- for (i=0; i<n; i++) {
58
- mm = mmult(SIZE, SIZE, m1, m2, mm);
59
- }
60
- printf("%d %d %d %d\n", mm[0][0], mm[2][3], mm[3][2], mm[4][4]);
61
-
62
- freematrix(SIZE, m1);
63
- freematrix(SIZE, m2);
64
- freematrix(SIZE, mm);
65
- return(0);
66
- }
@@ -1,72 +0,0 @@
1
- /* The Computer Language Shootout
2
- * http://shootout.alioth.debian.org/
3
- * contributed contributed by Colin Gibbs
4
- */
5
-
6
- #include <stdio.h>
7
- #include <stdlib.h>
8
- #include <ucontext.h>
9
-
10
- #define STACK_SIZE 1024
11
-
12
- struct thread_context {
13
- struct thread_context *next;
14
- ucontext_t ctx;
15
- int value;
16
- char stack[STACK_SIZE];
17
- };
18
-
19
- static void thread(struct thread_context *c)
20
- {
21
- while (1) {
22
- c->next->value = c->value + 1;
23
- swapcontext(&c->ctx, &c->next->ctx);
24
- }
25
- }
26
-
27
- static void create_threads(struct thread_context **head, struct thread_context **tail, int n)
28
- {
29
- struct thread_context *c;
30
- typedef void (*thread_t)(void);
31
-
32
- c = malloc(sizeof(*c));
33
- *head = c;
34
-
35
- getcontext(&c->ctx);
36
- c->ctx.uc_stack.ss_sp = c->stack;
37
- c->ctx.uc_stack.ss_size = sizeof(c->stack);
38
- makecontext(&c->ctx, (thread_t)thread, 1, c);
39
-
40
- if (n > 1) {
41
- create_threads(&c->next, tail, n - 1);
42
- } else {
43
- c->next = NULL;
44
- *tail = c;
45
- }
46
- }
47
-
48
- static int call_threads(struct thread_context *head, struct thread_context *tail)
49
- {
50
- struct thread_context here;
51
- tail->next = &here;
52
- head->value = 0;
53
- swapcontext(&here.ctx, &head->ctx);
54
- return here.value;
55
- }
56
-
57
- int main(int argc, char **argv)
58
- {
59
- int n, i, count;
60
- struct thread_context *head, *tail;
61
-
62
- n = atoi(argv[1]);
63
- create_threads(&head, &tail, 500);
64
-
65
- count = 0;
66
- for (i = 0; i < n; i++)
67
- count += call_threads(head, tail);
68
-
69
- printf("%d\n", count);
70
-
71
- return 0;
72
- }