Module: DualMath
- Included in:
- Math
- Defined in:
- lib/differentiation/ext/math.rb
Instance Method Summary collapse
Instance Method Details
#cos(x) ⇒ Object
12 13 14 15 16 17 18 |
# File 'lib/differentiation/ext/math.rb', line 12 def cos(x) if x.is_a?(Differentiation::DualNumber) Differentiation::DualNumber.new(super(x.n), ->(var){ -1.0 * sin(x.n) * x.derivative(var) }, named_variables: x.named_variables) else super(x) end end |
#exp(x) ⇒ Object
28 29 30 31 32 33 34 |
# File 'lib/differentiation/ext/math.rb', line 28 def exp(x) if x.is_a?(Differentiation::DualNumber) Differentiation::DualNumber.new(super(x.n), ->(var){ exp(x.n) * x.derivative(var) }, named_variables: x.named_variables) else super(x) end end |
#sin(x) ⇒ Object
4 5 6 7 8 9 10 |
# File 'lib/differentiation/ext/math.rb', line 4 def sin(x) if x.is_a?(Differentiation::DualNumber) Differentiation::DualNumber.new(super(x.n), ->(var){ cos(x.n) * x.derivative(var) }, named_variables: x.named_variables) else super(x) end end |
#tan(x) ⇒ Object
20 21 22 23 24 25 26 |
# File 'lib/differentiation/ext/math.rb', line 20 def tan(x) if x.is_a?(Differentiation::DualNumber) Differentiation::DualNumber.new(super(x.n), ->(var){ ((1.0 / cos(x.n)) ** 2) * x.derivative(var) }, named_variables: x.named_variables) else super(x) end end |