/usr/include/vtk-6.3/vtkHighestDensityRegionsStatistics.h is in libvtk6-dev 6.3.0+dfsg1-5.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 | /*=========================================================================
Program: Visualization Toolkit
Module: vtkHighestDensityRegionsStatistics.h
Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
All rights reserved.
See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
This software is distributed WITHOUT ANY WARRANTY; without even
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the above copyright notice for more information.
=========================================================================*/
// .NAME vtkHighestDensityRegionsStatistics - Compute a random vector of
// density f from input observations points. f is computed using a smooth
// kernel method.
//
// .SECTION Description
// Given a selection of pairs of columns of interest, this class provides the
// following functionalities, depending on the chosen execution options:
// * Learn: calculates density estimator f of a random vector using a smooth
// gaussian kernel. The output metadata on port OUTPUT_MODEL is a multiblock
// dataset containing at one vtkTable holding three columns which are for the
// first columns the input columns of interest and for the last columns the
// density estimators of each input pair of columns of interest.
// * Derive: calculate normalized (as a percentage) quantiles coming from
// Learn output. The second block of the multibloc dataset contains a
// vtkTable holding some pairs of columns which are for the second one the
// quantiles ordered from the stronger to the lower and for the first one
// the correspondand quantile index.
// * Assess: not implemented.
// * Test: not implemented.
#ifndef vtkHighestDensityRegionsStatistics_h
#define vtkHighestDensityRegionsStatistics_h
#include "vtkFiltersStatisticsModule.h" // For export macro
#include "vtkStatisticsAlgorithm.h"
class vtkMultiBlockDataSet;
class vtkVariant;
class VTKFILTERSSTATISTICS_EXPORT vtkHighestDensityRegionsStatistics :
public vtkStatisticsAlgorithm
{
public:
vtkTypeMacro(vtkHighestDensityRegionsStatistics, vtkStatisticsAlgorithm);
virtual void PrintSelf( ostream& os, vtkIndent indent );
static vtkHighestDensityRegionsStatistics* New();
// Description: (Not implemented)
// Given a collection of models, calculate aggregate model
virtual void Aggregate(vtkDataObjectCollection*,
vtkMultiBlockDataSet*) { return; }
// Description:
// H is a positive matrix that defines the smooth direction.
// In a classical HDR, we don't set a specific smooth direction for the
// H matrix parameter (SmoothHC1, SmoothHC2). That mean H will be in a
// diagonal form and equal to sigma * Id.
void SetSigma(double sigma);
// Description:
// Get Smooth H matrix parameter of the HDR.
vtkGetVectorMacro(SmoothHC1, double, 2);
vtkSetVectorMacro(SmoothHC1, double, 2);
vtkGetVectorMacro(SmoothHC2, double, 2);
vtkSetVectorMacro(SmoothHC2, double, 2);
// Description:
// Fill outDensity with density vector that is computed from
// inObservations values. This method uses a Gaussian kernel.
// For n observations and with X an observation point:
// f(X) = (1 / n) * Sum(KH(X -Xi)) for (i = 1 to n).
// Look ComputeSmoothGaussianKernel for KH kernel definition.
double ComputeHDR(vtkDataArray *inObservations, vtkDataArray *outDensity);
// Description:
// Fill outDensity with density vector defined by inPOI and computed from
// the inObs values. This method uses a Gaussian kernel.
// For n observations and with X an observation point:
// f(X) = (1 / n) * Sum(KH(X -Xi)) for (i = 1 to n).
// Look ComputeSmoothGaussianKernel for KH kernel definition.
double ComputeHDR(vtkDataArray *inObs, vtkDataArray* inPOI,
vtkDataArray *outDensity);
protected:
vtkHighestDensityRegionsStatistics();
~vtkHighestDensityRegionsStatistics();
// Description:
// Execute the calculations required by the Learn option.
virtual void Learn(vtkTable*,
vtkTable*,
vtkMultiBlockDataSet*);
// Description:
// Execute the calculations required by the Derive option.
virtual void Derive(vtkMultiBlockDataSet*);
// Description: (Not implemented)
// Execute the calculations required by the Assess option.
virtual void Assess(vtkTable*,
vtkMultiBlockDataSet*,
vtkTable*) { return; }
// Description: (Not implemented)
// Execute the calculations required by the Test option.
virtual void Test(vtkTable*,
vtkMultiBlockDataSet*,
vtkTable*) { return; }
//BTX
// Description: (Not implemented)
// Provide the appropriate assessment functor.
virtual void SelectAssessFunctor(vtkTable*,
vtkDataObject*,
vtkStringArray*,
AssessFunctor*&) { return; }
//ETX
// Description:
// Store the smooth matrix parameter H. Specify a smooth direction
// for the Gaussian kernel.
double SmoothHC1[2];
double SmoothHC2[2];
// Description:
// Store the number of requested columns pair computed by learn method.
vtkIdType NumberOfRequestedColumnsPair;
private :
// Description:
// Helper that returns a smooth gaussian kernel of a vector of dimension two,
// using its coordinates. For X = [khx, khy] and H a positive matrix of dim 2,
// KH(X) = sqrt(det(H)) * K((1 / sqrt(H)) * X).
// Look ComputeStandardGaussianKernel for the K kernel definition.
double ComputeSmoothGaussianKernel(int dimension, double khx, double khy);
// Description:
// Helper that returns a standard gaussian kernel of a vector of dimension two,
// using its coordinates. For X = [kx, ky],
// K(X) = ( 1 / 2 * PI) * exp(-sqrt<X,X>).
double ComputeStandardGaussianKernel(int dimension, double kx, double ky);
private:
vtkHighestDensityRegionsStatistics(const vtkHighestDensityRegionsStatistics&); // Not implemented
void operator = (const vtkHighestDensityRegionsStatistics&); // Not implemented
};
#endif
|