
Bronek Kozicki wrote: [...] after updating boost/boost/numeric/ublas/traits.hpp on my machine and running tests I still have four errors (one regression test failed) on Comeau 4.3.3 backend MSVC71, see attached file. This could have been due to too strict requirements of libcomo 31, but I must admit I have some trouble reading such long error message. Should I ask Comeau support about it, or there is a chance for workaround (definition of operator != where required by como)? B. "C:\Comeau\libcomo\concept_checks.h", line 423: error #349: no operator "!=" matches these operands operand types are: boost::numeric::ublas::index_triple<boost::numeric::ublas ::index_triple_array<boost::numeric::ublas::coordinate_ma trix<double, boost::numeric::ublas::row_major, 0U, boost::numeric::ublas::unbounded_array<size_t>, boost::numeric::ublas::unbounded_array<boost::numeric::ub las::matrix_row<boost::numeric::ublas::sparse_matrix<doub le, boost::numeric::ublas::row_major, std::map<size_t, double, std::less<size_t>, std::allocator<double>>>>::value_type>>::index_array_type , boost::numeric::ublas::coordinate_matrix<double, boost::numeric::ublas::row_major, 0U, boost::numeric::ublas::unbounded_array<size_t>, boost::numeric::ublas::unbounded_array<boost::numeric::ub las::matrix_row<boost::numeric::ublas::sparse_matrix<doub le, boost::numeric::ublas::row_major, std::map<size_t, double, std::less<size_t>, std::allocator<double>>>>::value_type>>::index_array_type , boost::numeric::ublas::coordinate_matrix<double, boost::numeric::ublas::row_major, 0U, boost::numeric::ublas::unbounded_array<size_t>, boost::numeric::ublas::unbounded_array<boost::numeric::ub las::matrix_row<boost::numeric::ublas::sparse_matrix<doub le, boost::numeric::ublas::row_major, std::map<size_t, double, std::less<size_t>, std::allocator<double>>>>::value_type>>::value_array_type >::self_type> != boost::numeric::ublas::index_triple<boost::numeric::ublas ::index_triple_array<boost::numeric::ublas::coordinate_ma trix<double, boost::numeric::ublas::row_major, 0U, boost::numeric::ublas::unbounded_array<size_t>, boost::numeric::ublas::unbounded_array<boost::numeric::ub las::matrix_row<boost::numeric::ublas::sparse_matrix<doub le, boost::numeric::ublas::row_major, std::map<size_t, double, std::less<size_t>, std::allocator<double>>>>::value_type>>::index_array_type , boost::numeric::ublas::coordinate_matrix<double, boost::numeric::ublas::row_major, 0U, boost::numeric::ublas::unbounded_array<size_t>, boost::numeric::ublas::unbounded_array<boost::numeric::ub las::matrix_row<boost::numeric::ublas::sparse_matrix<doub le, boost::numeric::ublas::row_major, std::map<size_t, double, std::less<size_t>, std::allocator<double>>>>::value_type>>::index_array_type , boost::numeric::ublas::coordinate_matrix<double, boost::numeric::ublas::row_major, 0U, boost::numeric::ublas::unbounded_array<size_t>, boost::numeric::ublas::unbounded_array<boost::numeric::ub las::matrix_row<boost::numeric::ublas::sparse_matrix<doub le, boost::numeric::ublas::row_major, std::map<size_t, double, std::less<size_t>, std::allocator<double>>>>::value_type>>::value_array_type >::self_type> if (__a == __b || __a != __b) return __a; ^ detected during: instantiation of "_Type _STL_ERROR::__equality_comparable_requirement_violation(_ Type, _Type) [with _Type=boost::numeric::ublas::index_triple<boost::numeric: :ublas::index_triple_array<boost::numeric::ublas::coordin ate_matrix<double, boost::numeric::ublas::row_major, 0U, boost::numeric::ublas::unbounded_array<size_t>, boost::numeric::ublas::unbounded_array<boost::numeric::ub las::matrix_row<boost::numeric::ublas::sparse_matrix<doub le, boost::numeric::ublas::row_major, std::map<size_t, double, std::less<size_t>, std::allocator<double>>>>::value_type>>::index_array_type , boost::numeric::ublas::coordinate_matrix<double, boost::numeric::ublas::row_major, 0U, boost::numeric::ublas::unbounded_array<size_t>, boost::numeric::ublas::unbounded_array<boost::numeric::ub las::matrix_row<boost::numeric::ublas::sparse_matrix<doub le, boost::numeric::ublas::row_major, std::map<size_t, double, std::less<size_t>, std::allocator<double>>>>::value_type>>::index_array_type , boost::numeric::ublas::coordinate_matrix<double, boost::numeric::ublas::row_major, 0U, boost::numeric::ublas::unbounded_array<size_t>, boost::numeric::ublas::unbounded_array<boost::numeric::ub las::matrix_row<boost::numeric::ublas::sparse_matrix<doub le, boost::numeric::ublas::row_major, std::map<size_t, double, std::less<size_t>, std::allocator<double>>>>::value_type>>::value_array_type >::self_type>]" at line 577 instantiation of "void _EqualityComparable_concept_specification<_Type>::_Equali tyComparable_requirement_violation(_Type) [with _Type=std::iterator_traits<boost::numeric::ublas::indexed _iterator<boost::numeric::ublas::index_triple_array<boost ::numeric::ublas::coordinate_matrix<double, boost::numeric::ublas::row_major, 0U, boost::numeric::ublas::unbounded_array<size_t>, boost::numeric::ublas::unbounded_array<boost::numeric::ub las::matrix_row<boost::numeric::ublas::sparse_matrix<doub le, boost::numeric::ublas::row_major, std::map<size_t, double, std::less<size_t>, std::allocator<double>>>>::value_type>>::index_array_type , boost::numeric::ublas::coordinate_matrix<double, boost::numeric::ublas::row_major, 0U, boost::numeric::ublas::unbounded_array<size_t>, boost::numeric::ublas::unbounded_array<boost::numeric::ub las::matrix_row<boost::numeric::ublas::sparse_matrix<doub le, boost::numeric::ublas::row_major, std::map<size_t, double, std::less<size_t>, std::allocator<double>>>>::value_type>>::index_array_type , boost::numeric::ublas::coordinate_matrix<double, boost::numeric::ublas::row_major, 0U, boost::numeric::ublas::unbounded_array<size_t>, boost::numeric::ublas::unbounded_array<boost::numeric::ub las::matrix_row<boost::numeric::ublas::sparse_matrix<doub le, boost::numeric::ublas::row_major, std::map<size_t, double, std::less<size_t>, std::allocator<double>>>>::value_type>>::value_array_type >::self_type, std::random_access_iterator_tag>>::value_type]" at line 824 of "C:\Comeau\libcomo\stl_algo.h" instantiation of "_ForwardIter std::unique(_ForwardIter, _ForwardIter) [with _ForwardIter=boost::numeric::ublas::indexed_iterator<boos t::numeric::ublas::index_triple_array<boost::numeric::ubl as::coordinate_matrix<double, boost::numeric::ublas::row_major, 0U, boost::numeric::ublas::unbounded_array<size_t>, boost::numeric::ublas::unbounded_array<boost::numeric::ub las::matrix_row<boost::numeric::ublas::sparse_matrix<doub le, boost::numeric::ublas::row_major, std::map<size_t, double, std::less<size_t>, std::allocator<double>>>>::value_type>>::index_array_type , boost::numeric::ublas::coordinate_matrix<double, boost::numeric::ublas::row_major, 0U, boost::numeric::ublas::unbounded_array<size_t>, boost::numeric::ublas::unbounded_array<boost::numeric::ub las::matrix_row<boost::numeric::ublas::sparse_matrix<doub le, boost::numeric::ublas::row_major, std::map<size_t, double, std::less<size_t>, std::allocator<double>>>>::value_type>>::index_array_type , boost::numeric::ublas::coordinate_matrix<double, boost::numeric::ublas::row_major, 0U, boost::numeric::ublas::unbounded_array<size_t>, boost::numeric::ublas::unbounded_array<boost::numeric::ub las::matrix_row<boost::numeric::ublas::sparse_matrix<doub le, boost::numeric::ublas::row_major, std::map<size_t, double, std::less<size_t>, std::allocator<double>>>>::value_type>>::value_array_type >::self_type, std::random_access_iterator_tag>]" at line 4174 of "C:\MinGW\Bronek\regression\boost\boost/numeric/ublas/mat rix_sparse.hpp" instantiation of "void boost::numeric::ublas::coordinate_matrix<T, F, IB, IA, TA>::sort() const [with T=double, F=boost::numeric::ublas::row_major, IB=0U, IA=boost::numeric::ublas::unbounded_array<size_t>, TA=boost::numeric::ublas::unbounded_array<boost::numeric: :ublas::matrix_row<boost::numeric::ublas::sparse_matrix<d ouble, boost::numeric::ublas::row_major, std::map<size_t, double, std::less<size_t>, std::allocator<double>>>>::value_type>]" at line 3987 of "C:\MinGW\Bronek\regression\boost\boost/numeric/ublas/mat rix_sparse.hpp" instantiation of "boost::numeric::ublas::coordinate_matrix<T, F, IB, IA, TA>::pointer boost::numeric::ublas::coordinate_matrix<T, F, IB, IA, TA>::find_element(boost::numeric::ublas::coordinate_matri x<T, F, IB, IA, TA>::size_type, boost::numeric::ublas::coordinate_matrix<T, F, IB, IA, TA>::size_type) [with T=double, F=boost::numeric::ublas::row_major, IB=0U, IA=boost::numeric::ublas::unbounded_array<size_t>, TA=boost::numeric::ublas::unbounded_array<boost::numeric: :ublas::matrix_row<boost::numeric::ublas::sparse_matrix<d ouble, boost::numeric::ublas::row_major, std::map<size_t, double, std::less<size_t>, std::allocator<double>>>>::value_type>]" at line 54 of "C:\MinGW\Bronek\regression\boost\boost/numeric/ublas/mat rix_sparse.hpp" instantiation of "boost::numeric::ublas::sparse_matrix_element<M>::sparse_ matrix_element(boost::numeric::ublas::sparse_matrix_eleme nt<M>::matrix_type &, boost::numeric::ublas::sparse_matrix_element<M>::size_typ e, boost::numeric::ublas::sparse_matrix_element<M>::size_typ e) [with M=boost::numeric::ublas::coordinate_matrix<double, boost::numeric::ublas::row_major, 0U, boost::numeric::ublas::unbounded_array<size_t>, boost::numeric::ublas::unbounded_array<boost::numeric::ub las::matrix_row<boost::numeric::ublas::sparse_matrix<doub le, boost::numeric::ublas::row_major, std::map<size_t, double, std::less<size_t>, std::allocator<double>>>>::value_type>>]" at line 4048 of "C:\MinGW\Bronek\regression\boost\boost/numeric/ublas/mat rix_sparse.hpp" instantiation of "boost::numeric::ublas::coordinate_matrix<T, F, IB, IA, TA>::reference boost::numeric::ublas::coordinate_matrix<T, F, IB, IA, TA>::operator()(boost::numeric::ublas::coordinate_matrix< T, F, IB, IA, TA>::size_type, boost::numeric::ublas::coordinate_matrix<T, F, IB, IA, TA>::size_type) [with T=double, F=boost::numeric::ublas::row_major, IB=0U, IA=boost::numeric::ublas::unbounded_array<size_t>, TA=boost::numeric::ublas::unbounded_array<boost::numeric: :ublas::matrix_row<boost::numeric::ublas::sparse_matrix<d ouble, boost::numeric::ublas::row_major, std::map<size_t, double, std::less<size_t>, std::allocator<double>>>>::value_type>]" at line 35 of "..\..\..\libs\numeric\ublas\test3/test3.hpp" instantiation of "void initialize_matrix(M &) [with M=boost::numeric::ublas::coordinate_matrix<double, boost::numeric::ublas::row_major, 0U, boost::numeric::ublas::unbounded_array<size_t>, boost::numeric::ublas::unbounded_array<boost::numeric::ub las::matrix_row<boost::numeric::ublas::sparse_matrix<doub le, boost::numeric::ublas::row_major, std::map<size_t, double, std::less<size_t>, std::allocator<double>>>>::value_type>>]" "C:\Comeau\libcomo\concept_checks.h", line 423: error #349: no operator "!=" matches these operands operand types are: boost::numeric::ublas::index_triple<boost::numeric::ublas ::index_triple_array<boost::numeric::ublas::coordinate_ma trix<std::complex<double>, boost::numeric::ublas::row_major, 0U, boost::numeric::ublas::unbounded_array<size_t>, boost::numeric::ublas::unbounded_array<boost::numeric::ub las::matrix_row<boost::numeric::ublas::sparse_matrix<std: :complex<double>, boost::numeric::ublas::row_major, std::map<size_t, std::complex<double>, std::less<size_t>, std::allocator<std::complex<double>>>>>::value_type>>::in dex_array_type, boost::numeric::ublas::coordinate_matrix<std::complex<dou ble>, boost::numeric::ublas::row_major, 0U, boost::numeric::ublas::unbounded_array<size_t>, boost::numeric::ublas::unbounded_array<boost::numeric::ub las::matrix_row<boost::numeric::ublas::sparse_matrix<std: :complex<double>, boost::numeric::ublas::row_major, std::map<size_t, std::complex<double>, std::less<size_t>, std::allocator<std::complex<double>>>>>::value_type>>::in dex_array_type, boost::numeric::ublas::coordinate_matrix<std::complex<dou ble>, boost::numeric::ublas::row_major, 0U, boost::numeric::ublas::unbounded_array<size_t>, boost::numeric::ublas::unbounded_array<boost::numeric::ub las::matrix_row<boost::numeric::ublas::sparse_matrix<std: :complex<double>, boost::numeric::ublas::row_major, std::map<size_t, std::complex<double>, std::less<size_t>, std::allocator<std::complex<double>>>>>::value_type>>::va lue_array_type>::self_type> != boost::numeric::ublas::index_triple<boost::numeric::ublas ::index_triple_array<boost::numeric::ublas::coordinate_ma trix<std::complex<double>, boost::numeric::ublas::row_major, 0U, boost::numeric::ublas::unbounded_array<size_t>, boost::numeric::ublas::unbounded_array<boost::numeric::ub las::matrix_row<boost::numeric::ublas::sparse_matrix<std: :complex<double>, boost::numeric::ublas::row_major, std::map<size_t, std::complex<double>, std::less<size_t>, std::allocator<std::complex<double>>>>>::value_type>>::in dex_array_type, boost::numeric::ublas::coordinate_matrix<std::complex<dou ble>, boost::numeric::ublas::row_major, 0U, boost::numeric::ublas::unbounded_array<size_t>, boost::numeric::ublas::unbounded_array<boost::numeric::ub las::matrix_row<boost::numeric::ublas::sparse_matrix<std: :complex<double>, boost::numeric::ublas::row_major, std::map<size_t, std::complex<double>, std::less<size_t>, std::allocator<std::complex<double>>>>>::value_type>>::in dex_array_type, boost::numeric::ublas::coordinate_matrix<std::complex<dou ble>, boost::numeric::ublas::row_major, 0U, boost::numeric::ublas::unbounded_array<size_t>, boost::numeric::ublas::unbounded_array<boost::numeric::ub las::matrix_row<boost::numeric::ublas::sparse_matrix<std: :complex<double>, boost::numeric::ublas::row_major, std::map<size_t, std::complex<double>, std::less<size_t>, std::allocator<std::complex<double>>>>>::value_type>>::va lue_array_type>::self_type> if (__a == __b || __a != __b) return __a; ^ detected during: instantiation of "_Type _STL_ERROR::__equality_comparable_requirement_violation(_ Type, _Type) [with _Type=boost::numeric::ublas::index_triple<boost::numeric: :ublas::index_triple_array<boost::numeric::ublas::coordin ate_matrix<std::complex<double>, boost::numeric::ublas::row_major, 0U, boost::numeric::ublas::unbounded_array<size_t>, boost::numeric::ublas::unbounded_array<boost::numeric::ub las::matrix_row<boost::numeric::ublas::sparse_matrix<std: :complex<double>, boost::numeric::ublas::row_major, std::map<size_t, std::complex<double>, std::less<size_t>, std::allocator<std::complex<double>>>>>::value_type>>::in dex_array_type, boost::numeric::ublas::coordinate_matrix<std::complex<dou ble>, boost::numeric::ublas::row_major, 0U, boost::numeric::ublas::unbounded_array<size_t>, boost::numeric::ublas::unbounded_array<boost::numeric::ub las::matrix_row<boost::numeric::ublas::sparse_matrix<std: :complex<double>, boost::numeric::ublas::row_major, std::map<size_t, std::complex<double>, std::less<size_t>, std::allocator<std::complex<double>>>>>::value_type>>::in dex_array_type, boost::numeric::ublas::coordinate_matrix<std::complex<dou ble>, boost::numeric::ublas::row_major, 0U, boost::numeric::ublas::unbounded_array<size_t>, boost::numeric::ublas::unbounded_array<boost::numeric::ub las::matrix_row<boost::numeric::ublas::sparse_matrix<std: :complex<double>, boost::numeric::ublas::row_major, std::map<size_t, std::complex<double>, std::less<size_t>, std::allocator<std::complex<double>>>>>::value_type>>::va lue_array_type>::self_type>]" at line 577 instantiation of "void _EqualityComparable_concept_specification<_Type>::_Equali tyComparable_requirement_violation(_Type) [with _Type=std::iterator_traits<boost::numeric::ublas::indexed _iterator<boost::numeric::ublas::index_triple_array<boost ::numeric::ublas::coordinate_matrix<std::complex<double>, boost::numeric::ublas::row_major, 0U, boost::numeric::ublas::unbounded_array<size_t>, boost::numeric::ublas::unbounded_array<boost::numeric::ub las::matrix_row<boost::numeric::ublas::sparse_matrix<std: :complex<double>, boost::numeric::ublas::row_major, std::map<size_t, std::complex<double>, std::less<size_t>, std::allocator<std::complex<double>>>>>::value_type>>::in dex_array_type, boost::numeric::ublas::coordinate_matrix<std::complex<dou ble>, boost::numeric::ublas::row_major, 0U, boost::numeric::ublas::unbounded_array<size_t>, boost::numeric::ublas::unbounded_array<boost::numeric::ub las::matrix_row<boost::numeric::ublas::sparse_matrix<std: :complex<double>, boost::numeric::ublas::row_major, std::map<size_t, std::complex<double>, std::less<size_t>, std::allocator<std::complex<double>>>>>::value_type>>::in dex_array_type, boost::numeric::ublas::coordinate_matrix<std::complex<dou ble>, boost::numeric::ublas::row_major, 0U, boost::numeric::ublas::unbounded_array<size_t>, boost::numeric::ublas::unbounded_array<boost::numeric::ub las::matrix_row<boost::numeric::ublas::sparse_matrix<std: :complex<double>, boost::numeric::ublas::row_major, std::map<size_t, std::complex<double>, std::less<size_t>, std::allocator<std::complex<double>>>>>::value_type>>::va lue_array_type>::self_type, std::random_access_iterator_tag>>::value_type]" at line 824 of "C:\Comeau\libcomo\stl_algo.h" instantiation of "_ForwardIter std::unique(_ForwardIter, _ForwardIter) [with _ForwardIter=boost::numeric::ublas::indexed_iterator<boos t::numeric::ublas::index_triple_array<boost::numeric::ubl as::coordinate_matrix<std::complex<double>, boost::numeric::ublas::row_major, 0U, boost::numeric::ublas::unbounded_array<size_t>, boost::numeric::ublas::unbounded_array<boost::numeric::ub las::matrix_row<boost::numeric::ublas::sparse_matrix<std: :complex<double>, boost::numeric::ublas::row_major, std::map<size_t, std::complex<double>, std::less<size_t>, std::allocator<std::complex<double>>>>>::value_type>>::in dex_array_type, boost::numeric::ublas::coordinate_matrix<std::complex<dou ble>, boost::numeric::ublas::row_major, 0U, boost::numeric::ublas::unbounded_array<size_t>, boost::numeric::ublas::unbounded_array<boost::numeric::ub las::matrix_row<boost::numeric::ublas::sparse_matrix<std: :complex<double>, boost::numeric::ublas::row_major, std::map<size_t, std::complex<double>, std::less<size_t>, std::allocator<std::complex<double>>>>>::value_type>>::in dex_array_type, boost::numeric::ublas::coordinate_matrix<std::complex<dou ble>, boost::numeric::ublas::row_major, 0U, boost::numeric::ublas::unbounded_array<size_t>, boost::numeric::ublas::unbounded_array<boost::numeric::ub las::matrix_row<boost::numeric::ublas::sparse_matrix<std: :complex<double>, boost::numeric::ublas::row_major, std::map<size_t, std::complex<double>, std::less<size_t>, std::allocator<std::complex<double>>>>>::value_type>>::va lue_array_type>::self_type, std::random_access_iterator_tag>]" at line 4174 of "C:\MinGW\Bronek\regression\boost\boost/numeric/ublas/mat rix_sparse.hpp" instantiation of "void boost::numeric::ublas::coordinate_matrix<T, F, IB, IA, TA>::sort() const [with T=std::complex<double>, F=boost::numeric::ublas::row_major, IB=0U, IA=boost::numeric::ublas::unbounded_array<size_t>, TA=boost::numeric::ublas::unbounded_array<boost::numeric: :ublas::matrix_row<boost::numeric::ublas::sparse_matrix<s td::complex<double>, boost::numeric::ublas::row_major, std::map<size_t, std::complex<double>, std::less<size_t>, std::allocator<std::complex<double>>>>>::value_type>]" at line 3987 of "C:\MinGW\Bronek\regression\boost\boost/numeric/ublas/mat rix_sparse.hpp" instantiation of "boost::numeric::ublas::coordinate_matrix<T, F, IB, IA, TA>::pointer boost::numeric::ublas::coordinate_matrix<T, F, IB, IA, TA>::find_element(boost::numeric::ublas::coordinate_matri x<T, F, IB, IA, TA>::size_type, boost::numeric::ublas::coordinate_matrix<T, F, IB, IA, TA>::size_type) [with T=std::complex<double>, F=boost::numeric::ublas::row_major, IB=0U, IA=boost::numeric::ublas::unbounded_array<size_t>, TA=boost::numeric::ublas::unbounded_array<boost::numeric: :ublas::matrix_row<boost::numeric::ublas::sparse_matrix<s td::complex<double>, boost::numeric::ublas::row_major, std::map<size_t, std::complex<double>, std::less<size_t>, std::allocator<std::complex<double>>>>>::value_type>]" at line 54 of "C:\MinGW\Bronek\regression\boost\boost/numeric/ublas/mat rix_sparse.hpp" instantiation of "boost::numeric::ublas::sparse_matrix_element<M>::sparse_ matrix_element(boost::numeric::ublas::sparse_matrix_eleme nt<M>::matrix_type &, boost::numeric::ublas::sparse_matrix_element<M>::size_typ e, boost::numeric::ublas::sparse_matrix_element<M>::size_typ e) [with M=boost::numeric::ublas::coordinate_matrix<std::complex<d ouble>, boost::numeric::ublas::row_major, 0U, boost::numeric::ublas::unbounded_array<size_t>, boost::numeric::ublas::unbounded_array<boost::numeric::ub las::matrix_row<boost::numeric::ublas::sparse_matrix<std: :complex<double>, boost::numeric::ublas::row_major, std::map<size_t, std::complex<double>, std::less<size_t>, std::allocator<std::complex<double>>>>>::value_type>>]" at line 4048 of "C:\MinGW\Bronek\regression\boost\boost/numeric/ublas/mat rix_sparse.hpp" instantiation of "boost::numeric::ublas::coordinate_matrix<T, F, IB, IA, TA>::reference boost::numeric::ublas::coordinate_matrix<T, F, IB, IA, TA>::operator()(boost::numeric::ublas::coordinate_matrix< T, F, IB, IA, TA>::size_type, boost::numeric::ublas::coordinate_matrix<T, F, IB, IA, TA>::size_type) [with T=std::complex<double>, F=boost::numeric::ublas::row_major, IB=0U, IA=boost::numeric::ublas::unbounded_array<size_t>, TA=boost::numeric::ublas::unbounded_array<boost::numeric: :ublas::matrix_row<boost::numeric::ublas::sparse_matrix<s td::complex<double>, boost::numeric::ublas::row_major, std::map<size_t, std::complex<double>, std::less<size_t>, std::allocator<std::complex<double>>>>>::value_type>]" at line 35 of "..\..\..\libs\numeric\ublas\test3/test3.hpp" instantiation of "void initialize_matrix(M &) [with M=boost::numeric::ublas::coordinate_matrix<std::complex<d ouble>, boost::numeric::ublas::row_major, 0U, boost::numeric::ublas::unbounded_array<size_t>, boost::numeric::ublas::unbounded_array<boost::numeric::ub las::matrix_row<boost::numeric::ublas::sparse_matrix<std: :complex<double>, boost::numeric::ublas::row_major, std::map<size_t, std::complex<double>, std::less<size_t>, std::allocator<std::complex<double>>>>>::value_type>>]" 2 errors detected in the compilation of "..\..\..\libs\numeric\ublas\test3/test32.cpp". "C:\Comeau\libcomo\concept_checks.h", line 423: error #349: no operator "!=" matches these operands operand types are: boost::numeric::ublas::index_triple<boost::numeric::ublas ::index_triple_array<boost::numeric::ublas::coordinate_ma trix<double, boost::numeric::ublas::row_major, 0U, boost::numeric::ublas::unbounded_array<size_t>, boost::numeric::ublas::unbounded_array<double>>::index_ar ray_type, boost::numeric::ublas::coordinate_matrix<double, boost::numeric::ublas::row_major, 0U, boost::numeric::ublas::unbounded_array<size_t>, boost::numeric::ublas::unbounded_array<double>>::index_ar ray_type, boost::numeric::ublas::coordinate_matrix<double, boost::numeric::ublas::row_major, 0U, boost::numeric::ublas::unbounded_array<size_t>, boost::numeric::ublas::unbounded_array<double>>::value_ar ray_type>::self_type> != boost::numeric::ublas::index_triple<boost::numeric::ublas ::index_triple_array<boost::numeric::ublas::coordinate_ma trix<double, boost::numeric::ublas::row_major, 0U, boost::numeric::ublas::unbounded_array<size_t>, boost::numeric::ublas::unbounded_array<double>>::index_ar ray_type, boost::numeric::ublas::coordinate_matrix<double, boost::numeric::ublas::row_major, 0U, boost::numeric::ublas::unbounded_array<size_t>, boost::numeric::ublas::unbounded_array<double>>::index_ar ray_type, boost::numeric::ublas::coordinate_matrix<double, boost::numeric::ublas::row_major, 0U, boost::numeric::ublas::unbounded_array<size_t>, boost::numeric::ublas::unbounded_array<double>>::value_ar ray_type>::self_type> if (__a == __b || __a != __b) return __a; ^ detected during: instantiation of "_Type _STL_ERROR::__equality_comparable_requirement_violation(_ Type, _Type) [with _Type=boost::numeric::ublas::index_triple<boost::numeric: :ublas::index_triple_array<boost::numeric::ublas::coordin ate_matrix<double, boost::numeric::ublas::row_major, 0U, boost::numeric::ublas::unbounded_array<size_t>, boost::numeric::ublas::unbounded_array<double>>::index_ar ray_type, boost::numeric::ublas::coordinate_matrix<double, boost::numeric::ublas::row_major, 0U, boost::numeric::ublas::unbounded_array<size_t>, boost::numeric::ublas::unbounded_array<double>>::index_ar ray_type, boost::numeric::ublas::coordinate_matrix<double, boost::numeric::ublas::row_major, 0U, boost::numeric::ublas::unbounded_array<size_t>, boost::numeric::ublas::unbounded_array<double>>::value_ar ray_type>::self_type>]" at line 577 instantiation of "void _EqualityComparable_concept_specification<_Type>::_Equali tyComparable_requirement_violation(_Type) [with _Type=std::iterator_traits<boost::numeric::ublas::indexed _iterator<boost::numeric::ublas::index_triple_array<boost ::numeric::ublas::coordinate_matrix<double, boost::numeric::ublas::row_major, 0U, boost::numeric::ublas::unbounded_array<size_t>, boost::numeric::ublas::unbounded_array<double>>::index_ar ray_type, boost::numeric::ublas::coordinate_matrix<double, boost::numeric::ublas::row_major, 0U, boost::numeric::ublas::unbounded_array<size_t>, boost::numeric::ublas::unbounded_array<double>>::index_ar ray_type, boost::numeric::ublas::coordinate_matrix<double, boost::numeric::ublas::row_major, 0U, boost::numeric::ublas::unbounded_array<size_t>, boost::numeric::ublas::unbounded_array<double>>::value_ar ray_type>::self_type, std::random_access_iterator_tag>>::value_type]" at line 824 of "C:\Comeau\libcomo\stl_algo.h" instantiation of "_ForwardIter std::unique(_ForwardIter, _ForwardIter) [with _ForwardIter=boost::numeric::ublas::indexed_iterator<boos t::numeric::ublas::index_triple_array<boost::numeric::ubl as::coordinate_matrix<double, boost::numeric::ublas::row_major, 0U, boost::numeric::ublas::unbounded_array<size_t>, boost::numeric::ublas::unbounded_array<double>>::index_ar ray_type, boost::numeric::ublas::coordinate_matrix<double, boost::numeric::ublas::row_major, 0U, boost::numeric::ublas::unbounded_array<size_t>, boost::numeric::ublas::unbounded_array<double>>::index_ar ray_type, boost::numeric::ublas::coordinate_matrix<double, boost::numeric::ublas::row_major, 0U, boost::numeric::ublas::unbounded_array<size_t>, boost::numeric::ublas::unbounded_array<double>>::value_ar ray_type>::self_type, std::random_access_iterator_tag>]" at line 4174 of "C:\MinGW\Bronek\regression\boost\boost/numeric/ublas/mat rix_sparse.hpp" instantiation of "void boost::numeric::ublas::coordinate_matrix<T, F, IB, IA, TA>::sort() const [with T=double, F=boost::numeric::ublas::row_major, IB=0U, IA=boost::numeric::ublas::unbounded_array<size_t>, TA=boost::numeric::ublas::unbounded_array<double>]" at line 3987 of "C:\MinGW\Bronek\regression\boost\boost/numeric/ublas/mat rix_sparse.hpp" instantiation of "boost::numeric::ublas::coordinate_matrix<T, F, IB, IA, TA>::pointer boost::numeric::ublas::coordinate_matrix<T, F, IB, IA, TA>::find_element(boost::numeric::ublas::coordinate_matri x<T, F, IB, IA, TA>::size_type, boost::numeric::ublas::coordinate_matrix<T, F, IB, IA, TA>::size_type) [with T=double, F=boost::numeric::ublas::row_major, IB=0U, IA=boost::numeric::ublas::unbounded_array<size_t>, TA=boost::numeric::ublas::unbounded_array<double>]" at line 54 of "C:\MinGW\Bronek\regression\boost\boost/numeric/ublas/mat rix_sparse.hpp" instantiation of "boost::numeric::ublas::sparse_matrix_element<M>::sparse_ matrix_element(boost::numeric::ublas::sparse_matrix_eleme nt<M>::matrix_type &, boost::numeric::ublas::sparse_matrix_element<M>::size_typ e, boost::numeric::ublas::sparse_matrix_element<M>::size_typ e) [with M=boost::numeric::ublas::coordinate_matrix<double, boost::numeric::ublas::row_major, 0U, boost::numeric::ublas::unbounded_array<size_t>, boost::numeric::ublas::unbounded_array<double>>]" at line 4048 of "C:\MinGW\Bronek\regression\boost\boost/numeric/ublas/mat rix_sparse.hpp" instantiation of "boost::numeric::ublas::coordinate_matrix<T, F, IB, IA, TA>::reference boost::numeric::ublas::coordinate_matrix<T, F, IB, IA, TA>::operator()(boost::numeric::ublas::coordinate_matrix< T, F, IB, IA, TA>::size_type, boost::numeric::ublas::coordinate_matrix<T, F, IB, IA, TA>::size_type) [with T=double, F=boost::numeric::ublas::row_major, IB=0U, IA=boost::numeric::ublas::unbounded_array<size_t>, TA=boost::numeric::ublas::unbounded_array<double>]" at line 35 of "..\..\..\libs\numeric\ublas\test3/test3.hpp" instantiation of "void initialize_matrix(M &) [with M=boost::numeric::ublas::coordinate_matrix<double, boost::numeric::ublas::row_major, 0U, boost::numeric::ublas::unbounded_array<size_t>, boost::numeric::ublas::unbounded_array<double>>]" "C:\Comeau\libcomo\concept_checks.h", line 423: error #349: no operator "!=" matches these operands operand types are: boost::numeric::ublas::index_triple<boost::numeric::ublas ::index_triple_array<boost::numeric::ublas::coordinate_ma trix<std::complex<double>, boost::numeric::ublas::row_major, 0U, boost::numeric::ublas::unbounded_array<size_t>, boost::numeric::ublas::unbounded_array<std::complex<doubl e>>>::index_array_type, boost::numeric::ublas::coordinate_matrix<std::complex<dou ble>, boost::numeric::ublas::row_major, 0U, boost::numeric::ublas::unbounded_array<size_t>, boost::numeric::ublas::unbounded_array<std::complex<doubl e>>>::index_array_type, boost::numeric::ublas::coordinate_matrix<std::complex<dou ble>, boost::numeric::ublas::row_major, 0U, boost::numeric::ublas::unbounded_array<size_t>, boost::numeric::ublas::unbounded_array<std::complex<doubl e>>>::value_array_type>::self_type> != boost::numeric::ublas::index_triple<boost::numeric::ublas ::index_triple_array<boost::numeric::ublas::coordinate_ma trix<std::complex<double>, boost::numeric::ublas::row_major, 0U, boost::numeric::ublas::unbounded_array<size_t>, boost::numeric::ublas::unbounded_array<std::complex<doubl e>>>::index_array_type, boost::numeric::ublas::coordinate_matrix<std::complex<dou ble>, boost::numeric::ublas::row_major, 0U, boost::numeric::ublas::unbounded_array<size_t>, boost::numeric::ublas::unbounded_array<std::complex<doubl e>>>::index_array_type, boost::numeric::ublas::coordinate_matrix<std::complex<dou ble>, boost::numeric::ublas::row_major, 0U, boost::numeric::ublas::unbounded_array<size_t>, boost::numeric::ublas::unbounded_array<std::complex<doubl e>>>::value_array_type>::self_type> if (__a == __b || __a != __b) return __a; ^ detected during: instantiation of "_Type _STL_ERROR::__equality_comparable_requirement_violation(_ Type, _Type) [with _Type=boost::numeric::ublas::index_triple<boost::numeric: :ublas::index_triple_array<boost::numeric::ublas::coordin ate_matrix<std::complex<double>, boost::numeric::ublas::row_major, 0U, boost::numeric::ublas::unbounded_array<size_t>, boost::numeric::ublas::unbounded_array<std::complex<doubl e>>>::index_array_type, boost::numeric::ublas::coordinate_matrix<std::complex<dou ble>, boost::numeric::ublas::row_major, 0U, boost::numeric::ublas::unbounded_array<size_t>, boost::numeric::ublas::unbounded_array<std::complex<doubl e>>>::index_array_type, boost::numeric::ublas::coordinate_matrix<std::complex<dou ble>, boost::numeric::ublas::row_major, 0U, boost::numeric::ublas::unbounded_array<size_t>, boost::numeric::ublas::unbounded_array<std::complex<doubl e>>>::value_array_type>::self_type>]" at line 577 instantiation of "void _EqualityComparable_concept_specification<_Type>::_Equali tyComparable_requirement_violation(_Type) [with _Type=std::iterator_traits<boost::numeric::ublas::indexed _iterator<boost::numeric::ublas::index_triple_array<boost ::numeric::ublas::coordinate_matrix<std::complex<double>, boost::numeric::ublas::row_major, 0U, boost::numeric::ublas::unbounded_array<size_t>, boost::numeric::ublas::unbounded_array<std::complex<doubl e>>>::index_array_type, boost::numeric::ublas::coordinate_matrix<std::complex<dou ble>, boost::numeric::ublas::row_major, 0U, boost::numeric::ublas::unbounded_array<size_t>, boost::numeric::ublas::unbounded_array<std::complex<doubl e>>>::index_array_type, boost::numeric::ublas::coordinate_matrix<std::complex<dou ble>, boost::numeric::ublas::row_major, 0U, boost::numeric::ublas::unbounded_array<size_t>, boost::numeric::ublas::unbounded_array<std::complex<doubl e>>>::value_array_type>::self_type, std::random_access_iterator_tag>>::value_type]" at line 824 of "C:\Comeau\libcomo\stl_algo.h" instantiation of "_ForwardIter std::unique(_ForwardIter, _ForwardIter) [with _ForwardIter=boost::numeric::ublas::indexed_iterator<boos t::numeric::ublas::index_triple_array<boost::numeric::ubl as::coordinate_matrix<std::complex<double>, boost::numeric::ublas::row_major, 0U, boost::numeric::ublas::unbounded_array<size_t>, boost::numeric::ublas::unbounded_array<std::complex<doubl e>>>::index_array_type, boost::numeric::ublas::coordinate_matrix<std::complex<dou ble>, boost::numeric::ublas::row_major, 0U, boost::numeric::ublas::unbounded_array<size_t>, boost::numeric::ublas::unbounded_array<std::complex<doubl e>>>::index_array_type, boost::numeric::ublas::coordinate_matrix<std::complex<dou ble>, boost::numeric::ublas::row_major, 0U, boost::numeric::ublas::unbounded_array<size_t>, boost::numeric::ublas::unbounded_array<std::complex<doubl e>>>::value_array_type>::self_type, std::random_access_iterator_tag>]" at line 4174 of "C:\MinGW\Bronek\regression\boost\boost/numeric/ublas/mat rix_sparse.hpp" instantiation of "void boost::numeric::ublas::coordinate_matrix<T, F, IB, IA, TA>::sort() const [with T=std::complex<double>, F=boost::numeric::ublas::row_major, IB=0U, IA=boost::numeric::ublas::unbounded_array<size_t>, TA=boost::numeric::ublas::unbounded_array<std::complex<do uble>>]" at line 3987 of "C:\MinGW\Bronek\regression\boost\boost/numeric/ublas/mat rix_sparse.hpp" instantiation of "boost::numeric::ublas::coordinate_matrix<T, F, IB, IA, TA>::pointer boost::numeric::ublas::coordinate_matrix<T, F, IB, IA, TA>::find_element(boost::numeric::ublas::coordinate_matri x<T, F, IB, IA, TA>::size_type, boost::numeric::ublas::coordinate_matrix<T, F, IB, IA, TA>::size_type) [with T=std::complex<double>, F=boost::numeric::ublas::row_major, IB=0U, IA=boost::numeric::ublas::unbounded_array<size_t>, TA=boost::numeric::ublas::unbounded_array<std::complex<do uble>>]" at line 54 of "C:\MinGW\Bronek\regression\boost\boost/numeric/ublas/mat rix_sparse.hpp" instantiation of "boost::numeric::ublas::sparse_matrix_element<M>::sparse_ matrix_element(boost::numeric::ublas::sparse_matrix_eleme nt<M>::matrix_type &, boost::numeric::ublas::sparse_matrix_element<M>::size_typ e, boost::numeric::ublas::sparse_matrix_element<M>::size_typ e) [with M=boost::numeric::ublas::coordinate_matrix<std::complex<d ouble>, boost::numeric::ublas::row_major, 0U, boost::numeric::ublas::unbounded_array<size_t>, boost::numeric::ublas::unbounded_array<std::complex<doubl e>>>]" at line 4048 of "C:\MinGW\Bronek\regression\boost\boost/numeric/ublas/mat rix_sparse.hpp" instantiation of "boost::numeric::ublas::coordinate_matrix<T, F, IB, IA, TA>::reference boost::numeric::ublas::coordinate_matrix<T, F, IB, IA, TA>::operator()(boost::numeric::ublas::coordinate_matrix< T, F, IB, IA, TA>::size_type, boost::numeric::ublas::coordinate_matrix<T, F, IB, IA, TA>::size_type) [with T=std::complex<double>, F=boost::numeric::ublas::row_major, IB=0U, IA=boost::numeric::ublas::unbounded_array<size_t>, TA=boost::numeric::ublas::unbounded_array<std::complex<do uble>>]" at line 35 of "..\..\..\libs\numeric\ublas\test3/test3.hpp" instantiation of "void initialize_matrix(M &) [with M=boost::numeric::ublas::coordinate_matrix<std::complex<d ouble>, boost::numeric::ublas::row_major, 0U, boost::numeric::ublas::unbounded_array<size_t>, boost::numeric::ublas::unbounded_array<std::complex<doubl e>>>]" 2 errors detected in the compilation of "..\..\..\libs\numeric\ublas\test3/test33.cpp".