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.
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,81 +0,0 @@
1
- /*
2
- ** The Computer Language Shootout
3
- ** http://shootout.alioth.debian.org/
4
- ** contributed by Mike Pall
5
- ** de-optimized by Isaac Gouy
6
- **
7
- ** compile with:
8
- ** gcc -O3 -fomit-frame-pointer -ffast-math -o partialsums partialsums.c -lm
9
- ** Adding -march=<yourcpu> may help, too.
10
- ** On a P4/K8 or later try adding: --march=<yourcpu> -mfpmath=sse -msse2
11
- */
12
-
13
- #include <stdio.h>
14
- #include <stdlib.h>
15
- #include <math.h>
16
-
17
- int main(int argc, char **argv)
18
- {
19
- int k, n = atoi(argv[1]);
20
- double sum, a;
21
-
22
- /*
23
- ** Yes, I (Mike Pall) tried using a double as a primary or secondary loop variable.
24
- ** But the x86 ABI requires a cleared x87 FPU stack before every call
25
- ** (e.g. to sin()) which nullifies any performance gains.
26
- **
27
- ** Combining all loops does not pay off because the x87 FPU has to shuffle
28
- ** stack slots and/or runs out of registers. This may not be entirely true
29
- ** for SSE2 with fully inlined FPU code (-ffast-math required). Dito for
30
- ** other CPUs with a register-based FPU and a sane FP ABI.
31
- **
32
- ** Auto vectorization may be a bit easier with separate loops, too.
33
- */
34
-
35
- #define kd ((double)k)
36
-
37
- sum = 0.0;
38
- for (k = 0; k <= n; k++) sum += pow(2.0/3.0, kd);
39
- printf("%.9f\t(2/3)^k\n", sum);
40
-
41
- sum = 0.0;
42
- for (k = 1 ; k <= n; k++) sum += 1/sqrt(kd); /* aka pow(kd, -0.5) */
43
- printf("%.9f\tk^-0.5\n", sum);
44
-
45
- sum = 0.0;
46
- for (k = 1; k <= n; k++) sum += 1.0/(kd*(kd+1.0));
47
- printf("%.9f\t1/k(k+1)\n", sum);
48
-
49
- sum = 0.0;
50
- for (k = 1; k <= n; k++) {
51
- double sk = sin(kd);
52
- sum += 1.0/(kd*kd*kd*sk*sk);
53
- }
54
- printf("%.9f\tFlint Hills\n", sum);
55
-
56
- sum = 0.0;
57
- for (k = 1; k <= n; k++) {
58
- double ck = cos(kd);
59
- sum += 1.0/(kd*kd*kd*ck*ck);
60
- }
61
- printf("%.9f\tCookson Hills\n", sum);
62
-
63
- sum = 0.0;
64
- for (k = 1; k <= n; k++) sum += 1.0/kd;
65
- printf("%.9f\tHarmonic\n", sum);
66
-
67
- sum = 0.0;
68
- for (k = 1; k <= n; k++) sum += 1.0/(kd*kd);
69
- printf("%.9f\tRiemann Zeta\n", sum);
70
-
71
- sum = 0.0; a = -1.0;
72
- for (k = 1; k <= n; k++) sum += (a = -a)/kd;
73
- printf("%.9f\tAlternating Harmonic\n", sum);
74
-
75
- sum = 0.0; a = -1.0;
76
- for (k = 1; k <= n; k++) sum += (a = -a)/(2.0*kd - 1.0);
77
- printf("%.9f\tGregory\n", sum);
78
-
79
- return 0;
80
- }
81
-
@@ -1,68 +0,0 @@
1
- // The Computer Language Shootout
2
- // http://shootout.alioth.debian.org/
3
- // contributed by Greg Buchholz
4
- //
5
- // compile with: -O3 -msse2 -lm
6
-
7
- #include<math.h>
8
- #include<stdio.h>
9
-
10
- typedef double v2df __attribute__ ((vector_size (16)));
11
-
12
- v2df make_vec(double a, double b)
13
- {
14
- v2df v;
15
- double *tmp;
16
- tmp = (double *)&v; *(tmp) = a; *(tmp+1) = b;
17
- return v;
18
- }
19
-
20
- double sum_vec(v2df x)
21
- {
22
- double *tmp = (double *)&x;
23
- return *(tmp) + *(tmp+1);
24
- }
25
-
26
- int main(int argc, char* argv[])
27
- {
28
- double twoThrd = 0, sqrts = 0, Flint = 0, Cookson = 0;
29
- v2df Harmonic, zeta, poly, alt, Gregory;
30
- v2df zero, one, two, init, m_one, kv, av;
31
-
32
- double k, k3, s, c;
33
- int n; n = atoi(argv[1]);
34
-
35
- zero = make_vec( 0.0, 0.0); one = make_vec( 1.0, 1.0);
36
- two = make_vec( 2.0, 2.0); m_one = make_vec(-1.0, -1.0);
37
- init = make_vec( 1.0, 2.0); av = make_vec( 1.0, -1.0);
38
-
39
- Harmonic = zeta = poly = alt = Gregory = zero;
40
-
41
- for (k=1; k<=n; k++)
42
- {
43
- twoThrd += pow(2.0/3.0, k-1);
44
- sqrts += 1.0/sqrt(k);
45
- k3 = k*k*k;
46
- s = sin(k); c = cos(k);
47
- Flint += 1.0/(k3 * s*s);
48
- Cookson += 1.0/(k3 * c*c);
49
- }
50
-
51
- for (kv=init; *(double *)(&kv)<=n; kv+=two)
52
- {
53
- poly += one /(kv*(kv+one));
54
- Harmonic+= one / kv;
55
- zeta += one /(kv*kv);
56
- alt += av / kv;
57
- Gregory += av /(two*kv - one);
58
- }
59
-
60
- #define psum(name,num) printf("%.9f\t%s\n",num,name)
61
- psum("(2/3)^k", twoThrd); psum("k^-0.5", sqrts);
62
- psum("1/k(k+1)", sum_vec(poly)); psum("Flint Hills", Flint);
63
- psum("Cookson Hills", Cookson); psum("Harmonic", sum_vec(Harmonic));
64
- psum("Riemann Zeta",sum_vec(zeta)); psum("Alternating Harmonic",sum_vec(alt));
65
- psum("Gregory", sum_vec(Gregory));
66
-
67
- return 0;
68
- }
@@ -1,105 +0,0 @@
1
- /*
2
- ** The Computer Language Shootout
3
- ** http://shootout.alioth.debian.org/
4
- ** contributed by Mike Pall
5
- **
6
- ** gcc -O3 -fomit-frame-pointer -o pidigits pidigits.c -lgmp
7
- */
8
-
9
- #include <stdio.h>
10
- #include <stdlib.h>
11
- #include <gmp.h>
12
-
13
- typedef struct ctx_s {
14
- mpz_t q, r, s, t; /* Transformation matrix components. */
15
- mpz_t u, v, w; /* Temporary numbers. */
16
- int d, i, n; /* Counters. */
17
- char digits[10+1]; /* Accumulated digits for one line. */
18
- } ctx_t;
19
-
20
- /* Compose matrix with numbers on the right. */
21
- static void compose_r(ctx_t *c, int bq, int br, int bs, int bt)
22
- {
23
- mpz_mul_si(c->u, c->r, bs);
24
- mpz_mul_si(c->r, c->r, bq);
25
- mpz_mul_si(c->v, c->t, br);
26
- mpz_add(c->r, c->r, c->v);
27
- mpz_mul_si(c->t, c->t, bt);
28
- mpz_add(c->t, c->t, c->u);
29
- mpz_mul_si(c->s, c->s, bt);
30
- mpz_mul_si(c->u, c->q, bs);
31
- mpz_add(c->s, c->s, c->u);
32
- mpz_mul_si(c->q, c->q, bq);
33
- }
34
-
35
- /* Compose matrix with numbers on the left. */
36
- static void compose_l(ctx_t *c, int bq, int br, int bs, int bt)
37
- {
38
- mpz_mul_si(c->r, c->r, bt);
39
- mpz_mul_si(c->u, c->q, br);
40
- mpz_add(c->r, c->r, c->u);
41
- mpz_mul_si(c->u, c->t, bs);
42
- mpz_mul_si(c->t, c->t, bt);
43
- mpz_mul_si(c->v, c->s, br);
44
- mpz_add(c->t, c->t, c->v);
45
- mpz_mul_si(c->s, c->s, bq);
46
- mpz_add(c->s, c->s, c->u);
47
- mpz_mul_si(c->q, c->q, bq);
48
- }
49
-
50
- /* Extract one digit. */
51
- static int extract(ctx_t *c, unsigned int j)
52
- {
53
- mpz_mul_ui(c->u, c->q, j);
54
- mpz_add(c->u, c->u, c->r);
55
- mpz_mul_ui(c->v, c->s, j);
56
- mpz_add(c->v, c->v, c->t);
57
- mpz_tdiv_q(c->w, c->u, c->v);
58
- return mpz_get_ui(c->w);
59
- }
60
-
61
- /* Print one digit. Returns 1 for the last digit. */
62
- static int prdigit(ctx_t *c, int y)
63
- {
64
- c->digits[c->d++] = '0'+y;
65
- if (++c->i % 10 == 0 || c->i == c->n) {
66
- c->digits[c->d] = '\0';
67
- printf("%-10s\t:%d\n", c->digits, c->i);
68
- c->d = 0;
69
- }
70
- return c->i == c->n;
71
- }
72
-
73
- /* Generate successive digits of PI. */
74
- static void pidigits(ctx_t *c)
75
- {
76
- int k = 1;
77
- c->d = 0;
78
- c->i = 0;
79
- mpz_init_set_ui(c->q, 1);
80
- mpz_init_set_ui(c->r, 0);
81
- mpz_init_set_ui(c->s, 0);
82
- mpz_init_set_ui(c->t, 1);
83
- mpz_init(c->u);
84
- mpz_init(c->v);
85
- mpz_init(c->w);
86
- for (;;) {
87
- int y = extract(c, 3);
88
- if (y == extract(c, 4)) {
89
- if (prdigit(c, y)) return;
90
- compose_r(c, 10, -10*y, 0, 1);
91
- } else {
92
- compose_l(c, k, 4*k+2, 0, 2*k+1);
93
- k++;
94
- }
95
- }
96
- }
97
-
98
- int main(int argc, char **argv)
99
- {
100
- ctx_t c;
101
- c.n = argc > 1 ? atoi(argv[1]) : 27;
102
- pidigits(&c);
103
- return 0;
104
- }
105
-
@@ -1,75 +0,0 @@
1
- /* The Computer Language Benchmarks Game
2
- http://shootout.alioth.debian.org/
3
- contributed by Steven Noonan
4
- */
5
-
6
- #include <stdio.h>
7
- #include <stdlib.h>
8
- #include <math.h>
9
-
10
- int
11
- isPrime ( unsigned long _candidate )
12
- {
13
- unsigned long i, limit;
14
-
15
- /* 0 and 1 aren't prime. */
16
- if ( _candidate < 2 ) return 0;
17
-
18
- /* All numbers less than 4 are prime, except '1' */
19
- if ( _candidate < 4 ) return -1;
20
-
21
- /* Other than 2, even numbers are not prime */
22
- if ( _candidate % 2 == 0 ) return 0;
23
-
24
- /* All primes are of the form 6k+i (where i = -1 or 1), except for 2 or 3. */
25
- if ( ( _candidate + 1 ) % 6 != 0
26
- && ( _candidate - 1 ) % 6 != 0 )
27
- return 0;
28
-
29
- /*
30
- if n is composite then it can be factored into two values,
31
- at least one of which is less than or equal to sqrt(n)
32
- */
33
- limit = (unsigned long)sqrt ((double)_candidate);
34
-
35
- /* Now test all other odd numbers up to sqrt(n) */
36
- for ( i = 3; i <= limit; i += 2 ) if ( _candidate % i == 0 ) return 0;
37
-
38
- return 1;
39
- }
40
-
41
- unsigned long
42
- nthPrime ( unsigned long _primeToFind )
43
- {
44
- unsigned long count = 0, num;
45
- for ( num = 1; count < _primeToFind; num++ )
46
- {
47
- if ( isPrime ( num ) )
48
- {
49
- count++;
50
- }
51
- }
52
-
53
- /* Returning num-1 because we hit a num++ between isPrime and here. */
54
- return num - 1;
55
- }
56
-
57
- int
58
- main ( int argc, char **argv )
59
- {
60
- unsigned long i, n;
61
-
62
- if ( argc < 2 ) return -1;
63
-
64
- n = atoi(argv[1]);
65
-
66
- printf ( "1st prime is %d\n", nthPrime ( 1 ) );
67
- printf ( "2nd prime is %d\n", nthPrime ( 2 ) );
68
-
69
- for ( i = 10 * n; i <= 50 * n; i += 10 * n )
70
- {
71
- printf ( "%uth prime is %u\n", i, nthPrime ( i ) );
72
- }
73
-
74
- return 0;
75
- }
@@ -1,86 +0,0 @@
1
- /* -*- mode: c -*-
2
- * $Id: prodcons.gcc,v 1.1.1.1 2004-05-19 18:11:09 bfulgham Exp $
3
- * http://www.bagley.org/~doug/shootout/
4
- */
5
-
6
- #include <stdio.h>
7
- #include <stdlib.h>
8
- #include <string.h>
9
- #include <unistd.h>
10
- #include <signal.h>
11
- #include <errno.h>
12
- #include <sys/types.h>
13
- #include <pthread.h>
14
-
15
- pthread_mutex_t mutex;
16
- pthread_cond_t control;
17
- void producer(int *arg);
18
- void consumer(int *arg);
19
- int count, data, consumed, produced;
20
-
21
-
22
- int
23
- main(int argc, char *argv[]) {
24
- int n = ((argc == 2) ? atoi(argv[1]) : 1);
25
- pthread_t t1, t2;
26
-
27
- count = data = consumed = produced = 0;
28
-
29
- if (pthread_mutex_init(&mutex, NULL)) {
30
- perror("pthread_mutex_init");
31
- exit(1);
32
- }
33
- if (pthread_cond_init(&control, NULL)) {
34
- perror("pthread_cond_init");
35
- exit(1);
36
- }
37
- if (pthread_create(&t1, (pthread_attr_t *)NULL,
38
- (void * (*)(void *))producer, (void *)&n)) {
39
- perror("pthread_create");
40
- exit(1);
41
- }
42
- if (pthread_create(&t2, (pthread_attr_t *)NULL,
43
- (void * (*)(void *))consumer, (void *)&n)) {
44
- perror("pthread_create");
45
- exit(1);
46
- }
47
-
48
- pthread_join(t1, NULL);
49
- pthread_join(t2, NULL);
50
- fprintf(stdout, "%d %d\n", produced, consumed);
51
- return(0);
52
- }
53
-
54
-
55
- void producer(int *arg) {
56
- int i, n = *arg;
57
- for (i=1; i<=n; i++) {
58
- pthread_mutex_lock(&mutex);
59
- while (count == 1) {
60
- pthread_cond_wait(&control, &mutex);
61
- }
62
- data = i;
63
- count = 1;
64
- pthread_cond_signal(&control);
65
- pthread_mutex_unlock(&mutex);
66
- produced++;
67
- }
68
- }
69
-
70
-
71
- void consumer(int *arg) {
72
- int i = 0, n = *arg;
73
- while (1) {
74
- pthread_mutex_lock(&mutex);
75
- while (count == 0) {
76
- pthread_cond_wait(&control, &mutex);
77
- }
78
- i = data;
79
- count = 0;
80
- pthread_cond_signal(&control);
81
- pthread_mutex_unlock(&mutex);
82
- consumed++;
83
- if (i == n) return;
84
- }
85
- }
86
-
@@ -1,29 +0,0 @@
1
- /* -*- mode: c -*-
2
- * $Id: random.gcc,v 1.1.1.1 2004-05-19 18:11:15 bfulgham Exp $
3
- * http://www.bagley.org/~doug/shootout/
4
- */
5
-
6
- #include <math.h>
7
- #include <stdio.h>
8
- #include <stdlib.h>
9
-
10
- #define IM 139968
11
- #define IA 3877
12
- #define IC 29573
13
-
14
- inline double gen_random(double max) {
15
- static long last = 42;
16
-
17
- last = (last * IA + IC) % IM;
18
- return( max * last / IM );
19
- }
20
-
21
- int main(int argc, char *argv[]) {
22
- int N = ((argc == 2) ? atoi(argv[1]) : 1) - 1;
23
-
24
- while (N--) {
25
- gen_random(100.0);
26
- }
27
- printf("%.9f\n", gen_random(100.0));
28
- return(0);
29
- }