Commit 7eb83223 authored by Chinmay Garde's avatar Chinmay Garde

Dry up multiplication and division of equation members

parent 5288d466
......@@ -9,14 +9,6 @@ class ConstantMember extends EquationMember {
ConstantMember(this.value);
Expression asExpression() => new Expression([], this.value);
EquationMember operator *(double m) {
return new ConstantMember(this.value * m);
}
EquationMember operator /(double m) {
return new ConstantMember(this.value / m);
}
}
ConstantMember CM(num value) {
......
......@@ -16,4 +16,8 @@ abstract class EquationMember {
Expression operator +(EquationMember m) => asExpression() + m;
Expression operator -(EquationMember m) => asExpression() - m;
Expression operator *(double m) => asExpression() * m;
Expression operator /(double m) => asExpression() / m;
}
......@@ -105,13 +105,12 @@ class Expression extends EquationMember {
EquationMember operator *(double m) {
var terms = this.terms.fold(new List<Term>(), (list, term) => list
..add(new Term(term.variable, term.coefficient * m)));
return new Expression(terms, this.constant);
return new Expression(terms, this.constant * m);
}
// TODO(csg): Figure out how to dry this up.
EquationMember operator /(double m) {
var terms = this.terms.fold(new List<Term>(), (list, term) => list
..add(new Term(term.variable, term.coefficient / m)));
return new Expression(terms, this.constant);
return new Expression(terms, this.constant / m);
}
}
......@@ -13,12 +13,4 @@ class Term extends EquationMember {
Expression asExpression() =>
new Expression([new Term(this.variable, this.coefficient)], 0.0);
EquationMember operator *(double m) {
return new Term(this.variable, this.coefficient * m);
}
EquationMember operator /(double m) {
return new Term(this.variable, this.coefficient / m);
}
}
......@@ -9,12 +9,4 @@ class Variable extends EquationMember {
Variable(this.value);
Expression asExpression() => new Expression([new Term(this, 1.0)], 0.0);
EquationMember operator *(double m) {
return new Term(this, m);
}
EquationMember operator /(double m) {
return new Term(this, 1.0 / m);
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment