16 #ifndef dealii__array_view_h 17 #define dealii__array_view_h 19 #include <deal.II/base/config.h> 20 #include <deal.II/base/exceptions.h> 21 #include <deal.II/base/table.h> 23 #include <boost/type_traits/remove_cv.hpp> 27 DEAL_II_NAMESPACE_OPEN
70 template <
typename ElementType>
117 std::size_t
size()
const;
128 value_type &
operator[] (
const std::size_t i)
const;
148 template <
typename ElementType>
153 starting_element (starting_element),
154 n_elements(n_elements)
159 template <
typename ElementType>
169 template <
typename ElementType>
178 template <
typename ElementType>
203 template <
typename ElementType>
227 template <
typename ElementType>
256 template <
typename ElementType>
260 const std::size_t starting_index,
261 const std::size_t size_of_view)
263 Assert (starting_index + size_of_view <= vector.size(),
264 ExcMessage (
"The starting index and size of the view you want to " 265 "create would lead to a view that extends beyond the end " 266 "of the given vector."));
291 template <
typename ElementType>
295 const std::size_t starting_index,
296 const std::size_t size_of_view)
298 Assert (starting_index + size_of_view <= vector.size(),
299 ExcMessage (
"The starting index and size of the view you want to " 300 "create would lead to a view that extends beyond the end " 301 "of the given vector."));
323 template <
typename ElementType>
351 template <
typename ElementType>
382 template <
typename ElementType>
388 const std::size_t size_of_view)
392 Assert (starting_column + size_of_view <= table.
size()[1],
393 ExcMessage (
"The starting index and size of the view you want to " 394 "create would lead to a view that extends beyond the end " 395 "of a column of the given table."));
420 template <
typename ElementType>
426 const std::size_t size_of_view)
430 Assert (starting_column + size_of_view <= table.
size()[1],
431 ExcMessage (
"The starting index and size of the view you want to " 432 "create would lead to a view that extends beyond the end " 433 "of a column of the given table."));
439 DEAL_II_NAMESPACE_CLOSE
ArrayView< ElementType > make_array_view(std::vector< ElementType > &vector, const std::size_t starting_index, const std::size_t size_of_view)
const std::size_t n_elements
::ExceptionBase & ExcMessage(std::string arg1)
#define AssertIndexRange(index, range)
ArrayView< const ElementType > make_array_view(const Table< 2, ElementType > &table, const typename Table< 2, ElementType >::size_type row, const typename Table< 2, ElementType >::size_type starting_column, const std::size_t size_of_view)
value_type & operator[](const std::size_t i) const
#define Assert(cond, exc)
ArrayView< ElementType > make_array_view(Table< 2, ElementType > &table, const typename Table< 2, ElementType >::size_type row)
ArrayView< const ElementType > make_array_view(const std::vector< ElementType > &vector, const std::size_t starting_index, const std::size_t size_of_view)
ArrayView< ElementType > make_array_view(std::vector< ElementType > &vector)
ArrayView(value_type *starting_element, const std::size_t n_elements)
ArrayView< const ElementType > make_array_view(const Table< 2, ElementType > &table, const typename Table< 2, ElementType >::size_type row)
unsigned int size(const unsigned int i) const
ArrayView< ElementType > make_array_view(Table< 2, ElementType > &table, const typename Table< 2, ElementType >::size_type row, const typename Table< 2, ElementType >::size_type starting_column, const std::size_t size_of_view)
AlignedVector< T >::size_type size_type
ArrayView< const ElementType > make_array_view(const std::vector< ElementType > &vector)
value_type *const starting_element