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
|
#inspect ⇒ Object
48
49
50
|
# File 'lib/symbolic.rb', line 48
def inspect
"Symbolic(#{to_s})"
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
|