Module: Symbolic

Included in:
Expression, Function, Variable
Defined in:
lib/symbolic/summands.rb,
lib/symbolic.rb,
lib/symbolic/coerced.rb,
lib/symbolic/factors.rb,
lib/symbolic/variable.rb,
lib/symbolic/expression.rb,
lib/symbolic/statistics.rb

Overview

TODO: 2*symbolic is a 2 power of symbolic Summand

Defined Under Namespace

Modules: Math Classes: Coerced, Expression, Factors, Function, Summands, Variable

Instance Method Summary collapse

Instance Method Details

#*(var) ⇒ Object



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

def *(var)
  Factors.add self, var
end

#**(var) ⇒ Object



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

def **(var)
  Factors.power self, var
end

#+(var) ⇒ Object



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

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

#+@Object



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

def +@
  self
end

#-(var) ⇒ Object



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

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

#-@Object



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

def -@
  Factors.add self, -1
end

#/(var) ⇒ Object



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

def /(var)
  Factors.subtract self, var
end

#coerce(numeric) ⇒ Object



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

def coerce(numeric)
  [Coerced.new(self), numeric]
end

#inspectObject



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

def inspect
  "Symbolic(#{to_s})"
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