/usr/include/eigen3/Eigen/src/Core/EigenBase.h:49:60: error: 'static_cast' from type 'const Eigen::EigenBase<Eigen::Product<Eigen::Matrix<double, 4, 4, 1>, Eigen::Matrix<double, 4, 4, 1>, 0> >*' to type 'Eigen::Product<Eigen::Matrix<double, 4, 4, 1>, Eigen::Matrix<double, 4, 4, 1>, 0>*' casts away qualifiers
   49 |   EIGEN_DEVICE_FUNC constexpr Derived& derived() { return *static_cast<Derived*>(this); }
      |                                                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h: In instantiation of 'constexpr void Eigen::internal::call_assignment_no_alias(Dst&, const Src&, const Func&) [with Dst = Eigen::Matrix<double, 4, 4, 1>; Src = Eigen::Product<Eigen::Matrix<double, 4, 4, 1>, Eigen::Matrix<double, 4, 4, 1>, 0>; Func = assign_op<double, double>]':
/usr/include/eigen3/Eigen/src/Core/NoAlias.h:42:29:   required from 'ExpressionType& Eigen::NoAlias<ExpressionType, StorageBase>::operator=(const StorageBase<OtherDerived>&) [with OtherDerived = Eigen::Product<Eigen::Matrix<double, 4, 4, 1>, Eigen::Matrix<double, 4, 4, 1>, 0>; ExpressionType = Eigen::Matrix<double, 4, 4, 1>; StorageBase = Eigen::MatrixBase]'
   42 |     call_assignment_no_alias(m_expression, other.derived(),
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   43 |                              internal::assign_op<Scalar, typename OtherDerived::Scalar>());
      |                              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
built/include/lmatrix4_src.I:959:37:   required from here
  959 |   _m.noalias() = other1._m * other2._m;
      |                                     ^~
/usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h:88:60: error: static assertion failed: THIS_EXPRESSION_IS_NOT_A_LVALUE__IT_IS_READ_ONLY
   88 |   EIGEN_STATIC_ASSERT(Eigen::internal::is_lvalue<Derived>::value, THIS_EXPRESSION_IS_NOT_A_LVALUE__IT_IS_READ_ONLY)
      |                                                            ^~~~~
/usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h:26:51: note: in definition of macro 'EIGEN_STATIC_ASSERT'
   26 | #define EIGEN_STATIC_ASSERT(X, MSG) static_assert(X, #MSG);
      |                                                   ^
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:916:3: note: in expansion of macro 'EIGEN_STATIC_ASSERT_LVALUE'
  916 |   EIGEN_STATIC_ASSERT_LVALUE(Dst)
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h:88:60: note: 'Eigen::internal::is_lvalue<Eigen::Matrix<double, 4, 4, 1> >::value' evaluates to false
   88 |   EIGEN_STATIC_ASSERT(Eigen::internal::is_lvalue<Derived>::value, THIS_EXPRESSION_IS_NOT_A_LVALUE__IT_IS_READ_ONLY)
      |                                                            ^~~~~
/usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h:26:51: note: in definition of macro 'EIGEN_STATIC_ASSERT'
   26 | #define EIGEN_STATIC_ASSERT(X, MSG) static_assert(X, #MSG);
      |                                                   ^
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:916:3: note: in expansion of macro 'EIGEN_STATIC_ASSERT_LVALUE'
  916 |   EIGEN_STATIC_ASSERT_LVALUE(Dst)
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:920:48: warning: unused variable 'run' [-Wunused-variable]
  920 |   Assignment<ActualDstTypeCleaned, Src, Func>::run(actualDst, src, func);
      |                                                ^~~
/usr/include/eigen3/Eigen/src/Core/EigenBase.h: In instantiation of 'constexpr Derived& Eigen::EigenBase<Derived>::derived() const [with Derived = Eigen::Product<Eigen::Matrix<double, 1, 3, 3>, Eigen::Matrix<double, 3, 3, 3>, 0>]':
/usr/include/eigen3/Eigen/src/Core/NoAlias.h:42:57:   required from 'ExpressionType& Eigen::NoAlias<ExpressionType, StorageBase>::operator=(const StorageBase<OtherDerived>&) [with OtherDerived = Eigen::Product<Eigen::Matrix<double, 1, 3, 3>, Eigen::Matrix<double, 3, 3, 3>, 0>; ExpressionType = Eigen::Matrix<double, 1, 3, 3>; StorageBase = Eigen::MatrixBase]'
   42 |     call_assignment_no_alias(m_expression, other.derived(),
      |                                            ~~~~~~~~~~~~~^~
built/include/lmatrix3_src.I:534:31:   required from here
  534 |   v_res._v.noalias() = v._v * _m;
      |                               ^~
/usr/include/eigen3/Eigen/src/Core/EigenBase.h:49:60: error: 'static_cast' from type 'const Eigen::EigenBase<Eigen::Product<Eigen::Matrix<double, 1, 3, 3>, Eigen::Matrix<double, 3, 3, 3>, 0> >*' to type 'Eigen::Product<Eigen::Matrix<double, 1, 3, 3>, Eigen::Matrix<double, 3, 3, 3>, 0>*' casts away qualifiers
   49 |   EIGEN_DEVICE_FUNC constexpr Derived& derived() { return *static_cast<Derived*>(this); }
      |                                                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h: In instantiation of 'constexpr void Eigen::internal::call_assignment_no_alias(Dst&, const Src&, const Func&) [with Dst = Eigen::Matrix<double, 1, 3, 3>; Src = Eigen::Product<Eigen::Matrix<double, 1, 3, 3>, Eigen::Matrix<double, 3, 3, 3>, 0>; Func = assign_op<double, double>]':
/usr/include/eigen3/Eigen/src/Core/NoAlias.h:42:29:   required from 'ExpressionType& Eigen::NoAlias<ExpressionType, StorageBase>::operator=(const StorageBase<OtherDerived>&) [with OtherDerived = Eigen::Product<Eigen::Matrix<double, 1, 3, 3>, Eigen::Matrix<double, 3, 3, 3>, 0>; ExpressionType = Eigen::Matrix<double, 1, 3, 3>; StorageBase = Eigen::MatrixBase]'
   42 |     call_assignment_no_alias(m_expression, other.derived(),
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   43 |                              internal::assign_op<Scalar, typename OtherDerived::Scalar>());
      |                              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
built/include/lmatrix3_src.I:534:31:   required from here
  534 |   v_res._v.noalias() = v._v * _m;
      |                               ^~
/usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h:88:60: error: static assertion failed: THIS_EXPRESSION_IS_NOT_A_LVALUE__IT_IS_READ_ONLY
   88 |   EIGEN_STATIC_ASSERT(Eigen::internal::is_lvalue<Derived>::value, THIS_EXPRESSION_IS_NOT_A_LVALUE__IT_IS_READ_ONLY)
      |                                                            ^~~~~
/usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h:26:51: note: in definition of macro 'EIGEN_STATIC_ASSERT'
   26 | #define EIGEN_STATIC_ASSERT(X, MSG) static_assert(X, #MSG);
      |                                                   ^
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:916:3: note: in expansion of macro 'EIGEN_STATIC_ASSERT_LVALUE'
  916 |   EIGEN_STATIC_ASSERT_LVALUE(Dst)
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h:88:60: note: 'Eigen::internal::is_lvalue<Eigen::Matrix<double, 1, 3, 3> >::value' evaluates to false
   88 |   EIGEN_STATIC_ASSERT(Eigen::internal::is_lvalue<Derived>::value, THIS_EXPRESSION_IS_NOT_A_LVALUE__IT_IS_READ_ONLY)
      |                                                            ^~~~~
/usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h:26:51: note: in definition of macro 'EIGEN_STATIC_ASSERT'
   26 | #define EIGEN_STATIC_ASSERT(X, MSG) static_assert(X, #MSG);
      |                                                   ^
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:916:3: note: in expansion of macro 'EIGEN_STATIC_ASSERT_LVALUE'
  916 |   EIGEN_STATIC_ASSERT_LVALUE(Dst)
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:920:48: warning: unused variable 'run' [-Wunused-variable]
  920 |   Assignment<ActualDstTypeCleaned, Src, Func>::run(actualDst, src, func);
      |                                                ^~~
/usr/include/eigen3/Eigen/src/Core/EigenBase.h: In instantiation of 'constexpr Derived& Eigen::EigenBase<Derived>::derived() const [with Derived = Eigen::CwiseBinaryOp<Eigen::internal::scalar_sum_op<double, double>, const Eigen::Product<Eigen::Matrix<double, 1, 2, 3>, Eigen::Block<const Eigen::Matrix<double, 3, 3, 3>, 2, 2, false>, 0>, const Eigen::Block<const Eigen::Matrix<double, 3, 3, 3>, 1, 2, false> >]':
/usr/include/eigen3/Eigen/src/Core/NoAlias.h:42:57:   required from 'ExpressionType& Eigen::NoAlias<ExpressionType, StorageBase>::operator=(const StorageBase<OtherDerived>&) [with OtherDerived = Eigen::CwiseBinaryOp<Eigen::internal::scalar_sum_op<double, double>, const Eigen::Product<Eigen::Matrix<double, 1, 2, 3>, Eigen::Block<const Eigen::Matrix<double, 3, 3, 3>, 2, 2, false>, 0>, const Eigen::Block<const Eigen::Matrix<double, 3, 3, 3>, 1, 2, false> >; ExpressionType = Eigen::Matrix<double, 1, 2, 3>; StorageBase = Eigen::MatrixBase]'
   42 |     call_assignment_no_alias(m_expression, other.derived(),
      |                                            ~~~~~~~~~~~~~^~
built/include/lmatrix3_src.I:556:73:   required from here
  556 |   v_res._v.noalias() = v._v * _m.block<2, 2>(0, 0) + _m.block<1, 2>(2, 0);
      |                                                                         ^
/usr/include/eigen3/Eigen/src/Core/EigenBase.h:49:60: error: 'static_cast' from type 'const Eigen::EigenBase<Eigen::CwiseBinaryOp<Eigen::internal::scalar_sum_op<double, double>, const Eigen::Product<Eigen::Matrix<double, 1, 2, 3>, Eigen::Block<const Eigen::Matrix<double, 3, 3, 3>, 2, 2, false>, 0>, const Eigen::Block<const Eigen::Matrix<double, 3, 3, 3>, 1, 2, false> > >*' to type 'Eigen::CwiseBinaryOp<Eigen::internal::scalar_sum_op<double, double>, const Eigen::Product<Eigen::Matrix<double, 1, 2, 3>, Eigen::Block<const Eigen::Matrix<double, 3, 3, 3>, 2, 2, false>, 0>, const Eigen::Block<const Eigen::Matrix<double, 3, 3, 3>, 1, 2, false> >*' casts away qualifiers
   49 |   EIGEN_DEVICE_FUNC constexpr Derived& derived() { return *static_cast<Derived*>(this); }
      |                                                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h: In instantiation of 'constexpr void Eigen::internal::call_assignment_no_alias(Dst&, const Src&, const Func&) [with Dst = Eigen::Matrix<double, 1, 2, 3>; Src = Eigen::CwiseBinaryOp<scalar_sum_op<double, double>, const Eigen::Product<Eigen::Matrix<double, 1, 2, 3>, Eigen::Block<const Eigen::Matrix<double, 3, 3, 3>, 2, 2, false>, 0>, const Eigen::Block<const Eigen::Matrix<double, 3, 3, 3>, 1, 2, false> >; Func = assign_op<double, double>]':
/usr/include/eigen3/Eigen/src/Core/NoAlias.h:42:29:   required from 'ExpressionType& Eigen::NoAlias<ExpressionType, StorageBase>::operator=(const StorageBase<OtherDerived>&) [with OtherDerived = Eigen::CwiseBinaryOp<Eigen::internal::scalar_sum_op<double, double>, const Eigen::Product<Eigen::Matrix<double, 1, 2, 3>, Eigen::Block<const Eigen::Matrix<double, 3, 3, 3>, 2, 2, false>, 0>, const Eigen::Block<const Eigen::Matrix<double, 3, 3, 3>, 1, 2, false> >; ExpressionType = Eigen::Matrix<double, 1, 2, 3>; StorageBase = Eigen::MatrixBase]'
   42 |     call_assignment_no_alias(m_expression, other.derived(),
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   43 |                              internal::assign_op<Scalar, typename OtherDerived::Scalar>());
      |                              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
built/include/lmatrix3_src.I:556:73:   required from here
  556 |   v_res._v.noalias() = v._v * _m.block<2, 2>(0, 0) + _m.block<1, 2>(2, 0);
      |                                                                         ^
/usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h:88:60: error: static assertion failed: THIS_EXPRESSION_IS_NOT_A_LVALUE__IT_IS_READ_ONLY
   88 |   EIGEN_STATIC_ASSERT(Eigen::internal::is_lvalue<Derived>::value, THIS_EXPRESSION_IS_NOT_A_LVALUE__IT_IS_READ_ONLY)
      |                                                            ^~~~~
/usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h:26:51: note: in definition of macro 'EIGEN_STATIC_ASSERT'
   26 | #define EIGEN_STATIC_ASSERT(X, MSG) static_assert(X, #MSG);
      |                                                   ^
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:916:3: note: in expansion of macro 'EIGEN_STATIC_ASSERT_LVALUE'
  916 |   EIGEN_STATIC_ASSERT_LVALUE(Dst)
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h:88:60: note: 'Eigen::internal::is_lvalue<Eigen::Matrix<double, 1, 2, 3> >::value' evaluates to false
   88 |   EIGEN_STATIC_ASSERT(Eigen::internal::is_lvalue<Derived>::value, THIS_EXPRESSION_IS_NOT_A_LVALUE__IT_IS_READ_ONLY)
      |                                                            ^~~~~
/usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h:26:51: note: in definition of macro 'EIGEN_STATIC_ASSERT'
   26 | #define EIGEN_STATIC_ASSERT(X, MSG) static_assert(X, #MSG);
      |                                                   ^
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:916:3: note: in expansion of macro 'EIGEN_STATIC_ASSERT_LVALUE'
  916 |   EIGEN_STATIC_ASSERT_LVALUE(Dst)
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:920:48: warning: unused variable 'run' [-Wunused-variable]
  920 |   Assignment<ActualDstTypeCleaned, Src, Func>::run(actualDst, src, func);
      |                                                ^~~
/usr/include/eigen3/Eigen/src/Core/EigenBase.h: In instantiation of 'constexpr Derived& Eigen::EigenBase<Derived>::derived() const [with Derived = Eigen::Product<Eigen::Matrix<double, 1, 2, 3>, Eigen::Block<const Eigen::Matrix<double, 3, 3, 3>, 2, 2, false>, 0>]':
/usr/include/eigen3/Eigen/src/Core/NoAlias.h:42:57:   required from 'ExpressionType& Eigen::NoAlias<ExpressionType, StorageBase>::operator=(const StorageBase<OtherDerived>&) [with OtherDerived = Eigen::Product<Eigen::Matrix<double, 1, 2, 3>, Eigen::Block<const Eigen::Matrix<double, 3, 3, 3>, 2, 2, false>, 0>; ExpressionType = Eigen::Matrix<double, 1, 2, 3>; StorageBase = Eigen::MatrixBase]'
   42 |     call_assignment_no_alias(m_expression, other.derived(),
      |                                            ~~~~~~~~~~~~~^~
built/include/lmatrix3_src.I:578:50:   required from here
  578 |   v_res._v.noalias() = v._v * _m.block<2, 2>(0, 0);
      |                                                  ^
/usr/include/eigen3/Eigen/src/Core/EigenBase.h:49:60: error: 'static_cast' from type 'const Eigen::EigenBase<Eigen::Product<Eigen::Matrix<double, 1, 2, 3>, Eigen::Block<const Eigen::Matrix<double, 3, 3, 3>, 2, 2, false>, 0> >*' to type 'Eigen::Product<Eigen::Matrix<double, 1, 2, 3>, Eigen::Block<const Eigen::Matrix<double, 3, 3, 3>, 2, 2, false>, 0>*' casts away qualifiers
   49 |   EIGEN_DEVICE_FUNC constexpr Derived& derived() { return *static_cast<Derived*>(this); }
      |                                                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h: In instantiation of 'constexpr void Eigen::internal::call_assignment_no_alias(Dst&, const Src&, const Func&) [with Dst = Eigen::Matrix<double, 1, 2, 3>; Src = Eigen::Product<Eigen::Matrix<double, 1, 2, 3>, Eigen::Block<const Eigen::Matrix<double, 3, 3, 3>, 2, 2, false>, 0>; Func = assign_op<double, double>]':
/usr/include/eigen3/Eigen/src/Core/NoAlias.h:42:29:   required from 'ExpressionType& Eigen::NoAlias<ExpressionType, StorageBase>::operator=(const StorageBase<OtherDerived>&) [with OtherDerived = Eigen::Product<Eigen::Matrix<double, 1, 2, 3>, Eigen::Block<const Eigen::Matrix<double, 3, 3, 3>, 2, 2, false>, 0>; ExpressionType = Eigen::Matrix<double, 1, 2, 3>; StorageBase = Eigen::MatrixBase]'
   42 |     call_assignment_no_alias(m_expression, other.derived(),
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   43 |                              internal::assign_op<Scalar, typename OtherDerived::Scalar>());
      |                              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
built/include/lmatrix3_src.I:578:50:   required from here
  578 |   v_res._v.noalias() = v._v * _m.block<2, 2>(0, 0);
      |                                                  ^
/usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h:88:60: error: static assertion failed: THIS_EXPRESSION_IS_NOT_A_LVALUE__IT_IS_READ_ONLY
   88 |   EIGEN_STATIC_ASSERT(Eigen::internal::is_lvalue<Derived>::value, THIS_EXPRESSION_IS_NOT_A_LVALUE__IT_IS_READ_ONLY)
      |                                                            ^~~~~
/usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h:26:51: note: in definition of macro 'EIGEN_STATIC_ASSERT'
   26 | #define EIGEN_STATIC_ASSERT(X, MSG) static_assert(X, #MSG);
      |                                                   ^
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:916:3: note: in expansion of macro 'EIGEN_STATIC_ASSERT_LVALUE'
  916 |   EIGEN_STATIC_ASSERT_LVALUE(Dst)
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h:88:60: note: 'Eigen::internal::is_lvalue<Eigen::Matrix<double, 1, 2, 3> >::value' evaluates to false
   88 |   EIGEN_STATIC_ASSERT(Eigen::internal::is_lvalue<Derived>::value, THIS_EXPRESSION_IS_NOT_A_LVALUE__IT_IS_READ_ONLY)
      |                                                            ^~~~~
/usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h:26:51: note: in definition of macro 'EIGEN_STATIC_ASSERT'
   26 | #define EIGEN_STATIC_ASSERT(X, MSG) static_assert(X, #MSG);
      |                                                   ^
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:916:3: note: in expansion of macro 'EIGEN_STATIC_ASSERT_LVALUE'
  916 |   EIGEN_STATIC_ASSERT_LVALUE(Dst)
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:920:48: warning: unused variable 'run' [-Wunused-variable]
  920 |   Assignment<ActualDstTypeCleaned, Src, Func>::run(actualDst, src, func);
      |                                                ^~~
/usr/include/eigen3/Eigen/src/Core/MathFunctions.h: In instantiation of 'bool Eigen::numext::isfinite(const T&) [with T = float]':
/usr/include/eigen3/Eigen/src/Core/arch/Default/GenericPacketMathFunctions.h:897:47:   required from 'Packet Eigen::internal::psincos_float(const Packet&) [with bool ComputeSine = true; Packet = __vector(4) float; bool ComputeBoth = false]'
  897 |       if (val >= huge_th && (numext::isfinite)(val)) x_cpy[k] = trig_reduce_huge(val, &y_int2[k]);
      |                             ~~~~~~~~~~~~~~~~~~^~~~~
/usr/include/eigen3/Eigen/src/Core/arch/Default/GenericPacketMathFunctions.h:957:29:   required from 'Packet Eigen::internal::psin_float(const Packet&) [with Packet = __vector(4) float]'
  957 |   return psincos_float<true>(x);
      |          ~~~~~~~~~~~~~~~~~~~^~~
/usr/include/eigen3/Eigen/src/Core/arch/SSE/MathFunctions.h:25:1:   required from here
  183 |     return p##METHOD##_##SCALAR(_x);                                                              \
      |            ~~~~~~~~~~~~~~~~~~~~^~~~
/usr/include/eigen3/Eigen/src/Core/MathFunctions.h:1266:33: error: no matching function for call to 'isfinite_impl(const float&)'
 1266 |   return internal::isfinite_impl(x);
      |          ~~~~~~~~~~~~~~~~~~~~~~~^~~
/usr/include/eigen3/Eigen/src/Core/MathFunctions.h:1266:33: note: there is 1 candidate
/usr/include/eigen3/Eigen/src/Core/MathFunctions.h:1947:24: note: candidate 1: 'template<class T> bool Eigen::internal::isfinite_impl(const std::complex<_Tp>&)'
 1947 | EIGEN_DEVICE_FUNC bool isfinite_impl(const std::complex<T>& x) {
      |                        ^~~~~~~~~~~~~
/usr/include/eigen3/Eigen/src/Core/MathFunctions.h:1947:24: note: template argument deduction/substitution failed:
/usr/include/eigen3/Eigen/src/Core/MathFunctions.h:1266:33: note:   mismatched types 'const std::complex<_Tp>' and 'const float'
 1266 |   return internal::isfinite_impl(x);
      |          ~~~~~~~~~~~~~~~~~~~~~~~^~~
/usr/include/eigen3/Eigen/src/Core/MathFunctions.h: In instantiation of 'bool Eigen::numext::isfinite(const T&) [with T = double]':
/usr/include/eigen3/Eigen/src/Core/arch/Default/GenericPacketMathFunctions.h:1111:56:   required from 'Packet Eigen::internal::psincos_double(const Packet&) [with bool ComputeSine = true; Packet = __vector(2) double; bool ComputeBoth = false]'
 1111 |       if (std::abs(val) > huge_th && (numext::isfinite)(val)) {
      |                                      ~~~~~~~~~~~~~~~~~~^~~~~
/usr/include/eigen3/Eigen/src/Core/arch/Default/GenericPacketMathFunctions.h:1125:30:   required from 'Packet Eigen::internal::psin_double(const Packet&) [with Packet = __vector(2) double]'
 1125 |   return psincos_double<true>(x);
      |          ~~~~~~~~~~~~~~~~~~~~^~~
/usr/include/eigen3/Eigen/src/Core/arch/SSE/MathFunctions.h:26:1:   required from here
  183 |     return p##METHOD##_##SCALAR(_x);                                                              \
      |            ~~~~~~~~~~~~~~~~~~~~^~~~
/usr/include/eigen3/Eigen/src/Core/MathFunctions.h:1266:33: error: no matching function for call to 'isfinite_impl(const double&)'
 1266 |   return internal::isfinite_impl(x);
      |          ~~~~~~~~~~~~~~~~~~~~~~~^~~
/usr/include/eigen3/Eigen/src/Core/MathFunctions.h:1266:33: note: there is 1 candidate
/usr/include/eigen3/Eigen/src/Core/MathFunctions.h:1947:24: note: candidate 1: 'template<class T> bool Eigen::internal::isfinite_impl(const std::complex<_Tp>&)'
 1947 | EIGEN_DEVICE_FUNC bool isfinite_impl(const std::complex<T>& x) {
      |                        ^~~~~~~~~~~~~
/usr/include/eigen3/Eigen/src/Core/MathFunctions.h:1947:24: note: template argument deduction/substitution failed:
/usr/include/eigen3/Eigen/src/Core/MathFunctions.h:1266:33: note:   mismatched types 'const std::complex<_Tp>' and 'const double'
 1266 |   return internal::isfinite_impl(x);
      |          ~~~~~~~~~~~~~~~~~~~~~~~^~~
/usr/include/eigen3/Eigen/src/Core/EigenBase.h: In instantiation of 'constexpr Derived& Eigen::EigenBase<Derived>::derived() const [with Derived = Eigen::Product<Eigen::Matrix<float, 1, 4>, Eigen::Matrix<float, 4, 4, 1>, 0>]':
/usr/include/eigen3/Eigen/src/Core/NoAlias.h:42:57:   required from 'ExpressionType& Eigen::NoAlias<ExpressionType, StorageBase>::operator=(const StorageBase<OtherDerived>&) [with OtherDerived = Eigen::Product<Eigen::Matrix<float, 1, 4>, Eigen::Matrix<float, 4, 4, 1>, 0>; ExpressionType = Eigen::Matrix<float, 1, 4>; StorageBase = Eigen::MatrixBase]'
   42 |     call_assignment_no_alias(m_expression, other.derived(),
      |                                            ~~~~~~~~~~~~~^~
built/include/lmatrix4_src.I:763:31:   required from here
  763 |   v_res._v.noalias() = v._v * _m;
      |                               ^~
/usr/include/eigen3/Eigen/src/Core/EigenBase.h:49:60: error: 'static_cast' from type 'const Eigen::EigenBase<Eigen::Product<Eigen::Matrix<float, 1, 4>, Eigen::Matrix<float, 4, 4, 1>, 0> >*' to type 'Eigen::Product<Eigen::Matrix<float, 1, 4>, Eigen::Matrix<float, 4, 4, 1>, 0>*' casts away qualifiers
   49 |   EIGEN_DEVICE_FUNC constexpr Derived& derived() { return *static_cast<Derived*>(this); }
      |                                                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h: In instantiation of 'constexpr void Eigen::internal::call_assignment_no_alias(Dst&, const Src&, const Func&) [with Dst = Eigen::Matrix<float, 1, 4>; Src = Eigen::Product<Eigen::Matrix<float, 1, 4>, Eigen::Matrix<float, 4, 4, 1>, 0>; Func = assign_op<float, float>]':
/usr/include/eigen3/Eigen/src/Core/NoAlias.h:42:29:   required from 'ExpressionType& Eigen::NoAlias<ExpressionType, StorageBase>::operator=(const StorageBase<OtherDerived>&) [with OtherDerived = Eigen::Product<Eigen::Matrix<float, 1, 4>, Eigen::Matrix<float, 4, 4, 1>, 0>; ExpressionType = Eigen::Matrix<float, 1, 4>; StorageBase = Eigen::MatrixBase]'
   42 |     call_assignment_no_alias(m_expression, other.derived(),
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   43 |                              internal::assign_op<Scalar, typename OtherDerived::Scalar>());
      |                              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
built/include/lmatrix4_src.I:763:31:   required from here
  763 |   v_res._v.noalias() = v._v * _m;
      |                               ^~
/usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h:88:60: error: static assertion failed: THIS_EXPRESSION_IS_NOT_A_LVALUE__IT_IS_READ_ONLY
   88 |   EIGEN_STATIC_ASSERT(Eigen::internal::is_lvalue<Derived>::value, THIS_EXPRESSION_IS_NOT_A_LVALUE__IT_IS_READ_ONLY)
      |                                                            ^~~~~
/usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h:26:51: note: in definition of macro 'EIGEN_STATIC_ASSERT'
   26 | #define EIGEN_STATIC_ASSERT(X, MSG) static_assert(X, #MSG);
      |                                                   ^
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:916:3: note: in expansion of macro 'EIGEN_STATIC_ASSERT_LVALUE'
  916 |   EIGEN_STATIC_ASSERT_LVALUE(Dst)
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h:88:60: note: 'Eigen::internal::is_lvalue<Eigen::Matrix<float, 1, 4> >::value' evaluates to false
   88 |   EIGEN_STATIC_ASSERT(Eigen::internal::is_lvalue<Derived>::value, THIS_EXPRESSION_IS_NOT_A_LVALUE__IT_IS_READ_ONLY)
      |                                                            ^~~~~
/usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h:26:51: note: in definition of macro 'EIGEN_STATIC_ASSERT'
   26 | #define EIGEN_STATIC_ASSERT(X, MSG) static_assert(X, #MSG);
      |                                                   ^
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:916:3: note: in expansion of macro 'EIGEN_STATIC_ASSERT_LVALUE'
  916 |   EIGEN_STATIC_ASSERT_LVALUE(Dst)
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:920:48: warning: unused variable 'run' [-Wunused-variable]
  920 |   Assignment<ActualDstTypeCleaned, Src, Func>::run(actualDst, src, func);
      |                                                ^~~
/usr/include/eigen3/Eigen/src/Core/EigenBase.h: In instantiation of 'constexpr Derived& Eigen::EigenBase<Derived>::derived() const [with Derived = Eigen::CwiseBinaryOp<Eigen::internal::scalar_sum_op<float, float>, const Eigen::Product<Eigen::Matrix<float, 1, 3, 3>, Eigen::Block<const Eigen::Matrix<float, 4, 4, 1>, 3, 3, false>, 0>, const Eigen::Block<const Eigen::Matrix<float, 4, 4, 1>, 1, 3, false> >]':
/usr/include/eigen3/Eigen/src/Core/NoAlias.h:42:57:   required from 'ExpressionType& Eigen::NoAlias<ExpressionType, StorageBase>::operator=(const StorageBase<OtherDerived>&) [with OtherDerived = Eigen::CwiseBinaryOp<Eigen::internal::scalar_sum_op<float, float>, const Eigen::Product<Eigen::Matrix<float, 1, 3, 3>, Eigen::Block<const Eigen::Matrix<float, 4, 4, 1>, 3, 3, false>, 0>, const Eigen::Block<const Eigen::Matrix<float, 4, 4, 1>, 1, 3, false> >; ExpressionType = Eigen::Matrix<float, 1, 3, 3>; StorageBase = Eigen::MatrixBase]'
   42 |     call_assignment_no_alias(m_expression, other.derived(),
      |                                            ~~~~~~~~~~~~~^~
built/include/lmatrix4_src.I:784:73:   required from here
  784 |   v_res._v.noalias() = v._v * _m.block<3, 3>(0, 0) + _m.block<1, 3>(3, 0);
      |                                                                         ^
/usr/include/eigen3/Eigen/src/Core/EigenBase.h:49:60: error: 'static_cast' from type 'const Eigen::EigenBase<Eigen::CwiseBinaryOp<Eigen::internal::scalar_sum_op<float, float>, const Eigen::Product<Eigen::Matrix<float, 1, 3, 3>, Eigen::Block<const Eigen::Matrix<float, 4, 4, 1>, 3, 3, false>, 0>, const Eigen::Block<const Eigen::Matrix<float, 4, 4, 1>, 1, 3, false> > >*' to type 'Eigen::CwiseBinaryOp<Eigen::internal::scalar_sum_op<float, float>, const Eigen::Product<Eigen::Matrix<float, 1, 3, 3>, Eigen::Block<const Eigen::Matrix<float, 4, 4, 1>, 3, 3, false>, 0>, const Eigen::Block<const Eigen::Matrix<float, 4, 4, 1>, 1, 3, false> >*' casts away qualifiers
   49 |   EIGEN_DEVICE_FUNC constexpr Derived& derived() { return *static_cast<Derived*>(this); }
      |                                                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h: In instantiation of 'constexpr void Eigen::internal::call_assignment_no_alias(Dst&, const Src&, const Func&) [with Dst = Eigen::Matrix<float, 1, 3, 3>; Src = Eigen::CwiseBinaryOp<scalar_sum_op<float, float>, const Eigen::Product<Eigen::Matrix<float, 1, 3, 3>, Eigen::Block<const Eigen::Matrix<float, 4, 4, 1>, 3, 3, false>, 0>, const Eigen::Block<const Eigen::Matrix<float, 4, 4, 1>, 1, 3, false> >; Func = assign_op<float, float>]':
/usr/include/eigen3/Eigen/src/Core/NoAlias.h:42:29:   required from 'ExpressionType& Eigen::NoAlias<ExpressionType, StorageBase>::operator=(const StorageBase<OtherDerived>&) [with OtherDerived = Eigen::CwiseBinaryOp<Eigen::internal::scalar_sum_op<float, float>, const Eigen::Product<Eigen::Matrix<float, 1, 3, 3>, Eigen::Block<const Eigen::Matrix<float, 4, 4, 1>, 3, 3, false>, 0>, const Eigen::Block<const Eigen::Matrix<float, 4, 4, 1>, 1, 3, false> >; ExpressionType = Eigen::Matrix<float, 1, 3, 3>; StorageBase = Eigen::MatrixBase]'
   42 |     call_assignment_no_alias(m_expression, other.derived(),
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   43 |                              internal::assign_op<Scalar, typename OtherDerived::Scalar>());
      |                              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
built/include/lmatrix4_src.I:784:73:   required from here
  784 |   v_res._v.noalias() = v._v * _m.block<3, 3>(0, 0) + _m.block<1, 3>(3, 0);
      |                                                                         ^
/usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h:88:60: error: static assertion failed: THIS_EXPRESSION_IS_NOT_A_LVALUE__IT_IS_READ_ONLY
   88 |   EIGEN_STATIC_ASSERT(Eigen::internal::is_lvalue<Derived>::value, THIS_EXPRESSION_IS_NOT_A_LVALUE__IT_IS_READ_ONLY)
      |                                                            ^~~~~
/usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h:26:51: note: in definition of macro 'EIGEN_STATIC_ASSERT'
   26 | #define EIGEN_STATIC_ASSERT(X, MSG) static_assert(X, #MSG);
      |                                                   ^
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:916:3: note: in expansion of macro 'EIGEN_STATIC_ASSERT_LVALUE'
  916 |   EIGEN_STATIC_ASSERT_LVALUE(Dst)
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h:88:60: note: 'Eigen::internal::is_lvalue<Eigen::Matrix<float, 1, 3, 3> >::value' evaluates to false
   88 |   EIGEN_STATIC_ASSERT(Eigen::internal::is_lvalue<Derived>::value, THIS_EXPRESSION_IS_NOT_A_LVALUE__IT_IS_READ_ONLY)
      |                                                            ^~~~~
/usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h:26:51: note: in definition of macro 'EIGEN_STATIC_ASSERT'
   26 | #define EIGEN_STATIC_ASSERT(X, MSG) static_assert(X, #MSG);
      |                                                   ^
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:916:3: note: in expansion of macro 'EIGEN_STATIC_ASSERT_LVALUE'
  916 |   EIGEN_STATIC_ASSERT_LVALUE(Dst)
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:920:48: warning: unused variable 'run' [-Wunused-variable]
  920 |   Assignment<ActualDstTypeCleaned, Src, Func>::run(actualDst, src, func);
      |                                                ^~~
/usr/include/eigen3/Eigen/src/Core/EigenBase.h: In instantiation of 'constexpr Derived& Eigen::EigenBase<Derived>::derived() const [with Derived = Eigen::Product<Eigen::Matrix<float, 1, 3, 3>, Eigen::Block<const Eigen::Matrix<float, 4, 4, 1>, 3, 3, false>, 0>]':
/usr/include/eigen3/Eigen/src/Core/NoAlias.h:42:57:   required from 'ExpressionType& Eigen::NoAlias<ExpressionType, StorageBase>::operator=(const StorageBase<OtherDerived>&) [with OtherDerived = Eigen::Product<Eigen::Matrix<float, 1, 3, 3>, Eigen::Block<const Eigen::Matrix<float, 4, 4, 1>, 3, 3, false>, 0>; ExpressionType = Eigen::Matrix<float, 1, 3, 3>; StorageBase = Eigen::MatrixBase]'
   42 |     call_assignment_no_alias(m_expression, other.derived(),
      |                                            ~~~~~~~~~~~~~^~
built/include/lmatrix4_src.I:819:50:   required from here
  819 |   v_res._v.noalias() = v._v * _m.block<3, 3>(0, 0);
      |                                                  ^
/usr/include/eigen3/Eigen/src/Core/EigenBase.h:49:60: error: 'static_cast' from type 'const Eigen::EigenBase<Eigen::Product<Eigen::Matrix<float, 1, 3, 3>, Eigen::Block<const Eigen::Matrix<float, 4, 4, 1>, 3, 3, false>, 0> >*' to type 'Eigen::Product<Eigen::Matrix<float, 1, 3, 3>, Eigen::Block<const Eigen::Matrix<float, 4, 4, 1>, 3, 3, false>, 0>*' casts away qualifiers
   49 |   EIGEN_DEVICE_FUNC constexpr Derived& derived() { return *static_cast<Derived*>(this); }
      |                                                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h: In instantiation of 'constexpr void Eigen::internal::call_assignment_no_alias(Dst&, const Src&, const Func&) [with Dst = Eigen::Matrix<float, 1, 3, 3>; Src = Eigen::Product<Eigen::Matrix<float, 1, 3, 3>, Eigen::Block<const Eigen::Matrix<float, 4, 4, 1>, 3, 3, false>, 0>; Func = assign_op<float, float>]':
/usr/include/eigen3/Eigen/src/Core/NoAlias.h:42:29:   required from 'ExpressionType& Eigen::NoAlias<ExpressionType, StorageBase>::operator=(const StorageBase<OtherDerived>&) [with OtherDerived = Eigen::Product<Eigen::Matrix<float, 1, 3, 3>, Eigen::Block<const Eigen::Matrix<float, 4, 4, 1>, 3, 3, false>, 0>; ExpressionType = Eigen::Matrix<float, 1, 3, 3>; StorageBase = Eigen::MatrixBase]'
   42 |     call_assignment_no_alias(m_expression, other.derived(),
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   43 |                              internal::assign_op<Scalar, typename OtherDerived::Scalar>());
      |                              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
built/include/lmatrix4_src.I:819:50:   required from here
  819 |   v_res._v.noalias() = v._v * _m.block<3, 3>(0, 0);
      |                                                  ^
/usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h:88:60: error: static assertion failed: THIS_EXPRESSION_IS_NOT_A_LVALUE__IT_IS_READ_ONLY
   88 |   EIGEN_STATIC_ASSERT(Eigen::internal::is_lvalue<Derived>::value, THIS_EXPRESSION_IS_NOT_A_LVALUE__IT_IS_READ_ONLY)
      |                                                            ^~~~~
/usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h:26:51: note: in definition of macro 'EIGEN_STATIC_ASSERT'
   26 | #define EIGEN_STATIC_ASSERT(X, MSG) static_assert(X, #MSG);
      |                                                   ^
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:916:3: note: in expansion of macro 'EIGEN_STATIC_ASSERT_LVALUE'
  916 |   EIGEN_STATIC_ASSERT_LVALUE(Dst)
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h:88:60: note: 'Eigen::internal::is_lvalue<Eigen::Matrix<float, 1, 3, 3> >::value' evaluates to false
   88 |   EIGEN_STATIC_ASSERT(Eigen::internal::is_lvalue<Derived>::value, THIS_EXPRESSION_IS_NOT_A_LVALUE__IT_IS_READ_ONLY)
      |                                                            ^~~~~
/usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h:26:51: note: in definition of macro 'EIGEN_STATIC_ASSERT'
   26 | #define EIGEN_STATIC_ASSERT(X, MSG) static_assert(X, #MSG);
      |                                                   ^
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:916:3: note: in expansion of macro 'EIGEN_STATIC_ASSERT_LVALUE'
  916 |   EIGEN_STATIC_ASSERT_LVALUE(Dst)
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:920:48: warning: unused variable 'run' [-Wunused-variable]
  920 |   Assignment<ActualDstTypeCleaned, Src, Func>::run(actualDst, src, func);
      |                                                ^~~
/usr/include/eigen3/Eigen/src/Core/EigenBase.h: In instantiation of 'constexpr Derived& Eigen::EigenBase<Derived>::derived() const [with Derived = Eigen::Product<Eigen::Matrix<float, 4, 4, 1>, Eigen::Matrix<float, 4, 4, 1>, 0>]':
/usr/include/eigen3/Eigen/src/Core/NoAlias.h:42:57:   required from 'ExpressionType& Eigen::NoAlias<ExpressionType, StorageBase>::operator=(const StorageBase<OtherDerived>&) [with OtherDerived = Eigen::Product<Eigen::Matrix<float, 4, 4, 1>, Eigen::Matrix<float, 4, 4, 1>, 0>; ExpressionType = Eigen::Matrix<float, 4, 4, 1>; StorageBase = Eigen::MatrixBase]'
   42 |     call_assignment_no_alias(m_expression, other.derived(),
      |                                            ~~~~~~~~~~~~~^~
built/include/lmatrix4_src.I:959:37:   required from here
  959 |   _m.noalias() = other1._m * other2._m;
      |                                     ^~
/usr/include/eigen3/Eigen/src/Core/EigenBase.h:49:60: error: 'static_cast' from type 'const Eigen::EigenBase<Eigen::Product<Eigen::Matrix<float, 4, 4, 1>, Eigen::Matrix<float, 4, 4, 1>, 0> >*' to type 'Eigen::Product<Eigen::Matrix<float, 4, 4, 1>, Eigen::Matrix<float, 4, 4, 1>, 0>*' casts away qualifiers
   49 |   EIGEN_DEVICE_FUNC constexpr Derived& derived() { return *static_cast<Derived*>(this); }
      |                                                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h: In instantiation of 'constexpr void Eigen::internal::call_assignment_no_alias(Dst&, const Src&, const Func&) [with Dst = Eigen::Matrix<float, 4, 4, 1>; Src = Eigen::Product<Eigen::Matrix<float, 4, 4, 1>, Eigen::Matrix<float, 4, 4, 1>, 0>; Func = assign_op<float, float>]':
/usr/include/eigen3/Eigen/src/Core/NoAlias.h:42:29:   required from 'ExpressionType& Eigen::NoAlias<ExpressionType, StorageBase>::operator=(const StorageBase<OtherDerived>&) [with OtherDerived = Eigen::Product<Eigen::Matrix<float, 4, 4, 1>, Eigen::Matrix<float, 4, 4, 1>, 0>; ExpressionType = Eigen::Matrix<float, 4, 4, 1>; StorageBase = Eigen::MatrixBase]'
   42 |     call_assignment_no_alias(m_expression, other.derived(),
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   43 |                              internal::assign_op<Scalar, typename OtherDerived::Scalar>());
      |                              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
built/include/lmatrix4_src.I:959:37:   required from here
  959 |   _m.noalias() = other1._m * other2._m;
      |                                     ^~
/usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h:88:60: error: static assertion failed: THIS_EXPRESSION_IS_NOT_A_LVALUE__IT_IS_READ_ONLY
   88 |   EIGEN_STATIC_ASSERT(Eigen::internal::is_lvalue<Derived>::value, THIS_EXPRESSION_IS_NOT_A_LVALUE__IT_IS_READ_ONLY)
      |                                                            ^~~~~
/usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h:26:51: note: in definition of macro 'EIGEN_STATIC_ASSERT'
   26 | #define EIGEN_STATIC_ASSERT(X, MSG) static_assert(X, #MSG);
      |                                                   ^
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:916:3: note: in expansion of macro 'EIGEN_STATIC_ASSERT_LVALUE'
  916 |   EIGEN_STATIC_ASSERT_LVALUE(Dst)
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h:88:60: note: 'Eigen::internal::is_lvalue<Eigen::Matrix<float, 4, 4, 1> >::value' evaluates to false
   88 |   EIGEN_STATIC_ASSERT(Eigen::internal::is_lvalue<Derived>::value, THIS_EXPRESSION_IS_NOT_A_LVALUE__IT_IS_READ_ONLY)
      |                                                            ^~~~~
/usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h:26:51: note: in definition of macro 'EIGEN_STATIC_ASSERT'
   26 | #define EIGEN_STATIC_ASSERT(X, MSG) static_assert(X, #MSG);
      |                                                   ^
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:916:3: note: in expansion of macro 'EIGEN_STATIC_ASSERT_LVALUE'
  916 |   EIGEN_STATIC_ASSERT_LVALUE(Dst)
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:920:48: warning: unused variable 'run' [-Wunused-variable]
  920 |   Assignment<ActualDstTypeCleaned, Src, Func>::run(actualDst, src, func);
      |                                                ^~~
/usr/include/eigen3/Eigen/src/Core/EigenBase.h: In instantiation of 'constexpr Derived& Eigen::EigenBase<Derived>::derived() const [with Derived = Eigen::Product<Eigen::Matrix<float, 1, 3, 3>, Eigen::Matrix<float, 3, 3, 3>, 0>]':
/usr/include/eigen3/Eigen/src/Core/NoAlias.h:42:57:   required from 'ExpressionType& Eigen::NoAlias<ExpressionType, StorageBase>::operator=(const StorageBase<OtherDerived>&) [with OtherDerived = Eigen::Product<Eigen::Matrix<float, 1, 3, 3>, Eigen::Matrix<float, 3, 3, 3>, 0>; ExpressionType = Eigen::Matrix<float, 1, 3, 3>; StorageBase = Eigen::MatrixBase]'
   42 |     call_assignment_no_alias(m_expression, other.derived(),
      |                                            ~~~~~~~~~~~~~^~
built/include/lmatrix3_src.I:534:31:   required from here
  534 |   v_res._v.noalias() = v._v * _m;
      |                               ^~
/usr/include/eigen3/Eigen/src/Core/EigenBase.h:49:60: error: 'static_cast' from type 'const Eigen::EigenBase<Eigen::Product<Eigen::Matrix<float, 1, 3, 3>, Eigen::Matrix<float, 3, 3, 3>, 0> >*' to type 'Eigen::Product<Eigen::Matrix<float, 1, 3, 3>, Eigen::Matrix<float, 3, 3, 3>, 0>*' casts away qualifiers
   49 |   EIGEN_DEVICE_FUNC constexpr Derived& derived() { return *static_cast<Derived*>(this); }
      |                                                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h: In instantiation of 'constexpr void Eigen::internal::call_assignment_no_alias(Dst&, const Src&, const Func&) [with Dst = Eigen::Matrix<float, 1, 3, 3>; Src = Eigen::Product<Eigen::Matrix<float, 1, 3, 3>, Eigen::Matrix<float, 3, 3, 3>, 0>; Func = assign_op<float, float>]':
/usr/include/eigen3/Eigen/src/Core/NoAlias.h:42:29:   required from 'ExpressionType& Eigen::NoAlias<ExpressionType, StorageBase>::operator=(const StorageBase<OtherDerived>&) [with OtherDerived = Eigen::Product<Eigen::Matrix<float, 1, 3, 3>, Eigen::Matrix<float, 3, 3, 3>, 0>; ExpressionType = Eigen::Matrix<float, 1, 3, 3>; StorageBase = Eigen::MatrixBase]'
   42 |     call_assignment_no_alias(m_expression, other.derived(),
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   43 |                              internal::assign_op<Scalar, typename OtherDerived::Scalar>());
      |                              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
built/include/lmatrix3_src.I:534:31:   required from here
  534 |   v_res._v.noalias() = v._v * _m;
      |                               ^~
/usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h:88:60: error: static assertion failed: THIS_EXPRESSION_IS_NOT_A_LVALUE__IT_IS_READ_ONLY
   88 |   EIGEN_STATIC_ASSERT(Eigen::internal::is_lvalue<Derived>::value, THIS_EXPRESSION_IS_NOT_A_LVALUE__IT_IS_READ_ONLY)
      |                                                            ^~~~~
/usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h:26:51: note: in definition of macro 'EIGEN_STATIC_ASSERT'
   26 | #define EIGEN_STATIC_ASSERT(X, MSG) static_assert(X, #MSG);
      |                                                   ^
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:916:3: note: in expansion of macro 'EIGEN_STATIC_ASSERT_LVALUE'
  916 |   EIGEN_STATIC_ASSERT_LVALUE(Dst)
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h:88:60: note: 'Eigen::internal::is_lvalue<Eigen::Matrix<float, 1, 3, 3> >::value' evaluates to false
   88 |   EIGEN_STATIC_ASSERT(Eigen::internal::is_lvalue<Derived>::value, THIS_EXPRESSION_IS_NOT_A_LVALUE__IT_IS_READ_ONLY)
      |                                                            ^~~~~
/usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h:26:51: note: in definition of macro 'EIGEN_STATIC_ASSERT'
   26 | #define EIGEN_STATIC_ASSERT(X, MSG) static_assert(X, #MSG);
      |                                                   ^
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:916:3: note: in expansion of macro 'EIGEN_STATIC_ASSERT_LVALUE'
  916 |   EIGEN_STATIC_ASSERT_LVALUE(Dst)
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:920:48: warning: unused variable 'run' [-Wunused-variable]
  920 |   Assignment<ActualDstTypeCleaned, Src, Func>::run(actualDst, src, func);
      |                                                ^~~
/usr/include/eigen3/Eigen/src/Core/EigenBase.h: In instantiation of 'constexpr Derived& Eigen::EigenBase<Derived>::derived() const [with Derived = Eigen::CwiseBinaryOp<Eigen::internal::scalar_sum_op<float, float>, const Eigen::Product<Eigen::Matrix<float, 1, 2, 3>, Eigen::Block<const Eigen::Matrix<float, 3, 3, 3>, 2, 2, false>, 0>, const Eigen::Block<const Eigen::Matrix<float, 3, 3, 3>, 1, 2, false> >]':
/usr/include/eigen3/Eigen/src/Core/NoAlias.h:42:57:   required from 'ExpressionType& Eigen::NoAlias<ExpressionType, StorageBase>::operator=(const StorageBase<OtherDerived>&) [with OtherDerived = Eigen::CwiseBinaryOp<Eigen::internal::scalar_sum_op<float, float>, const Eigen::Product<Eigen::Matrix<float, 1, 2, 3>, Eigen::Block<const Eigen::Matrix<float, 3, 3, 3>, 2, 2, false>, 0>, const Eigen::Block<const Eigen::Matrix<float, 3, 3, 3>, 1, 2, false> >; ExpressionType = Eigen::Matrix<float, 1, 2, 3>; StorageBase = Eigen::MatrixBase]'
   42 |     call_assignment_no_alias(m_expression, other.derived(),
      |                                            ~~~~~~~~~~~~~^~
built/include/lmatrix3_src.I:556:73:   required from here
  556 |   v_res._v.noalias() = v._v * _m.block<2, 2>(0, 0) + _m.block<1, 2>(2, 0);
      |                                                                         ^
/usr/include/eigen3/Eigen/src/Core/EigenBase.h:49:60: error: 'static_cast' from type 'const Eigen::EigenBase<Eigen::CwiseBinaryOp<Eigen::internal::scalar_sum_op<float, float>, const Eigen::Product<Eigen::Matrix<float, 1, 2, 3>, Eigen::Block<const Eigen::Matrix<float, 3, 3, 3>, 2, 2, false>, 0>, const Eigen::Block<const Eigen::Matrix<float, 3, 3, 3>, 1, 2, false> > >*' to type 'Eigen::CwiseBinaryOp<Eigen::internal::scalar_sum_op<float, float>, const Eigen::Product<Eigen::Matrix<float, 1, 2, 3>, Eigen::Block<const Eigen::Matrix<float, 3, 3, 3>, 2, 2, false>, 0>, const Eigen::Block<const Eigen::Matrix<float, 3, 3, 3>, 1, 2, false> >*' casts away qualifiers
   49 |   EIGEN_DEVICE_FUNC constexpr Derived& derived() { return *static_cast<Derived*>(this); }
      |                                                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h: In instantiation of 'constexpr void Eigen::internal::call_assignment_no_alias(Dst&, const Src&, const Func&) [with Dst = Eigen::Matrix<float, 1, 2, 3>; Src = Eigen::CwiseBinaryOp<scalar_sum_op<float, float>, const Eigen::Product<Eigen::Matrix<float, 1, 2, 3>, Eigen::Block<const Eigen::Matrix<float, 3, 3, 3>, 2, 2, false>, 0>, const Eigen::Block<const Eigen::Matrix<float, 3, 3, 3>, 1, 2, false> >; Func = assign_op<float, float>]':
/usr/include/eigen3/Eigen/src/Core/NoAlias.h:42:29:   required from 'ExpressionType& Eigen::NoAlias<ExpressionType, StorageBase>::operator=(const StorageBase<OtherDerived>&) [with OtherDerived = Eigen::CwiseBinaryOp<Eigen::internal::scalar_sum_op<float, float>, const Eigen::Product<Eigen::Matrix<float, 1, 2, 3>, Eigen::Block<const Eigen::Matrix<float, 3, 3, 3>, 2, 2, false>, 0>, const Eigen::Block<const Eigen::Matrix<float, 3, 3, 3>, 1, 2, false> >; ExpressionType = Eigen::Matrix<float, 1, 2, 3>; StorageBase = Eigen::MatrixBase]'
   42 |     call_assignment_no_alias(m_expression, other.derived(),
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   43 |                              internal::assign_op<Scalar, typename OtherDerived::Scalar>());
      |                              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
built/include/lmatrix3_src.I:556:73:   required from here
  556 |   v_res._v.noalias() = v._v * _m.block<2, 2>(0, 0) + _m.block<1, 2>(2, 0);
      |                                                                         ^
/usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h:88:60: error: static assertion failed: THIS_EXPRESSION_IS_NOT_A_LVALUE__IT_IS_READ_ONLY
   88 |   EIGEN_STATIC_ASSERT(Eigen::internal::is_lvalue<Derived>::value, THIS_EXPRESSION_IS_NOT_A_LVALUE__IT_IS_READ_ONLY)
      |                                                            ^~~~~
/usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h:26:51: note: in definition of macro 'EIGEN_STATIC_ASSERT'
   26 | #define EIGEN_STATIC_ASSERT(X, MSG) static_assert(X, #MSG);
      |                                                   ^
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:916:3: note: in expansion of macro 'EIGEN_STATIC_ASSERT_LVALUE'
  916 |   EIGEN_STATIC_ASSERT_LVALUE(Dst)
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h:88:60: note: 'Eigen::internal::is_lvalue<Eigen::Matrix<float, 1, 2, 3> >::value' evaluates to false
   88 |   EIGEN_STATIC_ASSERT(Eigen::internal::is_lvalue<Derived>::value, THIS_EXPRESSION_IS_NOT_A_LVALUE__IT_IS_READ_ONLY)
      |                                                            ^~~~~
/usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h:26:51: note: in definition of macro 'EIGEN_STATIC_ASSERT'
   26 | #define EIGEN_STATIC_ASSERT(X, MSG) static_assert(X, #MSG);
      |                                                   ^
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:916:3: note: in expansion of macro 'EIGEN_STATIC_ASSERT_LVALUE'
  916 |   EIGEN_STATIC_ASSERT_LVALUE(Dst)
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:920:48: warning: unused variable 'run' [-Wunused-variable]
  920 |   Assignment<ActualDstTypeCleaned, Src, Func>::run(actualDst, src, func);
      |                                                ^~~
/usr/include/eigen3/Eigen/src/Core/EigenBase.h: In instantiation of 'constexpr Derived& Eigen::EigenBase<Derived>::derived() const [with Derived = Eigen::Product<Eigen::Matrix<float, 1, 2, 3>, Eigen::Block<const Eigen::Matrix<float, 3, 3, 3>, 2, 2, false>, 0>]':
/usr/include/eigen3/Eigen/src/Core/NoAlias.h:42:57:   required from 'ExpressionType& Eigen::NoAlias<ExpressionType, StorageBase>::operator=(const StorageBase<OtherDerived>&) [with OtherDerived = Eigen::Product<Eigen::Matrix<float, 1, 2, 3>, Eigen::Block<const Eigen::Matrix<float, 3, 3, 3>, 2, 2, false>, 0>; ExpressionType = Eigen::Matrix<float, 1, 2, 3>; StorageBase = Eigen::MatrixBase]'
   42 |     call_assignment_no_alias(m_expression, other.derived(),
      |                                            ~~~~~~~~~~~~~^~
built/include/lmatrix3_src.I:578:50:   required from here
  578 |   v_res._v.noalias() = v._v * _m.block<2, 2>(0, 0);
      |                                                  ^
/usr/include/eigen3/Eigen/src/Core/EigenBase.h:49:60: error: 'static_cast' from type 'const Eigen::EigenBase<Eigen::Product<Eigen::Matrix<float, 1, 2, 3>, Eigen::Block<const Eigen::Matrix<float, 3, 3, 3>, 2, 2, false>, 0> >*' to type 'Eigen::Product<Eigen::Matrix<float, 1, 2, 3>, Eigen::Block<const Eigen::Matrix<float, 3, 3, 3>, 2, 2, false>, 0>*' casts away qualifiers
   49 |   EIGEN_DEVICE_FUNC constexpr Derived& derived() { return *static_cast<Derived*>(this); }
      |                                                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h: In instantiation of 'constexpr void Eigen::internal::call_assignment_no_alias(Dst&, const Src&, const Func&) [with Dst = Eigen::Matrix<float, 1, 2, 3>; Src = Eigen::Product<Eigen::Matrix<float, 1, 2, 3>, Eigen::Block<const Eigen::Matrix<float, 3, 3, 3>, 2, 2, false>, 0>; Func = assign_op<float, float>]':
/usr/include/eigen3/Eigen/src/Core/NoAlias.h:42:29:   required from 'ExpressionType& Eigen::NoAlias<ExpressionType, StorageBase>::operator=(const StorageBase<OtherDerived>&) [with OtherDerived = Eigen::Product<Eigen::Matrix<float, 1, 2, 3>, Eigen::Block<const Eigen::Matrix<float, 3, 3, 3>, 2, 2, false>, 0>; ExpressionType = Eigen::Matrix<float, 1, 2, 3>; StorageBase = Eigen::MatrixBase]'
   42 |     call_assignment_no_alias(m_expression, other.derived(),
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   43 |                              internal::assign_op<Scalar, typename OtherDerived::Scalar>());
      |                              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
built/include/lmatrix3_src.I:578:50:   required from here
  578 |   v_res._v.noalias() = v._v * _m.block<2, 2>(0, 0);
      |                                                  ^
/usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h:88:60: error: static assertion failed: THIS_EXPRESSION_IS_NOT_A_LVALUE__IT_IS_READ_ONLY
   88 |   EIGEN_STATIC_ASSERT(Eigen::internal::is_lvalue<Derived>::value, THIS_EXPRESSION_IS_NOT_A_LVALUE__IT_IS_READ_ONLY)
      |                                                            ^~~~~
/usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h:26:51: note: in definition of macro 'EIGEN_STATIC_ASSERT'
   26 | #define EIGEN_STATIC_ASSERT(X, MSG) static_assert(X, #MSG);
      |                                                   ^
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:916:3: note: in expansion of macro 'EIGEN_STATIC_ASSERT_LVALUE'
  916 |   EIGEN_STATIC_ASSERT_LVALUE(Dst)
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h:88:60: note: 'Eigen::internal::is_lvalue<Eigen::Matrix<float, 1, 2, 3> >::value' evaluates to false
   88 |   EIGEN_STATIC_ASSERT(Eigen::internal::is_lvalue<Derived>::value, THIS_EXPRESSION_IS_NOT_A_LVALUE__IT_IS_READ_ONLY)
      |                                                            ^~~~~
/usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h:26:51: note: in definition of macro 'EIGEN_STATIC_ASSERT'
   26 | #define EIGEN_STATIC_ASSERT(X, MSG) static_assert(X, #MSG);
      |                                                   ^
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:916:3: note: in expansion of macro 'EIGEN_STATIC_ASSERT_LVALUE'
  916 |   EIGEN_STATIC_ASSERT_LVALUE(Dst)
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:920:48: warning: unused variable 'run' [-Wunused-variable]
  920 |   Assignment<ActualDstTypeCleaned, Src, Func>::run(actualDst, src, func);
      |                                                ^~~
/usr/include/eigen3/Eigen/src/Core/EigenBase.h: In instantiation of 'constexpr Derived& Eigen::EigenBase<Derived>::derived() const [with Derived = Eigen::Product<Eigen::Matrix<double, 1, 4>, Eigen::Matrix<double, 4, 4, 1>, 0>]':
/usr/include/eigen3/Eigen/src/Core/NoAlias.h:42:57:   required from 'ExpressionType& Eigen::NoAlias<ExpressionType, StorageBase>::operator=(const StorageBase<OtherDerived>&) [with OtherDerived = Eigen::Product<Eigen::Matrix<double, 1, 4>, Eigen::Matrix<double, 4, 4, 1>, 0>; ExpressionType = Eigen::Matrix<double, 1, 4>; StorageBase = Eigen::MatrixBase]'
   42 |     call_assignment_no_alias(m_expression, other.derived(),
      |                                            ~~~~~~~~~~~~~^~
built/include/lmatrix4_src.I:763:31:   required from here
  763 |   v_res._v.noalias() = v._v * _m;
      |                               ^~
/usr/include/eigen3/Eigen/src/Core/EigenBase.h:49:60: error: 'static_cast' from type 'const Eigen::EigenBase<Eigen::Product<Eigen::Matrix<double, 1, 4>, Eigen::Matrix<double, 4, 4, 1>, 0> >*' to type 'Eigen::Product<Eigen::Matrix<double, 1, 4>, Eigen::Matrix<double, 4, 4, 1>, 0>*' casts away qualifiers
   49 |   EIGEN_DEVICE_FUNC constexpr Derived& derived() { return *static_cast<Derived*>(this); }
      |                                                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h: In instantiation of 'constexpr void Eigen::internal::call_assignment_no_alias(Dst&, const Src&, const Func&) [with Dst = Eigen::Matrix<double, 1, 4>; Src = Eigen::Product<Eigen::Matrix<double, 1, 4>, Eigen::Matrix<double, 4, 4, 1>, 0>; Func = assign_op<double, double>]':
/usr/include/eigen3/Eigen/src/Core/NoAlias.h:42:29:   required from 'ExpressionType& Eigen::NoAlias<ExpressionType, StorageBase>::operator=(const StorageBase<OtherDerived>&) [with OtherDerived = Eigen::Product<Eigen::Matrix<double, 1, 4>, Eigen::Matrix<double, 4, 4, 1>, 0>; ExpressionType = Eigen::Matrix<double, 1, 4>; StorageBase = Eigen::MatrixBase]'
   42 |     call_assignment_no_alias(m_expression, other.derived(),
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   43 |                              internal::assign_op<Scalar, typename OtherDerived::Scalar>());
      |                              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
built/include/lmatrix4_src.I:763:31:   required from here
  763 |   v_res._v.noalias() = v._v * _m;
      |                               ^~
/usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h:88:60: error: static assertion failed: THIS_EXPRESSION_IS_NOT_A_LVALUE__IT_IS_READ_ONLY
   88 |   EIGEN_STATIC_ASSERT(Eigen::internal::is_lvalue<Derived>::value, THIS_EXPRESSION_IS_NOT_A_LVALUE__IT_IS_READ_ONLY)
      |                                                            ^~~~~
/usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h:26:51: note: in definition of macro 'EIGEN_STATIC_ASSERT'
   26 | #define EIGEN_STATIC_ASSERT(X, MSG) static_assert(X, #MSG);
      |                                                   ^
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:916:3: note: in expansion of macro 'EIGEN_STATIC_ASSERT_LVALUE'
  916 |   EIGEN_STATIC_ASSERT_LVALUE(Dst)
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h:88:60: note: 'Eigen::internal::is_lvalue<Eigen::Matrix<double, 1, 4> >::value' evaluates to false
   88 |   EIGEN_STATIC_ASSERT(Eigen::internal::is_lvalue<Derived>::value, THIS_EXPRESSION_IS_NOT_A_LVALUE__IT_IS_READ_ONLY)
      |                                                            ^~~~~
/usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h:26:51: note: in definition of macro 'EIGEN_STATIC_ASSERT'
   26 | #define EIGEN_STATIC_ASSERT(X, MSG) static_assert(X, #MSG);
      |                                                   ^
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:916:3: note: in expansion of macro 'EIGEN_STATIC_ASSERT_LVALUE'
  916 |   EIGEN_STATIC_ASSERT_LVALUE(Dst)
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:920:48: warning: unused variable 'run' [-Wunused-variable]
  920 |   Assignment<ActualDstTypeCleaned, Src, Func>::run(actualDst, src, func);
      |                                                ^~~
/usr/include/eigen3/Eigen/src/Core/EigenBase.h: In instantiation of 'constexpr Derived& Eigen::EigenBase<Derived>::derived() const [with Derived = Eigen::CwiseBinaryOp<Eigen::internal::scalar_sum_op<double, double>, const Eigen::Product<Eigen::Matrix<double, 1, 3, 3>, Eigen::Block<const Eigen::Matrix<double, 4, 4, 1>, 3, 3, false>, 0>, const Eigen::Block<const Eigen::Matrix<double, 4, 4, 1>, 1, 3, false> >]':
/usr/include/eigen3/Eigen/src/Core/NoAlias.h:42:57:   required from 'ExpressionType& Eigen::NoAlias<ExpressionType, StorageBase>::operator=(const StorageBase<OtherDerived>&) [with OtherDerived = Eigen::CwiseBinaryOp<Eigen::internal::scalar_sum_op<double, double>, const Eigen::Product<Eigen::Matrix<double, 1, 3, 3>, Eigen::Block<const Eigen::Matrix<double, 4, 4, 1>, 3, 3, false>, 0>, const Eigen::Block<const Eigen::Matrix<double, 4, 4, 1>, 1, 3, false> >; ExpressionType = Eigen::Matrix<double, 1, 3, 3>; StorageBase = Eigen::MatrixBase]'
   42 |     call_assignment_no_alias(m_expression, other.derived(),
      |                                            ~~~~~~~~~~~~~^~
built/include/lmatrix4_src.I:784:73:   required from here
  784 |   v_res._v.noalias() = v._v * _m.block<3, 3>(0, 0) + _m.block<1, 3>(3, 0);
      |                                                                         ^
/usr/include/eigen3/Eigen/src/Core/EigenBase.h:49:60: error: 'static_cast' from type 'const Eigen::EigenBase<Eigen::CwiseBinaryOp<Eigen::internal::scalar_sum_op<double, double>, const Eigen::Product<Eigen::Matrix<double, 1, 3, 3>, Eigen::Block<const Eigen::Matrix<double, 4, 4, 1>, 3, 3, false>, 0>, const Eigen::Block<const Eigen::Matrix<double, 4, 4, 1>, 1, 3, false> > >*' to type 'Eigen::CwiseBinaryOp<Eigen::internal::scalar_sum_op<double, double>, const Eigen::Product<Eigen::Matrix<double, 1, 3, 3>, Eigen::Block<const Eigen::Matrix<double, 4, 4, 1>, 3, 3, false>, 0>, const Eigen::Block<const Eigen::Matrix<double, 4, 4, 1>, 1, 3, false> >*' casts away qualifiers
   49 |   EIGEN_DEVICE_FUNC constexpr Derived& derived() { return *static_cast<Derived*>(this); }
      |                                                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h: In instantiation of 'constexpr void Eigen::internal::call_assignment_no_alias(Dst&, const Src&, const Func&) [with Dst = Eigen::Matrix<double, 1, 3, 3>; Src = Eigen::CwiseBinaryOp<scalar_sum_op<double, double>, const Eigen::Product<Eigen::Matrix<double, 1, 3, 3>, Eigen::Block<const Eigen::Matrix<double, 4, 4, 1>, 3, 3, false>, 0>, const Eigen::Block<const Eigen::Matrix<double, 4, 4, 1>, 1, 3, false> >; Func = assign_op<double, double>]':
/usr/include/eigen3/Eigen/src/Core/NoAlias.h:42:29:   required from 'ExpressionType& Eigen::NoAlias<ExpressionType, StorageBase>::operator=(const StorageBase<OtherDerived>&) [with OtherDerived = Eigen::CwiseBinaryOp<Eigen::internal::scalar_sum_op<double, double>, const Eigen::Product<Eigen::Matrix<double, 1, 3, 3>, Eigen::Block<const Eigen::Matrix<double, 4, 4, 1>, 3, 3, false>, 0>, const Eigen::Block<const Eigen::Matrix<double, 4, 4, 1>, 1, 3, false> >; ExpressionType = Eigen::Matrix<double, 1, 3, 3>; StorageBase = Eigen::MatrixBase]'
   42 |     call_assignment_no_alias(m_expression, other.derived(),
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   43 |                              internal::assign_op<Scalar, typename OtherDerived::Scalar>());
      |                              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
built/include/lmatrix4_src.I:784:73:   required from here
  784 |   v_res._v.noalias() = v._v * _m.block<3, 3>(0, 0) + _m.block<1, 3>(3, 0);
      |                                                                         ^
/usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h:88:60: error: static assertion failed: THIS_EXPRESSION_IS_NOT_A_LVALUE__IT_IS_READ_ONLY
   88 |   EIGEN_STATIC_ASSERT(Eigen::internal::is_lvalue<Derived>::value, THIS_EXPRESSION_IS_NOT_A_LVALUE__IT_IS_READ_ONLY)
      |                                                            ^~~~~
/usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h:26:51: note: in definition of macro 'EIGEN_STATIC_ASSERT'
   26 | #define EIGEN_STATIC_ASSERT(X, MSG) static_assert(X, #MSG);
      |                                                   ^
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:916:3: note: in expansion of macro 'EIGEN_STATIC_ASSERT_LVALUE'
  916 |   EIGEN_STATIC_ASSERT_LVALUE(Dst)
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h:88:60: note: 'Eigen::internal::is_lvalue<Eigen::Matrix<double, 1, 3, 3> >::value' evaluates to false
   88 |   EIGEN_STATIC_ASSERT(Eigen::internal::is_lvalue<Derived>::value, THIS_EXPRESSION_IS_NOT_A_LVALUE__IT_IS_READ_ONLY)
      |                                                            ^~~~~
/usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h:26:51: note: in definition of macro 'EIGEN_STATIC_ASSERT'
   26 | #define EIGEN_STATIC_ASSERT(X, MSG) static_assert(X, #MSG);
      |                                                   ^
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:916:3: note: in expansion of macro 'EIGEN_STATIC_ASSERT_LVALUE'
  916 |   EIGEN_STATIC_ASSERT_LVALUE(Dst)
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:920:48: warning: unused variable 'run' [-Wunused-variable]
  920 |   Assignment<ActualDstTypeCleaned, Src, Func>::run(actualDst, src, func);
      |                                                ^~~
/usr/include/eigen3/Eigen/src/Core/EigenBase.h: In instantiation of 'constexpr Derived& Eigen::EigenBase<Derived>::derived() const [with Derived = Eigen::Product<Eigen::Matrix<double, 1, 3, 3>, Eigen::Block<const Eigen::Matrix<double, 4, 4, 1>, 3, 3, false>, 0>]':
/usr/include/eigen3/Eigen/src/Core/NoAlias.h:42:57:   required from 'ExpressionType& Eigen::NoAlias<ExpressionType, StorageBase>::operator=(const StorageBase<OtherDerived>&) [with OtherDerived = Eigen::Product<Eigen::Matrix<double, 1, 3, 3>, Eigen::Block<const Eigen::Matrix<double, 4, 4, 1>, 3, 3, false>, 0>; ExpressionType = Eigen::Matrix<double, 1, 3, 3>; StorageBase = Eigen::MatrixBase]'
   42 |     call_assignment_no_alias(m_expression, other.derived(),
      |                                            ~~~~~~~~~~~~~^~
built/include/lmatrix4_src.I:819:50:   required from here
  819 |   v_res._v.noalias() = v._v * _m.block<3, 3>(0, 0);
      |                                                  ^
/usr/include/eigen3/Eigen/src/Core/EigenBase.h:49:60: error: 'static_cast' from type 'const Eigen::EigenBase<Eigen::Product<Eigen::Matrix<double, 1, 3, 3>, Eigen::Block<const Eigen::Matrix<double, 4, 4, 1>, 3, 3, false>, 0> >*' to type 'Eigen::Product<Eigen::Matrix<double, 1, 3, 3>, Eigen::Block<const Eigen::Matrix<double, 4, 4, 1>, 3, 3, false>, 0>*' casts away qualifiers
   49 |   EIGEN_DEVICE_FUNC constexpr Derived& derived() { return *static_cast<Derived*>(this); }
      |                                                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h: In instantiation of 'constexpr void Eigen::internal::call_assignment_no_alias(Dst&, const Src&, const Func&) [with Dst = Eigen::Matrix<double, 1, 3, 3>; Src = Eigen::Product<Eigen::Matrix<double, 1, 3, 3>, Eigen::Block<const Eigen::Matrix<double, 4, 4, 1>, 3, 3, false>, 0>; Func = assign_op<double, double>]':
/usr/include/eigen3/Eigen/src/Core/NoAlias.h:42:29:   required from 'ExpressionType& Eigen::NoAlias<ExpressionType, StorageBase>::operator=(const StorageBase<OtherDerived>&) [with OtherDerived = Eigen::Product<Eigen::Matrix<double, 1, 3, 3>, Eigen::Block<const Eigen::Matrix<double, 4, 4, 1>, 3, 3, false>, 0>; ExpressionType = Eigen::Matrix<double, 1, 3, 3>; StorageBase = Eigen::MatrixBase]'
   42 |     call_assignment_no_alias(m_expression, other.derived(),
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   43 |                              internal::assign_op<Scalar, typename OtherDerived::Scalar>());
      |                              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
built/include/lmatrix4_src.I:819:50:   required from here
  819 |   v_res._v.noalias() = v._v * _m.block<3, 3>(0, 0);
      |                                                  ^
/usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h:88:60: error: static assertion failed: THIS_EXPRESSION_IS_NOT_A_LVALUE__IT_IS_READ_ONLY
   88 |   EIGEN_STATIC_ASSERT(Eigen::internal::is_lvalue<Derived>::value, THIS_EXPRESSION_IS_NOT_A_LVALUE__IT_IS_READ_ONLY)
      |                                                            ^~~~~
/usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h:26:51: note: in definition of macro 'EIGEN_STATIC_ASSERT'
   26 | #define EIGEN_STATIC_ASSERT(X, MSG) static_assert(X, #MSG);
      |                                                   ^
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:916:3: note: in expansion of macro 'EIGEN_STATIC_ASSERT_LVALUE'
  916 |   EIGEN_STATIC_ASSERT_LVALUE(Dst)
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h:88:60: note: 'Eigen::internal::is_lvalue<Eigen::Matrix<double, 1, 3, 3> >::value' evaluates to false
   88 |   EIGEN_STATIC_ASSERT(Eigen::internal::is_lvalue<Derived>::value, THIS_EXPRESSION_IS_NOT_A_LVALUE__IT_IS_READ_ONLY)
      |                                                            ^~~~~
/usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h:26:51: note: in definition of macro 'EIGEN_STATIC_ASSERT'
   26 | #define EIGEN_STATIC_ASSERT(X, MSG) static_assert(X, #MSG);
      |                                                   ^
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:916:3: note: in expansion of macro 'EIGEN_STATIC_ASSERT_LVALUE'
  916 |   EIGEN_STATIC_ASSERT_LVALUE(Dst)
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:920:48: warning: unused variable 'run' [-Wunused-variable]
  920 |   Assignment<ActualDstTypeCleaned, Src, Func>::run(actualDst, src, func);
      |                                                ^~~
/usr/include/eigen3/Eigen/src/Core/EigenBase.h: In instantiation of 'constexpr Derived& Eigen::EigenBase<Derived>::derived() const [with Derived = Eigen::Product<Eigen::Matrix<double, 4, 4, 1>, Eigen::Matrix<double, 4, 4, 1>, 0>]':
/usr/include/eigen3/Eigen/src/Core/NoAlias.h:42:57:   required from 'ExpressionType& Eigen::NoAlias<ExpressionType, StorageBase>::operator=(const StorageBase<OtherDerived>&) [with OtherDerived = Eigen::Product<Eigen::Matrix<double, 4, 4, 1>, Eigen::Matrix<double, 4, 4, 1>, 0>; ExpressionType = Eigen::Matrix<double, 4, 4, 1>; StorageBase = Eigen::MatrixBase]'
   42 |     call_assignment_no_alias(m_expression, other.derived(),
      |                                            ~~~~~~~~~~~~~^~
built/include/lmatrix4_src.I:959:37:   required from here
  959 |   _m.noalias() = other1._m * other2._m;
      |                                     ^~
/usr/include/eigen3/Eigen/src/Core/EigenBase.h:49:60: error: 'static_cast' from type 'const Eigen::EigenBase<Eigen::Product<Eigen::Matrix<double, 4, 4, 1>, Eigen::Matrix<double, 4, 4, 1>, 0> >*' to type 'Eigen::Product<Eigen::Matrix<double, 4, 4, 1>, Eigen::Matrix<double, 4, 4, 1>, 0>*' casts away qualifiers
   49 |   EIGEN_DEVICE_FUNC constexpr Derived& derived() { return *static_cast<Derived*>(this); }
      |                                                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h: In instantiation of 'constexpr void Eigen::internal::call_assignment_no_alias(Dst&, const Src&, const Func&) [with Dst = Eigen::Matrix<double, 4, 4, 1>; Src = Eigen::Product<Eigen::Matrix<double, 4, 4, 1>, Eigen::Matrix<double, 4, 4, 1>, 0>; Func = assign_op<double, double>]':
/usr/include/eigen3/Eigen/src/Core/NoAlias.h:42:29:   required from 'ExpressionType& Eigen::NoAlias<ExpressionType, StorageBase>::operator=(const StorageBase<OtherDerived>&) [with OtherDerived = Eigen::Product<Eigen::Matrix<double, 4, 4, 1>, Eigen::Matrix<double, 4, 4, 1>, 0>; ExpressionType = Eigen::Matrix<double, 4, 4, 1>; StorageBase = Eigen::MatrixBase]'
   42 |     call_assignment_no_alias(m_expression, other.derived(),
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   43 |                              internal::assign_op<Scalar, typename OtherDerived::Scalar>());
      |                              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
built/include/lmatrix4_src.I:959:37:   required from here
  959 |   _m.noalias() = other1._m * other2._m;
      |                                     ^~
/usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h:88:60: error: static assertion failed: THIS_EXPRESSION_IS_NOT_A_LVALUE__IT_IS_READ_ONLY
   88 |   EIGEN_STATIC_ASSERT(Eigen::internal::is_lvalue<Derived>::value, THIS_EXPRESSION_IS_NOT_A_LVALUE__IT_IS_READ_ONLY)
      |                                                            ^~~~~
/usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h:26:51: note: in definition of macro 'EIGEN_STATIC_ASSERT'
   26 | #define EIGEN_STATIC_ASSERT(X, MSG) static_assert(X, #MSG);
      |                                                   ^
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:916:3: note: in expansion of macro 'EIGEN_STATIC_ASSERT_LVALUE'
  916 |   EIGEN_STATIC_ASSERT_LVALUE(Dst)
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h:88:60: note: 'Eigen::internal::is_lvalue<Eigen::Matrix<double, 4, 4, 1> >::value' evaluates to false
   88 |   EIGEN_STATIC_ASSERT(Eigen::internal::is_lvalue<Derived>::value, THIS_EXPRESSION_IS_NOT_A_LVALUE__IT_IS_READ_ONLY)
      |                                                            ^~~~~
/usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h:26:51: note: in definition of macro 'EIGEN_STATIC_ASSERT'
   26 | #define EIGEN_STATIC_ASSERT(X, MSG) static_assert(X, #MSG);
      |                                                   ^
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:916:3: note: in expansion of macro 'EIGEN_STATIC_ASSERT_LVALUE'
  916 |   EIGEN_STATIC_ASSERT_LVALUE(Dst)
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:920:48: warning: unused variable 'run' [-Wunused-variable]
  920 |   Assignment<ActualDstTypeCleaned, Src, Func>::run(actualDst, src, func);
      |                                                ^~~
/usr/include/eigen3/Eigen/src/Core/EigenBase.h: In instantiation of 'constexpr Derived& Eigen::EigenBase<Derived>::derived() const [with Derived = Eigen::Product<Eigen::Matrix<double, 1, 3, 3>, Eigen::Matrix<double, 3, 3, 3>, 0>]':
/usr/include/eigen3/Eigen/src/Core/NoAlias.h:42:57:   required from 'ExpressionType& Eigen::NoAlias<ExpressionType, StorageBase>::operator=(const StorageBase<OtherDerived>&) [with OtherDerived = Eigen::Product<Eigen::Matrix<double, 1, 3, 3>, Eigen::Matrix<double, 3, 3, 3>, 0>; ExpressionType = Eigen::Matrix<double, 1, 3, 3>; StorageBase = Eigen::MatrixBase]'
   42 |     call_assignment_no_alias(m_expression, other.derived(),
      |                                            ~~~~~~~~~~~~~^~
built/include/lmatrix3_src.I:534:31:   required from here
  534 |   v_res._v.noalias() = v._v * _m;
      |                               ^~
/usr/include/eigen3/Eigen/src/Core/EigenBase.h:49:60: error: 'static_cast' from type 'const Eigen::EigenBase<Eigen::Product<Eigen::Matrix<double, 1, 3, 3>, Eigen::Matrix<double, 3, 3, 3>, 0> >*' to type 'Eigen::Product<Eigen::Matrix<double, 1, 3, 3>, Eigen::Matrix<double, 3, 3, 3>, 0>*' casts away qualifiers
   49 |   EIGEN_DEVICE_FUNC constexpr Derived& derived() { return *static_cast<Derived*>(this); }
      |                                                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h: In instantiation of 'constexpr void Eigen::internal::call_assignment_no_alias(Dst&, const Src&, const Func&) [with Dst = Eigen::Matrix<double, 1, 3, 3>; Src = Eigen::Product<Eigen::Matrix<double, 1, 3, 3>, Eigen::Matrix<double, 3, 3, 3>, 0>; Func = assign_op<double, double>]':
/usr/include/eigen3/Eigen/src/Core/NoAlias.h:42:29:   required from 'ExpressionType& Eigen::NoAlias<ExpressionType, StorageBase>::operator=(const StorageBase<OtherDerived>&) [with OtherDerived = Eigen::Product<Eigen::Matrix<double, 1, 3, 3>, Eigen::Matrix<double, 3, 3, 3>, 0>; ExpressionType = Eigen::Matrix<double, 1, 3, 3>; StorageBase = Eigen::MatrixBase]'
   42 |     call_assignment_no_alias(m_expression, other.derived(),
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   43 |                              internal::assign_op<Scalar, typename OtherDerived::Scalar>());
      |                              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
built/include/lmatrix3_src.I:534:31:   required from here
  534 |   v_res._v.noalias() = v._v * _m;
      |                               ^~
/usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h:88:60: error: static assertion failed: THIS_EXPRESSION_IS_NOT_A_LVALUE__IT_IS_READ_ONLY
   88 |   EIGEN_STATIC_ASSERT(Eigen::internal::is_lvalue<Derived>::value, THIS_EXPRESSION_IS_NOT_A_LVALUE__IT_IS_READ_ONLY)
      |                                                            ^~~~~
/usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h:26:51: note: in definition of macro 'EIGEN_STATIC_ASSERT'
   26 | #define EIGEN_STATIC_ASSERT(X, MSG) static_assert(X, #MSG);
      |                                                   ^
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:916:3: note: in expansion of macro 'EIGEN_STATIC_ASSERT_LVALUE'
  916 |   EIGEN_STATIC_ASSERT_LVALUE(Dst)
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h:88:60: note: 'Eigen::internal::is_lvalue<Eigen::Matrix<double, 1, 3, 3> >::value' evaluates to false
   88 |   EIGEN_STATIC_ASSERT(Eigen::internal::is_lvalue<Derived>::value, THIS_EXPRESSION_IS_NOT_A_LVALUE__IT_IS_READ_ONLY)
      |                                                            ^~~~~
/usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h:26:51: note: in definition of macro 'EIGEN_STATIC_ASSERT'
   26 | #define EIGEN_STATIC_ASSERT(X, MSG) static_assert(X, #MSG);
      |                                                   ^
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:916:3: note: in expansion of macro 'EIGEN_STATIC_ASSERT_LVALUE'
  916 |   EIGEN_STATIC_ASSERT_LVALUE(Dst)
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:920:48: warning: unused variable 'run' [-Wunused-variable]
  920 |   Assignment<ActualDstTypeCleaned, Src, Func>::run(actualDst, src, func);
      |                                                ^~~
/usr/include/eigen3/Eigen/src/Core/EigenBase.h: In instantiation of 'constexpr Derived& Eigen::EigenBase<Derived>::derived() const [with Derived = Eigen::CwiseBinaryOp<Eigen::internal::scalar_sum_op<double, double>, const Eigen::Product<Eigen::Matrix<double, 1, 2, 3>, Eigen::Block<const Eigen::Matrix<double, 3, 3, 3>, 2, 2, false>, 0>, const Eigen::Block<const Eigen::Matrix<double, 3, 3, 3>, 1, 2, false> >]':
/usr/include/eigen3/Eigen/src/Core/NoAlias.h:42:57:   required from 'ExpressionType& Eigen::NoAlias<ExpressionType, StorageBase>::operator=(const StorageBase<OtherDerived>&) [with OtherDerived = Eigen::CwiseBinaryOp<Eigen::internal::scalar_sum_op<double, double>, const Eigen::Product<Eigen::Matrix<double, 1, 2, 3>, Eigen::Block<const Eigen::Matrix<double, 3, 3, 3>, 2, 2, false>, 0>, const Eigen::Block<const Eigen::Matrix<double, 3, 3, 3>, 1, 2, false> >; ExpressionType = Eigen::Matrix<double, 1, 2, 3>; StorageBase = Eigen::MatrixBase]'
   42 |     call_assignment_no_alias(m_expression, other.derived(),
      |                                            ~~~~~~~~~~~~~^~
built/include/lmatrix3_src.I:556:73:   required from here
  556 |   v_res._v.noalias() = v._v * _m.block<2, 2>(0, 0) + _m.block<1, 2>(2, 0);
      |                                                                         ^
/usr/include/eigen3/Eigen/src/Core/EigenBase.h:49:60: error: 'static_cast' from type 'const Eigen::EigenBase<Eigen::CwiseBinaryOp<Eigen::internal::scalar_sum_op<double, double>, const Eigen::Product<Eigen::Matrix<double, 1, 2, 3>, Eigen::Block<const Eigen::Matrix<double, 3, 3, 3>, 2, 2, false>, 0>, const Eigen::Block<const Eigen::Matrix<double, 3, 3, 3>, 1, 2, false> > >*' to type 'Eigen::CwiseBinaryOp<Eigen::internal::scalar_sum_op<double, double>, const Eigen::Product<Eigen::Matrix<double, 1, 2, 3>, Eigen::Block<const Eigen::Matrix<double, 3, 3, 3>, 2, 2, false>, 0>, const Eigen::Block<const Eigen::Matrix<double, 3, 3, 3>, 1, 2, false> >*' casts away qualifiers
   49 |   EIGEN_DEVICE_FUNC constexpr Derived& derived() { return *static_cast<Derived*>(this); }
      |                                                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h: In instantiation of 'constexpr void Eigen::internal::call_assignment_no_alias(Dst&, const Src&, const Func&) [with Dst = Eigen::Matrix<double, 1, 2, 3>; Src = Eigen::CwiseBinaryOp<scalar_sum_op<double, double>, const Eigen::Product<Eigen::Matrix<double, 1, 2, 3>, Eigen::Block<const Eigen::Matrix<double, 3, 3, 3>, 2, 2, false>, 0>, const Eigen::Block<const Eigen::Matrix<double, 3, 3, 3>, 1, 2, false> >; Func = assign_op<double, double>]':
/usr/include/eigen3/Eigen/src/Core/NoAlias.h:42:29:   required from 'ExpressionType& Eigen::NoAlias<ExpressionType, StorageBase>::operator=(const StorageBase<OtherDerived>&) [with OtherDerived = Eigen::CwiseBinaryOp<Eigen::internal::scalar_sum_op<double, double>, const Eigen::Product<Eigen::Matrix<double, 1, 2, 3>, Eigen::Block<const Eigen::Matrix<double, 3, 3, 3>, 2, 2, false>, 0>, const Eigen::Block<const Eigen::Matrix<double, 3, 3, 3>, 1, 2, false> >; ExpressionType = Eigen::Matrix<double, 1, 2, 3>; StorageBase = Eigen::MatrixBase]'
   42 |     call_assignment_no_alias(m_expression, other.derived(),
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   43 |                              internal::assign_op<Scalar, typename OtherDerived::Scalar>());
      |                              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
built/include/lmatrix3_src.I:556:73:   required from here
  556 |   v_res._v.noalias() = v._v * _m.block<2, 2>(0, 0) + _m.block<1, 2>(2, 0);
      |                                                                         ^
/usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h:88:60: error: static assertion failed: THIS_EXPRESSION_IS_NOT_A_LVALUE__IT_IS_READ_ONLY
   88 |   EIGEN_STATIC_ASSERT(Eigen::internal::is_lvalue<Derived>::value, THIS_EXPRESSION_IS_NOT_A_LVALUE__IT_IS_READ_ONLY)
      |                                                            ^~~~~
/usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h:26:51: note: in definition of macro 'EIGEN_STATIC_ASSERT'
   26 | #define EIGEN_STATIC_ASSERT(X, MSG) static_assert(X, #MSG);
      |                                                   ^
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:916:3: note: in expansion of macro 'EIGEN_STATIC_ASSERT_LVALUE'
  916 |   EIGEN_STATIC_ASSERT_LVALUE(Dst)
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h:88:60: note: 'Eigen::internal::is_lvalue<Eigen::Matrix<double, 1, 2, 3> >::value' evaluates to false
   88 |   EIGEN_STATIC_ASSERT(Eigen::internal::is_lvalue<Derived>::value, THIS_EXPRESSION_IS_NOT_A_LVALUE__IT_IS_READ_ONLY)
      |                                                            ^~~~~
/usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h:26:51: note: in definition of macro 'EIGEN_STATIC_ASSERT'
   26 | #define EIGEN_STATIC_ASSERT(X, MSG) static_assert(X, #MSG);
      |                                                   ^
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:916:3: note: in expansion of macro 'EIGEN_STATIC_ASSERT_LVALUE'
  916 |   EIGEN_STATIC_ASSERT_LVALUE(Dst)
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:920:48: warning: unused variable 'run' [-Wunused-variable]
  920 |   Assignment<ActualDstTypeCleaned, Src, Func>::run(actualDst, src, func);
      |                                                ^~~
/usr/include/eigen3/Eigen/src/Core/EigenBase.h: In instantiation of 'constexpr Derived& Eigen::EigenBase<Derived>::derived() const [with Derived = Eigen::Product<Eigen::Matrix<double, 1, 2, 3>, Eigen::Block<const Eigen::Matrix<double, 3, 3, 3>, 2, 2, false>, 0>]':
/usr/include/eigen3/Eigen/src/Core/NoAlias.h:42:57:   required from 'ExpressionType& Eigen::NoAlias<ExpressionType, StorageBase>::operator=(const StorageBase<OtherDerived>&) [with OtherDerived = Eigen::Product<Eigen::Matrix<double, 1, 2, 3>, Eigen::Block<const Eigen::Matrix<double, 3, 3, 3>, 2, 2, false>, 0>; ExpressionType = Eigen::Matrix<double, 1, 2, 3>; StorageBase = Eigen::MatrixBase]'
   42 |     call_assignment_no_alias(m_expression, other.derived(),
      |                                            ~~~~~~~~~~~~~^~
built/include/lmatrix3_src.I:578:50:   required from here
  578 |   v_res._v.noalias() = v._v * _m.block<2, 2>(0, 0);
      |                                                  ^
/usr/include/eigen3/Eigen/src/Core/EigenBase.h:49:60: error: 'static_cast' from type 'const Eigen::EigenBase<Eigen::Product<Eigen::Matrix<double, 1, 2, 3>, Eigen::Block<const Eigen::Matrix<double, 3, 3, 3>, 2, 2, false>, 0> >*' to type 'Eigen::Product<Eigen::Matrix<double, 1, 2, 3>, Eigen::Block<const Eigen::Matrix<double, 3, 3, 3>, 2, 2, false>, 0>*' casts away qualifiers
   49 |   EIGEN_DEVICE_FUNC constexpr Derived& derived() { return *static_cast<Derived*>(this); }
      |                                                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h: In instantiation of 'constexpr void Eigen::internal::call_assignment_no_alias(Dst&, const Src&, const Func&) [with Dst = Eigen::Matrix<double, 1, 2, 3>; Src = Eigen::Product<Eigen::Matrix<double, 1, 2, 3>, Eigen::Block<const Eigen::Matrix<double, 3, 3, 3>, 2, 2, false>, 0>; Func = assign_op<double, double>]':
/usr/include/eigen3/Eigen/src/Core/NoAlias.h:42:29:   required from 'ExpressionType& Eigen::NoAlias<ExpressionType, StorageBase>::operator=(const StorageBase<OtherDerived>&) [with OtherDerived = Eigen::Product<Eigen::Matrix<double, 1, 2, 3>, Eigen::Block<const Eigen::Matrix<double, 3, 3, 3>, 2, 2, false>, 0>; ExpressionType = Eigen::Matrix<double, 1, 2, 3>; StorageBase = Eigen::MatrixBase]'
   42 |     call_assignment_no_alias(m_expression, other.derived(),
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   43 |                              internal::assign_op<Scalar, typename OtherDerived::Scalar>());
      |                              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
built/include/lmatrix3_src.I:578:50:   required from here
  578 |   v_res._v.noalias() = v._v * _m.block<2, 2>(0, 0);
      |                                                  ^
/usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h:88:60: error: static assertion failed: THIS_EXPRESSION_IS_NOT_A_LVALUE__IT_IS_READ_ONLY
   88 |   EIGEN_STATIC_ASSERT(Eigen::internal::is_lvalue<Derived>::value, THIS_EXPRESSION_IS_NOT_A_LVALUE__IT_IS_READ_ONLY)
      |                                                            ^~~~~
/usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h:26:51: note: in definition of macro 'EIGEN_STATIC_ASSERT'
   26 | #define EIGEN_STATIC_ASSERT(X, MSG) static_assert(X, #MSG);
      |                                                   ^
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:916:3: note: in expansion of macro 'EIGEN_STATIC_ASSERT_LVALUE'
  916 |   EIGEN_STATIC_ASSERT_LVALUE(Dst)
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h:88:60: note: 'Eigen::internal::is_lvalue<Eigen::Matrix<double, 1, 2, 3> >::value' evaluates to false
   88 |   EIGEN_STATIC_ASSERT(Eigen::internal::is_lvalue<Derived>::value, THIS_EXPRESSION_IS_NOT_A_LVALUE__IT_IS_READ_ONLY)
      |                                                            ^~~~~
/usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h:26:51: note: in definition of macro 'EIGEN_STATIC_ASSERT'
   26 | #define EIGEN_STATIC_ASSERT(X, MSG) static_assert(X, #MSG);
      |                                                   ^
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:916:3: note: in expansion of macro 'EIGEN_STATIC_ASSERT_LVALUE'
  916 |   EIGEN_STATIC_ASSERT_LVALUE(Dst)
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:920:48: warning: unused variable 'run' [-Wunused-variable]
  920 |   Assignment<ActualDstTypeCleaned, Src, Func>::run(actualDst, src, func);
      |                                                ^~~
/usr/include/eigen3/Eigen/src/Core/MathFunctions.h: In instantiation of 'bool Eigen::numext::isfinite(const T&) [with T = float]':
/usr/include/eigen3/Eigen/src/Core/arch/Default/GenericPacketMathFunctions.h:897:47:   required from 'Packet Eigen::internal::psincos_float(const Packet&) [with bool ComputeSine = true; Packet = __vector(4) float; bool ComputeBoth = false]'
  897 |       if (val >= huge_th && (numext::isfinite)(val)) x_cpy[k] = trig_reduce_huge(val, &y_int2[k]);
      |                             ~~~~~~~~~~~~~~~~~~^~~~~
/usr/include/eigen3/Eigen/src/Core/arch/Default/GenericPacketMathFunctions.h:957:29:   required from 'Packet Eigen::internal::psin_float(const Packet&) [with Packet = __vector(4) float]'
  957 |   return psincos_float<true>(x);
      |          ~~~~~~~~~~~~~~~~~~~^~~
/usr/include/eigen3/Eigen/src/Core/arch/SSE/MathFunctions.h:25:1:   required from here
  183 |     return p##METHOD##_##SCALAR(_x);                                                              \
      |            ~~~~~~~~~~~~~~~~~~~~^~~~
/usr/include/eigen3/Eigen/src/Core/MathFunctions.h:1266:33: error: no matching function for call to 'isfinite_impl(const float&)'
 1266 |   return internal::isfinite_impl(x);
      |          ~~~~~~~~~~~~~~~~~~~~~~~^~~
/usr/include/eigen3/Eigen/src/Core/MathFunctions.h:1266:33: note: there is 1 candidate
/usr/include/eigen3/Eigen/src/Core/MathFunctions.h:1947:24: note: candidate 1: 'template<class T> bool Eigen::internal::isfinite_impl(const std::complex<_Tp>&)'
 1947 | EIGEN_DEVICE_FUNC bool isfinite_impl(const std::complex<T>& x) {
      |                        ^~~~~~~~~~~~~
/usr/include/eigen3/Eigen/src/Core/MathFunctions.h:1947:24: note: template argument deduction/substitution failed:
/usr/include/eigen3/Eigen/src/Core/MathFunctions.h:1266:33: note:   mismatched types 'const std::complex<_Tp>' and 'const float'
 1266 |   return internal::isfinite_impl(x);
      |          ~~~~~~~~~~~~~~~~~~~~~~~^~~
/usr/include/eigen3/Eigen/src/Core/MathFunctions.h: In instantiation of 'bool Eigen::numext::isfinite(const T&) [with T = double]':
/usr/include/eigen3/Eigen/src/Core/arch/Default/GenericPacketMathFunctions.h:1111:56:   required from 'Packet Eigen::internal::psincos_double(const Packet&) [with bool ComputeSine = true; Packet = __vector(2) double; bool ComputeBoth = false]'
 1111 |       if (std::abs(val) > huge_th && (numext::isfinite)(val)) {
      |                                      ~~~~~~~~~~~~~~~~~~^~~~~
/usr/include/eigen3/Eigen/src/Core/arch/Default/GenericPacketMathFunctions.h:1125:30:   required from 'Packet Eigen::internal::psin_double(const Packet&) [with Packet = __vector(2) double]'
 1125 |   return psincos_double<true>(x);
      |          ~~~~~~~~~~~~~~~~~~~~^~~
/usr/include/eigen3/Eigen/src/Core/arch/SSE/MathFunctions.h:26:1:   required from here
  183 |     return p##METHOD##_##SCALAR(_x);                                                              \
      |            ~~~~~~~~~~~~~~~~~~~~^~~~
/usr/include/eigen3/Eigen/src/Core/MathFunctions.h:1266:33: error: no matching function for call to 'isfinite_impl(const double&)'
 1266 |   return internal::isfinite_impl(x);
      |          ~~~~~~~~~~~~~~~~~~~~~~~^~~
/usr/include/eigen3/Eigen/src/Core/MathFunctions.h:1266:33: note: there is 1 candidate
/usr/include/eigen3/Eigen/src/Core/MathFunctions.h:1947:24: note: candidate 1: 'template<class T> bool Eigen::internal::isfinite_impl(const std::complex<_Tp>&)'
 1947 | EIGEN_DEVICE_FUNC bool isfinite_impl(const std::complex<T>& x) {
      |                        ^~~~~~~~~~~~~
/usr/include/eigen3/Eigen/src/Core/MathFunctions.h:1947:24: note: template argument deduction/substitution failed:
/usr/include/eigen3/Eigen/src/Core/MathFunctions.h:1266:33: note:   mismatched types 'const std::complex<_Tp>' and 'const double'
 1266 |   return internal::isfinite_impl(x);
      |          ~~~~~~~~~~~~~~~~~~~~~~~^~~