Changeset: 3996d471c1bc for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=3996d471c1bc
Modified Files:
        geom/monetdb5/grid.c
Branch: grid
Log Message:

clean up


diffs (172 lines):

diff --git a/geom/monetdb5/grid.c b/geom/monetdb5/grid.c
--- a/geom/monetdb5/grid.c
+++ b/geom/monetdb5/grid.c
@@ -931,168 +931,3 @@ distancejoin_fail:
        if (r2) BBPunfix(r2->batCacheid);
        goto distancejoin_clean;
 }
-
-#if 0
-/* The commented version below:
- * - does not use a bit vector for storing the results
- * - does not use candidates 
- * - ignores the anti parameter 
- * - the index is stored as an OID array */
-str
-GRIDdistancesubselect(bat * res, bat * x1, bat * y1, bat * cand1, lng * x2, 
lng * y2, int * d, bit * anti)
-{
-       size_t minCellx, minCelly, maxCellx, maxCelly, cellx, celly;
-       size_t *borderCells, *internalCells;
-       size_t borderCellsNum, internalCellsNum, totalCellsNum;
-       size_t i, j;
-       double fxa, fxb, fya, fyb;
-       BAT *x1BAT = NULL, *y1BAT = NULL;
-       lng * x1Vals = NULL, * y1Vals = NULL, * resVals = NULL;
-       grid * g = NULL;
-       mbr mbb = (mbr) {.xmin = *x2 - *d, .ymin = *y2 - *d, .xmax = *x2 + *d, 
.ymax = *y2 + *d};
-       BAT *r;
-       BUN resNum = 0;
-       assert (*d > 0);
-
-       (void)anti; //TODO: anti
-
-       /* get the X and Y BATs*/
-       if((x1BAT = BATdescriptor(*x1)) == NULL)
-               throw(MAL, "grid.distance", RUNTIME_OBJECT_MISSING);
-       if((y1BAT = BATdescriptor(*y1)) == NULL) {
-               BBPunfix(x1BAT->batCacheid);
-               throw(MAL, "grid.distance", RUNTIME_OBJECT_MISSING);
-       }
-       x1Vals = (lng*)Tloc(x1BAT, BUNfirst(x1BAT));
-       y1Vals = (lng*)Tloc(y1BAT, BUNfirst(y1BAT));
-
-       /* check if the BATs have dense heads and are aligned */
-       if (!BAThdense(x1BAT) || !BAThdense(y1BAT)) {
-               BBPunfix(x1BAT->batCacheid);
-               BBPunfix(y1BAT->batCacheid);
-               return createException(MAL, "grid.distance", "BATs must have 
dense heads");
-       }
-       if(x1BAT->hseqbase != y1BAT->hseqbase || BATcount(x1BAT) != 
BATcount(y1BAT)) {
-               BBPunfix(x1BAT->batCacheid);
-               BBPunfix(y1BAT->batCacheid);
-               return createException(MAL, "grid.distance", "BATs must be 
aligned");
-       }
-
-       /* compute the grid index */
-       if((g = grid_create(x1BAT, y1BAT)) == NULL) {
-               BBPunfix(x1BAT->batCacheid);
-               BBPunfix(y1BAT->batCacheid);
-               return createException(MAL, "grid.distance", "Could not compute 
the grid index");
-       }
-
-       /* find which cells have to be examined */
-       fxa = ((double)g->cellsPerAxis/(double)(g->xmax-g->xmin));
-       fxb = (double)g->xmin*fxa; 
-       fya = ((double)g->cellsPerAxis/(double)(g->ymax-g->ymin));
-       fyb = (double)g->ymin*fya; 
-
-       minCellx = (double)(mbb.xmin<g->xmin?g->xmin:mbb.xmin)*fxa - fxb;
-       maxCellx = (double)(mbb.xmax>g->xmax?g->xmax:mbb.xmax)*fxa - fxb;
-       minCelly = (double)(mbb.ymin<g->ymin?g->ymin:mbb.ymin)*fya - fyb;
-       maxCelly = (double)(mbb.ymax>g->ymax?g->ymax:mbb.ymax)*fya - fyb;
-
-       /* split the cells in border and internal ones */
-       totalCellsNum = (maxCellx - minCellx + 1)*(maxCelly - minCelly + 1);
-       borderCellsNum = (maxCellx - minCellx + 1) + (maxCelly - minCelly + 1) 
- 1; /* per axis, remove the corner cell that has been added twice */
-       if(maxCellx > minCellx && maxCelly > minCelly)
-               borderCellsNum = borderCellsNum*2 - 2; /* subtract the two 
corner cells that have been added twice */
-       internalCellsNum = totalCellsNum - borderCellsNum;
-
-       if((borderCells = (size_t*)GDKmalloc((borderCellsNum + 1) * 
sizeof(size_t*))) == NULL) {
-               BBPunfix(x1BAT->batCacheid);
-               BBPunfix(y1BAT->batCacheid);
-               return createException(MAL, "grid.distance", MAL_MALLOC_FAIL);
-       }
-       if((internalCells = (size_t*)GDKmalloc((internalCellsNum + 1) * 
sizeof(size_t*))) == NULL) {
-               BBPunfix(x1BAT->batCacheid);
-               BBPunfix(y1BAT->batCacheid);
-               GDKfree(borderCells);
-               return createException(MAL, "grid.distance", MAL_MALLOC_FAIL);
-       }
-
-       borderCellsNum = 0;
-       internalCellsNum = 0;
-       for(cellx = minCellx ; cellx <= maxCellx; cellx++) {
-               for(celly = minCelly ; celly <= maxCelly ; celly++) {
-                       size_t cellId = (cellx << g->shift) | celly;
-                       unsigned short border = (cellx == minCellx) | (cellx == 
maxCellx) | (celly == minCelly) | (celly == maxCelly);
-                       borderCells[borderCellsNum] = cellId;
-                       internalCells[internalCellsNum] = cellId;
-                       borderCellsNum += border;
-                       internalCellsNum += 1 - border;
-               }
-       }
-
-       /* count number of results from internal cells */
-       for (i = 0; i < internalCellsNum; i++)
-               resNum += g->dir[i+1] - g->dir[i];
-
-       /* count number of results from border cells */
-       for (i = 0; i < borderCellsNum; i++) {
-               size_t cellId = borderCells[i];
-                       size_t offsetStartIdx = g->dir[cellId];
-                       size_t offsetEndIdx = g->dir[cellId+1]; /* exclusive */
-                       for(j = offsetStartIdx; j < offsetEndIdx; j++) {
-                               size_t oid = g->oids[j];
-                               resNum += (mbb.xmin <= x1Vals[oid]) & (mbb.xmax 
>= x1Vals[oid]) & 
-                                                 (mbb.ymin <= y1Vals[oid]) & 
(mbb.ymax >= y1Vals[oid]);
-                       }
-       } 
-
-       /* allocate a BAT for the results */
-       if ((r = BATnew(TYPE_void, TYPE_oid, resNum, TRANSIENT)) == NULL) {
-               BBPunfix(x1BAT->batCacheid);
-               BBPunfix(y1BAT->batCacheid);
-               GDKfree(borderCells);
-               GDKfree(internalCells);
-               return createException(MAL, "grid.distance", "could not create 
a BAT for storing the results");
-       }
-       resVals = (lng*)Tloc(r, BUNfirst(r));
-
-       /* process cells along the border */
-       resNum = 0;
-       for (i = 0; i < borderCellsNum; i++) {
-               size_t cellId = borderCells[i];
-                       size_t offsetStartIdx = g->dir[cellId];
-                       size_t offsetEndIdx = g->dir[cellId+1]; /* exclusive */
-                       for(j = offsetStartIdx; j < offsetEndIdx; j++) {
-                               size_t oid = g->oids[j];
-                               resVals[resNum] = oid;
-                               resNum += (mbb.xmin <= x1Vals[oid]) & (mbb.xmax 
>= x1Vals[oid]) & 
-                                                 (mbb.ymin <= y1Vals[oid]) & 
(mbb.ymax >= y1Vals[oid]);
-                       }
-       } 
-
-       /* process internal cells */
-       for (i = 0; i < internalCellsNum; i++) {
-               size_t cellId = internalCells[i];
-                       size_t offsetStartIdx = g->dir[cellId];
-                       size_t offsetEndIdx = g->dir[cellId+1]; /* exclusive */
-                       memcpy(resVals+resNum, g->oids+offsetStartIdx, 
(offsetEndIdx-offsetStartIdx)*sizeof(oid));
-       }
-       GDKqsort(resVals, NULL, NULL, (size_t) resNum, sizeof(oid), 0, 
TYPE_oid);
-       BATsetcount(r, resNum);
-
-       /* clean up */
-       BBPunfix(x1BAT->batCacheid);
-       BBPunfix(y1BAT->batCacheid);
-       GDKfree(borderCells);
-       GDKfree(internalCells);
-       GDKfree(g->oids);
-       GDKfree(g->dir);
-       GDKfree(g);
-       //BATderiveProps(r, false);
-       r->tsorted = true;
-       r->trevsorted = false;
-       *res = r->batCacheid;
-       BBPkeepref(*res);
-
-
-       return MAL_SUCCEED;
-}
-#endif
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to