Go to the documentation of this file.
59 template <
typename Scalar_T>
69 template<
typename Index_Set_T>
72 std::ostringstream os;
73 os <<
"index_set(" <<
ist <<
")";
78 template<
typename Index_Set_T>
81 std::ostringstream os;
87 template<
typename Multivector_T>
91 std::ostringstream os;
92 os << std::setprecision(std::numeric_limits<scalar_t>::digits10 + 1);
93 os <<
"clifford(\"" << mv <<
"\")";
98 template<
typename Multivector_T>
102 std::ostringstream os;
106 os << std::setprecision(4) << mv.truncated(
scalar_t(1.0
e-4));
115 template<
typename Multivector_T>
116 inline Multivector_T
cga3(
const Multivector_T& x)
118 typedef Multivector_T
cl;
119 typedef typename cl::index_set_t
ist;
126 template<
typename Multivector_T>
127 inline Multivector_T
cga3std(
const Multivector_T& X)
129 typedef Multivector_T
cl;
130 typedef typename cl::index_set_t
ist;
138 template<
typename Multivector_T>
139 inline Multivector_T
agc3(
const Multivector_T& X)
141 typedef Multivector_T
cl;
142 typedef typename cl::index_set_t
ist;
146 return (
cl(
ist(1))*cga3stdX[
ist(1)] +
167 #pragma GCC diagnostic ignored "-Wunused-value"
169 #if defined(__clang__)
172 # pragma clang diagnostic ignored "-Wunused-function"
176 # pragma clang diagnostic ignored "-Wunneeded-internal-declaration"
const unsigned int DEFAULT_Fast_Size_Threshold
const unsigned int DEFAULT_Sqrt_Max_Steps
String clifford_to_repr(const Multivector_T &mv)
The “official” string representation of Multivector_T mv.
const unsigned int DEFAULT_Inv_Fast_Dim_Threshold
const unsigned int DEFAULT_Log_Max_Inner_Steps
const unsigned int DEFAULT_Div_Max_Steps
PyObject * PyFloat_FromDouble(Scalar_T v)
index_set< lo_ndx, hi_ndx > IndexSet
String index_set_to_str(const Index_Set_T &ist)
The "informal" string representation of Index_Set_T ist.
const unsigned int DEFAULT_Basis_Max_Count
int index_t
Size of index_t should be enough to represent LO, HI.
glucat::tuning< glucat::DEFAULT_Mult_Matrix_Threshold, glucat::DEFAULT_Div_Max_Steps, glucat::DEFAULT_Sqrt_Max_Steps, glucat::DEFAULT_Log_Max_Outer_Steps, glucat::DEFAULT_Log_Max_Inner_Steps, glucat::DEFAULT_Basis_Max_Count, glucat::DEFAULT_Fast_Size_Threshold, glucat::DEFAULT_Inv_Fast_Dim_Threshold, glucat::DEFAULT_Products_Size_Threshold, glucat::precision_promoted > Tune_P
Definitions for 3D Conformal Geometric Algebra [DL].
Index set class based on std::bitset<> in Gnu standard C++ library.
const index_t DEFAULT_HI
Default highest index in an index set.
Multivector_T cga3std(const Multivector_T &X)
Convert CGA3 null vector to standard Conformal Geometric Algebra null vector [DL (10....
Scalar_T abs(const Multivector< Scalar_T, LO, HI > &val)
Absolute value == sqrt(norm)
A matrix_multi<Scalar_T,LO,HI> is a matrix approximation to a multivector.
const unsigned int DEFAULT_Products_Size_Threshold
String clifford_to_str(const Multivector_T &mv)
The "informal" string representation of Multivector_T mv.
Extra traits which extend numeric limits.
String index_set_to_repr(const Index_Set_T &ist)
The “official” string representation of Index_Set_T ist.
Multivector_T agc3(const Multivector_T &X)
Convert CGA3 null vector to Euclidean 3D vector [DL (10.50)].
const unsigned int DEFAULT_Mult_Matrix_Threshold
const unsigned int DEFAULT_Log_Max_Outer_Steps
Multivector_T cga3(const Multivector_T &x)
Convert Euclidean 3D vector to Conformal Geometric Algebra null vector [DL (10.50)].
matrix_multi< scalar_t > Clifford