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

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

Parent Directory Parent Directory


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

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: 25513 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: 25575 byte(s)
Diff to previous 20882
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 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/TMatrixDEigen.cxx
File length: 25575 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/TMatrixDEigen.cxx
File length: 25575 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/TMatrixDEigen.cxx
File length: 25631 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/TMatrixDEigen.cxx
File length: 25641 byte(s)
Diff to previous 15300
REmove several dependencies on TMath.h

Revision 15300 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Jun 2 05:11:20 2006 UTC (8 years, 7 months ago) by brun
Original Path: trunk/matrix/src/TMatrixDEigen.cxx
File length: 25622 byte(s)
Diff to previous 15174
From Eddy:
Worked more on the comments in the matrix package  . Actually the
important
ones are all there .. but have to add thing slike "cop constructor" to
make the checker happy .

Added also namespaces TMatrixTCramer and TMatrixTSymCramerInv to the
dictionary

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/TMatrixDEigen.cxx
File length: 25529 byte(s)
Diff to previous 15111
Fix indentation at 3 columns

Revision 15111 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri May 19 04:44:59 2006 UTC (8 years, 8 months ago) by brun
Original Path: trunk/matrix/src/TMatrixDEigen.cxx
File length: 25478 byte(s)
Diff to previous 14745
From Eddy:
More fixes to 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/TMatrixDEigen.cxx
File length: 23223 byte(s)
Diff to previous 12591
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 12591 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Sep 2 11:04:45 2005 UTC (9 years, 4 months ago) by brun
Original Path: trunk/matrix/src/TMatrixDEigen.cxx
File length: 23394 byte(s)
Diff to previous 11119
Fix all remaining coding convention problems in directory matrix.

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/TMatrixDEigen.cxx
File length: 23373 byte(s)
Diff to previous 10487
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 10487 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Nov 5 16:37:09 2004 UTC (10 years, 2 months ago) by brun
Original Path: trunk/matrix/src/TMatrixDEigen.cxx
File length: 22746 byte(s)
Diff to previous 10329
From Eddy Offermann
a patch to implement limits on the number of iterations
to triangularize a matrix in TMatrixDEigen and TMatrixDSymEigen .

Revision 10329 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sat Oct 16 18:09:17 2004 UTC (10 years, 3 months ago) by brun
Original Path: trunk/matrix/src/TMatrixDEigen.cxx
File length: 22665 byte(s)
Diff to previous 8558
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);
~

Revision 8558 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Apr 8 17:58:32 2004 UTC (10 years, 9 months ago) by rdm
Original Path: trunk/matrix/src/TMatrixDEigen.cxx
File length: 21422 byte(s)
Diff to previous 8442
make function cdiv() and variable cdivr and cdivi static to not polute
the global namespace.

Revision 8442 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Mar 19 14:20:40 2004 UTC (10 years, 10 months ago) by brun
Original Path: trunk/matrix/src/TMatrixDEigen.cxx
File length: 21408 byte(s)
Diff to previous 8143
From Eddy Offermann:

1. Removed streaming of matrix view classes (TMatrixDRow,TMatrixDColumn,TMatrixDDiag,TMatrixDFlat)
   because a. we  want these classes to be as light as possible
           b. old implementation was wrong, some member elements were "(!)" out
2. Added a series of functions to support upcoming quadratic programming functionality:

    TVectorD/F:

    - AddElemMult(TVectorF &t,Float_t alpha,const TVectorF &s1,const TVectorF &s2);
      t += alpha * s1*s2 , where "s1*s2 is an element-wise multiplication
    - AddElemMult(TVectorF &t,Float_t alpha,const TVectorF &s1,const TVectorF &s2,const TVectorF &map);
      t += alpha * s1*s2 , where "s1*s2 is an element-wise multiplication. It is only performed
           for those elements i where map[i] != 0

    - AddElemDiv (TVectorF &t,Float_t alpha,const TVectorF &s1,const TVectorF &s2);
      t += alpha * s1\s2 , where "s1\s2 is an element-wise division
    - AddElemDiv (TVectorF &t,Float_t alpha,const TVectorF &s1,const TVectorF &s2,const TVectorF &map);
      t += alpha * s1\s2 , where "s1\s2 is an element-wise division. It is only performed
           for those elements i where map[i] != 0

    - ElementMult(TVectorF &t,const TVectorF &s,const TVectorF &map);
      t += t*s , where "t*s" is an element-wise multiplication. It is only performed
           for those elements i where map[i] != 0
    - ElementDiv (TVectorF &t,const TVectorF &s,const TVectorF &map);
      t += t/s , where "t/s" is an element-wise division. It is only performed
           for those elements i where map[i] != 0

    - TVectorD &SelectNonZeros       (const TVectorD &select);
      put elements for which select[i] == 0 to zero
    - Bool_t    MatchesNonZeroPattern(const TVectorD &select);
      verify that elements are != 0 for which select[i] != 0
    - Bool_t    SomePositive         (const TVectorD &select);
      verify that all elements > 0 for which select[i] != 0
    - void      AddSomeConstant      (Double_t val,const TVectorD &select);
      Add val to those elements for which select[i] != 0

    - TVectorF &TVectorF::Invert()
      v[i] = 1/v[i]

    TVectorD/F and TMatrixD/FBase:

    - virtual Double_t Sum () const;
    - virtual Double_t Min () const;
    - virtual Double_t Max () const;

3. Added another data member fA to TDecompChol . Unlike the other decomposition schemes, it is not
   possible to store the original input matrix in one of the decomposition members

4. Added method "SetMatrix(const TMatrix.. &)" to all decomposition classes . It allows to
   change the matrix that should be decomposed. Of course it resets the class status to kInit
   and triggers a new factorization.

5. Added private methods to TMatrixD and TMatrixDSym

  const TMatrixD EigenVectors(TVectorD &eigenValues) const;  // This function is now obsolete (and not implemented), you
                                                             // should use TMatrixDSymEigen or TMatrixDEigen .

6. Changed the name "Adopt" to "Use" to be in agreement with the convention that the memory management
   of adopted members is now the reponsibility of the class

Revision 8143 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Feb 6 16:25:58 2004 UTC (10 years, 11 months ago) by brun
Original Path: trunk/matrix/src/TMatrixDEigen.cxx
File length: 21410 byte(s)
Diff to previous 8046
From Eddy Offermann:
a patch that slightly iproves speed
by Adopting a work array that is on the stack

Revision 8046 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Jan 27 08:12:26 2004 UTC (10 years, 11 months ago) by brun
Original Path: trunk/matrix/src/TMatrixDEigen.cxx
File length: 21297 byte(s)
Diff to previous 8032
Rename GetElements to GetMatrixArray
Rename SetMatrixElements to SetMatrixArray
Rename GetMatrixElements to GetMatrix2Array
Add a private function GetElements

Revision 8032 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Jan 26 14:09:58 2004 UTC (11 years ago) by brun
Original Path: trunk/matrix/src/TMatrixDEigen.cxx
File length: 21267 byte(s)
Diff to previous 8028
Remove trailing CR

Revision 8028 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Jan 26 12:08:58 2004 UTC (11 years ago) by brun
Original Path: trunk/matrix/src/TMatrixDEigen.cxx
File length: 22005 byte(s)
Diff to previous 8013
Remove multiple loop index definitions in the same function (HP-UX only)

Revision 8013 - (view) (download) (as text) (annotate) - [select for diffs]
Added Sun Jan 25 20:33:32 2004 UTC (11 years ago) by brun
Original Path: trunk/matrix/src/TMatrixDEigen.cxx
File length: 22196 byte(s)
New Linear Algebra package from Eddy Offermann.
This new package reimplements the previous classes TMatrix and TMatrixD.
The new classes should be back compatible with the previous version except
the function GetElements.
New classes have been introduced for symmetric matrices,
lazy matrices.
New algorithms (LU, SVD) have been introduced.
A new test suite test/stressLinear.cxx is introduced.
A complete description of this package will be posted in the coming days.
The classes are well documented in the implementation headers.

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