6 #ifndef VNIX_UNITS_DYNDIM_BASE_HPP 7 #define VNIX_UNITS_DYNDIM_BASE_HPP 9 #include <vnix/units/dim.hpp> 33 constexpr dim
d()
const {
return d_; }
37 if (
d() != nul_dim) {
throw "dimensioned quantity is not a number"; }
43 template <
typename B>
constexpr void comparison(B
const &b)
const {
44 if (
d_ != b.d()) {
throw "incompatible dimensions for comparison"; }
52 if (
d_ != b.d()) {
throw "incompatible dimensions for addition"; }
61 if (
d_ != b.d()) {
throw "incompatible dimensions for subtraction"; }
constexpr void comparison(B const &b) const
Test for comparison of dimensioned values.
constexpr recip_basedim recip() const
Dimension for reciprocal of dimensioned value.
constexpr dyndim_base diff(B const &b) const
Dimension for difference of dimensioned values.
Base-type for a dimensioned value whose dimension is specified, perhaps dynamically at run-time...
constexpr dim d() const
Exponent for each unit in dimensioned quantity.
constexpr dyndim_base(dim dd)
Initialize from exponents representing dimension.
constexpr rational(stype n=0, stype d=1)
Initialize from numerator and denominator.
constexpr basic_dim operator-(basic_dim const &s) const
Subtract corresponding exponents.
constexpr dyndim_base quot(B const &b) const
Dimension for quotient of dimensioned values.
constexpr dyndim_base pow(dim::rat p) const
Dimension for rational power of dimensioned value.
static constexpr dim nul_dim
Null dimension.
constexpr dyndim_base sum(B const &b) const
Dimension for sum of dimensioned values.
constexpr void number() const
Throw if dimension be non-null.
constexpr dyndim_base prod(B const &b) const
Dimension for product of dimensioned values.
constexpr dyndim_base sqrt() const
Dimension for square-root of dimensioned value.
constexpr basic_dim operator*(rat f) const
Multiply exponents by rational factor.
dim d_
Exponents representing dimension.
Thomas E. Vaughan's public software.
Classes and functions supporting a model of physically dimensioned quantities.
constexpr dyndim_base pow() const
Dimension for rational power of dimensioned value.
constexpr bool operator!=(basic_dim const &d) const
constexpr basic_dim operator/(rat f) const
Divide exponents by rational factor.