ROOT   Reference Guide
Searching...
No Matches

Single Value Decomposition class.

For an (m x n) matrix A with m >= n, the singular value decomposition is an (m x m) orthogonal matrix fU, an (m x n) diagonal matrix fS, and an (n x n) orthogonal matrix fV so that A = U*S*V'.

If the row/column index of A starts at (rowLwb,colLwb) then the decomposed matrices/vectors start at :

fU : (rowLwb,colLwb)
fV : (colLwb,colLwb)
fSig : (colLwb)
TVectorD fSig
Definition TDecompSVD.h:30
TMatrixD fV
Definition TDecompSVD.h:29
TMatrixD fU
Definition TDecompSVD.h:28

The diagonal matrix fS is stored in the singular values vector fSig . The singular values, fSig[k] = S[k][k], are ordered so that fSig[0] >= fSig[1] >= ... >= fSig[n-1].

The singular value decomposition always exists, so the decomposition will (as long as m >=n) never fail. If m < n, the user should add sufficient zero rows to A , so that m == n

Here fTol is used to set the threshold on the minimum allowed value of the singular values: min_singular = fTol*max(fSig[i])

Definition at line 23 of file TDecompSVD.h.

## Public Types

enum  { kWorkMax = 100 }

Public Types inherited from TObject
enum  {
kIsOnHeap = 0x01000000 , kNotDeleted = 0x02000000 , kZombie = 0x04000000 , kInconsistent = 0x08000000 ,
}

enum  { kSingleKey = (1ULL << ( 0 )) , kOverwrite = (1ULL << ( 1 )) , kWriteDelete = (1ULL << ( 2 )) }

enum  EDeprecatedStatusBits { kObjInCanvas = (1ULL << ( 3 )) }

enum  EStatusBits {
kCanDelete = (1ULL << ( 0 )) , kMustCleanup = (1ULL << ( 3 )) , kIsReferenced = (1ULL << ( 4 )) , kHasUUID = (1ULL << ( 5 )) ,
kCannotPick = (1ULL << ( 6 )) , kNoContextMenu = (1ULL << ( 8 )) , kInvalidObject = (1ULL << ( 13 ))
}

## Public Member Functions

TDecompSVD ()

TDecompSVD (const TDecompSVD &another)
Copy constructor.

TDecompSVD (const TMatrixD &m, Double_t tol=0.0)
Constructor for general matrix A .

TDecompSVD (Int_t nrows, Int_t ncols)
Constructor for (nrows x ncols) matrix.

TDecompSVD (Int_t row_lwb, Int_t row_upb, Int_t col_lwb, Int_t col_upb)
Constructor for ([row_lwb..row_upb] x [col_lwb..col_upb]) matrix.

~TDecompSVD () override

Double_t Condition () override
Matrix condition number.

Bool_t Decompose () override
SVD decomposition of matrix If the decomposition succeeds, bit kDecomposed is set , otherwise kSingular.

void Det (Double_t &d1, Double_t &d2) override
Matrix determinant det = d1*TMath::Power(2.,d2)

const TMatrixD GetMatrix ()
Reconstruct the original matrix using the decomposition parts.

Int_t GetNcols () const override

Int_t GetNrows () const override

const TVectorDGetSig ()

const TMatrixDGetU ()

const TMatrixDGetV ()

TMatrixD Invert ()

TMatrixD Invert (Bool_t &status)
For a matrix A(m,n), its inverse A_inv is defined as A * A_inv = A_inv * A = unit (n x m) Ainv is returned .

Bool_t Invert (TMatrixD &inv)
For a matrix A(m,n), its inverse A_inv is defined as A * A_inv = A_inv * A = unit The user should always supply a matrix of size (m x m) ! If m > n , only the (n x m) part of the returned (pseudo inverse) matrix should be used .

TClassIsA () const override

TDecompSVDoperator= (const TDecompSVD &source)
Assignment operator.

void Print (Option_t *opt="") const override
Print class members.

virtual void SetMatrix (const TMatrixD &a)
Set matrix to be decomposed.

TVectorD Solve (const TVectorD &b, Bool_t &ok) override

Bool_t Solve (TMatrixDColumn &b) override
Solve Ax=b assuming the SVD form of A is stored .

Bool_t Solve (TVectorD &b) override
Solve Ax=b assuming the SVD form of A is stored .

void Streamer (TBuffer &) override
Stream an object of class TObject.

void StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b)

TVectorD TransSolve (const TVectorD &b, Bool_t &ok) override

Bool_t TransSolve (TMatrixDColumn &b) override
Solve A^T x=b assuming the SVD form of A is stored . Solution returned in b.

Bool_t TransSolve (TVectorD &b) override
Solve A^T x=b assuming the SVD form of A is stored . Solution returned in b.

Public Member Functions inherited from TDecompBase
TDecompBase ()
Default constructor.

TDecompBase (const TDecompBase &another)
Copy constructor.

~TDecompBase () override

Int_t GetColLwb () const

Double_t GetCondition () const

Double_t GetDet1 () const

Double_t GetDet2 () const

Int_t GetRowLwb () const

Double_t GetTol () const

virtual Bool_t MultiSolve (TMatrixD &B)
Solve set of equations with RHS in columns of B.

TDecompBaseoperator= (const TDecompBase &source)
Assignment operator.

Double_t SetTol (Double_t tol)

void StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b)

Public Member Functions inherited from TObject
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.

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 void Clear (Option_t *="")

virtual TObjectClone (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 Draw (Option_t *option="")
Default Draw method for all objects.

virtual void DrawClass () const
Draw class inheritance tree of the class to which this object belongs.

virtual TObjectDrawClone (Option_t *option="") const
Draw a clone of this object in the current selected pad with: gROOT->SetSelectedPad(c1).

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=nullptr)
Execute method on this object with the given parameter string, e.g.

virtual void Execute (TMethod *method, TObjArray *params, Int_t *error=nullptr)
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 TObjectFindObject (const char *name) const
Must be redefined in derived classes.

virtual TObjectFindObject (const TObject *obj) const
Must be redefined in derived classes.

virtual Option_tGetDrawOption () 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_tGetOption () 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 (the base implementation is no-op).

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, void *vp)
Only called by placement new when throwing an exception.

void operator delete[] (void *ptr)
Operator delete [].

void operator delete[] (void *ptr, void *vp)
Only called by placement new[] when throwing an exception.

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)

TObjectoperator= (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.

void StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b)

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=nullptr, Int_t option=0, Int_t bufsize=0)
Write this object to the current directory.

virtual Int_t Write (const char *name=nullptr, Int_t option=0, Int_t bufsize=0) const
Write this object to the current directory.

## Static Public Member Functions

static TClassClass ()

static const char * Class_Name ()

static constexpr Version_t Class_Version ()

static const char * DeclFileName ()

Static Public Member Functions inherited from TDecompBase
static TClassClass ()

static const char * Class_Name ()

static constexpr Version_t Class_Version ()

static const char * DeclFileName ()

Static Public Member Functions inherited from TObject
static TClassClass ()

static const char * Class_Name ()

static constexpr Version_t Class_Version ()

static const char * DeclFileName ()

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.

## Protected Member Functions

const TMatrixDBaseGetDecompMatrix () const override

Protected Member Functions inherited from TDecompBase
Int_t Hager (Double_t &est, Int_t iter=5)

void ResetStatus ()

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).

void MakeZombie ()

## Static Protected Member Functions

static Bool_t Bidiagonalize (TMatrixD &v, TMatrixD &u, TVectorD &sDiag, TVectorD &oDiag)
Bidiagonalize the (m x n) - matrix a (stored in v) through a series of Householder transformations applied to the left (Q^T) and to the right (H) of a , so that A = Q .

static void Diag_1 (TMatrixD &v, TVectorD &sDiag, TVectorD &oDiag, Int_t k)
Step 1 in the matrix diagonalization.

static void Diag_2 (TVectorD &sDiag, TVectorD &oDiag, Int_t k, Int_t l)
Step 2 in the matrix diagonalization.

static void Diag_3 (TMatrixD &v, TMatrixD &u, TVectorD &sDiag, TVectorD &oDiag, Int_t k, Int_t l)
Step 3 in the matrix diagonalization.

static Bool_t Diagonalize (TMatrixD &v, TMatrixD &u, TVectorD &sDiag, TVectorD &oDiag)
Diagonalizes in an iterative fashion the bidiagonal matrix C as described through sDiag and oDiag, so that S' = U'^T .

static void SortSingular (TMatrixD &v, TMatrixD &u, TVectorD &sDiag)
Perform a permutation transformation on the diagonal matrix S', so that matrix S'' = U''^T .

Static Protected Member Functions inherited from TDecompBase
static void DiagProd (const TVectorD &diag, Double_t tol, Double_t &d1, Double_t &d2)

## Protected Attributes

TVectorD fSig

TMatrixD fU

TMatrixD fV

Protected Attributes inherited from TDecompBase
Int_t fColLwb

Double_t fCondition

Double_t fDet1

Double_t fDet2

Int_t fRowLwb

Double_t fTol

Protected Types inherited from TDecompBase
enum  { kWorkMax = 100 }

enum  EMatrixDecompStat {
kInit = (1ULL << ( 14 )) , kPatternSet = (1ULL << ( 15 )) , kValuesSet = (1ULL << ( 16 )) , kMatrixSet = (1ULL << ( 17 )) ,
kDecomposed = (1ULL << ( 18 )) , kDetermined = (1ULL << ( 19 )) , kCondition = (1ULL << ( 20 )) , kSingular = (1ULL << ( 21 ))
}

Protected Types inherited from TObject
enum  { kOnlyPrepStep = (1ULL << ( 3 )) }

#include <TDecompSVD.h>

Inheritance diagram for TDecompSVD:
[legend]

## ◆ anonymous enum

 anonymous enum
Enumerator
kWorkMax

Definition at line 43 of file TDecompSVD.h.

## ◆ TDecompSVD() [1/5]

 TDecompSVD::TDecompSVD ( )
inline

Definition at line 45 of file TDecompSVD.h.

## ◆ TDecompSVD() [2/5]

 TDecompSVD::TDecompSVD ( Int_t nrows, Int_t ncols )

Constructor for (nrows x ncols) matrix.

Definition at line 52 of file TDecompSVD.cxx.

## ◆ TDecompSVD() [3/5]

 TDecompSVD::TDecompSVD ( Int_t row_lwb, Int_t row_upb, Int_t col_lwb, Int_t col_upb )

Constructor for ([row_lwb..row_upb] x [col_lwb..col_upb]) matrix.

Definition at line 66 of file TDecompSVD.cxx.

## ◆ TDecompSVD() [4/5]

 TDecompSVD::TDecompSVD ( const TMatrixD & m, Double_t tol = 0.0 )

Constructor for general matrix A .

Definition at line 85 of file TDecompSVD.cxx.

## ◆ TDecompSVD() [5/5]

 TDecompSVD::TDecompSVD ( const TDecompSVD & another )

Copy constructor.

Definition at line 114 of file TDecompSVD.cxx.

## ◆ ~TDecompSVD()

 TDecompSVD::~TDecompSVD ( )
inlineoverride

Definition at line 50 of file TDecompSVD.h.

## ◆ Bidiagonalize()

 Bool_t TDecompSVD::Bidiagonalize ( TMatrixD & v, TMatrixD & u, TVectorD & sDiag, TVectorD & oDiag )
staticprotected

Bidiagonalize the (m x n) - matrix a (stored in v) through a series of Householder transformations applied to the left (Q^T) and to the right (H) of a , so that A = Q .

C . H^T with matrix C bidiagonal. Q and H are orthogonal matrices .

Output: v - (n x n) - matrix H in the (n x n) part of v u - (m x m) - matrix Q^T sDiag - diagonal of the (m x n) C oDiag - off-diagonal elements of matrix C

Test code for the output:

const Int_t nRow = v.GetNrows();
const Int_t nCol = v.GetNcols();
TMatrixD H(v); H.ResizeTo(nCol,nCol);
TMatrixD E1(nCol,nCol); E1.UnitMatrix();
TMatrixD Ht(TMatrixDBase::kTransposed,H);
ok &= VerifyMatrixIdentity(Ht * H,E1,kTRUE,1.0e-13);
ok &= VerifyMatrixIdentity(H * Ht,E1,kTRUE,1.0e-13);
TMatrixD E2(nRow,nRow); E2.UnitMatrix();
TMatrixD Qt(u);
TMatrixD Q(TMatrixDBase::kTransposed,Qt);
ok &= VerifyMatrixIdentity(Q * Qt,E2,kTRUE,1.0e-13);
TMatrixD C(nRow,nCol);
TMatrixDDiag(C) = sDiag;
for (Int_t i = 0; i < nCol-1; i++)
C(i,i+1) = oDiag(i+1);
TMatrixD A = Q*C*Ht;
ok &= VerifyMatrixIdentity(A,a,kTRUE,1.0e-13);
#define a(i)
Definition RSha256.hxx:99
constexpr Bool_t kTRUE
Definition RtypesCore.h:100
TMatrixTDiag< Double_t > TMatrixDDiag
#define H(x, y, z)
Bool_t VerifyMatrixIdentity(const TMatrixTBase< Element > &m1, const TMatrixTBase< Element > &m2, Int_t verbose, Element maxDevAllow)
Verify that elements of the two matrices are equal within MaxDevAllow .

Definition at line 192 of file TDecompSVD.cxx.

## ◆ Class()

 static TClass * TDecompSVD::Class ( )
static
Returns
TClass describing this class

## ◆ Class_Name()

 static const char * TDecompSVD::Class_Name ( )
static
Returns
Name of this class

## ◆ Class_Version()

 static constexpr Version_t TDecompSVD::Class_Version ( )
inlinestaticconstexpr
Returns
Version of this class

Definition at line 88 of file TDecompSVD.h.

## ◆ Condition()

 Double_t TDecompSVD::Condition ( )
overridevirtual

Matrix condition number.

Reimplemented from TDecompBase.

Definition at line 823 of file TDecompSVD.cxx.

## ◆ DeclFileName()

 static const char * TDecompSVD::DeclFileName ( )
inlinestatic
Returns
Name of the file containing the class declaration

Definition at line 88 of file TDecompSVD.h.

## ◆ Decompose()

 Bool_t TDecompSVD::Decompose ( )
overridevirtual

SVD decomposition of matrix If the decomposition succeeds, bit kDecomposed is set , otherwise kSingular.

Implements TDecompBase.

Definition at line 123 of file TDecompSVD.cxx.

## ◆ Det()

 void TDecompSVD::Det ( Double_t & d1, Double_t & d2 )
overridevirtual

Matrix determinant det = d1*TMath::Power(2.,d2)

Reimplemented from TDecompBase.

Definition at line 846 of file TDecompSVD.cxx.

## ◆ Diag_1()

 void TDecompSVD::Diag_1 ( TMatrixD & v, TVectorD & sDiag, TVectorD & oDiag, Int_t k )
staticprotected

Step 1 in the matrix diagonalization.

Definition at line 374 of file TDecompSVD.cxx.

## ◆ Diag_2()

 void TDecompSVD::Diag_2 ( TVectorD & sDiag, TVectorD & oDiag, Int_t k, Int_t l )
staticprotected

Step 2 in the matrix diagonalization.

Definition at line 398 of file TDecompSVD.cxx.

## ◆ Diag_3()

 void TDecompSVD::Diag_3 ( TMatrixD & v, TMatrixD & u, TVectorD & sDiag, TVectorD & oDiag, Int_t k, Int_t l )
staticprotected

Step 3 in the matrix diagonalization.

Definition at line 416 of file TDecompSVD.cxx.

## ◆ Diagonalize()

 Bool_t TDecompSVD::Diagonalize ( TMatrixD & v, TMatrixD & u, TVectorD & sDiag, TVectorD & oDiag )
staticprotected

Diagonalizes in an iterative fashion the bidiagonal matrix C as described through sDiag and oDiag, so that S' = U'^T .

C . V' is diagonal. U' and V' are orthogonal matrices .

Output:

• v - (n x n) - matrix H . V' in the (n x n) part of v
• u - (m x m) - matrix U'^T . Q^T
• sDiag - diagonal of the (m x n) S'

return convergence flag: 0 -> no convergence 1 -> convergence

Test code for the output:

const Int_t nRow = v.GetNrows();
const Int_t nCol = v.GetNcols();
TMatrixD tmp = v; tmp.ResizeTo(nCol,nCol);
TMatrixD Vprime = Ht*tmp;
TMatrixD Vprimet(TMatrixDBase::kTransposed,Vprime);
TMatrixD Uprimet = u*Q;
TMatrixD Uprime(TMatrixDBase::kTransposed,Uprimet);
TMatrixD Sprime(nRow,nCol);
TMatrixDDiag(Sprime) = sDiag;
ok &= VerifyMatrixIdentity(Uprimet * C * Vprime,Sprime,kTRUE,1.0e-13);
ok &= VerifyMatrixIdentity(Q*Uprime * Sprime * Vprimet * Ht,a,kTRUE,1.0e-13);

Definition at line 307 of file TDecompSVD.cxx.

## ◆ GetDecompMatrix()

 const TMatrixDBase & TDecompSVD::GetDecompMatrix ( ) const
inlineoverrideprotectedvirtual

Implements TDecompBase.

Definition at line 39 of file TDecompSVD.h.

## ◆ GetMatrix()

 const TMatrixD TDecompSVD::GetMatrix ( )

Reconstruct the original matrix using the decomposition parts.

Definition at line 557 of file TDecompSVD.cxx.

## ◆ GetNcols()

 Int_t TDecompSVD::GetNcols ( ) const
overridevirtual

Implements TDecompBase.

Definition at line 870 of file TDecompSVD.cxx.

## ◆ GetNrows()

 Int_t TDecompSVD::GetNrows ( ) const
overridevirtual

Implements TDecompBase.

Definition at line 865 of file TDecompSVD.cxx.

## ◆ GetSig()

 const TVectorD & TDecompSVD::GetSig ( )
inline

Definition at line 59 of file TDecompSVD.h.

## ◆ GetU()

 const TMatrixD & TDecompSVD::GetU ( )
inline

Definition at line 55 of file TDecompSVD.h.

## ◆ GetV()

 const TMatrixD & TDecompSVD::GetV ( )
inline

Definition at line 57 of file TDecompSVD.h.

## ◆ Invert() [1/3]

 TMatrixD TDecompSVD::Invert ( )
inline

Definition at line 82 of file TDecompSVD.h.

## ◆ Invert() [2/3]

 TMatrixD TDecompSVD::Invert ( Bool_t & status )

For a matrix A(m,n), its inverse A_inv is defined as A * A_inv = A_inv * A = unit (n x m) Ainv is returned .

Definition at line 903 of file TDecompSVD.cxx.

## ◆ Invert() [3/3]

 Bool_t TDecompSVD::Invert ( TMatrixD & inv )

For a matrix A(m,n), its inverse A_inv is defined as A * A_inv = A_inv * A = unit The user should always supply a matrix of size (m x m) ! If m > n , only the (n x m) part of the returned (pseudo inverse) matrix should be used .

Definition at line 881 of file TDecompSVD.cxx.

## ◆ IsA()

 TClass * TDecompSVD::IsA ( ) const
inlineoverridevirtual
Returns
TClass describing current object

Reimplemented from TDecompBase.

Definition at line 88 of file TDecompSVD.h.

## ◆ operator=()

 TDecompSVD & TDecompSVD::operator= ( const TDecompSVD & source )

Assignment operator.

Definition at line 930 of file TDecompSVD.cxx.

## ◆ Print()

 void TDecompSVD::Print ( Option_t * opt = "" ) const
overridevirtual

Print class members.

Reimplemented from TDecompBase.

Definition at line 919 of file TDecompSVD.cxx.

## ◆ SetMatrix()

 void TDecompSVD::SetMatrix ( const TMatrixD & a )
virtual

Set matrix to be decomposed.

Definition at line 582 of file TDecompSVD.cxx.

## ◆ Solve() [1/3]

 TVectorD TDecompSVD::Solve ( const TVectorD & b, Bool_t & ok )
inlineoverridevirtual

Implements TDecompBase.

Definition at line 66 of file TDecompSVD.h.

## ◆ Solve() [2/3]

 Bool_t TDecompSVD::Solve ( TMatrixDColumn & cb )
overridevirtual

Solve Ax=b assuming the SVD form of A is stored .

Solution returned in the matrix column cb b. If A is of size (m x n), input vector b should be of size (m), however, the solution, returned in b, will be in the first (n) elements .

For m > n , x is the least-squares solution of min(A . x - b)

Implements TDecompBase.

Definition at line 670 of file TDecompSVD.cxx.

## ◆ Solve() [3/3]

 Bool_t TDecompSVD::Solve ( TVectorD & b )
overridevirtual

Solve Ax=b assuming the SVD form of A is stored .

Solution returned in b. If A is of size (m x n), input vector b should be of size (m), however, the solution, returned in b, will be in the first (n) elements .

For m > n , x is the least-squares solution of min(A . x - b)

Implements TDecompBase.

Definition at line 615 of file TDecompSVD.cxx.

## ◆ SortSingular()

 void TDecompSVD::SortSingular ( TMatrixD & v, TMatrixD & u, TVectorD & sDiag )
staticprotected

Perform a permutation transformation on the diagonal matrix S', so that matrix S'' = U''^T .

S' . V'' has diagonal elements ordered such that they do not increase.

Output:

• v - (n x n) - matrix H . V' . V'' in the (n x n) part of v
• u - (m x m) - matrix U''^T . U'^T . Q^T
• sDiag - diagonal of the (m x n) S''

Definition at line 497 of file TDecompSVD.cxx.

## ◆ Streamer()

 void TDecompSVD::Streamer ( TBuffer & R__b )
overridevirtual

Stream an object of class TObject.

Reimplemented from TDecompBase.

## ◆ StreamerNVirtual()

 void TDecompSVD::StreamerNVirtual ( TBuffer & ClassDef_StreamerNVirtual_b )
inline

Definition at line 88 of file TDecompSVD.h.

## ◆ TransSolve() [1/3]

 TVectorD TDecompSVD::TransSolve ( const TVectorD & b, Bool_t & ok )
inlineoverridevirtual

Implements TDecompBase.

Definition at line 72 of file TDecompSVD.h.

## ◆ TransSolve() [2/3]

 Bool_t TDecompSVD::TransSolve ( TMatrixDColumn & b )
overridevirtual

Solve A^T x=b assuming the SVD form of A is stored . Solution returned in b.

Implements TDecompBase.

Definition at line 772 of file TDecompSVD.cxx.

## ◆ TransSolve() [3/3]

 Bool_t TDecompSVD::TransSolve ( TVectorD & b )
overridevirtual

Solve A^T x=b assuming the SVD form of A is stored . Solution returned in b.

Implements TDecompBase.

Definition at line 723 of file TDecompSVD.cxx.

## ◆ fSig

 TVectorD TDecompSVD::fSig
protected

Definition at line 30 of file TDecompSVD.h.

## ◆ fU

 TMatrixD TDecompSVD::fU
protected

Definition at line 28 of file TDecompSVD.h.

## ◆ fV

 TMatrixD TDecompSVD::fV
protected

Definition at line 29 of file TDecompSVD.h.

Libraries for TDecompSVD:

The documentation for this class was generated from the following files: