class Phys::BaseUnit

BaseUnit is a class to represent units defined by “!” in the data form of GNU units. It includes SI units and dimensionless units such as radian.

Attributes

dimension_value[R]

Dimension value. Returns PI number for pi dimension, otherwise returns one. @return [Numeric] @example

Phys::Unit["pi"].dimension_value #=> 3.141592653589793

Public Class Methods

define(name,expr,dimval=nil) click to toggle source
# File lib/phys/units/unit.rb, line 567
def self.define(name,expr,dimval=nil)
  if LIST[name]
    warn "unit definition is overwritten: #{name}" if debug
  end
  LIST[name] = self.new(expr,name,dimval)
end
new(expr,name,dimval=nil) click to toggle source
# File lib/phys/units/unit.rb, line 574
def initialize(expr,name,dimval=nil)
  case name
  when String
    @name = name.strip
    @factor = 1
    @dim = {@name=>1}
    @dim.default = 0
    @expr = nil
    if String===expr && /!dimensionless/ =~ expr
      @dimensionless = true
    end
    @dimension_value = dimval || 1
  else
    raise ArgumentError,"Second argument must be string: #{name}"
  end
end

Public Instance Methods

dimensionless?() click to toggle source
# File lib/phys/units/unit.rb, line 595
def dimensionless?
  @dimensionless
end
dimensionless_deleted() click to toggle source

@visibility private

# File lib/phys/units/unit.rb, line 600
def dimensionless_deleted
  if @dimensionless
    {}
  else
   @dim.dup
  end
end
use_dimension() click to toggle source

@visibility private

# File lib/phys/units/unit.rb, line 592
def use_dimension
end