//$$ hholder.cpp QR decomposition // Copyright (C) 1991,2,3,4: R B Davies #define WANT_MATH #include "include.h" #include "newmatap.h" #ifdef use_namespace namespace NEWMAT { #endif #ifdef DO_REPORT #define REPORT { static ExeCounter ExeCount(__LINE__,16); ++ExeCount; } #else #define REPORT {} #endif /*************************** QR decompositions ***************************/ inline Real square(Real x) { return x*x; } void QRZT(Matrix& X, LowerTriangularMatrix& L) { REPORT Tracer et("QZT(1)"); int n = X.Ncols(); int s = X.Nrows(); L.ReSize(s); Real* xi = X.Store(); int k; for (int i=0; i