|
|
@ -4,14 +4,14 @@
|
|
|
|
|
|
|
|
|
|
|
|
/*builds the sampled covariance function*/
|
|
|
|
/*builds the sampled covariance function*/
|
|
|
|
/*dimensions are even*/
|
|
|
|
/*dimensions are even*/
|
|
|
|
void covariance(chunk_array_t* covar, struct vario_mod variogram, struct grid_mod mesh, int n[3]) {
|
|
|
|
void process(chunk_array_t* covar, struct vario_mod variogram, struct grid_mod mesh, int n[3], int n2[3], int init, int end) {
|
|
|
|
int i, j, k, maille, n2[3], symmetric;
|
|
|
|
int i, j, k, maille, symmetric;
|
|
|
|
double di, dj, dk;
|
|
|
|
double di, dj, dk;
|
|
|
|
|
|
|
|
|
|
|
|
for (i = 0; i < 3; i++)
|
|
|
|
for (i = 0; i < 3; i++)
|
|
|
|
n2[i] = n[i] / 2;
|
|
|
|
n2[i] = n[i] / 2;
|
|
|
|
|
|
|
|
|
|
|
|
for (i = 0; i <= n2[0]; i++) {
|
|
|
|
for (i = init; i <= end; i++) {
|
|
|
|
for (j = 0; j <= n2[1]; j++) {
|
|
|
|
for (j = 0; j <= n2[1]; j++) {
|
|
|
|
for (k = 0; k <= n2[2]; k++) {
|
|
|
|
for (k = 0; k <= n2[2]; k++) {
|
|
|
|
|
|
|
|
|
|
|
@ -84,3 +84,36 @@ void covariance(chunk_array_t* covar, struct vario_mod variogram, struct grid_mo
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*builds the sampled covariance function*/
|
|
|
|
|
|
|
|
/*dimensions are even*/
|
|
|
|
|
|
|
|
void covariance(chunk_array_t* covar, struct vario_mod variogram, struct grid_mod mesh, int n[3]) {
|
|
|
|
|
|
|
|
int n2[3];
|
|
|
|
|
|
|
|
int i;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for (i = 0; i < 3; i++) {
|
|
|
|
|
|
|
|
n2[i] = n[i] / 2;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int init, end;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// child process because return value zero
|
|
|
|
|
|
|
|
if (fork() == 0) {
|
|
|
|
|
|
|
|
printf("Covar child\n");
|
|
|
|
|
|
|
|
init = 0;
|
|
|
|
|
|
|
|
end = n2[0]/2;
|
|
|
|
|
|
|
|
process(covar, variogram, mesh, n, n2, init, end);
|
|
|
|
|
|
|
|
exit(0);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
// parent process because return value non-zero.
|
|
|
|
|
|
|
|
else {
|
|
|
|
|
|
|
|
printf("Covar parent\n");
|
|
|
|
|
|
|
|
init = n2[0]/2 + 1;
|
|
|
|
|
|
|
|
end = n2[0];
|
|
|
|
|
|
|
|
process(covar, variogram, mesh, n, n2, init, end);
|
|
|
|
|
|
|
|
wait(NULL);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
printf("finish covariance\n");
|
|
|
|
|
|
|
|
}
|
|
|
|