eigenpy 3.12.0
Bindings between Numpy and Eigen using Boost.Python
Loading...
Searching...
No Matches
is-approx.hpp
1/*
2 * Copyright 2020-2024 INRIA
3 */
4
5#ifndef __eigenpy_utils_is_approx_hpp__
6#define __eigenpy_utils_is_approx_hpp__
7
8#include <Eigen/Core>
9#include <Eigen/SparseCore>
10
11namespace eigenpy {
12template <typename MatrixType1, typename MatrixType2>
13EIGEN_DONT_INLINE bool is_approx(const Eigen::MatrixBase<MatrixType1>& mat1,
14 const Eigen::MatrixBase<MatrixType2>& mat2,
15 const typename MatrixType1::RealScalar& prec) {
16 return mat1.isApprox(mat2, prec);
17}
18
19template <typename MatrixType1, typename MatrixType2>
20EIGEN_DONT_INLINE bool is_approx(const Eigen::MatrixBase<MatrixType1>& mat1,
21 const Eigen::MatrixBase<MatrixType2>& mat2) {
22 return is_approx(
23 mat1, mat2,
24 Eigen::NumTraits<typename MatrixType1::RealScalar>::dummy_precision());
25}
26
27template <typename MatrixType1, typename MatrixType2>
28EIGEN_DONT_INLINE bool is_approx(
29 const Eigen::SparseMatrixBase<MatrixType1>& mat1,
30 const Eigen::SparseMatrixBase<MatrixType2>& mat2,
31 const typename MatrixType1::RealScalar& prec) {
32 return mat1.isApprox(mat2, prec);
33}
34
35template <typename MatrixType1, typename MatrixType2>
36EIGEN_DONT_INLINE bool is_approx(
37 const Eigen::SparseMatrixBase<MatrixType1>& mat1,
38 const Eigen::SparseMatrixBase<MatrixType2>& mat2) {
39 return is_approx(
40 mat1, mat2,
41 Eigen::NumTraits<typename MatrixType1::RealScalar>::dummy_precision());
42}
43} // namespace eigenpy
44
45#endif // ifndef __eigenpy_utils_is_approx_hpp__