comparison lshlib.h @ 324:c93be2f3a674

Merge of branches/large_adb -r 514:524 onto the trunk. No conflicts. Added LARGE_ADB support. Turn on with --ntracks 20001 or greater. Use --adb_feature_root to locate feature files at QUERY time. A bug fix in LSH indexing that was incorrectly thresholding large numbers of shingles.
author mas01mc
date Thu, 21 Aug 2008 21:28:33 +0000
parents 81ad865402e7
children fe4d5b763086
comparison
equal deleted inserted replaced
315:d2c56d4f841e 324:c93be2f3a674
56 56
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 (1000000000)
62 #define O2_SERIAL_MAX_COLS (100000) 62 #define O2_SERIAL_MAX_COLS (1000000)
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 #define O2_SERIAL_MAXFILESIZE (4000000000UL)
67 67
68 // Flags for Serial Header 68 // Flags for Serial Header
69 #define O2_SERIAL_FILEFORMAT1 (0x1U) // Optimize for on-disk search 69 #define O2_SERIAL_FILEFORMAT1 (0x1U) // Optimize disk format for on-disk search
70 #define O2_SERIAL_FILEFORMAT2 (0x2U) // Optimize for in-core search 70 #define O2_SERIAL_FILEFORMAT2 (0x2U) // Optimize disk format for in-core search
71 #define O2_SERIAL_COREFORMAT1 (0x4U)
72 #define O2_SERIAL_COREFORMAT2 (0x8U)
71 73
72 // Flags for serialization fileformat2: use high 3 bits of Uns32T 74 // Flags for serialization fileformat2: use high 3 bits of Uns32T
73 #define O2_SERIAL_TOKEN_T1 (0xFFFFFFFC) 75 #define O2_SERIAL_TOKEN_T1 (0xFFFFFFFCU)
74 #define O2_SERIAL_TOKEN_T2 (0xFFFFFFFDU) 76 #define O2_SERIAL_TOKEN_T2 (0xFFFFFFFDU)
75 #define O2_SERIAL_TOKEN_ENDTABLE (0xFFFFFFFEU) 77 #define O2_SERIAL_TOKEN_ENDTABLE (0xFFFFFFFEU)
76 78
77 #define O2_INDEX_MAXSTR (512) 79 #define O2_INDEX_MAXSTR (256)
78 80
79 unsigned align_up(unsigned x, unsigned w); 81 unsigned align_up(unsigned x, unsigned w);
80 82
81 #define O2_SERIAL_FUNCTIONS_SIZE (align_up(sizeof(float) * O2_SERIAL_MAX_TABLES * O2_SERIAL_MAX_FUNS * O2_SERIAL_MAX_DIM \ 83 #define O2_SERIAL_FUNCTIONS_SIZE (align_up(sizeof(float) * O2_SERIAL_MAX_TABLES * O2_SERIAL_MAX_FUNS * O2_SERIAL_MAX_DIM \
82 + sizeof(float) * O2_SERIAL_MAX_TABLES * O2_SERIAL_MAX_FUNS + \ 84 + sizeof(float) * O2_SERIAL_MAX_TABLES * O2_SERIAL_MAX_FUNS + \
318 void serial_bucket_chain_point(SerialElementT* pe, Uns32T qpos); 320 void serial_bucket_chain_point(SerialElementT* pe, Uns32T qpos);
319 void serial_bucket_dump(SerialElementT* pe); 321 void serial_bucket_dump(SerialElementT* pe);
320 322
321 // Callback Function for point reporting 323 // Callback Function for point reporting
322 void* calling_instance; // store calling object instance for member-function callback 324 void* calling_instance; // store calling object instance for member-function callback
323 void (*add_point_callback)(void*, Uns32T, Uns32T, float); // The callback 325 ReporterCallbackPtr add_point_callback; // Pointer to the callback function
324 326
325 public: 327 public:
326 G(char* lshFile, bool lshInCore = false); // unserialize constructor 328 G(char* lshFile, bool lshInCore = false); // unserialize constructor
327 G(float w, Uns32T k,Uns32T m, Uns32T d, Uns32T N, Uns32T C, float r); // core constructor 329 G(float w, Uns32T k,Uns32T m, Uns32T d, Uns32T N, Uns32T C, float r); // core constructor
328 ~G(); 330 ~G();