Log of /trunk/hist/hist/inc/TPrincipal.h
Parent Directory
Revision
15134 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue May 23 04:47:42 2006 UTC (8 years, 8 months ago) by
brun
Original Path:
trunk/hist/inc/TPrincipal.h
File length: 3635 byte(s)
Diff to
previous 15072
From Federico Carminati:
"I have implemented all copy and equal operators needed to silence all
warnings in AliRoot, as requested. I have implemented shallow copies as
would do the default operators synthetized by the compiler.
Most operators are protected. If users complain, you just have to move
them into the public area, but class derivation is of course supported.
It has been a terrible job, I have modified 278 files, but the changes
are backward compabile, and this goes a long way to permitting user to
use the effc++ flag with root headers."
Revision
8013 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Sun Jan 25 20:33:32 2004 UTC (11 years ago) by
brun
Original Path:
trunk/hist/inc/TPrincipal.h
File length: 2999 byte(s)
Diff to
previous 3578
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.
Revision
3578 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Jan 4 08:07:38 2002 UTC (13 years ago) by
brun
Original Path:
trunk/hist/inc/TPrincipal.h
File length: 2921 byte(s)
Diff to
previous 3326
Implement the following improvements by Eddy A.J.M. Offermann (Renaissance Technologies Corp.)
Somebody at Renaissance asked me how to get eigenvectors/values with ROOT.
I knew of the existance of the proper routines in TPrincipal by Christian.
However, no convenient way existed to apply them to an existing matrix.
So I did the following:
1) Took the routines to Tridiagonalize, Calculate eigenvectors/values
and Sort and inserted them into TMatrix(D)
2) Have TPrincipal use the TMatrixD method EigenVector
3) Have the three routines mentioned above directly access the TMatrix/
TVector data member fElements, so no having the go through the
"()" operator (remember that TMatrix stores Fortran-wise)
4) Have the routine index starting at 0 instead of 1 (Still puzzles me
how Cambridge-Press let them get away with it in Num. Recipes)
5) Change TPrincipal so that it also starts indexing at 0, changed also
the tex/html comments.
6) Changed TVector(D).h so that TMatrix is also a friend (TVector was
already a friend of TMatrix)
7) Checked that principal.C in tutorials still does its thing.
What is still lacking:
1) Support for non-symmetrical matrices.
I might tackle this by importing Single-Value-Decomposition routines.
Although maybe not the most efficient solution, it does have the
advantage of also making those routines available.
2) Support for returning/calculating only those eigenvectors
that belong to the largest eigenvalues.
Revision
3326 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Nov 29 08:27:39 2001 UTC (13 years, 1 month ago) by
brun
Original Path:
trunk/hist/inc/TPrincipal.h
File length: 3014 byte(s)
Diff to
previous 1719
Christion Holm Christensen has made the following improvements:
I've just realised that I've done something extreemly stupid in
TPrincipal::MakeHistograms which can make one waste enourmous amounts
of space and time. The problem was, that the method looped over the
user data wether or not you actually wanted to plot it or not, thereby
wasting a lot of time. Also, I allocated arrays via new in each
iteration, which is ofcourse a waste of time, so I moved that outside
the loop and added a zeroing loop instead.
Further, I added the option 'd' to the CTOR, so that one may opt to
_not_ store the input data. This reguired a new data member, and
hence a version bumb. The default is to store the input data. I
think this is a useful option for some, since the data arrays can
become quite large.
Thirdly, I modified the histogram names to be 0 padded upto 3 digits.
That is, the format is "%03d" rather than "%d", since that allows for
better overview in the browser.
Revision
1205 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Dec 13 15:13:57 2000 UTC (14 years, 1 month ago) by
brun
Original Path:
trunk/hist/inc/TPrincipal.h
File length: 2921 byte(s)
Diff to
previous 568
W A R N I N G !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
==================================================================
A very long list of changes in this pre-release of version 3.00.
We have modified the signature of many functions (in particular TObject)
to introduce more constness in the system.
You must change your code if your class derives from TObject and uses
one of the modified functions such as ls, Print, Compare, Hash, etc.
The modified functions in TObject have the following signature:
virtual TObject *Clone() const;
virtual Int_t Compare(const TObject *obj) const;
virtual void Delete(Option_t *option=""); // *MENU*
virtual void DrawClass() const; // *MENU*
virtual void DrawClone(Option_t *option="") const; // *MENU*
virtual void Dump() const; // *MENU*
virtual TObject *FindObject(const TObject *obj) const;
virtual char *GetObjectInfo(Int_t px, Int_t py) const;
virtual ULong_t Hash() const;
virtual void Inspect() const; // *MENU*
virtual Bool_t IsEqual(const TObject *obj) const;
virtual void ls(Option_t *option="") const;
virtual void Print(Option_t *option="") const;
A similar operation has been done with classes such as TH1, TVirtualPad,
TTree, etc.
Revision
568 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Sep 5 09:21:24 2000 UTC (14 years, 4 months ago) by
brun
Original Path:
trunk/hist/inc/TPrincipal.h
File length: 2909 byte(s)
Diff to
previous 488
The following headers and classes have been modified to take into account;
- the new signature of IsFolder (now const)
- the new TObject::FindObject
- the fact that the static functions of TObject have been moved to TROOT.
Revision
459 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Added
Tue Aug 15 07:48:50 2000 UTC (14 years, 5 months ago) by
brun
Original Path:
trunk/hist/inc/TPrincipal.h
File length: 2976 byte(s)
Introduction of a new class TPrincipal implemented by Christian Holm Cristensen.
The Principal Components Analysis class
=======================================
In many applications of various fields of research, the treatment of
large amounts of data requires powerful techniques capable of rapid
data reduction and analysis. Usually, the quantities most
conveniently measured by the experimentalist, are not necessarily the
most significant for classification and analysis of the data. It is
then useful to have a way of selecting an optimal set of variables
necessary for the recognition process and reducing the dimensionality
of the problem, resulting in an easier classification procedure.
TPrincipal is the implementation of one such method of
feature selection, namely the principal components analysis.
This multidimensional technique is well known in the field of pattern
recognition and and its use in Particle Physics has been documented
elsewhere (cf. H. Wind, <I>Function Parameterization</I>, CERN
72-21).
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.