DataMuseum.dk

Presents historical artifacts from the history of:

DKUUG/EUUG Conference tapes

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about DKUUG/EUUG Conference tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download
Index: ┃ T s

⟦cc447f002⟧ TextFile

    Length: 1682 (0x692)
    Types: TextFile
    Names: »stats.c«

Derivation

└─⟦87ddcff64⟧ Bits:30001253 CPHDIST85 Tape, 1985 Autumn Conference Copenhagen
    └─ ⟦this⟧ »cph85dist/stat/src/stats.c« 

TextFile

/* just some compuations localized for reference */
#include <stdio.h>
#include <math.h>

readdata ()
	{
	int 	n;             /* the number of points read in */
	double	s1;            /* sum of scores */
	double	s2;            /* sum of squared scores */
	double	s3;            /* sum of cubed scores */
	double	s4;            /* sum of forth powered scores */
	double 	x;             /* the value read in */
	double 	x2;            /* the value squared */
	char	word[BUFSIZ];  /* data as strings read in here */
	n = 0;
	s1 = s2 = s3 = s4 = 0.0;
	while (getword (word, stdin))
		{
		if (number (word))
			{
			x = atof (word);
			x2 = x * x;
			s1 += x;
			s2 += x2;
			s3 += x * x2;
			s4 += x2 * x2;
			n++;
			}
		}
	printstats (n, s1, s2, s3, s4);
	}

#define	print(val,format) printf ("%-10s = %format\n", "val", val)

printstats (n, s1, s2, s3, s4)
int 	n;      /* the number of points read in */
double	s1;     /* sum of scores */
double	s2;     /* sum of squared scores */
double	s3;     /* sum of cubed scores */
double	s4;     /* sum of forth powered scores */
	{
	double	sqrt  ();
	double	mean = 0.0;
	double	var = 0.0;
	double	sd = 0.0;
	double	skew;
	double	kurtosis;
	double	m2;
	print (n,8d);
	if (n > 0)
		{
		mean = s1/n;
		m2 = mean * mean;
		print (mean,8.3f);
		if (n > 1)
			{
			var	= (s2 - mean*s1)/(n-1);
			sd	= sqrt (var);
			print (sd,8.3f);
			skew = (s3 - 3.0*mean*s2 + 3.0*m2*s1 - m2*s1)/(n*var*sd);
			print (skew,8.3f);
			kurtosis = (s4-4.*mean*s3+6.*m2*s2-4.*m2*mean*s1+n*m2*m2)/(n*var*var);
			print (kurtosis,8.3f);
			}
		else printf ("printstats: No variability\n");
		}
	else printf ("printstats: No data\n");
	}

main ()
	{
	readdata ();
	}