At least compiling. Segfault

milestone_5
chortas 3 years ago
parent 0d40eae129
commit dcbaafdb1a

@ -1,5 +1,6 @@
#include "genlib.h" #include "genlib.h"
#include "geostat.h" #include "geostat.h"
#include "chunk_array.h"
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>

@ -1,5 +1,4 @@
#include "geostat.h" #include "geostat.h"
#include "chunk_array.h"
#include <math.h> #include <math.h>
#include <stdarg.h> #include <stdarg.h>
#include <stddef.h> #include <stddef.h>
@ -7,6 +6,7 @@
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
#include <time.h> #include <time.h>
#include "chunk_array.h"
/* build_real */ /* build_real */
/* build a realization in the spectral domain */ /* build a realization in the spectral domain */
@ -31,7 +31,7 @@ void build_real(int n[3], int NTOT, chunk_array_t* covar, chunk_array_t* realiza
for (j = 1; j <= n[1]; j++) { for (j = 1; j <= n[1]; j++) {
for (i = 1; i <= n[0]; i++) { for (i = 1; i <= n[0]; i++) {
maille1 = i + (j - 1 + (k - 1) * n[1]) * n[0]; maille1 = i + (j - 1 + (k - 1) * n[1]) * n[0];
chunk_aray_get(covar, maille1, &temp); chunk_array_get(covar, maille1, &temp);
if (temp > 0.) { if (temp > 0.) {
temp = sqrt(temp) / (double)NTOT; temp = sqrt(temp) / (double)NTOT;
} else if (temp < 0.) { } else if (temp < 0.) {

@ -273,8 +273,8 @@ void fourt(chunk_array_t* datar, chunk_array_t* datai, int nn[3], int ndim, int
i2max = i3 + np2 - np1; i2max = i3 + np2 - np1;
i = 1; i = 1;
for (i2 = i3; i2 <= i2max; i2 += np1) { for (i2 = i3; i2 <= i2max; i2 += np1) {
chunk_save(datar, i2, workr[i]); chunk_array_save(datar, i2, workr[i]);
chunk_save(datai, i2, worki[i]); chunk_array_save(datai, i2, worki[i]);
i++; i++;
} }
} }
@ -387,10 +387,10 @@ void fourt(chunk_array_t* datar, chunk_array_t* datai, int nn[3], int ndim, int
tempr = valueri * wr - valueii * wi; tempr = valueri * wr - valueii * wi;
tempi = valueri * wi + valueii * wr; tempi = valueri * wi + valueii * wr;
chunk_data_save(datar, i, valuerj - tempr); chunk_array_save(datar, i, valuerj - tempr);
chunk_data_save(datai, i, valueij - tempi); chunk_array_save(datai, i, valueij - tempi);
chunk_data_save(datar, j, valuerj + tempr); chunk_array_save(datar, j, valuerj + tempr);
chunk_data_save(datai, j, valueij + tempi); chunk_array_save(datai, j, valueij + tempi);
j += istep; j += istep;
} }
imin = 2 * imin - i1; imin = 2 * imin - i1;
@ -532,10 +532,10 @@ void fourt(chunk_array_t* datar, chunk_array_t* datai, int nn[3], int ndim, int
difi = (valueii - valueij) / 2.; difi = (valueii - valueij) / 2.;
tempr = wr * sumi + wi * difr; tempr = wr * sumi + wi * difr;
tempi = wi * sumi - wr * difr; tempi = wi * sumi - wr * difr;
chunk_data_save(datar, i, sumr + tempr); chunk_array_save(datar, i, sumr + tempr);
chunk_data_save(datai, i, difi + tempi); chunk_array_save(datai, i, difi + tempi);
chunk_data_save(datar, j, sumr - tempr); chunk_array_save(datar, j, sumr - tempr);
chunk_data_save(datai, j, tempi - difi); chunk_array_save(datai, j, tempi - difi);
j += np2; j += np2;
} }
imin++; imin++;
@ -553,8 +553,8 @@ void fourt(chunk_array_t* datar, chunk_array_t* datai, int nn[3], int ndim, int
goto L740; goto L740;
for (i = imin; i <= ntot; i += np2) { for (i = imin; i <= ntot; i += np2) {
double valueii; double valueii;
chunk_data_get(datai, i, &valueii); chunk_array_get(datai, i, &valueii);
chunk_data_save(datai, i, -valueii); chunk_array_save(datai, i, -valueii);
} }
L740: L740:
np2 *= 2; np2 *= 2;
@ -567,54 +567,54 @@ void fourt(chunk_array_t* datar, chunk_array_t* datai, int nn[3], int ndim, int
goto L755; goto L755;
L750: ; L750: ;
double valueri, valueii; double valueri, valueii;
chunk_data_get(datar, i, &valueri); chunk_array_get(datar, i, &valueri);
chunk_data_get(datai, i, &valueii); chunk_array_get(datai, i, &valueii);
chunk_data_save(datar, j, valueri); chunk_array_save(datar, j, valueri);
chunk_data_save(datai, j, -valueii); chunk_array_save(datai, j, -valueii);
L755: L755:
i++; i++;
j--; j--;
if (i < imax) if (i < imax)
goto L750; goto L750;
double valuerimin, valueiimin; double valuerimin, valueiimin;
chunk_data_get(datar, imin, &valuerimin); chunk_array_get(datar, imin, &valuerimin);
chunk_data_get(datai, imin, &valueiimin); chunk_array_get(datai, imin, &valueiimin);
chunk_data_save(datar, j, valuerimin - valueiimin); chunk_array_save(datar, j, valuerimin - valueiimin);
chunk_data_save(datai, j, 0.); chunk_array_save(datai, j, 0.);
if (i >= j) { if (i >= j) {
goto L780; goto L780;
} else { } else {
goto L770; goto L770;
} }
L765: L765:
chunk_data_get(datar, i, &valueri); chunk_array_get(datar, i, &valueri);
chunk_data_get(datai, i, &valueii); chunk_array_get(datai, i, &valueii);
chunk_data_save(datar, j, valueri); chunk_array_save(datar, j, valueri);
chunk_data_save(datai, j, valueii); chunk_array_save(datai, j, valueii);
L770: L770:
i--; i--;
j--; j--;
if (i > imin) if (i > imin)
goto L765; goto L765;
chunk_data_get(datar, imin, &valuerimin); chunk_array_get(datar, imin, &valuerimin);
chunk_data_get(datai, imin, &valueiimin); chunk_array_get(datai, imin, &valueiimin);
chunk_data_save(datar, j, valuerimin + valueiimin); chunk_array_save(datar, j, valuerimin + valueiimin);
chunk_data_save(datai, j, 0.); chunk_array_save(datai, j, 0.);
imax = imin; imax = imin;
goto L745; goto L745;
L780: ; L780: ;
double valuei1, valuer1; double valuei1, valuer1;
chunk_data_get(datai, 1, &valuei1); chunk_array_get(datai, 1, &valuei1);
chunk_data_get(datar, 1, &valuer1); chunk_array_get(datar, 1, &valuer1);
chunk_data_save(datar, 1, valuei1 + valuer1); chunk_array_save(datar, 1, valuei1 + valuer1);
chunk_data_save(datai, 1, 0.); chunk_array_save(datai, 1, 0.);
goto L900; goto L900;
/*complete a real transform for the 2nd, 3rd, ... dimension by conjugate symmetries*/ /*complete a real transform for the 2nd, 3rd, ... dimension by conjugate symmetries*/
@ -633,22 +633,22 @@ void fourt(chunk_array_t* datar, chunk_array_t* datai, int nn[3], int ndim, int
j = jmax + np0; j = jmax + np0;
for (i = imin; i <= imax; i++) { for (i = imin; i <= imax; i++) {
double valuerj, valueij; double valuerj, valueij;
chunk_data_get(datar, j, &valuerj); chunk_array_get(datar, j, &valuerj);
chunk_data_get(datai, j, &valueij); chunk_array_get(datai, j, &valueij);
chunk_data_save(datar, i, valuerj); chunk_array_save(datar, i, valuerj);
chunk_data_save(datai, i, -valueij); chunk_array_save(datai, i, -valueij);
j--; j--;
} }
} }
j = jmax; j = jmax;
for (i = imin; i <= imax; i += np0) { for (i = imin; i <= imax; i += np0) {
double valuerj, valueij; double valuerj, valueij;
chunk_data_get(datar, j, &valuerj); chunk_array_get(datar, j, &valuerj);
chunk_data_get(datai, j, &valueij); chunk_array_get(datai, j, &valueij);
chunk_data_save(datar, i, valuerj); chunk_array_save(datar, i, valuerj);
chunk_data_save(datai, i, -valueij); chunk_array_save(datai, i, -valueij);
j -= np0; j -= np0;
} }

Loading…
Cancel
Save