glucat
0.8.2
|
clifford_algebra<> declares the operations of a Clifford algebra More...
#include <clifford_algebra.h>
Public Types | |
typedef Scalar_T | scalar_t |
typedef Index_Set_T | index_set_t |
typedef Multivector_T | multivector_t |
typedef std::pair< const index_set_t, Scalar_T > | pair_t |
typedef std::vector< Scalar_T > | vector_t |
Public Member Functions | |
virtual | ~clifford_algebra () |
virtual bool | operator== (const multivector_t &val) const =0 |
Test for equality of multivectors. More... | |
virtual bool | operator== (const Scalar_T &scr) const =0 |
Test for equality of multivector and scalar. More... | |
virtual multivector_t & | operator+= (const multivector_t &rhs)=0 |
Geometric sum. More... | |
virtual multivector_t & | operator+= (const Scalar_T &scr)=0 |
Geometric sum of multivector and scalar. More... | |
virtual multivector_t & | operator-= (const multivector_t &rhs)=0 |
Geometric difference. More... | |
virtual const multivector_t | operator- () const =0 |
Unary -. More... | |
virtual multivector_t & | operator*= (const Scalar_T &scr)=0 |
Product of multivector and scalar. More... | |
virtual multivector_t & | operator*= (const multivector_t &rhs)=0 |
Geometric product. More... | |
virtual multivector_t & | operator%= (const multivector_t &rhs)=0 |
Contraction. More... | |
virtual multivector_t & | operator&= (const multivector_t &rhs)=0 |
Inner product. More... | |
virtual multivector_t & | operator^= (const multivector_t &rhs)=0 |
Outer product. More... | |
virtual multivector_t & | operator/= (const Scalar_T &scr)=0 |
Quotient of multivector and scalar. More... | |
virtual multivector_t & | operator/= (const multivector_t &rhs)=0 |
Geometric quotient. More... | |
virtual multivector_t & | operator|= (const multivector_t &rhs)=0 |
Transformation via twisted adjoint action. More... | |
virtual const multivector_t | inv () const =0 |
Geometric multiplicative inverse. More... | |
virtual const multivector_t | pow (int m) const =0 |
*this to the m More... | |
virtual const multivector_t | outer_pow (int m) const =0 |
Outer product power. More... | |
virtual const index_set_t | frame () const =0 |
Subalgebra generated by all generators of terms of given multivector. More... | |
virtual index_t | grade () const =0 |
Maximum of the grades of each term. More... | |
virtual Scalar_T | operator[] (const index_set_t ist) const =0 |
Subscripting: map from index set to scalar coordinate. More... | |
virtual const multivector_t | operator() (index_t grade) const =0 |
Pure grade-vector part. More... | |
virtual Scalar_T | scalar () const =0 |
Scalar part. More... | |
virtual const multivector_t | pure () const =0 |
Pure part. More... | |
virtual const multivector_t | even () const =0 |
Even part of multivector, sum of even grade terms. More... | |
virtual const multivector_t | odd () const =0 |
Odd part of multivector, sum of odd grade terms. More... | |
virtual const vector_t | vector_part () const =0 |
Vector part of multivector, as a vector_t with respect to frame() More... | |
virtual const vector_t | vector_part (const index_set_t frm, const bool prechecked) const =0 |
Vector part of multivector, as a vector_t with respect to frm. More... | |
virtual const multivector_t | involute () const =0 |
Main involution, each {i} is replaced by -{i} in each term, eg. {1} -> -{1}. More... | |
virtual const multivector_t | reverse () const =0 |
Reversion, eg. {1}*{2} -> {2}*{1}. More... | |
virtual const multivector_t | conj () const =0 |
Conjugation, reverse o involute == involute o reverse. More... | |
virtual Scalar_T | quad () const =0 |
Scalar_T quadratic form == (rev(x)*x)(0) More... | |
virtual Scalar_T | norm () const =0 |
Scalar_T norm == sum of norm of coordinates. More... | |
virtual Scalar_T | max_abs () const =0 |
Maximum of absolute values of components of multivector: multivector infinity norm. More... | |
virtual const multivector_t | truncated (const Scalar_T &limit=Scalar_T(DEFAULT_TRUNCATION)) const =0 |
Remove all terms with relative size smaller than limit. More... | |
virtual bool | isnan () const =0 |
Check if a multivector contains any IEEE NaN values. More... | |
virtual void | write (const std::string &msg="") const =0 |
Write formatted multivector to output. More... | |
virtual void | write (std::ofstream &ofile, const std::string &msg="") const =0 |
Write formatted multivector to file. More... | |
Static Public Member Functions | |
static const std::string | classname () |
clifford_algebra<> declares the operations of a Clifford algebra
Definition at line 42 of file clifford_algebra.h.
typedef Index_Set_T glucat::clifford_algebra< Scalar_T, Index_Set_T, Multivector_T >::index_set_t |
Definition at line 46 of file clifford_algebra.h.
typedef Multivector_T glucat::clifford_algebra< Scalar_T, Index_Set_T, Multivector_T >::multivector_t |
Definition at line 47 of file clifford_algebra.h.
typedef std::pair< const index_set_t, Scalar_T > glucat::clifford_algebra< Scalar_T, Index_Set_T, Multivector_T >::pair_t |
Definition at line 48 of file clifford_algebra.h.
typedef Scalar_T glucat::clifford_algebra< Scalar_T, Index_Set_T, Multivector_T >::scalar_t |
Definition at line 45 of file clifford_algebra.h.
typedef std::vector<Scalar_T> glucat::clifford_algebra< Scalar_T, Index_Set_T, Multivector_T >::vector_t |
Definition at line 49 of file clifford_algebra.h.
|
inlinevirtual |
Definition at line 53 of file clifford_algebra.h.
|
static |
Definition at line 66 of file clifford_algebra_imp.h.
|
pure virtual |
Conjugation, reverse o involute == involute o reverse.
Referenced by glucat::clifford_algebra< Scalar_T, index_set< LO, HI >, framed_multi< Scalar_T, LO, HI > >::~clifford_algebra().
|
pure virtual |
Even part of multivector, sum of even grade terms.
Referenced by glucat::framed_multi< Scalar_T, LO, HI >::fast_matrix_multi(), and glucat::clifford_algebra< Scalar_T, index_set< LO, HI >, framed_multi< Scalar_T, LO, HI > >::~clifford_algebra().
|
pure virtual |
Subalgebra generated by all generators of terms of given multivector.
Referenced by glucat::clifford_algebra< Scalar_T, index_set< LO, HI >, framed_multi< Scalar_T, LO, HI > >::~clifford_algebra().
|
pure virtual |
Maximum of the grades of each term.
Referenced by glucat::clifford_algebra< Scalar_T, index_set< LO, HI >, framed_multi< Scalar_T, LO, HI > >::~clifford_algebra().
|
pure virtual |
Geometric multiplicative inverse.
Referenced by glucat::clifford_algebra< Scalar_T, index_set< LO, HI >, framed_multi< Scalar_T, LO, HI > >::~clifford_algebra().
|
pure virtual |
Main involution, each {i} is replaced by -{i} in each term, eg. {1} -> -{1}.
Referenced by glucat::operator|(), and glucat::clifford_algebra< Scalar_T, index_set< LO, HI >, framed_multi< Scalar_T, LO, HI > >::~clifford_algebra().
|
pure virtual |
Check if a multivector contains any IEEE NaN values.
Referenced by glucat::matrix_sqrt(), and glucat::clifford_algebra< Scalar_T, index_set< LO, HI >, framed_multi< Scalar_T, LO, HI > >::~clifford_algebra().
|
pure virtual |
Maximum of absolute values of components of multivector: multivector infinity norm.
Referenced by glucat::clifford_algebra< Scalar_T, index_set< LO, HI >, framed_multi< Scalar_T, LO, HI > >::~clifford_algebra().
|
pure virtual |
Scalar_T norm == sum of norm of coordinates.
Referenced by glucat::clifford_algebra< Scalar_T, index_set< LO, HI >, framed_multi< Scalar_T, LO, HI > >::~clifford_algebra().
|
pure virtual |
Odd part of multivector, sum of odd grade terms.
Referenced by glucat::framed_multi< Scalar_T, LO, HI >::fast_matrix_multi(), and glucat::clifford_algebra< Scalar_T, index_set< LO, HI >, framed_multi< Scalar_T, LO, HI > >::~clifford_algebra().
|
pure virtual |
Contraction.
Referenced by glucat::clifford_algebra< Scalar_T, index_set< LO, HI >, framed_multi< Scalar_T, LO, HI > >::~clifford_algebra().
|
pure virtual |
Inner product.
Referenced by glucat::clifford_algebra< Scalar_T, index_set< LO, HI >, framed_multi< Scalar_T, LO, HI > >::~clifford_algebra().
|
pure virtual |
Pure grade-vector part.
Referenced by glucat::clifford_algebra< Scalar_T, index_set< LO, HI >, framed_multi< Scalar_T, LO, HI > >::~clifford_algebra().
|
pure virtual |
Product of multivector and scalar.
Referenced by glucat::clifford_algebra< Scalar_T, index_set< LO, HI >, framed_multi< Scalar_T, LO, HI > >::~clifford_algebra().
|
pure virtual |
Geometric product.
|
pure virtual |
Geometric sum.
Referenced by glucat::clifford_algebra< Scalar_T, index_set< LO, HI >, framed_multi< Scalar_T, LO, HI > >::~clifford_algebra().
|
pure virtual |
Geometric sum of multivector and scalar.
|
pure virtual |
|
pure virtual |
Geometric difference.
Referenced by glucat::clifford_algebra< Scalar_T, index_set< LO, HI >, framed_multi< Scalar_T, LO, HI > >::~clifford_algebra().
|
pure virtual |
Quotient of multivector and scalar.
Referenced by glucat::clifford_algebra< Scalar_T, index_set< LO, HI >, framed_multi< Scalar_T, LO, HI > >::~clifford_algebra().
|
pure virtual |
Geometric quotient.
|
pure virtual |
Test for equality of multivectors.
Referenced by glucat::clifford_algebra< Scalar_T, index_set< LO, HI >, framed_multi< Scalar_T, LO, HI > >::~clifford_algebra().
|
pure virtual |
Test for equality of multivector and scalar.
|
pure virtual |
Subscripting: map from index set to scalar coordinate.
Referenced by glucat::clifford_algebra< Scalar_T, index_set< LO, HI >, framed_multi< Scalar_T, LO, HI > >::~clifford_algebra().
|
pure virtual |
Outer product.
Referenced by glucat::clifford_algebra< Scalar_T, index_set< LO, HI >, framed_multi< Scalar_T, LO, HI > >::~clifford_algebra().
|
pure virtual |
Transformation via twisted adjoint action.
Referenced by glucat::clifford_algebra< Scalar_T, index_set< LO, HI >, framed_multi< Scalar_T, LO, HI > >::~clifford_algebra().
|
pure virtual |
Outer product power.
Referenced by glucat::clifford_algebra< Scalar_T, index_set< LO, HI >, framed_multi< Scalar_T, LO, HI > >::~clifford_algebra().
|
pure virtual |
*this to the m
Referenced by glucat::clifford_algebra< Scalar_T, index_set< LO, HI >, framed_multi< Scalar_T, LO, HI > >::~clifford_algebra().
|
pure virtual |
|
pure virtual |
Scalar_T quadratic form == (rev(x)*x)(0)
Referenced by glucat::clifford_algebra< Scalar_T, index_set< LO, HI >, framed_multi< Scalar_T, LO, HI > >::~clifford_algebra().
|
pure virtual |
Reversion, eg. {1}*{2} -> {2}*{1}.
Referenced by glucat::clifford_algebra< Scalar_T, index_set< LO, HI >, framed_multi< Scalar_T, LO, HI > >::~clifford_algebra().
|
pure virtual |
Scalar part.
Referenced by glucat::clifford_algebra< Scalar_T, index_set< LO, HI >, framed_multi< Scalar_T, LO, HI > >::~clifford_algebra().
|
pure virtual |
Remove all terms with relative size smaller than limit.
Referenced by glucat::clifford_algebra< Scalar_T, index_set< LO, HI >, framed_multi< Scalar_T, LO, HI > >::~clifford_algebra().
|
pure virtual |
Vector part of multivector, as a vector_t with respect to frame()
Referenced by glucat::clifford_algebra< Scalar_T, index_set< LO, HI >, framed_multi< Scalar_T, LO, HI > >::~clifford_algebra().
|
pure virtual |
Vector part of multivector, as a vector_t with respect to frm.
|
pure virtual |
Write formatted multivector to output.
Referenced by glucat::clifford_algebra< Scalar_T, index_set< LO, HI >, framed_multi< Scalar_T, LO, HI > >::~clifford_algebra().
|
pure virtual |
Write formatted multivector to file.