glucat  0.8.4
Public Types | Public Member Functions | Static Public Member Functions | Private Types | Private Member Functions | Private Attributes | Friends | List of all members
glucat::matrix_multi< Scalar_T, LO, HI > Class Template Reference

A matrix_multi<Scalar_T,LO,HI> is a matrix approximation to a multivector. More...

#include <framed_multi.h>

Collaboration diagram for glucat::matrix_multi< Scalar_T, LO, HI >:
Collaboration graph
[legend]

Public Types

typedef matrix_multi multivector_t
 
typedef multivector_t matrix_multi_t
 
typedef Scalar_T scalar_t
 
typedef index_set< LO, HI > index_set_t
 
typedef std::pair< const index_set_t, Scalar_T > term_t
 
typedef std::vector< Scalar_T > vector_t
 
typedef error< multivector_terror_t
 
typedef framed_multi< Scalar_T, LO, HI > framed_multi_t
 

Public Member Functions

 ~matrix_multi ()
 Destructor. More...
 
 matrix_multi ()
 Default constructor. More...
 
template<typename Other_Scalar_T >
 matrix_multi (const matrix_multi< Other_Scalar_T, LO, HI > &val)
 Construct a multivector from a multivector with a different scalar type. More...
 
template<typename Other_Scalar_T >
 matrix_multi (const matrix_multi< Other_Scalar_T, LO, HI > &val, const index_set_t frm, const bool prechecked=false)
 Construct a multivector, within a given frame, from a given multivector. More...
 
 matrix_multi (const multivector_t &val, const index_set_t frm, const bool prechecked=false)
 Construct a multivector, within a given frame, from a given multivector. More...
 
 matrix_multi (const index_set_t ist, const Scalar_T &crd=Scalar_T(1))
 Construct a multivector from an index set and a scalar coordinate. More...
 
 matrix_multi (const index_set_t ist, const Scalar_T &crd, const index_set_t frm, const bool prechecked=false)
 Construct a multivector, within a given frame, from an index set and a scalar coordinate. More...
 
 matrix_multi (const Scalar_T &scr, const index_set_t frm=index_set_t())
 Construct a multivector from a scalar (within a frame, if given) More...
 
 matrix_multi (const int scr, const index_set_t frm=index_set_t())
 Construct a multivector from an int (within a frame, if given) More...
 
 matrix_multi (const vector_t &vec, const index_set_t frm, const bool prechecked=false)
 Construct a multivector, within a given frame, from a given vector. More...
 
 matrix_multi (const std::string &str)
 Construct a multivector from a string: eg: "3+2{1,2}-6.1e-2{2,3}". More...
 
 matrix_multi (const std::string &str, const index_set_t frm, const bool prechecked=false)
 Construct a multivector, within a given frame, from a string: eg: "3+2{1,2}-6.1e-2{2,3}". More...
 
 matrix_multi (const char *str)
 Construct a multivector from a char*: eg: "3+2{1,2}-6.1e-2{2,3}". More...
 
 matrix_multi (const char *str, const index_set_t frm, const bool prechecked=false)
 Construct a multivector, within a given frame, from a char*: eg: "3+2{1,2}-6.1e-2{2,3}". More...
 
template<typename Other_Scalar_T >
 matrix_multi (const framed_multi< Other_Scalar_T, LO, HI > &val)
 Construct a multivector from a framed_multi_t. More...
 
template<typename Other_Scalar_T >
 matrix_multi (const framed_multi< Other_Scalar_T, LO, HI > &val, const index_set_t frm, const bool prechecked=false)
 Construct a multivector, within a given frame, from a framed_multi_t. More...
 
const matrix_multi_t fast_matrix_multi (const index_set_t frm) const
 Use generalized FFT to construct a matrix_multi_t. More...
 
template<typename Other_Scalar_T >
const framed_multi< Other_Scalar_T, LO, HI > fast_framed_multi () const
 Use inverse generalized FFT to construct a framed_multi_t. More...
 
_GLUCAT_CLIFFORD_ALGEBRA_OPERATIONS multivector_toperator= (const multivector_t &rhs)
 Assignment operator. More...
 
multivector_toperator+= (const term_t &rhs)
 Add a term, if non-zero. More...
 

Static Public Member Functions

static const std::string classname ()
 Class name used in messages. More...
 
static const matrix_multi_t random (const index_set_t frm, Scalar_T fill=Scalar_T(1))
 Random multivector within a frame. More...
 

Private Types

typedef ublas::row_major orientation_t
 
typedef ublas::compressed_matrix< int, orientation_tbasis_matrix_t
 
typedef ublas::compressed_matrix< Scalar_T, orientation_tmatrix_t
 
typedef matrix_t::size_type matrix_index_t
 

Private Member Functions

template<typename Matrix_T >
 matrix_multi (const Matrix_T &mtx, const index_set_t frm)
 Construct a multivector within a given frame from a given matrix. More...
 
 matrix_multi (const matrix_t &mtx, const index_set_t frm)
 Construct a multivector within a given frame from a given matrix. More...
 
const basis_matrix_t basis_element (const index_set< LO, HI > &ist) const
 Create a basis element matrix within the current frame. More...
 

Private Attributes

index_set_t m_frame
 Index set representing the frame for the subalgebra which contains the multivector. More...
 
matrix_t m_matrix
 Matrix value representing the multivector within the folded frame. More...
 

Friends

template<typename Other_Scalar_T , const index_t Other_LO, const index_t Other_HI>
class framed_multi
 
template<typename Other_Scalar_T , const index_t Other_LO, const index_t Other_HI>
class matrix_multi
 
const matrix_multi_t operator* (const matrix_multi_t &lhs, const matrix_multi_t &rhs)
 
const matrix_multi_t operator^ (const matrix_multi_t &lhs, const matrix_multi_t &rhs)
 
const matrix_multi_t operator& (const matrix_multi_t &lhs, const matrix_multi_t &rhs)
 
const matrix_multi_t operator% (const matrix_multi_t &lhs, const matrix_multi_t &rhs)
 
Scalar_T star (const matrix_multi_t &lhs, const matrix_multi_t &rhs)
 
const matrix_multi_t operator/ (const matrix_multi_t &lhs, const matrix_multi_t &rhs)
 
const matrix_multi_t operator| (const matrix_multi_t &lhs, const matrix_multi_t &rhs)
 
std::istream & operator>> (std::istream &s, multivector_t &val)
 
std::ostream & operator<< (std::ostream &os, const multivector_t &val)
 
std::ostream & operator<< (std::ostream &os, const term_t &term)
 
template<typename Other_Scalar_T , const index_t Other_LO, const index_t Other_HI>
const index_set< Other_LO, Other_HI > reframe (const matrix_multi< Other_Scalar_T, Other_LO, Other_HI > &lhs, const matrix_multi< Other_Scalar_T, Other_LO, Other_HI > &rhs, matrix_multi< Other_Scalar_T, Other_LO, Other_HI > &lhs_reframed, matrix_multi< Other_Scalar_T, Other_LO, Other_HI > &rhs_reframed)
 
template<typename Other_Scalar_T , const index_t Other_LO, const index_t Other_HI>
const matrix_multi< Other_Scalar_T, Other_LO, Other_HI > matrix_sqrt (const matrix_multi< Other_Scalar_T, Other_LO, Other_HI > &val, const matrix_multi< Other_Scalar_T, Other_LO, Other_HI > &i)
 
template<typename Other_Scalar_T , const index_t Other_LO, const index_t Other_HI>
const matrix_multi< Other_Scalar_T, Other_LO, Other_HI > matrix_log (const matrix_multi< Other_Scalar_T, Other_LO, Other_HI > &val, const matrix_multi< Other_Scalar_T, Other_LO, Other_HI > &i)
 

Detailed Description

template<typename Scalar_T = double, const index_t LO = DEFAULT_LO, const index_t HI = DEFAULT_HI>
class glucat::matrix_multi< Scalar_T, LO, HI >

A matrix_multi<Scalar_T,LO,HI> is a matrix approximation to a multivector.

Definition at line 68 of file framed_multi.h.

Member Typedef Documentation

◆ basis_matrix_t

template<typename Scalar_T = double, const index_t LO = DEFAULT_LO, const index_t HI = DEFAULT_HI>
typedef ublas::compressed_matrix< int, orientation_t > glucat::matrix_multi< Scalar_T, LO, HI >::basis_matrix_t
private

Definition at line 181 of file matrix_multi.h.

◆ error_t

template<typename Scalar_T = double, const index_t LO = DEFAULT_LO, const index_t HI = DEFAULT_HI>
typedef error<multivector_t> glucat::matrix_multi< Scalar_T, LO, HI >::error_t

Definition at line 171 of file matrix_multi.h.

◆ framed_multi_t

template<typename Scalar_T = double, const index_t LO = DEFAULT_LO, const index_t HI = DEFAULT_HI>
typedef framed_multi<Scalar_T,LO,HI> glucat::matrix_multi< Scalar_T, LO, HI >::framed_multi_t

Definition at line 172 of file matrix_multi.h.

◆ index_set_t

template<typename Scalar_T = double, const index_t LO = DEFAULT_LO, const index_t HI = DEFAULT_HI>
typedef index_set<LO,HI> glucat::matrix_multi< Scalar_T, LO, HI >::index_set_t

Definition at line 168 of file matrix_multi.h.

◆ matrix_index_t

template<typename Scalar_T = double, const index_t LO = DEFAULT_LO, const index_t HI = DEFAULT_HI>
typedef matrix_t::size_type glucat::matrix_multi< Scalar_T, LO, HI >::matrix_index_t
private

Definition at line 188 of file matrix_multi.h.

◆ matrix_multi_t

template<typename Scalar_T = double, const index_t LO = DEFAULT_LO, const index_t HI = DEFAULT_HI>
typedef multivector_t glucat::matrix_multi< Scalar_T, LO, HI >::matrix_multi_t

Definition at line 166 of file matrix_multi.h.

◆ matrix_t

template<typename Scalar_T = double, const index_t LO = DEFAULT_LO, const index_t HI = DEFAULT_HI>
typedef ublas::compressed_matrix< Scalar_T, orientation_t > glucat::matrix_multi< Scalar_T, LO, HI >::matrix_t
private

Definition at line 186 of file matrix_multi.h.

◆ multivector_t

template<typename Scalar_T = double, const index_t LO = DEFAULT_LO, const index_t HI = DEFAULT_HI>
typedef matrix_multi glucat::matrix_multi< Scalar_T, LO, HI >::multivector_t

Definition at line 165 of file matrix_multi.h.

◆ orientation_t

template<typename Scalar_T = double, const index_t LO = DEFAULT_LO, const index_t HI = DEFAULT_HI>
typedef ublas::row_major glucat::matrix_multi< Scalar_T, LO, HI >::orientation_t
private

Definition at line 179 of file matrix_multi.h.

◆ scalar_t

template<typename Scalar_T = double, const index_t LO = DEFAULT_LO, const index_t HI = DEFAULT_HI>
typedef Scalar_T glucat::matrix_multi< Scalar_T, LO, HI >::scalar_t

Definition at line 167 of file matrix_multi.h.

◆ term_t

template<typename Scalar_T = double, const index_t LO = DEFAULT_LO, const index_t HI = DEFAULT_HI>
typedef std::pair<const index_set_t, Scalar_T> glucat::matrix_multi< Scalar_T, LO, HI >::term_t

Definition at line 169 of file matrix_multi.h.

◆ vector_t

template<typename Scalar_T = double, const index_t LO = DEFAULT_LO, const index_t HI = DEFAULT_HI>
typedef std::vector<Scalar_T> glucat::matrix_multi< Scalar_T, LO, HI >::vector_t

Definition at line 170 of file matrix_multi.h.

Constructor & Destructor Documentation

◆ ~matrix_multi()

template<typename Scalar_T = double, const index_t LO = DEFAULT_LO, const index_t HI = DEFAULT_HI>
glucat::matrix_multi< Scalar_T, LO, HI >::~matrix_multi ( )
inline

Destructor.

Definition at line 194 of file matrix_multi.h.

◆ matrix_multi() [1/17]

template<typename Scalar_T , const index_t LO, const index_t HI>
glucat::matrix_multi< Scalar_T, LO, HI >::matrix_multi

Default constructor.

Definition at line 128 of file matrix_multi_imp.h.

References glucat::matrix_multi< Scalar_T, LO, HI >::m_frame.

◆ matrix_multi() [2/17]

template<typename Scalar_T , const index_t LO, const index_t HI>
template<typename Other_Scalar_T >
glucat::matrix_multi< Scalar_T, LO, HI >::matrix_multi ( const matrix_multi< Other_Scalar_T, LO, HI > &  val)

Construct a multivector from a multivector with a different scalar type.

Definition at line 137 of file matrix_multi_imp.h.

References glucat::matrix_multi< Scalar_T, LO, HI >::m_matrix, and glucat::numeric_traits< Scalar_T >::to_scalar_t().

◆ matrix_multi() [3/17]

template<typename Scalar_T , const index_t LO, const index_t HI>
template<typename Other_Scalar_T >
glucat::matrix_multi< Scalar_T, LO, HI >::matrix_multi ( const matrix_multi< Other_Scalar_T, LO, HI > &  val,
const index_set_t  frm,
const bool  prechecked = false 
)

Construct a multivector, within a given frame, from a given multivector.

Definition at line 159 of file matrix_multi_imp.h.

References glucat::matrix_multi< Scalar_T, LO, HI >::m_frame, and glucat::matrix_multi< Scalar_T, LO, HI >::m_matrix.

◆ matrix_multi() [4/17]

template<typename Scalar_T , const index_t LO, const index_t HI>
glucat::matrix_multi< Scalar_T, LO, HI >::matrix_multi ( const multivector_t val,
const index_set_t  frm,
const bool  prechecked = false 
)

Construct a multivector, within a given frame, from a given multivector.

Definition at line 187 of file matrix_multi_imp.h.

◆ matrix_multi() [5/17]

template<typename Scalar_T , const index_t LO, const index_t HI>
glucat::matrix_multi< Scalar_T, LO, HI >::matrix_multi ( const index_set_t  ist,
const Scalar_T &  crd = Scalar_T(1) 
)

Construct a multivector from an index set and a scalar coordinate.

Definition at line 199 of file matrix_multi_imp.h.

◆ matrix_multi() [6/17]

template<typename Scalar_T , const index_t LO, const index_t HI>
glucat::matrix_multi< Scalar_T, LO, HI >::matrix_multi ( const index_set_t  ist,
const Scalar_T &  crd,
const index_set_t  frm,
const bool  prechecked = false 
)

Construct a multivector, within a given frame, from an index set and a scalar coordinate.

Definition at line 211 of file matrix_multi_imp.h.

References glucat::index_set< LO, HI >::count(), and glucat::matrix_multi< Scalar_T, LO, HI >::m_matrix.

◆ matrix_multi() [7/17]

template<typename Scalar_T , const index_t LO, const index_t HI>
glucat::matrix_multi< Scalar_T, LO, HI >::matrix_multi ( const Scalar_T &  scr,
const index_set_t  frm = index_set_t() 
)

Construct a multivector from a scalar (within a frame, if given)

Definition at line 225 of file matrix_multi_imp.h.

◆ matrix_multi() [8/17]

template<typename Scalar_T , const index_t LO, const index_t HI>
glucat::matrix_multi< Scalar_T, LO, HI >::matrix_multi ( const int  scr,
const index_set_t  frm = index_set_t() 
)

Construct a multivector from an int (within a frame, if given)

Definition at line 237 of file matrix_multi_imp.h.

◆ matrix_multi() [9/17]

template<typename Scalar_T , const index_t LO, const index_t HI>
glucat::matrix_multi< Scalar_T, LO, HI >::matrix_multi ( const vector_t vec,
const index_set_t  frm,
const bool  prechecked = false 
)

Construct a multivector, within a given frame, from a given vector.

Definition at line 243 of file matrix_multi_imp.h.

◆ matrix_multi() [10/17]

template<typename Scalar_T , const index_t LO, const index_t HI>
glucat::matrix_multi< Scalar_T, LO, HI >::matrix_multi ( const std::string &  str)

Construct a multivector from a string: eg: "3+2{1,2}-6.1e-2{2,3}".

Definition at line 270 of file matrix_multi_imp.h.

◆ matrix_multi() [11/17]

template<typename Scalar_T , const index_t LO, const index_t HI>
glucat::matrix_multi< Scalar_T, LO, HI >::matrix_multi ( const std::string &  str,
const index_set_t  frm,
const bool  prechecked = false 
)

Construct a multivector, within a given frame, from a string: eg: "3+2{1,2}-6.1e-2{2,3}".

Definition at line 276 of file matrix_multi_imp.h.

◆ matrix_multi() [12/17]

template<typename Scalar_T = double, const index_t LO = DEFAULT_LO, const index_t HI = DEFAULT_HI>
glucat::matrix_multi< Scalar_T, LO, HI >::matrix_multi ( const char *  str)
inline

Construct a multivector from a char*: eg: "3+2{1,2}-6.1e-2{2,3}".

Definition at line 225 of file matrix_multi.h.

◆ matrix_multi() [13/17]

template<typename Scalar_T = double, const index_t LO = DEFAULT_LO, const index_t HI = DEFAULT_HI>
glucat::matrix_multi< Scalar_T, LO, HI >::matrix_multi ( const char *  str,
const index_set_t  frm,
const bool  prechecked = false 
)
inline

Construct a multivector, within a given frame, from a char*: eg: "3+2{1,2}-6.1e-2{2,3}".

Definition at line 228 of file matrix_multi.h.

◆ matrix_multi() [14/17]

template<typename Scalar_T , const index_t LO, const index_t HI>
template<typename Other_Scalar_T >
glucat::matrix_multi< Scalar_T, LO, HI >::matrix_multi ( const framed_multi< Other_Scalar_T, LO, HI > &  val)

◆ matrix_multi() [15/17]

template<typename Scalar_T , const index_t LO, const index_t HI>
template<typename Other_Scalar_T >
glucat::matrix_multi< Scalar_T, LO, HI >::matrix_multi ( const framed_multi< Other_Scalar_T, LO, HI > &  val,
const index_set_t  frm,
const bool  prechecked = false 
)

Construct a multivector, within a given frame, from a framed_multi_t.

Definition at line 310 of file matrix_multi_imp.h.

References glucat::matrix_multi< Scalar_T, LO, HI >::m_matrix, and glucat::numeric_traits< Scalar_T >::to_scalar_t().

◆ matrix_multi() [16/17]

template<typename Scalar_T , const index_t LO, const index_t HI>
template<typename Matrix_T >
glucat::matrix_multi< Scalar_T, LO, HI >::matrix_multi ( const Matrix_T &  mtx,
const index_set_t  frm 
)
private

Construct a multivector within a given frame from a given matrix.

Definition at line 338 of file matrix_multi_imp.h.

References glucat::matrix_multi< Scalar_T, LO, HI >::m_frame, and glucat::matrix_multi< Scalar_T, LO, HI >::m_matrix.

◆ matrix_multi() [17/17]

template<typename Scalar_T , const index_t LO, const index_t HI>
glucat::matrix_multi< Scalar_T, LO, HI >::matrix_multi ( const matrix_t mtx,
const index_set_t  frm 
)
private

Construct a multivector within a given frame from a given matrix.

Definition at line 359 of file matrix_multi_imp.h.

Member Function Documentation

◆ basis_element()

template<typename Scalar_T , const index_t LO, const index_t HI>
const matrix_multi< Scalar_T, LO, HI >::basis_matrix_t glucat::matrix_multi< Scalar_T, LO, HI >::basis_element ( const index_set< LO, HI > &  ist) const
private

Create a basis element matrix within the current frame.

Definition at line 1274 of file matrix_multi_imp.h.

◆ classname()

template<typename Scalar_T , const index_t LO, const index_t HI>
const std::string glucat::matrix_multi< Scalar_T, LO, HI >::classname
static

Class name used in messages.

Definition at line 100 of file matrix_multi_imp.h.

References glucat::matrix_multi< Scalar_T, LO, HI >::m_matrix.

◆ fast_framed_multi()

template<typename Scalar_T , const index_t LO, const index_t HI>
template<typename Other_Scalar_T >
const framed_multi< Other_Scalar_T, LO, HI > glucat::matrix_multi< Scalar_T, LO, HI >::fast_framed_multi

Use inverse generalized FFT to construct a framed_multi_t.

Definition at line 1197 of file matrix_multi_imp.h.

◆ fast_matrix_multi()

template<typename Scalar_T , const index_t LO, const index_t HI>
const matrix_multi< Scalar_T, LO, HI > glucat::matrix_multi< Scalar_T, LO, HI >::fast_matrix_multi ( const index_set_t  frm) const
inline

Use generalized FFT to construct a matrix_multi_t.

Definition at line 1184 of file matrix_multi_imp.h.

◆ operator+=()

template<typename Scalar_T , const index_t LO, const index_t HI>
matrix_multi< Scalar_T, LO, HI > & glucat::matrix_multi< Scalar_T, LO, HI >::operator+= ( const term_t rhs)
inline

Add a term, if non-zero.

Geometric sum.

Geometric sum of multivector and scalar.

Definition at line 501 of file matrix_multi_imp.h.

References glucat::matrix_multi< Scalar_T, LO, HI >::m_frame, glucat::matrix_multi< Scalar_T, LO, HI >::m_matrix, and glucat::reframe().

◆ operator=()

template<typename Scalar_T , const index_t LO, const index_t HI>
matrix_multi< Scalar_T, LO, HI > & glucat::matrix_multi< Scalar_T, LO, HI >::operator= ( const multivector_t rhs)

Assignment operator.

Definition at line 367 of file matrix_multi_imp.h.

◆ random()

template<typename Scalar_T , const index_t LO, const index_t HI>
const matrix_multi< Scalar_T, LO, HI > glucat::matrix_multi< Scalar_T, LO, HI >::random ( const index_set_t  frm,
Scalar_T  fill = Scalar_T(1) 
)
static

Random multivector within a frame.

Definition at line 1027 of file matrix_multi_imp.h.

Friends And Related Function Documentation

◆ framed_multi

template<typename Scalar_T = double, const index_t LO = DEFAULT_LO, const index_t HI = DEFAULT_HI>
template<typename Other_Scalar_T , const index_t Other_LO, const index_t Other_HI>
friend class framed_multi
friend

Definition at line 174 of file matrix_multi.h.

◆ matrix_log

template<typename Scalar_T = double, const index_t LO = DEFAULT_LO, const index_t HI = DEFAULT_HI>
template<typename Other_Scalar_T , const index_t Other_LO, const index_t Other_HI>
const matrix_multi<Other_Scalar_T,Other_LO,Other_HI> matrix_log ( const matrix_multi< Other_Scalar_T, Other_LO, Other_HI > &  val,
const matrix_multi< Other_Scalar_T, Other_LO, Other_HI > &  i 
)
friend

◆ matrix_multi

template<typename Scalar_T = double, const index_t LO = DEFAULT_LO, const index_t HI = DEFAULT_HI>
template<typename Other_Scalar_T , const index_t Other_LO, const index_t Other_HI>
friend class matrix_multi
friend

Definition at line 176 of file matrix_multi.h.

◆ matrix_sqrt

template<typename Scalar_T = double, const index_t LO = DEFAULT_LO, const index_t HI = DEFAULT_HI>
template<typename Other_Scalar_T , const index_t Other_LO, const index_t Other_HI>
const matrix_multi<Other_Scalar_T,Other_LO,Other_HI> matrix_sqrt ( const matrix_multi< Other_Scalar_T, Other_LO, Other_HI > &  val,
const matrix_multi< Other_Scalar_T, Other_LO, Other_HI > &  i 
)
friend

◆ operator%

template<typename Scalar_T = double, const index_t LO = DEFAULT_LO, const index_t HI = DEFAULT_HI>
const matrix_multi_t operator% ( const matrix_multi_t lhs,
const matrix_multi_t rhs 
)
friend

◆ operator&

template<typename Scalar_T = double, const index_t LO = DEFAULT_LO, const index_t HI = DEFAULT_HI>
const matrix_multi_t operator& ( const matrix_multi_t lhs,
const matrix_multi_t rhs 
)
friend

◆ operator*

template<typename Scalar_T = double, const index_t LO = DEFAULT_LO, const index_t HI = DEFAULT_HI>
const matrix_multi_t operator* ( const matrix_multi_t lhs,
const matrix_multi_t rhs 
)
friend

◆ operator/

template<typename Scalar_T = double, const index_t LO = DEFAULT_LO, const index_t HI = DEFAULT_HI>
const matrix_multi_t operator/ ( const matrix_multi_t lhs,
const matrix_multi_t rhs 
)
friend

◆ operator<< [1/2]

template<typename Scalar_T = double, const index_t LO = DEFAULT_LO, const index_t HI = DEFAULT_HI>
std::ostream& operator<< ( std::ostream &  os,
const multivector_t val 
)
friend

◆ operator<< [2/2]

template<typename Scalar_T = double, const index_t LO = DEFAULT_LO, const index_t HI = DEFAULT_HI>
std::ostream& operator<< ( std::ostream &  os,
const term_t term 
)
friend

◆ operator>>

template<typename Scalar_T = double, const index_t LO = DEFAULT_LO, const index_t HI = DEFAULT_HI>
std::istream& operator>> ( std::istream &  s,
multivector_t val 
)
friend

◆ operator^

template<typename Scalar_T = double, const index_t LO = DEFAULT_LO, const index_t HI = DEFAULT_HI>
const matrix_multi_t operator^ ( const matrix_multi_t lhs,
const matrix_multi_t rhs 
)
friend

◆ operator|

template<typename Scalar_T = double, const index_t LO = DEFAULT_LO, const index_t HI = DEFAULT_HI>
const matrix_multi_t operator| ( const matrix_multi_t lhs,
const matrix_multi_t rhs 
)
friend

◆ reframe

template<typename Scalar_T = double, const index_t LO = DEFAULT_LO, const index_t HI = DEFAULT_HI>
template<typename Other_Scalar_T , const index_t Other_LO, const index_t Other_HI>
const index_set<Other_LO,Other_HI> reframe ( const matrix_multi< Other_Scalar_T, Other_LO, Other_HI > &  lhs,
const matrix_multi< Other_Scalar_T, Other_LO, Other_HI > &  rhs,
matrix_multi< Other_Scalar_T, Other_LO, Other_HI > &  lhs_reframed,
matrix_multi< Other_Scalar_T, Other_LO, Other_HI > &  rhs_reframed 
)
friend

◆ star

template<typename Scalar_T = double, const index_t LO = DEFAULT_LO, const index_t HI = DEFAULT_HI>
Scalar_T star ( const matrix_multi_t lhs,
const matrix_multi_t rhs 
)
friend

Member Data Documentation

◆ m_frame

template<typename Scalar_T = double, const index_t LO = DEFAULT_LO, const index_t HI = DEFAULT_HI>
index_set_t glucat::matrix_multi< Scalar_T, LO, HI >::m_frame
private

Index set representing the frame for the subalgebra which contains the multivector.

Definition at line 304 of file matrix_multi.h.

Referenced by glucat::matrix_multi< Scalar_T, LO, HI >::matrix_multi(), and glucat::matrix_multi< Scalar_T, LO, HI >::operator+=().

◆ m_matrix

template<typename Scalar_T = double, const index_t LO = DEFAULT_LO, const index_t HI = DEFAULT_HI>
matrix_t glucat::matrix_multi< Scalar_T, LO, HI >::m_matrix
private

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