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_INDEX_H
00025 #define LSAFLOAT_INDEX_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 
00055 class LSAFloatIndex : public ElementFloatIndex<SortedSubIndex<WordSubIndex> >
00056 {
00057  public:
00058 
00060   LSAFloatIndex(int totalWords, BlockStats *stats, 
00061                 SortedSubIndex<WordSubIndex> *index,
00062                 FileName *fileName, int eigenvalues);
00063   ~LSAFloatIndex(void);
00064   
00066   bool calculateRow(int currentRealWord);
00068   int listRealPosition(int position);
00070   int indexRealPosition(int position);
00071 
00072   
00073  private:
00075   Quantise *createQuantiser(float lower, float upper);
00076 
00077   int _relements;
00078   int _reigenvalues;
00079   float **_reigenvectors;
00080   int _lelements;
00081   int _leigenvalues;
00082   float **_leigenvectors;
00083   float *_eigenvalues;
00084 };
00085 
00086 #endif