/* 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 BlasRectLURepH #define BlasRectLURepH #include "LapackWrap/ConcreteBlas2d.h" #include "LapackWrap/ConcreteBlas1d.h" #include "Array/ConcreteFortranArray1d.h" template class BlasRectLURep { public: typedef ConcreteBlas2d Unfactored; typedef ConcreteBlas2d Unknowns2d; typedef ConcreteBlas2d Knowns2d; typedef ConcreteBlas1d Unknowns1d; typedef ConcreteBlas1d Knowns1d; class Factored { public: Factored(BlasRectLURep::Unfactored* mp); void solve(ConcreteBlas2d&); void solve(ConcreteBlas2d& x, const ConcreteBlas2d& b); void solve(ConcreteBlas1d&); void solve(ConcreteBlas1d& x, const ConcreteBlas1d& b); private: CopiedObjPtr< BlasRectLURep::Unfactored > facmat_p; // Factored matrix pointer ConcreteFortranArray1d pivots; // Pivots }; }; #ifdef XLC_QNOTEMPINC #include "LapackWrap/BlasRectLURep.c" #endif #endif