You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I am build a KD tree with some constraint. For object it has timestamp t and a 3D position p, only the delta time less than some threshold, the distance could be valid, otherwise return the inf value. I modify the code based on example, the result index is found correct, but the return dist_sqr is not right. I found it's maybe the method of accum_dist(), but I don't know what's the parameters and affect of this function, could you be give some explain?
template <class DataSource>
class MyCustomMetric
{
public:
using ElementType = double;
using DistanceType = double;
MyCustomMetric(
const DataSource& dataList, const double& param, bool with_t = false)
: data_(dataList), param_(param), with_t_(with_t)
{
}
public:
inline const DataSource& dataList() const { return data_; }
inline double evalMetric(
const double* a, const size_t b_idx, size_t dim_size) const
{
double result{0};
if (with_t_)
{
if (abs(a[3] - data_.kdtree_get_pt(b_idx, 3)) > 4)
{
result = std::numeric_limits<double>::max();
}
else
{
for (size_t i = 0; i < dim_size - 1; ++i)
{
double diff = a[i] - data_.kdtree_get_pt(b_idx, i);
result += std::pow(diff, param_);
}
}
}
else
{
for (size_t i = 0; i < dim_size; ++i)
{
double diff = a[i] - data_.kdtree_get_pt(b_idx, i);
result += std::pow(diff, param_);
}
}
return result;
}
template <typename U, typename V>
inline double accum_dist(const U a, const V b, const size_t idx) const
{
return pow(a-b,param_);
}
private:
const DataSource& data_;
double param_ = 2.0;
bool with_t_{false};
};
The text was updated successfully, but these errors were encountered:
I am build a KD tree with some constraint. For object it has timestamp
t
and a 3D positionp
, only the delta time less than some threshold, the distance could be valid, otherwise return the inf value. I modify the code based on example, the result index is found correct, but the return dist_sqr is not right. I found it's maybe the method of accum_dist(), but I don't know what's the parameters and affect of this function, could you be give some explain?The text was updated successfully, but these errors were encountered: