dune-istl
2.1.1
|
#include <dune/istl/bvector.hh>
Public Types | |
enum | { blocklevel = B::blocklevel+1 } |
increment block level counter More... | |
typedef B::field_type | field_type |
export the type representing the field | |
typedef B | block_type |
export the type representing the components | |
typedef A | allocator_type |
export the allocator type | |
typedef A::size_type | size_type |
The type for the index access. | |
typedef block_vector_unmanaged < B, A >::Iterator | Iterator |
make iterators available as types | |
typedef block_vector_unmanaged < B, A >::ConstIterator | ConstIterator |
make iterators available as types | |
typedef B | value_type |
for STL compatibility | |
typedef B | member_type |
export the type representing the components | |
typedef RealIterator< B > | iterator |
iterator type for sequential access | |
typedef RealIterator< const B > | const_iterator |
iterator class for sequential access | |
Public Member Functions | |
BlockVectorWindow () | |
makes empty array | |
BlockVectorWindow (B *_p, size_type _n) | |
make array from given pointer and size | |
BlockVectorWindow (const BlockVectorWindow &a) | |
copy constructor, this has reference semantics! | |
BlockVectorWindow (const block_vector_unmanaged< B, A > &_a) | |
construct from base class object with reference semantics! | |
BlockVectorWindow & | operator= (const BlockVectorWindow &a) |
assignment | |
BlockVectorWindow & | operator= (const block_vector_unmanaged< B, A > &a) |
assign from base class object | |
BlockVectorWindow & | operator= (const field_type &k) |
assign from scalar | |
void | set (size_type _n, B *_p) |
set size and pointer | |
void | setsize (size_type _n) |
set size only | |
void | setptr (B *_p) |
set pointer only | |
B * | getptr () |
get pointer | |
size_type | getsize () |
get size | |
block_vector_unmanaged & | operator+= (const block_vector_unmanaged &y) |
vector space addition | |
block_vector_unmanaged & | operator-= (const block_vector_unmanaged &y) |
vector space subtraction | |
block_vector_unmanaged & | operator*= (const field_type &k) |
vector space multiplication with scalar | |
block_vector_unmanaged & | operator/= (const field_type &k) |
vector space division by scalar | |
block_vector_unmanaged & | axpy (const field_type &a, const block_vector_unmanaged &y) |
vector space axpy operation | |
field_type | operator* (const block_vector_unmanaged &y) const |
scalar product | |
double | one_norm () const |
one norm (sum over absolute values of entries) | |
double | one_norm_real () const |
simplified one norm (uses Manhattan norm for complex values) | |
double | two_norm () const |
two norm sqrt(sum over squared values of entries) | |
double | two_norm2 () const |
sqare of two norm (sum over squared values of entries), need for block recursion | |
double | infinity_norm () const |
infinity norm (maximum of absolute values of entries) | |
double | infinity_norm_real () const |
simplified infinity norm (uses Manhattan norm for complex values) | |
size_type | N () const |
number of blocks in the vector (are of size 1 here) | |
size_type | dim () const |
dimension of the vector space | |
B & | operator[] (size_type i) |
random access to blocks | |
const B & | operator[] (size_type i) const |
same for read only access | |
iterator | begin () |
begin iterator | |
const_iterator | begin () const |
begin const_iterator | |
iterator | end () |
end iterator | |
const_iterator | end () const |
end const_iterator | |
iterator | rbegin () |
const_iterator | rbegin () const |
iterator | beforeEnd () |
const_iterator | beforeEnd () const |
iterator | rend () |
const_iterator | rend () const |
iterator | beforeBegin () |
const_iterator | beforeBegin () const |
iterator | find (size_type i) |
random access returning iterator (end if not contained) | |
const_iterator | find (size_type i) const |
random access returning iterator (end if not contained) | |
size_type | size () const |
number of blocks in the array (are of size 1 here) | |
Protected Attributes | |
size_type | n |
B * | p |
BlockVectorWindow adds window manipulation functions to the block_vector_unmanaged template.
This class has no memory management. It assumes that the storage for the entries of the vector is maintained outside of this class.
But you can copy objects of this class and of the base class with reference semantics.
Assignment copies the data, if the format is incopmpatible with the argument an exception is thrown in debug mode.
Error checking: no error checking is provided normally. Setting the compile time switch DUNE_ISTL_WITH_CHECKING enables error checking.
typedef A Dune::BlockVectorWindow< B, A >::allocator_type |
export the allocator type
Reimplemented from Dune::block_vector_unmanaged< B, A >.
typedef B Dune::BlockVectorWindow< B, A >::block_type |
export the type representing the components
Reimplemented from Dune::block_vector_unmanaged< B, A >.
typedef RealIterator<const B> Dune::base_array_unmanaged< B, A >::const_iterator [inherited] |
iterator class for sequential access
Reimplemented in Dune::base_array< B, A >, and Dune::base_array_window< B, A >.
typedef block_vector_unmanaged<B,A>::ConstIterator Dune::BlockVectorWindow< B, A >::ConstIterator |
make iterators available as types
Reimplemented from Dune::block_vector_unmanaged< B, A >.
typedef B::field_type Dune::BlockVectorWindow< B, A >::field_type |
export the type representing the field
Reimplemented from Dune::block_vector_unmanaged< B, A >.
typedef RealIterator<B> Dune::base_array_unmanaged< B, A >::iterator [inherited] |
iterator type for sequential access
Reimplemented in Dune::base_array< B, A >, and Dune::base_array_window< B, A >.
typedef block_vector_unmanaged<B,A>::Iterator Dune::BlockVectorWindow< B, A >::Iterator |
make iterators available as types
Reimplemented from Dune::block_vector_unmanaged< B, A >.
typedef B Dune::base_array_unmanaged< B, A >::member_type [inherited] |
export the type representing the components
Reimplemented in Dune::base_array< B, A >, and Dune::base_array_window< B, A >.
typedef A::size_type Dune::BlockVectorWindow< B, A >::size_type |
The type for the index access.
Reimplemented from Dune::block_vector_unmanaged< B, A >.
typedef B Dune::block_vector_unmanaged< B, A >::value_type [inherited] |
for STL compatibility
anonymous enum |
Dune::BlockVectorWindow< B, A >::BlockVectorWindow | ( | ) | [inline] |
makes empty array
Dune::BlockVectorWindow< B, A >::BlockVectorWindow | ( | B * | _p, |
size_type | _n | ||
) | [inline] |
make array from given pointer and size
References Dune::base_array_unmanaged< B, A >::n, and Dune::base_array_unmanaged< B, A >::p.
Dune::BlockVectorWindow< B, A >::BlockVectorWindow | ( | const BlockVectorWindow< B, A > & | a | ) | [inline] |
copy constructor, this has reference semantics!
References Dune::base_array_unmanaged< B, A >::n, and Dune::base_array_unmanaged< B, A >::p.
Dune::BlockVectorWindow< B, A >::BlockVectorWindow | ( | const block_vector_unmanaged< B, A > & | _a | ) | [inline] |
construct from base class object with reference semantics!
References Dune::base_array_unmanaged< B, A >::n, and Dune::base_array_unmanaged< B, A >::p.
block_vector_unmanaged& Dune::block_vector_unmanaged< B, A >::axpy | ( | const field_type & | a, |
const block_vector_unmanaged< B, A > & | y | ||
) | [inline, inherited] |
vector space axpy operation
Referenced by Dune::block_vector_unmanaged< T, A >::axpy().
iterator Dune::base_array_unmanaged< B, A >::beforeBegin | ( | ) | [inline, inherited] |
Reimplemented in Dune::VariableBlockVector< B, A >, and Dune::VariableBlockVector< T, A >.
Referenced by Dune::base_array_unmanaged< T, A >::rend().
const_iterator Dune::base_array_unmanaged< B, A >::beforeBegin | ( | ) | const [inline, inherited] |
iterator Dune::base_array_unmanaged< B, A >::beforeEnd | ( | ) | [inline, inherited] |
Reimplemented in Dune::VariableBlockVector< B, A >, and Dune::VariableBlockVector< T, A >.
Referenced by Dune::base_array_unmanaged< T, A >::rbegin().
const_iterator Dune::base_array_unmanaged< B, A >::beforeEnd | ( | ) | const [inline, inherited] |
Reimplemented in Dune::VariableBlockVector< B, A >, and Dune::VariableBlockVector< T, A >.
iterator Dune::base_array_unmanaged< B, A >::begin | ( | ) | [inline, inherited] |
begin iterator
Reimplemented in Dune::VariableBlockVector< B, A >, and Dune::VariableBlockVector< T, A >.
Referenced by test_basearray(), and test_IO().
const_iterator Dune::base_array_unmanaged< B, A >::begin | ( | ) | const [inline, inherited] |
begin const_iterator
Reimplemented in Dune::VariableBlockVector< B, A >, and Dune::VariableBlockVector< T, A >.
size_type Dune::block_vector_unmanaged< B, A >::dim | ( | ) | const [inline, inherited] |
dimension of the vector space
iterator Dune::base_array_unmanaged< B, A >::end | ( | ) | [inline, inherited] |
end iterator
Reimplemented in Dune::VariableBlockVector< B, A >, and Dune::VariableBlockVector< T, A >.
Referenced by test_basearray(), and test_IO().
const_iterator Dune::base_array_unmanaged< B, A >::end | ( | ) | const [inline, inherited] |
end const_iterator
Reimplemented in Dune::VariableBlockVector< B, A >, and Dune::VariableBlockVector< T, A >.
iterator Dune::base_array_unmanaged< B, A >::find | ( | size_type | i | ) | [inline, inherited] |
random access returning iterator (end if not contained)
Reimplemented in Dune::VariableBlockVector< B, A >, and Dune::VariableBlockVector< T, A >.
const_iterator Dune::base_array_unmanaged< B, A >::find | ( | size_type | i | ) | const [inline, inherited] |
random access returning iterator (end if not contained)
Reimplemented in Dune::VariableBlockVector< B, A >, and Dune::VariableBlockVector< T, A >.
B* Dune::BlockVectorWindow< B, A >::getptr | ( | ) | [inline] |
size_type Dune::BlockVectorWindow< B, A >::getsize | ( | ) | [inline] |
double Dune::block_vector_unmanaged< B, A >::infinity_norm | ( | ) | const [inline, inherited] |
infinity norm (maximum of absolute values of entries)
Referenced by Dune::block_vector_unmanaged< T, A >::infinity_norm().
double Dune::block_vector_unmanaged< B, A >::infinity_norm_real | ( | ) | const [inline, inherited] |
simplified infinity norm (uses Manhattan norm for complex values)
Referenced by Dune::block_vector_unmanaged< T, A >::infinity_norm_real().
size_type Dune::block_vector_unmanaged< B, A >::N | ( | ) | const [inline, inherited] |
number of blocks in the vector (are of size 1 here)
Reimplemented in Dune::VariableBlockVector< B, A >, and Dune::VariableBlockVector< T, A >.
Referenced by Dune::block_vector_unmanaged< T, A >::axpy(), Dune::block_vector_unmanaged< T, A >::operator*(), Dune::block_vector_unmanaged< T, A >::operator+=(), Dune::block_vector_unmanaged< T, A >::operator-=(), and Dune::BlockVectorWindow< B, A >::operator=().
double Dune::block_vector_unmanaged< B, A >::one_norm | ( | ) | const [inline, inherited] |
one norm (sum over absolute values of entries)
double Dune::block_vector_unmanaged< B, A >::one_norm_real | ( | ) | const [inline, inherited] |
simplified one norm (uses Manhattan norm for complex values)
field_type Dune::block_vector_unmanaged< B, A >::operator* | ( | const block_vector_unmanaged< B, A > & | y | ) | const [inline, inherited] |
scalar product
block_vector_unmanaged& Dune::block_vector_unmanaged< B, A >::operator*= | ( | const field_type & | k | ) | [inline, inherited] |
vector space multiplication with scalar
block_vector_unmanaged& Dune::block_vector_unmanaged< B, A >::operator+= | ( | const block_vector_unmanaged< B, A > & | y | ) | [inline, inherited] |
vector space addition
block_vector_unmanaged& Dune::block_vector_unmanaged< B, A >::operator-= | ( | const block_vector_unmanaged< B, A > & | y | ) | [inline, inherited] |
vector space subtraction
block_vector_unmanaged& Dune::block_vector_unmanaged< B, A >::operator/= | ( | const field_type & | k | ) | [inline, inherited] |
vector space division by scalar
BlockVectorWindow& Dune::BlockVectorWindow< B, A >::operator= | ( | const BlockVectorWindow< B, A > & | a | ) | [inline] |
assignment
References Dune::block_vector_unmanaged< B, A >::N(), Dune::base_array_unmanaged< B, A >::n, and Dune::base_array_unmanaged< B, A >::p.
Referenced by Dune::BlockVectorWindow< B, A >::operator=().
BlockVectorWindow& Dune::BlockVectorWindow< B, A >::operator= | ( | const block_vector_unmanaged< B, A > & | a | ) | [inline] |
assign from base class object
References Dune::BlockVectorWindow< B, A >::operator=().
BlockVectorWindow& Dune::BlockVectorWindow< B, A >::operator= | ( | const field_type & | k | ) | [inline] |
assign from scalar
Reimplemented from Dune::block_vector_unmanaged< B, A >.
B& Dune::base_array_unmanaged< B, A >::operator[] | ( | size_type | i | ) | [inline, inherited] |
random access to blocks
Reimplemented in Dune::VariableBlockVector< B, A >, and Dune::VariableBlockVector< T, A >.
const B& Dune::base_array_unmanaged< B, A >::operator[] | ( | size_type | i | ) | const [inline, inherited] |
same for read only access
Reimplemented in Dune::VariableBlockVector< B, A >, and Dune::VariableBlockVector< T, A >.
iterator Dune::base_array_unmanaged< B, A >::rbegin | ( | ) | [inline, inherited] |
Reimplemented in Dune::VariableBlockVector< B, A >, and Dune::VariableBlockVector< T, A >.
const_iterator Dune::base_array_unmanaged< B, A >::rbegin | ( | ) | const [inline, inherited] |
Reimplemented in Dune::VariableBlockVector< B, A >, and Dune::VariableBlockVector< T, A >.
iterator Dune::base_array_unmanaged< B, A >::rend | ( | ) | [inline, inherited] |
Reimplemented in Dune::VariableBlockVector< B, A >, and Dune::VariableBlockVector< T, A >.
const_iterator Dune::base_array_unmanaged< B, A >::rend | ( | ) | const [inline, inherited] |
Reimplemented in Dune::VariableBlockVector< B, A >, and Dune::VariableBlockVector< T, A >.
void Dune::BlockVectorWindow< B, A >::set | ( | size_type | _n, |
B * | _p | ||
) | [inline] |
set size and pointer
References Dune::base_array_unmanaged< B, A >::n, and Dune::base_array_unmanaged< B, A >::p.
Referenced by Dune::VariableBlockVector< T, A >::operator=(), and Dune::VariableBlockVector< T, A >::VariableBlockVector().
void Dune::BlockVectorWindow< B, A >::setptr | ( | B * | _p | ) | [inline] |
set pointer only
References Dune::base_array_unmanaged< B, A >::p.
Referenced by Dune::VariableBlockVector< B, A >::CreateIterator::operator++().
void Dune::BlockVectorWindow< B, A >::setsize | ( | size_type | _n | ) | [inline] |
set size only
References Dune::base_array_unmanaged< B, A >::n.
Referenced by Dune::VariableBlockVector< B, A >::CreateIterator::operator++().
size_type Dune::base_array_unmanaged< B, A >::size | ( | ) | const [inline, inherited] |
number of blocks in the array (are of size 1 here)
Referenced by Dune::Matrix< T, A >::coldim(), and Dune::BlockVector< FieldVector< T, n >, A >::resize().
double Dune::block_vector_unmanaged< B, A >::two_norm | ( | ) | const [inline, inherited] |
two norm sqrt(sum over squared values of entries)
Referenced by test_Iter().
double Dune::block_vector_unmanaged< B, A >::two_norm2 | ( | ) | const [inline, inherited] |
sqare of two norm (sum over squared values of entries), need for block recursion
size_type Dune::base_array_unmanaged< B, A >::n [protected, inherited] |
Referenced by Dune::base_array_window< B, A >::advance(), Dune::block_vector_unmanaged< T, A >::axpy(), Dune::base_array< B, A >::base_array(), Dune::base_array_unmanaged< T, A >::beforeEnd(), Dune::BlockVector< FieldVector< T, n >, A >::BlockVector(), Dune::BlockVectorWindow< B, A >::BlockVectorWindow(), Dune::block_vector_unmanaged< T, A >::dim(), Dune::base_array_unmanaged< T, A >::end(), Dune::base_array_unmanaged< T, A >::find(), Dune::BlockVectorWindow< B, A >::getsize(), Dune::block_vector_unmanaged< T, A >::infinity_norm(), Dune::block_vector_unmanaged< T, A >::infinity_norm_real(), Dune::base_array_window< B, A >::move(), Dune::block_vector_unmanaged< T, A >::N(), Dune::block_vector_unmanaged< T, A >::one_norm(), Dune::block_vector_unmanaged< T, A >::one_norm_real(), Dune::block_vector_unmanaged< T, A >::operator*(), Dune::block_vector_unmanaged< T, A >::operator*=(), Dune::VariableBlockVector< B, A >::CreateIterator::operator++(), Dune::block_vector_unmanaged< T, A >::operator+=(), Dune::block_vector_unmanaged< T, A >::operator-=(), Dune::block_vector_unmanaged< T, A >::operator/=(), Dune::block_vector_unmanaged< T, A >::operator=(), Dune::VariableBlockVector< T, A >::operator=(), Dune::BlockVector< FieldVector< T, n >, A >::operator=(), Dune::base_array< B, A >::operator=(), Dune::BlockVectorWindow< B, A >::operator=(), Dune::base_array_unmanaged< T, A >::operator[](), Dune::VariableBlockVector< T, A >::resize(), Dune::BlockVector< FieldVector< T, n >, A >::resize(), Dune::base_array< B, A >::resize(), Dune::base_array_window< B, A >::set(), Dune::BlockVectorWindow< B, A >::set(), Dune::BlockVectorWindow< B, A >::setsize(), Dune::base_array_unmanaged< T, A >::size(), Dune::block_vector_unmanaged< T, A >::two_norm(), Dune::block_vector_unmanaged< T, A >::two_norm2(), Dune::VariableBlockVector< T, A >::VariableBlockVector(), Dune::base_array< B, A >::~base_array(), and Dune::VariableBlockVector< T, A >::~VariableBlockVector().
B* Dune::base_array_unmanaged< B, A >::p [protected, inherited] |
Referenced by Dune::base_array_window< B, A >::advance(), Dune::base_array< B, A >::base_array(), Dune::base_array_unmanaged< T, A >::beforeBegin(), Dune::base_array_unmanaged< T, A >::beforeEnd(), Dune::base_array_unmanaged< T, A >::begin(), Dune::BlockVector< FieldVector< T, n >, A >::BlockVector(), Dune::BlockVectorWindow< B, A >::BlockVectorWindow(), Dune::base_array_unmanaged< T, A >::end(), Dune::base_array_unmanaged< T, A >::find(), Dune::base_array_window< B, A >::getptr(), Dune::BlockVectorWindow< B, A >::getptr(), Dune::base_array_window< B, A >::move(), Dune::VariableBlockVector< B, A >::CreateIterator::operator++(), Dune::VariableBlockVector< T, A >::operator=(), Dune::BlockVector< FieldVector< T, n >, A >::operator=(), Dune::base_array< B, A >::operator=(), Dune::BlockVectorWindow< B, A >::operator=(), Dune::base_array_unmanaged< T, A >::operator[](), Dune::BlockVector< FieldVector< T, n >, A >::reserve(), Dune::VariableBlockVector< T, A >::resize(), Dune::base_array< B, A >::resize(), Dune::base_array_window< B, A >::set(), Dune::BlockVectorWindow< B, A >::set(), Dune::BlockVectorWindow< B, A >::setptr(), Dune::VariableBlockVector< T, A >::VariableBlockVector(), Dune::base_array< B, A >::~base_array(), Dune::BlockVector< FieldVector< T, n >, A >::~BlockVector(), and Dune::VariableBlockVector< T, A >::~VariableBlockVector().