/usr.bin/units/units.1
https://bitbucket.org/freebsd/freebsd-head/ · Unknown · 183 lines · 179 code · 4 blank · 0 comment · 0 complexity · 3c2e07e46a9b84e26cb9ff83c3033a4f MD5 · raw file
- .\" $FreeBSD$
- .Dd July 14, 1993
- .Dt UNITS 1
- .Os
- .Sh NAME
- .Nm units
- .Nd conversion program
- .Sh SYNOPSIS
- .Nm
- .Op Fl f Ar filename
- .Op Fl qv
- .Op Ar from-unit to-unit
- .Sh OPTIONS
- The following options are available:
- .Bl -tag -width indent
- .It Fl f Ar filename
- Specify the name of the units data file to load.
- .It Fl q
- Suppress prompting of the user for units and the display of statistics
- about the number of units loaded.
- .It Fl v
- Print the version number.
- .It Ar from-unit to-unit
- Allow a single unit conversion to be done directly from the command
- line.
- The program will not print prompts.
- It will print out the
- result of the single specified conversion.
- .El
- .Sh DESCRIPTION
- The
- .Nm
- program converts quantities expressed in various scales to
- their equivalents in other scales.
- The
- .Nm
- program can only
- handle multiplicative or affine scale changes.
- It works interactively by prompting
- the user for input:
- .Bd -literal
- You have: meters
- You want: feet
- * 3.2808399
- / 0.3048
- You have: cm^3
- You want: gallons
- * 0.00026417205
- / 3785.4118
- You have: meters/s
- You want: furlongs/fortnight
- * 6012.8848
- / 0.00016630952
- You have: 1|2 inch
- You want: cm
- * 1.27
- / 0.78740157
- You have: 85 degF
- You want: degC
- 29.444444
- .Ed
- .Pp
- Powers of units can be specified using the '^' character as shown in
- the example, or by simple concatenation: 'cm3' is equivalent to 'cm^3'.
- Multiplication of units can be specified by using spaces, a dash or
- an asterisk.
- Division of units is indicated by the slash ('/').
- Note that multiplication has a higher precedence than division,
- so 'm/s/s' is the same as 'm/s^2' or 'm/s s'.
- Division of numbers
- must be indicated using the vertical bar ('|').
- To convert half a
- meter, you would write '1|2 meter'.
- If you write '1/2 meter' then the
- units program would interpret that as equivalent to '0.5/meter'.
- If you enter incompatible unit types, the units program will
- print a message indicating that the units are not conformable and
- it will display the reduced form for each unit:
- .Bd -literal
- You have: ergs/hour
- You want: fathoms kg^2 / day
- conformability error
- 2.7777778e-11 kg m^2 / sec^3
- 2.1166667e-05 kg^2 m / sec
- .Ed
- .Pp
- The conversion information is read from a units data file.
- The default
- file includes definitions for most familiar units, abbreviations and
- metric prefixes.
- Some constants of nature included are:
- .Pp
- .Bl -column -offset indent -compact "mercury"
- .It "pi ratio of circumference to diameter"
- .It "c speed of light"
- .It "e charge on an electron"
- .It "g acceleration of gravity"
- .It "force same as g"
- .It "mole Avogadro's number"
- .It "water pressure per unit height of water"
- .It "mercury pressure per unit height of mercury"
- .It "au astronomical unit"
- .El
- .Pp
- The unit 'pound' is a unit of mass.
- Compound names are run together
- so 'pound force' is a unit of force.
- The unit 'ounce' is also a unit
- of mass.
- The fluid ounce is 'floz'.
- British units that differ from
- their US counterparts are prefixed with 'br', and currency is prefixed
- with its country name: 'belgiumfranc', 'britainpound'.
- When searching
- for a unit, if the specified string does not appear exactly as a unit
- name, then
- .Nm
- will try to remove a trailing 's' or a
- trailing 'es' and check again for a match.
- .Pp
- To find out what units are available read the standard units file.
- If you want to add your own units you can supply your own file.
- A unit is specified on a single line by
- giving its name and an equivalence.
- Be careful to define
- new units in terms of old ones so that a reduction leads to the
- primitive units which are marked with '!' characters.
- The
- .Nm
- program will not detect infinite loops that could be caused
- by careless unit definitions.
- Comments in the unit definition file
- begin with a '/' character at the beginning of a line.
- .Pp
- Prefixes are defined in the same was as standard units, but with
- a trailing dash at the end of the prefix name.
- If a unit is not found
- even after removing trailing 's' or 'es', then it will be checked
- against the list of prefixes.
- Prefixes will be removed until a legal
- base unit is identified.
- .Pp
- Here is an example of a short units file that defines some basic
- units.
- .Pp
- .Bl -column -offset indent -compact "minute"
- .It "m !a!"
- .It "sec !b!"
- .It "micro- 1e-6"
- .It "minute 60 sec"
- .It "hour 60 min"
- .It "inch 0.0254 m"
- .It "ft 12 inches"
- .It "mile 5280 ft"
- .El
- .Sh FILES
- .Bl -tag -width /usr/share/misc/units.lib -compact
- .It Pa /usr/share/misc/units.lib
- the standard units library
- .El
- .Sh AUTHORS
- .An Adrian Mariano Aq adrian@cam.cornell.edu
- .Sh BUGS
- The effect of including a '/' in a prefix is surprising.
- .Pp
- Exponents entered by the user can be only one digit.
- You can work around this by multiplying several terms.
- .Pp
- The user must use | to indicate division of numbers and / to
- indicate division of symbols.
- This distinction should not
- be necessary.
- .Pp
- The program contains various arbitrary limits on the length
- of the units converted and on the length of the data file.
- .Pp
- The program should use a hash table to store units so that
- it does not take so long to load the units list and check
- for duplication.