diff options
author | Carlo Zancanaro <carlo@pc-4w14-0.cs.usyd.edu.au> | 2012-07-09 14:22:07 +1000 |
---|---|---|
committer | Carlo Zancanaro <carlo@pc-4w14-0.cs.usyd.edu.au> | 2012-07-09 14:22:07 +1000 |
commit | 8040a5fd511912cb2141e46e5ca9eb1ab766133e (patch) | |
tree | 4a0de1a1e9c65f08060eb5b25a0326faf433976a /impl/Operator.hpp | |
parent | 049a16d1b1a683487a0c17014e9f7c477820a132 (diff) |
Fix a few bugs and add a new example system.
Diffstat (limited to 'impl/Operator.hpp')
-rw-r--r-- | impl/Operator.hpp | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/impl/Operator.hpp b/impl/Operator.hpp index 3072abe..49507c4 100644 --- a/impl/Operator.hpp +++ b/impl/Operator.hpp @@ -92,6 +92,23 @@ struct Subtraction : public Operator<Domain> { }; template<typename Domain> +struct Multiplication : public Operator<Domain> { + virtual Domain eval(const std::vector<Domain>& arguments) const { + Domain result = 1; + for (auto it = arguments.begin(), + end = arguments.end(); + it != end; + ++it) { + result *= *it; + } + return result; + } + void print(std::ostream& cout) const { + cout << "mult"; + } +}; + +template<typename Domain> struct Comma : public Operator<Domain> { virtual Domain eval(const std::vector<Domain>& arguments) const { if (arguments[0] == -infinity<Domain>()) { |