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,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
- }