136 Error(
"Decompose()",
"Matrix has not been set");
246 if (
kstep == 1 && k > 0) {
281 for (
Int_t i =
j; i >= 0; i--) {
343 Error(
"Solve()",
"Matrix is singular");
348 Error(
"Solve()",
"Decomposition failed");
354 Error(
"Solve(TVectorD &",
"vector and matrix incompatible");
384 for (
Int_t i = 0; i < k; i++)
404 for (i = 0; i < k-1; i++)
406 for (i = 0; i < k-1; i++)
435 for (
Int_t i = 0; i < k; i++)
451 for (i = 0; i < k; i++)
453 for (i = 0; i < k; i++)
478 Error(
"Solve()",
"Matrix is singular");
483 Error(
"Solve()",
"Decomposition failed");
489 Error(
"Solve(TMatrixDColumn &",
"vector and matrix incompatible");
521 for (
Int_t i = 0; i < k; i++)
541 for (i = 0; i < k-1; i++)
543 for (i = 0; i < k-1; i++)
572 for (
Int_t i = 0; i < k; i++)
588 for (i = 0; i < k; i++)
590 for (i = 0; i < k; i++)
613 Error(
"Invert(TMatrixDSym &",
"Input matrix has wrong shape");
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
#define R__ASSERT(e)
Checks condition e and reports a fatal error if it's false.
TMatrixTColumn_const< Double_t > TMatrixDColumn_const
TMatrixTRow_const< Double_t > TMatrixDRow_const
The Bunch-Kaufman diagonal pivoting method decomposes a real symmetric matrix A using.
Int_t GetNrows() const override
TDecompBK & operator=(const TDecompBK &source)
Assignment operator.
TDecompBK()
Default constructor.
Bool_t Decompose() override
Matrix A is decomposed in components U and D so that A = U*D*U^T If the decomposition succeeds,...
Bool_t Solve(TVectorD &b) override
Solve Ax=b assuming the BK form of A is stored in fU . Solution returned in b.
virtual void SetMatrix(const TMatrixDSym &a)
Set the matrix to be decomposed, decomposition status is reset.
void Print(Option_t *opt="") const override
Print the class members.
Decomposition Base class.
TDecompBase & operator=(const TDecompBase &source)
Assignment operator.
void Print(Option_t *opt="") const override
Print class members.
void Print(Option_t *name="") const override
Print the matrix as a table of elements.
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.
const TMatrixTBase< Element > * GetMatrix() const
const Element * GetMatrixArray() const override
TMatrixTBase< Element > & ResizeTo(Int_t nrows, Int_t ncols, Int_t=-1) override
Set size of the matrix to nrows x ncols New dynamic elements are created, the overlapping part of the...
R__ALWAYS_INLINE Bool_t TestBit(UInt_t f) const
void SetBit(UInt_t f, Bool_t set)
Set or unset the user status bits as specified in f.
virtual void Error(const char *method, const char *msgfmt,...) const
Issue error message.
Short_t Max(Short_t a, Short_t b)
Returns the largest of a and b.
Long64_t LocMax(Long64_t n, const T *a)
Returns index of array with the maximum element.
Double_t Sqrt(Double_t x)
Returns the square root of x.
Short_t Abs(Short_t d)
Returns the absolute value of parameter Short_t d.
void inv(rsa_NUMBER *, rsa_NUMBER *, rsa_NUMBER *)