13 #ifndef SPATIAL_EXCEPT_HPP
14 #define SPATIAL_EXCEPT_HPP
17 #include "../exception.hpp"
39 std::stringstream out;
40 out << rank <<
" is an odd value";
52 if (dimension >= rank)
54 std::stringstream out;
55 out << dimension <<
" is out of range";
66 template<
typename Node>
69 if (node == 0 || node->left == node)
70 throw invalid_node(
"node points to null or header node");
78 template<
typename Node>
81 if (node == 0 || node->left == node)
94 template <
typename Ptr1,
typename Ptr2>
99 (
"iterator is invalid or does not belong to the container used");
108 template<
typename Tp>
127 template<
typename Tp>
129 (
const Tp& container,
134 if (!container.key_comp()(dim, lower, upper))
136 (
"lower is greater or equal to upper over one dimension at least");
148 template<
typename Tp>
150 (
const Tp& container,
166 template<
typename Tp>
168 (
const Tp& container,
173 if (container.key_comp()(dim, upper, lower))
175 (
"upper is stricly less than lower over one dimension at least");
188 template <
typename Tp>
190 (
const Tp& container,
196 if (container.key_comp()(i + rank, box, i, box))
198 (
"box does not follow specified layout or coordinates are invalid");
201 template <
typename Tp>
203 (
const Tp& container,
209 if (container.key_comp()(i, box, i + rank, box))
211 (
"box does not follow specified layout or coordinates are invalid");
214 template <
typename Tp>
216 (
const Tp& container,
221 if (container.key_comp()(i + 1, box, i, box))
223 (
"box does not follow specified layout or coordinates are invalid");
226 template <
typename Tp>
228 (
const Tp& container,
233 if (container.key_comp()(i, box, i + 1, box))
235 (
"box does not follow specified layout or coordinates are invalid");
241 #endif // SPATIAL_EXCEPT_HPP
Thrown to report that an invalid node was passed as an argument.
void check_node(Node *node)
Checks that the node's pointer given as an argument to a function is not null or does not point to a ...
Thrown to report that an empty container was passed as an argument, while the function does not accep...
void check_bounds(const Tp &container, const typename container_traits< Tp >::key_type &lower, const typename container_traits< Tp >::key_type &upper)
Checks if all coordinates of lower are strictly less than these of higher along the same dimensions...
void check_open_bounds(const Tp &container, const typename container_traits< Tp >::key_type &lower, const typename container_traits< Tp >::key_type &upper)
Checks if all coordinates of lower are strictly less than these of higher along the same dimensions...
Represents a coordinate layout for the box.
Thrown to report that an invalid rank was passed as an argument.
void check_dimension(dimension_type rank, dimension_type dimension)
Checks that dimension is not greater or equal to rank.
Thrown to report that an invalid range bound has been given as argument.
Represents a coordinate layout for the box.
void check_even_rank(dimension_type rank)
Checks that rank is not null and that it is a multiple of 2.
Tp::key_type key_type
The type representing the key managed by the container.
void check_box(const Tp &container, const typename container_traits< Tp >::key_type &box, llhh_layout_tag)
Checks that all coordinates of a box are matching with the layout specified or else, raise an invalid_box exception.
Thrown to report that an invalid dimension was passed as an argument.
void check_rank(dimension_type rank)
Checks that rank is not null.
Thrown to report that a box has incorrect coordinates with regards to its layout. ...
void check_iterator(Ptr1 ptr1, Ptr2 ptr2)
Checks if two iterators are of equal values, if not raises the invalid_iterator exception.
Thrown to report that an invalid iterator was passed as an argument.
std::size_t dimension_type
Defines the type for the dimension as being a size.
void check_empty_container(const Tp &cont)
Checks that the container given as an argument to a function is not empty.
Represents a coordinate layout for the box.
The main namespace used in the library.
Thrown to report that an odd rank value was passed as a argument.
Represents a coordinate layout for the box.
void check_closed_bounds(const Tp &container, const typename container_traits< Tp >::key_type &lower, const typename container_traits< Tp >::key_type &upper)
Checks if all coordinates of lower are less or equal to these of higher along the same dimensions...
void check_node_iterator(Node *node)
Checks that the node pointed to by an iterator and given as an argument to a function is not null or ...