Changeset: 9d002481bbe9 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=9d002481bbe9
Modified Files:
monetdb5/extras/bwd/operations.c
monetdb5/extras/bwd/utilities.c
Branch: bwd
Log Message:
* fixed that I used to use one bit to few when the value range was entirely
covered (i.e., values 0 to 8 actually need four bits, not three)
Unterschiede (49 Zeilen):
diff --git a/monetdb5/extras/bwd/operations.c b/monetdb5/extras/bwd/operations.c
--- a/monetdb5/extras/bwd/operations.c
+++ b/monetdb5/extras/bwd/operations.c
@@ -1362,13 +1362,13 @@ str BWDGroupedSumApproximate(int *retid,
return result;
}
-str AX3aggrX3_sum3_int_int(int *retid,int *bid, int *gid, int *eid);
+str AX3aggrX3_sum3_int_lng(int *retid,int *bid, int *gid, int *eid);
str BWDGroupedSumRefine(int *retid,int *bid, int *gid, int *eid, bat* approx){
/* BAT *left = BATdescriptor(*bid2); */
/* BAT* result = BATnew(TYPE_void, TYPE_int, 0); */
/* BBPreleaseref(left->batCacheid); */
/* BBPkeepref(*retid = result->batCacheid); */
- return AX3aggrX3_sum3_int_int(retid, bid, gid, eid);
+ return AX3aggrX3_sum3_int_lng(retid, bid, gid, eid);
/* BBPincref(*retid = *approx, 1); */
return MAL_SUCCEED;
}
diff --git a/monetdb5/extras/bwd/utilities.c b/monetdb5/extras/bwd/utilities.c
--- a/monetdb5/extras/bwd/utilities.c
+++ b/monetdb5/extras/bwd/utilities.c
@@ -404,7 +404,7 @@ void forceLoadOntoGPU(clTail* approximat
unsigned int decomposeIntArray(const int* subject, const size_t size, const
size_t baseBitsPlusApproximationBits, bat* batID){
const bounds subjectBounds = findBounds(subject,size);
- const int neededBits = ceil(log2(subjectBounds.max -
subjectBounds.min));
+ const int neededBits = ceil(log2(subjectBounds.max - subjectBounds.min
+ 1));
const unsigned int newIndex = getNextFreeDecomposedBATSlotIndex(*batID);
DecomposedBATSlot* slot = getDecomposedBATSlotForIndex(newIndex);
const unsigned int residualBits = 32-baseBitsPlusApproximationBits;
@@ -500,7 +500,7 @@ unsigned int transferOIDArray(const oid*
unsigned int decomposeLngArray(const lng* subject, const size_t size, const
size_t baseBitsPlusApproximationBits, bat* batID){
const bounds subjectBounds = findLngBounds(subject,size);
- const int neededBits = ceil(log2(subjectBounds.max -
subjectBounds.min));
+ const int neededBits = ceil(log2(subjectBounds.max - subjectBounds.min
+ 1));
const unsigned int newIndex = getNextFreeDecomposedBATSlotIndex(*batID);
DecomposedBATSlot* slot = getDecomposedBATSlotForIndex(newIndex);
@@ -577,7 +577,7 @@ bounds findVarchar1Bounds(const char* su
unsigned int decomposeVarchar1Array(const char* subject, const size_t size,
const size_t width, const char* dictionary, const size_t
baseBitsPlusApproximationBits, bat* batID){
const bounds subjectBounds = findVarchar1Bounds(subject, size, width,
dictionary);
- const int neededBits = ceil(log2(subjectBounds.max -
subjectBounds.min));
+ const int neededBits = ceil(log2(subjectBounds.max - subjectBounds.min
+ 1));
const unsigned int newIndex = getNextFreeDecomposedBATSlotIndex(*batID);
DecomposedBATSlot* slot = getDecomposedBATSlotForIndex(newIndex);
const unsigned int residualBits = 8-baseBitsPlusApproximationBits;
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list