#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
#include <pthread.h>


//void Pass1(register unsigned char digits[10000], register int totals[10]); 
//void Pass2(long int digits);
//void Pass3(long int digits);
//void Pass4(long int digits);
//void Pass5(long int digits);


struct massive{
unsigned var1 : 32;
unsigned var2 : 32;
unsigned var3 : 32;
unsigned long var4 : 64;
};

/*
struct massive{ 
	long double var1;
	long double var2;
	long double var3;
	long double var4;
};
*/

struct massive a;


//void Pass2(long int digits);


int main(){
	FILE* fp;
	char buf[150];
	char temp[2];
	int counter1;
	int counter2 = 0;
	int linenum1 = 0;
	long unsigned int sum1 = 0;
	unsigned char digits[10000];

        pthread_t threads[5];
        int iret[5];



	int totals[] =
		{0,0,0,0,0,0,0,0,0,0};

/*
        if( ( fp = fopen( "10k.txt", "r" ) ) == NULL ) {
                fprintf( stderr, "Error opening 10k.txt\n" );
                exit( 1 );
        }

        while( fgets(buf, sizeof(buf), fp) != NULL)
        {
		for(counter1 = 0; counter1 < strlen(buf); counter1++){
			if(buf[counter1] != ' ' && buf[counter1] != '\n'){
				temp[0]=buf[counter1];
				temp[1]='\0';
				digits[counter2]=atoi(temp);
				counter2++;
			}
		}
		//linenum1++;
	}

	
	fclose( fp );
*/

	//Pass1(digits, totals);
	//Pass2( 100000000000000000);

	a.var2  = 1000000000;

	a.var1 = a.var2;

	
	for(a.var4 = 3; a.var4 < 1000000000000; a.var4+=4){
		a.var1 -= (a.var2/a.var4);
		a.var1 += (a.var2/(a.var4+2));  
	}
	//a.var1 = a.var2 - a.var2/3 + a.var2/5 - a.var2/7 + a.var2/9 - a.var2/11 + a.var2/13 - a.var2/15 + a.var2/17 - a.var2/19;

        //a.var2 = 3;
        a.var3 = a.var1 * 4;
        //a.var4 = 0;

/*
        iret[0] = pthread_create( &threads[0], NULL, Pass2, 3);
        iret[1] = pthread_create( &threads[1], NULL, Pass2, 1000000003);
        iret[2] = pthread_create( &threads[2], NULL, Pass2, 2000000003);
        iret[3] = pthread_create( &threads[3], NULL, Pass2, 3000000003);
        pthread_join( threads[0], NULL);
        pthread_join( threads[1], NULL);
        pthread_join( threads[2], NULL);
        pthread_join( threads[3], NULL);

	//a.var1 *= 4;

	a.var1 = (1 + ( a.var1 + a.var2 + a.var3 + a.var4 ) ) * 4;
*/
	//a.var1 = 1.7112233;

	//a.var1 = (1 - ( a.var1 ) )*4;

	//char test[500];
	//int empty;
	//empty = sprintf(test, "
	//double test = a.var1;
	
	int i;

	//for(i=0; i<4; i++){


	//a.var3 = .12;
	//a.var2 = .13;
	//a.var1 = a.var3 + a.var2;
	printf("%13u %13u %13u\n\n", a.var1, a.var2, a.var3);
	//}
	//printf("size: %lu\n",sizeof(long double));


	return(0);
}

