comparison lshlib.h @ 296:f922c234462f

fixed file size allocation for FORMAT2 files. Made LSH index size() in bytes an unsigned long long. Changed the name of lsh_inCore flag to lsh_on_disk (to reverse the sense of the 'flag').
author mas01mc
date Fri, 01 Aug 2008 15:04:31 +0000
parents 9fd5340faffd
children 921ba500a024
comparison
equal deleted inserted replaced
295:9347d74a2578 296:f922c234462f
57 #define O2_SERIAL_VERSION 1 // Sync with SVN version 57 #define O2_SERIAL_VERSION 1 // Sync with SVN version
58 #define O2_SERIAL_HEADER_SIZE sizeof(SerialHeaderT) 58 #define O2_SERIAL_HEADER_SIZE sizeof(SerialHeaderT)
59 #define O2_SERIAL_ELEMENT_SIZE sizeof(SerialElementT) 59 #define O2_SERIAL_ELEMENT_SIZE sizeof(SerialElementT)
60 #define O2_SERIAL_MAX_TABLES (200) 60 #define O2_SERIAL_MAX_TABLES (200)
61 #define O2_SERIAL_MAX_ROWS (1000000) 61 #define O2_SERIAL_MAX_ROWS (1000000)
62 #define O2_SERIAL_MAX_COLS (1000) 62 #define O2_SERIAL_MAX_COLS (100000)
63 #define O2_SERIAL_MAX_DIM (2000) 63 #define O2_SERIAL_MAX_DIM (2000)
64 #define O2_SERIAL_MAX_FUNS (100) 64 #define O2_SERIAL_MAX_FUNS (100)
65 #define O2_SERIAL_MAX_BINWIDTH (200) 65 #define O2_SERIAL_MAX_BINWIDTH (200)
66 #define O2_SERIAL_MAXFILESIZE (4000000000UL)
66 67
67 // Flags for Serial Header 68 // Flags for Serial Header
68 #define O2_SERIAL_FILEFORMAT1 (0x1U) // Optimize for on-disk search 69 #define O2_SERIAL_FILEFORMAT1 (0x1U) // Optimize for on-disk search
69 #define O2_SERIAL_FILEFORMAT2 (0x2U) // Optimize for in-core search 70 #define O2_SERIAL_FILEFORMAT2 (0x2U) // Optimize for in-core search
70 71
116 Uns32T flags; // 32 bits of useful information 117 Uns32T flags; // 32 bits of useful information
117 Uns32T dataDim; // vector dimensionality 118 Uns32T dataDim; // vector dimensionality
118 Uns32T numFuns; // number of independent hash functions 119 Uns32T numFuns; // number of independent hash functions
119 float radius; // 32-bit floating point radius 120 float radius; // 32-bit floating point radius
120 Uns32T maxp; // number of unique IDs in the database 121 Uns32T maxp; // number of unique IDs in the database
121 Uns32T value_14; // spare value 122 unsigned long long size_long; // long version of size
122 Uns32T value_15; // spare value 123 Uns32T pointCount; // number of points in the database
123 Uns32T value_16; // spare value
124 124
125 SerialHeader(); 125 SerialHeader();
126 SerialHeader(float W, Uns32T L, Uns32T N, Uns32T C, Uns32T k, Uns32T d, float radius, Uns32T p, Uns32T FMT); 126 SerialHeader(float W, Uns32T L, Uns32T N, Uns32T C, Uns32T k, Uns32T d, float radius, Uns32T p, Uns32T FMT, Uns32T pointCount);
127 127
128 float get_binWidth(){return binWidth;} 128 float get_binWidth(){return binWidth;}
129 Uns32T get_numTables(){return numTables;} 129 Uns32T get_numTables(){return numTables;}
130 Uns32T get_numRows(){return numRows;} 130 Uns32T get_numRows(){return numRows;}
131 Uns32T get_numCols(){return numCols;} 131 Uns32T get_numCols(){return numCols;}
132 Uns32T get_elementSize(){return elementSize;} 132 Uns32T get_elementSize(){return elementSize;}
133 Uns32T get_version(){return version;} 133 Uns32T get_version(){return version;}
134 Uns32T get_flags(){return flags;} 134 Uns32T get_flags(){return flags;}
135 Uns32T get_size(){return size;} 135 unsigned long long get_size(){return size_long;}
136 Uns32T get_dataDim(){return dataDim;} 136 Uns32T get_dataDim(){return dataDim;}
137 Uns32T get_numFuns(){return numFuns;} 137 Uns32T get_numFuns(){return numFuns;}
138 Uns32T get_maxp(){return maxp;} 138 Uns32T get_maxp(){return maxp;}
139 Uns32T get_pointCount(){return pointCount;}
139 }; 140 };
140 141
141 #define IFLAG 0xFFFFFFFF 142 #define IFLAG 0xFFFFFFFF
142 143
143 // Point-set collision bucket (sbucket). 144 // Point-set collision bucket (sbucket).
198 vector<vector<Uns32T> > uu; // Storage for m patial hash evaluations ( g_j = [u_a,u_b] ) 199 vector<vector<Uns32T> > uu; // Storage for m patial hash evaluations ( g_j = [u_a,u_b] )
199 200
200 Uns32T maxp; // highest pointID stored in database 201 Uns32T maxp; // highest pointID stored in database
201 Uns32T bucketCount; // count of number of point buckets allocated 202 Uns32T bucketCount; // count of number of point buckets allocated
202 Uns32T pointCount; // count of number of points inserted 203 Uns32T pointCount; // count of number of points inserted
204 Uns32T collisionCount; // number of points collided in a hash-table row
203 205
204 Uns32T t1; // first hash table key 206 Uns32T t1; // first hash table key
205 Uns32T t2; // second hash table key 207 Uns32T t2; // second hash table key
206 Uns32T P; // hash table prime number 208 Uns32T P; // hash table prime number
207 209