00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 
00021 
00022 
00023 
00024 #ifndef LSAFLOAT_THESAURUS_H
00025 #define LSAFLOAT_THESAURUS_H
00026 
00027 #include "SortedSubIndex.tcc"
00028 #include "Triplef_tfd.h"
00029 #include "ElementFloatIndex.tcc"
00030 #include "FileName.h"
00031 #include "CSCTriple_matrix.tcc"
00032 
00033 
00056 class LSAFloatThesaurus : public ElementFloatIndex<SortedSubIndex<WordSubIndex> >
00057 {
00058 public:
00059 
00061   LSAFloatThesaurus(int totalWords, BlockStats *stats, 
00062                 SortedSubIndex<WordSubIndex> *index,
00063                     FileName *fileName, int eigenvalues);
00064   ~LSAFloatThesaurus(void);
00065 
00066   bool calculateRow(int currentRealWord);
00067   int listRealPosition(int position);
00068   int indexRealPosition(int position);
00069 
00070 
00071 private:
00072   int _elements;
00073   int _eigenvalues;
00074   float **_eigenvectors;
00075   float *_eigenvalueList;
00076 
00077   Quantise *createQuantiser(float lower, float upper);
00078 };
00079 
00080 #endif