lib/dydx/algebra/operator/parts/base.rb in dydx-0.0.5 vs lib/dydx/algebra/operator/parts/base.rb in dydx-0.0.6
- old
+ new
@@ -3,38 +3,11 @@
module Operator
module Parts
module Base
%w(+ * ^).map(&:to_sym).each do |operator|
define_method(operator) do |x|
- if self == x && operator != :^
- case operator
- when :+
- _(2) * self
- when :*
- self ^ _(2)
- end
- elsif %w(+ *).map(&:to_sym).include?(operator) && x.send("#{to_str(operator)}?")
- if combinable?(x.f, operator)
- send(operator, x.f).send(operator, x.g)
- elsif combinable?(x.g, operator)
- send(operator, x.g).send(operator, x.f)
- else
- ::Algebra::Formula.new(self, x, operator.to_sym)
- end
- elsif x.subtrahend? && %w(* ^).map(&:to_sym).include?(operator)
- inverse(::Algebra::Formula.new(self, x.x, operator.to_sym), :+)
- else
- ::Algebra::Formula.new(self, x, operator.to_sym)
- end
+ ::Algebra::Formula.new(self, x, operator.to_sym)
end
- end
-
- def to_str(operator)
- {
- addition: :+,
- multiplication: :*,
- exponentiation: :^
- }.key(operator)
end
end
end
end
end