Boost logo

Ublas :

From: Gunter Winkler (guwi17_at_[hidden])
Date: 2007-03-12 03:31:42


On Sunday 11 March 2007 10:02, Preben Hagh Strunge Holm wrote:
> Assertion failed in file
> ../../RobWork/ext/boost/numeric/ublas/detail/vector_assign.hpp at line 371:
> detail::expression_type_check (v, cv)
> terminate called after throwing an instance of
> 'boost::numeric::ublas::external_logic'
> what(): external logic

Ok. This is usually thrown if the matrix and vector contain much noise. This
happens frequently when computing the resiudual: r = b - Ax; and afterwards
apply some iterations: d = Ar. Here 'r' is usually small and has only few
significant bits left. Thus the (runtime) checks fails because the result of
the dense product differs too much from the result of the optimized product.

You can define
#define BOOST_UBLAS_TYPE_CHECK_EPSILON 1.0e-10
in order to weaken this check. You can (dynamically) disable such checks by
declaring (AFAIR)

template< class T >
bool disable_type_check<T>::value = false;

just after all includes.

mfg
Gunter