diff options
author | DongHun Kwak <dh0128.kwak@samsung.com> | 2017-09-13 11:08:07 +0900 |
---|---|---|
committer | DongHun Kwak <dh0128.kwak@samsung.com> | 2017-09-13 11:09:00 +0900 |
commit | b5c87084afaef42b2d058f68091be31988a6a874 (patch) | |
tree | adef9a65870a41181687e11d57fdf98e7629de3c /boost/geometry/strategies/transform/inverse_transformer.hpp | |
parent | 34bd32e225e2a8a94104489b31c42e5801cc1f4a (diff) | |
download | boost-b5c87084afaef42b2d058f68091be31988a6a874.tar.gz boost-b5c87084afaef42b2d058f68091be31988a6a874.tar.bz2 boost-b5c87084afaef42b2d058f68091be31988a6a874.zip |
Imported Upstream version 1.64.0upstream/1.64.0
Change-Id: Id9212edd016dd55f21172c427aa7894d1d24148b
Signed-off-by: DongHun Kwak <dh0128.kwak@samsung.com>
Diffstat (limited to 'boost/geometry/strategies/transform/inverse_transformer.hpp')
-rw-r--r-- | boost/geometry/strategies/transform/inverse_transformer.hpp | 33 |
1 files changed, 4 insertions, 29 deletions
diff --git a/boost/geometry/strategies/transform/inverse_transformer.hpp b/boost/geometry/strategies/transform/inverse_transformer.hpp index e64a46e4a8..5213bce47a 100644 --- a/boost/geometry/strategies/transform/inverse_transformer.hpp +++ b/boost/geometry/strategies/transform/inverse_transformer.hpp @@ -14,15 +14,8 @@ #ifndef BOOST_GEOMETRY_STRATEGIES_TRANSFORM_INVERSE_TRANSFORMER_HPP #define BOOST_GEOMETRY_STRATEGIES_TRANSFORM_INVERSE_TRANSFORMER_HPP -// Remove the ublas checking, otherwise the inverse might fail -// (while nothing seems to be wrong) -#ifdef BOOST_UBLAS_TYPE_CHECK -#undef BOOST_UBLAS_TYPE_CHECK -#endif -#define BOOST_UBLAS_TYPE_CHECK 0 - -#include <boost/numeric/ublas/lu.hpp> -#include <boost/numeric/ublas/io.hpp> +#include <boost/qvm/mat.hpp> +#include <boost/qvm/mat_operations.hpp> #include <boost/geometry/strategies/transform/matrix_transformers.hpp> @@ -44,31 +37,13 @@ template std::size_t Dimension2 > class inverse_transformer - : public ublas_transformer<CalculationType, Dimension1, Dimension2> + : public matrix_transformer<CalculationType, Dimension1, Dimension2> { public : template <typename Transformer> inline inverse_transformer(Transformer const& input) { - typedef boost::numeric::ublas::matrix<CalculationType> matrix_type; - - // create a working copy of the input - matrix_type copy(input.matrix()); - - // create a permutation matrix for the LU-factorization - typedef boost::numeric::ublas::permutation_matrix<> permutation_matrix; - permutation_matrix pm(copy.size1()); - - // perform LU-factorization - int res = boost::numeric::ublas::lu_factorize<matrix_type>(copy, pm); - if( res == 0 ) - { - // create identity matrix - this->m_matrix.assign(boost::numeric::ublas::identity_matrix<CalculationType>(copy.size1())); - - // backsubstitute to get the inverse - boost::numeric::ublas::lu_substitute(copy, pm, this->m_matrix); - } + this->m_matrix = boost::qvm::inverse(input.matrix()); } }; |