2#include <muda/muda_def.h>
3#include <muda/ext/eigen/eigen_core_cxx20.h>
5namespace muda::distance
8MUDA_GENERIC
void edge_edge_cross_norm2(
const Eigen::Vector<T, 3>& ea0,
9 const Eigen::Vector<T, 3>& ea1,
10 const Eigen::Vector<T, 3>& eb0,
11 const Eigen::Vector<T, 3>& eb1,
15MUDA_GENERIC
void edge_edge_cross_norm2_gradient(
const Eigen::Vector<T, 3>& ea0,
16 const Eigen::Vector<T, 3>& ea1,
17 const Eigen::Vector<T, 3>& eb0,
18 const Eigen::Vector<T, 3>& eb1,
19 Eigen::Vector<T, 12>& grad);
22MUDA_GENERIC
void edge_edge_cross_norm2_hessian(
const Eigen::Vector<T, 3>& ea0,
23 const Eigen::Vector<T, 3>& ea1,
24 const Eigen::Vector<T, 3>& eb0,
25 const Eigen::Vector<T, 3>& eb1,
26 Eigen::Matrix<T, 12, 12>& Hessian);
29MUDA_GENERIC
void edge_edge_mollifier(
const Eigen::Vector<T, 3>& ea0,
30 const Eigen::Vector<T, 3>& ea1,
31 const Eigen::Vector<T, 3>& eb0,
32 const Eigen::Vector<T, 3>& eb1,
37MUDA_GENERIC
void edge_edge_mollifier_gradient(
const Eigen::Vector<T, 3>& ea0,
38 const Eigen::Vector<T, 3>& ea1,
39 const Eigen::Vector<T, 3>& eb0,
40 const Eigen::Vector<T, 3>& eb1,
42 Eigen::Vector<T, 12>& g);
45MUDA_GENERIC
void edge_edge_mollifier_hessian(
const Eigen::Vector<T, 3>& ea0,
46 const Eigen::Vector<T, 3>& ea1,
47 const Eigen::Vector<T, 3>& eb0,
48 const Eigen::Vector<T, 3>& eb1,
50 Eigen::Matrix<T, 12, 12>& H);
53MUDA_GENERIC
void edge_edge_mollifier_threshold(
const Eigen::Vector<T, 3>& ea0_rest,
54 const Eigen::Vector<T, 3>& ea1_rest,
55 const Eigen::Vector<T, 3>& eb0_rest,
56 const Eigen::Vector<T, 3>& eb1_rest,
60#include "details/edge_edge_mollified.inl"