summaryrefslogtreecommitdiff
path: root/impl/Operator.hpp
diff options
context:
space:
mode:
authorCarlo Zancanaro <carlo@pc-4w14-0.cs.usyd.edu.au>2012-07-09 14:22:07 +1000
committerCarlo Zancanaro <carlo@pc-4w14-0.cs.usyd.edu.au>2012-07-09 14:22:07 +1000
commit8040a5fd511912cb2141e46e5ca9eb1ab766133e (patch)
tree4a0de1a1e9c65f08060eb5b25a0326faf433976a /impl/Operator.hpp
parent049a16d1b1a683487a0c17014e9f7c477820a132 (diff)
Fix a few bugs and add a new example system.
Diffstat (limited to 'impl/Operator.hpp')
-rw-r--r--impl/Operator.hpp17
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>()) {