00001 //*****************************************************************************// 00002 // // 00003 // Copyright (c) 2001 // 00004 // INRIA // 00005 // 54600 VILLERS LES NANCY // 00006 // France // 00007 // // 00008 //*****************************************************************************// 00009 // // 00010 // *** NOTICE OF PROPRIETARY INFORMATION *** // 00011 // // 00012 // The information contained in this file is considered proprietary and the // 00013 // exclusive property of INRIA. This information may not be disclosed, // 00014 // duplicated or used, in whole or in part, for any purpose whatsoever // 00015 // without express written authorization from INRIA // 00016 // // 00017 //*****************************************************************************// 00018 00019 00020 #ifndef QC_SCF_BASEALGO_H_ 00021 #define QC_SCF_BASEALGO_H_ 00022 00023 00024 #include "QCCommon.hpp" 00025 #include "QCGeneralData.hpp" 00026 00027 00028 00029 00036 00037 00038 class QCSCFBaseAlgo 00039 { 00040 00042 public: 00043 00044 00048 QCMainAlgorithm getAlgorithm (void) const { return mainAlgo; } 00049 int getTempMemoryCost (void) const { return tempMemoryCost; } 00050 00051 00055 void init (const QCGeneralData& data); 00056 00057 00058 00059 00061 protected: 00062 00063 00067 QCSCFBaseAlgo (void); 00068 00069 00073 virtual ~QCSCFBaseAlgo (void); 00074 00075 00076 00078 private: 00079 00080 00081 00084 public: 00085 protected: 00086 00090 QCMainAlgorithm mainAlgo; 00091 00092 00096 QCFloat threshold; 00097 00098 00102 int nbMaxIter; 00103 00104 00108 bool convReached; 00109 00110 00114 int nbIter; 00115 00116 00120 int tempMemoryCost; 00121 00122 00126 QCDiagoAlgorithm diagoAlgorithm; 00127 00128 00132 QCFloat levelShiftingParam; 00133 00134 00135 00136 00137 00138 private: 00139 00140 }; 00141 00142 #endif // QC_SCF_BASEALGO_H_