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,64 +0,0 @@
1
- /* The Computer Language Benchmarks Game
2
- * http://shootout.alioth.debian.org/
3
- * contributed contributed by Ian Chiew
4
- */
5
-
6
- #include <pthread.h>
7
- #include <semaphore.h>
8
- #include <stdio.h>
9
- #include <stdlib.h>
10
- #include <assert.h>
11
-
12
- #define THREADS 500
13
- #define THREAD_STACK_SIZE (1024 * 100)
14
-
15
- struct inbox {
16
- sem_t sem;
17
- int n;
18
- };
19
-
20
- struct worker {
21
- struct inbox inbox, *next_inbox;
22
- pthread_t thread;
23
- };
24
-
25
- void *work(void *data) {
26
- struct worker *worker = (struct worker *)data;
27
-
28
- while (1) {
29
- assert(sem_wait(&worker->inbox.sem) == 0);
30
- worker->next_inbox->n = worker->inbox.n + 1;
31
- assert(sem_post(&worker->next_inbox->sem) == 0);
32
- }
33
-
34
- return NULL;
35
- }
36
-
37
- int main(int argc, char **argv) {
38
- struct worker workers[THREADS];
39
- struct inbox main_inbox;
40
- pthread_attr_t attr;
41
- int n, i, j, sum = 0;
42
-
43
- assert(argc == 2 && (n = atoi(argv[1])) != -1);
44
- assert(sem_init(&main_inbox.sem, 0, 0) == 0);
45
- assert(pthread_attr_init(&attr) == 0);
46
- assert(pthread_attr_setstacksize(&attr, THREAD_STACK_SIZE) == 0);
47
-
48
- for (i = 0; i < THREADS; i++) {
49
- workers[i].next_inbox = i == 0 ? &main_inbox : &workers[i - 1].inbox;
50
- sem_init(&workers[i].inbox.sem, 0, 0);
51
- assert(pthread_create(&workers[i].thread, &attr, work, &workers[i]) == 0);
52
- }
53
-
54
- for (j = 0; j < n; j++)
55
- {
56
- workers[THREADS - 1].inbox.n = 0;
57
- assert(sem_post(&workers[THREADS - 1].inbox.sem) == 0);
58
- assert(sem_wait(&main_inbox.sem) == 0);
59
- sum += main_inbox.n;
60
- }
61
-
62
- printf("%d\n", sum);
63
- exit(0);
64
- }
@@ -1,89 +0,0 @@
1
- /* -*- mode: c -*-
2
- * $Id: methcall.gcc,v 1.1.1.1 2004-05-19 18:10:40 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
- char val = true;
73
-
74
- tog = new_Toggle(true);
75
- for (i=0; i<n; i++) {
76
- val = tog->activate(tog)->value(tog);
77
- }
78
- fputs(val ? "true\n" : "false\n", stdout);
79
- DESTROY(tog);
80
-
81
- val = true;
82
- ntog = new_NthToggle(val, 3);
83
- for (i=0; i<n; i++) {
84
- val = ntog->activate(ntog)->value(ntog);
85
- }
86
- fputs(val ? "true\n" : "false\n", stdout);
87
- DESTROY(ntog);
88
- return 0;
89
- }
@@ -1,120 +0,0 @@
1
- /* -*- mode: c -*-
2
- * $Id: moments.gcc,v 1.1.1.1 2004-05-19 18:10:47 bfulgham Exp $
3
- * http://www.bagley.org/~doug/shootout/
4
- * from Waldek Hebisch
5
- */
6
-
7
- #include <stdio.h>
8
- #include <stdlib.h>
9
- #include <math.h>
10
-
11
- #define MAXLINELEN 128
12
-
13
- /* kmedian permutes elements of a to get
14
- a[i]<=a[k] for i<k
15
- a[i]>=a[k] for i>k
16
- See. N. Wirth, Algorithms+data structures = Programs
17
- */
18
-
19
- void kmedian(double *a, int n, int k)
20
- {
21
- while (1){
22
- int j=random()%n;
23
- double b = a[j];
24
- int i=0;
25
- j = n-1;
26
- while(1) {
27
- while( a[i]<b ) i++;
28
- while( a[j]>b ) j--;
29
- if(i<j) {
30
- double tmp=a[i];
31
- a[i]=a[j];
32
- a[j]=tmp;
33
- i++;
34
- j--;
35
- } else {
36
- if(a[j]<b) j++;
37
- if(a[i]>b) i--;
38
- break;
39
- }
40
- }
41
- if(i<k) {
42
- k-=i+1;
43
- n-=i+1;
44
- a+=i+1;
45
- } else if (j>k) {
46
- n=j;
47
- } else return;
48
- }
49
- }
50
-
51
- double max(double *a, int n)
52
- {
53
- int j;
54
- double temp=a[0];
55
- for(j=1;j<n;j++) {
56
- if(a[j]>temp) {
57
- temp=a[j];
58
- }
59
- }
60
- return temp;
61
- }
62
-
63
-
64
- int
65
- main() {
66
- char line[MAXLINELEN];
67
- int i, n = 0, mid = 0;
68
- double sum = 0.0;
69
- double mean = 0.0;
70
- double average_deviation = 0.0;
71
- double standard_deviation = 0.0;
72
- double variance = 0.0;
73
- double skew = 0.0;
74
- double kurtosis = 0.0;
75
- double median = 0.0;
76
- double deviation = 0.0;
77
- int array_size = 4096;
78
-
79
- double *nums = (double *)malloc(array_size * sizeof(double));
80
-
81
- while (fgets(line, MAXLINELEN, stdin)) {
82
- sum += (nums[n++] = atof(line));
83
- if (n == array_size) {
84
- array_size *= 2;
85
- nums = (double *)realloc(nums, array_size * sizeof(double));
86
- }
87
- }
88
- mean = sum/n;
89
- for (i=0; i<n; i++) {
90
- double dev = nums[i] - mean;
91
- double dev2=dev*dev;
92
- double dev3=dev2*dev;
93
- double dev4=dev3*dev;
94
- average_deviation += fabs(dev);
95
- variance += dev2 /*pow(deviation,2)*/;
96
- skew += dev3 /* pow(deviation,3) */;
97
- kurtosis += dev4 /* pow(deviation,4) */;
98
- }
99
- average_deviation /= n;
100
- variance /= (n - 1);
101
- standard_deviation = sqrt(variance);
102
- if (variance) {
103
- skew /= (n * variance * standard_deviation);
104
- kurtosis = (kurtosis/(n * variance * variance)) - 3.0;
105
- }
106
- mid = (n/2);
107
- kmedian(nums, n, mid);
108
- median = n % 2 ? nums[mid] : (nums[mid] + max(nums,mid))/2;
109
- free(nums);
110
- printf("n: %d\n", n);
111
- printf("median: %f\n", median);
112
- printf("mean: %f\n", mean);
113
- printf("average_deviation: %f\n", average_deviation);
114
- printf("standard_deviation: %f\n", standard_deviation);
115
- printf("variance: %f\n", variance);
116
- printf("skew: %f\n", skew);
117
- printf("kurtosis: %f\n", kurtosis);
118
-
119
- return(0);
120
- }
@@ -1,142 +0,0 @@
1
- /*
2
- * The Great Computer Language Shootout
3
- * http://shootout.alioth.debian.org/
4
- *
5
- * contributed by Christoph Bauer
6
- *
7
- */
8
-
9
- #include <math.h>
10
- #include <stdio.h>
11
- #include <stdlib.h>
12
-
13
- #define pi 3.141592653589793
14
- #define solar_mass (4 * pi * pi)
15
- #define days_per_year 365.24
16
-
17
- struct planet {
18
- double x, y, z;
19
- double vx, vy, vz;
20
- double mass;
21
- };
22
-
23
- void advance(int nbodies, struct planet * bodies, double dt)
24
- {
25
- int i, j;
26
-
27
- for (i = 0; i < nbodies; i++) {
28
- struct planet * b = &(bodies[i]);
29
- for (j = i + 1; j < nbodies; j++) {
30
- struct planet * b2 = &(bodies[j]);
31
- double dx = b->x - b2->x;
32
- double dy = b->y - b2->y;
33
- double dz = b->z - b2->z;
34
- double distance = sqrt(dx * dx + dy * dy + dz * dz);
35
- double mag = dt / (distance * distance * distance);
36
- b->vx -= dx * b2->mass * mag;
37
- b->vy -= dy * b2->mass * mag;
38
- b->vz -= dz * b2->mass * mag;
39
- b2->vx += dx * b->mass * mag;
40
- b2->vy += dy * b->mass * mag;
41
- b2->vz += dz * b->mass * mag;
42
- }
43
- }
44
- for (i = 0; i < nbodies; i++) {
45
- struct planet * b = &(bodies[i]);
46
- b->x += dt * b->vx;
47
- b->y += dt * b->vy;
48
- b->z += dt * b->vz;
49
- }
50
- }
51
-
52
- double energy(int nbodies, struct planet * bodies)
53
- {
54
- double e;
55
- int i, j;
56
-
57
- e = 0.0;
58
- for (i = 0; i < nbodies; i++) {
59
- struct planet * b = &(bodies[i]);
60
- e += 0.5 * b->mass * (b->vx * b->vx + b->vy * b->vy + b->vz * b->vz);
61
- for (j = i + 1; j < nbodies; j++) {
62
- struct planet * b2 = &(bodies[j]);
63
- double dx = b->x - b2->x;
64
- double dy = b->y - b2->y;
65
- double dz = b->z - b2->z;
66
- double distance = sqrt(dx * dx + dy * dy + dz * dz);
67
- e -= (b->mass * b2->mass) / distance;
68
- }
69
- }
70
- return e;
71
- }
72
-
73
- void offset_momentum(int nbodies, struct planet * bodies)
74
- {
75
- double px = 0.0, py = 0.0, pz = 0.0;
76
- int i;
77
- for (i = 0; i < nbodies; i++) {
78
- px += bodies[i].vx * bodies[i].mass;
79
- py += bodies[i].vy * bodies[i].mass;
80
- pz += bodies[i].vz * bodies[i].mass;
81
- }
82
- bodies[0].vx = - px / solar_mass;
83
- bodies[0].vy = - py / solar_mass;
84
- bodies[0].vz = - pz / solar_mass;
85
- }
86
-
87
- #define NBODIES 5
88
- struct planet bodies[NBODIES] = {
89
- { /* sun */
90
- 0, 0, 0, 0, 0, 0, solar_mass
91
- },
92
- { /* jupiter */
93
- 4.84143144246472090e+00,
94
- -1.16032004402742839e+00,
95
- -1.03622044471123109e-01,
96
- 1.66007664274403694e-03 * days_per_year,
97
- 7.69901118419740425e-03 * days_per_year,
98
- -6.90460016972063023e-05 * days_per_year,
99
- 9.54791938424326609e-04 * solar_mass
100
- },
101
- { /* saturn */
102
- 8.34336671824457987e+00,
103
- 4.12479856412430479e+00,
104
- -4.03523417114321381e-01,
105
- -2.76742510726862411e-03 * days_per_year,
106
- 4.99852801234917238e-03 * days_per_year,
107
- 2.30417297573763929e-05 * days_per_year,
108
- 2.85885980666130812e-04 * solar_mass
109
- },
110
- { /* uranus */
111
- 1.28943695621391310e+01,
112
- -1.51111514016986312e+01,
113
- -2.23307578892655734e-01,
114
- 2.96460137564761618e-03 * days_per_year,
115
- 2.37847173959480950e-03 * days_per_year,
116
- -2.96589568540237556e-05 * days_per_year,
117
- 4.36624404335156298e-05 * solar_mass
118
- },
119
- { /* neptune */
120
- 1.53796971148509165e+01,
121
- -2.59193146099879641e+01,
122
- 1.79258772950371181e-01,
123
- 2.68067772490389322e-03 * days_per_year,
124
- 1.62824170038242295e-03 * days_per_year,
125
- -9.51592254519715870e-05 * days_per_year,
126
- 5.15138902046611451e-05 * solar_mass
127
- }
128
- };
129
-
130
- int main(int argc, char ** argv)
131
- {
132
- int n = atoi(argv[1]);
133
- int i;
134
-
135
- offset_momentum(NBODIES, bodies);
136
- printf ("%.9f\n", energy(NBODIES, bodies));
137
- for (i = 1; i <= n; i++)
138
- advance(NBODIES, bodies, 0.01);
139
- printf ("%.9f\n", energy(NBODIES, bodies));
140
- return 0;
141
- }
142
-
@@ -1,143 +0,0 @@
1
- /*
2
- * The Computer Language Benchmarks Game
3
- * http://shootout.alioth.debian.org/
4
- *
5
- * contributed by Christoph Bauer
6
- * modified by bearophile
7
- */
8
-
9
-
10
- #include <math.h>
11
- #include <stdio.h>
12
- #include <stdlib.h>
13
-
14
- #define pi 3.141592653589793
15
- #define solar_mass (4 * pi * pi)
16
- #define days_per_year 365.24
17
-
18
- struct planet {
19
- double x, y, z;
20
- double vx, vy, vz;
21
- double mass;
22
- };
23
-
24
- void advance(int nbodies, struct planet * bodies, double dt)
25
- {
26
- int i, j;
27
-
28
- for (i = 0; i < nbodies; i++) {
29
- struct planet * b = &(bodies[i]);
30
- for (j = i + 1; j < nbodies; j++) {
31
- struct planet * b2 = &(bodies[j]);
32
- double dx = b->x - b2->x;
33
- double dy = b->y - b2->y;
34
- double dz = b->z - b2->z;
35
- double distance_squared = dx * dx + dy * dy + dz * dz;
36
- double distance = sqrt(distance_squared);
37
- double mag = dt / (distance * distance_squared);
38
- b->vx -= dx * b2->mass * mag;
39
- b->vy -= dy * b2->mass * mag;
40
- b->vz -= dz * b2->mass * mag;
41
- b2->vx += dx * b->mass * mag;
42
- b2->vy += dy * b->mass * mag;
43
- b2->vz += dz * b->mass * mag;
44
- }
45
- }
46
- for (i = 0; i < nbodies; i++) {
47
- struct planet * b = &(bodies[i]);
48
- b->x += dt * b->vx;
49
- b->y += dt * b->vy;
50
- b->z += dt * b->vz;
51
- }
52
- }
53
-
54
- double energy(int nbodies, struct planet * bodies)
55
- {
56
- double e;
57
- int i, j;
58
-
59
- e = 0.0;
60
- for (i = 0; i < nbodies; i++) {
61
- struct planet * b = &(bodies[i]);
62
- e += 0.5 * b->mass * (b->vx * b->vx + b->vy * b->vy + b->vz * b->vz);
63
- for (j = i + 1; j < nbodies; j++) {
64
- struct planet * b2 = &(bodies[j]);
65
- double dx = b->x - b2->x;
66
- double dy = b->y - b2->y;
67
- double dz = b->z - b2->z;
68
- double distance = sqrt(dx * dx + dy * dy + dz * dz);
69
- e -= (b->mass * b2->mass) / distance;
70
- }
71
- }
72
- return e;
73
- }
74
-
75
- void offset_momentum(int nbodies, struct planet * bodies)
76
- {
77
- double px = 0.0, py = 0.0, pz = 0.0;
78
- int i;
79
- for (i = 0; i < nbodies; i++) {
80
- px += bodies[i].vx * bodies[i].mass;
81
- py += bodies[i].vy * bodies[i].mass;
82
- pz += bodies[i].vz * bodies[i].mass;
83
- }
84
- bodies[0].vx = - px / solar_mass;
85
- bodies[0].vy = - py / solar_mass;
86
- bodies[0].vz = - pz / solar_mass;
87
- }
88
-
89
- #define NBODIES 5
90
- struct planet bodies[NBODIES] = {
91
- { /* sun */
92
- 0, 0, 0, 0, 0, 0, solar_mass
93
- },
94
- { /* jupiter */
95
- 4.84143144246472090e+00,
96
- -1.16032004402742839e+00,
97
- -1.03622044471123109e-01,
98
- 1.66007664274403694e-03 * days_per_year,
99
- 7.69901118419740425e-03 * days_per_year,
100
- -6.90460016972063023e-05 * days_per_year,
101
- 9.54791938424326609e-04 * solar_mass
102
- },
103
- { /* saturn */
104
- 8.34336671824457987e+00,
105
- 4.12479856412430479e+00,
106
- -4.03523417114321381e-01,
107
- -2.76742510726862411e-03 * days_per_year,
108
- 4.99852801234917238e-03 * days_per_year,
109
- 2.30417297573763929e-05 * days_per_year,
110
- 2.85885980666130812e-04 * solar_mass
111
- },
112
- { /* uranus */
113
- 1.28943695621391310e+01,
114
- -1.51111514016986312e+01,
115
- -2.23307578892655734e-01,
116
- 2.96460137564761618e-03 * days_per_year,
117
- 2.37847173959480950e-03 * days_per_year,
118
- -2.96589568540237556e-05 * days_per_year,
119
- 4.36624404335156298e-05 * solar_mass
120
- },
121
- { /* neptune */
122
- 1.53796971148509165e+01,
123
- -2.59193146099879641e+01,
124
- 1.79258772950371181e-01,
125
- 2.68067772490389322e-03 * days_per_year,
126
- 1.62824170038242295e-03 * days_per_year,
127
- -9.51592254519715870e-05 * days_per_year,
128
- 5.15138902046611451e-05 * solar_mass
129
- }
130
- };
131
-
132
- int main(int argc, char ** argv)
133
- {
134
- int n = atoi(argv[1]);
135
- int i;
136
-
137
- offset_momentum(NBODIES, bodies);
138
- printf ("%.9f\n", energy(NBODIES, bodies));
139
- for (i = 1; i <= n; i++)
140
- advance(NBODIES, bodies, 0.01);
141
- printf ("%.9f\n", energy(NBODIES, bodies));
142
- return 0;
143
- }