simplify.h
1 #ifndef SYMENGINE_SIMPLIFY_H
2 #define SYMENGINE_SIMPLIFY_H
3 
4 #include <symengine/visitor.h>
5 #include <symengine/basic.h>
6 #include <symengine/assumptions.h>
7 
8 namespace SymEngine
9 {
10 
11 class SYMENGINE_EXPORT SimplifyVisitor
12  : public BaseVisitor<SimplifyVisitor, TransformVisitor>
13 {
14 private:
15  std::pair<RCP<const Basic>, RCP<const Basic>>
16  simplify_pow(const RCP<const Basic> &e, const RCP<const Basic> &b);
17 
18 public:
19  using TransformVisitor::bvisit;
20 
22 
23  void bvisit(const Mul &x);
24  void bvisit(const Pow &x);
25  void bvisit(const OneArgFunction &x);
26 };
27 
28 SYMENGINE_EXPORT
29 RCP<const Basic> simplify(const RCP<const Basic> &x,
30  const Assumptions *assumptions = nullptr);
31 
32 } // namespace SymEngine
33 
34 #endif
The base class for SymEngine.
Main namespace for SymEngine package.
Definition: add.cpp:19