14#include <vtkMultiBlockDataSet.h>
16#ifdef TTK_ENABLE_TORCH
20 void makeMatchingVectors(
21 std::vector<std::vector<std::tuple<ftm::idNode, ftm::idNode, double>>>
23 std::vector<mtu::TorchMergeTree<float>> &originsCopy,
24 std::vector<mtu::TorchMergeTree<float>> &originsPrimeCopy,
25 std::vector<std::vector<ttk::ftm::idNode>> &originsMatchingVectorT,
26 std::vector<std::vector<ttk::ftm::idNode>> &invOriginsMatchingVectorT,
28 std::vector<std::vector<std::tuple<ftm::idNode, ftm::idNode, double>>>>
30 std::vector<std::vector<mtu::TorchMergeTree<float>>> &recs,
31 std::vector<std::vector<std::vector<ttk::ftm::idNode>>>
32 &invDataMatchingVectorT,
33 std::vector<std::vector<std::tuple<ftm::idNode, ftm::idNode, double>>>
35 std::vector<std::vector<ttk::ftm::idNode>> &invReconstMatchingVectorT);
38 vtkMultiBlockDataSet *output_data,
39 std::vector<std::vector<mtu::TorchMergeTree<float>>> &recs,
41 std::vector<vtkDataSet *> &treesSegmentation,
42 std::vector<std::vector<double>> &persCorrelationMatrix,
43 std::vector<std::vector<std::vector<ttk::ftm::idNode>>>
44 &invDataMatchingVectorT,
45 std::vector<std::vector<ttk::ftm::idNode>> &invReconstMatchingVectorT,
46 std::vector<std::vector<ttk::ftm::idNode>> &originsMatchingVectorT,
47 std::vector<std::vector<ttk::ftm::idNode>> &originsMatchingVector,
48 std::vector<std::vector<double>> &originsPersPercent,
49 std::vector<std::vector<double>> &originsPersDiff,
50 std::vector<int> &originPersistenceOrder,
51 std::vector<vtkUnstructuredGrid *> &treesNodes,
52 std::vector<std::vector<int>> &treesNodeCorr,
53 std::vector<unsigned int> classId,
55 double mixtureCoefficient,
56 bool isPersistenceDiagram,
57 bool convertToDiagram,
61 vtkMultiBlockDataSet *output_data,
62 std::vector<std::vector<mtu::TorchMergeTree<float>>> &recs,
64 std::vector<vtkDataSet *> &treesSegmentation,
65 std::vector<std::vector<double>> &persCorrelationMatrix,
66 std::vector<std::vector<std::vector<ttk::ftm::idNode>>>
67 &invDataMatchingVectorT,
68 std::vector<std::vector<ttk::ftm::idNode>> &invReconstMatchingVectorT,
69 std::vector<std::vector<ttk::ftm::idNode>> &originsMatchingVectorT,
70 std::vector<std::vector<ttk::ftm::idNode>> &originsMatchingVector,
71 std::vector<std::vector<double>> &originsPersPercent,
72 std::vector<std::vector<double>> &originsPersDiff,
73 std::vector<int> &originPersistenceOrder,
74 std::vector<vtkUnstructuredGrid *> &treesNodes,
75 std::vector<std::vector<int>> &treesNodeCorr,
77 double mixtureCoefficient,
78 bool isPersistenceDiagram,
79 bool convertToDiagram,
82 void makeOriginsOutput(
83 vtkMultiBlockDataSet *output_origins,
84 std::vector<mtu::TorchMergeTree<float>> &originsCopy,
85 std::vector<mtu::TorchMergeTree<float>> &originsPrimeCopy,
86 std::vector<double> &originPersPercent,
87 std::vector<double> &originPersDiff,
88 std::vector<int> &originPersistenceOrder,
89 std::vector<std::vector<ttk::ftm::idNode>> &originsMatchingVector,
90 std::vector<std::vector<double>> &originsPersPercent,
91 std::vector<std::vector<double>> &originsPersDiff,
92 double mixtureCoefficient,
93 bool isPersistenceDiagram,
94 bool convertToDiagram,
97 void makeCoefficientsOutput(
98 vtkMultiBlockDataSet *output_coef,
99 std::vector<std::vector<torch::Tensor>> &allAlphas,
100 std::vector<std::vector<torch::Tensor>> &allScaledAlphas,
101 std::vector<std::vector<torch::Tensor>> &allActAlphas,
102 std::vector<std::vector<torch::Tensor>> &allActScaledAlphas,
103 std::vector<unsigned int> &clusterAsgn,
104 std::vector<std::vector<mtu::TorchMergeTree<float>>> &recs,
131 vtkUnstructuredGrid *treeNodes,
132 std::vector<int> &treeNodeCorr,
133 vtkDataSet *treeSegmentation,
138 std::vector<std::tuple<std::string, std::vector<int>>> &customIntArrays,
139 std::vector<std::tuple<std::string, std::vector<double>>>
141 bool outputSegmentation,
142 double mixtureCoefficient,
143 bool isPersistenceDiagram,
144 bool convertToDiagram,
167 std::vector<vtkUnstructuredGrid *> &treesNodesT,
168 std::vector<std::vector<int>> &treesNodeCorr,
169 std::vector<vtkDataSet *> &treesSegmentationT,
171 std::vector<std::vector<std::tuple<std::string, std::vector<int>>>>
173 std::vector<std::vector<std::tuple<std::string, std::vector<double>>>>
175 double mixtureCoefficient,
176 bool isPersistenceDiagram,
177 bool convertToDiagram,
199 std::vector<vtkUnstructuredGrid *> &treesNodesT,
200 std::vector<std::vector<int>> &treesNodeCorr,
202 std::vector<std::vector<std::tuple<std::string, std::vector<int>>>>
204 std::vector<std::vector<std::tuple<std::string, std::vector<double>>>>
206 double mixtureCoefficient,
207 bool isPersistenceDiagram,
208 bool convertToDiagram,
228 std::vector<std::vector<std::tuple<std::string, std::vector<int>>>>
230 std::vector<std::vector<std::tuple<std::string, std::vector<double>>>>
232 double mixtureCoefficient,
233 bool isPersistenceDiagram,
234 bool convertToDiagram,
251 double mixtureCoefficient,
252 bool isPersistenceDiagram,
253 bool convertToDiagram,
284 void computeTrackingInformation(
285 std::vector<mtu::TorchMergeTree<float>> &origins,
286 std::vector<mtu::TorchMergeTree<float>> &originsPrime,
287 std::vector<std::vector<ttk::ftm::idNode>> &originsMatchingVectorT,
288 std::vector<std::vector<ttk::ftm::idNode>> &invOriginsMatchingVectorT,
289 bool isPersistenceDiagram,
290 std::vector<std::vector<ttk::ftm::idNode>> &originsMatchingVector,
291 std::vector<std::vector<double>> &originsPersPercent,
292 std::vector<std::vector<double>> &originsPersDiff,
293 std::vector<double> &originPersPercent,
294 std::vector<double> &originPersDiff,
295 std::vector<int> &originPersistenceOrder);
323 void computeCustomArrays(
324 std::vector<std::vector<mtu::TorchMergeTree<float>>> &recs,
325 std::vector<std::vector<double>> &persCorrelationMatrix,
326 std::vector<std::vector<std::vector<ttk::ftm::idNode>>>
327 &invDataMatchingVectorT,
328 std::vector<std::vector<ttk::ftm::idNode>> &invReconstMatchingVectorT,
329 std::vector<std::vector<ttk::ftm::idNode>> &originsMatchingVector,
330 std::vector<std::vector<ttk::ftm::idNode>> &originsMatchingVectorT,
331 std::vector<std::vector<double>> &originsPersPercent,
332 std::vector<std::vector<double>> &originPersDiff,
333 std::vector<int> &originPersistenceOrder,
336 std::vector<std::vector<std::tuple<std::string, std::vector<int>>>>
338 std::vector<std::vector<std::tuple<std::string, std::vector<double>>>>
339 &customDoubleArrays);
TTK base package defining the standard types.