Class: Symbolic::FunctionWrapper
- Inherits:
-
Object
- Object
- Symbolic::FunctionWrapper
show all
- Includes:
- Symbolic
- Defined in:
- lib/symbolic/function.rb
Overview
class combines a function with an argument or arguments this class is what allows functions to be used in symbolic expressions
Constant Summary
Constants included
from Symbolic
OPERATIONS
Instance Attribute Summary collapse
Instance Method Summary
collapse
Methods included from Symbolic
#*, #**, #+, #+@, #-, #-@, #/, #coerce, #factorial, #inspect, #operations, #taylor, #to_s
Constructor Details
Returns a new instance of FunctionWrapper.
63
64
65
|
# File 'lib/symbolic/function.rb', line 63
def initialize(arg, fctn)
@argument, @function = arg, fctn
end
|
Instance Attribute Details
#argument ⇒ Object
Returns the value of attribute argument.
61
62
63
|
# File 'lib/symbolic/function.rb', line 61
def argument
@argument
end
|
#function ⇒ Object
Returns the value of attribute function.
61
62
63
|
# File 'lib/symbolic/function.rb', line 61
def function
@function
end
|
Instance Method Details
#==(object) ⇒ Object
97
98
99
|
# File 'lib/symbolic/function.rb', line 97
def ==(object)
(object.function == @function and object.argument == @argument) rescue false
end
|
#detailed_operations ⇒ Object
79
80
81
|
# File 'lib/symbolic/function.rb', line 79
def detailed_operations
@argument.detailed_operations.tap {|it| it[@operation] += 1}
end
|
#diff(wrt) ⇒ Object
101
102
103
104
105
|
# File 'lib/symbolic/function.rb', line 101
def diff(wrt)
return 0 unless self.variables.member?(wrt)
@function.derivative(@argument) * @argument.diff(wrt)
end
|
#eval ⇒ Object
simply dumps @argument in to the function – no gaurentee that the function will know how to handle it. Useful in some circumstances
93
94
95
|
# File 'lib/symbolic/function.rb', line 93
def eval
@function.call(@argument)
end
|
#name ⇒ Object
67
68
69
|
# File 'lib/symbolic/function.rb', line 67
def name
@function.name
end
|
#subs(to_replace, replacement = nil) ⇒ Object
83
84
85
86
87
88
89
|
# File 'lib/symbolic/function.rb', line 83
def subs(to_replace, replacement=nil)
if replacement == nil and to_replace.is_a?(Hash)
super(to_replace)
else
@function[@argument.subs(to_replace, replacement)]
end
end
|
#value ⇒ Object
71
72
73
|
# File 'lib/symbolic/function.rb', line 71
def value
@function.call(@argument.value)
end
|
#variables ⇒ Object
75
76
77
|
# File 'lib/symbolic/function.rb', line 75
def variables
@argument.variables
end
|