glucat 0.13.0
framed_multi.h File Reference
#include "glucat/global.h"
#include "glucat/errors.h"
#include "glucat/index_set.h"
#include "glucat/clifford_algebra.h"
#include "glucat/tuning.h"
#include <string>
#include <utility>
#include <map>
#include <unordered_map>
#include <vector>
Include dependency graph for framed_multi.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  glucat::index_set_hash< LO, HI >
class  glucat::framed_multi< Scalar_T, LO, HI, Tune_P >
 A framed_multi<Scalar_T,LO,HI,Tune_P> is a framed approximation to a multivector. More...
class  glucat::framed_multi< Scalar_T, LO, HI, Tune_P >::hash_size_t
class  glucat::framed_multi< Scalar_T, LO, HI, Tune_P >::var_term
 Variable term. More...
struct  std::numeric_limits< glucat::framed_multi< Scalar_T, LO, HI, Tune_P > >
 Numeric limits for framed_multi inherit limits for the corresponding scalar type. More...

Namespaces

namespace  glucat
namespace  std

Functions

template<typename Scalar_T, const index_t LO, const index_t HI, typename Tune_P>
auto glucat::operator* (const framed_multi< Scalar_T, LO, HI, Tune_P > &lhs, const framed_multi< Scalar_T, LO, HI, Tune_P > &rhs) -> const framed_multi< Scalar_T, LO, HI, Tune_P >
 Geometric product.
template<typename Scalar_T, const index_t LO, const index_t HI, typename Tune_P>
auto glucat::operator^ (const framed_multi< Scalar_T, LO, HI, Tune_P > &lhs, const framed_multi< Scalar_T, LO, HI, Tune_P > &rhs) -> const framed_multi< Scalar_T, LO, HI, Tune_P >
 Outer product.
template<typename Scalar_T, const index_t LO, const index_t HI, typename Tune_P>
auto glucat::operator& (const framed_multi< Scalar_T, LO, HI, Tune_P > &lhs, const framed_multi< Scalar_T, LO, HI, Tune_P > &rhs) -> const framed_multi< Scalar_T, LO, HI, Tune_P >
 Inner product.
template<typename Scalar_T, const index_t LO, const index_t HI, typename Tune_P>
auto glucat::operator% (const framed_multi< Scalar_T, LO, HI, Tune_P > &lhs, const framed_multi< Scalar_T, LO, HI, Tune_P > &rhs) -> const framed_multi< Scalar_T, LO, HI, Tune_P >
 Left contraction.
template<typename Scalar_T, const index_t LO, const index_t HI, typename Tune_P>
auto glucat::star (const framed_multi< Scalar_T, LO, HI, Tune_P > &lhs, const framed_multi< Scalar_T, LO, HI, Tune_P > &rhs) -> Scalar_T
 Hestenes scalar product.
template<typename Scalar_T, const index_t LO, const index_t HI, typename Tune_P>
auto glucat::operator/ (const framed_multi< Scalar_T, LO, HI, Tune_P > &lhs, const framed_multi< Scalar_T, LO, HI, Tune_P > &rhs) -> const framed_multi< Scalar_T, LO, HI, Tune_P >
 Geometric quotient.
template<typename Scalar_T, const index_t LO, const index_t HI, typename Tune_P>
auto glucat::operator| (const framed_multi< Scalar_T, LO, HI, Tune_P > &lhs, const framed_multi< Scalar_T, LO, HI, Tune_P > &rhs) -> const framed_multi< Scalar_T, LO, HI, Tune_P >
 Transformation via twisted adjoint action.
template<typename Scalar_T, const index_t LO, const index_t HI, typename Tune_P>
auto glucat::operator>> (std::istream &s, framed_multi< Scalar_T, LO, HI, Tune_P > &val) -> std::istream &
 Read multivector from input.
template<typename Scalar_T, const index_t LO, const index_t HI, typename Tune_P>
auto glucat::operator<< (std::ostream &os, const framed_multi< Scalar_T, LO, HI, Tune_P > &val) -> std::ostream &
 Write multivector to output.
template<typename Scalar_T, const index_t LO, const index_t HI>
auto glucat::operator<< (std::ostream &os, const std::pair< const index_set< LO, HI >, Scalar_T > &term) -> std::ostream &
 Write term to output.
template<typename Scalar_T, const index_t LO, const index_t HI, typename Tune_P>
auto glucat::exp (const framed_multi< Scalar_T, LO, HI, Tune_P > &val) -> const framed_multi< Scalar_T, LO, HI, Tune_P >
 Exponential of multivector.
template<typename Scalar_T, const index_t LO, const index_t HI>
static auto glucat::crd_of_mult (const std::pair< const index_set< LO, HI >, Scalar_T > &lhs, const std::pair< const index_set< LO, HI >, Scalar_T > &rhs) -> Scalar_T
 Coordinate of product of terms.
template<typename Scalar_T, const index_t LO, const index_t HI>
auto glucat::operator* (const std::pair< const index_set< LO, HI >, Scalar_T > &lhs, const std::pair< const index_set< LO, HI >, Scalar_T > &rhs) -> const std::pair< const index_set< LO, HI >, Scalar_T >
 Product of terms.
template<typename Scalar_T, const index_t LO, const index_t HI, typename Tune_P>
auto glucat::sqrt (const framed_multi< Scalar_T, LO, HI, Tune_P > &val, const framed_multi< Scalar_T, LO, HI, Tune_P > &i, bool prechecked) -> const framed_multi< Scalar_T, LO, HI, Tune_P >
 Square root of multivector with specified complexifier.
template<typename Scalar_T, const index_t LO, const index_t HI, typename Tune_P>
auto glucat::log (const framed_multi< Scalar_T, LO, HI, Tune_P > &val, const framed_multi< Scalar_T, LO, HI, Tune_P > &i, bool prechecked) -> const framed_multi< Scalar_T, LO, HI, Tune_P >
 Natural logarithm of multivector with specified complexifier.