Module: Math

Defined in:
lib/pulo/quantity/numeric_overloads.rb

Class Method Summary collapse

Class Method Details

.acos(dimless) ⇒ Object



35
36
37
38
39
40
41
# File 'lib/pulo/quantity/numeric_overloads.rb', line 35

def acos(dimless)
  if dimless.is_a?(Pulo::Dimensionless)
    Pulo::Angle.radians(self.old_acos(dimless.n.value.clamp(-1,1)))
  else
    self.old_acos(dimless)
  end
end

.asin(dimless) ⇒ Object



53
54
55
56
57
58
59
# File 'lib/pulo/quantity/numeric_overloads.rb', line 53

def asin(dimless)
  if dimless.is_a?(Pulo::Dimensionless)
    Pulo::Angle.radians(self.old_asin(dimless.n.value.clamp(-1,1)))
  else
    self.old_asin(dimless)
  end
end

.atan(dimless) ⇒ Object



71
72
73
74
75
76
77
# File 'lib/pulo/quantity/numeric_overloads.rb', line 71

def atan(dimless)
  if dimless.is_a?(Pulo::Dimensionless)
    Pulo::Angle.radians(self.old_tan(dimless.n.value))
  else
    self.old_atan(dimless)
  end
end

.cos(angle) ⇒ Object



26
27
28
29
30
31
32
# File 'lib/pulo/quantity/numeric_overloads.rb', line 26

def cos(angle)
  if angle.is_a?(Pulo::Angle)
    Pulo::Dimensionless.n(self.old_cos(angle.radians.value))
  else
    self.old_cos(angle)
  end
end

.old_acosObject



34
# File 'lib/pulo/quantity/numeric_overloads.rb', line 34

alias :old_acos :acos

.old_asinObject



52
# File 'lib/pulo/quantity/numeric_overloads.rb', line 52

alias :old_asin :asin

.old_atanObject



70
# File 'lib/pulo/quantity/numeric_overloads.rb', line 70

alias :old_atan :atan

.old_cosObject



25
# File 'lib/pulo/quantity/numeric_overloads.rb', line 25

alias :old_cos :cos

.old_sinObject



43
# File 'lib/pulo/quantity/numeric_overloads.rb', line 43

alias :old_sin :sin

.old_sqrtObject



16
# File 'lib/pulo/quantity/numeric_overloads.rb', line 16

alias :old_sqrt :sqrt

.old_tanObject



61
# File 'lib/pulo/quantity/numeric_overloads.rb', line 61

alias :old_tan :tan

.sin(angle) ⇒ Object



44
45
46
47
48
49
50
# File 'lib/pulo/quantity/numeric_overloads.rb', line 44

def sin(angle)
  if angle.is_a?(Pulo::Angle)
    Pulo::Dimensionless.n(self.old_sin(angle.radians.value))
  else
    self.old_sin(angle)
  end
end

.sqrt(val) ⇒ Object



17
18
19
20
21
22
23
# File 'lib/pulo/quantity/numeric_overloads.rb', line 17

def sqrt(val)
  if val.is_a?(Pulo::Quantity)
    val.rt(2)
  else
    self.old_sqrt(val)
  end
end

.tan(angle) ⇒ Object



62
63
64
65
66
67
68
# File 'lib/pulo/quantity/numeric_overloads.rb', line 62

def tan(angle)
  if angle.is_a?(Pulo::Angle)
    Pulo::Dimensionless.n(self.old_tan(angle.radians.value))
  else
    self.old_tan(angle)
  end
end