#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)  
 
};
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.