ConicBundle
|
Header declaring the classes CH_Matrix_Classes::Realrange and CH_Matrix_Classes::Matrix having Real elements. More...
Go to the source code of this file.
Classes | |
class | CH_Matrix_Classes::Realrange |
allows to specify a range of real values via (from, to, step,tol) meaning {x=from+i*step:x in(from-tol,to+tol),i in {0,1,2,...}} More... | |
class | CH_Matrix_Classes::Matrix |
Matrix class for real values of type Real More... | |
Namespaces | |
CH_Matrix_Classes | |
Matrix Classes and Linear Algebra. See Matrix Classes (namespace CH_Matrix_Classes) for a quick introduction. | |
Functions | |
Matrix | CH_Matrix_Classes::diag (const Matrix &A) |
returns a column vector v consisting of the elements v(i)=(*this)(i,i), 0<=i<min(row dimension,column dimension) | |
Matrix & | CH_Matrix_Classes::xbpeya (Matrix &x, const Matrix &y, Real alpha=1., Real beta=0., int ytrans=0) |
returns x= alpha*y+beta*x, where y may be transposed (ytrans=1); if beta==0. then x is initialized to the correct size | |
Matrix & | CH_Matrix_Classes::xeyapzb (Matrix &x, const Matrix &y, const Matrix &z, Real alpha=1., Real beta=1.) |
returns x= alpha*y+beta*z; x is initialized to the correct size | |
Matrix & | CH_Matrix_Classes::genmult (const Matrix &A, const Matrix &B, Matrix &C, Real alpha=1., Real beta=0., int atrans=0, int btrans=0) |
returns C=beta*C+alpha*A*B, where A and B may be transposed; C must not be equal to A and B; if beta==0. then C is initialized to the correct size | |
Matrix | CH_Matrix_Classes::transpose (const Matrix &A) |
returns a transposed matrix of A | |
std::vector< double > & | CH_Matrix_Classes::assign (std::vector< double > &vec, const Matrix &A) |
interpret A as a vector and copy it to a std::vector<double> which is also returned | |
Matrix & | CH_Matrix_Classes::genmult (const Symmatrix &A, const Matrix &B, Matrix &C, Real alpha, Real beta, int btrans) |
returns C=beta*C+alpha*A*B, where A and B may be transposed; C must not be equal to A and B; if beta==0. then C is initialized to the correct size More... | |
Matrix & | CH_Matrix_Classes::genmult (const Matrix &A, const Symmatrix &B, Matrix &C, Real alpha, Real beta, int atrans) |
returns C=beta*C+alpha*A*B, where A and B may be transposed; C must not be equal to A and B; if beta==0. then C is initialized to the correct size More... | |
Matrix & | CH_Matrix_Classes::genmult (const Sparsesym &A, const Matrix &B, Matrix &C, Real alpha, Real beta, int btrans) |
returns C=beta*C+alpha*A*B, where A and B may be transposed; C must not be equal to A and B; if beta==0. then C is initialized to the correct size More... | |
Matrix & | CH_Matrix_Classes::genmult (const Matrix &A, const Sparsesym &B, Matrix &C, Real alpha, Real beta, int atrans) |
returns C=beta*C+alpha*A*B, where A and B may be transposed; C must not be equal to A and B; if beta==0. then C is initialized to the correct size More... | |
Matrix & | CH_Matrix_Classes::genmult (const Sparsemat &A, const Matrix &B, Matrix &C, Real alpha, Real beta, int atrans, int btrans) |
returns C=beta*C+alpha*A*B, where A and B may be transposed; C must not be equal to A and B; if beta==0. then C is initialized to the correct size | |
Matrix & | CH_Matrix_Classes::genmult (const Matrix &A, const Sparsemat &B, Matrix &C, Real alpha, Real beta, int atrans, int btrans) |
returns C=beta*C+alpha*A*B, where A and B may be transposed; C must not be equal to A and B; if beta==0. then C is initialized to the correct size | |
Matrix | CH_Matrix_Classes::abs (const Matrix &A) |
returns a matrix with elements (i,j)=abs((*this)(i,j)) for all i,j | |
Real | CH_Matrix_Classes::trace (const Matrix &A) |
=sum(diag(A)) More... | |
Real | CH_Matrix_Classes::normDsquared (const Matrix &A, const Matrix &d, int atrans=0, int dinv=0) |
returns trace(A^TDA)=|A|^2_D with D=Diag(d). A may be transposed, D may be inverted but there is no check for division by zero | |
Matrix | CH_Matrix_Classes::sumrows (const Matrix &A) |
returns a row vector holding the sum over all rows, i.e., (1 1 ... 1)*A | |
Matrix | CH_Matrix_Classes::sumcols (const Matrix &A) |
returns a column vector holding the sum over all columns, i.e., A*(1 1 ... 1)^T | |
Real | CH_Matrix_Classes::sum (const Matrix &A) |
returns the sum over all elements of A, i.e., (1 1 ... 1)*A*(1 1 ... 1)^T | |
Matrix | CH_Matrix_Classes::house (const Matrix &x, Integer i=0, Integer j=0, Real tol=1e-10) |
returns the Householder vector of size A.rowdim() for the subcolumn A(i:A.rowdim(),j) | |
int | CH_Matrix_Classes::rowhouse (Matrix &A, const Matrix &v, Integer i=0, Integer j=0) |
Housholder pre-multiplication of A with Householder vector v; the first nonzero of v is index i, the multplication is applied to all columns of A with index >=j; always returns 0. | |
int | CH_Matrix_Classes::colhouse (Matrix &A, const Matrix &v, Integer i=0, Integer j=0) |
Housholder post-multiplication of A with Householder vector v; the first nonzero of v is index i, the multplication is applied to all rows of A with index >=j; always returns 0. | |
Matrix | CH_Matrix_Classes::operator< (const Matrix &A, const Matrix &B) |
returns a matrix having elements (i,j)=Real(A(i,j)<B(i,j)) for all i,j | |
Matrix | CH_Matrix_Classes::operator<= (const Matrix &A, const Matrix &B) |
returns a matrix having elements (i,j)=Real(A(i,j)<=B(i,j)) for all i,j | |
Matrix | CH_Matrix_Classes::operator== (const Matrix &A, const Matrix &B) |
returns a matrix having elements (i,j)=Real(A(i,j)==B(i,j)) for all i,j | |
Matrix | CH_Matrix_Classes::operator!= (const Matrix &A, const Matrix &B) |
returns a matrix having elements (i,j)=Real(A(i,j)!=B(i,j)) for all i,j | |
Matrix | CH_Matrix_Classes::operator< (const Matrix &A, Real d) |
returns a matrix having elements (i,j)=Real(A(i,j)<d) for all i,j | |
Matrix | CH_Matrix_Classes::operator> (const Matrix &A, Real d) |
returns a matrix having elements (i,j)=Real(A(i,j)>d) for all i,j | |
Matrix | CH_Matrix_Classes::operator<= (const Matrix &A, Real d) |
returns a matrix having elements (i,j)=Real(A(i,j)<=d) for all i,j | |
Matrix | CH_Matrix_Classes::operator>= (const Matrix &A, Real d) |
returns a matrix having elements (i,j)=Real(A(i,j)>=d) for all i,j | |
Matrix | CH_Matrix_Classes::operator== (const Matrix &A, Real d) |
returns a matrix having elements (i,j)=Real(A(i,j)==d) for all i,j | |
Matrix | CH_Matrix_Classes::operator!= (const Matrix &A, Real d) |
returns a matrix having elements (i,j)=Real(A(i,j)!=d) for all i,j | |
Matrix | CH_Matrix_Classes::minrows (const Matrix &A) |
returns a row vector holding in each column the minimum over all rows in this column | |
Matrix | CH_Matrix_Classes::mincols (const Matrix &A) |
returns a column vector holding in each row the minimum over all columns in this row | |
Real | CH_Matrix_Classes::min (const Matrix &A, Integer *iindex=0, Integer *jindex=0) |
returns the minimum value over all elements of the matrix | |
Matrix | CH_Matrix_Classes::maxrows (const Matrix &A) |
returns a row vector holding in each column the maximum over all rows in this column | |
Matrix | CH_Matrix_Classes::maxcols (const Matrix &A) |
returns a column vector holding in each row the maximum over all columns in this row | |
Real | CH_Matrix_Classes::max (const Matrix &A, Integer *iindex=0, Integer *jindex=0) |
returns the maximum value over all elements of the matrix | |
Indexmatrix | CH_Matrix_Classes::sortindex (const Matrix &vec, bool nondecreasing=true) |
returns an Indexmatrix ind so that vec(ind(0))<=vec(ind(1))<=...<=vec(ind(vec.dim()-1)) (vec may be rectangular, set nondecreasing=false for opposite order) | |
void | CH_Matrix_Classes::sortindex (const Matrix &vec, Indexmatrix &ind, bool nondecreasing=true) |
sets ind so that vec(ind(0))<=vec(ind(1))<=...<=vec(ind(vec.dim()-1)) (vec may be rectangular, set nondecreasing=false for opposite order) | |
std::ostream & | CH_Matrix_Classes::operator<< (std::ostream &o, const Matrix &v) |
output format (nr and nc are Integer values, all others Real values): nr nc \n A(1,1) A(1,2) ... A(1,nc) \n A(2,1) ... A(nr,nc) \n | |
std::istream & | CH_Matrix_Classes::operator>> (std::istream &i, Matrix &v) |
input format (nr and nc are Integer values, all others Real values): nr nc \n A(1,1) A(1,2) ... A(1,nc) \n A(2,1) ... A(nr,nc) \n | |
Real | CH_Matrix_Classes::ip (const Matrix &A, const Matrix &B) |
returns the usual inner product of A and B, i.e., the sum of A(i,j)*B(i,j) over all i,j | |
Real | CH_Matrix_Classes::colip (const Matrix &A, Integer j, const Matrix *scaling=0) |
returns the squared Frobenius norm of column j of A, i.e., the sum of A(i,j)*A(i,j) over all i with possibly (if scaling!=0) each term i multiplied by (*scaling)(i) | |
Real | CH_Matrix_Classes::rowip (const Matrix &A, Integer i, const Matrix *scaling=0) |
returns the squared Frobenius norm of row i of A, i.e., the sum of A(i,j)*A(i,j) over all j with possibly (if scaling!=0) each term j multiplied by (*scaling)(j) | |
Matrix | CH_Matrix_Classes::colsip (const Matrix &A) |
returns the column vector of the squared Frobenius norm of all columns j of A, i.e., the sum of A(i,j)*A(i,j) over all i for each j | |
Matrix | CH_Matrix_Classes::rowsip (const Matrix &A) |
returns the row vector of the squared Frobenius norm of all rowd i of A, i.e., the sum of A(i,j)*A(i,j) over all j for each i | |
Real | CH_Matrix_Classes::norm2 (const Matrix &A) |
returns the Frobenius norm of A, i.e., the square root of the sum of A(i,j)*A(i,j) over all i,j | |
Matrix | CH_Matrix_Classes::operator* (const Matrix &A, const Matrix &B) |
returns Matrix equal to A*B | |
Matrix | CH_Matrix_Classes::operator+ (const Matrix &A, const Matrix &B) |
returns Matrix equal to A+B | |
Matrix | CH_Matrix_Classes::operator- (const Matrix &A, const Matrix &B) |
returns Matrix equal to A-B | |
Matrix | CH_Matrix_Classes::operator% (const Matrix &A, const Matrix &B) |
ATTENTION: this is redefined as the Hadamard product, C(i,j)=A(i,j)*B(i,j) for all i,j. | |
Matrix | CH_Matrix_Classes::operator/ (const Matrix &A, const Matrix &B) |
ATTENTION: this is redefined to act componentwise without checking for zeros, C(i,j)=A(i,j)/B(i,j) for all i,j. | |
Matrix | CH_Matrix_Classes::operator* (const Matrix &A, Real d) |
returns Matrix equal to A*d | |
Matrix | CH_Matrix_Classes::operator* (Real d, const Matrix &A) |
returns Matrix equal to d*A | |
Matrix | CH_Matrix_Classes::operator/ (const Matrix &A, Real d) |
returns Matrix equal to A/d; ATTENTION: d is NOT checked for 0 More... | |
Matrix | CH_Matrix_Classes::operator+ (const Matrix &A, Real d) |
returns (i,j)=A(i,j)+d for all i,j | |
Matrix | CH_Matrix_Classes::operator+ (Real d, const Matrix &A) |
returns (i,j)=A(i,j)+d for all i,j | |
Matrix | CH_Matrix_Classes::operator- (const Matrix &A, Real d) |
returns (i,j)=A(i,j)-d for all i,j | |
Matrix | CH_Matrix_Classes::operator- (Real d, const Matrix &A) |
returns (i,j)=d-A(i,j) for all i,j | |
int | CH_Matrix_Classes::QR_factor (const Matrix &A, Matrix &Q, Matrix &R, Real tol) |
computes a Householder QR factorization of A and outputs Q and R leaving A unchanged; always returns 0 | |
int | CH_Matrix_Classes::QR_factor (const Matrix &A, Matrix &Q, Matrix &R, Indexmatrix &piv, Real tol) |
computes a Householder QR factorization of A with pivating. It outputs Q, R, and the pivoting permuation in piv; returns the rank of A | |
Matrix | CH_Matrix_Classes::triu (const Matrix &A, Integer i=0) |
retuns a matrix that keeps the upper triangle of A starting with diagonal d, i.e., (i,j)=A(i,j) for 0<=i<row dimension, max(0,i+d)<=j<column dimension, and sets (i,j)=0 otherwise | |
Matrix | CH_Matrix_Classes::tril (const Matrix &A, Integer i=0) |
retuns a matrix that keeps the lower triangle of A starting with diagonal d, i.e., (i,j)=A(i,j) for 0<=i<row dimension, 0<=j<min(i+d+1,column dimension), and sets (i,j)=0 otherwise | |
Matrix | CH_Matrix_Classes::concat_right (const Matrix &A, const Matrix &B) |
returns a new matrix [A, B], i.e., it concats matrices A and B rowwise; A or B may be a 0x0 matrix | |
Matrix | CH_Matrix_Classes::concat_below (const Matrix &A, const Matrix &B) |
returns a bew matrix [A; B], i.e., it concats matrices A and B columnwise; A or B may be a 0x0 matrix | |
void | CH_Matrix_Classes::swap (Matrix &A, Matrix &B) |
swap the content of the two matrices A and B (involves no copying) | |
Matrix | CH_Matrix_Classes::rand (Integer rows, Integer cols, CH_Tools::GB_rand *random_generator=0) |
return a nr x nc matrix with (i,j) assigned a random number uniformly from [0,1] for all i,j | |
Matrix | CH_Matrix_Classes::inv (const Matrix &A) |
returns a matrix with elements (i,j)=1./((*this)(i,j)) for all i,j; ATTENTION: no check for division by zero | |
Matrix | CH_Matrix_Classes::sqrt (const Matrix &A) |
returns a matrix with elements (i,j)=sqrt((*this)(i,j)) for all i,j | |
Matrix | CH_Matrix_Classes::sqr (const Matrix &A) |
returns a matrix with elements (i,j)=sqr((*this)(i,j)) for all i,j | |
Matrix | CH_Matrix_Classes::sign (const Matrix &A, Real tol=1e-12) |
returns a matrix with elements (i,j)=sign((*this)(i,j)) for all i,j using sign(double,double) | |
Matrix | CH_Matrix_Classes::floor (const Matrix &A) |
returns a matrix with elements (i,j)=floor((*this)(i,j)) for all i,j | |
Matrix | CH_Matrix_Classes::ceil (const Matrix &A) |
returns a matrix with elements (i,j)=ceil((*this)(i,j)) for all i,j | |
Matrix | CH_Matrix_Classes::rint (const Matrix &A) |
returns a matrix with elements (i,j)=rint((*this)(i,j)) for all i,j | |
Matrix | CH_Matrix_Classes::round (const Matrix &A) |
returns a matrix with elements (i,j)=round((*this)(i,j)) for all i,j | |
Matrix | CH_Matrix_Classes::operator> (const Matrix &A, const Matrix &B) |
returns a matrix having elements (i,j)=Real(A(i,j)>d) for all i,j More... | |
Matrix | CH_Matrix_Classes::operator>= (const Matrix &A, const Matrix &B) |
returns a matrix having elements (i,j)=Real(A(i,j)>=d) for all i,j More... | |
Matrix | CH_Matrix_Classes::operator< (Real d, const Matrix &A) |
returns a matrix having elements (i,j)=Real(d<A(i,j)) for all i,j | |
Matrix | CH_Matrix_Classes::operator> (Real d, const Matrix &A) |
returns a matrix having elements (i,j)=Real(d>A(i,j)) for all i,j | |
Matrix | CH_Matrix_Classes::operator<= (Real d, const Matrix &A) |
returns a matrix having elements (i,j)=Real(d<=A(i,j)) for all i,j | |
Matrix | CH_Matrix_Classes::operator>= (Real d, const Matrix &A) |
returns a matrix having elements (i,j)=Real(d>=A(i,j)) for all i,j | |
Matrix | CH_Matrix_Classes::operator== (Real d, const Matrix &A) |
returns a matrix having elements (i,j)=Real(d==A(i,j)) for all i,j | |
Matrix | CH_Matrix_Classes::operator!= (Real d, const Matrix &A) |
returns a matrix having elements (i,j)=Real(d!=A(i,j)) for all i,j | |
bool | CH_Matrix_Classes::equal (const Matrix &A, const Matrix &B) |
returns true if both matrices have the same size and the same elements | |
Indexmatrix | CH_Matrix_Classes::find (const Matrix &A, Real tol=1e-10) |
returns an Indexmatrix ind so that A(ind(i)) 0<=i<ind.dim() runs through all nonzero elements with abs(A(j))>tol | |
Indexmatrix | CH_Matrix_Classes::find_number (const Matrix &A, Real num=0., Real tol=1e-10) |
returns an Indexmatrix ind so that A(ind(i)) 0<=i<ind.dim() runs through all elements of A having value num, i.e., abs(A(j)-num)<tol | |
Header declaring the classes CH_Matrix_Classes::Realrange and CH_Matrix_Classes::Matrix having Real elements.