Home | Doxygen Documentation | Tutorials | Developer Tools (restricted)

operator/superLU.hh
Go to the documentation of this file.
00001 /* SuperLU: direct sparse solver
00002  */
00003 
00004 #ifndef SuperLU_hh
00005 #define SuperLU_hh
00006 
00007 #include "compositions.hh"
00008 #include "basics/typedefs.hh"
00009 
00010 namespace concepts {
00011 
00012   // *************************************************************** SuperLU **
00013 
00067   template<class F>
00068   class SuperLU : public VecOperator<F> {
00069   public:
00071     enum order { NATURAL = 0, MMD_PROD = 1, MMD_SUM = 2, COLAMD = 3 };
00085     SuperLU(const Operator<F>& A, enum order ispec = COLAMD);
00086     virtual ~SuperLU();
00087 
00088     uint iterations() const { return 0; }
00089   protected:
00090     virtual std::ostream& info(std::ostream& os) const;
00091   private:
00093     void* A_;
00094 
00096     uint n_;
00097 
00099     bool factorized_;
00101     enum order ispec_;
00102 
00104     void* L_, * U_;
00106     int *perm_r_, *perm_c_;
00107 
00108     virtual void apply_(const Vector<F>& fncY, Vector<F>& fncX);
00109   };
00110 
00111 } // namespace concepts
00112 
00113 #endif // SuperLU_hh

Home | Doxygen Documentation | Tutorials | Developer Tools (restricted)