1 #ifndef SYMENGINE_MATRICES_MATRIX_MUL_H
2 #define SYMENGINE_MATRICES_MATRIX_MUL_H
6 #include <symengine/matrices/matrix_expr.h>
7 #include <symengine/matrices/size.h>
15 RCP<const Basic> scalar_;
20 : scalar_(scalar), factors_(factors)
22 SYMENGINE_ASSIGN_TYPEID();
23 SYMENGINE_ASSERT(is_canonical(scalar, factors));
30 bool is_canonical(
const RCP<const Basic> &scalar,
35 if (!
eq(*scalar_, *one)) {
41 inline const vec_basic &get_factors()
const
45 inline const RCP<const Basic> &get_scalar()
const
51 RCP<const MatrixExpr> matrix_mul(
const vec_basic &factors);
The base class for SymEngine.
#define IMPLEMENT_TYPEID(SYMENGINE_ID)
Inline members and functions.
The lowest unit of symbolic representation.
bool __eq__(const Basic &o) const override
Test equality.
hash_t __hash__() const override
vec_basic get_args() const override
Returns the list of arguments.
int compare(const Basic &o) const override
Main namespace for SymEngine package.
bool eq(const Basic &a, const Basic &b)
Checks equality for a and b