40 mul(const
ex & lh, const
ex & rh);
43 mul(const
epvector & v, const
ex & oc,
bool do_index_renaming = false);
45 mul(
epvector && vp, const
ex & oc,
bool do_index_renaming = false);
46 mul(const
ex & lh, const
ex & mh, const
ex & rh);
51 bool info(
unsigned inf)
const override;
53 int degree(
const ex & s)
const override;
55 ex coeff(
const ex & s,
int n = 1)
const override;
56 bool has(
const ex & other,
unsigned options = 0)
const override;
85 ex expand(
unsigned options=0)
const override;
Lightweight wrapper for GiNaC's symbolic objects.
expairseq(const ex &lh, const ex &rh)
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.
bool expair_needs_further_processing(epp it) override
epvector expandchildren(unsigned options) const
Member-wise expand the expairs representing this sequence.
unsigned precedence() const override
Return relative operator precedence (for parenthezing output).
return_type_t return_type_tinfo() const override
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
bool can_make_flat(const expair &p) 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
expair split_ex_to_pair(const ex &e) const override
Form an expair from an ex, using the corresponding semantics.
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 recombine_pair_to_ex(const expair &p) const override
Form an ex out of an expair, using the corresponding semantics.
exvector get_free_indices() const override
Return a vector containing the free indices of an expression.
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
numeric integer_content() const override
mul(const ex &lh, const ex &rh)
numeric max_coefficient() const override
Implementation ex::max_coefficient().
This class is a wrapper around CLN-numbers within the GiNaC class hierarchy.
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.
ex real_part(const ex &thisex)
bool is_polynomial(const ex &thisex, const ex &vars)
container< std::list > lst
std::map< ex, ex, ex_is_less > exmap
std::vector< expair > epvector
expair-vector
GINAC_DECLARE_UNARCHIVER(add)
ex series(const ex &thisex, const ex &r, int order, unsigned options=0)
ex conjugate(const ex &thisex)
const numeric smod(const numeric &a_, const numeric &b_)
Modulus (in symmetric representation).
ex eval(const ex &thisex)
int degree(const ex &thisex, const ex &s)
int ldegree(const ex &thisex, const ex &s)
ex evalf(const ex &thisex)
ex normal(const ex &thisex)
ex coeff(const ex &thisex, const ex &s, int n=1)
epvector::iterator epp
expair-vector pointer
ex evalm(const ex &thisex)
bool has(const ex &thisex, const ex &pattern, unsigned options=0)
std::vector< ex > exvector
ex imag_part(const ex &thisex)
ex expand(const ex &thisex, unsigned options=0)
#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.