dune-istl 2.10
Loading...
Searching...
No Matches
Dune::MultiTypeBlockVector< Args > Class Template Reference

A Vector class to support different block types. More...

#include <dune/istl/multitypeblockvector.hh>

Inheritance diagram for Dune::MultiTypeBlockVector< Args >:
Inheritance graph

Public Types

using size_type = std::size_t
 Type used for vector sizes.
 
typedef MultiTypeBlockVector< Args... > type
 
using field_type = Std::detected_t<std::common_type_t, typename FieldTraits< std::decay_t<Args> >::field_type...>
 The type used for scalars.
 
using real_type = Std::detected_t<std::common_type_t, typename FieldTraits< std::decay_t<Args> >::real_type...>
 The type used for real values.
 

Public Member Functions

size_type dim () const
 Number of scalar elements.
 
template<size_type index>
std::tuple_element< index, TupleType >::typeoperator[] (const std::integral_constant< size_type, index > indexVariable)
 Random-access operator.
 
template<size_type index>
const std::tuple_element< index, TupleType >::typeoperator[] (const std::integral_constant< size_type, index > indexVariable) const
 Const random-access operator.
 
template<typename T >
void operator= (const T &newval)
 Assignment operator.
 
void operator+= (const type &newv)
 
void operator-= (const type &newv)
 
template<class T , std::enable_if_t< IsNumber< T >::value, int > = 0>
void operator*= (const T &w)
 Multiplication with a scalar.
 
template<class T , std::enable_if_t< IsNumber< T >::value, int > = 0>
void operator/= (const T &w)
 Division by a scalar.
 
field_type operator* (const type &newv) const
 
field_type dot (const type &newv) const
 
auto one_norm () const
 Compute the 1-norm.
 
auto one_norm_real () const
 Compute the simplified 1-norm (uses 1-norm also for complex values)
 
real_type two_norm2 () const
 Compute the squared Euclidean norm.
 
real_type two_norm () const
 Compute the Euclidean norm.
 
real_type infinity_norm () const
 Compute the maximum norm.
 
real_type infinity_norm_real () const
 Compute the simplified maximum norm (uses 1-norm for complex values)
 
template<typename Ta >
void axpy (const Ta &a, const type &y)
 Axpy operation on this vector (*this += a * y)
 

Static Public Member Functions

static constexpr size_type size ()
 Return the number of non-zero vector entries.
 
static constexpr size_type N ()
 Number of elements.
 

Detailed Description

template<typename... Args>
class Dune::MultiTypeBlockVector< Args >

A Vector class to support different block types.

This vector class combines elements of different types known at compile-time.


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