Class: SyMath::Equation

Inherits:
Operator show all
Defined in:
lib/symath/equation.rb

Instance Attribute Summary

Attributes inherited from Operator

#args, #definition

Instance Method Summary collapse

Methods inherited from Operator

#<=>, #==, #args_assoc, #arity, compose_with_simplify, #dump, #evaluate, #hash, #is_associative?, #is_commutative?, #is_constant?, #name, #reduce, #replace, #variables

Methods inherited from Value

#<, #<=, #<=>, #>, #>=, #^, #add, #base, compose_with_simplify, create, #deep_clone, #div, #dump, #evaluate, #exponent, #factors, #inspect, #inv, #is_divisor_factor?, #is_finite?, #is_nan?, #is_negative?, #is_negative_number?, #is_number?, #is_positive?, #is_prod_exp?, #is_sum_exp?, #is_unit_quaternion?, #is_zero?, #mul, #neg, #power, #reduce, #reduce_modulo_sign, #sign, #sub, #terms, #to_m, #type, #wedge

Methods included from Operation::Exterior

#flat, #hodge, #sharp

Methods included from Operation::Integration

#anti_derivative, #get_linear_constants, initialize, #int_constant, #int_failure, #int_function, #int_inv, #int_pattern, #int_power, #int_product, #int_sum, #integral_bounds

Methods included from Operation::Differential

#_d_wedge, #d, #d_failure, #d_fraction, #d_function, #d_function_def, #d_power, #d_product, initialize

Methods included from Operation

#iterate, #recurse

Methods included from Operation::DistributiveLaw

#combfrac_add_term, #combfrac_sum, #combine_fractions, #expand, #expand_product, #expand_single_pass, #factorize, #factorize_integer_poly, #factorize_simple, #has_fractional_terms?

Methods included from Operation::Normalization

#combine_factors, #compare_factors_and_swap, #normalize, #normalize_matrix, #normalize_power, #normalize_product, #normalize_single_pass, #normalize_sum, #order_product, #product_on_fraction_form, #reduce_constant_factors, #replace_combined_factors, #swap_factors

Methods included from Operation::Match

#build_assoc_op, #match, #match_assoc, #match_replace

Constructor Details

#initialize(arg1, arg2) ⇒ Equation

Returns a new instance of Equation.



6
7
8
# File 'lib/symath/equation.rb', line 6

def initialize(arg1, arg2)
  super('=', [arg1, arg2])
end

Instance Method Details

#*(other) ⇒ Object



30
31
32
33
34
35
36
# File 'lib/symath/equation.rb', line 30

def *(other)
  if other.is_a?(SyMath::Equation)
    raise 'Cannot multiply two equations'
  else
    return eq(self.args[0] * other, self.args[1] * other)
  end
end

#**(other) ⇒ Object



46
47
48
49
50
51
52
# File 'lib/symath/equation.rb', line 46

def **(other)
  if other.is_a?(SyMath::Equation)
    raise 'Cannot use equation as exponent'
  else
    return eq(self.args[0]**other, self.args[1]**other)
  end
end

#+(other) ⇒ Object



10
11
12
13
14
15
16
# File 'lib/symath/equation.rb', line 10

def +(other)
  if other.is_a?(SyMath::Equation)
    return eq(self.args[0] + other.args[0], self.args[1] + other.args[1])
  else
    return eq(self.args[0] + other, self.args[1] + other)
  end
end

#-(other) ⇒ Object



18
19
20
21
22
23
24
# File 'lib/symath/equation.rb', line 18

def -(other)
  if other.is_a?(SyMath::Equation)
    return eq(self.args[0] - other.args[0], self.args[1] - other.args[1])
  else
    return eq(self.args[0] - other, self.args[1] - other)
  end
end

#-@Object



26
27
28
# File 'lib/symath/equation.rb', line 26

def -@()
  return eq(-self.args[0], -self.args[1])
end

#/(other) ⇒ Object



38
39
40
41
42
43
44
# File 'lib/symath/equation.rb', line 38

def /(other)
  if other.is_a?(SyMath::Equation)
    raise 'Cannot divide by equation'
  else
    return eq(self.args[0] / other, self.args[1] / other)
  end
end

#to_latexObject



58
59
60
# File 'lib/symath/equation.rb', line 58

def to_latex()
  return @args[0].to_latex + ' = ' + @args[1].to_latex
end

#to_sObject



54
55
56
# File 'lib/symath/equation.rb', line 54

def to_s()
  return "#{@args[0]} = #{@args[1]}"
end