Reference documentation for deal.II version 9.1.1
|
#include <deal.II/base/table.h>
Public Types | |
using | size_type = typename TableBase< 2, T >::size_type |
using | value_type = typename AlignedVector< T >::value_type |
using | reference = typename AlignedVector< T >::reference |
using | const_reference = typename AlignedVector< T >::const_reference |
using | const_iterator = MatrixTableIterators::Iterator< Table< 2, T >, true, MatrixTableIterators::Storage::row_major > |
using | iterator = MatrixTableIterators::Iterator< Table< 2, T >, false, MatrixTableIterators::Storage::row_major > |
Public Types inherited from TableBase< 2, T > | |
using | size_type = typename AlignedVector< T >::size_type |
Public Member Functions | |
Table ()=default | |
Table (const size_type size1, const size_type size2) | |
template<typename InputIterator > | |
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) |
::internal::TableBaseAccessors::Accessor< 2, T, true, 1 > | operator[] (const size_type i) const |
::internal::TableBaseAccessors::Accessor< 2, T, false, 1 > | operator[] (const size_type i) |
AlignedVector< T >::const_reference | operator() (const size_type i, const size_type j) const |
AlignedVector< T >::reference | operator() (const size_type i, const size_type j) |
AlignedVector< T >::reference | operator() (const TableIndices< 2 > &indices) |
AlignedVector< T >::const_reference | operator() (const TableIndices< 2 > &indices) const |
size_type | n_rows () const |
size_type | n_cols () const |
iterator | begin () |
const_iterator | begin () const |
iterator | end () |
const_iterator | end () const |
Public Member Functions inherited from TableBase< 2, T > | |
TableBase ()=default | |
TableBase (const TableIndices< N > &sizes) | |
TableBase (const TableIndices< N > &sizes, InputIterator entries, const bool C_style_indexing=true) | |
TableBase (const TableBase< N, T > &src) | |
TableBase (const TableBase< N, T2 > &src) | |
TableBase (TableBase< N, T > &&src) noexcept | |
~TableBase () override=default | |
TableBase< N, T > & | operator= (const TableBase< N, T > &src) |
TableBase< N, T > & | operator= (const TableBase< N, T2 > &src) |
TableBase< N, T > & | operator= (TableBase< N, T > &&src) noexcept |
bool | operator== (const TableBase< N, T > &T2) const |
void | reset_values () |
void | reinit (const TableIndices< N > &new_size, const bool omit_default_initialization=false) |
size_type | size (const unsigned int i) const |
const TableIndices< N > & | size () const |
size_type | n_elements () const |
bool | empty () const |
void | fill (InputIterator entries, const bool C_style_indexing=true) |
void | fill (const T &value) |
AlignedVector< T >::reference | operator() (const TableIndices< N > &indices) |
AlignedVector< T >::const_reference | operator() (const TableIndices< N > &indices) const |
void | swap (TableBase< N, T > &v) |
std::size_t | memory_consumption () const |
void | serialize (Archive &ar, const unsigned int version) |
Public Member Functions inherited from Subscriptor | |
Subscriptor () | |
Subscriptor (const Subscriptor &) | |
Subscriptor (Subscriptor &&) noexcept | |
virtual | ~Subscriptor () |
Subscriptor & | operator= (const Subscriptor &) |
Subscriptor & | operator= (Subscriptor &&) noexcept |
void | subscribe (std::atomic< bool > *const validity, const std::string &identifier="") const |
void | unsubscribe (std::atomic< bool > *const validity, const std::string &identifier="") const |
unsigned int | n_subscriptions () const |
template<typename StreamType > | |
void | list_subscribers (StreamType &stream) const |
void | list_subscribers () const |
template<class Archive > | |
void | serialize (Archive &ar, const unsigned int version) |
Protected Member Functions | |
AlignedVector< T >::reference | el (const size_type i, const size_type j) |
AlignedVector< T >::const_reference | el (const size_type i, const size_type j) const |
Protected Member Functions inherited from TableBase< 2, T > | |
size_type | position (const TableIndices< N > &indices) const |
AlignedVector< T >::reference | el (const TableIndices< N > &indices) |
AlignedVector< T >::const_reference | el (const TableIndices< N > &indices) const |
Friends | |
class | MatrixTableIterators::AccessorBase< Table< 2, T >, true, MatrixTableIterators::Storage::row_major > |
class | MatrixTableIterators::AccessorBase< Table< 2, T >, false, MatrixTableIterators::Storage::row_major > |
class | MatrixTableIterators::Accessor< Table< 2, T >, false, MatrixTableIterators::Storage::row_major > |
Additional Inherited Members | |
Static Public Member Functions inherited from Subscriptor | |
static ::ExceptionBase & | ExcInUse (int arg1, std::string arg2, std::string arg3) |
static ::ExceptionBase & | ExcNoSubscriber (std::string arg1, std::string arg2) |
Protected Attributes inherited from TableBase< 2, T > | |
AlignedVector< T > | values |
TableIndices< N > | table_size |
A class representing a two-dimensional table, i.e. a matrix of objects (not necessarily only numbers).
For the rationale of this class, and a description of the interface, see the base class. Since this serves as the base class of the full matrix classes in this library, and to keep a minimal compatibility with a predecessor class (vector2d
), some additional functions are provided.
using Table< 2, T >::value_type = typename AlignedVector<T>::value_type |
using Table< 2, T >::reference = typename AlignedVector<T>::reference |
using Table< 2, T >::const_reference = typename AlignedVector<T>::const_reference |
using Table< 2, T >::const_iterator = MatrixTableIterators:: Iterator<Table<2, T>, true, MatrixTableIterators::Storage::row_major> |
using Table< 2, T >::iterator = MatrixTableIterators:: Iterator<Table<2, T>, false, MatrixTableIterators::Storage::row_major> |
Default constructor. Set all dimensions to zero.
Constructor. Pass down the given dimensions to the base class.
Table< 2, T >::Table | ( | const size_type | size1, |
const size_type | size2, | ||
InputIterator | entries, | ||
const bool | C_style_indexing = true |
||
) |
Constructor. Create a table with a given size and initialize it from a set of iterators.
This function is entirely equivalent to creating a table t
of the given size and then calling
on it, using the TableBase::fill() function where the arguments are explained in more detail. The point, however, is that that is only possible if the table can be changed after running the constructor, whereas calling the current constructor allows sizing and initializing an object right away so that it can be marked const.
Using this constructor, you can do things like this:
You can also initialize a table right from a file, using input iterators:
size1 | The size of this table in the first dimension. |
size2 | The size of this table in the second dimension. |
entries | An iterator to a set of elements from which to initialize this table. It is assumed that iterator can be incremented and dereferenced a sufficient number of times to fill this table. |
C_style_indexing | If true, run over elements of the table with the last index changing fastest as we dereference subsequent elements of the input range. If false, change the first index fastest. |
void Table< 2, T >::reinit | ( | const size_type | size1, |
const size_type | size2, | ||
const bool | omit_default_initialization = false |
||
) |
Reinitialize the object. This function is mostly here for compatibility with the earlier vector2d
class. Passes down to the base class by converting the arguments to the data type requested by the base class.
::internal::TableBaseAccessors::Accessor<2, T, true, 1> Table< 2, T >::operator[] | ( | const size_type | i | ) | const |
Access operator. Generate an object that accesses the requested row of this two-dimensional table. Range checks are performed.
This version of the function only allows read access.
::internal::TableBaseAccessors::Accessor<2, T, false, 1> Table< 2, T >::operator[] | ( | const size_type | i | ) |
Access operator. Generate an object that accesses the requested row of this two-dimensional table. Range checks are performed.
This version of the function allows read-write access.
AlignedVector<T>::const_reference Table< 2, T >::operator() | ( | const size_type | i, |
const size_type | j | ||
) | const |
Direct access to one element of the table by specifying all indices at the same time. Range checks are performed.
This version of the function only allows read access.
AlignedVector<T>::reference Table< 2, T >::operator() | ( | const size_type | i, |
const size_type | j | ||
) |
Direct access to one element of the table by specifying all indices at the same time. Range checks are performed.
This version of the function allows read-write access.
AlignedVector<T>::reference Table< 2, T >::operator() | ( | const TableIndices< 2 > & | indices | ) |
Make the corresponding operator () from the TableBase base class available also in this class.
AlignedVector<T>::const_reference Table< 2, T >::operator() | ( | const TableIndices< 2 > & | indices | ) | const |
Make the corresponding operator () from the TableBase base class available also in this class.
Number of rows. This function really makes only sense since we have a two-dimensional object here.
Number of columns. This function really makes only sense since we have a two-dimensional object here.
Return an iterator pointing to the first entry.
const_iterator Table< 2, T >::begin | ( | ) | const |
Return a constant iterator pointing to the first entry.
Return an iterator pointing to one past the last entry.
const_iterator Table< 2, T >::end | ( | ) | const |
Return a constant iterator pointing to one past the last entry.
|
protected |
Return a read-write reference to the element (i,j)
.
This function does no bounds checking and is only to be used internally and in functions already checked.
These functions are mainly here for compatibility with a former implementation of these table classes for 2d arrays, then called vector2d
.
|
protected |
Return the value of the element (i,j)
as a read-only reference.
This function does no bounds checking and is only to be used internally and in functions already checked.
We return the requested value as a constant reference rather than by value since this object may hold data types that may be large, and we don't know here whether copying is expensive or not.
These functions are mainly here for compatibility with a former implementation of these table classes for 2d arrays, then called vector2d
.
|
friend |
|
friend |