16template<
typename DerivedV,
typename DerivedF,
typename DerivedL>
18 const Eigen::PlainObjectBase<DerivedF> &
F,
19 Eigen::PlainObjectBase<DerivedL> &
L)
22 L =
L.array().sqrt().eval();
25template<
typename DerivedV,
typename DerivedF,
typename DerivedL>
27 const Eigen::PlainObjectBase<DerivedF> &
F,
28 Eigen::PlainObjectBase<DerivedL> &
L)
31 const int m =
F.rows();
39 for (
const int i : range) {
40 L(
i, 0) = (
V.row(
F(
i, 1)) -
V.row(
F(
i, 2))).squaredNorm();
41 L(
i, 1) = (
V.row(
F(
i, 2)) -
V.row(
F(
i, 0))).squaredNorm();
42 L(
i, 2) = (
V.row(
F(
i, 0)) -
V.row(
F(
i, 1))).squaredNorm();
#define assert(assertion)
void parallel_for(const IndexRange range, const int64_t grain_size, const Function &function, const TaskSizeHints &size_hints=detail::TaskSizeHints_Static(1))
void edge_lengths(const Eigen::PlainObjectBase< DerivedV > &V, const Eigen::PlainObjectBase< DerivedF > &F, Eigen::PlainObjectBase< DerivedL > &L)
void squared_edge_lengths(const Eigen::PlainObjectBase< DerivedV > &V, const Eigen::PlainObjectBase< DerivedF > &F, Eigen::PlainObjectBase< DerivedL > &L)
CCL_NAMESPACE_BEGIN struct Window V