home *** CD-ROM | disk | FTP | other *** search
/ Programmer's ROM - The Computer Language Library / programmersrom.iso / ada / piwg / z000016.ada < prev    next >
Encoding:
Text File  |  1988-05-03  |  7.7 KB  |  219 lines

  1.  
  2. -- The combinational problem of converting from every unit to every
  3. -- other units of the same dimension is too large to be practical.
  4. --
  5. -- The compromise solution is to provide:
  6. --   MKS,     conversion of every metric unit to the corresponding MKS unit 
  7. --   MKS,     conversion of primary English unit to corresponding MKS unit
  8. --   ENGLISH, conversion of every English unit to the primary English unit
  9. --   ENGLISH, conversion of every MKS unit to corresponding primary English unit
  10. --   CONVERT, conversion from primary English unit to other English units
  11. --   CONVERT, conversion from MKS unit to other metric units
  12. --
  13. -- The overloaded function MKS returns the MKS value.
  14. --
  15. -- The overloaded function ENGLISH returns the primary English value.
  16. --
  17. -- The overloaded function CONVERT returns all units
  18. --                                         other than MKS or primary English
  19. -- 
  20. -- Note: Any of these functions may need to be called with qualification.
  21. --       Usually, MKS and ENGLISH will not require qualification.
  22. --       Almost always, CONVERT will require qualification.
  23. --
  24. --         PUT ( LENGTH_CENTIMETER' ( CONVERT ( SOME_LENGTH ) ) ) ;
  25. --
  26. --      DO NOT get the concept of units conversion confused with the
  27. --      Ada concept of type conversion. An Ada type conversion CAN NOT
  28. --      change meters to feet.
  29. --
  30. with PHYSICAL_UNITS_BASIC ; use PHYSICAL_UNITS_BASIC ;
  31. with PHYSICAL_UNITS_MECHANICAL ; use PHYSICAL_UNITS_MECHANICAL ;
  32. with PHYSICAL_UNITS_ELECTRICAL ; use PHYSICAL_UNITS_ELECTRICAL ;
  33.  
  34. package PHYSICAL_UNITS_CONVERSION_MKS is
  35.  
  36.   function MKS ( ITEM : LENGTH_ENGLISH ) return LENGTH_MKS ;
  37.  
  38.   function MKS ( ITEM : LENGTH_PICOMETER ) return LENGTH_MKS ;
  39.  
  40.   function MKS ( ITEM : LENGTH_NANOMETER ) return LENGTH_MKS ;
  41.  
  42.   function MKS ( ITEM : LENGTH_MICROMETER ) return LENGTH_MKS ;
  43.  
  44.   function MKS ( ITEM : LENGTH_MILLIMETER ) return LENGTH_MKS ;
  45.  
  46.   function MKS ( ITEM : LENGTH_CENTIMETER ) return LENGTH_MKS ;
  47.  
  48.   function MKS ( ITEM : LENGTH_DECIMETER ) return LENGTH_MKS ;
  49.  
  50.   function MKS ( ITEM : LENGTH_DECAMETER ) return LENGTH_MKS ;
  51.  
  52.   function MKS ( ITEM : LENGTH_HECTOMETER ) return LENGTH_MKS ;
  53.  
  54.   function MKS ( ITEM : LENGTH_KILOMETER ) return LENGTH_MKS ;
  55.  
  56.   function MKS ( ITEM : LENGTH_MEGAMETER ) return LENGTH_MKS ;
  57.  
  58.   function MKS ( ITEM : LENGTH_GIGAMETER ) return LENGTH_MKS ;
  59.  
  60.   function MKS ( ITEM : LENGTH_ANGSTROM ) return LENGTH_MKS ;
  61.  
  62.   function MKS ( ITEM : MASS_ENGLISH ) return MASS_MKS ;
  63.  
  64.   function MKS ( ITEM : MASS_MILLIGRAM ) return MASS_MKS ;
  65.  
  66.   function MKS ( ITEM : MASS_GRAM ) return MASS_MKS ;
  67.  
  68.   function MKS ( ITEM : MASS_TON_METRIC ) return MASS_MKS ;
  69.  
  70.   function MKS ( ITEM : TIME_PICOSECOND ) return TIME_SECOND ;
  71.  
  72.   function MKS ( ITEM : TIME_NANOSECOND ) return TIME_SECOND ;
  73.  
  74.   function MKS ( ITEM : TIME_MICROSECOND ) return TIME_SECOND ;
  75.  
  76.   function MKS ( ITEM : TIME_MILLISECOND ) return TIME_SECOND ;
  77.  
  78.   function MKS ( ITEM : TIME_CENTISECOND ) return TIME_SECOND ;
  79.  
  80.   function MKS ( ITEM : TIME_KILOSECOND ) return TIME_SECOND ;
  81.  
  82.   function MKS ( ITEM : TIME_MEGASECOND ) return TIME_SECOND ;
  83.  
  84.   function MKS ( ITEM : TIME_GIGASECOND ) return TIME_SECOND ;
  85.  
  86.   function MKS ( ITEM : TIME_MINUTE ) return TIME_SECOND ;
  87.  
  88.   function MKS ( ITEM : TIME_HOUR ) return TIME_SECOND ;
  89.  
  90.   function MKS ( ITEM : TIME_DAY ) return TIME_SECOND ;
  91.  
  92.   function MKS ( ITEM : TIME_FORTNIGHT ) return TIME_SECOND ;
  93.  
  94.   function MKS ( ITEM : TIME_MONTH ) return TIME_SECOND ;
  95.  
  96.   function MKS ( ITEM : TIME_YEAR ) return TIME_SECOND ;
  97.  
  98.   function MKS ( ITEM : TIME_DECADE ) return TIME_SECOND ;
  99.  
  100.   function MKS ( ITEM : TIME_CENTURY ) return TIME_SECOND ;
  101.  
  102.   function MKS ( ITEM : TIME_MILLENNIA ) return TIME_SECOND ;
  103.  
  104.   function MKS ( ITEM : CHARGE_AMPERE_HOURS ) return CHARGE_COULOMB ;
  105.  
  106.   function MKS ( ITEM : CHARGE_ELECTRON ) return CHARGE_COULOMB ;
  107.  
  108.   function MKS ( ITEM : CHARGE_FARADAY ) return CHARGE_COULOMB ;
  109.  
  110.   function MKS ( ITEM : TEMPERATURE_CENTIGRADE ) return TEMPERATURE_KELVIN ;
  111.  
  112.   function MKS ( ITEM : TEMPERATURE_FARENHEIT ) return TEMPERATURE_KELVIN ;
  113.  
  114.   function MKS ( ITEM : ANGLE_SECOND ) return ANGLE_RADIAN ;
  115.  
  116.   function MKS ( ITEM : ANGLE_MINUTE ) return ANGLE_RADIAN ;
  117.  
  118.   function MKS ( ITEM : ANGLE_DEGREE ) return ANGLE_RADIAN ;
  119.  
  120.   function MKS ( ITEM : ANGLE_REVOLUTION ) return ANGLE_RADIAN ;
  121.  
  122.   function MKS ( ITEM : ANGLE_BAM ) return ANGLE_RADIAN ;
  123.  
  124.   function MKS ( ITEM : AREA_ENGLISH ) return AREA_MKS ;
  125.  
  126.   function MKS ( ITEM : AREA_SQUARE_CENTIMETER ) return AREA_MKS ;
  127.  
  128.   function MKS ( ITEM : AREA_SQUARE_KILOMETER ) return AREA_MKS ;
  129.  
  130.   function MKS ( ITEM : AREA_HECTARE ) return AREA_MKS ;
  131.  
  132.   function MKS ( ITEM : VOLUME_ENGLISH ) return VOLUME_MKS ;
  133.  
  134.   function MKS ( ITEM : VOLUME_MILLILITER ) return VOLUME_MKS ;
  135.  
  136.   function MKS ( ITEM : VOLUME_LITER ) return VOLUME_MKS ;
  137.  
  138.   function MKS ( ITEM : VOLUME_KILOLITER ) return VOLUME_MKS ;
  139.  
  140.   function MKS ( ITEM : VOLUME_CUBIC_CENTIMETER ) return VOLUME_MKS ;
  141.  
  142.   function MKS ( ITEM : VELOCITY_ENGLISH ) return VELOCITY_MKS ;
  143.  
  144.   function MKS ( ITEM : VELOCITY_CENTIMETER_PER_SECOND ) return VELOCITY_MKS ;
  145.  
  146.   function MKS ( ITEM : VELOCITY_KILOMETER_PER_HOUR ) return VELOCITY_MKS ;
  147.  
  148.   function MKS ( ITEM : ACCELERATION_ENGLISH ) return ACCELERATION_MKS ;
  149.  
  150.   function MKS ( ITEM : FORCE_DYNE ) return FORCE_MKS ;
  151.  
  152.   function MKS ( ITEM : FORCE_ENGLISH ) return FORCE_MKS ;
  153.  
  154.   function MKS ( ITEM : ENERGY_ERG ) return ENERGY_MKS ;
  155.  
  156.   function MKS ( ITEM : ENERGY_GRAM_CALORIE ) return ENERGY_MKS ;
  157.  
  158.   function MKS ( ITEM : ENERGY_KILOGRAM_CALORIE ) return ENERGY_MKS ;
  159.  
  160.   function MKS ( ITEM : ENERGY_ENGLISH ) return ENERGY_MKS ;
  161.  
  162.   function MKS ( ITEM : POWER_KILOGRAM_CALORIE_PER_SECOND ) return POWER_MKS ;
  163.  
  164.   function MKS ( ITEM : POWER_KILOGRAN_CALORIE_PER_MINUTE ) return POWER_MKS ;
  165.  
  166.   function MKS ( ITEM : POWER_HORSEPOWER_METRIC ) return POWER_MKS ;
  167.  
  168.   function MKS ( ITEM : DENSITY_ENGLISH ) return DENSITY_MKS ;
  169.  
  170.   function MKS ( ITEM : FLOW_RATE_ENGLISH ) return FLOW_RATE_MKS ;
  171.  
  172.   function MKS ( ITEM : PRESSURE_ENGLISH ) return PRESSURE_MKS ;
  173.  
  174.   function MKS ( ITEM : PRESSURE_ATMOSPHERE_STANDARD ) return PRESSURE_MKS ;
  175.  
  176.   function MKS ( ITEM : PRESSURE_MILLIMETER_OF_MERCURY ) return PRESSURE_MKS ;
  177.  
  178.   function MKS ( ITEM : PRESSURE_BAR ) return PRESSURE_MKS ;
  179.  
  180.   function MKS ( ITEM : PRESSURE_MILLIBAR ) return PRESSURE_MKS ;
  181.  
  182.   function MKS ( ITEM : PRESSURE_TORR ) return PRESSURE_MKS ;
  183.  
  184.   function MKS ( ITEM : CURRENT_MILLIAMPERE ) return CURRENT_AMPERE ;
  185.  
  186.   function MKS ( ITEM : CURRENT_MICROAMPERE ) return CURRENT_AMPERE ;
  187.  
  188.   function MKS ( ITEM : CURRENT_ABAMPERE ) return CURRENT_AMPERE ;
  189.  
  190.   function MKS ( ITEM : CURRENT_STATAMPERE ) return CURRENT_AMPERE ;
  191.  
  192.   function MKS ( ITEM : VOLTAGE_MILLIVOLT ) return VOLTAGE_VOLT ;
  193.  
  194.   function MKS ( ITEM : VOLTAGE_MICROVOLT ) return VOLTAGE_VOLT ;
  195.  
  196.   function MKS ( ITEM : VOLTAGE_KILOVOLT ) return VOLTAGE_VOLT ;
  197.  
  198.   function MKS ( ITEM : RESISTANCE_MILLIOHM ) return RESISTANCE_OHM ;
  199.  
  200.   function MKS ( ITEM : RESISTANCE_KILOHM ) return RESISTANCE_OHM ;
  201.  
  202.   function MKS ( ITEM : RESISTANCE_MEGOHM ) return RESISTANCE_OHM ;
  203.  
  204.   function MKS ( ITEM : CAPACITANCE_MICROFARAD ) return CAPACITANCE_FARAD ;
  205.  
  206.   function MKS ( ITEM : CAPACITANCE_PICOFARAD ) return CAPACITANCE_FARAD ;
  207.  
  208.   function MKS ( ITEM : INDUCTANCE_MILLIHENRY ) return INDUCTANCE_HENRY ;
  209.  
  210.   function MKS ( ITEM : INDUCTANCE_MICROHENRY ) return INDUCTANCE_HENRY ;
  211.  
  212.   function MKS ( ITEM : FREQUENCY_KILOHERTZ ) return FREQUENCY_HERTZ ;
  213.  
  214.   function MKS ( ITEM : FREQUENCY_MEGAHERTZ ) return FREQUENCY_HERTZ ;
  215.  
  216.   function MKS ( ITEM : FREQUENCY_GIGAHERTZ ) return FREQUENCY_HERTZ ;
  217.  
  218. end PHYSICAL_UNITS_CONVERSION_MKS ;
  219.