/* 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 DampedRectSVDRepH #define DampedRectSVDRepH #include "LapackWrap/RectSVDRep.h" #include "SciEng/NumericalLimits.h" template class DampedRectSVDRep : public RectSVDRep { public: class Factored : public RectSVDRep::Factored { public: Factored(Unfactored* mp) : RectSVDRep::Factored(mp), lambda2(NumericalLimits::epsilon) { } T dampingFactor() const { return lambda2; } T& dampingFactor() { return lambda2; } protected: virtual void pseudoInvert(ConcreteBlas2d& utb); virtual void pseudoInvert(ConcreteBlas1d& utb); private: T lambda2; }; }; #ifdef XLC_QNOTEMPINC #include "LapackWrap/DampedRectSVDRep.c" #endif #endif