Program Listing for File mul.h¶
↰ Return to documentation for file (symengine/symengine/mul.h
)
#ifndef SYMENGINE_MUL_H
#define SYMENGINE_MUL_H
#include <symengine/basic.h>
namespace SymEngine
{
class Mul : public Basic
{
private:
RCP<const Number> coef_;
map_basic_basic
dict_;
public:
IMPLEMENT_TYPEID(SYMENGINE_MUL)
Mul(const RCP<const Number> &coef, map_basic_basic &&dict);
virtual hash_t __hash__() const;
virtual bool __eq__(const Basic &o) const;
virtual int compare(const Basic &o) const;
// Performs canonicalization first:
static RCP<const Basic> from_dict(const RCP<const Number> &coef,
map_basic_basic &&d);
static void dict_add_term(map_basic_basic &d, const RCP<const Basic> &exp,
const RCP<const Basic> &t);
static void dict_add_term_new(const Ptr<RCP<const Number>> &coef,
map_basic_basic &d,
const RCP<const Basic> &exp,
const RCP<const Basic> &t);
static void as_base_exp(const RCP<const Basic> &self,
const Ptr<RCP<const Basic>> &exp,
const Ptr<RCP<const Basic>> &base);
void as_two_terms(const Ptr<RCP<const Basic>> &a,
const Ptr<RCP<const Basic>> &b) const;
void power_num(const Ptr<RCP<const Number>> &coef, map_basic_basic &d,
const RCP<const Number> &exp) const;
bool is_canonical(const RCP<const Number> &coef,
const map_basic_basic &dict) const;
virtual vec_basic get_args() const;
inline const RCP<const Number> &get_coef() const
{
return coef_;
}
inline const map_basic_basic &get_dict() const
{
return dict_;
}
};
RCP<const Basic> mul(const RCP<const Basic> &a, const RCP<const Basic> &b);
RCP<const Basic> mul(const vec_basic &a);
RCP<const Basic> div(const RCP<const Basic> &a, const RCP<const Basic> &b);
RCP<const Basic> neg(const RCP<const Basic> &a);
} // SymEngine
#endif