6 #ifndef SYMENGINE_MUL_H
7 #define SYMENGINE_MUL_H
76 RCP<const Number> coef_;
84 Mul(
const RCP<const Number> &coef, map_basic_basic &&dict);
86 hash_t __hash__()
const override;
91 bool __eq__(
const Basic &o)
const override;
92 int compare(
const Basic &o)
const override;
96 static RCP<const Basic> from_dict(
const RCP<const Number> &coef,
99 static void dict_add_term(map_basic_basic &d,
const RCP<const Basic> &
exp,
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);
113 void as_two_terms(
const Ptr<RCP<const Basic>> &a,
114 const Ptr<RCP<const Basic>> &b)
const;
116 void power_num(
const Ptr<RCP<const Number>> &coef, map_basic_basic &d,
117 const RCP<const Number> &
exp)
const;
120 bool is_canonical(
const RCP<const Number> &coef,
121 const map_basic_basic &dict)
const;
123 vec_basic get_args()
const override;
125 inline const RCP<const Number> &get_coef()
const
129 inline const map_basic_basic &get_dict()
const
135 SYMENGINE_EXPORT RCP<const Basic>
mul(
const RCP<const Basic> &a,
136 const RCP<const Basic> &b);
137 SYMENGINE_EXPORT RCP<const Basic>
mul(
const vec_basic &a);
139 SYMENGINE_EXPORT RCP<const Basic>
div(
const RCP<const Basic> &a,
140 const RCP<const Basic> &b);
142 SYMENGINE_EXPORT 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.
map_basic_basic dict_
The coefficient (e.g. 2 in 2*x*y)
Main namespace for SymEngine package.
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.
RCP< const Basic > exp(const RCP< const Basic > &x)
Returns the natural exponential function E**x = pow(E, x)
RCP< const Basic > div(const RCP< const Basic > &a, const RCP< const Basic > &b)
Division.