ROOT 6.13/01 Reference Guide |
Template class of a symmetric matrix in the linear algebra package
Note that in this implementation both matrix element m[i][j] and m[j][i] are updated and stored in memory . However, when making the object persistent only the upper right triangle is stored .
Definition at line 22 of file TMatrixDSymfwd.h.
Public Types | |
enum | { kWorkMax = 100 } |
enum | EMatrixCreatorsOp1 { kZero, kUnit, kTransposed, kInverted, kAtA } |
enum | EMatrixCreatorsOp2 { kPlus, kMinus } |
Public Member Functions | |
TMatrixTSym () | |
TMatrixTSym (Int_t nrows) | |
TMatrixTSym (Int_t row_lwb, Int_t row_upb) | |
TMatrixTSym (Int_t nrows, const Element *data, Option_t *option="") | |
option= More... | |
TMatrixTSym (Int_t row_lwb, Int_t row_upb, const Element *data, Option_t *option="") | |
array elements are copied More... | |
TMatrixTSym (const TMatrixTSym< Element > &another) | |
template<class Element2 > | |
TMatrixTSym (const TMatrixTSym< Element2 > &another) | |
TMatrixTSym (EMatrixCreatorsOp1 op, const TMatrixTSym< Element > &prototype) | |
Create a matrix applying a specific operation to the prototype. More... | |
TMatrixTSym (EMatrixCreatorsOp1 op, const TMatrixT< Element > &prototype) | |
TMatrixTSym (const TMatrixTSym< Element > &a, EMatrixCreatorsOp2 op, const TMatrixTSym< Element > &b) | |
TMatrixTSym (const TMatrixTSymLazy< Element > &lazy_constructor) | |
virtual | ~TMatrixTSym () |
TMatrixTBase< Element > & | Apply (const TElementActionT< Element > &action) |
Apply action to each matrix element. More... | |
TMatrixTBase< Element > & | Apply (const TElementPosActionT< Element > &action) |
Apply action to each element of the matrix. More... | |
virtual void | Clear (Option_t *="") |
virtual Double_t | Determinant () const |
virtual void | Determinant (Double_t &d1, Double_t &d2) const |
const TMatrixT< Element > | EigenVectors (TVectorT< Element > &eigenValues) const |
Return a matrix containing the eigen-vectors ordered by descending eigen-values. More... | |
virtual const Int_t * | GetColIndexArray () const |
virtual Int_t * | GetColIndexArray () |
virtual const Element * | GetMatrixArray () const |
virtual Element * | GetMatrixArray () |
virtual const Int_t * | GetRowIndexArray () const |
virtual Int_t * | GetRowIndexArray () |
TMatrixTSym< Element > & | GetSub (Int_t row_lwb, Int_t row_upb, TMatrixTSym< Element > &target, Option_t *option="S") const |
Get submatrix [row_lwb..row_upb][row_lwb..row_upb]; The indexing range of the returned matrix depends on the argument option: More... | |
virtual TMatrixTBase< Element > & | GetSub (Int_t row_lwb, Int_t row_upb, Int_t col_lwb, Int_t col_upb, TMatrixTBase< Element > &target, Option_t *option="S") const |
Get submatrix [row_lwb..row_upb][col_lwb..col_upb]; The indexing range of the returned matrix depends on the argument option: More... | |
TMatrixTSym< Element > | GetSub (Int_t row_lwb, Int_t row_upb, Int_t col_lwb, Int_t col_upb, Option_t *option="S") const |
TMatrixTSym< Element > & | Invert (Double_t *det=0) |
Invert the matrix and calculate its determinant Notice that the LU decomposition is used instead of Bunch-Kaufman Bunch-Kaufman guarantees a symmetric inverted matrix but is slower than LU . More... | |
TMatrixTSym< Element > & | InvertFast (Double_t *det=0) |
Invert the matrix and calculate its determinant. More... | |
virtual Bool_t | IsSymmetric () const |
Check whether matrix is symmetric. More... | |
void | Minus (const TMatrixTSym< Element > &a, const TMatrixTSym< Element > &b) |
Symmetric matrix summation. Create a matrix C such that C = A + B. More... | |
void | Mult (const TMatrixTSym< Element > &a) |
Element | operator() (Int_t rown, Int_t coln) const |
Element & | operator() (Int_t rown, Int_t coln) |
TMatrixTSym< Element > & | operator*= (Element val) |
Multiply every element of the matrix with val. More... | |
TMatrixTSym< Element > & | operator+= (Element val) |
Add val to every element of the matrix. More... | |
TMatrixTSym & | operator+= (const TMatrixTSym &source) |
Add the source matrix. More... | |
TMatrixTSym< Element > & | operator-= (Element val) |
Subtract val from every element of the matrix. More... | |
TMatrixTSym & | operator-= (const TMatrixTSym &source) |
Subtract the source matrix. More... | |
TMatrixTSym< Element > & | operator= (const TMatrixTSym< Element > &source) |
TMatrixTSym< Element > & | operator= (const TMatrixTSymLazy< Element > &source) |
template<class Element2 > | |
TMatrixTSym< Element > & | operator= (const TMatrixTSym< Element2 > &source) |
TMatrixTSym< Element > & | operator= (Element val) |
Assign val to every element of the matrix. More... | |
const TMatrixTRow_const< Element > | operator[] (Int_t rown) const |
TMatrixTRow< Element > | operator[] (Int_t rown) |
void | Plus (const TMatrixTSym< Element > &a, const TMatrixTSym< Element > &b) |
Symmetric matrix summation. Create a matrix C such that C = A + B. More... | |
virtual TMatrixTBase< Element > & | Randomize (Element alpha, Element beta, Double_t &seed) |
randomize matrix element values but keep matrix symmetric More... | |
virtual TMatrixTSym< Element > & | RandomizePD (Element alpha, Element beta, Double_t &seed) |
randomize matrix element values but keep matrix symmetric positive definite More... | |
TMatrixTSym< Element > & | Rank1Update (const TVectorT< Element > &v, Element alpha=1.0) |
Perform a rank 1 operation on the matrix: A += alpha * v * v^T. More... | |
virtual TMatrixTBase< Element > & | ResizeTo (Int_t nrows, Int_t ncols, Int_t=-1) |
Set size of the matrix to nrows x ncols New dynamic elements are created, the overlapping part of the old ones are copied to the new structures, then the old elements are deleted. More... | |
virtual TMatrixTBase< Element > & | ResizeTo (Int_t row_lwb, Int_t row_upb, Int_t col_lwb, Int_t col_upb, Int_t=-1) |
Set size of the matrix to [row_lwb:row_upb] x [col_lwb:col_upb] New dynamic elements are created, the overlapping part of the old ones are copied to the new structures, then the old elements are deleted. More... | |
TMatrixTBase< Element > & | ResizeTo (const TMatrixTSym< Element > &m) |
virtual TMatrixTBase< Element > & | SetColIndexArray (Int_t *) |
virtual TMatrixTBase< Element > & | SetMatrixArray (const Element *data, Option_t *option="") |
Copy array data to matrix . More... | |
virtual TMatrixTBase< Element > & | SetRowIndexArray (Int_t *) |
TMatrixTSym< Element > & | SetSub (Int_t row_lwb, const TMatrixTBase< Element > &source) |
Insert matrix source starting at [row_lwb][row_lwb], thereby overwriting the part [row_lwb..row_lwb+nrows_source][row_lwb..row_lwb+nrows_source];. More... | |
virtual TMatrixTBase< Element > & | SetSub (Int_t row_lwb, Int_t col_lwb, const TMatrixTBase< Element > &source) |
Insert matrix source starting at [row_lwb][col_lwb] in a symmetric fashion, thereby overwriting the part [row_lwb..row_lwb+nrows_source][row_lwb..row_lwb+nrows_source];. More... | |
virtual TMatrixTBase< Element > & | Shift (Int_t row_shift, Int_t col_shift) |
Shift the row index by adding row_shift and the column index by adding col_shift, respectively. More... | |
TMatrixTSym< Element > & | Similarity (const TMatrixT< Element > &n) |
Calculate B * (*this) * B^T , final matrix will be (nrowsb x nrowsb) This is a similarity transform when B is orthogonal . More... | |
TMatrixTSym< Element > & | Similarity (const TMatrixTSym< Element > &n) |
Calculate B * (*this) * B^T , final matrix will be (nrowsb x nrowsb) This is a similarity transform when B is orthogonal . More... | |
Element | Similarity (const TVectorT< Element > &v) const |
Calculate scalar v * (*this) * v^T. More... | |
TMatrixTSym< Element > & | SimilarityT (const TMatrixT< Element > &n) |
Calculate B^T * (*this) * B , final matrix will be (ncolsb x ncolsb) It is more efficient than applying the actual multiplication because this routine realizes that the final matrix is symmetric . More... | |
TMatrixTSym< Element > & | T () |
void | TMult (const TMatrixT< Element > &a) |
Create a matrix C such that C = A' * A. More... | |
void | TMult (const TMatrixTSym< Element > &a) |
Matrix multiplication, with A symmetric Create a matrix C such that C = A' * A = A * A = A * A'. More... | |
TMatrixTSym< Element > & | Transpose (const TMatrixTSym< Element > &source) |
Transpose a matrix. More... | |
TMatrixTSym< Element > & | Use (Int_t row_lwb, Int_t row_upb, Element *data) |
const TMatrixTSym< Element > & | Use (Int_t row_lwb, Int_t row_upb, const Element *data) const |
TMatrixTSym< Element > & | Use (Int_t nrows, Element *data) |
const TMatrixTSym< Element > & | Use (Int_t nrows, const Element *data) const |
TMatrixTSym< Element > & | Use (TMatrixTSym< Element > &a) |
const TMatrixTSym< Element > & | Use (const TMatrixTSym< Element > &a) const |
Public Member Functions inherited from TMatrixTBase< Element > | |
TMatrixTBase () | |
virtual | ~TMatrixTBase () |
virtual TMatrixTBase< Element > & | Abs () |
Take an absolute value of a matrix, i.e. apply Abs() to each element. More... | |
virtual Element | ColNorm () const |
Column matrix norm, MAX{ SUM{ |M(i,j)|, over i}, over j}. More... | |
void | Draw (Option_t *option="") |
Draw this matrix The histogram is named "TMatrixT" by default and no title. More... | |
virtual Element | E2Norm () const |
Square of the Euclidian norm, SUM{ m(i,j)^2 }. More... | |
virtual void | ExtractRow (Int_t row, Int_t col, Element *v, Int_t n=-1) const |
Store in array v, n matrix elements of row rown starting at column coln. More... | |
Int_t | GetColLwb () const |
Int_t | GetColUpb () const |
virtual void | GetMatrix2Array (Element *data, Option_t *option="") const |
Copy matrix data to array . More... | |
Int_t | GetNcols () const |
Int_t | GetNoElements () const |
Int_t | GetNrows () const |
Int_t | GetRowLwb () const |
Int_t | GetRowUpb () const |
Element | GetTol () const |
virtual TMatrixTBase< Element > & | InsertRow (Int_t row, Int_t col, const Element *v, Int_t n=-1) |
Copy n elements from array v to row rown starting at column coln. More... | |
void | Invalidate () |
Bool_t | IsOwner () const |
Bool_t | IsValid () const |
void | MakeValid () |
virtual Element | Max () const |
return maximum vector element value More... | |
virtual Element | Min () const |
return minimum matrix element value More... | |
virtual Int_t | NonZeros () const |
Compute the number of elements != 0.0. More... | |
Element | Norm1 () const |
virtual TMatrixTBase< Element > & | NormByDiag (const TVectorT< Element > &v, Option_t *option="D") |
option: More... | |
Element | NormInf () const |
Bool_t | operator!= (Element val) const |
Are all matrix elements not equal to val? More... | |
Bool_t | operator< (Element val) const |
Are all matrix elements < val? More... | |
Bool_t | operator<= (Element val) const |
Are all matrix elements <= val? More... | |
Bool_t | operator== (Element val) const |
Are all matrix elements equal to val? More... | |
Bool_t | operator> (Element val) const |
Are all matrix elements > val? More... | |
Bool_t | operator>= (Element val) const |
Are all matrix elements >= val? More... | |
void | Print (Option_t *name="") const |
Print the matrix as a table of elements. More... | |
virtual Element | RowNorm () const |
Row matrix norm, MAX{ SUM{ |M(i,j)|, over j}, over i}. More... | |
Element | SetTol (Element tol) |
virtual TMatrixTBase< Element > & | Sqr () |
Square each element of the matrix. More... | |
virtual TMatrixTBase< Element > & | Sqrt () |
Take square root of all elements. More... | |
virtual Element | Sum () const |
Compute sum of elements. More... | |
virtual TMatrixTBase< Element > & | UnitMatrix () |
Make a unit matrix (matrix need not be a square one). More... | |
virtual TMatrixTBase< Element > & | Zero () |
Set matrix elements to zero. More... | |
Protected Member Functions | |
void | Allocate (Int_t nrows, Int_t ncols, Int_t row_lwb=0, Int_t col_lwb=0, Int_t init=0, Int_t=-1) |
Allocate new matrix. More... | |
void | Delete_m (Int_t size, Element *&) |
delete data pointer m, if it was assigned on the heap More... | |
Int_t | Memcpy_m (Element *newp, const Element *oldp, Int_t copySize, Int_t newSize, Int_t oldSize) |
copy copySize doubles from *oldp to *newp . More... | |
Element * | New_m (Int_t size) |
return data pointer . More... | |
Protected Attributes | |
Element | fDataStack [TMatrixTBase< Element >::kSizeMax] |
Element * | fElements |
data container More... | |
Protected Attributes inherited from TMatrixTBase< Element > | |
Int_t | fColLwb |
Bool_t | fIsOwner |
Int_t | fNcols |
Int_t | fNelems |
Int_t | fNrowIndex |
Int_t | fNrows |
Int_t | fRowLwb |
Element | fTol |
Additional Inherited Members | |
Static Public Member Functions inherited from TMatrixTBase< Element > | |
static Element & | NaNValue () |
Protected Types inherited from TMatrixTBase< Element > | |
enum | { kSizeMax = 25 } |
enum | { kWorkMax = 100 } |
enum | EMatrixStatusBits { kStatus = BIT(14) } |
Static Protected Member Functions inherited from TMatrixTBase< Element > | |
static void | DoubleLexSort (Int_t n, Int_t *first, Int_t *second, Element *data) |
default kTRUE, when Use array kFALSE More... | |
static void | IndexedLexSort (Int_t n, Int_t *first, Int_t swapFirst, Int_t *second, Int_t swapSecond, Int_t *index) |
Lexical sort on array data using indices first and second. More... | |
#include <TMatrixDSymfwd.h>
anonymous enum |
Enumerator | |
---|---|
kWorkMax |
Definition at line 50 of file TMatrixTSym.h.
enum TMatrixTSym::EMatrixCreatorsOp1 |
Enumerator | |
---|---|
kZero | |
kUnit | |
kTransposed | |
kInverted | |
kAtA |
Definition at line 51 of file TMatrixTSym.h.
enum TMatrixTSym::EMatrixCreatorsOp2 |
Enumerator | |
---|---|
kPlus | |
kMinus |
Definition at line 52 of file TMatrixTSym.h.
|
inline |
Definition at line 54 of file TMatrixTSym.h.
|
explicit |
Definition at line 40 of file TMatrixTSym.cxx.
TMatrixTSym< Element >::TMatrixTSym | ( | Int_t | row_lwb, |
Int_t | row_upb | ||
) |
Definition at line 48 of file TMatrixTSym.cxx.
TMatrixTSym< Element >::TMatrixTSym | ( | Int_t | no_rows, |
const Element * | elements, | ||
Option_t * | option = "" |
||
) |
option=
array elements are copied
Definition at line 64 of file TMatrixTSym.cxx.
TMatrixTSym< Element >::TMatrixTSym | ( | Int_t | row_lwb, |
Int_t | row_upb, | ||
const Element * | data, | ||
Option_t * | option = "" |
||
) |
array elements are copied
Definition at line 77 of file TMatrixTSym.cxx.
TMatrixTSym< Element >::TMatrixTSym | ( | const TMatrixTSym< Element > & | another | ) |
Definition at line 90 of file TMatrixTSym.cxx.
|
inline |
Definition at line 60 of file TMatrixTSym.h.
TMatrixTSym< Element >::TMatrixTSym | ( | EMatrixCreatorsOp1 | op, |
const TMatrixTSym< Element > & | prototype | ||
) |
Create a matrix applying a specific operation to the prototype.
Example: TMatrixTSym<Element> a(10,12); ...; TMatrixTSym<Element> b(TMatrixT::kTransposed, a); Supported operations are: kZero, kUnit, kTransposed, kInverted and kAtA.
Definition at line 103 of file TMatrixTSym.cxx.
TMatrixTSym< Element >::TMatrixTSym | ( | EMatrixCreatorsOp1 | op, |
const TMatrixT< Element > & | prototype | ||
) |
Definition at line 152 of file TMatrixTSym.cxx.
TMatrixTSym< Element >::TMatrixTSym | ( | const TMatrixTSym< Element > & | a, |
EMatrixCreatorsOp2 | op, | ||
const TMatrixTSym< Element > & | b | ||
) |
Definition at line 171 of file TMatrixTSym.cxx.
TMatrixTSym< Element >::TMatrixTSym | ( | const TMatrixTSymLazy< Element > & | lazy_constructor | ) |
Definition at line 199 of file TMatrixTSym.cxx.
|
inlinevirtual |
Definition at line 72 of file TMatrixTSym.h.
|
protected |
Allocate new matrix.
Arguments are number of rows, columns, row lowerbound (0 default) and column lowerbound (0 default).
Definition at line 273 of file TMatrixTSym.cxx.
|
virtual |
Apply action to each matrix element.
Reimplemented from TMatrixTBase< Element >.
Definition at line 1552 of file TMatrixTSym.cxx.
|
virtual |
Apply action to each element of the matrix.
To action the location of the current element is passed.
Reimplemented from TMatrixTBase< Element >.
Definition at line 1579 of file TMatrixTSym.cxx.
|
inlinevirtual |
Implements TMatrixTBase< Element >.
Definition at line 92 of file TMatrixTSym.h.
|
protected |
delete data pointer m, if it was assigned on the heap
Definition at line 214 of file TMatrixTSym.cxx.
|
virtual |
Reimplemented from TMatrixTBase< Element >.
Definition at line 934 of file TMatrixTSym.cxx.
|
virtual |
Reimplemented from TMatrixTBase< Element >.
Definition at line 946 of file TMatrixTSym.cxx.
const TMatrixT< Element > TMatrixTSym< Element >::EigenVectors | ( | TVectorT< Element > & | eigenValues | ) | const |
Return a matrix containing the eigen-vectors ordered by descending eigen-values.
For full functionality use TMatrixDSymEigen .
Definition at line 1680 of file TMatrixTSym.cxx.
|
inlinevirtual |
Implements TMatrixTBase< Element >.
Definition at line 86 of file TMatrixTSym.h.
|
inlinevirtual |
Implements TMatrixTBase< Element >.
Definition at line 87 of file TMatrixTSym.h.
|
inlinevirtual |
Implements TMatrixTBase< Element >.
Definition at line 189 of file TMatrixTSym.h.
|
inlinevirtual |
Implements TMatrixTBase< Element >.
Definition at line 190 of file TMatrixTSym.h.
|
inlinevirtual |
Implements TMatrixTBase< Element >.
Definition at line 84 of file TMatrixTSym.h.
|
inlinevirtual |
Implements TMatrixTBase< Element >.
Definition at line 85 of file TMatrixTSym.h.
TMatrixTSym< Element > & TMatrixTSym< Element >::GetSub | ( | Int_t | row_lwb, |
Int_t | row_upb, | ||
TMatrixTSym< Element > & | target, | ||
Option_t * | option = "S" |
||
) | const |
Get submatrix [row_lwb..row_upb][row_lwb..row_upb]; The indexing range of the returned matrix depends on the argument option:
option == "S" : return [0..row_upb-row_lwb+1][0..row_upb-row_lwb+1] (default) else : return [row_lwb..row_upb][row_lwb..row_upb]
Definition at line 502 of file TMatrixTSym.cxx.
|
virtual |
Get submatrix [row_lwb..row_upb][col_lwb..col_upb]; The indexing range of the returned matrix depends on the argument option:
option == "S" : return [0..row_upb-row_lwb+1][0..col_upb-col_lwb+1] (default) else : return [row_lwb..row_upb][col_lwb..col_upb]
Implements TMatrixTBase< Element >.
Definition at line 568 of file TMatrixTSym.cxx.
|
inline |
Definition at line 200 of file TMatrixTSym.h.
TMatrixTSym< Element > & TMatrixTSym< Element >::Invert | ( | Double_t * | det = 0 | ) |
Invert the matrix and calculate its determinant Notice that the LU decomposition is used instead of Bunch-Kaufman Bunch-Kaufman guarantees a symmetric inverted matrix but is slower than LU .
The user can access Bunch-Kaufman through the TDecompBK class .
Definition at line 960 of file TMatrixTSym.cxx.
TMatrixTSym< Element > & TMatrixTSym< Element >::InvertFast | ( | Double_t * | det = 0 | ) |
Invert the matrix and calculate its determinant.
Definition at line 978 of file TMatrixTSym.cxx.
|
inlinevirtual |
Check whether matrix is symmetric.
Reimplemented from TMatrixTBase< Element >.
Definition at line 95 of file TMatrixTSym.h.
|
protected |
copy copySize doubles from *oldp to *newp .
However take care of the situation where both pointers are assigned to the same stack space
Definition at line 246 of file TMatrixTSym.cxx.
void TMatrixTSym< Element >::Minus | ( | const TMatrixTSym< Element > & | a, |
const TMatrixTSym< Element > & | b | ||
) |
Symmetric matrix summation. Create a matrix C such that C = A + B.
Definition at line 345 of file TMatrixTSym.cxx.
|
inline |
Definition at line 77 of file TMatrixTSym.h.
|
protected |
return data pointer .
if requested size <= kSizeMax, assign pointer to the stack space
Definition at line 228 of file TMatrixTSym.cxx.
|
inlinevirtual |
Implements TMatrixTBase< Element >.
Definition at line 208 of file TMatrixTSym.h.
|
inlinevirtual |
Implements TMatrixTBase< Element >.
Definition at line 224 of file TMatrixTSym.h.
TMatrixTSym< Element > & TMatrixTSym< Element >::operator*= | ( | Element | val | ) |
Multiply every element of the matrix with val.
Definition at line 1497 of file TMatrixTSym.cxx.
TMatrixTSym< Element > & TMatrixTSym< Element >::operator+= | ( | Element | val | ) |
Add val to every element of the matrix.
Definition at line 1465 of file TMatrixTSym.cxx.
TMatrixTSym< Element > & TMatrixTSym< Element >::operator+= | ( | const TMatrixTSym< Element > & | source | ) |
Add the source matrix.
Definition at line 1513 of file TMatrixTSym.cxx.
TMatrixTSym< Element > & TMatrixTSym< Element >::operator-= | ( | Element | val | ) |
Subtract val from every element of the matrix.
Definition at line 1481 of file TMatrixTSym.cxx.
TMatrixTSym< Element > & TMatrixTSym< Element >::operator-= | ( | const TMatrixTSym< Element > & | source | ) |
Subtract the source matrix.
Definition at line 1533 of file TMatrixTSym.cxx.
TMatrixTSym< Element > & TMatrixTSym< Element >::operator= | ( | const TMatrixTSym< Element > & | source | ) |
Definition at line 1413 of file TMatrixTSym.cxx.
TMatrixTSym< Element > & TMatrixTSym< Element >::operator= | ( | const TMatrixTSymLazy< Element > & | source | ) |
Definition at line 1430 of file TMatrixTSym.cxx.
|
inline |
Definition at line 144 of file TMatrixTSym.h.
TMatrixTSym< Element > & TMatrixTSym< Element >::operator= | ( | Element | val | ) |
Assign val to every element of the matrix.
Definition at line 1449 of file TMatrixTSym.cxx.
|
inline |
Definition at line 139 of file TMatrixTSym.h.
|
inline |
Definition at line 140 of file TMatrixTSym.h.
void TMatrixTSym< Element >::Plus | ( | const TMatrixTSym< Element > & | a, |
const TMatrixTSym< Element > & | b | ||
) |
Symmetric matrix summation. Create a matrix C such that C = A + B.
Definition at line 311 of file TMatrixTSym.cxx.
|
virtual |
randomize matrix element values but keep matrix symmetric
Reimplemented from TMatrixTBase< Element >.
Definition at line 1607 of file TMatrixTSym.cxx.
|
virtual |
randomize matrix element values but keep matrix symmetric positive definite
Definition at line 1638 of file TMatrixTSym.cxx.
TMatrixTSym< Element > & TMatrixTSym< Element >::Rank1Update | ( | const TVectorT< Element > & | v, |
Element | alpha = 1.0 |
||
) |
Perform a rank 1 operation on the matrix: A += alpha * v * v^T.
Definition at line 1062 of file TMatrixTSym.cxx.
|
virtual |
Set size of the matrix to nrows x ncols New dynamic elements are created, the overlapping part of the old ones are copied to the new structures, then the old elements are deleted.
Implements TMatrixTBase< Element >.
Definition at line 770 of file TMatrixTSym.cxx.
|
virtual |
Set size of the matrix to [row_lwb:row_upb] x [col_lwb:col_upb] New dynamic elements are created, the overlapping part of the old ones are copied to the new structures, then the old elements are deleted.
Implements TMatrixTBase< Element >.
Definition at line 840 of file TMatrixTSym.cxx.
|
inline |
Definition at line 118 of file TMatrixTSym.h.
|
inlinevirtual |
Implements TMatrixTBase< Element >.
Definition at line 90 of file TMatrixTSym.h.
|
virtual |
Copy array data to matrix .
It is assumed that array is of size >= fNelems (=)))) fNrows*fNcols option indicates how the data is stored in the array: option =
Reimplemented from TMatrixTBase< Element >.
Definition at line 742 of file TMatrixTSym.cxx.
|
inlinevirtual |
Implements TMatrixTBase< Element >.
Definition at line 89 of file TMatrixTSym.h.
TMatrixTSym< Element > & TMatrixTSym< Element >::SetSub | ( | Int_t | row_lwb, |
const TMatrixTBase< Element > & | source | ||
) |
Insert matrix source starting at [row_lwb][row_lwb], thereby overwriting the part [row_lwb..row_lwb+nrows_source][row_lwb..row_lwb+nrows_source];.
Definition at line 635 of file TMatrixTSym.cxx.
|
virtual |
Insert matrix source starting at [row_lwb][col_lwb] in a symmetric fashion, thereby overwriting the part [row_lwb..row_lwb+nrows_source][row_lwb..row_lwb+nrows_source];.
Implements TMatrixTBase< Element >.
Definition at line 685 of file TMatrixTSym.cxx.
|
virtual |
Shift the row index by adding row_shift and the column index by adding col_shift, respectively.
So [rowLwb..rowUpb][colLwb..colUpb] becomes [rowLwb+row_shift..rowUpb+row_shift][colLwb+col_shift..colUpb+col_shift]
Reimplemented from TMatrixTBase< Element >.
Definition at line 755 of file TMatrixTSym.cxx.
TMatrixTSym< Element > & TMatrixTSym< Element >::Similarity | ( | const TMatrixT< Element > & | b | ) |
Calculate B * (*this) * B^T , final matrix will be (nrowsb x nrowsb) This is a similarity transform when B is orthogonal .
It is more efficient than applying the actual multiplication because this routine realizes that the final matrix is symmetric .
Definition at line 1098 of file TMatrixTSym.cxx.
TMatrixTSym< Element > & TMatrixTSym< Element >::Similarity | ( | const TMatrixTSym< Element > & | b | ) |
Calculate B * (*this) * B^T , final matrix will be (nrowsb x nrowsb) This is a similarity transform when B is orthogonal .
It is more efficient than applying the actual multiplication because this routine realizes that the final matrix is symmetric .
Definition at line 1189 of file TMatrixTSym.cxx.
Element TMatrixTSym< Element >::Similarity | ( | const TVectorT< Element > & | v | ) | const |
Calculate scalar v * (*this) * v^T.
Definition at line 1291 of file TMatrixTSym.cxx.
TMatrixTSym< Element > & TMatrixTSym< Element >::SimilarityT | ( | const TMatrixT< Element > & | b | ) |
Calculate B^T * (*this) * B , final matrix will be (ncolsb x ncolsb) It is more efficient than applying the actual multiplication because this routine realizes that the final matrix is symmetric .
Definition at line 1326 of file TMatrixTSym.cxx.
|
inline |
Definition at line 127 of file TMatrixTSym.h.
void TMatrixTSym< Element >::TMult | ( | const TMatrixT< Element > & | a | ) |
Create a matrix C such that C = A' * A.
In other words, c[i,j] = SUM{ a[k,i] * a[k,j] }.
Definition at line 380 of file TMatrixTSym.cxx.
void TMatrixTSym< Element >::TMult | ( | const TMatrixTSym< Element > & | a | ) |
Matrix multiplication, with A symmetric Create a matrix C such that C = A' * A = A * A = A * A'.
Definition at line 428 of file TMatrixTSym.cxx.
TMatrixTSym< Element > & TMatrixTSym< Element >::Transpose | ( | const TMatrixTSym< Element > & | source | ) |
Transpose a matrix.
Definition at line 1040 of file TMatrixTSym.cxx.
TMatrixTSym< Element > & TMatrixTSym< Element >::Use | ( | Int_t | row_lwb, |
Int_t | row_upb, | ||
Element * | data | ||
) |
Definition at line 474 of file TMatrixTSym.cxx.
|
inline |
Definition at line 98 of file TMatrixTSym.h.
|
inline |
Definition at line 192 of file TMatrixTSym.h.
|
inline |
Definition at line 193 of file TMatrixTSym.h.
|
inline |
Definition at line 195 of file TMatrixTSym.h.
|
inline |
Definition at line 197 of file TMatrixTSym.h.
|
protected |
Definition at line 38 of file TMatrixTSym.h.
|
protected |
data container
Definition at line 39 of file TMatrixTSym.h.