home *** CD-ROM | disk | FTP | other *** search
/ Programmer's ROM - The Computer Language Library / programmersrom.iso / ada / piwg / z000017.ada < prev    next >
Encoding:
Text File  |  1988-05-03  |  7.8 KB  |  218 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_ENGLISH is
  35.  
  36.   function ENGLISH ( ITEM : LENGTH_MKS ) return LENGTH_ENGLISH ;
  37.  
  38.   function ENGLISH ( ITEM : LENGTH_MIL ) return LENGTH_ENGLISH ;
  39.  
  40.   function ENGLISH ( ITEM : LENGTH_INCH ) return LENGTH_ENGLISH ;
  41.  
  42.   function ENGLISH ( ITEM : LENGTH_YARD ) return LENGTH_ENGLISH ;
  43.  
  44.   function ENGLISH ( ITEM : LENGTH_FATHOM ) return LENGTH_ENGLISH ;
  45.  
  46.   function ENGLISH ( ITEM : LENGTH_ROD ) return LENGTH_ENGLISH ;
  47.  
  48.   function ENGLISH ( ITEM : LENGTH_CHAIN_SURVEYOR ) return LENGTH_ENGLISH ;
  49.  
  50.   function ENGLISH ( ITEM : LENGTH_CHAIN_ENGINEER ) return LENGTH_ENGLISH ;
  51.  
  52.   function ENGLISH ( ITEM : LENGTH_FURLONG ) return LENGTH_ENGLISH ;
  53.  
  54.   function ENGLISH ( ITEM : LENGTH_MILE ) return LENGTH_ENGLISH ;
  55.  
  56.   function ENGLISH ( ITEM : LENGTH_MILE_NAUTICAL ) return LENGTH_ENGLISH ;
  57.  
  58.   function ENGLISH ( ITEM : LENGTH_LEAGUE_LAND ) return LENGTH_ENGLISH ;
  59.  
  60.   function ENGLISH ( ITEM : LENGTH_LEAGUE_MARINE ) return LENGTH_ENGLISH ;
  61.  
  62.   function ENGLISH ( ITEM : LENGTH_LIGHT_YEAR ) return LENGTH_ENGLISH ;
  63.  
  64.   function ENGLISH ( ITEM : MASS_MKS ) return MASS_ENGLISH ;
  65.  
  66.   function ENGLISH ( ITEM : MASS_POUND_TROY ) return MASS_ENGLISH ;
  67.  
  68.   function ENGLISH ( ITEM : MASS_GRAIN ) return MASS_ENGLISH ;
  69.  
  70.   function ENGLISH ( ITEM : MASS_PENNYWEIGHT_TROY ) return MASS_ENGLISH ;
  71.  
  72.   function ENGLISH ( ITEM : MASS_CARAT_TROY ) return MASS_ENGLISH ;
  73.  
  74.   function ENGLISH ( ITEM : MASS_SCRUPLE ) return MASS_ENGLISH ;
  75.  
  76.   function ENGLISH ( ITEM : MASS_DRAM_AVDP ) return MASS_ENGLISH ;
  77.  
  78.   function ENGLISH ( ITEM : MASS_OUNCE_AVDP ) return MASS_ENGLISH ;
  79.  
  80.   function ENGLISH ( ITEM : MASS_OUNCE_TROY ) return MASS_ENGLISH ;
  81.  
  82.   function ENGLISH ( ITEM : MASS_TON_SHORT ) return MASS_ENGLISH ;
  83.  
  84.   function ENGLISH ( ITEM : MASS_TON_LONG ) return MASS_ENGLISH ;
  85.  
  86.   function ENGLISH ( ITEM : TEMPERATURE_KELVIN ) return TEMPERATURE_FARENHEIT
  87.       ;
  88.  
  89.   function ENGLISH ( ITEM : TEMPERATURE_CENTIGRADE ) return
  90.       TEMPERATURE_FARENHEIT ;
  91.  
  92.   function ENGLISH ( ITEM : AREA_MKS ) return AREA_ENGLISH ;
  93.  
  94.   function ENGLISH ( ITEM : AREA_SQUARE_INCH ) return AREA_ENGLISH ;
  95.  
  96.   function ENGLISH ( ITEM : AREA_SQUARE_YARD ) return AREA_ENGLISH ;
  97.  
  98.   function ENGLISH ( ITEM : AREA_SQUARE_MILE ) return AREA_ENGLISH ;
  99.  
  100.   function ENGLISH ( ITEM : AREA_ACRE ) return AREA_ENGLISH ;
  101.  
  102.   function ENGLISH ( ITEM : AREA_CIRCULAR_MIL ) return AREA_ENGLISH ;
  103.  
  104.   function ENGLISH ( ITEM : AREA_HECTARE ) return AREA_ENGLISH ;
  105.  
  106.   function ENGLISH ( ITEM : AREA_TOWNSHIP ) return AREA_ENGLISH ;
  107.  
  108.   function ENGLISH ( ITEM : VOLUME_MKS ) return VOLUME_ENGLISH ;
  109.  
  110.   function ENGLISH ( ITEM : VOLUME_CUBIC_INCH ) return VOLUME_ENGLISH ;
  111.  
  112.   function ENGLISH ( ITEM : VOLUME_CUBIC_YARD ) return VOLUME_ENGLISH ;
  113.  
  114.   function ENGLISH ( ITEM : VOLUME_CUBIC_MILE ) return VOLUME_ENGLISH ;
  115.  
  116.   function ENGLISH ( ITEM : VOLUME_TEASPOON ) return VOLUME_ENGLISH ;
  117.  
  118.   function ENGLISH ( ITEM : VOLUME_TABLESPOON ) return VOLUME_ENGLISH ;
  119.  
  120.   function ENGLISH ( ITEM : VOLUME_OUNCE_FLUID ) return VOLUME_ENGLISH ;
  121.  
  122.   function ENGLISH ( ITEM : VOLUME_JIGGER ) return VOLUME_ENGLISH ;
  123.  
  124.   function ENGLISH ( ITEM : VOLUME_CUP ) return VOLUME_ENGLISH ;
  125.  
  126.   function ENGLISH ( ITEM : VOLUME_PINT_LIQUID ) return VOLUME_ENGLISH ;
  127.  
  128.   function ENGLISH ( ITEM : VOLUME_QUART_LIQUID ) return VOLUME_ENGLISH ;
  129.  
  130.   function ENGLISH ( ITEM : VOLUME_GALLON ) return VOLUME_ENGLISH ;
  131.  
  132.   function ENGLISH ( ITEM : VOLUME_KEG ) return VOLUME_ENGLISH ;
  133.  
  134.   function ENGLISH ( ITEM : VOLUME_BARREL ) return VOLUME_ENGLISH ;
  135.  
  136.   function ENGLISH ( ITEM : VOLUME_PINT_DRY ) return VOLUME_ENGLISH ;
  137.  
  138.   function ENGLISH ( ITEM : VOLUME_QUART_DRY ) return VOLUME_ENGLISH ;
  139.  
  140.   function ENGLISH ( ITEM : VOLUME_PECK ) return VOLUME_ENGLISH ;
  141.  
  142.   function ENGLISH ( ITEM : VOLUME_BUSHEL ) return VOLUME_ENGLISH ;
  143.  
  144.   function ENGLISH ( ITEM : VOLUME_CORD ) return VOLUME_ENGLISH ;
  145.  
  146.   function ENGLISH ( ITEM : VELOCITY_MKS ) return VELOCITY_ENGLISH ;
  147.  
  148.   function ENGLISH ( ITEM : VELOCITY_INCHES_PER_SECOND ) return
  149.       VELOCITY_ENGLISH ;
  150.  
  151.   function ENGLISH ( ITEM : VELOCITY_MILE_PER_HOUR ) return VELOCITY_ENGLISH ;
  152.  
  153.   function ENGLISH ( ITEM : VELOCITY_MILES_PER_SECOND ) return
  154.       VELOCITY_ENGLISH ;
  155.  
  156.   function ENGLISH ( ITEM : VELOCITY_INCHES_PER_MINUTE ) return
  157.       VELOCITY_ENGLISH ;
  158.  
  159.   function ENGLISH ( ITEM : VELOCITY_FEET_PER_MINUTE ) return VELOCITY_ENGLISH
  160.       ;
  161.  
  162.   function ENGLISH ( ITEM : VELOCITY_MILES_PER_HOUR ) return VELOCITY_ENGLISH
  163.       ;
  164.  
  165.   function ENGLISH ( ITEM : VELOCITY_KNOTS ) return VELOCITY_ENGLISH ;
  166.  
  167.   function ENGLISH ( ITEM : VELOCITY_FURLONG_PER_FORTNIGHT ) return
  168.       VELOCITY_ENGLISH ;
  169.  
  170.   function ENGLISH ( ITEM : ACCELERATION_MKS ) return ACCELERATION_ENGLISH ;
  171.  
  172.   function ENGLISH ( ITEM : FORCE_MKS ) return FORCE_ENGLISH ;
  173.  
  174.   function ENGLISH ( ITEM : ENERGY_MKS ) return ENERGY_ENGLISH ;
  175.  
  176.   function ENGLISH ( ITEM : ENERGY_FOOT_POUND ) return ENERGY_ENGLISH ;
  177.  
  178.   function ENGLISH ( ITEM : ENERGY_KILOWATT_HOUR ) return ENERGY_ENGLISH ;
  179.  
  180.   function ENGLISH ( ITEM : ENERGY_HORSEPOWER_HOUR ) return ENERGY_ENGLISH ;
  181.  
  182.   function ENGLISH ( ITEM : POWER_HORSEPOWER_MECHANICAL ) return POWER_WATT ;
  183.  
  184.   function ENGLISH ( ITEM : POWER_HORSEPOWER_ELECTRICAL ) return POWER_WATT ;
  185.  
  186.   function ENGLISH ( ITEM : POWER_HORSEPOWER_BOILER ) return POWER_WATT ;
  187.  
  188.   function ENGLISH ( ITEM : POWER_B_T_U_PER_MINUTE ) return POWER_WATT ;
  189.  
  190.   function ENGLISH ( ITEM : POWER_B_T_U_PER_HOUR ) return POWER_WATT ;
  191.  
  192.   function ENGLISH ( ITEM : POWER_FOOT_POUND_PER_MINUTE ) return POWER_WATT ;
  193.  
  194.   function ENGLISH ( ITEM : POWER_FOOT_POUND_PER_SECOND ) return POWER_WATT ;
  195.  
  196.   function ENGLISH ( ITEM : DENSITY_MKS ) return DENSITY_ENGLISH ;
  197.  
  198.   function ENGLISH ( ITEM : FLOW_RATE_MKS ) return FLOW_RATE_ENGLISH ;
  199.  
  200.   function ENGLISH ( ITEM : FLOW_RATE_GALLON_PER_MINUTE ) return
  201.       FLOW_RATE_ENGLISH ;
  202.  
  203.   function ENGLISH ( ITEM : FLOW_RATE_CUBIC_FEET_PER_MINUTE ) return
  204.       FLOW_RATE_ENGLISH ;
  205.  
  206.   function ENGLISH ( ITEM : PRESSURE_MKS ) return PRESSURE_ENGLISH ;
  207.  
  208.   function ENGLISH ( ITEM : PRESSURE_TON_PER_SQUARE_FOOT ) return
  209.       PRESSURE_ENGLISH ;
  210.  
  211.   function ENGLISH ( ITEM : PRESSURE_FEET_OF_WATER ) return PRESSURE_ENGLISH ;
  212.  
  213.   function ENGLISH ( ITEM : PRESSURE_INCHES_OF_MERCURY ) return
  214.       PRESSURE_ENGLISH ;
  215.  
  216. end PHYSICAL_UNITS_CONVERSION_ENGLISH ;
  217.  
  218.