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 34 of file TMatrixTSym.h.
Public Types | |
enum | { kWorkMax = 100 } |
enum | EMatrixCreatorsOp1 { kZero , kUnit , kTransposed , kInverted , kAtA } |
enum | EMatrixCreatorsOp2 { kPlus , kMinus } |
Public Types inherited from TObject | |
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. More... | |
TMatrixTSym (Int_t nrows) | |
TMatrixTSym (Int_t nrows, const Element *data, Option_t *option="") | |
option= More... | |
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 More... | |
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... | |
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. More... | |
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: More... | |
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... | |
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) |
Element | operator() (Int_t rown, Int_t coln) const |
TMatrixTSym< Element > & | operator*= (Element val) |
Multiply every element of the matrix with val. More... | |
TMatrixTSym & | operator+= (const TMatrixTSym &source) |
Add the source matrix. More... | |
TMatrixTSym< Element > & | operator+= (Element val) |
Add val to every element of the matrix. More... | |
TMatrixTSym & | operator-= (const TMatrixTSym &source) |
Subtract the source matrix. More... | |
TMatrixTSym< Element > & | operator-= (Element val) |
Subtract val from every element of the matrix. More... | |
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. More... | |
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. 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... | |
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. 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... | |
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... | |
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) |
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 TMatrixTBase< Element > & | Apply (const TElementActionT< Element > &action) |
Apply action to each matrix element. More... | |
virtual TMatrixTBase< Element > & | Apply (const TElementPosActionT< Element > &action) |
Apply action to each element of the matrix. More... | |
TClass * | Class () |
virtual void | Clear (Option_t *option="")=0 |
virtual Element | ColNorm () const |
Column matrix norm, MAX{ SUM{ |M(i,j)|, over i}, over j}. More... | |
virtual Double_t | Determinant () const |
virtual void | Determinant (Double_t &d1, Double_t &d2) const |
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... | |
virtual const Int_t * | GetColIndexArray () const =0 |
virtual Int_t * | GetColIndexArray ()=0 |
Int_t | GetColLwb () const |
Int_t | GetColUpb () const |
virtual void | GetMatrix2Array (Element *data, Option_t *option="") const |
Copy matrix data to array . More... | |
virtual const Element * | GetMatrixArray () const =0 |
virtual Element * | GetMatrixArray ()=0 |
Int_t | GetNcols () const |
Int_t | GetNoElements () const |
Int_t | GetNrows () const |
virtual const Int_t * | GetRowIndexArray () const =0 |
virtual Int_t * | GetRowIndexArray ()=0 |
Int_t | GetRowLwb () const |
Int_t | GetRowUpb () 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 =0 |
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 |
virtual Bool_t | IsSymmetric () const |
Check whether matrix is symmetric. More... | |
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... | |
virtual Element | operator() (Int_t rown, Int_t coln) const =0 |
virtual Element & | operator() (Int_t rown, Int_t coln)=0 |
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 TMatrixTBase< Element > & | Randomize (Element alpha, Element beta, Double_t &seed) |
Randomize matrix element values. More... | |
virtual TMatrixTBase< Element > & | ResizeTo (Int_t nrows, Int_t ncols, Int_t nr_nonzeros=-1)=0 |
virtual TMatrixTBase< Element > & | ResizeTo (Int_t row_lwb, Int_t row_upb, Int_t col_lwb, Int_t col_upb, Int_t nr_nonzeros=-1)=0 |
virtual Element | RowNorm () const |
Row matrix norm, MAX{ SUM{ |M(i,j)|, over j}, over i}. More... | |
virtual TMatrixTBase< Element > & | SetColIndexArray (Int_t *data)=0 |
virtual TMatrixTBase< Element > & | SetMatrixArray (const Element *data, Option_t *option="") |
Copy array data to matrix . More... | |
virtual TMatrixTBase< Element > & | SetRowIndexArray (Int_t *data)=0 |
virtual TMatrixTBase< Element > & | SetSub (Int_t row_lwb, Int_t col_lwb, const TMatrixTBase< Element > &source)=0 |
Element | SetTol (Element tol) |
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... | |
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... | |
Public Member Functions inherited from TObject | |
TObject () | |
TObject constructor. More... | |
TObject (const TObject &object) | |
TObject copy ctor. More... | |
virtual | ~TObject () |
TObject destructor. More... | |
void | AbstractMethod (const char *method) const |
Use this method to implement an "abstract" method that you don't want to leave purely abstract. More... | |
virtual void | AppendPad (Option_t *option="") |
Append graphics object to current pad. More... | |
virtual void | Browse (TBrowser *b) |
Browse object. May be overridden for another default action. More... | |
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. More... | |
virtual const char * | ClassName () const |
Returns name of class to which the object belongs. More... | |
virtual void | Clear (Option_t *="") |
virtual TObject * | Clone (const char *newname="") const |
Make a clone of an object using the Streamer facility. More... | |
virtual Int_t | Compare (const TObject *obj) const |
Compare abstract method. More... | |
virtual void | Copy (TObject &object) const |
Copy this to obj. More... | |
virtual void | Delete (Option_t *option="") |
Delete this object. More... | |
virtual Int_t | DistancetoPrimitive (Int_t px, Int_t py) |
Computes distance from point (px,py) to the object. More... | |
virtual void | Draw (Option_t *option="") |
Default Draw method for all objects. More... | |
virtual void | DrawClass () const |
Draw class inheritance tree of the class to which this object belongs. More... | |
virtual TObject * | DrawClone (Option_t *option="") const |
Draw a clone of this object in the current selected pad for instance with: gROOT->SetSelectedPad(gPad) . More... | |
virtual void | Dump () const |
Dump contents of object on stdout. More... | |
virtual void | Error (const char *method, const char *msgfmt,...) const |
Issue error message. More... | |
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. More... | |
virtual void | Execute (TMethod *method, TObjArray *params, Int_t *error=0) |
Execute method on this object with parameters stored in the TObjArray. More... | |
virtual void | ExecuteEvent (Int_t event, Int_t px, Int_t py) |
Execute action corresponding to an event at (px,py). More... | |
virtual void | Fatal (const char *method, const char *msgfmt,...) const |
Issue fatal error message. More... | |
virtual TObject * | FindObject (const char *name) const |
Must be redefined in derived classes. More... | |
virtual TObject * | FindObject (const TObject *obj) const |
Must be redefined in derived classes. More... | |
virtual Option_t * | GetDrawOption () const |
Get option used by the graphics system to draw this object. More... | |
virtual const char * | GetIconName () const |
Returns mime type name of object. More... | |
virtual const char * | GetName () const |
Returns name of object. More... | |
virtual char * | GetObjectInfo (Int_t px, Int_t py) const |
Returns string containing info about the object at position (px,py). More... | |
virtual Option_t * | GetOption () const |
virtual const char * | GetTitle () const |
Returns title of object. More... | |
virtual UInt_t | GetUniqueID () const |
Return the unique object id. More... | |
virtual Bool_t | HandleTimer (TTimer *timer) |
Execute action in response of a timer timing out. More... | |
virtual ULong_t | Hash () const |
Return hash value for this object. More... | |
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. More... | |
virtual void | Info (const char *method, const char *msgfmt,...) const |
Issue info message. More... | |
virtual Bool_t | InheritsFrom (const char *classname) const |
Returns kTRUE if object inherits from class "classname". More... | |
virtual Bool_t | InheritsFrom (const TClass *cl) const |
Returns kTRUE if object inherits from TClass cl. More... | |
virtual void | Inspect () const |
Dump contents of this object in a graphics canvas. More... | |
void | InvertBit (UInt_t f) |
virtual Bool_t | IsEqual (const TObject *obj) const |
Default equal comparison (objects are equal if they have the same address in memory). More... | |
virtual Bool_t | IsFolder () const |
Returns kTRUE in case object contains browsable objects (like containers or lists of other objects). More... | |
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. More... | |
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). More... | |
virtual Bool_t | Notify () |
This method must be overridden to handle object notification. More... | |
void | Obsolete (const char *method, const char *asOfVers, const char *removedFromVers) const |
Use this method to declare a method obsolete. More... | |
void | operator delete (void *ptr) |
Operator delete. More... | |
void | operator delete[] (void *ptr) |
Operator delete []. More... | |
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. More... | |
virtual void | Paint (Option_t *option="") |
This method must be overridden if a class wants to paint itself. More... | |
virtual void | Pop () |
Pop on object drawn in a pad to the top of the display list. More... | |
virtual void | Print (Option_t *option="") const |
This method must be overridden when a class wants to print itself. More... | |
virtual Int_t | Read (const char *name) |
Read contents of object with specified name from the current directory. More... | |
virtual void | RecursiveRemove (TObject *obj) |
Recursively remove this object from a list. More... | |
void | ResetBit (UInt_t f) |
virtual void | SaveAs (const char *filename="", Option_t *option="") const |
Save this object in the file specified by filename. More... | |
virtual void | SavePrimitive (std::ostream &out, Option_t *option="") |
Save a primitive as a C++ statement(s) on output stream "out". More... | |
void | SetBit (UInt_t f) |
void | SetBit (UInt_t f, Bool_t set) |
Set or unset the user status bits as specified in f. More... | |
virtual void | SetDrawOption (Option_t *option="") |
Set drawing option for object. More... | |
virtual void | SetUniqueID (UInt_t uid) |
Set the unique object id. More... | |
virtual void | SysError (const char *method, const char *msgfmt,...) const |
Issue system error message. More... | |
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. More... | |
virtual void | Warning (const char *method, const char *msgfmt,...) const |
Issue warning message. More... | |
virtual Int_t | Write (const char *name=0, Int_t option=0, Int_t bufsize=0) |
Write this object to the current directory. More... | |
virtual Int_t | Write (const char *name=0, Int_t option=0, Int_t bufsize=0) const |
Write this object to the current directory. 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 Member Functions inherited from TObject | |
virtual void | DoError (int level, const char *location, const char *fmt, va_list va) const |
Interface to ErrorHandler (protected). More... | |
void | MakeZombie () |
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 () |
Static Public Member Functions inherited from TObject | |
static Long_t | GetDtorOnly () |
Return destructor only flag. More... | |
static Bool_t | GetObjectStat () |
Get status of object stat flag. More... | |
static void | SetDtorOnly (void *obj) |
Set destructor only flag. More... | |
static void | SetObjectStat (Bool_t stat) |
Turn on/off tracking of objects in the TObjectTable. More... | |
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 <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 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.
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 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 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 568 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 502 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 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 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 1497 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 | ) |
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 | ) |
Subtract the source matrix.
Definition at line 1533 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 | ) |
Definition at line 1413 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 1430 of file TMatrixTSym.cxx.
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 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 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.
|
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 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.
|
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 > & | 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 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.
|
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 474 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.