[root] / trunk / math / matrix / src / TDecompBK.cxx Repository:
ViewVC logotype

Log of /trunk/math/matrix/src/TDecompBK.cxx

Parent Directory Parent Directory


Links to HEAD: (view) (download) (as text) (annotate)
Sticky Revision:

Revision 35903 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Sep 30 10:41:51 2010 UTC (4 years, 3 months ago) by brun
File length: 22008 byte(s)
Diff to previous 23492
Fix Explicit null dereferenced. coverity CID 11826

Revision 23492 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Apr 23 20:42:49 2008 UTC (6 years, 9 months ago) by brun
File length: 21997 byte(s)
Diff to previous 22885
From Eddy:
Fix shadowed variables

Revision 22885 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Mar 28 13:57:25 2008 UTC (6 years, 9 months ago) by rdm
File length: 22009 byte(s)
Diff to previous 22039
move the following directories under the new "math" meta directory:
   mathcore
   mathmore
   fftw
   foam
   fumili
   genvector
   matrix
   minuit
   minuit2
   mlp
   physics
   smatrix
   splot
   unuran
   quadp

Revision 22039 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Feb 7 05:48:31 2008 UTC (6 years, 11 months ago) by brun
Original Path: trunk/matrix/src/TDecompBK.cxx
File length: 22009 byte(s)
Diff to previous 20882
From Eddy:
- remove bug in Decompose of all TDecompXXX classes : It is checked
whether
    the matrix was already decomposed

- Added to TVector and the different TMatrix flavors the option to use
   "Use" on constant arrys and vectors/matrices.

Revision 20882 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Nov 19 11:31:26 2007 UTC (7 years, 2 months ago) by rdm
Original Path: trunk/matrix/src/TDecompBK.cxx
File length: 21965 byte(s)
Diff to previous 19826
Set property svn:eol-style LF on all source and Makefiles. This should avoid
problems with Win32 line endings ending up in the repository. All MS tools
support LF eols fine.

Revision 19826 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Sep 19 19:56:11 2007 UTC (7 years, 4 months ago) by rdm
Original Path: trunk/matrix/src/TDecompBK.cxx
File length: 21965 byte(s)
Diff to previous 19825
imported svn:keywords Id property

Revision 19825 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Sep 19 19:49:10 2007 UTC (7 years, 4 months ago) by rdm
Original Path: trunk/matrix/src/TDecompBK.cxx
File length: 22016 byte(s)
Diff to previous 17316
remove :$ from tag line

Revision 17316 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Jan 15 10:16:15 2007 UTC (8 years ago) by brun
Original Path: trunk/matrix/src/TDecompBK.cxx
File length: 22026 byte(s)
Diff to previous 16458
REmove several dependencies on TMath.h

Revision 16458 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Oct 6 06:52:34 2006 UTC (8 years, 3 months ago) by brun
Original Path: trunk/matrix/src/TDecompBK.cxx
File length: 22007 byte(s)
Diff to previous 15195
From Eddy Offermann:
Previously, the matrix package contained a large amount of ASSERT
statements which are a nuisance for programs analyzing a series of
independent events like in high-energy physics .
Assert's were issued when for instance a division by zero was requested
or a matrix was invalid . Most algorithms made matrices/vectors invalid
after an error occured in an operation , like inversion of a singular matrix .
Unfortunately, not all assert's were accompanied by error messages .

This situation has been completely overhauled :
- All error conditions in the algorithms are now accompanied by error
  messages .
- In all algorithms it is still asserted that vectors/matrices are
  valid BUT only in very few cases is a matrix/vector made invalid :
  for instance if memory is allocated with incorrect parameters .
- In case of division by zero, the division is skipped . In case of a
  singular matrix, the inversion routine returns the original matrix .

In the past the result of an inversion could be checked through the
value of the returned determinant or checking whether the inverted matrix
was valid .
Since from now on, we never make the matrix invalid in this operation, the
latter check will not indicate a singular matrix anymore .

   The decompostion classes TDecomp... have a backward-compatible
change in the interface which makes detection of singularity easier :

   old interface :

         void         Invert    (TMatrixD &inv);
         TMatrixD Invert    ();

   new interface :

         Bool_t      Invert    (TMatrixD &inv);
         TMatrixD Invert    (Bool_t &status);
         TMatrixD Invert    () { Bool_t status; return Invert(status);
}

  The returned status is kFALSE in case of singularity .

The old situation is easily reproduced by setting the ROOT variable
gErrorAbortLevel to kError . This cause an exception when there is an error
message (Error...) ., In the past the matrix would be made invalid which
would cause the next operation to throw an exception .

Revision 15195 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon May 29 05:03:01 2006 UTC (8 years, 7 months ago) by brun
Original Path: trunk/matrix/src/TDecompBK.cxx
File length: 21911 byte(s)
Diff to previous 15174
From Eddy:

Add comments to many member functions

Revision 15174 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed May 24 20:07:45 2006 UTC (8 years, 8 months ago) by brun
Original Path: trunk/matrix/src/TDecompBK.cxx
File length: 21441 byte(s)
Diff to previous 15068
Fix indentation at 3 columns

Revision 15068 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed May 17 06:22:06 2006 UTC (8 years, 8 months ago) by brun
Original Path: trunk/matrix/src/TDecompBK.cxx
File length: 21456 byte(s)
Diff to previous 14745
From Eddy:
Fix some coding conventions violations

Revision 14745 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Apr 19 08:22:26 2006 UTC (8 years, 9 months ago) by rdm
Original Path: trunk/matrix/src/TDecompBK.cxx
File length: 20249 byte(s)
Diff to previous 14336
Change the TError.h macros:
Assert   ->  R__ASSERT
Check    ->  R__CHECK
Change the TCollection.h macro:
ForEach  ->  R__FOR_EACH
This to avoid potential problems due too trivial macro names.
The old macros will be removed in the next release. Currently
they will print out warning messages with the advice to move
to the new macro names.

Revision 14336 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Mar 20 21:43:44 2006 UTC (8 years, 10 months ago) by pcanal
Original Path: trunk/matrix/src/TDecompBK.cxx
File length: 20300 byte(s)
Diff to previous 11119
Reduce direct dependencies on TClass.h, TROOT.h and TStreamerInfo.h.
Warning:  This means that some file that relied on the indirect
inclusion of these header file might now fail to compile with
an error message mention that gROOT is no known or that TClass,
TROOT or TStreamerInfo is incompletely defined.  Simply add the
proper include directive.

Revision 11119 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Feb 15 16:17:10 2005 UTC (9 years, 11 months ago) by brun
Original Path: trunk/matrix/src/TDecompBK.cxx
File length: 20280 byte(s)
Diff to previous 10329
From Eddy Offermann
Here a patch to remove some inconsistencies/bugs in the indexing of the
decomposed matrices and eigen-vectors/-values in case the row/column
index
did not start 0 .
The tests in stressLinear were modified/extended to check these cases .

Revision 10329 - (view) (download) (as text) (annotate) - [select for diffs]
Added Sat Oct 16 18:09:17 2004 UTC (10 years, 3 months ago) by brun
Original Path: trunk/matrix/src/TDecompBK.cxx
File length: 20039 byte(s)
From Eddy Offermann:
- added new decomposition class TDecompBK: Bunch-Kaufman algorithm
  this class is designed to decompose real symmetric matrices . Now
  we can guarantee that inverse of a symmetric matrix is again
  symmetric .
- As a consequence of the introduction of TDecompBK, we added
  Invert(..) functionality to TMatrixD/FSym
  Also added InvertFast to TMatrixD/FSym which uses Cramer
  inversion for matrices <= (6 x 6) , resulting in large speedup
  but less accuracy . The necessary routines are encapsulated
  in the new TMatrixDSymCramerInv class .

  Note of caution :
  Unlike the other decompositions, Bunch-Kaufmann does not result
  in a triangular matrix of which the determinant is trivially calculated
  by multiplying the diagonal elements . As a consequence,
  we have to invoke yet another decomposition when the user
  requests the determinant .
  So Invert() will be roughly twice faster than Double_t *det; Invert(det)

- Changed the algoritm for the Cholesky decomposition so that we
  do not need to have a copy of the original matrix around !
  After removal of class member fA, increased the version to 2
- Added sorting of eigen -values/-vectors to TMatrixDEigen .
  They are now sorted according to Re^2+Im^2 of the (possible)
  complex eigenvalues in descending order . TMatrixDSymEigen
  already sorted . Since most users use TMatrixD instead of
  TMatrixDSym, this will ensure backward compatiblity since
  old root contained the symmetric algorithms in TMatrixD .
- Added rank 1 update algorihms : A += alpha * x y^T
  (x and y are vectors)
  to the non-sparse matrix classes (adding this to sparse
  would make this matrix immediately dense :)
- Moved Invert fom TDecompBase to the different decomposition
  classes . Reason is that some classes can decompose A(m,n)
  where m > n . The result of Invert() is then a "pseudo-invert"
  : A_pseudo = (A^T A)^-1 A^T .
- Removed an unfortunate bug in the TMatrixD/FSub class :
  both operators
      void operator+=(Double_t val);
      void operator*=(Double_t val);
  performed actually
      void operator=(Double_t val);
~

This form allows you to request diffs between any two revisions of this file. For each of the two "sides" of the diff, enter a numeric revision.

  Diffs between and
  Type of Diff should be a

Sort log by:

Subversion Admin
ViewVC Help
Powered by ViewVC 1.0.9