The Vish Visualization Shell 0.3
Vish
Eagle::PhysicalSpace::OddMultiVector Class Reference

The combination of a vector and a trivector yields an odd multivector, which is dual to a rotor. More...

#include <elementary/eagle/rotor3.hpp>

Inheritance diagram for Eagle::PhysicalSpace::OddMultiVector:
Eagle::Vector< double, 4 > Eagle::FixedArray< double, n >

Public Member Functions

 OddMultiVector (const trivector &V, const vector &v=vector(0.0, 0.0, 0.0))
 Construct rotor from trivector and vector.
 OddMultiVector (const vector &v, const trivector &V=trivector(0.0))
 Construct rotor from vector and trivector.
rotoroperator* ()
 Applying the hodge star operator.
const rotoroperator* () const
 Applying the hodge star operator.
trivectortrivec ()
 Retrieve trivector component, modifyable.
const trivectortrivec () const
 Retrieve trivector component, read-only.
vectorvec ()
 Retrieve vector component, modifyable.
const vectorvec () const
 Retrieve vector component, read-only.
Public Member Functions inherited from Eagle::Vector< double, 4 >
Base_t & fixed_array ()
 Provide access to the base class, writable.
Vectoroperator*= (const double &value)
 Self-multiplication.
Vectoroperator+= (const Vector &v)
 Self-addition.
Vectoroperator-= (const Vector &v)
 Self-subtraction.
Vectoroperator/= (const double &value)
 Self-division.
Vectoroperator= (const Vector &src)
 Assignment operator.
void set (const V &value)
 Assign all values to the same scalar.
constexpr Vector ()
 Default constructor.
Public Member Functions inherited from Eagle::FixedArray< double, n >
void expandMinMax (FixedArray &MinValues, FixedArray &MaxValues) const
 Expand a range given by MinValues,MaxValues to include the values of this array, done per component.
constexpr FixedArray () noexcept
 Default constructor.
constexpr double & get (int i)
 writable element access
constexpr const FixedArray< double, subsize > * get_subarray () const
 Helper class for retrieve a subset of the current array.
constexpr const FixedArray< double, SIZE-1 > & get_subdim () const
 Mainly introduced because of Interpolate::operator[].
const FixedArray_tgetFixedArray () const noexcept
 convenience function for base classes
constexpr double getMax () const
 Compute the maximum element value of this array.
constexpr double getMin () const
 Compute the maximum element value of this array.
constexpr bool operator!= (const FixedArray< T, N > &F) const
 Compare two arrays.
constexpr bool operator== (const FixedArray< T, N > &F) const
 Compare two arrays.
constexpr double & operator[] (int i)
 writeable element access operator
constexpr double * ptr (int i=0) noexcept
 Return a pointer to the ith element, no range checking.
constexpr void set (const Value &x)
 Set all array elements to the same value.
void setFromArray (const double *x, int length=SIZE, int offset=0)
 Set all array elements to an array's element value.
void sort (FixedArray< int, N > &I) const
 Sort the elements of an array into the index array.

Friends

OddMultiVector operator+ (const OddMultiVector &L, const OddMultiVector &R)
 Sum of trivector and vector.
OddMultiVector operator+ (const trivector &V, const vector &v)
 Sum of trivector and vector.
OddMultiVector operator+ (const vector &v, const trivector &V)
 Sum of vector and trivector.

Additional Inherited Members

Public Types inherited from Eagle::Vector< double, 4 >
enum  
 The number of elements in this array.
Public Types inherited from Eagle::FixedArray< double, n >
typedef FlattenedArray_t::value_type Element_t
 The maximally reduced type of elements stored here.
typedef GetFixedArrayType< double >::result_t ElementAsFixedArray_t
 Element type as fixed array, if it is convertible to a fixed array.
typedef FixedArray FixedArray_t
 Exporting the type definition of this array cass type.
typedef FixedArrayFlattener< FixedArrayOfElements_tFixedArrayFlattener_t
 Internal helper class.
typedef FixedArray< ElementAsFixedArray_t, N > FixedArrayOfElements_t
 If the value is derived from a fixed array type itself, then the FixedArrayOfElements_t is an FixedArray<FixedArray<>> type.
typedef FixedArrayFlattener_t::result_t FlattenedArray_t
 Reduction of this array type, if it is nested, to an flattened type which contains elementary types.
typedef double value_type
 Export the type of the respective element value type.
Static Public Member Functions inherited from Eagle::FixedArray< double, n >
static constexpr FixedArray convert (const FixedArray< T, N > &F, const ConversionFunctor &CF)
 Perform a type conversion on a given fixed array into another basis type:
static constexpr dimension_t size ()
 The number of elements here.
Protected Attributes inherited from Eagle::FixedArray< double, n >
double data [SIZE]
 The actual data values, intentional no-initialization for data member, which increases performance on vector creation.

Detailed Description

The combination of a vector and a trivector yields an odd multivector, which is dual to a rotor.

The memory layout is compatible to a rotor, but the algebraic properties are not.

An odd multivector sums up the blades of odd grades, such as 1 (vectors) and 3 (trivectors). An odd multivector is dual to a rotor.