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

Reply via email to