00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00037 #ifndef __vtkPContingencyStatistics_h
00038 #define __vtkPContingencyStatistics_h
00039
00040 #include "vtkContingencyStatistics.h"
00041
00042
00043 #include <vtkstd/vector>
00044
00045
00046 class vtkMultiProcessController;
00047
00048 class VTK_INFOVIS_EXPORT vtkPContingencyStatistics : public vtkContingencyStatistics
00049 {
00050 public:
00051 static vtkPContingencyStatistics* New();
00052 vtkTypeMacro(vtkPContingencyStatistics, vtkContingencyStatistics);
00053 void PrintSelf(ostream& os, vtkIndent indent);
00054
00056
00058 virtual void SetController(vtkMultiProcessController*);
00059 vtkGetObjectMacro(Controller, vtkMultiProcessController);
00061
00063
00064 virtual void Learn( vtkTable* inData,
00065 vtkTable* inParameters,
00066 vtkDataObject* outMeta );
00068
00069 protected:
00070 vtkPContingencyStatistics();
00071 ~vtkPContingencyStatistics();
00072
00073
00075
00078 bool Pack( vtkTable* contingencyTab,
00079 vtkStdString& xyPacked,
00080 vtkstd::vector<vtkIdType>& kcValues );
00082
00084
00085 bool Reduce( vtkIdType& xySizeTotal,
00086 char* xyPacked_g,
00087 vtkStdString& xyPacked_l,
00088 vtkIdType& kcSizeTotal,
00089 vtkIdType* kcValues_g,
00090 vtkstd::vector<vtkIdType>& kcValues_l );
00092
00094
00095 bool Broadcast( vtkIdType xySizeTotal,
00096 vtkStdString& xyPacked,
00097 vtkstd::vector<vtkStdString>& xyValues,
00098 vtkIdType kcSizeTotal,
00099 vtkstd::vector<vtkIdType>& kcValues,
00100 vtkIdType reduceProc );
00102
00103
00104 vtkMultiProcessController* Controller;
00105 private:
00106 vtkPContingencyStatistics(const vtkPContingencyStatistics&);
00107 void operator=(const vtkPContingencyStatistics&);
00108 };
00109
00110 #endif
00111