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.
- data/Manifest +0 -312
- data/Rakefile +2 -2
- data/sourceclassifier.gemspec +6 -6
- metadata +4 -316
- data/sources/gcc/ackermann.gcc-2.gcc +0 -93
- data/sources/gcc/ackermann.gcc-3.gcc +0 -20
- data/sources/gcc/ary.gcc +0 -40
- data/sources/gcc/binarytrees.gcc +0 -136
- data/sources/gcc/binarytrees.gcc-2.gcc +0 -140
- data/sources/gcc/binarytrees.gcc-3.gcc +0 -134
- data/sources/gcc/chameneos.gcc +0 -117
- data/sources/gcc/chameneos.gcc-2.gcc +0 -134
- data/sources/gcc/chameneos.gcc-3.gcc +0 -120
- data/sources/gcc/chameneosredux.gcc +0 -306
- data/sources/gcc/echo.gcc +0 -144
- data/sources/gcc/except.gcc +0 -52
- data/sources/gcc/fannkuch.gcc +0 -105
- data/sources/gcc/fannkuch.gcc-2.gcc +0 -94
- data/sources/gcc/fasta.gcc +0 -158
- data/sources/gcc/fasta.gcc-2.gcc +0 -132
- data/sources/gcc/fasta.gcc-3.gcc +0 -145
- data/sources/gcc/fasta.gcc-4.gcc +0 -141
- data/sources/gcc/fibo.gcc +0 -20
- data/sources/gcc/harmonic.gcc +0 -22
- data/sources/gcc/hash.gcc +0 -31
- data/sources/gcc/hash2.gcc +0 -38
- data/sources/gcc/heapsort.gcc +0 -72
- data/sources/gcc/hello.gcc-2.gcc +0 -12
- data/sources/gcc/hello.gcc-3.gcc +0 -20
- data/sources/gcc/knucleotide.gcc +0 -173
- data/sources/gcc/knucleotide.gcc-2.gcc +0 -168
- data/sources/gcc/lists.gcc +0 -226
- data/sources/gcc/magicsquares.gcc +0 -378
- data/sources/gcc/mandelbrot.gcc +0 -84
- data/sources/gcc/mandelbrot.gcc-2.gcc +0 -63
- data/sources/gcc/mandelbrot.gcc-3.gcc +0 -91
- data/sources/gcc/mandelbrot.gcc-4.gcc +0 -78
- data/sources/gcc/matrix.gcc +0 -66
- data/sources/gcc/message.gcc-2.gcc +0 -72
- data/sources/gcc/message.gcc-3.gcc +0 -64
- data/sources/gcc/methcall.gcc +0 -89
- data/sources/gcc/moments.gcc +0 -120
- data/sources/gcc/nbody.gcc +0 -142
- data/sources/gcc/nbody.gcc-2.gcc +0 -143
- data/sources/gcc/nbody.gcc-3.gcc +0 -142
- data/sources/gcc/nestedloop.gcc +0 -25
- data/sources/gcc/nsieve.gcc +0 -35
- data/sources/gcc/nsievebits.gcc-2.gcc +0 -37
- data/sources/gcc/nsievebits.gcc-3.gcc +0 -53
- data/sources/gcc/objinst.gcc +0 -95
- data/sources/gcc/partialsums.gcc +0 -86
- data/sources/gcc/partialsums.gcc-3.gcc +0 -81
- data/sources/gcc/partialsums.gcc-4.gcc +0 -68
- data/sources/gcc/pidigits.gcc +0 -105
- data/sources/gcc/primes.gcc +0 -75
- data/sources/gcc/prodcons.gcc +0 -86
- data/sources/gcc/random.gcc +0 -29
- data/sources/gcc/raytracer.gcc +0 -125
- data/sources/gcc/raytracer.gcc-2.gcc +0 -181
- data/sources/gcc/recursive.gcc +0 -68
- data/sources/gcc/recursive.gcc-2.gcc +0 -55
- data/sources/gcc/regexdna.gcc-2.gcc +0 -126
- data/sources/gcc/regexmatch.gcc +0 -136
- data/sources/gcc/revcomp.gcc +0 -85
- data/sources/gcc/revcomp.gcc-2.gcc +0 -88
- data/sources/gcc/revcomp.gcc-4.gcc +0 -71
- data/sources/gcc/reversefile.gcc +0 -103
- data/sources/gcc/reversefile.gcc-2.gcc +0 -56
- data/sources/gcc/sieve.gcc +0 -34
- data/sources/gcc/spectralnorm.gcc +0 -54
- data/sources/gcc/spellcheck.gcc +0 -72
- data/sources/gcc/spellcheck.gcc-2.gcc +0 -61
- data/sources/gcc/strcat.gcc +0 -38
- data/sources/gcc/sumcol.gcc-2.gcc +0 -98
- data/sources/gcc/sumcol.gcc-3.gcc +0 -22
- data/sources/gcc/sumcol.gcc-4.gcc +0 -18
- data/sources/gcc/sumcol.gcc-5.gcc +0 -32
- data/sources/gcc/takfp.gcc +0 -23
- data/sources/gcc/tcp-stream.gcc +0 -122
- data/sources/gcc/tcpecho.gcc +0 -122
- data/sources/gcc/tcpecho.gcc-2.gcc +0 -136
- data/sources/gcc/tcprequest.gcc +0 -122
- data/sources/gcc/threadring.gcc +0 -73
- data/sources/gcc/wc.gcc +0 -52
- data/sources/gcc/wc.gcc-2.gcc +0 -40
- data/sources/gcc/wc.gcc-3.gcc +0 -46
- data/sources/gcc/wordfreq.gcc-2.gcc +0 -85
- data/sources/perl/ackermann.perl +0 -28
- data/sources/perl/ackermann.perl-2.perl +0 -25
- data/sources/perl/ackermann.perl-3.perl +0 -20
- data/sources/perl/ackermann.perl-4.perl +0 -18
- data/sources/perl/ary.perl +0 -25
- data/sources/perl/ary.perl-2.perl +0 -23
- data/sources/perl/binarytrees.perl +0 -66
- data/sources/perl/binarytrees.perl-2.perl +0 -71
- data/sources/perl/chameneos.perl +0 -67
- data/sources/perl/echo.perl +0 -81
- data/sources/perl/except.perl +0 -73
- data/sources/perl/fannkuch.perl +0 -44
- data/sources/perl/fannkuch.perl-2.perl +0 -38
- data/sources/perl/fasta.perl +0 -112
- data/sources/perl/fasta.perl-2.perl +0 -135
- data/sources/perl/fasta.perl-4.perl +0 -122
- data/sources/perl/fibo.perl +0 -15
- data/sources/perl/fibo.perl-2.perl +0 -0
- data/sources/perl/fibo.perl-3.perl +0 -0
- data/sources/perl/harmonic.perl +0 -7
- data/sources/perl/hash.perl +0 -23
- data/sources/perl/hash.perl-2.perl +0 -17
- data/sources/perl/hash.perl-3.perl +0 -24
- data/sources/perl/hash2.perl +0 -16
- data/sources/perl/heapsort.perl +0 -65
- data/sources/perl/heapsort.perl-2.perl +0 -0
- data/sources/perl/hello.perl +0 -5
- data/sources/perl/knucleotide.perl-2.perl +0 -30
- data/sources/perl/lists.perl +0 -48
- data/sources/perl/mandelbrot.perl-2.perl +0 -32
- data/sources/perl/matrix.perl +0 -59
- data/sources/perl/matrix.perl-2.perl +0 -0
- data/sources/perl/matrix.perl-3.perl +0 -0
- data/sources/perl/message.perl +0 -27
- data/sources/perl/methcall.perl +0 -66
- data/sources/perl/moments.perl +0 -44
- data/sources/perl/nbody.perl +0 -108
- data/sources/perl/nestedloop.perl +0 -28
- data/sources/perl/nsieve.perl-2.perl +0 -41
- data/sources/perl/nsieve.perl-4.perl +0 -43
- data/sources/perl/nsievebits.perl +0 -37
- data/sources/perl/objinst.perl +0 -73
- data/sources/perl/partialsums.perl-3.perl +0 -31
- data/sources/perl/pidigits.perl +0 -52
- data/sources/perl/pidigits.perl-2.perl +0 -47
- data/sources/perl/process.perl +0 -50
- data/sources/perl/prodcons.perl +0 -47
- data/sources/perl/random.perl-4.perl +0 -17
- data/sources/perl/recursive.perl-2.perl +0 -57
- data/sources/perl/regexdna.perl +0 -48
- data/sources/perl/regexdna.perl-2.perl +0 -43
- data/sources/perl/regexdna.perl-3.perl +0 -50
- data/sources/perl/regexdna.perl-4.perl +0 -49
- data/sources/perl/regexdna.perl-5.perl +0 -42
- data/sources/perl/regexdna.perl-6.perl +0 -43
- data/sources/perl/regexmatch.perl +0 -35
- data/sources/perl/revcomp.perl-2.perl +0 -34
- data/sources/perl/reversefile.perl +0 -8
- data/sources/perl/reversefile.perl-2.perl +0 -0
- data/sources/perl/reversefile.perl-3.perl +0 -0
- data/sources/perl/sieve.perl +0 -23
- data/sources/perl/spectralnorm.perl-2.perl +0 -54
- data/sources/perl/spellcheck.perl +0 -24
- data/sources/perl/strcat.perl +0 -13
- data/sources/perl/strcat.perl-2.perl +0 -0
- data/sources/perl/sumcol.perl +0 -8
- data/sources/perl/takfp.perl +0 -23
- data/sources/perl/takfp.perl-3.perl +0 -20
- data/sources/perl/tcpecho.perl +0 -61
- data/sources/perl/tcprequest.perl +0 -61
- data/sources/perl/tcpstream.perl +0 -61
- data/sources/perl/threadring.perl +0 -55
- data/sources/perl/threadring.perl-2.perl +0 -43
- data/sources/perl/wc.perl +0 -20
- data/sources/perl/wc.perl-2.perl +0 -14
- data/sources/perl/wordfreq.perl +0 -22
- data/sources/perl/wordfreq.perl-3.perl +0 -0
- data/sources/perl/wordfreq.perl3.perl +0 -0
- data/sources/python/ackermann.python +0 -21
- data/sources/python/ary.python +0 -19
- data/sources/python/binarytrees.python +0 -39
- data/sources/python/binarytrees.python-3.python +0 -44
- data/sources/python/chameneos.python-6.python +0 -73
- data/sources/python/chameneosredux.python +0 -126
- data/sources/python/chameneosredux.python-2.python +0 -122
- data/sources/python/dispatch.python +0 -176
- data/sources/python/dispatch.python-2.python +0 -136
- data/sources/python/echo.python +0 -64
- data/sources/python/except.python +0 -62
- data/sources/python/fannkuch.python +0 -50
- data/sources/python/fannkuch.python-2.python +0 -54
- data/sources/python/fasta.python-2.python +0 -79
- data/sources/python/fibo.python +0 -17
- data/sources/python/fibo.python-2.python +0 -0
- data/sources/python/fibo.python-3.python +0 -0
- data/sources/python/harmonic.python-2.python +0 -9
- data/sources/python/hash.python +0 -21
- data/sources/python/hash.python-2.python +0 -0
- data/sources/python/hash2.python +0 -30
- data/sources/python/heapsort.python-3.python +0 -66
- data/sources/python/hello.python +0 -5
- data/sources/python/implicitode.python +0 -231
- data/sources/python/knucleotide.python +0 -55
- data/sources/python/lists.python +0 -44
- data/sources/python/magicsquares.python +0 -145
- data/sources/python/mandelbrot.python +0 -44
- data/sources/python/mandelbrot.python-2.python +0 -35
- data/sources/python/mandelbrot.python-3.python +0 -46
- data/sources/python/matrix.python +0 -34
- data/sources/python/matrix.python-2.python +0 -23
- data/sources/python/message.python +0 -24
- data/sources/python/message.python-2.python +0 -20
- data/sources/python/message.python-3.python +0 -19
- data/sources/python/meteor.python +0 -210
- data/sources/python/meteor.python-2.python +0 -192
- data/sources/python/methcall.python +0 -51
- data/sources/python/moments.python +0 -65
- data/sources/python/nbody.python +0 -123
- data/sources/python/nbody.python-2.python +0 -120
- data/sources/python/nestedloop.python +0 -24
- data/sources/python/nsieve.python +0 -27
- data/sources/python/nsieve.python-2.python +0 -23
- data/sources/python/nsieve.python-4.python +0 -25
- data/sources/python/nsievebits.python +0 -27
- data/sources/python/nsievebits.python-2.python +0 -43
- data/sources/python/objinst.python +0 -53
- data/sources/python/partialsums.python +0 -37
- data/sources/python/partialsums.python-2.python +0 -35
- data/sources/python/partialsums.python-3.python +0 -48
- data/sources/python/pidigits.python +0 -38
- data/sources/python/pidigits.python-3.python +0 -63
- data/sources/python/pidigits.python-4.python +0 -24
- data/sources/python/process.python +0 -51
- data/sources/python/process.python-2.python +0 -133
- data/sources/python/prodcons.python +0 -51
- data/sources/python/prodcons.python-2.python +0 -0
- data/sources/python/random.python +0 -27
- data/sources/python/raytracer.python +0 -203
- data/sources/python/recursive.python +0 -35
- data/sources/python/regexdna.python +0 -39
- data/sources/python/regexdna.python-2.python +0 -34
- data/sources/python/regexmatch.python +0 -36
- data/sources/python/revcomp.python-3.python +0 -31
- data/sources/python/reversefile.python +0 -13
- data/sources/python/reversefile.python-2.python +0 -0
- data/sources/python/reversefile.python-3.python +0 -0
- data/sources/python/sieve.python +0 -50
- data/sources/python/spectralnorm.python-2.python +0 -36
- data/sources/python/spellcheck.python +0 -17
- data/sources/python/strcat.python +0 -35
- data/sources/python/strcat.python-2.python +0 -0
- data/sources/python/sumcol.python-2.python +0 -0
- data/sources/python/sumcol.python-3.python +0 -0
- data/sources/python/takfp.python +0 -19
- data/sources/python/tcpecho.python +0 -67
- data/sources/python/tcprequest.python +0 -67
- data/sources/python/tcpstream.python +0 -67
- data/sources/python/threadring.python +0 -47
- data/sources/python/threadring.python-2.python +0 -40
- data/sources/python/threadring.python-3.python +0 -34
- data/sources/python/wc.python-2.python +0 -19
- data/sources/python/wordfreq.python +0 -43
- data/sources/python/wordfreq.python-2.python +0 -0
- data/sources/python/wordfreq.python-3.python +0 -28
- data/sources/python/wordfreq.python-4.python +0 -38
- data/sources/python/wordfreq.python-5.python +0 -39
- data/sources/ruby/ackermann.ruby +0 -17
- data/sources/ruby/ackermann.ruby-5.ruby +0 -153
- data/sources/ruby/ary.ruby +0 -22
- data/sources/ruby/binarytrees.ruby-2.ruby +0 -55
- data/sources/ruby/chameneos.ruby-2.ruby +0 -71
- data/sources/ruby/dispatch.ruby +0 -114
- data/sources/ruby/echo.ruby +0 -41
- data/sources/ruby/except.ruby +0 -61
- data/sources/ruby/except.ruby-2.ruby +0 -61
- data/sources/ruby/fannkuch.ruby +0 -42
- data/sources/ruby/fasta.ruby +0 -81
- data/sources/ruby/fibo.ruby +0 -15
- data/sources/ruby/harmonic.ruby-2.ruby +0 -15
- data/sources/ruby/hash.ruby +0 -19
- data/sources/ruby/hash2.ruby +0 -23
- data/sources/ruby/heapsort.ruby +0 -55
- data/sources/ruby/hello.ruby +0 -6
- data/sources/ruby/knucleotide.ruby-2.ruby +0 -44
- data/sources/ruby/lists.ruby +0 -46
- data/sources/ruby/mandelbrot.ruby-3.ruby +0 -63
- data/sources/ruby/matrix.ruby +0 -40
- data/sources/ruby/matrix.ruby-2.ruby +0 -30
- data/sources/ruby/message.ruby +0 -29
- data/sources/ruby/message.ruby-2.ruby +0 -24
- data/sources/ruby/meteor.ruby +0 -386
- data/sources/ruby/meteor.ruby-2.ruby +0 -561
- data/sources/ruby/methcall.ruby +0 -58
- data/sources/ruby/methcall.ruby-2.ruby +0 -54
- data/sources/ruby/moments.ruby +0 -64
- data/sources/ruby/nbody.ruby-2.ruby +0 -145
- data/sources/ruby/nestedloop.ruby +0 -22
- data/sources/ruby/nsieve.ruby +0 -36
- data/sources/ruby/nsieve.ruby-2.ruby +0 -25
- data/sources/ruby/nsievebits.ruby-2.ruby +0 -42
- data/sources/ruby/objinst.ruby +0 -58
- data/sources/ruby/partialsums.ruby +0 -39
- data/sources/ruby/pidigits.ruby +0 -92
- data/sources/ruby/pidigits.ruby-2.ruby +0 -109
- data/sources/ruby/prodcons.ruby +0 -41
- data/sources/ruby/random.ruby +0 -17
- data/sources/ruby/recursive.ruby-2.ruby +0 -53
- data/sources/ruby/regexdna.ruby +0 -32
- data/sources/ruby/regexdna.ruby-2.ruby +0 -38
- data/sources/ruby/regexmatch.ruby +0 -33
- data/sources/ruby/revcomp.ruby +0 -28
- data/sources/ruby/reversefile.ruby +0 -7
- data/sources/ruby/sieve.ruby +0 -30
- data/sources/ruby/spectralnorm.ruby +0 -48
- data/sources/ruby/spellcheck.ruby +0 -18
- data/sources/ruby/spellcheck.ruby-2.ruby +0 -0
- data/sources/ruby/strcat.ruby +0 -12
- data/sources/ruby/strcat.ruby-2.ruby +0 -12
- data/sources/ruby/sumcol.ruby +0 -12
- data/sources/ruby/sumcol.ruby-2.ruby +0 -5
- data/sources/ruby/takfp.ruby +0 -15
- data/sources/ruby/tcpecho.ruby +0 -45
- data/sources/ruby/tcprequest.ruby +0 -45
- data/sources/ruby/tcpstream.ruby +0 -45
- data/sources/ruby/threadring.ruby +0 -61
- data/sources/ruby/threadring.ruby-2.ruby +0 -33
- data/sources/ruby/wc.ruby +0 -15
- data/sources/ruby/wordfreq.ruby +0 -17
- 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
|
-
}
|
data/sources/gcc/pidigits.gcc
DELETED
@@ -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
|
-
|
data/sources/gcc/primes.gcc
DELETED
@@ -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
|
-
}
|
data/sources/gcc/prodcons.gcc
DELETED
@@ -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
|
-
|
data/sources/gcc/random.gcc
DELETED
@@ -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
|
-
}
|