41 mul(const
ex & lh, const
ex & rh);
44 mul(const
epvector & v, const
ex & oc,
bool do_index_renaming = false);
46 mul(
epvector && vp, const
ex & oc,
bool do_index_renaming = false);
47 mul(const
ex & lh, const
ex & mh, const
ex & rh);
52 bool info(
unsigned inf)
const override;
54 int degree(
const ex & s)
const override;
56 ex coeff(
const ex & s,
int n = 1)
const override;
57 bool has(
const ex & other,
unsigned options = 0)
const override;
Wrapper template for making GiNaC classes out of STL containers.
Lightweight wrapper for GiNaC's symbolic objects.
A sequence of class expair.
ex thisexpairseq(const epvector &v, const ex &oc, bool do_index_renaming=false) const override
Create an object of this type.
bool info(unsigned inf) const override
Information about the object.
ex real_part() const override
bool expair_needs_further_processing(epp it) override
ex evalf() const override
Evaluate object numerically.
epvector expandchildren(unsigned options) const
Member-wise expand the expairs representing this sequence.
unsigned precedence() const override
Return relative operator precedence (for parenthezing output).
bool is_polynomial(const ex &var) const override
Check whether this is a polynomial in the given variables.
return_type_t return_type_tinfo() const override
ex series(const relational &s, int order, unsigned options=0) const override
Implementation of ex::series() for product.
ex default_overall_coeff() const override
void do_print_csrc(const print_csrc &c, unsigned level) const
unsigned return_type() const override
void do_print(const print_context &c, unsigned level) const
void do_print_python_repr(const print_python_repr &c, unsigned level) const
ex conjugate() const override
bool can_make_flat(const expair &p) const override
ex imag_part() const override
expair combine_ex_with_coeff_to_pair(const ex &e, const ex &c) const override
void combine_overall_coeff(const ex &c) override
int ldegree(const ex &s) const override
Return degree of lowest power in object s.
ex eval() const override
Perform automatic term rewriting rules in this class.
expair split_ex_to_pair(const ex &e) const override
Form an expair from an ex, using the corresponding semantics.
ex expand(unsigned options=0) const override
Expand expression, i.e.
int degree(const ex &s) const override
Return degree of highest power in object s.
void do_print_latex(const print_latex &c, unsigned level) const
static bool can_be_further_expanded(const ex &e)
ex derivative(const symbol &s) const override
Implementation of ex::diff() for a product.
void find_real_imag(ex &, ex &) const
ex coeff(const ex &s, int n=1) const override
Return coefficient of degree n in object s.
ex recombine_pair_to_ex(const expair &p) const override
Form an ex out of an expair, using the corresponding semantics.
ex evalm() const override
Evaluate sums, products and integer powers of matrices.
exvector get_free_indices() const override
Return a vector containing the free indices of an expression.
ex smod(const numeric &xi) const override
Apply symmetric modular homomorphism to an expanded multivariate polynomial.
void print_overall_coeff(const print_context &c, const char *mul_sym) const
expair combine_pair_with_coeff_to_pair(const expair &p, const ex &c) const override
ex algebraic_subs_mul(const exmap &m, unsigned options) const
ex eval_ncmul(const exvector &v) const override
bool has(const ex &other, unsigned options=0) const override
Test for occurrence of a pattern.
ex normal(exmap &repl, exmap &rev_lookup, lst &modifier) const override
Implementation of ex::normal() for a product.
numeric integer_content() const override
numeric max_coefficient() const override
Implementation ex::max_coefficient().
Non-commutative product of expressions.
This class is a wrapper around CLN-numbers within the GiNaC class hierarchy.
This class holds a two-component object, a basis and and exponent representing exponentiation.
Base class for print_contexts.
Base context for C source output.
Context for latex-parsable output.
Context for python-parsable output.
This class holds a relation consisting of two expressions and a logical relation between them.
Interface to sequences of expression pairs.
std::map< ex, ex, ex_is_less > exmap
std::vector< expair > epvector
expair-vector
GINAC_DECLARE_UNARCHIVER(add)
epvector::iterator epp
expair-vector pointer
std::vector< ex > exvector
#define GINAC_DECLARE_REGISTERED_CLASS(classname, supername)
Macro for inclusion in the declaration of each registered class.
To distinguish between different kinds of non-commutative objects.