Go to the documentation of this file.00001
00002
00003 #ifndef SPOOLES_HH
00004 #define SPOOLES_HH
00005
00006 #include "basics/typedefs.hh"
00007 #include "compositions.hh"
00008
00009 namespace concepts {
00010
00011 using concepts::Real;
00012
00013
00014 template<typename F>
00015 class SparseMatrix;
00016
00017
00018
00023 class Spooles : public Operator<Real> {
00024 public:
00029 Spooles(const SparseMatrix<Real>& A, bool symmetric = false);
00030 virtual ~Spooles();
00031 virtual void operator()(const Function<Real>& fncY, Function<Real>& fncX);
00032 void operator()(const Vector<Real>& fncY, Vector<Real>& fncX);
00033 virtual const Space<Real>& spaceX() const { return spcX_; }
00034 virtual const Space<Real>& spaceY() const { return spcY_; }
00035 uint iterations() const { return 0; }
00036 protected:
00037 virtual std::ostream& info(std::ostream& os) const;
00038 private:
00040 const uint n_;
00042 const Space<Real>& spcX_;
00044 const Space<Real>& spcY_;
00046 bool symmetric_;
00048 bool factored_;
00049
00051 void* mtxA, * frontmtx, * mtxmanager, * chvmanager, * rootchv,
00052 * frontETree, * graph, * newToOldIV, * oldToNewIV, * adjIVL,
00053 * symbfacIVL, * bridge;
00054 int* oldToNew, * newToOld;
00055 int rc;
00056 };
00057
00058 }
00059
00060 #endif // SPOOLES_HH