The Vish Visualization Shell 0.3
Vish
Public Types | Public Member Functions | Friends | List of all members
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.

Examples
QuadDemo.cpp.

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>
constexpr Eagle::DomainVector< VectorType, Domain, scalar_t >::DomainVector ( )
inlineconstexpr

Evil default constructor.

Not sure if it should do anything or nothing. Primary purpose is for use within arrays. The user shouldn't expect uninitialized variables to contain anything useful.

Referenced by Eagle::DomainVector< VectorType, Domain, scalar_t >::operator+(), and Eagle::DomainVector< VectorType, Domain, scalar_t >::operator-().