Template class of a symmetric matrix in the linear algebra package.
See MatrixPage for the documentation of 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 34 of file TMatrixTSym.h.
Public Types | |
enum | { kWorkMax = 100 } |
enum | EMatrixCreatorsOp1 { kZero , kUnit , kTransposed , kInverted , kAtA } |
enum | EMatrixCreatorsOp2 { kPlus , kMinus } |
![]() | |
enum | { kIsOnHeap = 0x01000000 , kNotDeleted = 0x02000000 , kZombie = 0x04000000 , kInconsistent = 0x08000000 , kBitMask = 0x00ffffff } |
enum | { kSingleKey = BIT(0) , kOverwrite = BIT(1) , kWriteDelete = BIT(2) } |
enum | EDeprecatedStatusBits { kObjInCanvas = BIT(3) } |
enum | EStatusBits { kCanDelete = BIT(0) , kMustCleanup = BIT(3) , kIsReferenced = BIT(4) , kHasUUID = BIT(5) , kCannotPick = BIT(6) , kNoContextMenu = BIT(8) , kInvalidObject = BIT(13) } |
Public Member Functions | |
TMatrixTSym () | |
TMatrixTSym (const TMatrixTSym< Element > &a, EMatrixCreatorsOp2 op, const TMatrixTSym< Element > &b) | |
TMatrixTSym (const TMatrixTSym< Element > &another) | |
template<class Element2 > | |
TMatrixTSym (const TMatrixTSym< Element2 > &another) | |
TMatrixTSym (const TMatrixTSymLazy< Element > &lazy_constructor) | |
TMatrixTSym (EMatrixCreatorsOp1 op, const TMatrixT< Element > &prototype) | |
TMatrixTSym (EMatrixCreatorsOp1 op, const TMatrixTSym< Element > &prototype) | |
Create a matrix applying a specific operation to the prototype. | |
TMatrixTSym (Int_t nrows) | |
TMatrixTSym (Int_t nrows, const Element *data, Option_t *option="") | |
option= | |
TMatrixTSym (Int_t row_lwb, Int_t row_upb) | |
TMatrixTSym (Int_t row_lwb, Int_t row_upb, const Element *data, Option_t *option="") | |
array elements are copied | |
virtual | ~TMatrixTSym () |
TMatrixTBase< Element > & | Apply (const TElementActionT< Element > &action) |
Apply action to each matrix element. | |
TMatrixTBase< Element > & | Apply (const TElementPosActionT< Element > &action) |
Apply action to each element of the matrix. | |
TClass * | Class () |
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. | |
virtual Int_t * | GetColIndexArray () |
virtual const Int_t * | GetColIndexArray () const |
virtual Element * | GetMatrixArray () |
virtual const Element * | GetMatrixArray () const |
virtual Int_t * | GetRowIndexArray () |
virtual const Int_t * | GetRowIndexArray () const |
TMatrixTSym< Element > | GetSub (Int_t row_lwb, Int_t row_upb, Int_t col_lwb, Int_t col_upb, Option_t *option="S") const |
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: | |
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: | |
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 . | |
TMatrixTSym< Element > & | InvertFast (Double_t *det=0) |
Invert the matrix and calculate its determinant. | |
virtual Bool_t | IsSymmetric () const |
Check whether matrix is symmetric. | |
void | Minus (const TMatrixTSym< Element > &a, const TMatrixTSym< Element > &b) |
Symmetric matrix summation. Create a matrix C such that C = A + B. | |
void | Mult (const TMatrixTSym< Element > &a) |
Element & | operator() (Int_t rown, Int_t coln) |
Element | operator() (Int_t rown, Int_t coln) const |
TMatrixTSym< Element > & | operator*= (Element val) |
Multiply every element of the matrix with val. | |
TMatrixTSym & | operator+= (const TMatrixTSym &source) |
Add the source matrix. | |
TMatrixTSym< Element > & | operator+= (Element val) |
Add val to every element of the matrix. | |
TMatrixTSym & | operator-= (const TMatrixTSym &source) |
Subtract the source matrix. | |
TMatrixTSym< Element > & | operator-= (Element val) |
Subtract val from every element of the matrix. | |
TMatrixTSym< Element > & | operator= (const TMatrixTSym< Element > &source) |
template<class Element2 > | |
TMatrixTSym< Element > & | operator= (const TMatrixTSym< Element2 > &source) |
TMatrixTSym< Element > & | operator= (const TMatrixTSymLazy< Element > &source) |
TMatrixTSym< Element > & | operator= (Element val) |
Assign val to every element of the matrix. | |
TMatrixTRow< Element > | operator[] (Int_t rown) |
const TMatrixTRow_const< Element > | operator[] (Int_t rown) const |
void | Plus (const TMatrixTSym< Element > &a, const TMatrixTSym< Element > &b) |
Symmetric matrix summation. Create a matrix C such that C = A + B. | |
virtual TMatrixTBase< Element > & | Randomize (Element alpha, Element beta, Double_t &seed) |
randomize matrix element values but keep matrix symmetric | |
virtual TMatrixTSym< Element > & | RandomizePD (Element alpha, Element beta, Double_t &seed) |
randomize matrix element values but keep matrix symmetric positive definite | |
TMatrixTSym< Element > & | Rank1Update (const TVectorT< Element > &v, Element alpha=1.0) |
Perform a rank 1 operation on the matrix: A += alpha * v * v^T. | |
TMatrixTBase< Element > & | ResizeTo (const TMatrixTSym< Element > &m) |
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. | |
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. | |
virtual TMatrixTBase< Element > & | SetColIndexArray (Int_t *) |
virtual TMatrixTBase< Element > & | SetMatrixArray (const Element *data, Option_t *option="") |
Copy array data to matrix . | |
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];. | |
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];. | |
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. | |
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 . | |
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 . | |
Element | Similarity (const TVectorT< Element > &v) const |
Calculate scalar v * (*this) * v^T. | |
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 . | |
TMatrixTSym< Element > & | T () |
void | TMult (const TMatrixT< Element > &a) |
Create a matrix C such that C = A' * A. | |
void | TMult (const TMatrixTSym< Element > &a) |
Matrix multiplication, with A symmetric Create a matrix C such that C = A' * A = A * A = A * A'. | |
TMatrixTSym< Element > & | Transpose (const TMatrixTSym< Element > &source) |
Transpose a matrix. | |
const TMatrixTSym< Element > & | Use (const TMatrixTSym< Element > &a) const |
const TMatrixTSym< Element > & | Use (Int_t nrows, const Element *data) const |
TMatrixTSym< Element > & | Use (Int_t nrows, Element *data) |
const TMatrixTSym< Element > & | Use (Int_t row_lwb, Int_t row_upb, const Element *data) const |
TMatrixTSym< Element > & | Use (Int_t row_lwb, Int_t row_upb, Element *data) |
TMatrixTSym< Element > & | Use (TMatrixTSym< Element > &a) |
![]() | |
TMatrixTBase () | |
virtual | ~TMatrixTBase () |
virtual TMatrixTBase< Element > & | Abs () |
Take an absolute value of a matrix, i.e. apply Abs() to each element. | |
TClass * | Class () |
virtual Element | ColNorm () const |
Column matrix norm, MAX{ SUM{ |M(i,j)|, over i}, over j}. | |
void | Draw (Option_t *option="") |
Draw this matrix The histogram is named "TMatrixT" by default and no title. | |
virtual Element | E2Norm () const |
Square of the Euclidian norm, SUM{ m(i,j)^2 }. | |
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. | |
Int_t | GetColLwb () const |
Int_t | GetColUpb () const |
virtual void | GetMatrix2Array (Element *data, Option_t *option="") const |
Copy matrix data to array . | |
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. | |
void | Invalidate () |
Bool_t | IsOwner () const |
Bool_t | IsValid () const |
void | MakeValid () |
virtual Element | Max () const |
return maximum vector element value | |
virtual Element | Min () const |
return minimum matrix element value | |
virtual Int_t | NonZeros () const |
Compute the number of elements != 0.0. | |
Element | Norm1 () const |
virtual TMatrixTBase< Element > & | NormByDiag (const TVectorT< Element > &v, Option_t *option="D") |
option: | |
Element | NormInf () const |
Bool_t | operator!= (Element val) const |
Are all matrix elements not equal to val? | |
Bool_t | operator< (Element val) const |
Are all matrix elements < val? | |
Bool_t | operator<= (Element val) const |
Are all matrix elements <= val? | |
Bool_t | operator== (Element val) const |
Are all matrix elements equal to val? | |
Bool_t | operator> (Element val) const |
Are all matrix elements > val? | |
Bool_t | operator>= (Element val) const |
Are all matrix elements >= val? | |
void | Print (Option_t *name="") const |
Print the matrix as a table of elements. | |
virtual Element | RowNorm () const |
Row matrix norm, MAX{ SUM{ |M(i,j)|, over j}, over i}. | |
Element | SetTol (Element tol) |
virtual TMatrixTBase< Element > & | Sqr () |
Square each element of the matrix. | |
virtual TMatrixTBase< Element > & | Sqrt () |
Take square root of all elements. | |
virtual Element | Sum () const |
Compute sum of elements. | |
virtual TMatrixTBase< Element > & | UnitMatrix () |
Make a unit matrix (matrix need not be a square one). | |
virtual TMatrixTBase< Element > & | Zero () |
Set matrix elements to zero. | |
![]() | |
TObject () | |
TObject constructor. | |
TObject (const TObject &object) | |
TObject copy ctor. | |
virtual | ~TObject () |
TObject destructor. | |
void | AbstractMethod (const char *method) const |
Use this method to implement an "abstract" method that you don't want to leave purely abstract. | |
virtual void | AppendPad (Option_t *option="") |
Append graphics object to current pad. | |
virtual void | Browse (TBrowser *b) |
Browse object. May be overridden for another default action. | |
ULong_t | CheckedHash () |
Check and record whether this class has a consistent Hash/RecursiveRemove setup (*) and then return the regular Hash value for this object. | |
virtual const char * | ClassName () const |
Returns name of class to which the object belongs. | |
virtual TObject * | Clone (const char *newname="") const |
Make a clone of an object using the Streamer facility. | |
virtual Int_t | Compare (const TObject *obj) const |
Compare abstract method. | |
virtual void | Copy (TObject &object) const |
Copy this to obj. | |
virtual void | Delete (Option_t *option="") |
Delete this object. | |
virtual Int_t | DistancetoPrimitive (Int_t px, Int_t py) |
Computes distance from point (px,py) to the object. | |
virtual void | DrawClass () const |
Draw class inheritance tree of the class to which this object belongs. | |
virtual TObject * | DrawClone (Option_t *option="") const |
Draw a clone of this object in the current selected pad for instance with: gROOT->SetSelectedPad(gPad) . | |
virtual void | Dump () const |
Dump contents of object on stdout. | |
virtual void | Error (const char *method, const char *msgfmt,...) const |
Issue error message. | |
virtual void | Execute (const char *method, const char *params, Int_t *error=0) |
Execute method on this object with the given parameter string, e.g. | |
virtual void | Execute (TMethod *method, TObjArray *params, Int_t *error=0) |
Execute method on this object with parameters stored in the TObjArray. | |
virtual void | ExecuteEvent (Int_t event, Int_t px, Int_t py) |
Execute action corresponding to an event at (px,py). | |
virtual void | Fatal (const char *method, const char *msgfmt,...) const |
Issue fatal error message. | |
virtual TObject * | FindObject (const char *name) const |
Must be redefined in derived classes. | |
virtual TObject * | FindObject (const TObject *obj) const |
Must be redefined in derived classes. | |
virtual Option_t * | GetDrawOption () const |
Get option used by the graphics system to draw this object. | |
virtual const char * | GetIconName () const |
Returns mime type name of object. | |
virtual const char * | GetName () const |
Returns name of object. | |
virtual char * | GetObjectInfo (Int_t px, Int_t py) const |
Returns string containing info about the object at position (px,py). | |
virtual Option_t * | GetOption () const |
virtual const char * | GetTitle () const |
Returns title of object. | |
virtual UInt_t | GetUniqueID () const |
Return the unique object id. | |
virtual Bool_t | HandleTimer (TTimer *timer) |
Execute action in response of a timer timing out. | |
virtual ULong_t | Hash () const |
Return hash value for this object. | |
Bool_t | HasInconsistentHash () const |
Return true is the type of this object is known to have an inconsistent setup for Hash and RecursiveRemove (i.e. | |
virtual void | Info (const char *method, const char *msgfmt,...) const |
Issue info message. | |
virtual Bool_t | InheritsFrom (const char *classname) const |
Returns kTRUE if object inherits from class "classname". | |
virtual Bool_t | InheritsFrom (const TClass *cl) const |
Returns kTRUE if object inherits from TClass cl. | |
virtual void | Inspect () const |
Dump contents of this object in a graphics canvas. | |
void | InvertBit (UInt_t f) |
Bool_t | IsDestructed () const |
IsDestructed. | |
virtual Bool_t | IsEqual (const TObject *obj) const |
Default equal comparison (objects are equal if they have the same address in memory). | |
virtual Bool_t | IsFolder () const |
Returns kTRUE in case object contains browsable objects (like containers or lists of other objects). | |
R__ALWAYS_INLINE Bool_t | IsOnHeap () const |
virtual Bool_t | IsSortable () const |
R__ALWAYS_INLINE Bool_t | IsZombie () const |
virtual void | ls (Option_t *option="") const |
The ls function lists the contents of a class on stdout. | |
void | MayNotUse (const char *method) const |
Use this method to signal that a method (defined in a base class) may not be called in a derived class (in principle against good design since a child class should not provide less functionality than its parent, however, sometimes it is necessary). | |
virtual Bool_t | Notify () |
This method must be overridden to handle object notification. | |
void | Obsolete (const char *method, const char *asOfVers, const char *removedFromVers) const |
Use this method to declare a method obsolete. | |
void | operator delete (void *ptr) |
Operator delete. | |
void | operator delete[] (void *ptr) |
Operator delete []. | |
void * | operator new (size_t sz) |
void * | operator new (size_t sz, void *vp) |
void * | operator new[] (size_t sz) |
void * | operator new[] (size_t sz, void *vp) |
TObject & | operator= (const TObject &rhs) |
TObject assignment operator. | |
virtual void | Paint (Option_t *option="") |
This method must be overridden if a class wants to paint itself. | |
virtual void | Pop () |
Pop on object drawn in a pad to the top of the display list. | |
virtual Int_t | Read (const char *name) |
Read contents of object with specified name from the current directory. | |
virtual void | RecursiveRemove (TObject *obj) |
Recursively remove this object from a list. | |
void | ResetBit (UInt_t f) |
virtual void | SaveAs (const char *filename="", Option_t *option="") const |
Save this object in the file specified by filename. | |
virtual void | SavePrimitive (std::ostream &out, Option_t *option="") |
Save a primitive as a C++ statement(s) on output stream "out". | |
void | SetBit (UInt_t f) |
void | SetBit (UInt_t f, Bool_t set) |
Set or unset the user status bits as specified in f. | |
virtual void | SetDrawOption (Option_t *option="") |
Set drawing option for object. | |
virtual void | SetUniqueID (UInt_t uid) |
Set the unique object id. | |
virtual void | SysError (const char *method, const char *msgfmt,...) const |
Issue system error message. | |
R__ALWAYS_INLINE Bool_t | TestBit (UInt_t f) const |
Int_t | TestBits (UInt_t f) const |
virtual void | UseCurrentStyle () |
Set current style settings in this object This function is called when either TCanvas::UseCurrentStyle or TROOT::ForceStyle have been invoked. | |
virtual void | Warning (const char *method, const char *msgfmt,...) const |
Issue warning message. | |
virtual Int_t | Write (const char *name=0, Int_t option=0, Int_t bufsize=0) |
Write this object to the current directory. | |
virtual Int_t | Write (const char *name=0, Int_t option=0, Int_t bufsize=0) const |
Write this object to the current directory. | |
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. | |
void | Delete_m (Int_t size, Element *&) |
delete data pointer m, if it was assigned on the heap | |
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 . | |
Element * | New_m (Int_t size) |
return data pointer . | |
![]() | |
virtual void | DoError (int level, const char *location, const char *fmt, va_list va) const |
Interface to ErrorHandler (protected). | |
void | MakeZombie () |
Protected Attributes | |
Element | fDataStack [TMatrixTBase< Element >::kSizeMax] |
Element * | fElements |
data container | |
![]() | |
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 Element & | NaNValue () |
![]() | |
static Longptr_t | GetDtorOnly () |
Return destructor only flag. | |
static Bool_t | GetObjectStat () |
Get status of object stat flag. | |
static void | SetDtorOnly (void *obj) |
Set destructor only flag. | |
static void | SetObjectStat (Bool_t stat) |
Turn on/off tracking of objects in the TObjectTable. | |
![]() | |
enum | { kSizeMax = 25 } |
enum | { kWorkMax = 100 } |
enum | EMatrixStatusBits { kStatus = BIT(14) } |
![]() | |
enum | { kOnlyPrepStep = BIT(3) } |
![]() | |
static void | DoubleLexSort (Int_t n, Int_t *first, Int_t *second, Element *data) |
default kTRUE, when Use array kFALSE | |
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. | |
#include <TMatrixTSym.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 41 of file TMatrixTSym.cxx.
TMatrixTSym< Element >::TMatrixTSym | ( | Int_t | row_lwb, |
Int_t | row_upb | ||
) |
Definition at line 49 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 65 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 78 of file TMatrixTSym.cxx.
TMatrixTSym< Element >::TMatrixTSym | ( | const TMatrixTSym< Element > & | another | ) |
Definition at line 91 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 104 of file TMatrixTSym.cxx.
TMatrixTSym< Element >::TMatrixTSym | ( | EMatrixCreatorsOp1 | op, |
const TMatrixT< Element > & | prototype | ||
) |
Definition at line 153 of file TMatrixTSym.cxx.
TMatrixTSym< Element >::TMatrixTSym | ( | const TMatrixTSym< Element > & | a, |
EMatrixCreatorsOp2 | op, | ||
const TMatrixTSym< Element > & | b | ||
) |
Definition at line 172 of file TMatrixTSym.cxx.
TMatrixTSym< Element >::TMatrixTSym | ( | const TMatrixTSymLazy< Element > & | lazy_constructor | ) |
Definition at line 200 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 274 of file TMatrixTSym.cxx.
|
virtual |
Apply action to each matrix element.
Reimplemented from TMatrixTBase< Element >.
Definition at line 1553 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 1580 of file TMatrixTSym.cxx.
TClass * TMatrixTSym< double >::Class | ( | ) |
|
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 215 of file TMatrixTSym.cxx.
|
virtual |
Reimplemented from TMatrixTBase< Element >.
Definition at line 935 of file TMatrixTSym.cxx.
|
virtual |
Reimplemented from TMatrixTBase< Element >.
Definition at line 947 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 1681 of file TMatrixTSym.cxx.
|
inlinevirtual |
Implements TMatrixTBase< Element >.
Definition at line 87 of file TMatrixTSym.h.
|
inlinevirtual |
Implements TMatrixTBase< Element >.
Definition at line 86 of file TMatrixTSym.h.
|
inlinevirtual |
Implements TMatrixTBase< Element >.
Definition at line 190 of file TMatrixTSym.h.
|
inlinevirtual |
Implements TMatrixTBase< Element >.
Definition at line 189 of file TMatrixTSym.h.
|
inlinevirtual |
Implements TMatrixTBase< Element >.
Definition at line 85 of file TMatrixTSym.h.
|
inlinevirtual |
Implements TMatrixTBase< Element >.
Definition at line 84 of file TMatrixTSym.h.
|
inline |
Definition at line 200 of file TMatrixTSym.h.
|
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 569 of file TMatrixTSym.cxx.
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 503 of file TMatrixTSym.cxx.
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 961 of file TMatrixTSym.cxx.
TMatrixTSym< Element > & TMatrixTSym< Element >::InvertFast | ( | Double_t * | det = 0 | ) |
Invert the matrix and calculate its determinant.
Definition at line 979 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 247 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 346 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 229 of file TMatrixTSym.cxx.
|
inlinevirtual |
Implements TMatrixTBase< Element >.
Definition at line 224 of file TMatrixTSym.h.
|
inlinevirtual |
Implements TMatrixTBase< Element >.
Definition at line 208 of file TMatrixTSym.h.
TMatrixTSym< Element > & TMatrixTSym< Element >::operator*= | ( | Element | val | ) |
Multiply every element of the matrix with val.
Definition at line 1498 of file TMatrixTSym.cxx.
TMatrixTSym< Element > & TMatrixTSym< Element >::operator+= | ( | const TMatrixTSym< Element > & | source | ) |
Add the source matrix.
Definition at line 1514 of file TMatrixTSym.cxx.
TMatrixTSym< Element > & TMatrixTSym< Element >::operator+= | ( | Element | val | ) |
Add val to every element of the matrix.
Definition at line 1466 of file TMatrixTSym.cxx.
TMatrixTSym< Element > & TMatrixTSym< Element >::operator-= | ( | const TMatrixTSym< Element > & | source | ) |
Subtract the source matrix.
Definition at line 1534 of file TMatrixTSym.cxx.
TMatrixTSym< Element > & TMatrixTSym< Element >::operator-= | ( | Element | val | ) |
Subtract val from every element of the matrix.
Definition at line 1482 of file TMatrixTSym.cxx.
TMatrixTSym< Element > & TMatrixTSym< Element >::operator= | ( | const TMatrixTSym< Element > & | source | ) |
Definition at line 1414 of file TMatrixTSym.cxx.
|
inline |
Definition at line 144 of file TMatrixTSym.h.
TMatrixTSym< Element > & TMatrixTSym< Element >::operator= | ( | const TMatrixTSymLazy< Element > & | source | ) |
Definition at line 1431 of file TMatrixTSym.cxx.
TMatrixTSym< Element > & TMatrixTSym< Element >::operator= | ( | Element | val | ) |
Assign val to every element of the matrix.
Definition at line 1450 of file TMatrixTSym.cxx.
|
inline |
Definition at line 140 of file TMatrixTSym.h.
|
inline |
Definition at line 139 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 312 of file TMatrixTSym.cxx.
|
virtual |
randomize matrix element values but keep matrix symmetric
Reimplemented from TMatrixTBase< Element >.
Definition at line 1608 of file TMatrixTSym.cxx.
|
virtual |
randomize matrix element values but keep matrix symmetric positive definite
Definition at line 1639 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 1063 of file TMatrixTSym.cxx.
|
inline |
Definition at line 118 of file TMatrixTSym.h.
|
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 771 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 841 of file TMatrixTSym.cxx.
|
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 743 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 636 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 686 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 756 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 1099 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 1190 of file TMatrixTSym.cxx.
Element TMatrixTSym< Element >::Similarity | ( | const TVectorT< Element > & | v | ) | const |
Calculate scalar v * (*this) * v^T.
Definition at line 1292 of file TMatrixTSym.cxx.
TMatrixTSym< Element > & 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 .
Definition at line 1327 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 381 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 429 of file TMatrixTSym.cxx.
TMatrixTSym< Element > & TMatrixTSym< Element >::Transpose | ( | const TMatrixTSym< Element > & | source | ) |
Transpose a matrix.
Definition at line 1041 of file TMatrixTSym.cxx.
|
inline |
Definition at line 197 of file TMatrixTSym.h.
|
inline |
Definition at line 193 of file TMatrixTSym.h.
|
inline |
Definition at line 192 of file TMatrixTSym.h.
|
inline |
Definition at line 98 of file TMatrixTSym.h.
TMatrixTSym< Element > & TMatrixTSym< Element >::Use | ( | Int_t | row_lwb, |
Int_t | row_upb, | ||
Element * | data | ||
) |
Definition at line 475 of file TMatrixTSym.cxx.
|
inline |
Definition at line 195 of file TMatrixTSym.h.
|
protected |
Definition at line 38 of file TMatrixTSym.h.
|
protected |
data container
Definition at line 39 of file TMatrixTSym.h.