#ifndef ROOT_TRobustEstimator
#define ROOT_TRobustEstimator
#include "TArrayI.h"
#include "TMatrixDSym.h"
#include "TMatrixDSymEigen.h"
class TRobustEstimator : public TObject {
protected:
Int_t fNvar;
Int_t fH;
Int_t fN;
Int_t fVarTemp;
Int_t fVecTemp;
Int_t fExact;
TVectorD fMean;
TMatrixDSym fCovariance;
TMatrixDSym fInvcovariance;
TMatrixDSym fCorrelation;
TVectorD fRd;
TVectorD fSd;
TArrayI fOut;
TVectorD fHyperplane;
TMatrixD fData;
void AddToSscp(TMatrixD &sscp, TVectorD &vec);
void ClearSscp(TMatrixD &sscp);
void Classic();
void Covar(TMatrixD &sscp, TVectorD &m, TMatrixDSym &cov, TVectorD &sd, Int_t nvec);
void Correl();
void CreateSubset(Int_t ntotal, Int_t htotal, Int_t p, Int_t *index, TMatrixD &data,
TMatrixD &sscp, Double_t *ndist);
void CreateOrtSubset(TMatrixD &dat, Int_t *index, Int_t hmerged, Int_t nmerged, TMatrixD &sscp, Double_t *ndist);
Double_t CStep(Int_t ntotal, Int_t htotal, Int_t *index, TMatrixD &data, TMatrixD &sscp, Double_t *ndist);
Int_t Exact(Double_t *ndist);
Int_t Exact2(TMatrixD &mstockbig, TMatrixD &cstockbig, TMatrixD &hyperplane,
Double_t *deti, Int_t nbest,Int_t kgroup,
TMatrixD &sscp, Double_t *ndist);
Int_t Partition(Int_t nmini, Int_t *indsubdat);
Int_t RDist(TMatrixD &sscp);
void RDraw(Int_t *subdat, Int_t ngroup, Int_t *indsubdat);
Double_t KOrdStat(Int_t ntotal, Double_t *arr, Int_t k, Int_t *work);
public:
TRobustEstimator();
TRobustEstimator(Int_t nvectors, Int_t nvariables, Int_t hh=0);
virtual ~TRobustEstimator(){;}
void AddColumn(Double_t *col);
void AddRow(Double_t *row);
void Evaluate();
void EvaluateUni(Int_t nvectors, Double_t *data, Double_t &mean, Double_t &sigma, Int_t hh=0);
Int_t GetBDPoint();
void GetCovariance(TMatrixDSym &matr);
const TMatrixDSym* GetCovariance() const{return &fCovariance;}
void GetCorrelation(TMatrixDSym &matr);
const TMatrixDSym* GetCorrelation() const{return &fCorrelation;}
void GetHyperplane(TVectorD &vec);
const TVectorD* GetHyperplane() const;
Int_t GetNHyp() {return fExact;}
void GetMean(TVectorD &means);
const TVectorD* GetMean() const {return &fMean;}
void GetRDistances(TVectorD &rdist);
const TVectorD* GetRDistances() const {return &fRd;}
Int_t GetNumberObservations() const {return fN;}
Int_t GetNvar() const {return fNvar;}
const TArrayI* GetOuliers() const{return &fOut;}
Int_t GetNOut();
Double_t GetChiQuant(Int_t i) const;
ClassDef(TRobustEstimator,1)
};
#endif
Last change: Tue Dec 9 17:06:49 2008
Last generated: 2008-12-09 17:06
This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.