Changeset: a9f415aeba79 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=a9f415aeba79 Modified Files: sql/backends/monet5/UDF/ssdb.c Branch: ssdb Log Message:
Regrid small changes in loops. diffs (55 lines): diff --git a/sql/backends/monet5/UDF/ssdb.c b/sql/backends/monet5/UDF/ssdb.c --- a/sql/backends/monet5/UDF/ssdb.c +++ b/sql/backends/monet5/UDF/ssdb.c @@ -748,7 +748,7 @@ SSDBregrid(Client cntxt, MalBlkPtr mb, M BAT *tin_imageid = NULL, *tin_x = NULL, *tin_y = NULL, *tin_val = NULL; BAT *tout_imageid = NULL, *tout_x = NULL, *tout_y = NULL, *tout_avgval = NULL; - BUN idx = 0, nr_points = 0, size=0,out_elements = 0, step = 0,j=0; + BUN idx = 0, nr_points = 0, size=0,out_elements = 0, step = 0,j=0, nr_x_tiles=0,nr_y_tiles=0; unsigned int *imageid = NULL; int *tin_imageid_t = NULL, *tin_x_t = NULL, *tin_y_t = NULL, *tin_val_t = NULL; int *tout_imageid_t = NULL, *tout_x_t = NULL, *tout_y_t = NULL; @@ -813,24 +813,30 @@ SSDBregrid(Client cntxt, MalBlkPtr mb, M tout_avgval_t = (dbl*)Tloc(tout_avgval, BUNfirst(tout_avgval)); size = tin_x_t[nr_points-1]+1; /*width*/ - step = size * 3; + step = size * 4; for(idx=0; idx < nr_points; idx=idx+step) { dbl avg,sum; - for(j=idx; j < idx+size; j=j+3) + if(nr_y_tiles<(size/4+1)) { - tout_imageid_t[out_elements] = tin_imageid_t[j]; - tout_x_t[out_elements] = tin_x_t[j]; - tout_y_t[out_elements] = tin_y_t[j]; - sum = tin_val_t[j] + tin_val_t[j+1] + tin_val_t[j+2] + tin_val_t[j+size] + tin_val_t[j+size+1] +tin_val_t[j+size+2] + tin_val_t[j+2*size] + tin_val_t[j+2*size+1] + tin_val_t[j+2*size+2]; - avg = sum / 9.0; /*each tile contains 3*3=9 values*/ - tout_avgval_t[out_elements] = avg; - out_elements++; - + for(j=idx; j < idx+size; j=j+3) + { + if(nr_x_tiles<(size/4+1)) + { + tout_imageid_t[out_elements] = tin_imageid_t[j]; + tout_x_t[out_elements] = tin_x_t[j]; + tout_y_t[out_elements] = tin_y_t[j]; + sum = tin_val_t[j] + tin_val_t[j+1] + tin_val_t[j+2] + tin_val_t[j+3] + tin_val_t[j+size] + tin_val_t[j+size+1] +tin_val_t[j+size+2] + tin_val_t[j+size+3] + tin_val_t[j+2*size] + tin_val_t[j+2*size+1] + tin_val_t[j+2*size+2] + tin_val_t[j+2*size+3]; + avg = sum / 16.0; /*each tile contains 4*4=16 values*/ + tout_avgval_t[out_elements] = avg; + out_elements++; + nr_x_tiles++; + } + } + nr_x_tiles=0; } - - + nr_y_tiles++; } _______________________________________________ checkin-list mailing list checkin-list@monetdb.org http://mail.monetdb.org/mailman/listinfo/checkin-list