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

operator/constrained.hh
Go to the documentation of this file.
00001 // solves a constrained source problem
00002 
00003 #ifndef constrainedSP_hh
00004 #define constrainedSP_hh
00005 
00006 #include <memory>
00007 #include "compositions.hh"
00008 #include "sparseMatrix.hh"
00009 
00010 namespace concepts {
00011 
00012   // forward declaration
00013   template<typename F>
00014   class SolverFabric;
00015 
00016   // *********************************************************** Constrained **
00017 
00027   class Constrained : public Operator<Real> {
00028   public:
00034     Constrained(SparseMatrix<Real>& S, SparseMatrix<Real>& C,
00035                 const Vector<Real>& g, SolverFabric<Real>& fabric);
00036     virtual void operator()(const Function<Real>& fncY, Function<Real>& fncX);
00037   protected:
00038     virtual std::ostream& info(std::ostream& os) const;
00039   private:
00040     SparseMatrix<Real>& C_, &S_;
00041     SparseMatrix<Real> Ct_;
00042     std::auto_ptr<SparseMatrix<Real> > CCt_;
00043     const Vector<Real>& g_;
00044     Vector<Real> SRg_;
00045     std::auto_ptr<Operator<Real> > CCtinv_, solver_;
00046     std::auto_ptr<concepts::Compose<Real> > R_, Qmin_, CtC_, QS_, QSQ_;
00047     std::auto_ptr<LiCoI<Real> > Q_;
00048     std::auto_ptr<LiCo<Real> > Sp_;
00049     SolverFabric<Real>& fabric_;
00050   };
00051 
00052 } // namespace concepts
00053 
00054 #endif // constrainedSP_hh

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