36template <
int N,
typename T>
38template <
int N,
typename T>
74 namespace TableBaseAccessors
83 template <
int N,
typename T,
bool Constness>
92 template <
int N,
typename T>
110 template <
int N,
typename T>
160 template <
int N,
typename T,
bool C,
unsigned int P>
204 <<
"Index " << N - P + 1 <<
"has a value of " <<
arg1
205 <<
" but needs to be in the range [" <<
arg2 <<
',' <<
arg3
221 template <
int N1,
typename T1>
222 friend class ::Table;
223 template <
int N1,
typename T1,
bool C1,
unsigned int P1>
225 friend class ::Table<N, T>;
226 friend class Accessor<N, T, C, P + 1>;
238 template <
int N,
typename T,
bool C>
325 template <
int N1,
typename T1>
326 friend class ::Table;
327 template <
int N1,
typename T1,
bool C1,
unsigned int P1>
329 friend class ::Table<2, T>;
440template <
int N,
typename T>
468 template <
typename InputIterator>
482 template <
typename T2>
513 template <
typename T2>
559 size(
const unsigned int i)
const;
617 template <
typename InputIterator>
758 template <
class Archive>
804 template <
int,
typename>
821template <
int N,
typename T>
889 template <
typename InputIterator>
957 template <
typename TableType,
bool Constness, Storage storage_order>
964 template <
typename TableType,
bool Constness, Storage storage_order>
983 template <
typename TableType,
bool Constness, Storage storage_order>
991 conditional<Constness, const TableType *, TableType *>::type;
1027 template <
bool OtherConstness>
1033 return left.container == right.container &&
1034 left.linear_index == right.linear_index;
1094 template <
typename TableType, Storage storage_order>
1121 template <
typename TableType, Storage storage_order>
1188 template <
typename TableType,
bool Constness, Storage storage_order>
1191 Accessor<TableType, Constness, storage_order>>
1203 conditional<Constness, const TableType *, TableType *>::type;
1231 const std::ptrdiff_t linear_index);
1250template <
typename T>
1335 template <
typename InputIterator>
1466 AccessorBase<Table<2, T>, true, MatrixTableIterators::Storage::row_major>;
1468 AccessorBase<Table<2, T>, false, MatrixTableIterators::Storage::row_major>;
1473 Accessor<Table<2, T>, false, MatrixTableIterators::Storage::row_major>;
1546 template <
typename InputIterator>
1621template <
typename T>
1705template <
typename T>
1792template <
typename T>
1880template <
typename T>
1974template <
typename T>
2131 MatrixTableIterators::Storage::column_major>;
2138 MatrixTableIterators::Storage::column_major>;
2155template <
int N,
typename T>
2156template <
typename InputIterator>
2167template <
int N,
typename T>
2171 , table_size(src.table_size)
2176template <
int N,
typename T>
2177template <
typename T2>
2187template <
int N,
typename T>
2190 ,
values(std::move(src.values))
2191 , table_size(src.table_size)
2198template <
int N,
typename T>
2199template <
class Archive>
2212 namespace TableBaseAccessors
2214 template <
int N,
typename T,
bool C,
unsigned int P>
2216 const iterator data)
2223 template <
int N,
typename T,
bool C,
unsigned int P>
2224 inline Accessor<N, T, C, P>::Accessor(
const Accessor &a)
2231 template <
int N,
typename T,
bool C,
unsigned int P>
2232 inline Accessor<N, T,
C, P - 1>
2233 Accessor<N, T, C, P>::operator[](
const size_type i)
const
2241 return Accessor<N, T,
C, P - 1>(table,
data);
2248 for (
int p = P - 1; p > 1; --p)
2251 return Accessor<N, T,
C, P - 1>(table,
new_data);
2257 template <
int N,
typename T,
bool C>
2258 inline Accessor<N, T, C, 1>::Accessor(
const TableType &table,
2259 const iterator data)
2266 template <
int N,
typename T,
bool C>
2267 inline Accessor<N, T, C, 1>::Accessor(
const Accessor &a)
2274 template <
int N,
typename T,
bool C>
2275 inline typename Accessor<N, T, C, 1>::reference
2276 Accessor<N, T, C, 1>::operator[](
const size_type i)
const
2284 template <
int N,
typename T,
bool C>
2285 inline typename Accessor<N, T, C, 1>::size_type
2286 Accessor<N, T, C, 1>::size()
const
2288 return table.
size()[N - 1];
2293 template <
int N,
typename T,
bool C>
2294 inline typename Accessor<N, T, C, 1>::iterator
2295 Accessor<N, T, C, 1>::begin()
const
2302 template <
int N,
typename T,
bool C>
2303 inline typename Accessor<N, T, C, 1>::iterator
2304 Accessor<N, T, C, 1>::end()
const
2313template <
int N,
typename T>
2326template <
int N,
typename T>
2327template <
typename T2>
2333 std::copy(m.values.
begin(),
2342template <
int N,
typename T>
2347 values = std::move(m.values);
2348 table_size = m.table_size;
2356template <
int N,
typename T>
2360 return (values ==
T2.values);
2365template <
int N,
typename T>
2376template <
int N,
typename T>
2386template <
int N,
typename T>
2401template <
int N,
typename T>
2445template <
int N,
typename T>
2455template <
int N,
typename T>
2464template <
int N,
typename T>
2469 return table_size[i];
2474template <
int N,
typename T>
2479 for (
unsigned int n = 0; n < N; ++n)
2486template <
int N,
typename T>
2499 template <
typename InputIterator,
typename T>
2504 for (size_type i = 0; i < table.
size()[0]; ++i)
2509 template <
typename InputIterator,
typename T>
2514 for (size_type
j = 0;
j < table.
size()[1]; ++
j)
2515 for (size_type i = 0; i < table.
size()[0]; ++i)
2520 template <
typename InputIterator,
typename T>
2525 for (size_type
k = 0;
k < table.
size()[2]; ++
k)
2526 for (size_type
j = 0;
j < table.
size()[1]; ++
j)
2527 for (size_type i = 0; i < table.
size()[0]; ++i)
2532 template <
typename InputIterator,
typename T,
int N>
2542template <
int N,
typename T>
2543template <
typename InputIterator>
2555 internal::TableImplementation::fill_Fortran_style(entries, *
this);
2560template <
int N,
typename T>
2565 std::swap(table_size, v.table_size);
2570template <
int N,
typename T>
2579template <
int N,
typename T>
2593 return size_type(indices[0]) * table_size[1] + indices[1];
2595 return ((
size_type(indices[0]) * table_size[1] + indices[1]) *
2600 unsigned int s = indices[0];
2601 for (
unsigned int n = 1; n < N; ++n)
2602 s = s * table_size[n] + indices[n];
2610template <
int N,
typename T>
2614 for (
unsigned int n = 0; n < N; ++n)
2621template <
int N,
typename T>
2625 for (
unsigned int n = 0; n < N; ++n)
2632template <
int N,
typename T>
2636 return values[position(indices)];
2641template <
int N,
typename T>
2646 return values[position(indices)];
2651template <
typename T>
2658template <
typename T>
2659template <
typename InputIterator>
2668template <
typename T>
2678template <
typename T>
2688template <
typename T>
2698template <
typename T>
2711template <
typename T>
2718template <
typename T>
2719template <
typename InputIterator>
2721 const size_type
size2,
2729template <
typename T>
2732 const size_type
size2,
2741template <
typename T>
2742inline ::internal::TableBaseAccessors::Accessor<2, T, true, 1>
2746 return ::internal::TableBaseAccessors::Accessor<2, T, true, 1>(
2752template <
typename T>
2753inline ::internal::TableBaseAccessors::Accessor<2, T, false, 1>
2757 return ::internal::TableBaseAccessors::Accessor<2, T, false, 1>(
2763template <
typename T>
2774template <
typename T>
2785template <
typename T>
2794template <
typename T>
2803template <
typename T>
2807 return this->table_size[0];
2812template <
typename T>
2816 return this->table_size[1];
2821template <
typename T>
2830template <
typename T>
2839template <
typename T>
2848template <
typename T>
2864 template <
typename TableType, Storage storage_order>
2865 inline std::ptrdiff_t
2867 const TableType *
const container)
2871 case Storage::row_major:
2872 return linear_index / container->n_cols();
2873 case Storage::column_major:
2874 return linear_index % container->n_rows();
2883 template <
typename TableType, Storage storage_order>
2884 inline std::ptrdiff_t
2886 const TableType *
const container)
2890 case Storage::row_major:
2891 return linear_index % container->n_cols();
2892 case Storage::column_major:
2893 return linear_index / container->n_rows();
2903 template <
typename TableType,
bool Constness, Storage storage_order>
2911 template <
typename TableType,
bool Constness, Storage storage_order>
2912 inline AccessorBase<TableType, Constness, storage_order>::AccessorBase(
2913 const container_pointer_type table)
2915 , linear_index(container->
values.size())
2920 template <
typename TableType,
bool Constness, Storage storage_order>
2921 inline AccessorBase<TableType, Constness, storage_order>::AccessorBase(
2923 : container(a.container)
2924 , linear_index(a.linear_index)
2929 template <
typename TableType,
bool Constness, Storage storage_order>
2930 inline AccessorBase<TableType, Constness, storage_order>::AccessorBase(
2931 const container_pointer_type table,
2932 const std::ptrdiff_t index)
2934 , linear_index(
index)
2936 Assert(0 <= linear_index &&
2937 std::size_t(linear_index) < container->values.size() + 1,
2938 ExcMessage(
"The current iterator points outside of the table and is "
2939 "not the end iterator."));
2944 template <
typename TableType,
bool Constness, Storage storage_order>
2947 AccessorBase<TableType, Constness, storage_order>::value()
const
2949 assert_valid_linear_index();
2950 return this->container->values[linear_index];
2955 template <
typename TableType,
bool Constness, Storage storage_order>
2957 operator const value_type &()
const
2959 assert_valid_linear_index();
2960 return this->container->values[linear_index];
2965 template <
typename TableType,
bool Constness, Storage storage_order>
2966 inline typename AccessorBase<TableType, Constness, storage_order>::size_type
2967 AccessorBase<TableType, Constness, storage_order>::row()
const
2969 assert_valid_linear_index();
2970 return static_cast<std::size_t
>(
2971 internal::get_row_index<TableType, storage_order>(linear_index,
2977 template <
typename TableType,
bool Constness, Storage storage_order>
2978 inline typename AccessorBase<TableType, Constness, storage_order>::size_type
2979 AccessorBase<TableType, Constness, storage_order>::column()
const
2981 assert_valid_linear_index();
2982 return static_cast<std::size_t
>(
2983 internal::get_column_index<TableType, storage_order>(linear_index,
2989 template <
typename TableType,
bool Constness, Storage storage_order>
2991 AccessorBase<TableType, Constness, storage_order>::assert_valid_linear_index()
2995 Assert(container !=
nullptr,
2996 ExcMessage(
"This accessor has been default-constructed and does not "
2997 "have a corresponding table."));
2998 Assert(!container->empty(),
2999 ExcMessage(
"An empty table has no rows or columns."));
3000 Assert(0 <= linear_index &&
3001 std::size_t(linear_index) < container->values.size(),
3002 ExcMessage(
"The current iterator points outside of the table."));
3003 const std::ptrdiff_t
row_n =
3004 internal::get_row_index<TableType, storage_order>(linear_index,
3007 internal::get_column_index<TableType, storage_order>(linear_index,
3010 ExcMessage(
"The current iterator points outside the table."));
3012 ExcMessage(
"The current iterator points outside the table."));
3018 template <
typename TableType, Storage storage_order>
3020 Accessor<TableType, false, storage_order>::operator=(
3021 const typename Accessor<TableType, false, storage_order>::value_type &t)
3024 this->assert_valid_linear_index();
3025 this->container->values[this->linear_index] = t;
3031 template <
typename TableType, Storage storage_order>
3033 Accessor<TableType, false, storage_order>::operator=(
3034 typename Accessor<TableType, false, storage_order>::value_type &&t)
const
3036 this->assert_valid_linear_index();
3037 this->container->values[this->linear_index] = t;
3043 template <
typename TableType, Storage storage_order>
3044 inline typename Accessor<TableType, false, storage_order>::value_type &
3045 Accessor<TableType, false, storage_order>::value()
const
3047 this->assert_valid_linear_index();
3048 return this->container->values[this->linear_index];
3053 template <
typename TableType, Storage storage_order>
3054 inline Accessor<TableType, false, storage_order>::operator value_type &()
3056 this->assert_valid_linear_index();
3057 return this->container->values[this->linear_index];
3062 template <
typename TableType,
bool Constness, Storage storage_order>
3063 inline Iterator<TableType, Constness, storage_order>::Iterator(
3071 template <
typename TableType,
bool Constness, Storage storage_order>
3072 inline Iterator<TableType, Constness, storage_order>::Iterator(
3073 const container_pointer_type table)
3081 template <
typename TableType,
bool Constness, Storage storage_order>
3082 inline Iterator<TableType, Constness, storage_order>::Iterator(
3090 template <
typename TableType,
bool Constness, Storage storage_order>
3091 inline Iterator<TableType, Constness, storage_order>::Iterator(
3092 const container_pointer_type table,
3093 const size_type
row_n,
3094 const size_type
col_n)
3103 template <
typename TableType,
bool Constness, Storage storage_order>
3104 inline Iterator<TableType, Constness, storage_order>::Iterator(
3105 const container_pointer_type table,
3106 const std::ptrdiff_t linear_index)
3116template <
typename T>
3118 const size_type
size2)
3124template <
typename T>
3127 const size_type
size2,
3136template <
typename T>
3147template <
typename T>
3158template <
typename T>
3167template <
typename T>
3176template <
typename T>
3180 return this->table_size[1];
3185template <
typename T>
3189 return this->table_size[0];
3194template <
typename T>
3203template <
typename T>
3212template <
typename T>
3221template <
typename T>
3231template <
typename T>
3233 const size_type
size2,
3234 const size_type
size3)
3240template <
typename T>
3241template <
typename InputIterator>
3243 const size_type
size2,
3244 const size_type
size3,
3254template <
typename T>
3257 const size_type
size2,
3258 const size_type
size3,
3267template <
typename T>
3268inline ::internal::TableBaseAccessors::Accessor<3, T, true, 2>
3273 size_type(this->table_size[1]) * this->table_size[2];
3280template <
typename T>
3281inline ::internal::TableBaseAccessors::Accessor<3, T, false, 2>
3286 size_type(this->table_size[1]) * this->table_size[2];
3293template <
typename T>
3297 const size_type
k)
const
3303 ->values[(
size_type(i) * this->table_size[1] +
j) * this->table_size[2] +
3309template <
typename T>
3317 ->values[(
size_type(i) * this->table_size[1] +
j) * this->table_size[2] +
3323template <
typename T>
3325 const size_type
size2,
3326 const size_type
size3,
3327 const size_type
size4)
3333template <
typename T>
3334inline ::internal::TableBaseAccessors::Accessor<4, T, true, 3>
3339 size_type(this->table_size[1]) * this->table_size[2] * this->table_size[3];
3346template <
typename T>
3347inline ::internal::TableBaseAccessors::Accessor<4, T, false, 3>
3352 size_type(this->table_size[1]) * this->table_size[2] * this->table_size[3];
3359template <
typename T>
3364 const size_type l)
const
3371 ->values[((
size_type(i) * this->table_size[1] +
j) * this->table_size[2] +
3373 this->table_size[3] +
3379template <
typename T>
3391 ->values[((
size_type(i) * this->table_size[1] +
j) * this->table_size[2] +
3393 this->table_size[3] +
3399template <
typename T>
3401 const size_type
size2,
3402 const size_type
size3,
3403 const size_type
size4,
3404 const size_type
size5)
3410template <
typename T>
3411inline ::internal::TableBaseAccessors::Accessor<5, T, true, 4>
3416 this->table_size[2] * this->table_size[3] *
3417 this->table_size[4];
3424template <
typename T>
3425inline ::internal::TableBaseAccessors::Accessor<5, T, false, 4>
3430 this->table_size[2] * this->table_size[3] *
3431 this->table_size[4];
3438template <
typename T>
3444 const size_type m)
const
3452 ->values[(((
size_type(i) * this->table_size[1] +
j) * this->table_size[2] +
3454 this->table_size[3] +
3456 this->table_size[4] +
3462template <
typename T>
3476 ->values[(((
size_type(i) * this->table_size[1] +
j) * this->table_size[2] +
3478 this->table_size[3] +
3480 this->table_size[4] +
3486template <
typename T>
3488 const size_type
size2,
3489 const size_type
size3,
3490 const size_type
size4,
3491 const size_type
size5,
3492 const size_type
size6)
3508template <
typename T>
3509inline ::internal::TableBaseAccessors::Accessor<6, T, true, 5>
3514 this->table_size[2] * this->table_size[3] *
3515 this->table_size[4] * this->table_size[5];
3522template <
typename T>
3523inline ::internal::TableBaseAccessors::Accessor<6, T, false, 5>
3528 this->table_size[2] * this->table_size[3] *
3529 this->table_size[4] * this->table_size[5];
3536template <
typename T>
3543 const size_type n)
const
3552 ->values[((((
size_type(i) * this->table_size[1] +
j) * this->table_size[2] +
3554 this->table_size[3] +
3556 this->table_size[4] +
3558 this->table_size[5] +
3564template <
typename T>
3580 ->values[((((
size_type(i) * this->table_size[1] +
j) * this->table_size[2] +
3582 this->table_size[3] +
3584 this->table_size[4] +
3586 this->table_size[5] +
3592template <
typename T>
3594 const size_type
size2,
3595 const size_type
size3,
3596 const size_type
size4,
3597 const size_type
size5,
3598 const size_type
size6,
3599 const size_type
size7)
3616template <
typename T>
3617inline ::internal::TableBaseAccessors::Accessor<7, T, true, 6>
3622 size_type(this->table_size[1]) * this->table_size[2] * this->table_size[3] *
3623 this->table_size[4] * this->table_size[5] * this->table_size[6];
3630template <
typename T>
3631inline ::internal::TableBaseAccessors::Accessor<7, T, false, 6>
3636 size_type(this->table_size[1]) * this->table_size[2] * this->table_size[3] *
3637 this->table_size[4] * this->table_size[5] * this->table_size[6];
3644template <
typename T>
3652 const size_type
o)
const
3662 [(((((
size_type(i) * this->table_size[1] +
j) * this->table_size[2] +
k) *
3663 this->table_size[3] +
3665 this->table_size[4] +
3667 this->table_size[5] +
3669 this->table_size[6] +
3675template <
typename T>
3693 [(((((
size_type(i) * this->table_size[1] +
j) * this->table_size[2] +
k) *
3694 this->table_size[3] +
3696 this->table_size[4] +
3698 this->table_size[5] +
3700 this->table_size[6] +
3714template <
int N,
typename T>
const value_type * const_iterator
const value_type & const_reference
value_type * data() const noexcept
void reinit(value_type *starting_element, const std::size_t n_elements)
Accessor< TableType, Constness, storage_order > accessor
Accessor base class for Table<2, T> and TransposeTable.
AccessorBase(const AccessorBase< TableType, false, storage_order > &)
void assert_valid_linear_index() const
typename TableType::value_type value_type
std::ptrdiff_t linear_index
const value_type & value() const
container_pointer_type container
AccessorBase(const container_pointer_type table)
AccessorBase(const container_pointer_type table, const std::ptrdiff_t linear_index)
typename std::conditional< Constness, const TableType *, TableType * >::type container_pointer_type
friend bool operator==(const AccessorBase< TableType, Constness, storage_order > &left, const AccessorBase< TableType, OtherConstness, storage_order > &right)
typename TableType::size_type size_type
const Accessor< TableType, false, storage_order > & operator=(value_type &&) const
const Accessor< TableType, false, storage_order > & operator=(const value_type &) const
typename AccessorBase< TableType, true, storage_order >::value_type value_type
value_type & value() const
typename AccessorBase< TableType, true, storage_order >::size_type size_type
typename AccessorBase< TableType, true, storage_order >::value_type value_type
typename AccessorBase< TableType, true, storage_order >::size_type size_type
Accessor class template. This class is partially specialized for both values of Constness.
Iterator class for both matrix-like tables, i.e., Table<2, T> and TransposeTable.
Iterator(const container_pointer_type object, const size_type row, const size_type column)
Iterator(const Accessor< TableType, Constness, storage_order > &accessor)
Iterator(const container_pointer_type object)
Iterator(const Iterator< TableType, false, storage_order > &i)
typename std::conditional< Constness, const TableType *, TableType * >::type container_pointer_type
Iterator(const container_pointer_type container, const std::ptrdiff_t linear_index)
typename TableType::size_type size_type
void swap(TableBase< N, T > &v)
void fill(const T &value)
std::size_t memory_consumption() const
TableBase< N, T > & operator=(const TableBase< N, T > &src)
void reinit(const TableIndices< N > &new_size, const bool omit_default_initialization=false)
AlignedVector< T >::const_reference el(const TableIndices< N > &indices) const
AlignedVector< T >::const_reference operator()(const TableIndices< N > &indices) const
AlignedVector< T > values
TableBase< N, T > & operator=(TableBase< N, T > &&src) noexcept
~TableBase() override=default
typename AlignedVector< T >::size_type size_type
size_type n_elements() const
TableBase(const TableBase< N, T2 > &src)
TableBase(const TableIndices< N > &sizes, InputIterator entries, const bool C_style_indexing=true)
const TableIndices< N > & size() const
bool operator==(const TableBase< N, T > &T2) const
size_type position(const TableIndices< N > &indices) const
TableBase(const TableBase< N, T > &src)
TableBase< N, T > & operator=(const TableBase< N, T2 > &src)
AlignedVector< T >::reference operator()(const TableIndices< N > &indices)
AlignedVector< T >::reference el(const TableIndices< N > &indices)
void fill(InputIterator entries, const bool C_style_indexing=true)
void serialize(Archive &ar, const unsigned int version)
void replicate_across_communicator(const MPI_Comm communicator, const unsigned int root_process)
TableBase(const TableIndices< N > &sizes)
size_type size(const unsigned int i) const
TableBase(TableBase< N, T > &&src) noexcept
TableIndices< N > table_size
Table(const size_type size)
AlignedVector< T >::const_reference operator[](const size_type i) const
typename TableBase< 1, T >::size_type size_type
AlignedVector< T >::reference operator[](const size_type i)
AlignedVector< T >::const_reference operator()(const size_type i) const
AlignedVector< T >::reference operator()(const size_type i)
Table(const size_type size, InputIterator entries, const bool C_style_indexing=true)
AlignedVector< T >::reference operator()(const size_type i, const size_type j)
AlignedVector< T >::reference el(const size_type i, const size_type j)
typename AlignedVector< T >::const_reference const_reference
typename AlignedVector< T >::value_type value_type
AlignedVector< T >::const_reference operator()(const size_type i, const size_type j) const
::internal::TableBaseAccessors::Accessor< 2, T, false, 1 > operator[](const size_type i)
typename TableBase< 2, T >::size_type size_type
::internal::TableBaseAccessors::Accessor< 2, T, true, 1 > operator[](const size_type i) const
AlignedVector< T >::const_reference el(const size_type i, const size_type j) const
typename AlignedVector< T >::reference reference
const_iterator end() const
Table(const size_type size1, const size_type size2, InputIterator entries, const bool C_style_indexing=true)
void reinit(const size_type size1, const size_type size2, const bool omit_default_initialization=false)
const_iterator begin() const
Table(const size_type size1, const size_type size2)
::internal::TableBaseAccessors::Accessor< 3, T, true, 2 > operator[](const size_type i) const
AlignedVector< T >::const_reference operator()(const size_type i, const size_type j, const size_type k) const
AlignedVector< T >::reference operator()(const size_type i, const size_type j, const size_type k)
Table(const size_type size1, const size_type size2, const size_type size3)
Table(const size_type size1, const size_type size2, const size_type size3, InputIterator entries, const bool C_style_indexing=true)
void reinit(const size_type size1, const size_type size2, const size_type size3, const bool omit_default_initialization=false)
typename TableBase< 3, T >::size_type size_type
::internal::TableBaseAccessors::Accessor< 3, T, false, 2 > operator[](const size_type i)
::internal::TableBaseAccessors::Accessor< 4, T, true, 3 > operator[](const size_type i) const
Table(const size_type size1, const size_type size2, const size_type size3, const size_type size4)
AlignedVector< T >::const_reference operator()(const size_type i, const size_type j, const size_type k, const size_type l) const
typename TableBase< 4, T >::size_type size_type
::internal::TableBaseAccessors::Accessor< 4, T, false, 3 > operator[](const size_type i)
AlignedVector< T >::reference operator()(const size_type i, const size_type j, const size_type k, const size_type l)
typename TableBase< 5, T >::size_type size_type
::internal::TableBaseAccessors::Accessor< 5, T, false, 4 > operator[](const size_type i)
AlignedVector< T >::reference operator()(const size_type i, const size_type j, const size_type k, const size_type l, const size_type m)
AlignedVector< T >::const_reference operator()(const size_type i, const size_type j, const size_type k, const size_type l, const size_type m) const
::internal::TableBaseAccessors::Accessor< 5, T, true, 4 > operator[](const size_type i) const
Table(const size_type size1, const size_type size2, const size_type size3, const size_type size4, const size_type size5)
::internal::TableBaseAccessors::Accessor< 6, T, false, 5 > operator[](const size_type i)
AlignedVector< T >::const_reference operator()(const size_type i, const size_type j, const size_type k, const size_type l, const size_type m, const size_type n) const
Table(const size_type size1, const size_type size2, const size_type size3, const size_type size4, const size_type size5, const size_type size6)
AlignedVector< T >::reference operator()(const size_type i, const size_type j, const size_type k, const size_type l, const size_type m, const size_type n)
typename TableBase< 6, T >::size_type size_type
::internal::TableBaseAccessors::Accessor< 6, T, true, 5 > operator[](const size_type i) const
::internal::TableBaseAccessors::Accessor< 7, T, false, 6 > operator[](const size_type i)
typename TableBase< 7, T >::size_type size_type
::internal::TableBaseAccessors::Accessor< 7, T, true, 6 > operator[](const size_type i) const
AlignedVector< T >::reference operator()(const size_type i, const size_type j, const size_type k, const size_type l, const size_type m, const size_type n, const size_type o)
AlignedVector< T >::const_reference operator()(const size_type i, const size_type j, const size_type k, const size_type l, const size_type m, const size_type n, const size_type o) const
Table(const size_type size1, const size_type size2, const size_type size3, const size_type size4, const size_type size5, const size_type size6, const size_type size7)
void reinit(const size_type size1, const size_type size2, const bool omit_default_initialization=false)
TransposeTable(const size_type size1, const size_type size2)
MatrixTableIterators::Iterator< TransposeTable< T >, false, MatrixTableIterators::Storage::column_major > iterator
reference el(const size_type i, const size_type j)
const_iterator begin() const
MatrixTableIterators::Iterator< TransposeTable< T >, true, MatrixTableIterators::Storage::column_major > const_iterator
const_iterator end() const
typename AlignedVector< T >::reference reference
typename TableBase< 2, T >::size_type size_type
const_reference operator()(const size_type i, const size_type j) const
typename AlignedVector< T >::value_type value_type
const_reference el(const size_type i, const size_type j) const
reference operator()(const size_type i, const size_type j)
typename AlignedVector< T >::const_reference const_reference
typename Types< N, T, C >::value_type value_type
Accessor(const Accessor &a)
typename Types< N, T, C >::const_iterator const_iterator
typename Types< N, T, C >::TableType TableType
typename Types< N, T, C >::const_reference const_reference
typename Types< N, T, C >::iterator iterator
ptrdiff_t difference_type
reference operator[](const size_type) const
typename Types< N, T, C >::reference reference
Accessor(const TableType &table, const iterator data)
ptrdiff_t difference_type
typename Types< N, T, C >::TableType TableType
typename Types< N, T, C >::iterator iterator
Accessor(const Accessor &a)
Accessor< N, T, C, P - 1 > operator[](const size_type i) const
Accessor(const TableType &table, const iterator data)
typename Types< N, T, C >::const_iterator const_iterator
#define DEAL_II_NAMESPACE_OPEN
#define DEAL_II_NAMESPACE_CLOSE
static ::ExceptionBase & ExcNotImplemented()
static ::ExceptionBase & ExcIndexRange(size_type arg1, size_type arg2, size_type arg3)
#define Assert(cond, exc)
#define AssertIndexRange(index, range)
static ::ExceptionBase & ExcInternalError()
#define DeclException3(Exception3, type1, type2, type3, outsequence)
static ::ExceptionBase & ExcMessage(std::string arg1)
types::global_dof_index size_type
Storage
Enumeration describing the storage order (i.e., the in-memory layout) of a table class.
std::enable_if_t< std::is_fundamental< T >::value, std::size_t > memory_consumption(const T &t)
SymmetricTensor< 2, dim, Number > C(const Tensor< 2, dim, Number > &F)
Tensor< 2, dim, Number > l(const Tensor< 2, dim, Number > &F, const Tensor< 2, dim, Number > &dF_dt)
std::enable_if_t< is_mpi_type< T >==false, T > broadcast(const MPI_Comm comm, const T &object_to_send, const unsigned int root_process=0)
typename AlignedVector< T >::iterator iterator
typename AlignedVector< T >::const_iterator const_iterator
typename AlignedVector< T >::reference reference
typename AlignedVector< T >::const_reference const_reference
typename AlignedVector< T >::const_iterator const_iterator
typename AlignedVector< T >::const_reference const_reference
typename AlignedVector< T >::const_iterator iterator
typename AlignedVector< T >::const_reference reference
void swap(TableBase< N, T > &u, TableBase< N, T > &v)