GENERIC INTERFACESIUnit (UDB);
Some common quantities, their units according to the SI standard are packed into a database by CreateDatabase.
One might predefine values for each usual SI unit, but it is difficult to mix with complex numbers.
IMPORT PhysicalUnit AS U;
TYPE
SIUnit = ARRAY OF U.ExpType;
CONST
(* s t m U T *)
(* m s kg V ° K bit *)
noUnit = SIUnit{ 0, 0, 0, 0, 0, 0, 0};
length = SIUnit{ 1, 0, 0, 0, 0, 0, 0};
area = SIUnit{ 2, 0, 0, 0, 0, 0, 0};
volume = SIUnit{ 3, 0, 0, 0, 0, 0, 0};
time = SIUnit{ 0, 1, 0, 0, 0, 0, 0};
frequency = SIUnit{ 0,-1, 0, 0, 0, 0, 0};
speed = SIUnit{ 1,-1, 0, 0, 0, 0, 0};
acceleration = SIUnit{ 1,-2, 0, 0, 0, 0, 0};
mass = SIUnit{ 0, 0, 1, 0, 0, 0, 0};
force = SIUnit{ 1,-2, 1, 0, 0, 0, 0};
pressure = SIUnit{-1,-2, 1, 0, 0, 0, 0};
energy = SIUnit{ 2,-2, 1, 0, 0, 0, 0};
power = SIUnit{ 2,-3, 1, 0, 0, 0, 0};
charge = SIUnit{ 0, 0, 0, 1, 0, 0, 0};
current = SIUnit{ 0,-1, 0, 1, 0, 0, 0};
voltage = SIUnit{ 2,-2, 1,-1, 0, 0, 0};
resistance = SIUnit{ 2,-1, 1,-2, 0, 0, 0};
capacity = SIUnit{-2, 2,-1, 2, 0, 0, 0};
angle = SIUnit{ 0, 0, 0, 0, 1, 0, 0};
angularspeed = SIUnit{ 0,-1, 0, 0, 1, 0, 0};
temperature = SIUnit{ 0, 0, 0, 0, 0, 1, 0};
information = SIUnit{ 0, 0, 0, 0, 0, 0, 1};
datarate = SIUnit{ 0,-1, 0, 0, 0, 0, 1};
PROCEDURE CreateDatabase():UDB.T;
END SIUnit.