VTK  9.3.1
vtkPKMeansStatistics.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2 // SPDX-FileCopyrightText: Copyright 2011 Sandia Corporation
3 // SPDX-License-Identifier: LicenseRef-BSD-3-Clause-Sandia-USGov
17 #ifndef vtkPKMeansStatistics_h
18 #define vtkPKMeansStatistics_h
19 
20 #include "vtkFiltersParallelStatisticsModule.h" // For export macro
21 #include "vtkKMeansStatistics.h"
22 
23 VTK_ABI_NAMESPACE_BEGIN
25 class vtkCommunicator;
26 
27 class VTKFILTERSPARALLELSTATISTICS_EXPORT vtkPKMeansStatistics : public vtkKMeansStatistics
28 {
29 public:
30  static vtkPKMeansStatistics* New();
32  void PrintSelf(ostream& os, vtkIndent indent) override;
33 
35 
39  virtual void SetController(vtkMultiProcessController*);
40  vtkGetObjectMacro(Controller, vtkMultiProcessController);
42 
46  void UpdateClusterCenters(vtkTable* newClusterElements, vtkTable* curClusterElements,
47  vtkIdTypeArray* numMembershipChanges, vtkIdTypeArray* numElementsInCluster,
48  vtkDoubleArray* error, vtkIdTypeArray* startRunID, vtkIdTypeArray* endRunID,
49  vtkIntArray* computeRun) override;
50 
54  vtkIdType GetTotalNumberOfObservations(vtkIdType numObservations) override;
55 
59  void CreateInitialClusterCenters(vtkIdType numToAllocate, vtkIdTypeArray* numberOfClusters,
60  vtkTable* inData, vtkTable* curClusterElements, vtkTable* newClusterElements) override;
61 
62 protected:
64  ~vtkPKMeansStatistics() override;
65 
67 
68 private:
70  void operator=(const vtkPKMeansStatistics&) = delete;
71 };
72 
73 VTK_ABI_NAMESPACE_END
74 #endif
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
dynamic, self-adjusting array of vtkIdType
int vtkIdType
Definition: vtkType.h:315
dynamic, self-adjusting array of double
virtual void UpdateClusterCenters(vtkTable *newClusterElements, vtkTable *curClusterElements, vtkIdTypeArray *numMembershipChanges, vtkIdTypeArray *numDataElementsInCluster, vtkDoubleArray *error, vtkIdTypeArray *startRunID, vtkIdTypeArray *endRunID, vtkIntArray *computeRun)
Subroutine to update new cluster centers from the old centers.
dynamic, self-adjusting array of int
Definition: vtkIntArray.h:34
a simple class to control print indentation
Definition: vtkIndent.h:28
A class for KMeans clustering.
virtual vtkIdType GetTotalNumberOfObservations(vtkIdType numObservations)
Subroutine to get the total number of observations.
vtkMultiProcessController * Controller
A table, which contains similar-typed columns of data.
Definition: vtkTable.h:58
virtual void CreateInitialClusterCenters(vtkIdType numToAllocate, vtkIdTypeArray *numberOfClusters, vtkTable *inData, vtkTable *curClusterElements, vtkTable *newClusterElements)
Subroutine to initialize cluster centerss if not provided by the user.
Used to send/receive messages in a multiprocess environment.
static vtkKMeansStatistics * New()
Multiprocessing communication superclass.