R
: typedef typename size_type; //type of the indices. typedef typename value_type; //type of the coefficients. size_type R::nbrow(); size_type R::nbcol(); value_type R::operator()(size_type i, size_type j);
Typedefs | |
typedef unsigned | size_t |
Functions | |
template<class R> | |
std::ostream & | print (std::ostream &os, const R &m) |
template<class M> | |
std::istream & | read (std::istream &is, M &m, ByRow br=ByRow()) |
template<class M> | |
std::istream & | read (std::istream &is, M &m, ByCol) |
template<class R, class C> | |
void | init (R &a, const C &c) |
Initialise all the entries of a with the value c. | |
template<class M> | |
void | init (M &m, const typename M::value_type *data, ByRow) |
template<class M> | |
void | init (M &m, const typename M::value_type *data, ByCol) |
template<class M> | |
void | init (M &m, std::istream &ins, ByRow) |
template<class M> | |
void | init (M &m, std::istream &ins, ByCol) |
template<class M, class Data, class Order> | |
void | init (M &m, typename M::size_type nrw, typename M::size_type ncl, Data &data, Order) |
template<class R, class Int> | |
void | reserve (R &a, const Int &m, const Int &n) |
Reserve the memory space. | |
template<class M, class C> | |
void | mul_ext (M &m, const C &c) |
template<class V, class M> | |
void | getrow (V &v, const M &m, int i) |
template<class V, class M> | |
void | getcol (V &v, const M &m, int i) |
template<class SM, class M> | |
void | submatrix (SM &sm, const M &m, const Range2d &rg) |
template<class M, class Ma, class C> | |
void | mul_ext (M &m, const Ma &a, const C &c) |
template<class M, class C> | |
void | div_ext (M &m, const C &c) |
template<class M, class Ma, class C> | |
void | div_ext (M &m, const Ma &a, const C &c) |
template<class M> | |
void | swaprow (M &m, int i, int j) |
template<class M> | |
void | swapcol (M &m, int i, int j) |
template<class M, class C> | |
void | addrow (M &m, typename M::size_type i, typename M::size_type j, const C &c) |
template<class M, class C> | |
void | addcol (M &m, int i, int j, const C &c) |
template<class M, class C> | |
void | multrow (M &m, int i, const C &c) |
template<class M, class C> | |
void | multcol (M &m, int i, const C &c) |
template<class R1, class R2> | |
void | assign (R1 &r, const R2 &m) |
template<class R> | |
R::value_type | trace (const R &M) |
Trace of a matrix. | |
template<class R, class S> | |
void | add (R &a, const S &b) |
Inplace addition of matrices. | |
template<class R, class S, class T> | |
void | add (R &a, const S &b, const T &c) |
template<class R, class S> | |
void | sub (R &a, const S &b) |
template<class R> | |
void | sub (R &a, const R &b, const R &c) |
template<class R, class S, class T> | |
void | mul (R &a, const S &b, const T &c) |
template<class R, class S> | |
void | mul (R &a, const S &b) |
Inplace multiplication of matrices. | |
template<class V, class M, class W> | |
void | mul_vect (V &a, const M &b, const W &v) |
template<class R> | |
void | transpose (R &M) |
Inplace transposition. | |
template<class R> | |
bool | equal (const R &a, const R &b) |
template<class R> | |
void | setupper (R &A) |
template<class R> | |
void | setlower (R &A) |
template<class Vect, class Mat> | |
void | svd (Vect &S, const Mat &A, Mat &Us, Mat &V) |
template<class Vect, class Mat> | |
void | svd (Vect &S, const Mat &A) |
template<class R> | |
bool | good_pivot (Bareiss, R &A) |
template<class C, class O, class R> | |
bool | good_pivot (Bareiss, MPol< C, O, R > &A) |
template<class R> | |
R::value_type | decomp (LU lu, R &A) |
template<class R> | |
R::value_type | decomp (Bareiss, R &A, unsigned &r) |
template<class R> | |
R::value_type | decomp (const Bareiss &mth, R &A) |
template<class R> | |
R::size_type | rank (const R &M) |
template<class R> | |
R::size_type | rank (const Bareiss &mth, const R &M) |
template<class MAT> | |
void | kronecker (MAT &r, const MAT &a, const MAT &b) |
void MATRIX::add | ( | R & | a, | |
const S & | b, | |||
const T & | c | |||
) |
void MATRIX::add | ( | R & | a, | |
const S & | b | |||
) |
void MATRIX::assign | ( | R1 & | r, | |
const R2 & | m | |||
) |
Assignement of a dense matrix to another one, assuming they have the same size, but not necessarily the same type.
Definition at line 234 of file MATRIX.m.
References assign().
Referenced by TopSbdBdg2d< O, X, I >::assign(), bezier::sbd2d< X, I, bezier::bzislv< X > >::assign(), and let::assign().
R::value_type MATRIX::decomp | ( | Bareiss | , | |
R & | A, | |||
unsigned & | r | |||
) |
R::value_type MATRIX::decomp | ( | LU | lu, | |
R & | A | |||
) |
Test if A is a good pivot when A is a multivariate polynomial.
Definition at line 558 of file MATRIX.m.
References MPol< C, O, R >::begin(), and MPol< C, O, R >::end().
bool MATRIX::good_pivot | ( | Bareiss | , | |
R & | A | |||
) |
void MATRIX::init | ( | R & | a, | |
const C & | c | |||
) |
Initialise all the entries of a with the value c.
Definition at line 94 of file MATRIX.m.
Referenced by MatrDse< Seq< OCTREE::NODE_TYPE > >::MatrDse().
void MATRIX::kronecker | ( | MAT & | r, | |
const MAT & | a, | |||
const MAT & | b | |||
) |
void MATRIX::mul | ( | R & | a, | |
const S & | b | |||
) |
Inplace multiplication of matrices.
Definition at line 319 of file MATRIX.m.
References sturmseq::init().
void MATRIX::mul | ( | R & | a, | |
const S & | b, | |||
const T & | c | |||
) |
void MATRIX::mul_vect | ( | V & | a, | |
const M & | b, | |||
const W & | v | |||
) |
std::ostream& MATRIX::print | ( | std::ostream & | os, | |
const R & | m | |||
) |
R::size_type MATRIX::rank | ( | const Bareiss & | mth, | |
const R & | M | |||
) |
R::size_type MATRIX::rank | ( | const R & | M | ) |
Rank, based on SVD computations. A numerical rank is determined by computing the first index where the ratio of the corresponding singular value by the largest one is smaller than the tolerance TOL
.
Definition at line 674 of file MATRIX.m.
References linalg::rep1d< C >::size(), and svd().
Referenced by Rank().
void MATRIX::reserve | ( | R & | a, | |
const Int & | m, | |||
const Int & | n | |||
) |
void MATRIX::setlower | ( | R & | A | ) |
void MATRIX::setupper | ( | R & | A | ) |
void MATRIX::sub | ( | R & | a, | |
const R & | b, | |||
const R & | c | |||
) |
void MATRIX::sub | ( | R & | a, | |
const S & | b | |||
) |
void MATRIX::svd | ( | Vect & | S, | |
const Mat & | A | |||
) |
void MATRIX::svd | ( | Vect & | S, | |
const Mat & | A, | |||
Mat & | Us, | |||
Mat & | V | |||
) |
Singular value decomposition of the matrix A
. The singular values are output in S
. In output, the matrix Us
is the product of an orthogonal matrix by the diagnonal matrix of singular values, V
is an orthogonal matrix and we have A=Us*Transpose
(V). The matrix A
is not modified but copied first in Us
. If A
is an matrix, Us
is and V
is .
The necessary memory space {must be allocated} in S
and V
, before calling this function: S
should be of size max
(A.nbrow(),A.nbcol()) and V
of size (A.nbcol(),A.nbcol()). The matrix
Us
need not be preallocated, for it is assigned to a copy of A
(Us=A
).
It requires the functions or operators Norm
, sqrt
, +
,-,*,/, <=
for the coefficient field.
R::value_type MATRIX::trace | ( | const R & | M | ) |
void MATRIX::transpose | ( | R & | M | ) |
Inplace transposition.
Definition at line 362 of file MATRIX.m.
Referenced by MatrDse< Seq< OCTREE::NODE_TYPE > >::transpose().