00001 00005 class PrecML : public Precond 00006 00007 { 00008 protected: 00009 MLSolver* mlsolver; 00010 00011 public: 00012 PrecML (const Precond_prm& p); 00013 virtual ~PrecML () {} 00014 00015 00016 00017 virtual void attach (MLSolver &dds); 00018 virtual void attach (const PrecAction& precproc_) 00019 { Precond ::attach(precproc_); } 00020 virtual void init (MLSolver &dds); 00021 virtual void init (PrecBasis& Apb); 00022 virtual bool autoInit(); 00023 00024 virtual bool ok () const; 00025 00026 virtual void apply 00027 ( 00028 const LinEqVector& c, 00029 LinEqVector& d, 00030 TransposeMode tpmode = NOT_TRANSPOSED 00031 ); 00032 00033 virtual int getWork (const PrecondWork work_tp = APPLY_PREC_WORK) const; 00034 virtual real getStorage () const; 00035 00036 virtual void performance (PrecondStatistics& precStat); 00037 virtual String description () const; 00038 00039 CLASS_INFO 00040 VIRTUAL_CAST(PrecML) 00041 }; 00042 00043