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

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

Parent Directory Parent Directory


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

Revision 48335 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Jan 18 15:17:21 2013 UTC (2 years ago) by moneta
File length: 114842 byte(s)
Diff to previous 46214
from Gabriel: 

 - removed code duplication and casts from InvertFast method (Coverity)
 - better use of templates and STL

Revision 46214 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Sep 27 10:10:19 2012 UTC (2 years, 3 months ago) by rdm
File length: 115298 byte(s)
Diff to previous 38564
Digital Alpha is no longer supported. Remove all references to __alpha and
__true64.

Revision 38564 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Mar 23 09:00:57 2011 UTC (3 years, 10 months ago) by rdm
File length: 115321 byte(s)
Diff to previous 35998
correct comment in GetSub(). Fixes issue 79871.

Revision 35998 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Oct 1 12:47:38 2010 UTC (4 years, 3 months ago) by brun
File length: 115325 byte(s)
Diff to previous 35901
Fix a Dereference after null check. coverity CID 11611

Revision 35901 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Sep 30 10:32:39 2010 UTC (4 years, 3 months ago) by brun
File length: 115282 byte(s)
Diff to previous 34474
Fix explicit_null_dereferenced. coverity CID 11611

Revision 34474 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Jul 19 06:19:13 2010 UTC (4 years, 6 months ago) by brun
File length: 115269 byte(s)
Diff to previous 34231
From Eddy:
fix for the bug reported at http://savannah.cern.ch/bugs/?70054
When both matrix sizes were below 25 (like 5 x 5) the memory on the stack
was not all cleared to zero . This is now fixed in TMatrixT and TMatrixTSym

Revision 34231 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Jun 30 12:26:12 2010 UTC (4 years, 6 months ago) by brun
File length: 114830 byte(s)
Diff to previous 32616
fix format in Error statements

Revision 32616 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Mar 15 16:56:42 2010 UTC (4 years, 10 months ago) by rdm
File length: 114812 byte(s)
Diff to previous 25272
Fix issues reported by clang++:
- qualify calls, because name lookup doesn't look in base classes
  (two-phase name lookup).
- unused parameter warnings

Revision 25272 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Aug 27 06:28:00 2008 UTC (6 years, 4 months ago) by brun
File length: 114766 byte(s)
Diff to previous 22885
From Eddy:
fix a memory leak problem in TMatrixTSparse .

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: 114763 byte(s)
Diff to previous 22527
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 22527 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Mar 7 16:37:03 2008 UTC (6 years, 10 months ago) by rdm
Original Path: trunk/matrix/src/TMatrixT.cxx
File length: 114763 byte(s)
Diff to previous 20882
more gcc 4.3 warning fixes. Remains only some warning in Cint, Reflex
and xrootd.

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/TMatrixT.cxx
File length: 114761 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/TMatrixT.cxx
File length: 114761 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/TMatrixT.cxx
File length: 114812 byte(s)
Diff to previous 17734
remove :$ from tag line

Revision 17734 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Feb 6 15:47:59 2007 UTC (7 years, 11 months ago) by brun
Original Path: trunk/matrix/src/TMatrixT.cxx
File length: 114822 byte(s)
Diff to previous 17648
In the Streamer functions replace the lines like
         TPad::Class()->ReadBuffer(b, this, v, R__s, R__c);
         TPad::Class()->WriteBuffer(b,this);
by
         b.ReadClassBuffer(TPad::Class(), this, v, R__s, R__c);
         b.WriteClassBuffer(TPad::Class(),this);

Revision 17648 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sat Feb 3 06:40:26 2007 UTC (7 years, 11 months ago) by brun
Original Path: trunk/matrix/src/TMatrixT.cxx
File length: 114814 byte(s)
Diff to previous 16458
From Eddy:
Remove the inclusion of TMath.h in TMatrixTUtils.h and fix all the consequences

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/TMatrixT.cxx
File length: 114795 byte(s)
Diff to previous 16161
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 16161 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Aug 30 12:54:13 2006 UTC (8 years, 4 months ago) by brun
Original Path: trunk/matrix/src/TMatrixT.cxx
File length: 116103 byte(s)
Diff to previous 15300
From Eddy:
the promised update/patch for

TMatrixD A; ......

B.Use(A);
C.Use(A);

C += B;

Currently, It is checked in these kinds of operation whether the
objects
are the same . Obviously, that is not enough because objects could be
using the same data location . So I have to check if the data location
is identical .

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/TMatrixT.cxx
File length: 114784 byte(s)
Diff to previous 15111
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 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/TMatrixT.cxx
File length: 112543 byte(s)
Diff to previous 15105
From Eddy:
More fixes to coding conventions violations

Revision 15105 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu May 18 18:57:11 2006 UTC (8 years, 8 months ago) by brun
Original Path: trunk/matrix/src/TMatrixT.cxx
File length: 108828 byte(s)
Diff to previous 14745
From Eddy:
a patch for a bug in TMatrixF::Invert :

The result was memcpy-ed back to the original matrix despite the
fact that they could be of different type .

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/TMatrixT.cxx
File length: 108360 byte(s)
Diff to previous 14537
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 14537 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Apr 4 05:51:06 2006 UTC (8 years, 9 months ago) by brun
Original Path: trunk/matrix/src/TMatrixT.cxx
File length: 108280 byte(s)
Diff to previous 14524
From Eddy:
- 2 weeks ago AMultB.. functions were made public . However, unlike any
other
   public function except for the *= calls, it could allocate an object
. In addition
   already Mult function existed (which called AMultB with constr=0) .
   This situation is rectified in the following way :
     The public Mult, MultT and TMult are introduced .

     AMultB , AtMultB and AMultBt are now functions that do not belong
to the
     TMatrixT class anymore, they accept now pointers as arguments .

     None of these functions will create a new object . In internal
calls to AMultB family ,
     first a call to Allocate is made (if necessary) .

    AMultB is used in one of the TMatrixTSym::Similarity calls,
removing the creation of a
    TMatrixT object .

- smatrix/test function reflect the changes above

Revision 14524 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sun Apr 2 08:38:12 2006 UTC (8 years, 9 months ago) by brun
Original Path: trunk/matrix/src/TMatrixT.cxx
File length: 110792 byte(s)
Diff to previous 14482
Add test on gMatrixCheck in a few more places.

Revision 14482 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Mar 30 09:30:33 2006 UTC (8 years, 9 months ago) by brun
Original Path: trunk/matrix/src/TMatrixT.cxx
File length: 110774 byte(s)
Diff to previous 14460
In the TVectorT, TMatrixT free Add functions, add the special case
where the argument scalar is null, ie
 -if scalar != 0 target += scalar * A * source
 -if scalar == 0 target = A * source

Revision 14460 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Mar 29 05:16:49 2006 UTC (8 years, 9 months ago) by brun
Original Path: trunk/matrix/src/TMatrixT.cxx
File length: 110597 byte(s)
Diff to previous 14401
From Eddy:
1) TVectorT TMatrixT TMatrixTSym TMatrixTSparse : made sure that
IsValid Assert's
    are only done when gMatrixCheck is kTRUE
2) TMatrixTSym::Similarity and SimilarityT create a temporary matrix .
If storage
     is <= kWorkMax use a local array . This way less temporary
elements are
    created .
3) In  TMatrixTSym::Similarity and SimilarityT some shape checking was
missing

Revision 14401 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Mar 23 16:41:25 2006 UTC (8 years, 10 months ago) by brun
Original Path: trunk/matrix/src/TMatrixT.cxx
File length: 110358 byte(s)
Diff to previous 14387
From Eddy:
a modification for TMatrixTSym::Invert :

Replaced the Bunch-Kaufman decomposition in the TMatrixTSym::Invert
by LU decomposition because it is signifivantly faster .
However, Bunch-Kaufman guarantees unlike LU that the inverted matrix
is symmetric . In case of numerically difficult matrices, the user
should use the TDecompBK class to invert.

Revision 14387 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Mar 23 11:23:15 2006 UTC (8 years, 10 months ago) by brun
Original Path: trunk/matrix/src/TMatrixT.cxx
File length: 110202 byte(s)
Diff to previous 14375
From Eddy:
"I introduced a global parameter : Int_t gMatrixCheck  with
which can turn on (1) and off(0) the various checks :

- validity, sizes .. in the routines .

Revision 14375 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Mar 22 15:16:59 2006 UTC (8 years, 10 months ago) by brun
Original Path: trunk/matrix/src/TMatrixT.cxx
File length: 108626 byte(s)
Diff to previous 14338
From Eddy:
- made more elementary constructors public .
- changed the default for these constructors to NOT create a matrix
object
- added besides AMultB, AMinusB and APlusB

Revision 14338 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Mar 20 22:27:30 2006 UTC (8 years, 10 months ago) by brun
Original Path: trunk/matrix/src/TMatrixT.cxx
File length: 105197 byte(s)
Diff to previous 14336
From Eddy
Fix another compilation problem.

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/TMatrixT.cxx
File length: 105237 byte(s)
Diff to previous 14327
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 14327 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Mar 20 20:13:43 2006 UTC (8 years, 10 months ago) by brun
Original Path: trunk/matrix/src/TMatrixT.cxx
File length: 105217 byte(s)
Diff to previous 13929
From Eddy,
Added similarity operation between vector v and general dense matrix M:

v * M * v^T

Revision 13929 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Jan 25 18:49:03 2006 UTC (9 years ago) by brun
Original Path: trunk/matrix/src/TMatrixT.cxx
File length: 104102 byte(s)
Diff to previous 13770
From Eddy:
1) Added to LinkDef.h the NormalEqn function from TDecompChol . They
got
    lost in this file during the transition to the templated version of
the matrix library .

2) Replaced in the templated code everywhere references to DB_EPSILON
and DBL_MIN
    by the templated version through <numeric_limits> .

Revision 13770 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Dec 23 19:55:50 2005 UTC (9 years, 1 month ago) by brun
Original Path: trunk/matrix/src/TMatrixT.cxx
File length: 103934 byte(s)
Diff to previous 13767
Do not declare templateClassImp for the R__ALPHA platform

Revision 13767 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Dec 23 07:20:11 2005 UTC (9 years, 1 month ago) by brun
Original Path: trunk/matrix/src/TMatrixT.cxx
File length: 103911 byte(s)
Diff to previous 13761
Attempt to fix compilation problems on Solaris and Alpha

Revision 13761 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Dec 22 13:57:29 2005 UTC (9 years, 1 month ago) by brun
Original Path: trunk/matrix/src/TMatrixT.cxx
File length: 103944 byte(s)
Diff to previous 13758
fix a compilation problem on Solaris/CC

Revision 13758 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Dec 22 09:36:11 2005 UTC (9 years, 1 month ago) by brun
Original Path: trunk/matrix/src/TMatrixT.cxx
File length: 103957 byte(s)
Diff to previous 13756
Fix a compilation problem in TMatrixT<Element>::Determinant

Revision 13756 - (view) (download) (as text) (annotate) - [select for diffs]
Added Thu Dec 22 09:27:57 2005 UTC (9 years, 1 month ago) by brun
Original Path: trunk/matrix/src/TMatrixT.cxx
File length: 103954 byte(s)
Adding missing implementation files for the new templatex matrices

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