2005-09-12 03:28:55 +04:00
|
|
|
.\" $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
|
2002-04-02 22:08:28 +04:00
|
|
|
.Oo
|
|
|
|
.Op Ar count
|
|
|
|
.Ar from-unit to-unit
|
|
|
|
.Oc
|
2001-12-18 04:06:09 +03:00
|
|
|
.Sh DESCRIPTION
|
2005-09-12 03:28:55 +04:00
|
|
|
.Nm
|
|
|
|
converts quantities expression in various scales to
|
2002-09-30 15:08:56 +04:00
|
|
|
their equivalents in other scales.
|
2005-09-12 03:28:55 +04:00
|
|
|
.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
|
1993-10-27 06:31:49 +03:00
|
|
|
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
|
1993-10-27 06:31:49 +03:00
|
|
|
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.
|
2005-09-12 03:28:55 +04:00
|
|
|
.Nm
|
|
|
|
will print out only the result of this single conversion.
|
2002-09-30 15:08:56 +04:00
|
|
|
The
|
2002-04-02 22:08:28 +04:00
|
|
|
.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
|
1993-10-27 06:31:49 +03:00
|
|
|
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 .
|
1993-10-27 06:31:49 +03:00
|
|
|
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" .
|
2005-09-12 03:28:55 +04:00
|
|
|
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
|
1993-10-27 06:31:49 +03:00
|
|
|
You have: ergs/hour
|
2001-12-01 19:43:07 +03:00
|
|
|
You want: fathoms kg^2 / day
|
1993-10-27 06:31:49 +03:00
|
|
|
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
|
1993-10-27 06:31:49 +03:00
|
|
|
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
|
1993-10-27 06:31:49 +03:00
|
|
|
a unit, if the specified string does not appear exactly as a unit
|
2005-09-12 03:28:55 +04:00
|
|
|
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
|
1993-10-27 06:31:49 +03:00
|
|
|
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
|
1993-10-27 06:31:49 +03:00
|
|
|
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.
|
2005-09-12 03:28:55 +04:00
|
|
|
.Nm
|
|
|
|
will not detect infinite loops that could be caused
|
1993-10-27 06:31:49 +03:00
|
|
|
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
|
1993-10-27 06:31:49 +03:00
|
|
|
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
|
1993-10-27 06:31:49 +03:00
|
|
|
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
|
1993-10-27 06:31:49 +03:00
|
|
|
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.
|