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,142 +0,0 @@
1
- /*
2
- * The Computer Language Benchmarks Game
3
- * http://shootout.alioth.debian.org/
4
- *
5
- * Contributed by Christoph Bauer
6
- * modified by Jorge Peixoto de Morais Neto
7
- */
8
-
9
- #include <stdio.h>
10
- #include <stdlib.h>
11
- #include <math.h>
12
- #include <err.h>
13
-
14
- #define SOLAR_MASS (4 * M_PI * M_PI)
15
-
16
- /*power-of-two alignment helps when indexing arrays */
17
- struct __attribute__ ((aligned(64))) planet_t {
18
- double x, y, z;
19
- double vx, vy, vz;
20
- double mass;
21
- };
22
- typedef struct planet_t planet_t;
23
-
24
- static void advance (planet_t *bodies, int nb, double dt) {
25
- int i, j;
26
- for (i = nb - 1; i >= 0; i--)
27
- for (j = 0; j < i; j++) {
28
- double dx = bodies[i].x - bodies[j].x;
29
- double dy = bodies[i].y - bodies[j].y;
30
- double dz = bodies[i].z - bodies[j].z;
31
- double distance = sqrt (dx * dx + dy * dy + dz * dz);
32
- double mag = dt / (distance * distance * distance);
33
- bodies[i].vx -= bodies[j].mass * mag * dx;
34
- bodies[i].vy -= bodies[j].mass * mag * dy;
35
- bodies[i].vz -= bodies[j].mass * mag * dz;
36
- bodies[j].vy += bodies[i].mass * mag * dy;
37
- bodies[j].vz += bodies[i].mass * mag * dz;
38
- bodies[j].vx += bodies[i].mass * mag * dx;
39
- }
40
-
41
- for (i = nb - 1; i >= 0; i--) {
42
- bodies[i].x += dt * bodies[i].vx;
43
- bodies[i].y += dt * bodies[i].vy;
44
- bodies[i].z += dt * bodies[i].vz;
45
- }
46
- }
47
-
48
- static inline double energy (planet_t const *bodies, int nb) {
49
- double e = 0.0;
50
- int i, j;
51
- for (i = nb - 1; i >= 0; i--)
52
- e += bodies[i].mass *
53
- (bodies[i].vx * bodies[i].vx + bodies[i].vy * bodies[i].vy + bodies[i].vz * bodies[i].vz);
54
-
55
- e /= 2;
56
- for (i = nb - 1; i >= 0; i--)
57
- for (j = 0; j < i; j++) {
58
- double dx = bodies[i].x - bodies[j].x;
59
- double dy = bodies[i].y - bodies[j].y;
60
- double dz = bodies[i].z - bodies[j].z;
61
- double distance = sqrt (dx * dx + dy * dy + dz * dz);
62
- e -= bodies[i].mass * bodies[j].mass / distance;
63
- }
64
- return e;
65
- }
66
-
67
- static inline void offset_momentum (planet_t *bodies, int nb) {
68
- double py = 0.0, pz = 0.0, px = 0.0;
69
- int i;
70
- for (i = nb - 1; i >= 0; i--) {
71
- py += bodies[i].vy * bodies[i].mass;
72
- pz += bodies[i].vz * bodies[i].mass;
73
- px += bodies[i].vx * bodies[i].mass;
74
- }
75
- /*bodies[0] is the Sun*/
76
- bodies[0].vx = -px / SOLAR_MASS;
77
- bodies[0].vy = -py / SOLAR_MASS;
78
- bodies[0].vz = -pz / SOLAR_MASS;
79
- }
80
-
81
- int main (int argc, char **argv) {
82
- #define NBODIES 5
83
- #define DAYS_PER_YEAR 365.24
84
- static planet_t bodies[NBODIES] = {
85
- { /* sun */
86
- 0, 0, 0, 0, 0, 0, SOLAR_MASS
87
- },
88
- { /* jupiter */
89
- 4.84143144246472090e+00,
90
- -1.16032004402742839e+00,
91
- -1.03622044471123109e-01,
92
- 1.66007664274403694e-03 * DAYS_PER_YEAR,
93
- 7.69901118419740425e-03 * DAYS_PER_YEAR,
94
- -6.90460016972063023e-05 * DAYS_PER_YEAR,
95
- 9.54791938424326609e-04 * SOLAR_MASS
96
- },
97
- { /* saturn */
98
- 8.34336671824457987e+00,
99
- 4.12479856412430479e+00,
100
- -4.03523417114321381e-01,
101
- -2.76742510726862411e-03 * DAYS_PER_YEAR,
102
- 4.99852801234917238e-03 * DAYS_PER_YEAR,
103
- 2.30417297573763929e-05 * DAYS_PER_YEAR,
104
- 2.85885980666130812e-04 * SOLAR_MASS
105
- },
106
- { /* uranus */
107
- 1.28943695621391310e+01,
108
- -1.51111514016986312e+01,
109
- -2.23307578892655734e-01,
110
- 2.96460137564761618e-03 * DAYS_PER_YEAR,
111
- 2.37847173959480950e-03 * DAYS_PER_YEAR,
112
- -2.96589568540237556e-05 * DAYS_PER_YEAR,
113
- 4.36624404335156298e-05 * SOLAR_MASS
114
- },
115
- { /* neptune */
116
- 1.53796971148509165e+01,
117
- -2.59193146099879641e+01,
118
- 1.79258772950371181e-01,
119
- 2.68067772490389322e-03 * DAYS_PER_YEAR,
120
- 1.62824170038242295e-03 * DAYS_PER_YEAR,
121
- -9.51592254519715870e-05 * DAYS_PER_YEAR,
122
- 5.15138902046611451e-05 * SOLAR_MASS
123
- }
124
- };
125
- long n = 1000;
126
- if (argc >= 2) {
127
- char *tail;
128
- char const *arg = argv[1];
129
- n = strtol (arg, &tail, 0);
130
- if (tail == arg)
131
- errx (1, "Could no convert \"%s\" to a long integer", arg);
132
- }
133
-
134
- offset_momentum (bodies, NBODIES);
135
- printf ("%.9f\n", energy (bodies, NBODIES));
136
- long i;
137
- for (i = n; i > 0; i--)
138
- advance (bodies, NBODIES, 0.01);
139
-
140
- printf ("%.9f\n", energy (bodies, NBODIES));
141
- return 0;
142
- }
@@ -1,25 +0,0 @@
1
- /* -*- mode: c -*-
2
- * $Id: nestedloop.gcc,v 1.1.1.1 2004-05-19 18:10:56 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
- int
11
- main(int argc, char *argv[]) {
12
- int n = ((argc == 2) ? atoi(argv[1]) : 1);
13
- int a, b, c, d, e, f, x=0;
14
-
15
- for (a=0; a<n; a++)
16
- for (b=0; b<n; b++)
17
- for (c=0; c<n; c++)
18
- for (d=0; d<n; d++)
19
- for (e=0; e<n; e++)
20
- for (f=0; f<n; f++)
21
- x++;
22
-
23
- printf("%d\n", x);
24
- return(0);
25
- }
@@ -1,35 +0,0 @@
1
- // The Computer Language Shootout
2
- // http://shootout.alioth.debian.org/
3
- // Precedent C entry modified by bearophile for speed and size, 31 Jan 2006
4
- // Compile with: -O3 -s -std=c99 -fomit-frame-pointer
5
-
6
- #include <stdio.h>
7
- #include <stdlib.h>
8
- #include <string.h>
9
-
10
- typedef unsigned char boolean;
11
-
12
-
13
- static void nsieve(int m) {
14
- unsigned int count = 0, i, j;
15
- boolean * flags = (boolean *) malloc(m * sizeof(boolean));
16
- memset(flags, 1, m);
17
-
18
- for (i = 2; i < m; ++i)
19
- if (flags[i]) {
20
- ++count;
21
- for (j = i << 1; j < m; j += i)
22
- // if (flags[j])
23
- flags[j] = 0;
24
- }
25
-
26
- free(flags);
27
- printf("Primes up to %8u %8u\n", m, count);
28
- }
29
-
30
- int main(int argc, char * argv[]) {
31
- int m = atoi(argv[1]);
32
- for (int i = 0; i < 3; i++)
33
- nsieve(10000 << (m-i));
34
- return 0;
35
- }
@@ -1,37 +0,0 @@
1
- /*
2
- ** The Great Computer Language Shootout
3
- ** http://shootout.alioth.debian.org/
4
- ** contributed by Mike Pall
5
- */
6
-
7
- #include <stdio.h>
8
- #include <stdlib.h>
9
- #include <string.h>
10
-
11
- typedef unsigned int bits;
12
- #define BBITS (sizeof(bits) * 8)
13
- #define BSIZE(x) (((x) / 8) + sizeof(bits))
14
- #define BMASK(x) (1 << ((x) % BBITS))
15
- #define BTEST(p, x) ((p)[(x) / BBITS] & BMASK(x))
16
- #define BFLIP(p, x) (p)[(x) / BBITS] ^= BMASK(x)
17
-
18
- int main(int argc, char **argv)
19
- {
20
- unsigned int m, sz = 10000 << (argc > 1 ? atoi(argv[1]) : 1);
21
- bits *primes = (bits *)malloc(BSIZE(sz));
22
- if (!primes) return 1;
23
- for (m = 0; m <= 2; m++) {
24
- unsigned int i, j, count = 0, n = sz >> m;
25
- memset(primes, 0xff, BSIZE(n));
26
- for (i = 2; i <= n; i++)
27
- if (BTEST(primes, i)) {
28
- count++;
29
- for (j = i + i; j <= n; j += i)
30
- if (BTEST(primes, j)) BFLIP(primes, j);
31
- }
32
- printf("Primes up to %8d %8d\n", n, count);
33
- }
34
- free(primes);
35
- return 0;
36
- }
37
-
@@ -1,53 +0,0 @@
1
- // The Computer Language Shootout
2
- // http://shootout.alioth.debian.org/
3
- // Precedent C entry modified by bearophile for speed and size, 31 Jan 2006
4
- // Modified to use bits to hold state by mukund
5
- // Compile with: gcc -pipe -Wall -O3 -funroll-all-loops -march=athlon64 -m3dnow nsieve.c -o nsieve
6
-
7
- #include <stdio.h>
8
- #include <stdint.h>
9
- #include <stdlib.h>
10
- #include <string.h>
11
-
12
- #define INDEX_INT(i) ((i) >> 5)
13
- #define INDEX_BIT(i) (1 << ((i) & 0x1f))
14
- #define INDEX_BITMASK(i) (~INDEX_BIT(i))
15
-
16
- int
17
- main (int argc, char *argv[])
18
- {
19
- int n = atoi (argv[1]);
20
- unsigned int count1 = 0, count2 = 0, count4 = 0;
21
- unsigned int i, j, m, m2;
22
- uint32_t *flags;
23
-
24
- m = 10000 << n;
25
-
26
- flags = (uint32_t *) malloc ((m / sizeof (uint32_t)) + 1);
27
- memset (flags, 0xff, (m / sizeof (uint32_t)) + 1);
28
-
29
- for (i = 2; i < m; ++i)
30
- {
31
- if (flags[INDEX_INT (i)] & INDEX_BIT (i))
32
- {
33
- for (j = i * 2; j <= m; j += i)
34
- flags[INDEX_INT (j)] &= INDEX_BITMASK (j);
35
-
36
- ++count1;
37
- m2 = m >> 1;
38
- if (i < m2)
39
- ++count2;
40
- m2 = m2 >> 1;
41
- if (i < m2)
42
- ++count4;
43
- }
44
- }
45
-
46
- printf ("Primes up to %8u %8u\n", m, count1);
47
- printf ("Primes up to %8u %8u\n", m / 2, count2);
48
- printf ("Primes up to %8u %8u\n", m / 4, count4);
49
-
50
- free (flags);
51
-
52
- return 0;
53
- }
@@ -1,95 +0,0 @@
1
- /* -*- mode: c -*-
2
- * $Id: objinst.gcc,v 1.1.1.1 2004-05-19 18:11:02 bfulgham Exp $
3
- * http://www.bagley.org/~doug/shootout/
4
- */
5
-
6
- #include <stdio.h>
7
- #include <stdlib.h>
8
-
9
-
10
- enum {false, true};
11
-
12
- #define TOGGLE \
13
- char state; \
14
- char (*value)(struct Toggle *); \
15
- struct Toggle *(*activate)(struct Toggle *)
16
-
17
- #define DESTROY free
18
-
19
- typedef struct Toggle {
20
- TOGGLE;
21
- } Toggle;
22
-
23
- char toggle_value(Toggle *this) {
24
- return(this->state);
25
- }
26
- Toggle *toggle_activate(Toggle *this) {
27
- this->state = !this->state;
28
- return(this);
29
- }
30
- Toggle *init_Toggle(Toggle *this, char start_state) {
31
- this->state = start_state;
32
- this->value = toggle_value;
33
- this->activate = toggle_activate;
34
- return(this);
35
- }
36
- Toggle *new_Toggle(char start_state) {
37
- Toggle *this = (Toggle *)malloc(sizeof(Toggle));
38
- return(init_Toggle(this, start_state));
39
- }
40
-
41
-
42
- typedef struct NthToggle {
43
- TOGGLE;
44
- int count_max;
45
- int counter;
46
- } NthToggle;
47
-
48
- NthToggle *nth_toggle_activate(NthToggle *this) {
49
- if (++this->counter >= this->count_max) {
50
- this->state = !this->state;
51
- this->counter = 0;
52
- }
53
- return(this);
54
- }
55
- NthToggle *init_NthToggle(NthToggle *this, int max_count) {
56
- this->count_max = max_count;
57
- this->counter = 0;
58
- this->activate = (Toggle *(*)(Toggle *))nth_toggle_activate;
59
- return(this);
60
- }
61
- NthToggle *new_NthToggle(char start_state, int max_count) {
62
- NthToggle *this = (NthToggle *)malloc(sizeof(NthToggle));
63
- this = (NthToggle *)init_Toggle((Toggle *)this, start_state);
64
- return(init_NthToggle(this, max_count));
65
- }
66
-
67
-
68
- int main(int argc, char *argv[]) {
69
- int i, n = ((argc == 2) ? atoi(argv[1]) : 1);
70
- Toggle *tog;
71
- NthToggle *ntog;
72
-
73
- tog = new_Toggle(true);
74
- for (i=0; i<5; i++) {
75
- fputs((tog->activate(tog)->value(tog)) ? "true\n" : "false\n", stdout);
76
- }
77
- DESTROY(tog);
78
- for (i=0; i<n; i++) {
79
- tog = new_Toggle(true);
80
- DESTROY(tog);
81
- }
82
-
83
- fputs("\n", stdout);
84
-
85
- ntog = new_NthToggle(true, 3);
86
- for (i=0; i<8; i++) {
87
- fputs((ntog->activate(ntog)->value(ntog)) ? "true\n" : "false\n", stdout);
88
- }
89
- DESTROY(ntog);
90
- for (i=0; i<n; i++) {
91
- ntog = new_NthToggle(true, 3);
92
- DESTROY(ntog);
93
- }
94
- return 0;
95
- }
@@ -1,86 +0,0 @@
1
- /*
2
- ** The Great Computer Language Shootout
3
- ** http://shootout.alioth.debian.org/
4
- ** contributed by Mike Pall
5
- **
6
- ** compile with:
7
- ** gcc -O3 -fomit-frame-pointer -ffast-math -o partialsums partialsums.c -lm
8
- ** Adding -march=<yourcpu> may help, too.
9
- ** On a P4/K8 or later try adding: --march=<yourcpu> -mfpmath=sse -msse2
10
- */
11
-
12
- #include <stdio.h>
13
- #include <stdlib.h>
14
- #include <math.h>
15
-
16
- int main(int argc, char **argv)
17
- {
18
- int k, n = atoi(argv[1]);
19
- double sum;
20
-
21
- /*
22
- ** Yes, I tried using a double as a primary or secondary loop variable.
23
- ** But the x86 ABI requires a cleared x87 FPU stack before every call
24
- ** (e.g. to sin()) which nullifies any performance gains.
25
- **
26
- ** Combining all loops does not pay off because the x87 FPU has to shuffle
27
- ** stack slots and/or runs out of registers. This may not be entirely true
28
- ** for SSE2 with fully inlined FPU code (-ffast-math required). Dito for
29
- ** other CPUs with a register-based FPU and a sane FP ABI.
30
- **
31
- ** Auto vectorization may be a bit easier with separate loops, too.
32
- */
33
- #define kd ((double)k)
34
-
35
- sum = 0.0;
36
- for (k = 0; k <= n; k++) { /* pow(2.0/3.0, kd) inlined */
37
- double x = 1.0, q = 2.0/3.0;
38
- int j = k;
39
- for (;;) { if (j & 1) x *= q; if ((j >>= 1) == 0) break; q = q*q; }
40
- sum += x;
41
- }
42
- printf("%.9f\t(2/3)^k\n", sum);
43
-
44
- sum = 0.0;
45
- for (k = 1 ; k <= n; k++) sum += 1/sqrt(kd); /* aka pow(kd, -0.5) */
46
- printf("%.9f\tk^-0.5\n", sum);
47
-
48
- sum = 0.0;
49
- for (k = 1; k <= n; k++) sum += 1.0/(kd*(kd+1.0));
50
- printf("%.9f\t1/k(k+1)\n", sum);
51
-
52
- sum = 0.0;
53
- for (k = 1; k <= n; k++) {
54
- double sk = sin(kd);
55
- sum += 1.0/(kd*kd*kd*sk*sk);
56
- }
57
- printf("%.9f\tFlint Hills\n", sum);
58
-
59
- sum = 0.0;
60
- for (k = 1; k <= n; k++) {
61
- double ck = cos(kd);
62
- sum += 1.0/((kd*kd)*kd*ck*ck);
63
- }
64
- printf("%.9f\tCookson Hills\n", sum);
65
-
66
- sum = 0.0;
67
- for (k = 1; k <= n; k++) sum += 1.0/kd;
68
- printf("%.9f\tHarmonic\n", sum);
69
-
70
- sum = 0.0;
71
- for (k = 1; k <= n; k++) sum += 1.0/(kd*kd);
72
- printf("%.9f\tRiemann Zeta\n", sum);
73
-
74
- sum = 0.0;
75
- for (k = 1; k <= n-1; k += 2) sum += 1.0/kd;
76
- for (k = 2; k <= n; k += 2) sum -= 1.0/kd;
77
- printf("%.9f\tAlternating Harmonic\n", sum);
78
-
79
- sum = 0.0;
80
- for (k = 1; k <= 2*n-1; k += 4) sum += 1.0/kd;
81
- for (k = 3; k <= 2*n; k += 4) sum -= 1.0/kd;
82
- printf("%.9f\tGregory\n", sum);
83
-
84
- return 0;
85
- }
86
-