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 vtkMultiBlockDataSet;
00047 class vtkMultiProcessController;
00048
00049 class VTK_INFOVIS_EXPORT vtkPContingencyStatistics : public vtkContingencyStatistics
00050 {
00051 public:
00052 static vtkPContingencyStatistics* New();
00053 vtkTypeMacro(vtkPContingencyStatistics, vtkContingencyStatistics);
00054 void PrintSelf(ostream& os, vtkIndent indent);
00055
00057
00059 virtual void SetController(vtkMultiProcessController*);
00060 vtkGetObjectMacro(Controller, vtkMultiProcessController);
00062
00064
00065 virtual void Learn( vtkTable* inData,
00066 vtkTable* inParameters,
00067 vtkMultiBlockDataSet* outMeta );
00069
00070 protected:
00071 vtkPContingencyStatistics();
00072 ~vtkPContingencyStatistics();
00073
00074
00076
00079 bool Pack( vtkTable* contingencyTab,
00080 vtkStdString& xyPacked,
00081 vtkstd::vector<vtkIdType>& kcValues );
00083
00085
00086 bool Reduce( vtkIdType& xySizeTotal,
00087 char* xyPacked_g,
00088 vtkStdString& xyPacked_l,
00089 vtkIdType& kcSizeTotal,
00090 vtkIdType* kcValues_g,
00091 vtkstd::vector<vtkIdType>& kcValues_l );
00093
00095
00096 bool Broadcast( vtkIdType xySizeTotal,
00097 vtkStdString& xyPacked,
00098 vtkstd::vector<vtkStdString>& xyValues,
00099 vtkIdType kcSizeTotal,
00100 vtkstd::vector<vtkIdType>& kcValues,
00101 vtkIdType reduceProc );
00102
00104
00105 vtkMultiProcessController* Controller;
00106 private:
00107 vtkPContingencyStatistics(const vtkPContingencyStatistics&);
00108 void operator=(const vtkPContingencyStatistics&);
00109 };
00110
00111 #endif
00112