Dune::DenseVector< V > Class Template Reference
[Dense Matrix and Vector Template Library]

Interface for a class of dense vectors over a given field. More...

#include <dune/common/densevector.hh>

Inherited by Dune::FieldVector< K, n >.

List of all members.

Public Types

enum  { blocklevel = 1 }
 

We are at the leaf of the block recursion.

More...
typedef Traits::derived_type derived_type
 type of derived vector class
typedef Traits::value_type value_type
 export the type representing the field
typedef FieldTraits
< value_type >::field_type 
field_type
 export the type representing the field
typedef Traits::value_type block_type
 export the type representing the components
typedef Traits::size_type size_type
 The type used for the index access and size operation.
typedef DenseIterator
< DenseVector, value_type
Iterator
 Iterator class for sequential access.
typedef Iterator iterator
 typedef for stl compliant access
typedef DenseIterator< const
DenseVector, const value_type
ConstIterator
 ConstIterator class for sequential access.
typedef ConstIterator const_iterator
 typedef for stl compliant access

Public Member Functions

derived_typeoperator= (const value_type &k)
 Assignment operator for scalar.
value_typeoperator[] (size_type i)
 random access
const value_typeoperator[] (size_type i) const
size_type size () const
 size method
Iterator begin ()
 begin iterator
Iterator end ()
 end iterator
Iterator beforeEnd ()
Iterator beforeBegin ()
Iterator find (size_type i)
 return iterator to given element or end()
ConstIterator begin () const
 begin ConstIterator
ConstIterator end () const
 end ConstIterator
ConstIterator beforeEnd () const
ConstIterator beforeBegin () const
ConstIterator find (size_type i) const
 return iterator to given element or end()
template<class Other >
derived_typeoperator+= (const DenseVector< Other > &y)
 vector space addition
template<class Other >
derived_typeoperator-= (const DenseVector< Other > &y)
 vector space subtraction
template<class Other >
derived_type operator+ (const DenseVector< Other > &b) const
 Binary vector addition.
template<class Other >
derived_type operator- (const DenseVector< Other > &b) const
 Binary vector subtraction.
template<typename ValueType >
std::enable_if
< std::is_convertible
< ValueType, value_type >
::value, derived_type >::type & 
operator+= (const ValueType &kk)
 vector space add scalar to all comps
template<typename ValueType >
std::enable_if
< std::is_convertible
< ValueType, value_type >
::value, derived_type >::type & 
operator-= (const ValueType &kk)
 vector space subtract scalar from all comps
template<typename FieldType >
std::enable_if
< std::is_convertible
< FieldType, field_type >
::value, derived_type >::type & 
operator*= (const FieldType &kk)
 vector space multiplication with scalar
template<typename FieldType >
std::enable_if
< std::is_convertible
< FieldType, field_type >
::value, derived_type >::type & 
operator/= (const FieldType &kk)
 vector space division by scalar
template<class Other >
bool operator== (const DenseVector< Other > &y) const
 Binary vector comparison.
template<class Other >
bool operator!= (const DenseVector< Other > &y) const
 Binary vector incomparison.
template<class Other >
derived_typeaxpy (const field_type &a, const DenseVector< Other > &y)
 vector space axpy operation ( *this += a y )
template<class Other >
PromotionTraits< field_type,
typename DenseVector< Other >
::field_type >::PromotedType 
operator* (const DenseVector< Other > &y) const
 indefinite vector dot product $\left (x^T \cdot y \right)$ which corresponds to Petsc's VecTDot
template<class Other >
PromotionTraits< field_type,
typename DenseVector< Other >
::field_type >::PromotedType 
dot (const DenseVector< Other > &y) const
 vector dot product $\left (x^H \cdot y \right)$ which corresponds to Petsc's VecDot
FieldTraits< value_type >
::real_type 
one_norm () const
 one norm (sum over absolute values of entries)
FieldTraits< value_type >
::real_type 
one_norm_real () const
 simplified one norm (uses Manhattan norm for complex values)
FieldTraits< value_type >
::real_type 
two_norm () const
 two norm sqrt(sum over squared values of entries)
FieldTraits< value_type >
::real_type 
two_norm2 () const
 square of two norm (sum over squared values of entries), need for block recursion
template<typename vt = value_type, typename std::enable_if<!has_nan< vt >::value, int >::type = 0>
FieldTraits< vt >::real_type infinity_norm () const
 infinity norm (maximum of absolute values of entries)
template<typename vt = value_type, typename std::enable_if<!has_nan< vt >::value, int >::type = 0>
FieldTraits< vt >::real_type infinity_norm_real () const
 simplified infinity norm (uses Manhattan norm for complex values)
template<typename vt = value_type, typename std::enable_if< has_nan< vt >::value, int >::type = 0>
FieldTraits< vt >::real_type infinity_norm () const
 infinity norm (maximum of absolute values of entries)
template<typename vt = value_type, typename std::enable_if< has_nan< vt >::value, int >::type = 0>
FieldTraits< vt >::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

Protected Member Functions

constexpr DenseVector ()

Detailed Description

template<typename V>
class Dune::DenseVector< V >

Interface for a class of dense vectors over a given field.

Template Parameters:
V implementation class of the vector
T value type
S size type

V has to provide the following members:

 T &       _access (size_type);
 const T & _access (size_type) const;
 size_type _size   () const;

Member Typedef Documentation

template<typename V>
typedef Traits::value_type Dune::DenseVector< V >::block_type

export the type representing the components

template<typename V>
typedef ConstIterator Dune::DenseVector< V >::const_iterator

typedef for stl compliant access

template<typename V>
typedef DenseIterator<const DenseVector,const value_type> Dune::DenseVector< V >::ConstIterator

ConstIterator class for sequential access.

template<typename V>
typedef Traits::derived_type Dune::DenseVector< V >::derived_type

type of derived vector class

template<typename V>
typedef FieldTraits< value_type >::field_type Dune::DenseVector< V >::field_type

export the type representing the field

template<typename V>
typedef Iterator Dune::DenseVector< V >::iterator

typedef for stl compliant access

template<typename V>
typedef DenseIterator<DenseVector,value_type> Dune::DenseVector< V >::Iterator

Iterator class for sequential access.

template<typename V>
typedef Traits::size_type Dune::DenseVector< V >::size_type

The type used for the index access and size operation.

Reimplemented in Dune::DynamicVector< K, Allocator >, Dune::FieldVector< K, SIZE >, Dune::DynamicVector< K >, and Dune::FieldVector< K, n >.

template<typename V>
typedef Traits::value_type Dune::DenseVector< V >::value_type

Member Enumeration Documentation

template<typename V>
anonymous enum

We are at the leaf of the block recursion.

Enumerator:
blocklevel 

The number of block levels we contain.


Constructor & Destructor Documentation

template<typename V>
constexpr Dune::DenseVector< V >::DenseVector (  )  [inline, protected]

Member Function Documentation

template<typename V>
template<class Other >
derived_type& Dune::DenseVector< V >::axpy ( const field_type a,
const DenseVector< Other > &  y 
) [inline]

vector space axpy operation ( *this += a y )

template<typename V>
ConstIterator Dune::DenseVector< V >::beforeBegin (  )  const [inline]
Returns:
an iterator that is positioned before the first entry of the vector.
template<typename V>
Iterator Dune::DenseVector< V >::beforeBegin (  )  [inline]
Returns:
an iterator that is positioned before the first entry of the vector.
template<typename V>
ConstIterator Dune::DenseVector< V >::beforeEnd (  )  const [inline]
Returns:
an iterator that is positioned before the end iterator of the vector. i.e. at the last element
template<typename V>
Iterator Dune::DenseVector< V >::beforeEnd (  )  [inline]
Returns:
an iterator that is positioned before the end iterator of the vector, i.e. at the last entry.
template<typename V>
ConstIterator Dune::DenseVector< V >::begin (  )  const [inline]

begin ConstIterator

template<typename V>
Iterator Dune::DenseVector< V >::begin (  )  [inline]

begin iterator

template<typename V>
size_type Dune::DenseVector< V >::dim (  )  const [inline]

dimension of the vector space

template<typename V>
template<class Other >
PromotionTraits<field_type,typename DenseVector<Other>::field_type>::PromotedType Dune::DenseVector< V >::dot ( const DenseVector< Other > &  y  )  const [inline]

vector dot product $\left (x^H \cdot y \right)$ which corresponds to Petsc's VecDot

http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/Vec/VecDot.html

Parameters:
y other vector
Returns:
template<typename V>
ConstIterator Dune::DenseVector< V >::end (  )  const [inline]

end ConstIterator

template<typename V>
Iterator Dune::DenseVector< V >::end (  )  [inline]

end iterator

template<typename V>
ConstIterator Dune::DenseVector< V >::find ( size_type  i  )  const [inline]

return iterator to given element or end()

template<typename V>
Iterator Dune::DenseVector< V >::find ( size_type  i  )  [inline]

return iterator to given element or end()

template<typename V>
template<typename vt = value_type, typename std::enable_if< has_nan< vt >::value, int >::type = 0>
FieldTraits<vt>::real_type Dune::DenseVector< V >::infinity_norm (  )  const [inline]

infinity norm (maximum of absolute values of entries)

template<typename V>
template<typename vt = value_type, typename std::enable_if<!has_nan< vt >::value, int >::type = 0>
FieldTraits<vt>::real_type Dune::DenseVector< V >::infinity_norm (  )  const [inline]

infinity norm (maximum of absolute values of entries)

template<typename V>
template<typename vt = value_type, typename std::enable_if< has_nan< vt >::value, int >::type = 0>
FieldTraits<vt>::real_type Dune::DenseVector< V >::infinity_norm_real (  )  const [inline]

simplified infinity norm (uses Manhattan norm for complex values)

template<typename V>
template<typename vt = value_type, typename std::enable_if<!has_nan< vt >::value, int >::type = 0>
FieldTraits<vt>::real_type Dune::DenseVector< V >::infinity_norm_real (  )  const [inline]

simplified infinity norm (uses Manhattan norm for complex values)

template<typename V>
size_type Dune::DenseVector< V >::N (  )  const [inline]

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

template<typename V>
FieldTraits<value_type>::real_type Dune::DenseVector< V >::one_norm (  )  const [inline]

one norm (sum over absolute values of entries)

template<typename V>
FieldTraits<value_type>::real_type Dune::DenseVector< V >::one_norm_real (  )  const [inline]

simplified one norm (uses Manhattan norm for complex values)

template<typename V>
template<class Other >
bool Dune::DenseVector< V >::operator!= ( const DenseVector< Other > &  y  )  const [inline]

Binary vector incomparison.

template<typename V>
template<class Other >
PromotionTraits<field_type,typename DenseVector<Other>::field_type>::PromotedType Dune::DenseVector< V >::operator* ( const DenseVector< Other > &  y  )  const [inline]

indefinite vector dot product $\left (x^T \cdot y \right)$ which corresponds to Petsc's VecTDot

http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/Vec/VecTDot.html

Parameters:
y other vector
Returns:
template<typename V>
template<typename FieldType >
std::enable_if< std::is_convertible<FieldType, field_type>::value, derived_type >::type& Dune::DenseVector< V >::operator*= ( const FieldType &  kk  )  [inline]

vector space multiplication with scalar

we use enable_if to avoid an ambiguity, if the function parameter can be converted to field_type implicitly. (see FS#1457)

The function is only enabled, if the parameter is directly convertible to field_type.

template<typename V>
template<class Other >
derived_type Dune::DenseVector< V >::operator+ ( const DenseVector< Other > &  b  )  const [inline]

Binary vector addition.

template<typename V>
template<typename ValueType >
std::enable_if< std::is_convertible<ValueType, value_type>::value, derived_type >::type& Dune::DenseVector< V >::operator+= ( const ValueType &  kk  )  [inline]

vector space add scalar to all comps

we use enable_if to avoid an ambiguity, if the function parameter can be converted to value_type implicitly. (see FS#1457)

The function is only enabled, if the parameter is directly convertible to value_type.

template<typename V>
template<class Other >
derived_type& Dune::DenseVector< V >::operator+= ( const DenseVector< Other > &  y  )  [inline]

vector space addition

template<typename V>
template<class Other >
derived_type Dune::DenseVector< V >::operator- ( const DenseVector< Other > &  b  )  const [inline]

Binary vector subtraction.

template<typename V>
template<typename ValueType >
std::enable_if< std::is_convertible<ValueType, value_type>::value, derived_type >::type& Dune::DenseVector< V >::operator-= ( const ValueType &  kk  )  [inline]

vector space subtract scalar from all comps

we use enable_if to avoid an ambiguity, if the function parameter can be converted to value_type implicitly. (see FS#1457)

The function is only enabled, if the parameter is directly convertible to value_type.

template<typename V>
template<class Other >
derived_type& Dune::DenseVector< V >::operator-= ( const DenseVector< Other > &  y  )  [inline]

vector space subtraction

template<typename V>
template<typename FieldType >
std::enable_if< std::is_convertible<FieldType, field_type>::value, derived_type >::type& Dune::DenseVector< V >::operator/= ( const FieldType &  kk  )  [inline]

vector space division by scalar

we use enable_if to avoid an ambiguity, if the function parameter can be converted to field_type implicitly. (see FS#1457)

The function is only enabled, if the parameter is directly convertible to field_type.

template<typename V>
derived_type& Dune::DenseVector< V >::operator= ( const value_type k  )  [inline]

Assignment operator for scalar.

template<typename V>
template<class Other >
bool Dune::DenseVector< V >::operator== ( const DenseVector< Other > &  y  )  const [inline]

Binary vector comparison.

template<typename V>
const value_type& Dune::DenseVector< V >::operator[] ( size_type  i  )  const [inline]
template<typename V>
value_type& Dune::DenseVector< V >::operator[] ( size_type  i  )  [inline]

random access

Reimplemented in Dune::DynamicVector< K >, and Dune::FieldVector< K, n >.

template<typename V>
size_type Dune::DenseVector< V >::size (  )  const [inline]
template<typename V>
FieldTraits<value_type>::real_type Dune::DenseVector< V >::two_norm (  )  const [inline]

two norm sqrt(sum over squared values of entries)

template<typename V>
FieldTraits<value_type>::real_type Dune::DenseVector< V >::two_norm2 (  )  const [inline]

square of two norm (sum over squared values of entries), need for block recursion


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on 25 Mar 2018 for dune-common by  doxygen 1.6.1