#### 5.3.1 Introduction

Antik has a class `physical-quantity`

which is used to represent values that have physical dimension, such as mass or length; e.g.

ANTIK-USER> #_35_km
#_35000.000000000000000_m
ANTIK-USER> (* #_5_m #_8_kg)
#_40.000000000000000_m-kg
ANTIK-USER> (expt #_12_m 2)
#_144.000000000000000_m^2
(* #_5_kg #_8_m/s^2)
#_40.000000000000000d0_N

Mathematical operations are allowed on these objects,

ANTIK-USER> (+ #_35_km #_12_miles)
#_54312.128000000000000_m

Of course, such math must be sensible,

ANTIK-USER(3): (+ #_35_km #_12_kg)
debugger invoked on a SIMPLE-ERROR in thread #<THREAD "initial thread" RUNNING {10040293F1}>:
The quantities 3.500d+4m and 12.00kg are not both physical quantities with the same physical dimension.
0]

Note also that fractional exponents are acceptable:

ANTIK-USER> (expt #_16_m 1/2)
#_4.000000000000000_m^1/2

Each of these quantities has units associated with it – meters,
kilograms, etc., and those units must be of the appropriate dimension
for the physical quantity. All quantities are stored internally in the
SI system of units, and converted to desired units either when printed
or when an explicit conversion is requested.

The inspiration for this software came from
Gordon Novak's work.
Names, abbreviations, and definitions of units come from
NIST.