|
| template<class DT, std::enable_if_t< std::is_floating_point_v< DT >, int > = 0> |
| constexpr DT | nuri::deg2rad (DT deg) |
| template<class DT, std::enable_if_t< std::is_integral_v< DT >, int > = 0> |
| constexpr double | nuri::deg2rad (DT deg) |
| template<class DT, std::enable_if_t< std::is_floating_point_v< DT >, int > = 0> |
| constexpr DT | nuri::rad2deg (DT rad) |
| template<class DT, std::enable_if_t< std::is_integral_v< DT >, int > = 0> |
| constexpr double | nuri::rad2deg (DT rad) |
| template<class MatrixLike, class ArrayLike> |
| void | nuri::pdistsq (ArrayLike &&distsq, const MatrixLike &m) |
| template<class MatrixLike> |
| auto | nuri::pdistsq (const MatrixLike &m) |
| template<class MatrixLike, class ArrayLike> |
| void | nuri::pdist (ArrayLike &&dist, const MatrixLike &m) |
| template<class MatrixLike> |
| auto | nuri::pdist (const MatrixLike &m) |
| template<class AL, class DAL> |
| void | nuri::to_square_form (DAL &&dists, const AL &pdists, Eigen::Index n) |
| template<class ArrayLike> |
| auto | nuri::to_square_form (const ArrayLike &pdists, Eigen::Index n) |
| template<class ML1, class ML2, class DML, std::enable_if_t< internal::extract_if_enum_v(ML1::RowsAtCompileTime)==internal::extract_if_enum_v(ML2::RowsAtCompileTime), int > = 0> |
| void | nuri::cdistsq (DML &&distsq, const ML1 &a, const ML2 &b) |
| template<class ML1, class ML2> |
| auto | nuri::cdistsq (const ML1 &a, const ML2 &b) |
| template<class ML1, class ML2, class DML> |
| void | nuri::cdist (DML &&dist, const ML1 &a, const ML2 &b) |
| template<class ML1, class ML2> |
| auto | nuri::cdist (const ML1 &a, const ML2 &b) |
| template<class ML1, class ML2> |
| auto | nuri::msd (const ML1 &a, const ML2 &b) |
| double | nuri::cos_angle (const Vector3d &oa, const Vector3d &ob) |
| | Calculate the cosine of the angle between two vectors.
|
| double | nuri::cos_angle (const Vector3d &o, const Vector3d &a, const Vector3d &b) |
| | Calculate the cosine of the angle between two vectors.
|
| template<class Scalar, class Indexer, int N, auto... Extra> |
| std::pair< Scalar, Scalar > | nuri::sum_tan2_half (const Matrix< Scalar, 3, N, 0, Extra... > &m, const Indexer &idxs) |
| | Calculate sin and cos of half an average angle between vectors, (0 - idxs[0]), (1 - idxs[1]), ..., (n-1 - idxs[n-1]).
|
| template<class Scalar, int N, auto... Extra> |
| std::pair< Scalar, Scalar > | nuri::sum_tan2_half (const Matrix< Scalar, 3, N, 0, Extra... > &m) |
| | Calculate sin and cos of half an average angle between consecutive vectors, i.e., (0, 1), (1, 2), ..., (n-1, 0).
|
| double | nuri::cos_dihedral (const Vector3d &axis, Vector3d v, Vector3d w) |
| | Calculate A - (v) - B - (axis) - C - (w) - D dihedral angle along the axis. Axis should be normalized.
|
| double | nuri::cos_dihedral (const Vector3d &a, const Vector3d &b, const Vector3d &c, const Vector3d &d) |
| | Calculate A -> - B -> C -> D dihedral angle.
|
| template<class MatrixLike> |
| Vector4d | nuri::fit_plane (const MatrixLike &pts, bool normalize=true) |
| | Perform a least-squares fit of a plane to a set of points.
|
| template<class VectorLike> |
| Vector3d | nuri::any_perpendicular (const VectorLike &v, bool normalize=true) |
| | Find a vector perpendicular to the given vector.
|
| std::pair< Isometry3d, double > | nuri::kabsch (ConstRef< Matrix3Xd > query, ConstRef< Matrix3Xd > templ, AlignMode mode=AlignMode::kBoth, bool reflection=false) |
| | An implementation of the Kabsch algorithm for aligning two sets of points. This algorithm is based on the implementation in TM-align.
|
| std::pair< Isometry3d, double > | nuri::qcp (const Eigen::Ref< const Matrix3Xd > &query, const Eigen::Ref< const Matrix3Xd > &templ, AlignMode mode=AlignMode::kBoth, bool reflection=false, double evalprec=1e-11, double evecprec=1e-6, int maxiter=50) |
| | Perform quaternion-based superposition of two sets of points.
|
| std::pair< Isometry3d, double > | nuri::qcp_inplace (MutRef< Matrix3Xd > query, MutRef< Matrix3Xd > templ, AlignMode mode=AlignMode::kBoth, bool reflection=false, double evalprec=1e-11, double evecprec=1e-6, int maxiter=50) |
| | In-place version of qcp().
|
| bool | nuri::embed_distances_3d (Eigen::Ref< Matrix3Xd > pts, MatrixXd &dsqs) |
| | A routine for converting squared pairwise distances to cartesian coordinates.
|
| bool | nuri::embed_distances_4d (Eigen::Ref< Matrix4Xd > pts, MatrixXd &dsqs) |
| | A routine for converting squared pairwise distances to cartesian coordinates.
|
| Matrix3Xd | nuri::canonical_fibonacci_lattice (int npts) |
| | Generate points on a unit sphere using the "canonical" Fibonacci lattice method.
|