Changeset: a1c28c17e23b for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=a1c28c17e23b
Modified Files:
monetdb5/extras/crackers/crackers_core_unordered.mx
Branch: holindex
Log Message:
Add more assertions.
diffs (139 lines):
diff --git a/monetdb5/extras/crackers/crackers_core_unordered.mx
b/monetdb5/extras/crackers/crackers_core_unordered.mx
--- a/monetdb5/extras/crackers/crackers_core_unordered.mx
+++ b/monetdb5/extras/crackers/crackers_core_unordered.mx
@@ -471,7 +471,7 @@ CRKcrackUnorderedZero_@2_@1_STxx ( const
assert(p >= first && p <= last + 1);
assert(p == first || (m && pp + 1 < qq && p == qq && src_t[pp] @7 mval)
|| (!(m && pp + 1 < qq && p == qq) && src_t[p-1] @7 mval));
assert(p == last + 1 || src_t[p] @8 mval);
-#ifndef NDEBUG
+#ifdef NDEBUG
for (q = first; q < p; q++) {
if (m && pp + 1 < qq && q == pp + 1) {
q = qq;
@@ -622,7 +622,10 @@ CRKcrackUnorderedZero_@2_@1_STxxx ( cons
assert(p >= first && p <= last + 1);
assert(p == first || (ml && mr && pp + 1 < qq && p == qq && src_t[pp]
@7 mval) || (!(ml && mr && pp + 1 < qq && p == qq) && src_t[p-1] @7 mval));
assert(p == last + 1 || src_t[p] @8 mval);
-#ifndef NDEBUG
+
+#ifdef NDEBUG
+ BUN i_res = 0;
+
for (q = first; q < p; q++) {
if (ml && mr && pp + 1 < qq && q == pp + 1) {
q = qq;
@@ -638,7 +641,15 @@ CRKcrackUnorderedZero_@2_@1_STxxx ( cons
if (!(src_t[q] @8 mval))
fprintf(stderr,"b "BUNFMT": %d !@8
%d\n",q,(int)src_t[q],(int)mval);
}
+
+ for(i_res=first; i_res<=last; i_res++)
+ {
+ assert((i_res<p && src_t[i_res] @7 mval) || (i_res>=p &&
src_t[i_res] @8 mval));
+ if(ml!=0 && mr!=0 && (i_res)==(first+ml-1))
+ i_res=last+1-mr;
+ }
#endif
+
*pos_r = p;
#ifdef CRACK_MUTLI_THREAD_DEBUG
@@ -961,7 +972,7 @@ CRKcrackUnorderedZero_@2_@1_MT ( const B
assert(f != BUN_NONE);
assert((f == last + 1 && src_t[f-1] @7 mval) || src_t[f] @8 mval);
assert((f == first && src_t[f] @8 mval) || src_t[f-1] @7 mval);
-#ifndef NDEBUG
+#ifdef NDEBUG
for (l = first; l < f; l++)
if (!(src_t[l] @7 mval))
fprintf(stderr,"c "BUNFMT": %d !@7
%d\n",l,(int)src_t[l],(int)mval);
@@ -1201,6 +1212,41 @@ static str CRKvectorized_x_@2_@1 (
assert (vectorR == vectorCount);
//assert(lowerReadCursor == upperReadCursor || (lowerReadCursor ==
first_right && upperReadCursor == last_left + 1));
+
+#ifdef NDEBUG
+ BUN lwc = (BUN) lowerWriteCursor;
+ BUN uwc = (BUN) upperWriteCursor;
+ BUN fl = (BUN) first_left;
+ BUN ll = (BUN) last_left;
+ BUN fr = (BUN) first_right;
+ BUN lr = (BUN) last_right;
+ BUN i_res = 0;
+
+ assert(lwc >= fl);
+ assert(lwc <= lr + 1);
+ assert((fl == 0 && uwc >= fl) || (fl !=0 && uwc >= fl - 1));
+ assert(uwc <= lr);
+ assert(lwc > uwc);
+ assert(uwc == fl - 1 || src_t[uwc] @7 pivot);
+ assert(lwc == lr + 1 || src_t[lwc] @8 pivot);
+ if (ml && mr && ll + 1 < fr) {
+ if (lwc <= ll || uwc >= fr) {
+ assert(lwc == uwc + 1);
+ } else {
+ assert(lwc == fr && uwc == ll);
+ }
+ } else {
+ assert(lwc == uwc + 1);
+ }
+
+ /*for(i_res=first; i_res<=last; i_res++)
+ {
+ assert((i_res<p && src_t[i_res] @7 pivot) || (i_res>=p &&
src_t[i_res] @8 pivot));
+ if(ml!=0 && mr!=0 && (i_res)==(first+ml-1))
+ i_res=last+1-mr;
+ }*/
+#endif
+
*pos_r = lowerWriteCursor;
GDKfree(src_h_local);
@@ -1257,6 +1303,7 @@ static str CRKvectorized_MT_@2_@1 (const
remaining_elements += ((n - remaining_elements) % nthreads);
last_vector_pos -= remaining_elements;
mm -= ((n - remaining_elements) % nthreads);
+ assert((last-first+1) != (last_vector_pos-first+remaining_elements));
if (alt == 1) {
ml = 0;
mr = 0;
@@ -1432,6 +1479,12 @@ static str CRKvectorized_MT_@2_@1 (const
}
}
+#ifdef NDEBUG
+ BUN i_res = 0;
+ for(i_res=first;i_res<=last_vector_pos;i_res++)
+ assert((i_res<f && src_t[i_res] @7 pivot) || (i_res>=f &&
src_t[i_res] @8 pivot));
+#endif
+
if(remaining_elements > 0)
{
BUN qualifying_elements = 0;
@@ -1466,6 +1519,13 @@ static str CRKvectorized_MT_@2_@1 (const
if (lowerCursor == upperCursor && src_t[lowerCursor] @7 pivot)
qualifying_elements += 1;
+#ifdef NDEBUG
+ BUN i_res = 0;
+ for(i_res=last_vector_pos+1;i_res<=last;i_res++)
+ assert((i_res<=last_vector_pos+qualifying_elements &&
src_t[i_res] @7 pivot) || (i_res>last_vector_pos+qualifying_elements &&
src_t[i_res] @8 pivot));
+
+#endif
+
if ((qualifying_elements == remaining_elements && f ==
last_vector_pos + 1) || (qualifying_elements == 0 && f == last_vector_pos + 1))
{
@@ -1511,6 +1571,12 @@ static str CRKvectorized_MT_@2_@1 (const
assert((f == last + 1 && src_t[f-1] @7 pivot) || src_t[f] @8 pivot);
assert((f == first && src_t[f] @8 pivot) || src_t[f-1] @7 pivot);
+#ifdef NDEBUG
+ BUN i_res = 0;
+ for(i_res=first;i_res<=last;i_res++)
+ assert((i_res<f && src_t[i_res] @7 pivot) || (i_res>=f &&
src_t[i_res] @8 pivot));
+#endif
+
*pos = (BUN) (f == 0 ? 0 : f - 1);
GDKfree(tmp_h);
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list