Mercurial > hg > audiodb
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 |