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
|
#operations ⇒ Object
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_variables ⇒ Object
49
50
51
|
# File 'lib/symbolic.rb', line 49
def undefined_variables
variables.select {|it| it.value.nil? }
end
|