97 int cond1, cond2, cond3, cond4, rows, cols;
98 double ew_res, ns_res;
103 ew_res = (data->xmax - data->x_orig) / data->n_cols;
104 ns_res = (data->ymax - data->y_orig) / data->n_rows;
106 if (data->n_rows % 2 == 0) {
107 rows = data->n_rows / 2;
110 rows = (int)(data->n_rows / 2) + 1;
113 if (data->n_cols % 2 == 0) {
114 cols = data->n_cols / 2;
117 cols = (int)(data->n_cols / 2) + 1;
119 cond1 = (point->x >= data->x_orig);
120 cond2 = (point->x >= data->x_orig + ew_res * cols);
121 cond3 = (point->y >= data->y_orig);
122 cond4 = (point->y >= data->y_orig + ns_res * rows);
123 if (cond1 && cond3) {
145 fprintf(stderr,
"add_data: data is NULL \n");
148 for (
int i = 0; i < data->n_points; i++) {
149 double xx = data->points[i].x - point->x;
150 double yy = data->points[i].y - point->y;
151 double r = xx * xx + yy * yy;
160 int n = (data->n_points)++;
162 data->points[n].x = point->x;
163 data->points[n].y = point->y;
164 data->points[n].z = point->z;
165 data->points[n].sm = point->sm;
178 double xmin, xmax, ymin, ymax;
180 xmin = data_inter->
x_orig;
181 xmax = data_inter->
xmax;
182 ymin = data_inter->
y_orig;
183 ymax = data_inter->
ymax;
185 if (((data->x_orig >= xmin) && (data->x_orig <= xmax) &&
186 (((data->y_orig >= ymin) && (data->y_orig <= ymax)) ||
187 ((ymin >= data->y_orig) && (ymin <= data->ymax)))) ||
188 ((xmin >= data->x_orig) && (xmin <= data->xmax) &&
189 (((ymin >= data->y_orig) && (ymin <= data->ymax)) ||
190 ((data->y_orig >= ymin) && (data->y_orig <= ymax))))) {
229 int cols1, cols2, rows1, rows2, i;
231 double xr, xm, xl, yr, ym, yl;
232 double ew_res, ns_res;
234 ew_res = (data->xmax - data->x_orig) / data->
n_cols;
235 ns_res = (data->ymax - data->y_orig) / data->n_rows;
237 if ((data->n_cols <= 1) || (data->n_rows <= 1)) {
239 "Points are too concentrated -- please increase DMIN\n");
243 if (data->n_cols % 2 == 0) {
244 cols1 = data->n_cols / 2;
248 cols2 = (int)(data->n_cols / 2);
251 if (data->n_rows % 2 == 0) {
252 rows1 = data->n_rows / 2;
256 rows2 = (int)(data->n_rows / 2);
277 for (i = 0; i < data->n_points; i++) {
struct quaddata * quad_data_new(double x_or, double y_or, double xmax, double ymax, int rows, int cols, int n_points, int kmax)