160 lines
4.3 KiB
Groff
160 lines
4.3 KiB
Groff
.\" $NetBSD: units.1,v 1.10 2001/12/18 01:06:09 wiz Exp $
|
|
.Dd December 18, 2001
|
|
.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 DESCRIPTION
|
|
The units program converts quantities expression in various scales to
|
|
their equivalents in other scales. The units program can only
|
|
handle multiplicative scale changes. It cannot convert Centigrade
|
|
to Fahrenheit, for example.
|
|
.Pp
|
|
The following options are supported:
|
|
.Bl -tag -width "from-unit to-unit" -offset indent
|
|
.It Fl f Ar filename
|
|
Specifies the name of the units data file to load.
|
|
.It Fl q
|
|
Suppresses prompting of the user for units and the display of statistics
|
|
about the number of units loaded.
|
|
.It Fl v
|
|
Prints the version number.
|
|
.It Ar from-unit Ar to-unit
|
|
Allows a single unit conversion to be done directly from the command
|
|
line. No prompting will occur. The units program will print out
|
|
only the result of this single conversion.
|
|
.El
|
|
.Pp
|
|
.Nm
|
|
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
|
|
.Ed
|
|
.Pp
|
|
Powers of units can be specified using the
|
|
.Dq \&^
|
|
character as shown in the example, or by simple concatenation:
|
|
.Dq cm3
|
|
is equivalent to
|
|
.Dq cm^3 .
|
|
Multiplication of units can be specified by using spaces, a dash or
|
|
an asterisk. Division of units is indicated by the slash
|
|
.Pq Sq \&/ .
|
|
Note that multiplication has a higher precedence than division,
|
|
so
|
|
.Dq m/s/s
|
|
is the same as
|
|
.Dq m/s^2
|
|
or
|
|
.Dq "m/s s" .
|
|
If the user enters 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:
|
|
.Bl -tag -width mercury -compact -offset indent
|
|
.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
|
|
.Dq pound
|
|
is a unit of mass. Compound names are run together
|
|
so
|
|
.Dq poundforce
|
|
is a unit of force. British units that differ from their
|
|
US counterparts are prefixed with
|
|
.Dq br ,
|
|
and currency is prefixed with
|
|
its country name:
|
|
.Dq belgiumfranc ,
|
|
.Dq britainpound .
|
|
When searching for
|
|
a unit, if the specified string does not appear exactly as a unit
|
|
name, then the units program will try to remove a trailing
|
|
.Dq s
|
|
or a trailing
|
|
.Dq es
|
|
and check again for a match.
|
|
.Pp
|
|
All of these definitions can be read in the standard units file, or you
|
|
can supply your own file. A unit is specified on a single line by
|
|
giving its name and an equivalence. One should be careful to define
|
|
new units in terms of old ones so that a reduction leads to the
|
|
primitive units which are marked with
|
|
.Sq \&!
|
|
characters.
|
|
The units program will not detect infinite loops that could be caused
|
|
by careless unit definitions.
|
|
.Pp
|
|
Prefixes are defined in the same was as standard units, but with
|
|
a trailing dash at the end of the prefix name.
|
|
.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
|
|
or
|
|
.Aq mariano@geom.umn.edu
|
|
.Sh BUGS
|
|
The effect of including a
|
|
.Sq \&/
|
|
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
|
|
.Sq \&|
|
|
to indicate division of numbers and
|
|
.Sq \&/
|
|
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 doesn't take so long to load the units list and check
|
|
for duplication.
|