30 #include <boost/units/detail/utility.hpp>
32 #include "../error/exceptions.hpp"
33 #include "../utilities/service.hpp"
49 template<
typename VTYPE>
53 for(
auto x: v) o<<x<<
" ";
79 return a.size() == b.size();
108 std::stringstream ss;
109 ss<<
"Size of "<<boost::units::detail::demangle(
typeid(A).name())<<
" (";
111 ss<<
"does not match size of "<<boost::units::detail::demangle(
typeid(B).name())<<
" (";
147 const exception_record &i);
171 auto iiter = index.begin();
172 auto siter = shape.begin();
174 for(;iiter!=index.end();++iiter,++siter)
175 if(*iiter>=*siter)
return false;
209 std::stringstream ss;
210 ss<<
"Rank of index vector ("<<index.size()<<
") does not match ";
211 ss<<
"the rank of the shape vector ("<<shape.size()<<
")!";
218 std::stringstream ss;
221 ss<<
" do not match shape ";
250 return a.rank() == b.rank();
275 std::stringstream ss;
276 ss<<
"Rank of "<<boost::units::detail::demangle(
typeid(a).name())<<
" (";
277 ss<<a.rank()<<
") does not match that of ";
278 ss<<boost::units::detail::demangle(
typeid(b).name())<<
" (";
300 auto sa = a.template shape<std::vector<size_t> >();
301 auto sb = b.template shape<std::vector<size_t> >();
303 if(!std::equal(sa.begin(),sa.end(),sb.begin()))
326 template<
typename A,
typename B>
334 std::stringstream ss;
335 ss<<
"Shape of "<<boost::units::detail::demangle(
typeid(a).name())<<
" (";
336 ss<<a.size()<<
") does not match that of ";
337 ss<<boost::units::detail::demangle(
typeid(b).name())<<
" (";
355 template<
typename OTYPE>
360 std::stringstream ss;
361 ss<<
"Instance of "<<boost::units::detail::demangle(
typeid(OTYPE).name());
362 ss<<
" not allocated!";
382 std::stringstream ss;
383 ss<<
"Pointer is nullptr!";
Size mismatch error.
Definition: exceptions.hpp:399
exception record
Definition: exceptions.hpp:90
void check_indexes(const ITYPE &index, const STYPE &shape, const exception_record &record)
check indexes
Definition: exception_utils.hpp:203
void print_vector(std::ostream &o, const VTYPE &v)
print vector content
Definition: exception_utils.hpp:50
void check_ptr_state(const T *ptr, const exception_record &i)
check pointer state
Definition: exception_utils.hpp:378
Shape mismatch error.
Definition: exceptions.hpp:360
void check_allocation_state(const OTYPE &o, const exception_record &i)
check allocation state
Definition: exception_utils.hpp:356
index error
Definition: exceptions.hpp:437
Definition: add_op.hpp:29
void check_index_in_dim(size_t index, size_t dimsize, const exception_record &i)
check index in dim
void check_equal_rank(const A &a, const B &b, const exception_record &i)
check equal rank
Definition: exception_utils.hpp:271
memory not allocated error
Definition: exceptions.hpp:321
void check_equal_size(const A &a, const B &b, const exception_record &i)
check if two objects have different size
Definition: exception_utils.hpp:104
void check_equal_shape(const A &a, const B &b, const exception_record &i)
check shape equality
Definition: exception_utils.hpp:327