class Keisan::AST::UnaryMinus
Public Class Methods
symbol()
click to toggle source
# File lib/keisan/ast/unary_minus.rb, line 12 def self.symbol :"-" end
Public Instance Methods
differentiate(variable, context = nil)
click to toggle source
# File lib/keisan/ast/unary_minus.rb, line 30 def differentiate(variable, context = nil) context ||= Context.new Times.new([ -1.to_node, child.differentiate(variable, context) ]).simplify(context) end
evaluate(context = nil)
click to toggle source
# File lib/keisan/ast/unary_minus.rb, line 8 def evaluate(context = nil) -child.evaluate(context) end
simplify(context = nil)
click to toggle source
# File lib/keisan/ast/unary_minus.rb, line 16 def simplify(context = nil) context ||= Context.new case child when Number Number.new(-child.value(context)).simplify(context) else Times.new([ Number.new(-1), child ]).simplify(context) end end
value(context = nil)
click to toggle source
# File lib/keisan/ast/unary_minus.rb, line 4 def value(context = nil) return -1 * child.value(context) end