VTK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
vtkPCAStatistics.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3 Program: Visualization Toolkit
4 Module: vtkPCAStatistics.h
5 
6 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7 All rights reserved.
8 See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10 This software is distributed WITHOUT ANY WARRANTY; without even
11 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12 PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
15 /*-------------------------------------------------------------------------
16  Copyright 2010 Sandia Corporation.
17  Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
18  the U.S. Government retains certain rights in this software.
19  -------------------------------------------------------------------------*/
49 #ifndef __vtkPCAStatistics_h
50 #define __vtkPCAStatistics_h
51 
52 #include "vtkFiltersStatisticsModule.h" // For export macro
54 
55 class vtkDoubleArray;
56 class vtkIdTypeArray;
57 
58 class VTKFILTERSSTATISTICS_EXPORT vtkPCAStatistics : public vtkMultiCorrelativeStatistics
59 {
60 public:
62  virtual void PrintSelf( ostream& os, vtkIndent indent );
63  static vtkPCAStatistics* New();
64 
65  //BTX
67 
69  {
70  NONE,
74  NUM_NORMALIZATION_SCHEMES
75  };
77 
79 
82  {
86  NUM_BASIS_SCHEMES
87  };
88  //ETX
90 
92 
110  vtkSetMacro(NormalizationScheme,int);
111  vtkGetMacro(NormalizationScheme,int);
112  virtual void SetNormalizationSchemeByName( const char* sname );
113  virtual const char* GetNormalizationSchemeName( int scheme );
115 
117 
137  virtual vtkTable* GetSpecifiedNormalization();
138  virtual void SetSpecifiedNormalization( vtkTable* );
140 
142 
148  void GetEigenvalues(int request, vtkDoubleArray*);
149  void GetEigenvalues(vtkDoubleArray*);
150  double GetEigenvalue(int request, int i);
151  double GetEigenvalue(int i);
153 
155 
163  void GetEigenvectors(int request, vtkDoubleArray* eigenvectors);
164  void GetEigenvectors(vtkDoubleArray* eigenvectors);
165  void GetEigenvector(int i, vtkDoubleArray* eigenvector);
166  void GetEigenvector(int request, int i, vtkDoubleArray* eigenvector);
168 
170 
190  vtkSetMacro(BasisScheme,int);
191  vtkGetMacro(BasisScheme,int);
192  virtual const char* GetBasisSchemeName( int schemeIndex );
193  virtual void SetBasisSchemeByName( const char* schemeName );
195 
197 
200  vtkSetMacro(FixedBasisSize,int);
201  vtkGetMacro(FixedBasisSize,int);
203 
205 
209  vtkSetClampMacro(FixedBasisEnergy,double,0.,1.);
210  vtkGetMacro(FixedBasisEnergy,double);
212 
214 
217  virtual bool SetParameter( const char* parameter,
218  int index,
219  vtkVariant value );
221 
222 protected:
224  ~vtkPCAStatistics();
225 
229  virtual int FillInputPortInformation( int port, vtkInformation* info );
230 
232  virtual void Derive( vtkMultiBlockDataSet* );
233 
235 
236  virtual void Test( vtkTable*,
237  vtkMultiBlockDataSet*,
238  vtkTable* );
240 
242 
243  virtual void Assess( vtkTable*,
244  vtkMultiBlockDataSet*,
245  vtkTable* );
246  //BTX
248 
250  virtual vtkDoubleArray* CalculatePValues(vtkIdTypeArray*, vtkDoubleArray*);
251 
252  //BTX
254 
255  virtual void SelectAssessFunctor( vtkTable* inData,
256  vtkDataObject* inMeta,
257  vtkStringArray* rowNames,
258  AssessFunctor*& dfunc );
259  //ETX
261 
266 
267  //BTX
268  static const char* BasisSchemeEnumNames[NUM_BASIS_SCHEMES + 1];
269  static const char* NormalizationSchemeEnumNames[NUM_NORMALIZATION_SCHEMES + 1];
270  //ETX
271 
272 private:
273  vtkPCAStatistics( const vtkPCAStatistics& ); // Not implemented
274  void operator = ( const vtkPCAStatistics& ); // Not implemented
275 };
276 
277 #endif // __vtkPCAStatistics_h
278 
virtual void PrintSelf(ostream &os, vtkIndent indent)
Normalize cov(i,j) by sqrt(V(i)*V(j)) where V is supplied by the user.
Normalize cov(i,j) by V(i,j) where V is supplied by the user.
A class for multivariate linear correlation.
Use the first N entries in the basis matrix.
Use all entries in the basis matrix.
virtual void SelectAssessFunctor(vtkTable *inData, vtkDataObject *inMeta, vtkStringArray *rowNames, AssessFunctor *&dfunc)
static vtkMultiCorrelativeStatistics * New()
virtual void Assess(vtkTable *, vtkMultiBlockDataSet *, vtkTable *)
virtual int FillInputPortInformation(int port, vtkInformation *info)
A class for multivariate principal component analysis.
virtual bool SetParameter(const char *parameter, int index, vtkVariant value)
Normalize cov(i,j) by sqrt(cov(i,i)*cov(j,j)).
The covariance matrix should be used as computed.
virtual void Test(vtkTable *, vtkMultiBlockDataSet *, vtkTable *)
virtual void Derive(vtkMultiBlockDataSet *)
Use consecutive basis matrix entries whose energies sum to at least T.