2#include <muda/ext/eigen/eigen_core_cxx20.h>
3#include <muda/ext/eigen/inverse/gauss_elimination.h>
4#include <muda/ext/eigen/inverse/analytic_inverse.h>
8template <
typename T,
int N,
typename InverseAlgorithm = muda::eigen::GaussEliminationInverse>
9MUDA_INLINE MUDA_GENERIC Eigen::Matrix<T, N, N> inverse(
const Eigen::Matrix<T, N, N>& m)
11 return InverseAlgorithm{}(m);
14template <
typename T,
typename InverseAlgorithm = muda::eigen::AnalyticalInverse>
15MUDA_INLINE MUDA_GENERIC Eigen::Matrix<T, 2, 2> inverse(
const Eigen::Matrix<T, 2, 2>& m)
17 return InverseAlgorithm{}(m);
20template <
typename T,
typename InverseAlgorithm = muda::eigen::AnalyticalInverse>
21MUDA_INLINE MUDA_GENERIC Eigen::Matrix<T, 3, 3> inverse(
const Eigen::Matrix<T, 3, 3>& m)
23 return InverseAlgorithm{}(m);
26template <
typename T,
typename InverseAlgorithm = muda::eigen::AnalyticalInverse>
27MUDA_INLINE MUDA_GENERIC Eigen::Matrix<T, 4, 4> inverse(
const Eigen::Matrix<T, 4, 4>& m)
29 return InverseAlgorithm{}(m);