/* Example programs from the book Scientific and Engineering Programming in C++: An Introduction with Advanced Techniques and Examples, Addison-Wesley, 1994. (c) COPYRIGHT INTERNATIONAL BUSINESS MACHINES CORPORATION 1994. ALL RIGHTS RESERVED. See README file for further details. */ #ifndef SymPosDefPackedLURepH #define SymPosDefPackedLURepH #include "Array/ConcreteFortranSymmetricPackedArray2d.h" #include "Array/ConcreteFortranArray1d.h" #include "Array/ConcreteFortranArray2d.h" #include "LapackWrap/Lapack.h" template class SymPosDefPackedLURep { public: // These types are used for Ax=b in this implementation: typedef ConcreteFortranSymmetricPackedArray2d Unfactored; // A typedef ConcreteFortranArray1d Unknowns1d; // x typedef ConcreteFortranArray1d Knowns1d; // b typedef ConcreteFortranArray2d Unknowns2d; // x typedef ConcreteFortranArray2d Knowns2d; // b class Factored { public: Factored(SymPosDefPackedLURep::Unfactored* mp); void solve(ConcreteFortranArray1d&); void solve(ConcreteFortranArray1d& x, const ConcreteFortranArray1d& b); void solve(ConcreteFortranArray2d&); void solve(ConcreteFortranArray2d& x, const ConcreteFortranArray2d& b); private: CopiedObjPtr< SymPosDefPackedLURep::Unfactored > facmat_p; // Factored matrix pointer }; }; #ifdef XLC_QNOTEMPINC #include "LapackWrap/SymPosDefPackedLURep.c" #endif #endif