The Vish Visualization Shell 0.3
Vish
Eagle::DomainVector< VectorType, Domain, scalar_t > Class Template Reference

A vector type that is bound to a certain domain, inheriting all vector space properties, but provides type-safety to only operate within the same domain. More...

#include <elementary/eagle/DomainVector.hpp>

Inheritance diagram for Eagle::DomainVector< VectorType, Domain, scalar_t >:
Eagle::DomainFunctions< Domain, VectorType >

Public Types

enum  
 Number of elements.
typedef VectorType Base_t
 The base type of this class is the vector type.
typedef Domain Domain_t
 Export the domain type.
typedef DomainVector DomainVector_t
 Export the DomainVector type.
using value_type = typename VectorType_t::value_type
 Export the value type.
typedef VectorType VectorType_t
 Export the vector type.

Public Member Functions

constexpr DomainVector ()
 Evil default constructor.
template<OperatorID_t CompType>
 DomainVector (const DomainVector &l, const DomainVector &r, const Operator< CompType > &C)
 Computational constructor for binary vector operations.
template<OperatorID_t CompType>
 DomainVector (const DomainVector &l, const Operator< CompType > &C, const scalar_t &scalar)
 Computational constructor for vector scalar operations.
 DomainVector (const DomainVector &l, const Operator<'-'> &C)
 Unary minus computational constructor.
constexpr DomainVector (const DomainVector &v)
 Copy constructor.
template<OperatorID_t CompType>
 DomainVector (const Operator< CompType > &C, const scalar_t &scalar, const DomainVector &l)
 Computational constructor for scalar vector operations.
constexpr DomainVector (const std::initializer_list< value_type > &Init)
 Construct from a initialization array.
 DomainVector (const VectorType &V)
 Constructor from base class.
DomainVector operator+ (const DomainVector &r) const
 Add two vectors.
DomainVector operator- () const
 Unary minus.
DomainVectoroperator= (const DomainVector &src)
 Copy constructor.

Friends

DomainVector max (const DomainVector &l, const DomainVector &r)
 Component-wise maximum.
DomainVector min (const DomainVector &l, const DomainVector &r)
 Component-wise minimum.
DomainVector operator* (const DomainVector &v, scalar_t scalar)
 Scalar multiplication.
DomainVector operator* (scalar_t scalar, const DomainVector &v)
 Multiply scalar with a vector, yielding a vector.
DomainVector operator- (const DomainVector &l, const DomainVector &r)
 Subtraction operator.
DomainVector operator/ (const DomainVector &v, scalar_t scalar)
 Divide a vector by a scalar.
DomainVector operator< (const DomainVector &l, const DomainVector &r)
 Component-wise minimum.
DomainVector operator> (const DomainVector &l, const DomainVector &r)
 Component-wise maximum.

Detailed Description

template<class VectorType, class Domain, class scalar_t = typename VectorType::value_type>
class Eagle::DomainVector< VectorType, Domain, scalar_t >

A vector type that is bound to a certain domain, inheriting all vector space properties, but provides type-safety to only operate within the same domain.

Member Typedef Documentation

◆ Base_t

template<class VectorType, class Domain, class scalar_t = typename VectorType::value_type>
typedef VectorType Eagle::DomainVector< VectorType, Domain, scalar_t >::Base_t

The base type of this class is the vector type.

See also
META::BaseClass

Constructor & Destructor Documentation

◆ DomainVector()

template<class VectorType, class Domain, class scalar_t = typename VectorType::value_type>
Eagle::DomainVector< VectorType, Domain, scalar_t >::DomainVector ( )
inlineconstexpr