Go to the documentation of this file.
53 template<
class mat_t,
class vec_t,
class vec2_t>
60 for(
size_t i=0;i<N;i++) {
67 for(
size_t i=0;i<imax;i++) {
68 double max_norm=norm[i];
70 for(
size_t j=i+1;j<N;j++) {
91 for(
size_t j=i+1;j<N;j++) {
95 double temp=O2SCL_IX2(A,i,j)/x;
96 if (fabs(temp)>=1.0) {
99 y=x*sqrt(1.0-temp*temp);
102 double sqrt_dbl_eps=sqrt(std::numeric_limits<double>::epsilon());
104 if (fabs(y/x)<sqrt(20.0)*sqrt_dbl_eps) {
int swap(const size_t i, const size_t j)
Swap two elements of a permutation.
The namespace for linear algebra classes and functions.
A class for representing permutations.
int init()
Initialize permutation to the identity.
double dnrm2_subcol(const mat_t &A, const size_t ir, const size_t ic, const size_t M)
Compute the norm of a subcolumn of a matrix.
void vector_swap_double(size_t N, vec_t &v1, vec2_t &v2)
Swap of of the first N elements of two double-precision vectors.
void QRPT_decomp(size_t M, size_t N, mat_t &A, vec_t &tau, o2scl::permutation &p, int &signum, vec2_t &norm)
Compute the QR decomposition of matrix A.
double householder_transform_subcol(mat_t &A, const size_t ir, const size_t ic, const size_t M)
Compute the Householder transform of a vector formed with n rows of a column of a matrix.
void householder_hm_subcol(mat_t &M, const size_t ir, const size_t ic, const size_t nr, const size_t nc, const mat_t &M2, const size_t ir2, const size_t ic2, double tau)
Apply a Householder transformation to the lower-right part of M when the transformation is stored in ...
void matrix_swap_cols_double(size_t M, mat_t &m, size_t j1, size_t j2)
Swap the first M rows of two columns in a double-precision matrix.
Documentation generated with Doxygen. Provided under the
GNU Free Documentation License (see License Information).