units
Use physical dimensions at compile-time or run-time.
|
Model of a dynamically dimensioned physical quantity. More...
#include <dimval.hpp>
Public Member Functions | |
template<typename OT , typename OB > | |
constexpr | basic_dyndim (dimval< OT, OB > const &v) |
< Allow access to number. More... | |
constexpr | basic_dyndim (T v) |
Convert from number. More... | |
![]() | |
dimval () | |
< Allow access to dimension. More... | |
constexpr | dimval (T const &v, dim const &d) |
Initialize from numeric value and from dimension. More... | |
constexpr | dimval (dimval< OT, OB > const &v) |
Initialize from other dimensioned value. More... | |
constexpr | dimval (T const &n) |
Initialize from dimensionless number. More... | |
constexpr T | to_number () const |
Convert to dimensionless number. More... | |
constexpr dim::rat | d (dim::off off) const |
Exponent for base at specified offset. More... | |
constexpr auto | operator== (dimval< OT, OB > const &v) const |
Equality-comparison of two dimensioned values. More... | |
constexpr auto | operator!= (dimval< OT, OB > const &v) const |
Inequality-comparison of two dimensioned values. More... | |
constexpr auto | operator< (dimval< OT, OB > const &v) const |
Less-than comparison of two dimensioned values. More... | |
constexpr auto | operator<= (dimval< OT, OB > const &v) const |
Less-than-or-equal comparison of two dimensioned values. More... | |
constexpr auto | operator> (dimval< OT, OB > const &v) const |
Greater-than comparison of two dimensioned values. More... | |
constexpr auto | operator>= (dimval< OT, OB > const &v) const |
Greater-than-or-equal comparison of two dimensioned values. More... | |
constexpr auto | operator+ (dimval< OT, OB > const &v) const |
Sum of two dimensioned values. More... | |
constexpr auto | operator- (dimval< OT, OB > const &v) const |
Difference between two dimensioned values. More... | |
constexpr dimval & | operator+= (dimval< OT, OB > const &v) |
Modify present instance by adding in a dimensioned value. More... | |
constexpr dimval & | operator-= (dimval< OT, OB > const &v) |
Modify present instance by subtracting out a dimensioned value. More... | |
constexpr auto | operator* (OT const &n) const |
Scale dimensioned value. More... | |
constexpr auto | operator* (dimval< OT, OB > const &v) const |
Multiply two dimensioned values. More... | |
constexpr auto | operator[] (size_t off) const |
Support element-access in case it be supported by numeric type. More... | |
constexpr auto | dot (OT const &n) const |
Support dot-product in case it be supported by numeric type. More... | |
constexpr auto | dot (dimval< OT, OB > const &v) const |
Support dot-product in case it be supported by numeric type. More... | |
constexpr auto | cross (OT const &n) const |
Support cross-product in case it be supported by numeric type. More... | |
constexpr auto | cross (dimval< OT, OB > const &v) const |
Support cross-product in case it be supported by numeric type. More... | |
constexpr auto | operator/ (OT const &n) const |
Scale dimensioned quantity by dividing by number. More... | |
constexpr auto | operator/ (dimval< OT, OB > const &v) const |
Divide two dimensioned values. More... | |
constexpr dimval< T, typename dyndim_base::recip_basedim > | inverse () const |
Invert dimensioned value. More... | |
constexpr dimval & | operator*= (OT const &v) |
Modify present instance by multiplying in a dimensionless value. More... | |
constexpr dimval & | operator/= (OT const &v) |
Modify present instance by dividing it by a dimensionless value. More... | |
constexpr auto | power () const |
Raise dimensioned value to rational power. More... | |
constexpr auto | power (dim::rat p) const |
Raise dimensioned value to rational power. More... | |
constexpr auto | square_root () const |
Square-root of a dimensioned quantity. More... | |
![]() | |
constexpr | dyndim_base (dim dd) |
Initialize from exponents representing dimension. More... | |
constexpr dim | d () const |
Exponent for each unit in dimensioned quantity. More... | |
constexpr void | number () const |
Throw if dimension be non-null. More... | |
template<typename B > | |
constexpr void | comparison (B const &b) const |
Test for comparison of dimensioned values. More... | |
template<typename B > | |
constexpr dyndim_base | sum (B const &b) const |
Dimension for sum of dimensioned values. More... | |
template<typename B > | |
constexpr dyndim_base | diff (B const &b) const |
Dimension for difference of dimensioned values. More... | |
template<typename B > | |
constexpr dyndim_base | prod (B const &b) const |
Dimension for product of dimensioned values. More... | |
template<typename B > | |
constexpr dyndim_base | quot (B const &b) const |
Dimension for quotient of dimensioned values. More... | |
constexpr recip_basedim | recip () const |
Dimension for reciprocal of dimensioned value. More... | |
template<int64_t PN, int64_t PD = 1> | |
constexpr dyndim_base | pow () const |
Dimension for rational power of dimensioned value. More... | |
constexpr dyndim_base | pow (dim::rat p) const |
Dimension for rational power of dimensioned value. More... | |
constexpr dyndim_base | sqrt () const |
Dimension for square-root of dimensioned value. More... | |
Additional Inherited Members | |
![]() | |
using | recip_basedim = dyndim_base |
Base-dimensions corresponding to reciprocal of dimensioned quantity. More... | |
![]() | |
using | recip_basedim = dyndim_base |
Base-dimensions corresponding to reciprocal of dimensioned quantity. More... | |
![]() | |
dimval (dim const &d) | |
Initialize dimension, but leave number undefined. More... | |
![]() | |
constexpr | dyndim_base (dim dd) |
Initialize from exponents representing dimension. More... | |
constexpr dim | d () const |
Exponent for each unit in dimensioned quantity. More... | |
constexpr void | number () const |
Throw if dimension be non-null. More... | |
template<typename B > | |
constexpr void | comparison (B const &b) const |
Test for comparison of dimensioned values. More... | |
template<typename B > | |
constexpr dyndim_base | sum (B const &b) const |
Dimension for sum of dimensioned values. More... | |
template<typename B > | |
constexpr dyndim_base | diff (B const &b) const |
Dimension for difference of dimensioned values. More... | |
template<typename B > | |
constexpr dyndim_base | prod (B const &b) const |
Dimension for product of dimensioned values. More... | |
template<typename B > | |
constexpr dyndim_base | quot (B const &b) const |
Dimension for quotient of dimensioned values. More... | |
constexpr recip_basedim | recip () const |
Dimension for reciprocal of dimensioned value. More... | |
template<int64_t PN, int64_t PD = 1> | |
constexpr dyndim_base | pow () const |
Dimension for rational power of dimensioned value. More... | |
constexpr dyndim_base | pow (dim::rat p) const |
Dimension for rational power of dimensioned value. More... | |
constexpr dyndim_base | sqrt () const |
Dimension for square-root of dimensioned value. More... | |
Model of a dynamically dimensioned physical quantity.
T | Type of numeric value. |
Definition at line 23 of file dimval.hpp.
|
inline |
< Allow access to number.
Initialize from other dimensioned value.
OT | Numeric type of other dimensioned value. |
OB | Dimension-base of other dimensioned value. |
v | Reference to other dimensioned value. |
Definition at line 476 of file dimval.hpp.
|
inline |
Convert from number.
v | Number. |
Definition at line 481 of file dimval.hpp.