![]() |
Reference documentation for deal.II version Git 9b341ae816 2021-01-21 15:59:19 -0700
|
#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< TransposeTable< T >, true, MatrixTableIterators::Storage::column_major > |
using | iterator = MatrixTableIterators::Iterator< TransposeTable< T >, false, MatrixTableIterators::Storage::column_major > |
Public Member Functions | |
TransposeTable ()=default | |
TransposeTable (const size_type size1, const size_type size2) | |
void | reinit (const size_type size1, const size_type size2, const bool omit_default_initialization=false) |
const_reference | operator() (const size_type i, const size_type j) const |
reference | operator() (const size_type i, const size_type j) |
size_type | n_rows () const |
size_type | n_cols () const |
iterator | begin () |
const_iterator | begin () const |
iterator | end () |
const_iterator | end () const |
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) |
Subscriptor functionality | |
Classes derived from Subscriptor provide a facility to subscribe to this object. This is mostly used by the SmartPointer class. | |
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 |
Static Public Member Functions | |
static ::ExceptionBase & | ExcInUse (int arg1, std::string arg2, std::string arg3) |
static ::ExceptionBase & | ExcNoSubscriber (std::string arg1, std::string arg2) |
Protected Member Functions | |
reference | el (const size_type i, const size_type j) |
const_reference | el (const size_type i, const size_type j) const |
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 |
Protected Attributes | |
AlignedVector< T > | values |
TableIndices< N > | table_size |
A class representing a transpose two-dimensional table, i.e. a matrix of objects (not necessarily only numbers) in column first numbering (FORTRAN convention). The only real difference is therefore really in the storage format.
This class copies the functions of Table<2,T>, but the element access and the dimensions will be for the transpose ordering of the data field in TableBase.
using TransposeTable< T >::size_type = typename TableBase<2, T>::size_type |
using TransposeTable< T >::value_type = typename AlignedVector<T>::value_type |
using TransposeTable< T >::reference = typename AlignedVector<T>::reference |
using TransposeTable< T >::const_reference = typename AlignedVector<T>::const_reference |
using TransposeTable< T >::const_iterator = MatrixTableIterators::Iterator<TransposeTable<T>, true, MatrixTableIterators::Storage::column_major> |
using TransposeTable< T >::iterator = MatrixTableIterators::Iterator<TransposeTable<T>, false, MatrixTableIterators::Storage::column_major> |
|
default |
Default constructor. Set all dimensions to zero.
TransposeTable< T >::TransposeTable | ( | const size_type | size1, |
const size_type | size2 | ||
) |
Constructor. Pass down the given dimensions to the base class.
void TransposeTable< 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.
const_reference TransposeTable< 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.
reference TransposeTable< 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.
size_type TransposeTable< T >::n_rows | ( | ) | const |
Number of rows. This function really makes only sense since we have a two-dimensional object here.
size_type TransposeTable< T >::n_cols | ( | ) | const |
Number of columns. This function really makes only sense since we have a two-dimensional object here.
iterator TransposeTable< T >::begin | ( | ) |
Return an iterator pointing to the first entry.
const_iterator TransposeTable< T >::begin | ( | ) | const |
Return a constant iterator pointing to the first entry.
iterator TransposeTable< T >::end | ( | ) |
Return an iterator pointing to one past the last entry.
const_iterator TransposeTable< 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
.
Test for equality of two tables.
|
inherited |
Set all entries to their default value (i.e. copy them over with default constructed objects). Do not change the size of the table, though.
|
inherited |
Set the dimensions of this object to the sizes given in the first argument, and allocate the required memory for table entries to accommodate these sizes. If omit_default_initialization
is set to false
, all elements of the table are set to a default constructed object for the element type. Otherwise the memory is left in an uninitialized or otherwise undefined state.
Size of the table in direction i
.
|
inherited |
Return the sizes of this object in each direction.
Return the number of elements stored in this object, which is the product of the extensions in each dimension.
Return whether the object is empty, i.e. one of the directions is zero. This is equivalent to n_elements()==0
.
|
inherited |
Fill this table (which is assumed to already have the correct size) from a source given by dereferencing the given forward iterator (which could, for example, be a pointer to the first element of an array, or an inserting std::istream_iterator). The second argument denotes whether the elements pointed to are arranged in a way that corresponds to the last index running fastest or slowest. The default is to use C-style indexing where the last index runs fastest (as opposed to Fortran-style where the first index runs fastest when traversing multidimensional arrays. For example, if you try to fill an object of type Table<2,T>, then calling this function with the default value for the second argument will result in the equivalent of doing
On the other hand, if the second argument to this function is false, then this would result in code of the following form:
Note the switched order in which we fill the table elements by traversing the given set of iterators.
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. |
|
inherited |
Fill all table entries with the same value.
|
inherited |
Return a read-write reference to the indicated element.
|
inherited |
Return the value of the indicated element as a read-only reference.
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.
Swap the contents of this table and the other table v
. One could do this operation with a temporary variable and copying over the data elements, but this function is significantly more efficient since it only swaps the pointers to the data of the two vectors and therefore does not need to allocate temporary storage and move data around.
This function is analogous to the swap
function of all C++ standard containers. Also, there is a global function swap(u,v)
that simply calls u.swap(v)
, again in analogy to standard functions.
|
inherited |
Determine an estimate for the memory consumption (in bytes) of this object.
Write or read the data of this object to or from a stream for the purpose of serialization using the BOOST serialization library.
|
protectedinherited |
Return the position of the indicated element within the array of elements stored one after the other. This function does no index checking.
|
protectedinherited |
Return a read-write reference to the indicated element.
This function does no bounds checking and is only to be used internally and in functions already checked.
|
protectedinherited |
Return the value of the indicated element 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.
|
inherited |
Subscribes a user of the object by storing the pointer validity
. The subscriber may be identified by text supplied as identifier
.
Definition at line 136 of file subscriptor.cc.
|
inherited |
Unsubscribes a user from the object.
identifier
and the validity
pointer must be the same as the one supplied to subscribe(). Definition at line 156 of file subscriptor.cc.
|
inlineinherited |
Return the present number of subscriptions to this object. This allows to use this class for reference counted lifetime determination where the last one to unsubscribe also deletes the object.
Definition at line 301 of file subscriptor.h.
|
inlineinherited |
List the subscribers to the input stream
.
Definition at line 318 of file subscriptor.h.
|
inherited |
List the subscribers to deallog
.
Definition at line 204 of file subscriptor.cc.
|
friend |
|
friend |
|
friend |
|
protectedinherited |
|
protectedinherited |