VTK
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  -------------------------------------------------------------------------*/
50 #ifndef __vtkPCAStatistics_h
51 #define __vtkPCAStatistics_h
52 
54 
55 class vtkDoubleArray;
56 
58 {
59 public:
61  virtual void PrintSelf( ostream& os, vtkIndent indent );
62  static vtkPCAStatistics* New();
63 
64  //BTX
66 
68  {
69  NONE,
73  NUM_NORMALIZATION_SCHEMES
74  };
76 
78 
81  {
85  NUM_BASIS_SCHEMES
86  };
87  //ETX
89 
91 
109  vtkSetMacro(NormalizationScheme,int);
110  vtkGetMacro(NormalizationScheme,int);
111  virtual void SetNormalizationSchemeByName( const char* sname );
112  virtual const char* GetNormalizationSchemeName( int scheme );
114 
116 
134  virtual vtkTable* GetSpecifiedNormalization();
135  virtual void SetSpecifiedNormalization( vtkTable* );
137 
139 
144  void GetEigenvalues(int request, vtkDoubleArray*);
145  void GetEigenvalues(vtkDoubleArray*);
146  double GetEigenvalue(int request, int i);
147  double GetEigenvalue(int i);
149 
150 
152 
157  void GetEigenvectors(int request, vtkDoubleArray* eigenvectors);
158  void GetEigenvectors(vtkDoubleArray* eigenvectors);
159  void GetEigenvector(int i, vtkDoubleArray* eigenvector);
160  void GetEigenvector(int request, int i, vtkDoubleArray* eigenvector);
162 
164 
184  vtkSetMacro(BasisScheme,int);
185  vtkGetMacro(BasisScheme,int);
186  virtual const char* GetBasisSchemeName( int schemeIndex );
187  virtual void SetBasisSchemeByName( const char* schemeName );
189 
191 
194  vtkSetMacro(FixedBasisSize,int);
195  vtkGetMacro(FixedBasisSize,int);
197 
199 
203  vtkSetClampMacro(FixedBasisEnergy,double,0.,1.);
204  vtkGetMacro(FixedBasisEnergy,double);
206 
208 
211  virtual bool SetParameter( const char* parameter,
212  int index,
213  vtkVariant value );
215 
216 protected:
218  ~vtkPCAStatistics();
219 
223  virtual int FillInputPortInformation( int port, vtkInformation* info );
224 
226  virtual void Derive( vtkMultiBlockDataSet* inMeta );
227 
229 
230  virtual void Test( vtkTable*,
232  vtkTable* );
234 
236 
237  virtual void Assess( vtkTable*,
239  vtkTable* );
241 
242  //BTX
244 
245  virtual void SelectAssessFunctor( vtkTable* inData,
246  vtkDataObject* inMeta,
247  vtkStringArray* rowNames,
248  AssessFunctor*& dfunc );
249  //ETX
251 
256 
257  //BTX
258  static const char* BasisSchemeEnumNames[NUM_BASIS_SCHEMES + 1];
259  static const char* NormalizationSchemeEnumNames[NUM_NORMALIZATION_SCHEMES + 1];
260  //ETX
261 
262 private:
263  vtkPCAStatistics( const vtkPCAStatistics& ); // Not implemented
264  void operator = ( const vtkPCAStatistics& ); // Not implemented
265 };
266 
267 #endif // __vtkPCAStatistics_h
268 
virtual void PrintSelf(ostream &os, vtkIndent indent)
Normalize cov(i,j) by sqrt(V(i)*V(j)) where V is supplied by the user.
Store vtkAlgorithm input/output information.
a vtkAbstractArray subclass for strings
Normalize cov(i,j) by V(i,j) where V is supplied by the user.
A atomic type representing the union of many types.
Definition: vtkVariant.h:72
dynamic, self-adjusting array of double
A class for linear correlation.
Use the first N entries in the basis matrix.
Use all entries in the basis matrix.
a simple class to control print indentation
Definition: vtkIndent.h:37
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 principal component analysis.
A table, which contains similar-typed columns of data.
Definition: vtkTable.h:66
virtual bool SetParameter(const char *parameter, int index, vtkVariant value)
#define VTK_INFOVIS_EXPORT
Normalize cov(i,j) by sqrt(cov(i,i)*cov(j,j)).
Composite dataset that organizes datasets into blocks.
The covariance matrix should be used as computed.
virtual void Test(vtkTable *, vtkMultiBlockDataSet *, vtkTable *)
general representation of visualization data
Definition: vtkDataObject.h:70
virtual void Derive(vtkMultiBlockDataSet *)
Use consecutive basis matrix entries whose energies sum to at least T.