Class: Dydx::Algebra::Inverse

Inherits:
Object
  • Object
show all
Includes:
Operator::Inverse, Helper
Defined in:
lib/dydx/algebra.rb,
lib/dydx/algebra/inverse.rb

Constant Summary

Constants included from Helper

Helper::INVERSE_OPE_RELATION, Helper::SUPER_OPE_RELATION

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Helper

#==, #combinable?, #distributable?, #distributive?, #formula?, #inverse?, #like_term?, #minus1?, #multiple_of?, #negative?, #num?, #one?, #rest, #to_numeric, #zero?

Constructor Details

#initialize(x, operator) ⇒ Inverse

Returns a new instance of Inverse.



7
8
9
# File 'lib/dydx/algebra/inverse.rb', line 7

def initialize(x, operator)
  @x, @operator = x, operator
end

Instance Attribute Details

#operatorObject

Returns the value of attribute operator.



5
6
7
# File 'lib/dydx/algebra/inverse.rb', line 5

def operator
  @operator
end

#xObject

Returns the value of attribute x.



5
6
7
# File 'lib/dydx/algebra/inverse.rb', line 5

def x
  @x
end

Instance Method Details

#differentiate(sym = :x) ⇒ Object Also known as: d



32
33
34
35
36
37
38
39
# File 'lib/dydx/algebra/inverse.rb', line 32

def differentiate(sym = :x)
  case operator
  when :+
    inverse(x.differentiate(sym), :+)
  when :*
    inverse(x.differentiate(sym) * inverse(x ** 2, :*), :+)
  end
end

#subst(hash = {}) ⇒ Object



18
19
20
21
22
23
# File 'lib/dydx/algebra/inverse.rb', line 18

def subst(hash = {})
  case operator
  when :+ then x.subst(hash) * -1
  when :* then x.subst(hash) ** -1
  end
end

#to_fObject



25
26
27
28
29
30
# File 'lib/dydx/algebra/inverse.rb', line 25

def to_f
  case operator
  when :+ then x.to_f * -1
  when :* then x.to_f ** -1
  end
end

#to_sObject



11
12
13
14
15
16
# File 'lib/dydx/algebra/inverse.rb', line 11

def to_s
  case operator
  when :+ then "( - #{x} )"
  when :* then "( 1 / #{x} )"
  end
end