dune-istl 3.0-git
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
Dune::compressed_block_vector_unmanaged< B, A > Class Template Reference

#include <dune/istl/bvector.hh>

Inheritance diagram for Dune::compressed_block_vector_unmanaged< B, A >:
Inheritance graph

Public Types

typedef B::field_type field_type
 export the type representing the field
 
typedefblock_type
 export the type representing the components
 
typedefallocator_type
 export the allocator type
 
typedef compressed_base_array_unmanaged< B, A >::iterator Iterator
 make iterators available as types
 
typedef compressed_base_array_unmanaged< B, A >::const_iterator ConstIterator
 make iterators available as types
 
typedef A::size_type size_type
 The type for the index access.
 
typedefmember_type
 export the type representing the components
 
typedef RealIterator< B > iterator
 The iterator type.
 
typedef RealIterator< const B > const_iterator
 const_iterator class for sequential access
 

Public Member Functions

compressed_block_vector_unmanagedoperator= (const field_type &k)
 
template<class V >
compressed_block_vector_unmanagedoperator+= (const V &y)
 vector space addition
 
template<class V >
compressed_block_vector_unmanagedoperator-= (const V &y)
 vector space subtraction
 
template<class V >
compressed_block_vector_unmanagedaxpy (const field_type &a, const V &y)
 vector space axpy operation
 
compressed_block_vector_unmanagedoperator*= (const field_type &k)
 vector space multiplication with scalar
 
compressed_block_vector_unmanagedoperator/= (const field_type &k)
 vector space division by scalar
 
field_type operator* (const compressed_block_vector_unmanaged &y) const
 scalar product
 
FieldTraits< field_type >::real_type one_norm () const
 one norm (sum over absolute values of entries)
 
FieldTraits< field_type >::real_type one_norm_real () const
 simplified one norm (uses Manhattan norm for complex values)
 
FieldTraits< field_type >::real_type two_norm () const
 two norm sqrt(sum over squared values of entries)
 
FieldTraits< field_type >::real_type two_norm2 () const
 Square of the two-norm (the sum over the squared values of the entries)
 
template<typename ft = field_type, typename std::enable_if<!has_nan< ft >::value, int >::type = 0>
FieldTraits< ft >::real_type infinity_norm () const
 infinity norm (maximum of absolute values of entries)
 
template<typename ft = field_type, typename std::enable_if<!has_nan< ft >::value, int >::type = 0>
FieldTraits< ft >::real_type infinity_norm_real () const
 simplified infinity norm (uses Manhattan norm for complex values)
 
template<typename ft = field_type, typename std::enable_if< has_nan< ft >::value, int >::type = 0>
FieldTraits< ft >::real_type infinity_norm () const
 infinity norm (maximum of absolute values of entries)
 
template<typename ft = field_type, typename std::enable_if< has_nan< ft >::value, int >::type = 0>
FieldTraits< ft >::real_type 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, assumes ascending ordering
 
const B & operator[] (size_type i) const
 same for read only access, assumes ascending ordering
 
iterator begin ()
 begin iterator
 
const_iterator begin () const
 begin const_iterator
 
iterator end ()
 end iterator
 
const_iterator end () const
 end const_iterator
 
iterator beforeEnd ()
 
const_iterator beforeEnd () 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 Member Functions

 compressed_block_vector_unmanaged ()
 make constructor protected, so only derived classes can be instantiated
 
template<class V >
bool includesindexset (const V &y)
 return true if index sets coincide
 

Protected Attributes

size_type n
 
B * p
 
size_typej
 

Detailed Description

template<class B, class A = std::allocator<B>>
class Dune::compressed_block_vector_unmanaged< B, A >

compressed_block_vector_unmanaged extends the compressed base_array_unmanaged by vector operations such as addition and scalar multiplication. No memory management is added.

Error checking: no error checking is provided normally. Setting the compile time switch DUNE_ISTL_WITH_CHECKING enables error checking.

Member Typedef Documentation

◆ allocator_type

template<class B , class A = std::allocator<B>>
typedef A Dune::compressed_block_vector_unmanaged< B, A >::allocator_type

export the allocator type

◆ block_type

template<class B , class A = std::allocator<B>>
typedef B Dune::compressed_block_vector_unmanaged< B, A >::block_type

export the type representing the components

◆ const_iterator

template<class B , class A = std::allocator<B>>
typedef RealIterator<const B> Dune::compressed_base_array_unmanaged< B, A >::const_iterator
inherited

const_iterator class for sequential access

◆ ConstIterator

template<class B , class A = std::allocator<B>>
typedef compressed_base_array_unmanaged<B,A>::const_iterator Dune::compressed_block_vector_unmanaged< B, A >::ConstIterator

make iterators available as types

◆ field_type

template<class B , class A = std::allocator<B>>
typedef B::field_type Dune::compressed_block_vector_unmanaged< B, A >::field_type

export the type representing the field

◆ iterator

template<class B , class A = std::allocator<B>>
typedef RealIterator<B> Dune::compressed_base_array_unmanaged< B, A >::iterator
inherited

The iterator type.

◆ Iterator

template<class B , class A = std::allocator<B>>
typedef compressed_base_array_unmanaged<B,A>::iterator Dune::compressed_block_vector_unmanaged< B, A >::Iterator

make iterators available as types

◆ member_type

template<class B , class A = std::allocator<B>>
typedef B Dune::compressed_base_array_unmanaged< B, A >::member_type
inherited

export the type representing the components

◆ size_type

template<class B , class A = std::allocator<B>>
typedef A::size_type Dune::compressed_block_vector_unmanaged< B, A >::size_type

The type for the index access.

Constructor & Destructor Documentation

◆ compressed_block_vector_unmanaged()

template<class B , class A = std::allocator<B>>
Dune::compressed_block_vector_unmanaged< B, A >::compressed_block_vector_unmanaged ( )
inlineprotected

make constructor protected, so only derived classes can be instantiated

Member Function Documentation

◆ axpy()

template<class B , class A = std::allocator<B>>
template<class V >
compressed_block_vector_unmanaged & Dune::compressed_block_vector_unmanaged< B, A >::axpy ( const field_type a,
const V &  y 
)
inline

vector space axpy operation

◆ beforeBegin() [1/2]

template<class B , class A = std::allocator<B>>
iterator Dune::compressed_base_array_unmanaged< B, A >::beforeBegin ( )
inlineinherited
Returns
an iterator that is positioned before the first entry of the vector.

◆ beforeBegin() [2/2]

template<class B , class A = std::allocator<B>>
const_iterator Dune::compressed_base_array_unmanaged< B, A >::beforeBegin ( ) const
inlineinherited
Returns
an iterator that is positioned before the first entry of the vector.

◆ beforeEnd() [1/2]

template<class B , class A = std::allocator<B>>
iterator Dune::compressed_base_array_unmanaged< B, A >::beforeEnd ( )
inlineinherited
Returns
an iterator that is positioned before the end iterator of the vector, i.e. at the last entry.

◆ beforeEnd() [2/2]

template<class B , class A = std::allocator<B>>
const_iterator Dune::compressed_base_array_unmanaged< B, A >::beforeEnd ( ) const
inlineinherited
Returns
an iterator that is positioned before the end iterator of the vector. i.e. at the last element.

◆ begin() [1/2]

template<class B , class A = std::allocator<B>>
iterator Dune::compressed_base_array_unmanaged< B, A >::begin ( )
inlineinherited

begin iterator

◆ begin() [2/2]

template<class B , class A = std::allocator<B>>
const_iterator Dune::compressed_base_array_unmanaged< B, A >::begin ( ) const
inlineinherited

begin const_iterator

◆ dim()

template<class B , class A = std::allocator<B>>
size_type Dune::compressed_block_vector_unmanaged< B, A >::dim ( ) const
inline

dimension of the vector space

◆ end() [1/2]

template<class B , class A = std::allocator<B>>
iterator Dune::compressed_base_array_unmanaged< B, A >::end ( )
inlineinherited

end iterator

◆ end() [2/2]

template<class B , class A = std::allocator<B>>
const_iterator Dune::compressed_base_array_unmanaged< B, A >::end ( ) const
inlineinherited

end const_iterator

◆ find() [1/2]

template<class B , class A = std::allocator<B>>
iterator Dune::compressed_base_array_unmanaged< B, A >::find ( size_type  i)
inlineinherited

random access returning iterator (end if not contained)

◆ find() [2/2]

template<class B , class A = std::allocator<B>>
const_iterator Dune::compressed_base_array_unmanaged< B, A >::find ( size_type  i) const
inlineinherited

random access returning iterator (end if not contained)

◆ includesindexset()

template<class B , class A = std::allocator<B>>
template<class V >
bool Dune::compressed_block_vector_unmanaged< B, A >::includesindexset ( const V &  y)
inlineprotected

return true if index sets coincide

◆ infinity_norm() [1/2]

template<class B , class A = std::allocator<B>>
template<typename ft = field_type, typename std::enable_if<!has_nan< ft >::value, int >::type = 0>
FieldTraits< ft >::real_type Dune::compressed_block_vector_unmanaged< B, A >::infinity_norm ( ) const
inline

infinity norm (maximum of absolute values of entries)

◆ infinity_norm() [2/2]

template<class B , class A = std::allocator<B>>
template<typename ft = field_type, typename std::enable_if< has_nan< ft >::value, int >::type = 0>
FieldTraits< ft >::real_type Dune::compressed_block_vector_unmanaged< B, A >::infinity_norm ( ) const
inline

infinity norm (maximum of absolute values of entries)

◆ infinity_norm_real() [1/2]

template<class B , class A = std::allocator<B>>
template<typename ft = field_type, typename std::enable_if<!has_nan< ft >::value, int >::type = 0>
FieldTraits< ft >::real_type Dune::compressed_block_vector_unmanaged< B, A >::infinity_norm_real ( ) const
inline

simplified infinity norm (uses Manhattan norm for complex values)

◆ infinity_norm_real() [2/2]

template<class B , class A = std::allocator<B>>
template<typename ft = field_type, typename std::enable_if< has_nan< ft >::value, int >::type = 0>
FieldTraits< ft >::real_type Dune::compressed_block_vector_unmanaged< B, A >::infinity_norm_real ( ) const
inline

simplified infinity norm (uses Manhattan norm for complex values)

◆ N()

template<class B , class A = std::allocator<B>>
size_type Dune::compressed_block_vector_unmanaged< B, A >::N ( ) const
inline

number of blocks in the vector (are of size 1 here)

◆ one_norm()

template<class B , class A = std::allocator<B>>
FieldTraits< field_type >::real_type Dune::compressed_block_vector_unmanaged< B, A >::one_norm ( ) const
inline

one norm (sum over absolute values of entries)

◆ one_norm_real()

template<class B , class A = std::allocator<B>>
FieldTraits< field_type >::real_type Dune::compressed_block_vector_unmanaged< B, A >::one_norm_real ( ) const
inline

simplified one norm (uses Manhattan norm for complex values)

◆ operator*()

template<class B , class A = std::allocator<B>>
field_type Dune::compressed_block_vector_unmanaged< B, A >::operator* ( const compressed_block_vector_unmanaged< B, A > &  y) const
inline

scalar product

◆ operator*=()

template<class B , class A = std::allocator<B>>
compressed_block_vector_unmanaged & Dune::compressed_block_vector_unmanaged< B, A >::operator*= ( const field_type k)
inline

vector space multiplication with scalar

◆ operator+=()

template<class B , class A = std::allocator<B>>
template<class V >
compressed_block_vector_unmanaged & Dune::compressed_block_vector_unmanaged< B, A >::operator+= ( const V &  y)
inline

vector space addition

◆ operator-=()

template<class B , class A = std::allocator<B>>
template<class V >
compressed_block_vector_unmanaged & Dune::compressed_block_vector_unmanaged< B, A >::operator-= ( const V &  y)
inline

vector space subtraction

◆ operator/=()

template<class B , class A = std::allocator<B>>
compressed_block_vector_unmanaged & Dune::compressed_block_vector_unmanaged< B, A >::operator/= ( const field_type k)
inline

vector space division by scalar

◆ operator=()

template<class B , class A = std::allocator<B>>
compressed_block_vector_unmanaged & Dune::compressed_block_vector_unmanaged< B, A >::operator= ( const field_type k)
inline

◆ operator[]() [1/2]

template<class B , class A = std::allocator<B>>
B & Dune::compressed_base_array_unmanaged< B, A >::operator[] ( size_type  i)
inlineinherited

random access to blocks, assumes ascending ordering

◆ operator[]() [2/2]

template<class B , class A = std::allocator<B>>
const B & Dune::compressed_base_array_unmanaged< B, A >::operator[] ( size_type  i) const
inlineinherited

same for read only access, assumes ascending ordering

◆ size()

template<class B , class A = std::allocator<B>>
size_type Dune::compressed_base_array_unmanaged< B, A >::size ( ) const
inlineinherited

number of blocks in the array (are of size 1 here)

◆ two_norm()

template<class B , class A = std::allocator<B>>
FieldTraits< field_type >::real_type Dune::compressed_block_vector_unmanaged< B, A >::two_norm ( ) const
inline

two norm sqrt(sum over squared values of entries)

◆ two_norm2()

template<class B , class A = std::allocator<B>>
FieldTraits< field_type >::real_type Dune::compressed_block_vector_unmanaged< B, A >::two_norm2 ( ) const
inline

Square of the two-norm (the sum over the squared values of the entries)

Member Data Documentation

◆ j

template<class B , class A = std::allocator<B>>
size_type* Dune::compressed_base_array_unmanaged< B, A >::j
protectedinherited

◆ n

template<class B , class A = std::allocator<B>>
size_type Dune::compressed_base_array_unmanaged< B, A >::n
protectedinherited

◆ p

template<class B , class A = std::allocator<B>>
B* Dune::compressed_base_array_unmanaged< B, A >::p
protectedinherited

The documentation for this class was generated from the following file: