Arithmetic operations#
All arithmetic operations are dimensionally-aware. The short 100 * u.m
syntax is used throughout for readability.
Addition / Subtraction#
Quantities must have the same physical dimension (e.g., both represent length, time, energy, etc.). When two compatible quantities are added or subtracted, the result keeps the units of the left-hand operand (the first quantity in the expression).
from quantium import u
total_dist = (1 * u.km) + (500 * u.m)
print(total_dist) # 1.5 m
delta_t = (10 * u.min) - (30 * u.s)
print(delta_t) # 9.5 min
Note
This ensures intuitive and stable behavior — the left-hand operand determines the display unit, while the underlying computation is always performed in SI base units for numerical accuracy.
Multiplication / Division#
Combining quantities produces new dimensions and units (e.g., Length / Time = Speed).
speed = (100 * u.m) / (10 * u.s)
print(speed) # 10 m/s
force = (10 * u.kg) * (9.8 * u.m / u.s**2)
print(force) # 98 N
Exponentiation#
Units can be raised to integer powers.
area = (5 * u.m) ** 2
print(area) # 25 m²
volume = (2 * u.cm) ** 3
print(volume) # 8 cm³