#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <signal.h>
double f(double x){
return 8*pow(x, 5.0) - 2*pow(x, 4.0) + 15*pow(x,2.0) - 24*x + 18;
}
double area_f(int a, int b, int n){
printf("DANE WEJ %i, %i, %i\n", a, b, n);
double h = (b - a) / (double)n;
double s = 0.0;
double floor_a = f(a), floor_b;
int i;
for(i = 1; i <=n; i++){
floor_b = f(a + h * i);
s += (floor_a + floor_b);
floor_a = floor_b;
}
printf("SMALL STUFF %f\n", (s * 0.5 * h));
return s * 0.5 * h;
}
int main(int argc, char *argv[]){
int pip[2];
pipe(pip);
int pid = 10;
int iter = 0;
int k = 3;
int max_a = -15;
int max_b = 15;
int range = abs(max_a - max_b) / k;
int current_a = max_a;
int a;
int b;
int n = 1000;
double area = 0.0;
double temp_area = 0.0;
int read_k_times = 0;
int l = 0;
int first = 0;
for(l = 0; l < k; l++){
if(pid>0){
if(first == 0){
a = -15;
b = -5;
first=1;
}else{
a = b;
b += range;
}
pid = fork();
}
}
if(pid == 0){
double calc_area = area_f(a, b, n);
printf("calc_area %f\n", calc_area);
close(pip[0]);
write(pip[1], &calc_area, sizeof(calc_area));
//kid
}else{
printf ("ITER %i\n", iter);
int m = 0;
for(m = 0; m < k; m++){
close(pip[1]);
printf("I AM READING STUFF");
read(pip[0], &temp_area, sizeof(temp_area));
area += temp_area;
read_k_times++;
}
printf("FINAL AREA %f\n", area);
kill(0, SIGKILL);
exit(0);
//parent
}
return (0);
}
{"html5":"htmlmixed","css":"css","javascript":"javascript","php":"php","python":"python","ruby":"ruby","lua":"text\/x-lua","bash":"text\/x-sh","go":"go","c":"text\/x-csrc","cpp":"text\/x-c++src","diff":"diff","latex":"stex","sql":"sql","xml":"xml","apl":"apl","asterisk":"asterisk","c_loadrunner":"text\/x-csrc","c_mac":"text\/x-csrc","coffeescript":"text\/x-coffeescript","csharp":"text\/x-csharp","d":"d","ecmascript":"javascript","erlang":"erlang","groovy":"text\/x-groovy","haskell":"text\/x-haskell","haxe":"text\/x-haxe","html4strict":"htmlmixed","java":"text\/x-java","java5":"text\/x-java","jquery":"javascript","mirc":"mirc","mysql":"sql","ocaml":"text\/x-ocaml","pascal":"text\/x-pascal","perl":"perl","perl6":"perl","plsql":"sql","properties":"text\/x-properties","q":"text\/x-q","scala":"scala","scheme":"text\/x-scheme","tcl":"text\/x-tcl","vb":"text\/x-vb","verilog":"text\/x-verilog","yaml":"text\/x-yaml","z80":"text\/x-z80"}