49 const std::vector<const TIn *> &inputs,
50 const size_t nPoints)
const {
52 const size_t nInputs = inputs.size();
54 if(output.size() != nInputs)
56 " When using the raw version of execute in LDistanceMatrix module, the "
58 "initialized, with the same number of lines as the number of inputs.");
59 for(
size_t i = 0; i < nInputs; i++)
60 if(output[i] ==
nullptr)
61 this->
printErr(
" When using the raw version of execute in "
62 "LDistanceMatrix module, the output must be "
63 "fully initialized: each line pointer must not be NULL.");
67 worker.setPrintRes(
false);
70#ifdef TTK_ENABLE_OPENMP
71#pragma omp parallel for num_threads(this->threadNumber_) firstprivate(worker)
73 for(
size_t i = 0; i < nInputs; ++i) {
75 for(
size_t j = i + 1; j < nInputs; ++j) {
77 worker.execute(inputs[i], inputs[j], {}, this->
DistanceType, nPoints);
79 output[i][j] = worker.getResult();
80 output[j][i] = worker.getResult();
89 const std::vector<const TIn *> &inputs,
90 const size_t nPoints)
const {
92 const auto nInputs = inputs.size();
93 output.resize(nInputs);
95 std::vector<double *> outputRaw(nInputs);
96 for(
size_t i = 0; i < nInputs; i++) {
97 output[i].resize(nInputs);
98 outputRaw[i] = output[i].data();
100 return execute(outputRaw, inputs, nPoints);