28 template <
typename TIn,
typename TOut>
29 int execute(std::vector<TOut *> &output,
30 const std::vector<const TIn *> &inputs,
31 const size_t nPoints)
const;
37 template <
typename TIn,
typename TOut>
38 int execute(std::vector<std::vector<TOut>> &output,
39 const std::vector<const TIn *> &inputs,
40 const size_t nPoints)
const;
47template <
typename TIn,
typename TOut>
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.");
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) {
87template <
typename TIn,
typename TOut>
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);
virtual int setThreadNumber(const int threadNumber)
int printErr(const std::string &msg, const debug::LineMode &lineMode=debug::LineMode::NEW, std::ostream &stream=std::cerr) const
int execute(std::vector< TOut * > &output, const std::vector< const TIn * > &inputs, const size_t nPoints) const
void setDistanceType(const std::string &val)
TTK lDistance processing package.
int execute(const dataType *const inputData1, const dataType *const inputData2, dataType *const outputData, const std::string &distanceType, const SimplexId vertexNumber)
void setPrintRes(const bool data)
TTK base package defining the standard types.