diff options
author | HombreLaser <sebastian-440@live.com> | 2022-04-24 11:19:49 -0500 |
---|---|---|
committer | HombreLaser <sebastian-440@live.com> | 2022-04-24 11:19:49 -0500 |
commit | c399b0875b94c8f9439e317fbcdb6fce5b8f0bcb (patch) | |
tree | 014ca9f2d4c244d5a9cab01ae4826711fab057c3 /include/expressions.hpp | |
parent | c88da3e10da5ddac6eca479e3bcac8e3b26d86fa (diff) |
Añadido simplificador terminado
Diffstat (limited to 'include/expressions.hpp')
-rw-r--r-- | include/expressions.hpp | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/include/expressions.hpp b/include/expressions.hpp index 604801d..2dcf67c 100644 --- a/include/expressions.hpp +++ b/include/expressions.hpp @@ -32,8 +32,7 @@ public: virtual ~Expression() = default; std::string getRepr(); virtual Expression *diff(const Differentiator *d) = 0; - template <class E> - Expression *simplify(E *expr, const Simplifier *s); + virtual Expression *simplify(const Simplifier *s) = 0; Expression *getLeft(); Expression *getRight(); virtual float eval(int arg=0) = 0; @@ -55,6 +54,7 @@ public: ~Literal(); int getValue(); float eval(int arg=0) override; + Expression *simplify(const Simplifier *s) override; Expression *diff(const Differentiator *d) override; Expression *copy() override; protected: @@ -70,6 +70,7 @@ public: ~Function(); Expression *getArg(); float eval(int arg=0) override; + Expression *simplify(const Simplifier *s) override; Expression *diff(const Differentiator *d) override; trig_functions getFunctionName() const; Expression *copy() override; @@ -85,6 +86,7 @@ public: explicit Variable(char name); ~Variable(); float eval(int arg=0) override; + Expression *simplify(const Simplifier *s) override; Expression *diff(const Differentiator *d) override; Expression *copy() override; protected: @@ -97,6 +99,7 @@ public: ~AddExpression(); float eval(int arg=0) override; Expression *diff(const Differentiator *d) override; + Expression *simplify(const Simplifier *s) override; Expression *copy() override; }; @@ -107,6 +110,7 @@ public: float eval(int arg=0) override; Expression *copy() override; Expression *diff(const Differentiator *d) override; + Expression *simplify(const Simplifier *s) override; }; class NegationExpression : public Expression { @@ -116,6 +120,7 @@ public: float eval(int arg=0) override; Expression *copy() override; Expression *diff(const Differentiator *d) override; + Expression *simplify(const Simplifier *s) override; protected: void setRepr() override; }; @@ -127,6 +132,7 @@ public: float eval(int arg=0) override; Expression *copy() override; Expression *diff(const Differentiator *d) override; + Expression *simplify(const Simplifier *s) override; }; class MultiplicationExpression : public Expression { @@ -136,6 +142,7 @@ public: float eval(int arg=0) override; Expression *copy() override; Expression *diff(const Differentiator *d) override; + Expression *simplify(const Simplifier *s) override; }; class PowerExpression : public Expression { @@ -145,6 +152,7 @@ public: float eval(int arg=0) override; Expression *copy() override; Expression *diff(const Differentiator *d) override; + Expression *simplify(const Simplifier *s) override; }; #endif /* EXPRESSIONS_H */ |