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