6 #ifndef SYMENGINE_MUL_H
7 #define SYMENGINE_MUL_H
76 RCP<const Number> coef_;
96 static RCP<const Basic>
from_dict(
const RCP<const Number> &coef,
100 const RCP<const Basic> &t);
101 static void dict_add_term_new(
const Ptr<RCP<const Number>> &coef,
103 const RCP<const Basic> &
exp,
104 const RCP<const Basic> &t);
106 static void as_base_exp(
const RCP<const Basic> &
self,
107 const Ptr<RCP<const Basic>> &
exp,
108 const Ptr<RCP<const Basic>> &base);
114 const Ptr<RCP<const Basic>> &b)
const;
117 const RCP<const Number> &
exp)
const;
125 inline const RCP<const Number> &get_coef()
const
135 RCP<const Basic>
mul(
const RCP<const Basic> &a,
const RCP<const Basic> &b);
136 RCP<const Basic>
mul(
const vec_basic &a);
138 RCP<const Basic>
div(
const RCP<const Basic> &a,
const RCP<const Basic> &b);
140 RCP<const Basic>
neg(
const RCP<const Basic> &a);
The base class for SymEngine.
#define IMPLEMENT_TYPEID(SYMENGINE_ID)
Inline members and functions.
The lowest unit of symbolic representation.
bool is_canonical(const RCP< const Number > &coef, const map_basic_basic &dict) const
bool __eq__(const Basic &o) const override
int compare(const Basic &o) const override
Mul(const RCP< const Number > &coef, map_basic_basic &&dict)
static void as_base_exp(const RCP< const Basic > &self, const Ptr< RCP< const Basic >> &exp, const Ptr< RCP< const Basic >> &base)
Convert to a base and exponent form.
static void dict_add_term(map_basic_basic &d, const RCP< const Basic > &exp, const RCP< const Basic > &t)
Add terms to dict.
void as_two_terms(const Ptr< RCP< const Basic >> &a, const Ptr< RCP< const Basic >> &b) const
Rewrite as 2 terms.
static RCP< const Basic > from_dict(const RCP< const Number > &coef, map_basic_basic &&d)
Create a Mul from a dict.
void power_num(const Ptr< RCP< const Number >> &coef, map_basic_basic &d, const RCP< const Number > &exp) const
Power all terms with the exponent exp
vec_basic get_args() const override
Returns the list of arguments.
map_basic_basic dict_
The coefficient (e.g. 2 in 2*x*y)
hash_t __hash__() const override
Main namespace for SymEngine package.
RCP< const Basic > div(const RCP< const Basic > &a, const RCP< const Basic > &b)
Division.
RCP< const Basic > exp(const RCP< const Basic > &x)
Returns the natural exponential function E**x = pow(E, x)
RCP< const Basic > mul(const RCP< const Basic > &a, const RCP< const Basic > &b)
Multiplication.
RCP< const Basic > neg(const RCP< const Basic > &a)
Negation.