Class: Division
Overview
Implements the division operation in SymCalc
Instance Attribute Summary collapse
Instance Method Summary
collapse
Methods inherited from Equation
#*, #**, #+, #-, #/, #coerce, #derivative, #eval, #inspect, #simplify, #to_s
Constructor Details
#initialize(lside, rside) ⇒ Division
Returns a new instance of Division.
492
493
494
495
|
# File 'lib/symcalc.rb', line 492
def initialize lside, rside
@lside = lside
@rside = rside
end
|
Instance Attribute Details
#lside ⇒ Object
Returns the value of attribute lside.
490
491
492
|
# File 'lib/symcalc.rb', line 490
def lside
@lside
end
|
#rside ⇒ Object
Returns the value of attribute rside.
490
491
492
|
# File 'lib/symcalc.rb', line 490
def rside
@rside
end
|
Instance Method Details
#==(eq) ⇒ Object
520
521
522
523
524
525
526
|
# File 'lib/symcalc.rb', line 520
def == eq
if eq.is_a? Division
return (eq.lside == @rside) && (eq.lside == @lside)
else
return false
end
end
|
#__derivative__(variable: nil) ⇒ Object
505
506
507
508
|
# File 'lib/symcalc.rb', line 505
def __derivative__ variable: nil
return (@lside * @rside ** (-1)).derivative(variable: variable)
end
|
#__eval__(var_hash) ⇒ Object
501
502
503
|
# File 'lib/symcalc.rb', line 501
def __eval__ var_hash
return @lside.eval(var_hash) / @rside.eval(var_hash)
end
|
#__get_m_elements__(el_hash) ⇒ Object
528
529
530
531
532
533
534
535
536
537
538
539
|
# File 'lib/symcalc.rb', line 528
def __get_m_elements__ el_hash
mult = @lside.__get_m_elements__(el_hash)
div = @rside.__get_m_elements__({})
div.each do |k, v|
if mult.keys.include? k
mult[k] -= v
else
mult[k] = -v
end
end
return mult
end
|
#__simplify__ ⇒ Object
510
511
512
513
514
515
516
517
518
|
# File 'lib/symcalc.rb', line 510
def __simplify__
@lside = @lside.__simplify__
@rside = @rside.__simplify__
if @lside == EquationValue.new(0)
return EquationValue.new(0)
else
return self
end
end
|
#all_variables ⇒ Object
542
543
544
|
# File 'lib/symcalc.rb', line 542
def all_variables
return (@lside.all_variables + @rside.all_variables).uniq
end
|
#display ⇒ Object
497
498
499
|
# File 'lib/symcalc.rb', line 497
def display
return "(#{@lside.display}) / (#{@rside.display})"
end
|