Module: Symbolic

Included in:
Factor, Function, Summand, Variable
Defined in:
lib/symbolic.rb,
lib/symbolic/coerced.rb,
lib/symbolic/variable.rb,
lib/symbolic/statistics.rb

Defined Under Namespace

Modules: Math Classes: Coerced, Factor, Function, Summand, Variable

Instance Method Summary collapse

Instance Method Details

#*(var) ⇒ Object



33
34
35
# File 'lib/symbolic.rb', line 33

def *(var)
  Factor.multiply self, var
end

#**(var) ⇒ Object



41
42
43
# File 'lib/symbolic.rb', line 41

def **(var)
  Factor.exponent self, var
end

#+(var) ⇒ Object



25
26
27
# File 'lib/symbolic.rb', line 25

def +(var)
  Summand.add self, var
end

#+@Object



21
22
23
# File 'lib/symbolic.rb', line 21

def +@
  self
end

#-(var) ⇒ Object



29
30
31
# File 'lib/symbolic.rb', line 29

def -(var)
  Summand.subtract self, var
end

#-@Object



17
18
19
# File 'lib/symbolic.rb', line 17

def -@
  Factor.multiply self, -1
end

#/(var) ⇒ Object



37
38
39
# File 'lib/symbolic.rb', line 37

def /(var)
  Factor.divide self, var
end

#coerce(numeric) ⇒ Object



45
46
47
# File 'lib/symbolic.rb', line 45

def coerce(numeric)
  return Coerced.new(self), numeric
end

#operationsObject



2
3
4
5
6
7
8
9
10
11
12
# File 'lib/symbolic/statistics.rb', line 2

def operations
  formula = to_s
  stats = {}
  stats['+'] = formula.scan(/\+/).size
  stats['-'] = formula.scan(/[^(]-/).size
  stats['*'] = formula.scan(/[^*]\*[^*]/).size
  stats['/'] = formula.scan(/\//).size
  stats['**']= formula.scan(/\*\*/).size
  stats['-@']= formula.scan(/\(-/).size + formula.scan(/^-/).size
  stats
end

#undefined_variablesObject



49
50
51
# File 'lib/symbolic.rb', line 49

def undefined_variables
  variables.select {|it| it.value.nil? }
end