units
Use physical dimensions at compile-time or run-time.
Namespaces | Classes | Typedefs | Functions | Variables
vnix::units Namespace Reference

Classes and functions supporting a model of physically dimensioned quantities. More...

Namespaces

 dbl
 Double-precision dimensions and units.
 
 flt
 Single-precision dimensions and units.
 
 impl
 Template structs that user would use only to extend the library.
 
 ldbl
 Extended-precision dimensions and units.
 

Classes

class  basic_dim
 Rational exponent for each basis-element of dimension. More...
 
struct  basic_dim_base_off
 Enumeration of offsets, one for each base dimension in class dim. More...
 
class  basic_dyndim
 Model of a dynamically dimensioned physical quantity. More...
 
struct  basic_number
 Base-struct for wrapper to disambiguate scalar from dimval and protected storage for numeric value associated with a physical unit. More...
 
class  basic_statdim
 Model of a statically dimensioned physical quantity. More...
 
class  basic_statdim< nul_code, T >
 Specialization of basic_statdim for dimensionless quantity. More...
 
class  dimval
 Model of a physically dimensioned quantity. More...
 
class  dyndim_base
 Base-type for a dimensioned value whose dimension is specified, perhaps dynamically at run-time, by way of the constructor. More...
 
struct  number
 Generic template for wrapper to disambiguate scalar from dimval and protected storage for numeric value associated with a physical unit. More...
 
struct  number< double & >
 Specialization of scalar for double. More...
 
struct  number< double >
 Specialization of scalar for double. More...
 
struct  number< double const & >
 Specialization of scalar for double. More...
 
struct  number< Eigen::CwiseBinaryOp< B, L, R > >
 Specialization of scalar for Eigen::CwiseBinaryOp. More...
 
struct  number< Eigen::Matrix< S, R, C, OPT, MR, MC > >
 Specialization of scalar for Eigen::Matrix. More...
 
struct  number< Eigen::Product< L, R, OPT > >
 Specialization of scalar for Eigen::Product. More...
 
struct  number< float & >
 Specialization of scalar for float. More...
 
struct  number< float >
 Specialization of scalar for float. More...
 
struct  number< float const & >
 Specialization of scalar for float. More...
 
struct  number< int & >
 Specialization of scalar for int. More...
 
struct  number< int >
 Specialization of scalar for int. More...
 
struct  number< int const & >
 Specialization of scalar for int. More...
 
struct  number< long double & >
 Specialization of scalar for long double. More...
 
struct  number< long double >
 Specialization of scalar for long double. More...
 
struct  number< long double const & >
 Specialization of scalar for long double. More...
 
struct  number< mv::mat< T, NR, NC > >
 Specialization of scalar for vnix::mv::mat. More...
 
struct  statdim_base
 Base-type for a dimensioned value whose dimension is specified statically at compile-time by way of a template parameter. More...
 

Typedefs

using dim_base_off = basic_dim_base_off< uint_fast8_t >
 
template<typename OT >
using otest = typename number< OT >::test
 Integer typedef defined by number<OT> only if OT be an acceptable scalar-type. More...
 
using dim = basic_dim< dim_base_off >
 Define dim as specification of basic_dim by way of YAML- and ERB-generated type dim_base_off. More...
 

Functions

template<typename T >
constexpr auto invert (T v)
 Return the reciprocal of an instance of type T. More...
 
template<typename S , int R, int C, int OPT, int MR, int MC>
constexpr auto invert (Eigen::Matrix< S, R, C, OPT, MR, MC > const &m)
 Specialization of invert() for Eigen::Matrix. More...
 
template<typename OT , typename T , typename B , otest< OT > = 0>
constexpr auto operator/ (OT const &d, dimval< T, B > const &v)
 Invert dimensioned value by dividing it into number. More...
 
template<typename T , typename B , otest< T > = 0>
constexpr auto sqrt (dimval< T, B > const &v)
 Take the squre root of a dimensioned quantity. More...
 
template<int64_t PN, int64_t PD = 1, typename T , typename B >
constexpr auto pow (dimval< T, B > const &v)
 Raise dimensioned value to rational power. More...
 
template<typename T , typename B >
constexpr auto pow (dimval< T, B > const &v, dim::rat p)
 Raise dimensioned value to rational power. More...
 
constexpr dim length_dim (1, 0, 0, 0, 0)
 Exponents for length. More...
 
constexpr dim mass_dim (0, 1, 0, 0, 0)
 Exponents for mass. More...
 
constexpr dim time_dim (0, 0, 1, 0, 0)
 Exponents for time. More...
 
constexpr dim charge_dim (0, 0, 0, 1, 0)
 Exponents for charge. More...
 
constexpr dim temperature_dim (0, 0, 0, 0, 1)
 Exponents for temperature. More...
 
template<typename T >
constexpr auto meters (T v)
 Produce dimensioned quantity from number of meters. More...
 
template<typename T >
constexpr auto centimeters (T v)
 Produce dimensioned quantity from number of centimeters. More...
 
template<typename T >
constexpr auto millimeters (T v)
 Produce dimensioned quantity from number of millimeters. More...
 
template<typename T >
constexpr auto micrometers (T v)
 Produce dimensioned quantity from number of micrometers. More...
 
template<typename T >
constexpr auto nanometers (T v)
 Produce dimensioned quantity from number of nanometers. More...
 
template<typename T >
constexpr auto picometers (T v)
 Produce dimensioned quantity from number of picometers. More...
 
template<typename T >
constexpr auto femtometers (T v)
 Produce dimensioned quantity from number of femtometers. More...
 
template<typename T >
constexpr auto kilometers (T v)
 Produce dimensioned quantity from number of kilometers. More...
 
template<typename T >
constexpr auto megameters (T v)
 Produce dimensioned quantity from number of megameters. More...
 
template<typename T >
constexpr auto grams (T v)
 Produce dimensioned quantity from number of grams. More...
 
template<typename T >
constexpr auto milligrams (T v)
 Produce dimensioned quantity from number of milligrams. More...
 
template<typename T >
constexpr auto micrograms (T v)
 Produce dimensioned quantity from number of micrograms. More...
 
template<typename T >
constexpr auto nanograms (T v)
 Produce dimensioned quantity from number of nanograms. More...
 
template<typename T >
constexpr auto picograms (T v)
 Produce dimensioned quantity from number of picograms. More...
 
template<typename T >
constexpr auto kilograms (T v)
 Produce dimensioned quantity from number of kilograms. More...
 
template<typename T >
constexpr auto megagrams (T v)
 Produce dimensioned quantity from number of megagrams. More...
 
template<typename T >
constexpr auto seconds (T v)
 Produce dimensioned quantity from number of seconds. More...
 
template<typename T >
constexpr auto milliseconds (T v)
 Produce dimensioned quantity from number of milliseconds. More...
 
template<typename T >
constexpr auto microseconds (T v)
 Produce dimensioned quantity from number of microseconds. More...
 
template<typename T >
constexpr auto nanoseconds (T v)
 Produce dimensioned quantity from number of nanoseconds. More...
 
template<typename T >
constexpr auto picoseconds (T v)
 Produce dimensioned quantity from number of picoseconds. More...
 
template<typename T >
constexpr auto femtoseconds (T v)
 Produce dimensioned quantity from number of femtoseconds. More...
 
template<typename T >
constexpr auto coulombs (T v)
 Produce dimensioned quantity from number of coulombs. More...
 
template<typename T >
constexpr auto millicoulombs (T v)
 Produce dimensioned quantity from number of millicoulombs. More...
 
template<typename T >
constexpr auto microcoulombs (T v)
 Produce dimensioned quantity from number of microcoulombs. More...
 
template<typename T >
constexpr auto nanocoulombs (T v)
 Produce dimensioned quantity from number of nanocoulombs. More...
 
template<typename T >
constexpr auto picocoulombs (T v)
 Produce dimensioned quantity from number of picocoulombs. More...
 
template<typename T >
constexpr auto kelvins (T v)
 Produce dimensioned quantity from number of kelvins. More...
 
template<typename T >
constexpr auto millikelvins (T v)
 Produce dimensioned quantity from number of millikelvins. More...
 
template<typename T >
constexpr auto microkelvins (T v)
 Produce dimensioned quantity from number of microkelvins. More...
 
template<typename T >
constexpr auto nanokelvins (T v)
 Produce dimensioned quantity from number of nanokelvins. More...
 
template<typename T >
constexpr auto feet (T v)
 Produce dimensioned quantity from number of feet. More...
 
template<typename T >
constexpr auto kilofeet (T v)
 Produce dimensioned quantity from number of kilofeet. More...
 
template<typename T >
constexpr auto inches (T v)
 Produce dimensioned quantity from number of inches. More...
 
template<typename T >
constexpr auto yards (T v)
 Produce dimensioned quantity from number of yards. More...
 
template<typename T >
constexpr auto miles (T v)
 Produce dimensioned quantity from number of miles. More...
 
template<typename T >
constexpr auto newtons (T v)
 Produce dimensioned quantity from number of newtons. More...
 
template<typename T >
constexpr auto millinewtons (T v)
 Produce dimensioned quantity from number of millinewtons. More...
 
template<typename T >
constexpr auto micronewtons (T v)
 Produce dimensioned quantity from number of micronewtons. More...
 
template<typename T >
constexpr auto kilonewtons (T v)
 Produce dimensioned quantity from number of kilonewtons. More...
 
template<typename T >
constexpr auto meganewtons (T v)
 Produce dimensioned quantity from number of meganewtons. More...
 
template<typename T >
constexpr auto dynes (T v)
 Produce dimensioned quantity from number of dynes. More...
 
template<typename T >
constexpr auto joules (T v)
 Produce dimensioned quantity from number of joules. More...
 
template<typename T >
constexpr auto millijoules (T v)
 Produce dimensioned quantity from number of millijoules. More...
 
template<typename T >
constexpr auto microjoules (T v)
 Produce dimensioned quantity from number of microjoules. More...
 
template<typename T >
constexpr auto kilojoules (T v)
 Produce dimensioned quantity from number of kilojoules. More...
 
template<typename T >
constexpr auto megajoules (T v)
 Produce dimensioned quantity from number of megajoules. More...
 
template<typename T >
constexpr auto gigajoules (T v)
 Produce dimensioned quantity from number of gigajoules. More...
 
template<typename T >
constexpr auto ergs (T v)
 Produce dimensioned quantity from number of ergs. More...
 
template<typename T >
constexpr auto watts (T v)
 Produce dimensioned quantity from number of watts. More...
 
template<typename T >
constexpr auto milliwatts (T v)
 Produce dimensioned quantity from number of milliwatts. More...
 
template<typename T >
constexpr auto microwatts (T v)
 Produce dimensioned quantity from number of microwatts. More...
 
template<typename T >
constexpr auto kilowatts (T v)
 Produce dimensioned quantity from number of kilowatts. More...
 
template<typename T >
constexpr auto megawatts (T v)
 Produce dimensioned quantity from number of megawatts. More...
 
template<typename T >
constexpr auto gigawatts (T v)
 Produce dimensioned quantity from number of gigawatts. More...
 
template<typename T >
constexpr auto amperes (T v)
 Produce dimensioned quantity from number of amperes. More...
 
template<typename T >
constexpr auto milliamperes (T v)
 Produce dimensioned quantity from number of milliamperes. More...
 
template<typename T >
constexpr auto microamperes (T v)
 Produce dimensioned quantity from number of microamperes. More...
 

Variables

constexpr auto nul_code = nul_dim.encode()
 
static constexpr dim nul_dim
 Null dimension. More...
 

Detailed Description

Classes and functions supporting a model of physically dimensioned quantities.

Typedef Documentation

Define dim as specification of basic_dim by way of YAML- and ERB-generated type dim_base_off.

Definition at line 260 of file dim.hpp.

using vnix::units::dim_base_off = typedef basic_dim_base_off<uint_fast8_t>

Definition at line 56 of file dim-base-off.hpp.

template<typename OT >
using vnix::units::otest = typedef typename number<OT>::test

Integer typedef defined by number<OT> only if OT be an acceptable scalar-type.

This typedef is used to support SFINAE, which limits the scope of some of the template member functions defined here in dimval.

Template Parameters
OTType of scalar.

Definition at line 47 of file dimval.hpp.

Function Documentation

template<typename T >
constexpr auto vnix::units::amperes ( v)

Produce dimensioned quantity from number of amperes.

Template Parameters
TNumeric type stored in dimensioned quantity.
Parameters
vNumber of amperes.

Definition at line 1647 of file units.hpp.

1647 { return impl::amperes<T>(v); }
template<typename T >
constexpr auto vnix::units::centimeters ( v)

Produce dimensioned quantity from number of centimeters.

Template Parameters
TNumeric type stored in dimensioned quantity.
Parameters
vNumber of centimeters

Definition at line 1323 of file units.hpp.

1323 { return impl::centimeters<T>(v); };

Here is the caller graph for this function:

constexpr dim vnix::units::charge_dim ( ,
,
,
,
 
)

Exponents for charge.

Here is the caller graph for this function:

template<typename T >
constexpr auto vnix::units::coulombs ( v)

Produce dimensioned quantity from number of coulombs.

Template Parameters
TNumeric type stored in dimensioned quantity.
Parameters
vNumber of coulombs

Definition at line 1449 of file units.hpp.

1449 { return impl::coulombs<T>(v); }

Here is the caller graph for this function:

template<typename T >
constexpr auto vnix::units::dynes ( v)

Produce dimensioned quantity from number of dynes.

Template Parameters
TNumeric type stored in dimensioned quantity.
Parameters
vNumber of dynes.

Definition at line 1563 of file units.hpp.

1563 { return impl::dynes<T>(v); }
template<typename T >
constexpr auto vnix::units::ergs ( v)

Produce dimensioned quantity from number of ergs.

Template Parameters
TNumeric type stored in dimensioned quantity.
Parameters
vNumber of ergs.

Definition at line 1605 of file units.hpp.

1605 { return impl::ergs<T>(v); }
template<typename T >
constexpr auto vnix::units::feet ( v)

Produce dimensioned quantity from number of feet.

Template Parameters
TNumeric type stored in dimensioned quantity.
Parameters
vNumber of feet.

Definition at line 1503 of file units.hpp.

1503 { return impl::feet<T>(v); }
template<typename T >
constexpr auto vnix::units::femtometers ( v)

Produce dimensioned quantity from number of femtometers.

Template Parameters
TNumeric type stored in dimensioned quantity.
Parameters
vNumber of femtometers

Definition at line 1353 of file units.hpp.

1353 { return impl::femtometers<T>(v); };

Here is the caller graph for this function:

template<typename T >
constexpr auto vnix::units::femtoseconds ( v)

Produce dimensioned quantity from number of femtoseconds.

Template Parameters
TNumeric type stored in dimensioned quantity.
Parameters
vNumber of femtoseconds

Definition at line 1443 of file units.hpp.

1443 { return impl::femtoseconds<T>(v); };

Here is the caller graph for this function:

template<typename T >
constexpr auto vnix::units::gigajoules ( v)

Produce dimensioned quantity from number of gigajoules.

Template Parameters
TNumeric type stored in dimensioned quantity.
Parameters
vNumber of gigajoules.

Definition at line 1599 of file units.hpp.

1599 { return impl::gigajoules<T>(v); }
template<typename T >
constexpr auto vnix::units::gigawatts ( v)

Produce dimensioned quantity from number of gigawatts.

Template Parameters
TNumeric type stored in dimensioned quantity.
Parameters
vNumber of gigawatts.

Definition at line 1641 of file units.hpp.

1641 { return impl::gigawatts<T>(v); }
template<typename T >
constexpr auto vnix::units::grams ( v)

Produce dimensioned quantity from number of grams.

Template Parameters
TNumeric type stored in dimensioned quantity.
Parameters
vNumber of grams

Definition at line 1371 of file units.hpp.

1371 { return impl::grams<T>(v); }

Here is the caller graph for this function:

template<typename T >
constexpr auto vnix::units::inches ( v)

Produce dimensioned quantity from number of inches.

Template Parameters
TNumeric type stored in dimensioned quantity.
Parameters
vNumber of inches.

Definition at line 1515 of file units.hpp.

1515 { return impl::inches<T>(v); }
template<typename T >
constexpr auto vnix::units::invert ( v)

Return the reciprocal of an instance of type T.

Specialize this as necessary for matrix, etc.

Template Parameters
TNumeric type of dimensioned quantity.
Parameters
vNumeric value stored in dimensioned quantity.

Definition at line 31 of file dimval.hpp.

31 { return T(1) / v; }
template<typename S , int R, int C, int OPT, int MR, int MC>
constexpr auto vnix::units::invert ( Eigen::Matrix< S, R, C, OPT, MR, MC > const &  m)

Specialization of invert() for Eigen::Matrix.

Definition at line 35 of file dimval.hpp.

35  {
36  return m.inverse();
37 }
template<typename T >
constexpr auto vnix::units::joules ( v)

Produce dimensioned quantity from number of joules.

Template Parameters
TNumeric type stored in dimensioned quantity.
Parameters
vNumber of joules.

Definition at line 1569 of file units.hpp.

1569 { return impl::joules<T>(v); }
template<typename T >
constexpr auto vnix::units::kelvins ( v)

Produce dimensioned quantity from number of kelvins.

Template Parameters
TNumeric type stored in dimensioned quantity.
Parameters
vNumber of kelvins

Definition at line 1479 of file units.hpp.

1479 { return impl::kelvins<T>(v); }

Here is the caller graph for this function:

template<typename T >
constexpr auto vnix::units::kilofeet ( v)

Produce dimensioned quantity from number of kilofeet.

Template Parameters
TNumeric type stored in dimensioned quantity.
Parameters
vNumber of kilofeet.

Definition at line 1509 of file units.hpp.

1509 { return impl::kilofeet<T>(v); }
template<typename T >
constexpr auto vnix::units::kilograms ( v)

Produce dimensioned quantity from number of kilograms.

Template Parameters
TNumeric type stored in dimensioned quantity.
Parameters
vNumber of kilograms

Definition at line 1401 of file units.hpp.

1401 { return impl::kilograms<T>(v); };

Here is the caller graph for this function:

template<typename T >
constexpr auto vnix::units::kilojoules ( v)

Produce dimensioned quantity from number of kilojoules.

Template Parameters
TNumeric type stored in dimensioned quantity.
Parameters
vNumber of kilojoules.

Definition at line 1587 of file units.hpp.

1587 { return impl::kilojoules<T>(v); }
template<typename T >
constexpr auto vnix::units::kilometers ( v)

Produce dimensioned quantity from number of kilometers.

Template Parameters
TNumeric type stored in dimensioned quantity.
Parameters
vNumber of kilometers

Definition at line 1359 of file units.hpp.

1359 { return impl::kilometers<T>(v); };

Here is the caller graph for this function:

template<typename T >
constexpr auto vnix::units::kilonewtons ( v)

Produce dimensioned quantity from number of kilonewtons.

Template Parameters
TNumeric type stored in dimensioned quantity.
Parameters
vNumber of kilonewtons.

Definition at line 1551 of file units.hpp.

1551 { return impl::kilonewtons<T>(v); }
template<typename T >
constexpr auto vnix::units::kilowatts ( v)

Produce dimensioned quantity from number of kilowatts.

Template Parameters
TNumeric type stored in dimensioned quantity.
Parameters
vNumber of kilowatts.

Definition at line 1629 of file units.hpp.

1629 { return impl::kilowatts<T>(v); }
constexpr dim vnix::units::length_dim ( ,
,
,
,
 
)

Exponents for length.

Here is the caller graph for this function:

constexpr dim vnix::units::mass_dim ( ,
,
,
,
 
)

Exponents for mass.

Here is the caller graph for this function:

template<typename T >
constexpr auto vnix::units::megagrams ( v)

Produce dimensioned quantity from number of megagrams.

Template Parameters
TNumeric type stored in dimensioned quantity.
Parameters
vNumber of megagrams

Definition at line 1407 of file units.hpp.

1407 { return impl::megagrams<T>(v); };

Here is the caller graph for this function:

template<typename T >
constexpr auto vnix::units::megajoules ( v)

Produce dimensioned quantity from number of megajoules.

Template Parameters
TNumeric type stored in dimensioned quantity.
Parameters
vNumber of megajoules.

Definition at line 1593 of file units.hpp.

1593 { return impl::megajoules<T>(v); }
template<typename T >
constexpr auto vnix::units::megameters ( v)

Produce dimensioned quantity from number of megameters.

Template Parameters
TNumeric type stored in dimensioned quantity.
Parameters
vNumber of megameters

Definition at line 1365 of file units.hpp.

1365 { return impl::megameters<T>(v); };

Here is the caller graph for this function:

template<typename T >
constexpr auto vnix::units::meganewtons ( v)

Produce dimensioned quantity from number of meganewtons.

Template Parameters
TNumeric type stored in dimensioned quantity.
Parameters
vNumber of meganewtons.

Definition at line 1557 of file units.hpp.

1557 { return impl::meganewtons<T>(v); }
template<typename T >
constexpr auto vnix::units::megawatts ( v)

Produce dimensioned quantity from number of megawatts.

Template Parameters
TNumeric type stored in dimensioned quantity.
Parameters
vNumber of megawatts.

Definition at line 1635 of file units.hpp.

1635 { return impl::megawatts<T>(v); }
template<typename T >
constexpr auto vnix::units::meters ( v)

Produce dimensioned quantity from number of meters.

Template Parameters
TNumeric type stored in dimensioned quantity.
Parameters
vNumber of meters

Definition at line 1317 of file units.hpp.

1317 { return impl::meters<T>(v); }

Here is the caller graph for this function:

template<typename T >
constexpr auto vnix::units::microamperes ( v)

Produce dimensioned quantity from number of microamperes.

Template Parameters
TNumeric type stored in dimensioned quantity.
Parameters
vNumber of microamperes.

Definition at line 1659 of file units.hpp.

1659 { return impl::microamperes<T>(v); }
template<typename T >
constexpr auto vnix::units::microcoulombs ( v)

Produce dimensioned quantity from number of microcoulombs.

Template Parameters
TNumeric type stored in dimensioned quantity.
Parameters
vNumber of microcoulombs

Definition at line 1461 of file units.hpp.

1461 { return impl::microcoulombs<T>(v); };

Here is the caller graph for this function:

template<typename T >
constexpr auto vnix::units::micrograms ( v)

Produce dimensioned quantity from number of micrograms.

Template Parameters
TNumeric type stored in dimensioned quantity.
Parameters
vNumber of micrograms

Definition at line 1383 of file units.hpp.

1383 { return impl::micrograms<T>(v); };

Here is the caller graph for this function:

template<typename T >
constexpr auto vnix::units::microjoules ( v)

Produce dimensioned quantity from number of microjoules.

Template Parameters
TNumeric type stored in dimensioned quantity.
Parameters
vNumber of microjoules.

Definition at line 1581 of file units.hpp.

1581 { return impl::microjoules<T>(v); }
template<typename T >
constexpr auto vnix::units::microkelvins ( v)

Produce dimensioned quantity from number of microkelvins.

Template Parameters
TNumeric type stored in dimensioned quantity.
Parameters
vNumber of microkelvins

Definition at line 1491 of file units.hpp.

1491 { return impl::microkelvins<T>(v); };

Here is the caller graph for this function:

template<typename T >
constexpr auto vnix::units::micrometers ( v)

Produce dimensioned quantity from number of micrometers.

Template Parameters
TNumeric type stored in dimensioned quantity.
Parameters
vNumber of micrometers

Definition at line 1335 of file units.hpp.

1335 { return impl::micrometers<T>(v); };

Here is the caller graph for this function:

template<typename T >
constexpr auto vnix::units::micronewtons ( v)

Produce dimensioned quantity from number of micronewtons.

Template Parameters
TNumeric type stored in dimensioned quantity.
Parameters
vNumber of micronewtons.

Definition at line 1545 of file units.hpp.

1545 { return impl::micronewtons<T>(v); }
template<typename T >
constexpr auto vnix::units::microseconds ( v)

Produce dimensioned quantity from number of microseconds.

Template Parameters
TNumeric type stored in dimensioned quantity.
Parameters
vNumber of microseconds

Definition at line 1425 of file units.hpp.

1425 { return impl::microseconds<T>(v); };

Here is the caller graph for this function:

template<typename T >
constexpr auto vnix::units::microwatts ( v)

Produce dimensioned quantity from number of microwatts.

Template Parameters
TNumeric type stored in dimensioned quantity.
Parameters
vNumber of microwatts.

Definition at line 1623 of file units.hpp.

1623 { return impl::microwatts<T>(v); }
template<typename T >
constexpr auto vnix::units::miles ( v)

Produce dimensioned quantity from number of miles.

Template Parameters
TNumeric type stored in dimensioned quantity.
Parameters
vNumber of miles.

Definition at line 1527 of file units.hpp.

1527 { return impl::miles<T>(v); }
template<typename T >
constexpr auto vnix::units::milliamperes ( v)

Produce dimensioned quantity from number of milliamperes.

Template Parameters
TNumeric type stored in dimensioned quantity.
Parameters
vNumber of milliamperes.

Definition at line 1653 of file units.hpp.

1653 { return impl::milliamperes<T>(v); }
template<typename T >
constexpr auto vnix::units::millicoulombs ( v)

Produce dimensioned quantity from number of millicoulombs.

Template Parameters
TNumeric type stored in dimensioned quantity.
Parameters
vNumber of millicoulombs

Definition at line 1455 of file units.hpp.

1455 { return impl::millicoulombs<T>(v); };

Here is the caller graph for this function:

template<typename T >
constexpr auto vnix::units::milligrams ( v)

Produce dimensioned quantity from number of milligrams.

Template Parameters
TNumeric type stored in dimensioned quantity.
Parameters
vNumber of milligrams

Definition at line 1377 of file units.hpp.

1377 { return impl::milligrams<T>(v); };

Here is the caller graph for this function:

template<typename T >
constexpr auto vnix::units::millijoules ( v)

Produce dimensioned quantity from number of millijoules.

Template Parameters
TNumeric type stored in dimensioned quantity.
Parameters
vNumber of millijoules.

Definition at line 1575 of file units.hpp.

1575 { return impl::millijoules<T>(v); }
template<typename T >
constexpr auto vnix::units::millikelvins ( v)

Produce dimensioned quantity from number of millikelvins.

Template Parameters
TNumeric type stored in dimensioned quantity.
Parameters
vNumber of millikelvins

Definition at line 1485 of file units.hpp.

1485 { return impl::millikelvins<T>(v); };

Here is the caller graph for this function:

template<typename T >
constexpr auto vnix::units::millimeters ( v)

Produce dimensioned quantity from number of millimeters.

Template Parameters
TNumeric type stored in dimensioned quantity.
Parameters
vNumber of millimeters

Definition at line 1329 of file units.hpp.

1329 { return impl::millimeters<T>(v); };

Here is the caller graph for this function:

template<typename T >
constexpr auto vnix::units::millinewtons ( v)

Produce dimensioned quantity from number of millinewtons.

Template Parameters
TNumeric type stored in dimensioned quantity.
Parameters
vNumber of millinewtons.

Definition at line 1539 of file units.hpp.

1539 { return impl::millinewtons<T>(v); }
template<typename T >
constexpr auto vnix::units::milliseconds ( v)

Produce dimensioned quantity from number of milliseconds.

Template Parameters
TNumeric type stored in dimensioned quantity.
Parameters
vNumber of milliseconds

Definition at line 1419 of file units.hpp.

1419 { return impl::milliseconds<T>(v); };

Here is the caller graph for this function:

template<typename T >
constexpr auto vnix::units::milliwatts ( v)

Produce dimensioned quantity from number of milliwatts.

Template Parameters
TNumeric type stored in dimensioned quantity.
Parameters
vNumber of milliwatts.

Definition at line 1617 of file units.hpp.

1617 { return impl::milliwatts<T>(v); }
template<typename T >
constexpr auto vnix::units::nanocoulombs ( v)

Produce dimensioned quantity from number of nanocoulombs.

Template Parameters
TNumeric type stored in dimensioned quantity.
Parameters
vNumber of nanocoulombs

Definition at line 1467 of file units.hpp.

1467 { return impl::nanocoulombs<T>(v); };

Here is the caller graph for this function:

template<typename T >
constexpr auto vnix::units::nanograms ( v)

Produce dimensioned quantity from number of nanograms.

Template Parameters
TNumeric type stored in dimensioned quantity.
Parameters
vNumber of nanograms

Definition at line 1389 of file units.hpp.

1389 { return impl::nanograms<T>(v); };

Here is the caller graph for this function:

template<typename T >
constexpr auto vnix::units::nanokelvins ( v)

Produce dimensioned quantity from number of nanokelvins.

Template Parameters
TNumeric type stored in dimensioned quantity.
Parameters
vNumber of nanokelvins

Definition at line 1497 of file units.hpp.

1497 { return impl::nanokelvins<T>(v); };

Here is the caller graph for this function:

template<typename T >
constexpr auto vnix::units::nanometers ( v)

Produce dimensioned quantity from number of nanometers.

Template Parameters
TNumeric type stored in dimensioned quantity.
Parameters
vNumber of nanometers

Definition at line 1341 of file units.hpp.

1341 { return impl::nanometers<T>(v); };

Here is the caller graph for this function:

template<typename T >
constexpr auto vnix::units::nanoseconds ( v)

Produce dimensioned quantity from number of nanoseconds.

Template Parameters
TNumeric type stored in dimensioned quantity.
Parameters
vNumber of nanoseconds

Definition at line 1431 of file units.hpp.

1431 { return impl::nanoseconds<T>(v); };

Here is the caller graph for this function:

template<typename T >
constexpr auto vnix::units::newtons ( v)

Produce dimensioned quantity from number of newtons.

Template Parameters
TNumeric type stored in dimensioned quantity.
Parameters
vNumber of newtons.

Definition at line 1533 of file units.hpp.

1533 { return impl::newtons<T>(v); }

Here is the caller graph for this function:

template<typename OT , typename T , typename B , otest< OT > = 0>
constexpr auto vnix::units::operator/ ( OT const &  d,
dimval< T, B > const &  v 
)

Invert dimensioned value by dividing it into number.

This function's scope for matching the template-type parameter is limited by SFINAE.

Template Parameters
OTType of scale-factor.
TType of numeric storage in dimval.
BType of base-class for dimension.
Parameters
dNumber as dividend.
vDimensioned quantitity as divisor.
Returns
Inverted value.

Definition at line 425 of file dimval.hpp.

425  {
426  return d * v.inverse();
427 }

Here is the caller graph for this function:

template<typename T >
constexpr auto vnix::units::picocoulombs ( v)

Produce dimensioned quantity from number of picocoulombs.

Template Parameters
TNumeric type stored in dimensioned quantity.
Parameters
vNumber of picocoulombs

Definition at line 1473 of file units.hpp.

1473 { return impl::picocoulombs<T>(v); };

Here is the caller graph for this function:

template<typename T >
constexpr auto vnix::units::picograms ( v)

Produce dimensioned quantity from number of picograms.

Template Parameters
TNumeric type stored in dimensioned quantity.
Parameters
vNumber of picograms

Definition at line 1395 of file units.hpp.

1395 { return impl::picograms<T>(v); };

Here is the caller graph for this function:

template<typename T >
constexpr auto vnix::units::picometers ( v)

Produce dimensioned quantity from number of picometers.

Template Parameters
TNumeric type stored in dimensioned quantity.
Parameters
vNumber of picometers

Definition at line 1347 of file units.hpp.

1347 { return impl::picometers<T>(v); };

Here is the caller graph for this function:

template<typename T >
constexpr auto vnix::units::picoseconds ( v)

Produce dimensioned quantity from number of picoseconds.

Template Parameters
TNumeric type stored in dimensioned quantity.
Parameters
vNumber of picoseconds

Definition at line 1437 of file units.hpp.

1437 { return impl::picoseconds<T>(v); };

Here is the caller graph for this function:

template<int64_t PN, int64_t PD = 1, typename T , typename B >
constexpr auto vnix::units::pow ( dimval< T, B > const &  v)

Raise dimensioned value to rational power.

Template Parameters
PNNumerator of power.
PDDenominator of power (by default, 1).
TType for numeric storage.
BType of base-class for dimension.
Parameters
vOriginal dimensioned value.
Returns
Transformed value of different dimension.

Definition at line 448 of file dimval.hpp.

448  {
449  return v.template power<PN, PD>();
450 }

Here is the caller graph for this function:

template<typename T , typename B >
constexpr auto vnix::units::pow ( dimval< T, B > const &  v,
dim::rat  p 
)

Raise dimensioned value to rational power.

Template Parameters
TType for numeric storage.
BType of base-class for dimension.
Parameters
vOriginal dimensioned value.
pRational power.
Returns
Transformed value of different dimension.

Definition at line 460 of file dimval.hpp.

460  {
461  return v.power(p);
462 }

Here is the caller graph for this function:

template<typename T >
constexpr auto vnix::units::seconds ( v)

Produce dimensioned quantity from number of seconds.

Template Parameters
TNumeric type stored in dimensioned quantity.
Parameters
vNumber of seconds

Definition at line 1413 of file units.hpp.

1413 { return impl::seconds<T>(v); }

Here is the caller graph for this function:

template<typename T , typename B , otest< T > = 0>
constexpr auto vnix::units::sqrt ( dimval< T, B > const &  v)

Take the squre root of a dimensioned quantity.

Template Parameters
TType for numeric storage.
BType of base-class for dimension.
Parameters
vOriginal dimensioned value.
Returns
Transformed value of different dimension.

Definition at line 436 of file dimval.hpp.

436  {
437  return v.square_root();
438 }

Here is the caller graph for this function:

constexpr dim vnix::units::temperature_dim ( ,
,
,
,
 
)

Exponents for temperature.

Here is the caller graph for this function:

constexpr dim vnix::units::time_dim ( ,
,
,
,
 
)

Exponents for time.

Here is the caller graph for this function:

template<typename T >
constexpr auto vnix::units::watts ( v)

Produce dimensioned quantity from number of watts.

Template Parameters
TNumeric type stored in dimensioned quantity.
Parameters
vNumber of watts.

Definition at line 1611 of file units.hpp.

1611 { return impl::watts<T>(v); }
template<typename T >
constexpr auto vnix::units::yards ( v)

Produce dimensioned quantity from number of yards.

Template Parameters
TNumeric type stored in dimensioned quantity.
Parameters
vNumber of yards.

Definition at line 1521 of file units.hpp.

1521 { return impl::yards<T>(v); }

Variable Documentation

constexpr auto vnix::units::nul_code = nul_dim.encode()

Definition at line 520 of file dimval.hpp.

constexpr dim vnix::units::nul_dim
static

Null dimension.

Definition at line 263 of file dim.hpp.