VTK  9.3.20240419
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:
32  void PrintSelf(ostream& os, vtkIndent indent) override;
33 
35 
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 
55 
59  void CreateInitialClusterCenters(vtkIdType numToAllocate, vtkIdTypeArray* numberOfClusters,
60  vtkTable* inData, vtkTable* curClusterElements, vtkTable* newClusterElements) override;
61 
62 protected:
65 
67 
68 private:
70  void operator=(const vtkPKMeansStatistics&) = delete;
71 };
72 
73 VTK_ABI_NAMESPACE_END
74 #endif
Used to send/receive messages in a multiprocess environment.
dynamic, self-adjusting array of double
dynamic, self-adjusting array of vtkIdType
a simple class to control print indentation
Definition: vtkIndent.h:108
dynamic, self-adjusting array of int
Definition: vtkIntArray.h:144
A class for KMeans clustering.
Multiprocessing communication superclass.
static vtkPKMeansStatistics * New()
vtkIdType GetTotalNumberOfObservations(vtkIdType numObservations) override
Subroutine to get the total number of data objects.
void UpdateClusterCenters(vtkTable *newClusterElements, vtkTable *curClusterElements, vtkIdTypeArray *numMembershipChanges, vtkIdTypeArray *numElementsInCluster, vtkDoubleArray *error, vtkIdTypeArray *startRunID, vtkIdTypeArray *endRunID, vtkIntArray *computeRun) override
Subroutine to update new cluster centers from the old centers.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
void CreateInitialClusterCenters(vtkIdType numToAllocate, vtkIdTypeArray *numberOfClusters, vtkTable *inData, vtkTable *curClusterElements, vtkTable *newClusterElements) override
Subroutine to initialize cluster centerss if not provided by the user.
~vtkPKMeansStatistics() override
vtkMultiProcessController * Controller
virtual void SetController(vtkMultiProcessController *)
Get/Set the multiprocess controller.
A table, which contains similar-typed columns of data.
Definition: vtkTable.h:168
int vtkIdType
Definition: vtkType.h:315