fixes
authorfclaude <fclaude@3cdefd35-fc62-479d-8e8d-bae585ffb9ca>
Tue, 24 Mar 2009 22:18:46 +0000 (22:18 +0000)
committerfclaude <fclaude@3cdefd35-fc62-479d-8e8d-bae585ffb9ca>
Tue, 24 Mar 2009 22:18:46 +0000 (22:18 +0000)
git-svn-id: svn+ssh://idea.nguyen.vg/svn/sxsi/trunk/XMLTree@288 3cdefd35-fc62-479d-8e8d-bae585ffb9ca

libcds/src/Makefile
libcds/src/static_bitsequence/sdarray.h
libcds/src/static_bitsequence/static_bitsequence_sdarray.cpp

index 8f30567..d4ccf7c 100644 (file)
@@ -1,7 +1,7 @@
 CPP=g++
 
 CPP=g++
 
-CPPFLAGS=-g3 -Wall -O0
-#CPPFLAGS=-O9 -Wall -DNDEBUG 
+#CPPFLAGS=-g3 -Wall -O0
+CPPFLAGS=-O9 -Wall -DNDEBUG 
 
 INCL=-I../includes/
 
 
 INCL=-I../includes/
 
index 4fa12e8..0eb7ee7 100644 (file)
@@ -33,6 +33,7 @@ int selects3_construct(selects3 *select, int n, uint *buf);
 int selects3_select(selects3 *select, int i);
 int selects3_rank(selects3 *select, int i);
 
 int selects3_select(selects3 *select, int i);
 int selects3_rank(selects3 *select, int i);
 
+void make___selecttbl(void);
 int __setbit(uint *B, int i,int x);
 int selectd2_save(selectd2 * s, FILE * fp);
 int selects3_save(selects3 * s, FILE * fp);
 int __setbit(uint *B, int i,int x);
 int selectd2_save(selectd2 * s, FILE * fp);
 int selects3_save(selects3 * s, FILE * fp);
index 41bd316..78e52ed 100644 (file)
@@ -18,7 +18,7 @@ static_bitsequence_sdarray::static_bitsequence_sdarray(uint * buff, uint len) {
        delete [] tmp_seq;
 }
 
        delete [] tmp_seq;
 }
 
-static_bitsequence_sdarray::static_bitsequence_sdarray() {}
+static_bitsequence_sdarray::static_bitsequence_sdarray() {make___selecttbl();}
 
 static_bitsequence_sdarray::~static_bitsequence_sdarray() {
        if(ones)
 
 static_bitsequence_sdarray::~static_bitsequence_sdarray() {
        if(ones)
@@ -26,7 +26,7 @@ static_bitsequence_sdarray::~static_bitsequence_sdarray() {
 }
 
 uint static_bitsequence_sdarray::rank1(uint i) {
 }
 
 uint static_bitsequence_sdarray::rank1(uint i) {
-       if(i>len) return -1;
+       if(i>=len) return -1;
        if(ones)
                return selects3_rank(&sd,i);
        else
        if(ones)
                return selects3_rank(&sd,i);
        else
@@ -34,7 +34,6 @@ uint static_bitsequence_sdarray::rank1(uint i) {
 }
 
 uint static_bitsequence_sdarray::select1(uint i) {
 }
 
 uint static_bitsequence_sdarray::select1(uint i) {
-       if(i>ones) return -1;
        if(ones)
                return selects3_select(&sd,i);
        else
        if(ones)
                return selects3_select(&sd,i);
        else