NetBSD/usr.bin/units/units.1

183 lines
4.3 KiB
Groff
Raw Normal View History

.\" $NetBSD: units.1,v 1.13 2005/09/11 23:28:55 wiz Exp $
2001-12-18 04:06:09 +03:00
.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
.Oo
.Op Ar count
.Ar from-unit to-unit
.Oc
2001-12-18 04:06:09 +03:00
.Sh DESCRIPTION
.Nm
converts quantities expression in various scales to
2002-09-30 15:08:56 +04:00
their equivalents in other scales.
.Nm
can only handle multiplicative scale changes.
2002-09-30 15:08:56 +04:00
It cannot convert Centigrade to Fahrenheit, for example.
2001-12-18 04:06:09 +03:00
.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.
2001-12-18 04:06:09 +03:00
.It Fl q
1994-01-11 21:49:16 +03:00
Suppresses prompting of the user for units and the display of statistics
about the number of units loaded.
2001-12-18 04:06:09 +03:00
.It Fl v
1994-07-16 09:23:46 +04:00
Prints the version number.
2001-12-18 04:06:09 +03:00
.It Ar from-unit Ar to-unit
1994-01-11 21:49:16 +03:00
Allows a single unit conversion to be done directly from the command
2002-09-30 15:08:56 +04:00
line.
No prompting will occur.
.Nm
will print out only the result of this single conversion.
2002-09-30 15:08:56 +04:00
The
.Ar count
argument can be prepended to the
.Ar from-unit
or it can be separate.
2001-12-18 04:06:09 +03:00
.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
2001-12-18 04:06:09 +03:00
.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
2002-09-30 15:08:56 +04:00
an asterisk.
Division of units is indicated by the slash
2001-12-18 04:06:09 +03:00
.Pq Sq \&/ .
2001-12-01 19:43:07 +03:00
Note that multiplication has a higher precedence than division,
2001-12-18 04:06:09 +03:00
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
.Nm
program will print a message indicating that the units are not
conformable and it will display the reduced form for each unit:
2001-12-18 04:06:09 +03:00
.Bd -literal
You have: ergs/hour
2001-12-01 19:43:07 +03:00
You want: fathoms kg^2 / day
conformability error
2.7777778e-11 kg m^2 / sec^3
2.1166667e-05 kg^2 m / sec
2001-12-18 04:06:09 +03:00
.Ed
.Pp
2002-09-30 15:08:56 +04:00
The conversion information is read from a units data file.
The default
file includes definitions for most familiar units, abbreviations and
2002-09-30 15:08:56 +04:00
metric prefixes.
Some constants of nature included are:
2001-12-18 04:06:09 +03:00
.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
2002-09-30 15:08:56 +04:00
is a unit of mass.
Compound names are run together
2001-12-18 04:06:09 +03:00
so
.Dq poundforce
2002-09-30 15:08:56 +04:00
is a unit of force.
British units that differ from their
2001-12-18 04:06:09 +03:00
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
.Nm
program will try to remove a trailing
2001-12-18 04:06:09 +03:00
.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
2002-09-30 15:08:56 +04:00
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
2001-12-18 04:06:09 +03:00
primitive units which are marked with
.Sq \&!
characters.
.Nm
will not detect infinite loops that could be caused
by careless unit definitions.
2001-12-18 04:06:09 +03:00
.Pp
2001-12-01 19:43:07 +03:00
Prefixes are defined in the same was as standard units, but with
a trailing dash at the end of the prefix name.
2001-12-18 04:06:09 +03:00
.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.
2001-12-18 04:06:09 +03:00
.Pp
The user must use
.Sq \&|
to indicate division of numbers and
.Sq \&/
2002-09-30 15:08:56 +04:00
to indicate division of symbols.
This distinction should not be necessary.
2001-12-18 04:06:09 +03:00
.Pp
The program contains various arbitrary limits on the length
of the units converted and on the length of the data file.
2001-12-18 04:06:09 +03:00
.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
2001-12-01 19:43:07 +03:00
for duplication.