SyDEVS  v0.6.7
Multiscale Simulation and Systems Modeling Library
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
sydevs Namespace Reference

Namespaces

 systems
 

Classes

class  arraynd
 A class template for a multidimensional array with elements of type T arranged in a lattice of ndims dimensions. More...
 
class  arraynd< T, 1 >
 A one-dimensional (1D) specialization of the arraynd multidimensional array template. More...
 
class  arraynd_base
 A base class template for a multidimensional array with elements of type T arranged in a lattice of ndim dimensions. More...
 
class  identity
 A data type which identifies an item by combining an encapsulated integer-valued index with a dimension supplied by a template parameter. More...
 
class  pointer
 A data type which represents a pointer to anything. More...
 
struct  qualified_type
 
struct  qualified_type< bool >
 
struct  qualified_type< int64 >
 
struct  qualified_type< float64 >
 
struct  qualified_type< std::string >
 
struct  qualified_type< quantity< U > >
 
struct  qualified_type< identity< U > >
 
struct  qualified_type< arraynd< T, ndims > >
 
struct  qualified_type< std::pair< T1, T2 > >
 
struct  qualified_type< std::tuple< T > >
 
struct  qualified_type< std::tuple< T, Ts...> >
 
struct  qualified_type< std::vector< T > >
 
struct  qualified_type< std::set< T > >
 
struct  qualified_type< std::map< Key, T > >
 
struct  qualified_type< std::shared_ptr< T > >
 
struct  tuple_tostring_helper
 
struct  tuple_tostring_helper< Tuple, 1 >
 
class  quantity_base
 A base class for quantities, defining operations that do not depend on the dimension. More...
 
class  quantity
 A data type template which represents a dimensioned quantity as a multiple of a precision level, where the dimensions are supplied by a units template parameter and the precision level is specified using a value of type scale. More...
 
class  quantity< no_units >
 A speciaulization to facilitate the conversion of dimensionless quantities into floats. More...
 
class  range
 A data type which represents a range of array indices along a single dimension. More...
 
class  scale
 A data type which represents the general concept of scale as a dimensionless power of 1000. More...
 
class  string_builder
 A class for converting stream objects to string values. More...
 
class  timer
 A class for measuring and accumulating intervals of wallclock time. More...
 
struct  units
 A template which represents Standard International (SI) units inclusing the base units such as grams, meters, and seconds, and derived units such as meters-per-second-squared. More...
 
class  time_cache
 A data structure which provides durations elapsed since past events. More...
 
class  time_point
 A data structure which represents a point in time as an arbitrary-precision multiple of its shortest time precision. More...
 
class  time_queue
 A data structure which supports the scheduling of future events. More...
 
class  time_sequence
 A data structure which represents a sequence of increasing time points. More...
 

Typedefs

template<typename T >
using array1d = arraynd< T, 1 >
 
template<typename T >
using array2d = arraynd< T, 2 >
 
template<typename T >
using array3d = arraynd< T, 3 >
 
template<typename T >
using array4d = arraynd< T, 4 >
 
template<typename T >
using array5d = arraynd< T, 5 >
 
template<typename T >
using array6d = arraynd< T, 6 >
 
template<typename T >
using array7d = arraynd< T, 7 >
 
template<typename T >
using array8d = arraynd< T, 8 >
 
template<typename T >
using array9d = arraynd< T, 9 >
 
using int8 = int8_t
 
using int16 = int16_t
 
using int32 = int32_t
 
using int64 = int64_t
 
using uint8 = uint8_t
 
using uint16 = uint16_t
 
using uint32 = uint32_t
 
using uint64 = uint64_t
 
using float32 = float
 
using float64 = double
 
using tostring_function = std::function< std::string(const pointer &)>
 
using mass = quantity< grams >
 
using distance = quantity< meters >
 
using duration = quantity< seconds >
 
using electric_current = quantity< amperes >
 
using thermodynamic_temperature = quantity< kelvins >
 
using amount_of_substance = quantity< moles >
 
using luminous_intensity = quantity< candelas >
 
using clock = std::chrono::steady_clock
 
using clock_time = std::chrono::time_point< clock >
 
using no_units = units< 0, 0, 0, 0, 0, 0, 0 >
 
using grams = units< 1, 0, 0, 0, 0, 0, 0 >
 
using meters = units< 0, 1, 0, 0, 0, 0, 0 >
 
using seconds = units< 0, 0, 1, 0, 0, 0, 0 >
 
using amperes = units< 0, 0, 0, 1, 0, 0, 0 >
 
using kelvins = units< 0, 0, 0, 0, 1, 0, 0 >
 
using moles = units< 0, 0, 0, 0, 0, 1, 0 >
 
using candelas = units< 0, 0, 0, 0, 0, 0, 1 >
 

Functions

template<typename T , int64 ndims>
bool aligned (const arraynd< T, ndims > &lhs, const arraynd< T, ndims > &rhs)
 
template<typename T , int64 ndims>
arraynd< T, ndims > operator+ (const arraynd< T, ndims > &rhs)
 
template<typename T , int64 ndims>
arraynd< T, ndims > operator- (const arraynd< T, ndims > &rhs)
 
template<typename T , int64 ndims>
arraynd< T, ndims > operator+ (const arraynd< T, ndims > &lhs, const arraynd< T, ndims > &rhs)
 
template<typename T , int64 ndims, typename U >
arraynd< T, ndims > operator+ (const arraynd< T, ndims > &lhs, const U &rhs)
 
template<typename T , int64 ndims, typename U >
arraynd< T, ndims > operator+ (const U &lhs, const arraynd< T, ndims > &rhs)
 
template<typename T , int64 ndims>
arraynd< T, ndims > operator- (const arraynd< T, ndims > &lhs, const arraynd< T, ndims > &rhs)
 
template<typename T , int64 ndims, typename U >
arraynd< T, ndims > operator- (const arraynd< T, ndims > &lhs, const U &rhs)
 
template<typename T , int64 ndims, typename U >
arraynd< T, ndims > operator- (const U &lhs, const arraynd< T, ndims > &rhs)
 
template<typename T , int64 ndims>
arraynd< T, ndims > operator* (const arraynd< T, ndims > &lhs, const arraynd< T, ndims > &rhs)
 
template<typename T , int64 ndims, typename U >
arraynd< T, ndims > operator* (const arraynd< T, ndims > &lhs, const U &rhs)
 
template<typename T , int64 ndims, typename U >
arraynd< T, ndims > operator* (const U &lhs, const arraynd< T, ndims > &rhs)
 
template<typename T , int64 ndims>
arraynd< T, ndims > operator/ (const arraynd< T, ndims > &lhs, const arraynd< T, ndims > &rhs)
 
template<typename T , int64 ndims, typename U >
arraynd< T, ndims > operator/ (const arraynd< T, ndims > &lhs, const U &rhs)
 
template<typename T , int64 ndims, typename U >
arraynd< T, ndims > operator/ (const U &lhs, const arraynd< T, ndims > &rhs)
 
template<int64 ndims>
arraynd< bool, ndims > operator! (const arraynd< bool, ndims > &arr)
 
template<int64 ndims>
bool all (const arraynd< bool, ndims > &arr)
 Returns true if all elements of arr are true. More...
 
template<int64 ndims>
bool any (const arraynd< bool, ndims > &arr)
 Returns true if any element of arr is true. More...
 
template<typename T , int64 ndims>
arraynd< bool, ndims > operator< (const arraynd< T, ndims > &lhs, const arraynd< T, ndims > &rhs)
 
template<typename T , int64 ndims>
arraynd< bool, ndims > operator> (const arraynd< T, ndims > &lhs, const arraynd< T, ndims > &rhs)
 
template<typename T , int64 ndims>
arraynd< bool, ndims > operator<= (const arraynd< T, ndims > &lhs, const arraynd< T, ndims > &rhs)
 
template<typename T , int64 ndims>
arraynd< bool, ndims > operator>= (const arraynd< T, ndims > &lhs, const arraynd< T, ndims > &rhs)
 
template<typename T , int64 ndims>
arraynd< bool, ndims > operator== (const arraynd< T, ndims > &lhs, const arraynd< T, ndims > &rhs)
 
template<typename T , int64 ndims>
arraynd< bool, ndims > operator!= (const arraynd< T, ndims > &lhs, const arraynd< T, ndims > &rhs)
 
template<int64 ndims>
arraynd< bool, ndims > operator&& (const arraynd< bool, ndims > &lhs, const arraynd< bool, ndims > &rhs)
 
template<int64 ndims>
arraynd< bool, ndims > operator|| (const arraynd< bool, ndims > &lhs, const arraynd< bool, ndims > &rhs)
 
template<typename T , int64 ndims, typename U >
arraynd< bool, ndims > operator< (const arraynd< T, ndims > &lhs, const U &rhs)
 
template<typename T , int64 ndims, typename U >
arraynd< bool, ndims > operator> (const arraynd< T, ndims > &lhs, const U &rhs)
 
template<typename T , int64 ndims, typename U >
arraynd< bool, ndims > operator<= (const arraynd< T, ndims > &lhs, const U &rhs)
 
template<typename T , int64 ndims, typename U >
arraynd< bool, ndims > operator>= (const arraynd< T, ndims > &lhs, const U &rhs)
 
template<typename T , int64 ndims, typename U >
arraynd< bool, ndims > operator== (const arraynd< T, ndims > &lhs, const U &rhs)
 
template<typename T , int64 ndims, typename U >
arraynd< bool, ndims > operator!= (const arraynd< T, ndims > &lhs, const U &rhs)
 
template<int64 ndims>
arraynd< bool, ndims > operator&& (const arraynd< bool, ndims > &lhs, const bool &rhs)
 
template<int64 ndims>
arraynd< bool, ndims > operator|| (const arraynd< bool, ndims > &lhs, const bool &rhs)
 
template<typename T , int64 ndims, typename U >
arraynd< bool, ndims > operator< (const U &lhs, const arraynd< T, ndims > &rhs)
 
template<typename T , int64 ndims, typename U >
arraynd< bool, ndims > operator> (const U &lhs, const arraynd< T, ndims > &rhs)
 
template<typename T , int64 ndims, typename U >
arraynd< bool, ndims > operator<= (const U &lhs, const arraynd< T, ndims > &rhs)
 
template<typename T , int64 ndims, typename U >
arraynd< bool, ndims > operator>= (const U &lhs, const arraynd< T, ndims > &rhs)
 
template<typename T , int64 ndims, typename U >
arraynd< bool, ndims > operator== (const U &lhs, const arraynd< T, ndims > &rhs)
 
template<typename T , int64 ndims, typename U >
arraynd< bool, ndims > operator!= (const U &lhs, const arraynd< T, ndims > &rhs)
 
template<int64 ndims>
arraynd< bool, ndims > operator&& (const bool &lhs, const arraynd< bool, ndims > &rhs)
 
template<int64 ndims>
arraynd< bool, ndims > operator|| (const bool &lhs, const arraynd< bool, ndims > &rhs)
 
template<typename T , int64 ndims, typename U >
arraynd< T, ndims > to (const arraynd< U, ndims > &arr)
 Returns a multidimensional array with the elements of arr converted to type T. More...
 
template<typename T , int64 ndims, typename U >
arraynd< T, ndims > replace (const arraynd< T, ndims > &lhs, const arraynd< bool, ndims > &selection, const U &rhs)
 Returns a multidimensional array similar to arr but with elements for which selection(indices) is true replaced with rhs. More...
 
template<typename T , int64 ndims, typename U >
arraynd< T, ndims > replace (const arraynd< T, ndims > &lhs, const arraynd< bool, ndims > &selection, const arraynd< U, ndims > &rhs)
 Returns a multidimensional array similar to arr but with elements for which selection(indices) is true replaced with the corresponding elements of rhs. More...
 
template<typename T , int64 ndims>
std::ostream & operator<< (std::ostream &os, const arraynd< T, ndims > &rhs)
 
template<typename U >
constexpr const identity< U > operator+ (int64 lhs, identity< U > rhs)
 
template<typename U >
std::ostream & operator<< (std::ostream &os, const identity< U > &rhs)
 
template<typename T >
std::string tostring (const T &val)
 
template<typename T >
tostring_function tostring_converter ()
 
template<typename U >
constexpr const quantity< U > operator* (float64 lhs, quantity< U > rhs)
 
template<typename U >
constexpr const quantity
< decltype(_1/U())> 
operator/ (float64 lhs, quantity< U > rhs)
 
constexpr mass operator""_yg (unsigned long long multiplier)
 
constexpr mass operator""_zg (unsigned long long multiplier)
 
constexpr mass operator""_ag (unsigned long long multiplier)
 
constexpr mass operator""_fg (unsigned long long multiplier)
 
constexpr mass operator""_pg (unsigned long long multiplier)
 
constexpr mass operator""_ng (unsigned long long multiplier)
 
constexpr mass operator""_ug (unsigned long long multiplier)
 
constexpr mass operator""_mg (unsigned long long multiplier)
 
constexpr mass operator""_g (unsigned long long multiplier)
 
constexpr mass operator""_kg (unsigned long long multiplier)
 
constexpr mass operator""_Mg (unsigned long long multiplier)
 
constexpr mass operator""_Gg (unsigned long long multiplier)
 
constexpr mass operator""_Tg (unsigned long long multiplier)
 
constexpr mass operator""_Pg (unsigned long long multiplier)
 
constexpr mass operator""_Eg (unsigned long long multiplier)
 
constexpr mass operator""_Zg (unsigned long long multiplier)
 
constexpr mass operator""_Yg (unsigned long long multiplier)
 
constexpr distance operator""_ym (unsigned long long multiplier)
 
constexpr distance operator""_zm (unsigned long long multiplier)
 
constexpr distance operator""_am (unsigned long long multiplier)
 
constexpr distance operator""_fm (unsigned long long multiplier)
 
constexpr distance operator""_pm (unsigned long long multiplier)
 
constexpr distance operator""_nm (unsigned long long multiplier)
 
constexpr distance operator""_um (unsigned long long multiplier)
 
constexpr distance operator""_mm (unsigned long long multiplier)
 
constexpr distance operator""_m (unsigned long long multiplier)
 
constexpr distance operator""_km (unsigned long long multiplier)
 
constexpr distance operator""_Mm (unsigned long long multiplier)
 
constexpr distance operator""_Gm (unsigned long long multiplier)
 
constexpr distance operator""_Tm (unsigned long long multiplier)
 
constexpr distance operator""_Pm (unsigned long long multiplier)
 
constexpr distance operator""_Em (unsigned long long multiplier)
 
constexpr distance operator""_Zm (unsigned long long multiplier)
 
constexpr distance operator""_Ym (unsigned long long multiplier)
 
constexpr duration operator""_ys (unsigned long long multiplier)
 
constexpr duration operator""_zs (unsigned long long multiplier)
 
constexpr duration operator""_as (unsigned long long multiplier)
 
constexpr duration operator""_fs (unsigned long long multiplier)
 
constexpr duration operator""_ps (unsigned long long multiplier)
 
constexpr duration operator""_ns (unsigned long long multiplier)
 
constexpr duration operator""_us (unsigned long long multiplier)
 
constexpr duration operator""_ms (unsigned long long multiplier)
 
constexpr duration operator""_s (unsigned long long multiplier)
 
constexpr duration operator""_ks (unsigned long long multiplier)
 
constexpr duration operator""_Ms (unsigned long long multiplier)
 
constexpr duration operator""_Gs (unsigned long long multiplier)
 
constexpr duration operator""_Ts (unsigned long long multiplier)
 
constexpr duration operator""_Ps (unsigned long long multiplier)
 
constexpr duration operator""_Es (unsigned long long multiplier)
 
constexpr duration operator""_Zs (unsigned long long multiplier)
 
constexpr duration operator""_Ys (unsigned long long multiplier)
 
constexpr duration operator""_min (unsigned long long multiplier)
 
constexpr duration operator""_hr (unsigned long long multiplier)
 
constexpr duration operator""_day (unsigned long long multiplier)
 
constexpr duration operator""_yr (unsigned long long multiplier)
 
constexpr electric_current operator""_yA (unsigned long long multiplier)
 
constexpr electric_current operator""_zA (unsigned long long multiplier)
 
constexpr electric_current operator""_aA (unsigned long long multiplier)
 
constexpr electric_current operator""_fA (unsigned long long multiplier)
 
constexpr electric_current operator""_pA (unsigned long long multiplier)
 
constexpr electric_current operator""_nA (unsigned long long multiplier)
 
constexpr electric_current operator""_uA (unsigned long long multiplier)
 
constexpr electric_current operator""_mA (unsigned long long multiplier)
 
constexpr electric_current operator""_A (unsigned long long multiplier)
 
constexpr electric_current operator""_kA (unsigned long long multiplier)
 
constexpr electric_current operator""_MA (unsigned long long multiplier)
 
constexpr electric_current operator""_GA (unsigned long long multiplier)
 
constexpr electric_current operator""_TA (unsigned long long multiplier)
 
constexpr electric_current operator""_PA (unsigned long long multiplier)
 
constexpr electric_current operator""_EA (unsigned long long multiplier)
 
constexpr electric_current operator""_ZA (unsigned long long multiplier)
 
constexpr electric_current operator""_YA (unsigned long long multiplier)
 
constexpr thermodynamic_temperature operator""_yK (unsigned long long multiplier)
 
constexpr thermodynamic_temperature operator""_zK (unsigned long long multiplier)
 
constexpr thermodynamic_temperature operator""_aK (unsigned long long multiplier)
 
constexpr thermodynamic_temperature operator""_fK (unsigned long long multiplier)
 
constexpr thermodynamic_temperature operator""_pK (unsigned long long multiplier)
 
constexpr thermodynamic_temperature operator""_nK (unsigned long long multiplier)
 
constexpr thermodynamic_temperature operator""_uK (unsigned long long multiplier)
 
constexpr thermodynamic_temperature operator""_mK (unsigned long long multiplier)
 
constexpr thermodynamic_temperature operator""_K (unsigned long long multiplier)
 
constexpr thermodynamic_temperature operator""_kK (unsigned long long multiplier)
 
constexpr thermodynamic_temperature operator""_MK (unsigned long long multiplier)
 
constexpr thermodynamic_temperature operator""_GK (unsigned long long multiplier)
 
constexpr thermodynamic_temperature operator""_TK (unsigned long long multiplier)
 
constexpr thermodynamic_temperature operator""_PK (unsigned long long multiplier)
 
constexpr thermodynamic_temperature operator""_EK (unsigned long long multiplier)
 
constexpr thermodynamic_temperature operator""_ZK (unsigned long long multiplier)
 
constexpr thermodynamic_temperature operator""_YK (unsigned long long multiplier)
 
constexpr amount_of_substance operator""_ymol (unsigned long long multiplier)
 
constexpr amount_of_substance operator""_zmol (unsigned long long multiplier)
 
constexpr amount_of_substance operator""_amol (unsigned long long multiplier)
 
constexpr amount_of_substance operator""_fmol (unsigned long long multiplier)
 
constexpr amount_of_substance operator""_pmol (unsigned long long multiplier)
 
constexpr amount_of_substance operator""_nmol (unsigned long long multiplier)
 
constexpr amount_of_substance operator""_umol (unsigned long long multiplier)
 
constexpr amount_of_substance operator""_mmol (unsigned long long multiplier)
 
constexpr amount_of_substance operator""_mol (unsigned long long multiplier)
 
constexpr amount_of_substance operator""_kmol (unsigned long long multiplier)
 
constexpr amount_of_substance operator""_Mmol (unsigned long long multiplier)
 
constexpr amount_of_substance operator""_Gmol (unsigned long long multiplier)
 
constexpr amount_of_substance operator""_Tmol (unsigned long long multiplier)
 
constexpr amount_of_substance operator""_Pmol (unsigned long long multiplier)
 
constexpr amount_of_substance operator""_Emol (unsigned long long multiplier)
 
constexpr amount_of_substance operator""_Zmol (unsigned long long multiplier)
 
constexpr amount_of_substance operator""_Ymol (unsigned long long multiplier)
 
constexpr luminous_intensity operator""_ycd (unsigned long long multiplier)
 
constexpr luminous_intensity operator""_zcd (unsigned long long multiplier)
 
constexpr luminous_intensity operator""_acd (unsigned long long multiplier)
 
constexpr luminous_intensity operator""_fcd (unsigned long long multiplier)
 
constexpr luminous_intensity operator""_pcd (unsigned long long multiplier)
 
constexpr luminous_intensity operator""_ncd (unsigned long long multiplier)
 
constexpr luminous_intensity operator""_ucd (unsigned long long multiplier)
 
constexpr luminous_intensity operator""_mcd (unsigned long long multiplier)
 
constexpr luminous_intensity operator""_cd (unsigned long long multiplier)
 
constexpr luminous_intensity operator""_kcd (unsigned long long multiplier)
 
constexpr luminous_intensity operator""_Mcd (unsigned long long multiplier)
 
constexpr luminous_intensity operator""_Gcd (unsigned long long multiplier)
 
constexpr luminous_intensity operator""_Tcd (unsigned long long multiplier)
 
constexpr luminous_intensity operator""_Pcd (unsigned long long multiplier)
 
constexpr luminous_intensity operator""_Ecd (unsigned long long multiplier)
 
constexpr luminous_intensity operator""_Zcd (unsigned long long multiplier)
 
constexpr luminous_intensity operator""_Ycd (unsigned long long multiplier)
 
std::ostream & operator<< (std::ostream &os, const mass &rhs)
 
std::ostream & operator<< (std::ostream &os, const distance &rhs)
 
std::ostream & operator<< (std::ostream &os, const duration &rhs)
 
std::ostream & operator<< (std::ostream &os, const electric_current &rhs)
 
std::ostream & operator<< (std::ostream &os, const thermodynamic_temperature &rhs)
 
std::ostream & operator<< (std::ostream &os, const amount_of_substance &rhs)
 
std::ostream & operator<< (std::ostream &os, const luminous_intensity &rhs)
 
std::ostream & operator<< (std::ostream &os, const quantity< no_units > &rhs)
 
template<typename U >
std::ostream & operator<< (std::ostream &os, const quantity< U > &rhs)
 
std::ostream & operator<< (std::ostream &os, const scale &rhs)
 
constexpr const scale operator+ (int64 lhs, scale rhs)
 
std::ostream & operator<< (std::ostream &os, const time_point &rhs)
 
bool operator== (duration lhs, const time_point &rhs)
 
bool operator!= (duration lhs, const time_point &rhs)
 
bool operator< (duration lhs, const time_point &rhs)
 
bool operator> (duration lhs, const time_point &rhs)
 
bool operator<= (duration lhs, const time_point &rhs)
 
bool operator>= (duration lhs, const time_point &rhs)
 

Variables

const float64 pi = 3.14159265358979323846
 
constexpr int64 quantity_limit = int64(1)*1000*1000*1000*1000*1000
 The maximum precision multiplier, plus 1. More...
 
constexpr scale no_scale = scale(std::numeric_limits<scale::level_type>::max())
 
constexpr scale yocto = scale(-8)
 
constexpr scale zepto = scale(-7)
 
constexpr scale atto = scale(-6)
 
constexpr scale femto = scale(-5)
 
constexpr scale pico = scale(-4)
 
constexpr scale nano = scale(-3)
 
constexpr scale micro = scale(-2)
 
constexpr scale milli = scale(-1)
 
constexpr scale unit = scale(0)
 
constexpr scale kilo = scale(1)
 
constexpr scale mega = scale(2)
 
constexpr scale giga = scale(3)
 
constexpr scale tera = scale(4)
 
constexpr scale peta = scale(5)
 
constexpr scale exa = scale(6)
 
constexpr scale zetta = scale(7)
 
constexpr scale yotta = scale(8)
 
constexpr auto _1 = no_units()
 
constexpr auto _g = grams()
 
constexpr auto _m = meters()
 
constexpr auto _s = seconds()
 
constexpr auto _A = amperes()
 
constexpr auto _K = kelvins()
 
constexpr auto _mol = moles()
 
constexpr auto _cd = candelas()
 

Typedef Documentation

using sydevs::amperes = typedef units<0, 0, 0, 1, 0, 0, 0>
template<typename T >
using sydevs::array1d = typedef arraynd<T, 1>
template<typename T >
using sydevs::array2d = typedef arraynd<T, 2>
template<typename T >
using sydevs::array3d = typedef arraynd<T, 3>
template<typename T >
using sydevs::array4d = typedef arraynd<T, 4>
template<typename T >
using sydevs::array5d = typedef arraynd<T, 5>
template<typename T >
using sydevs::array6d = typedef arraynd<T, 6>
template<typename T >
using sydevs::array7d = typedef arraynd<T, 7>
template<typename T >
using sydevs::array8d = typedef arraynd<T, 8>
template<typename T >
using sydevs::array9d = typedef arraynd<T, 9>
using sydevs::candelas = typedef units<0, 0, 0, 0, 0, 0, 1>
using sydevs::clock = typedef std::chrono::steady_clock
using sydevs::clock_time = typedef std::chrono::time_point<clock>
using sydevs::distance = typedef quantity<meters>
using sydevs::duration = typedef quantity<seconds>
using sydevs::float32 = typedef float
using sydevs::float64 = typedef double
using sydevs::grams = typedef units<1, 0, 0, 0, 0, 0, 0>
using sydevs::int16 = typedef int16_t
using sydevs::int32 = typedef int32_t
using sydevs::int64 = typedef int64_t
using sydevs::int8 = typedef int8_t
using sydevs::kelvins = typedef units<0, 0, 0, 0, 1, 0, 0>
using sydevs::mass = typedef quantity<grams>
using sydevs::meters = typedef units<0, 1, 0, 0, 0, 0, 0>
using sydevs::moles = typedef units<0, 0, 0, 0, 0, 1, 0>
using sydevs::no_units = typedef units<0, 0, 0, 0, 0, 0, 0>
using sydevs::seconds = typedef units<0, 0, 1, 0, 0, 0, 0>
using sydevs::tostring_function = typedef std::function<std::string(const pointer&)>
using sydevs::uint16 = typedef uint16_t
using sydevs::uint32 = typedef uint32_t
using sydevs::uint64 = typedef uint64_t
using sydevs::uint8 = typedef uint8_t

Function Documentation

template<typename T , int64 ndims>
bool sydevs::aligned ( const arraynd< T, ndims > &  lhs,
const arraynd< T, ndims > &  rhs 
)
template<int64 ndims>
bool sydevs::all ( const arraynd< bool, ndims > &  arr)

Returns true if all elements of arr are true.

template<int64 ndims>
bool sydevs::any ( const arraynd< bool, ndims > &  arr)

Returns true if any element of arr is true.

template<int64 ndims>
arraynd<bool, ndims> sydevs::operator! ( const arraynd< bool, ndims > &  arr)
bool sydevs::operator!= ( duration  lhs,
const time_point &  rhs 
)
template<typename T , int64 ndims>
arraynd<bool, ndims> sydevs::operator!= ( const arraynd< T, ndims > &  lhs,
const arraynd< T, ndims > &  rhs 
)
template<typename T , int64 ndims, typename U >
arraynd<bool, ndims> sydevs::operator!= ( const arraynd< T, ndims > &  lhs,
const U &  rhs 
)
template<typename T , int64 ndims, typename U >
arraynd<bool, ndims> sydevs::operator!= ( const U &  lhs,
const arraynd< T, ndims > &  rhs 
)
constexpr electric_current sydevs::operator""_A ( unsigned long long  multiplier)
constexpr electric_current sydevs::operator""_aA ( unsigned long long  multiplier)
constexpr luminous_intensity sydevs::operator""_acd ( unsigned long long  multiplier)
constexpr mass sydevs::operator""_ag ( unsigned long long  multiplier)
constexpr thermodynamic_temperature sydevs::operator""_aK ( unsigned long long  multiplier)
constexpr distance sydevs::operator""_am ( unsigned long long  multiplier)
constexpr amount_of_substance sydevs::operator""_amol ( unsigned long long  multiplier)
constexpr duration sydevs::operator""_as ( unsigned long long  multiplier)
constexpr luminous_intensity sydevs::operator""_cd ( unsigned long long  multiplier)
constexpr duration sydevs::operator""_day ( unsigned long long  multiplier)
constexpr electric_current sydevs::operator""_EA ( unsigned long long  multiplier)
constexpr luminous_intensity sydevs::operator""_Ecd ( unsigned long long  multiplier)
constexpr mass sydevs::operator""_Eg ( unsigned long long  multiplier)
constexpr thermodynamic_temperature sydevs::operator""_EK ( unsigned long long  multiplier)
constexpr distance sydevs::operator""_Em ( unsigned long long  multiplier)
constexpr amount_of_substance sydevs::operator""_Emol ( unsigned long long  multiplier)
constexpr duration sydevs::operator""_Es ( unsigned long long  multiplier)
constexpr electric_current sydevs::operator""_fA ( unsigned long long  multiplier)
constexpr luminous_intensity sydevs::operator""_fcd ( unsigned long long  multiplier)
constexpr mass sydevs::operator""_fg ( unsigned long long  multiplier)
constexpr thermodynamic_temperature sydevs::operator""_fK ( unsigned long long  multiplier)
constexpr distance sydevs::operator""_fm ( unsigned long long  multiplier)
constexpr amount_of_substance sydevs::operator""_fmol ( unsigned long long  multiplier)
constexpr duration sydevs::operator""_fs ( unsigned long long  multiplier)
constexpr mass sydevs::operator""_g ( unsigned long long  multiplier)
constexpr electric_current sydevs::operator""_GA ( unsigned long long  multiplier)
constexpr luminous_intensity sydevs::operator""_Gcd ( unsigned long long  multiplier)
constexpr mass sydevs::operator""_Gg ( unsigned long long  multiplier)
constexpr thermodynamic_temperature sydevs::operator""_GK ( unsigned long long  multiplier)
constexpr distance sydevs::operator""_Gm ( unsigned long long  multiplier)
constexpr amount_of_substance sydevs::operator""_Gmol ( unsigned long long  multiplier)
constexpr duration sydevs::operator""_Gs ( unsigned long long  multiplier)
constexpr duration sydevs::operator""_hr ( unsigned long long  multiplier)
constexpr thermodynamic_temperature sydevs::operator""_K ( unsigned long long  multiplier)
constexpr electric_current sydevs::operator""_kA ( unsigned long long  multiplier)
constexpr luminous_intensity sydevs::operator""_kcd ( unsigned long long  multiplier)
constexpr mass sydevs::operator""_kg ( unsigned long long  multiplier)
constexpr thermodynamic_temperature sydevs::operator""_kK ( unsigned long long  multiplier)
constexpr distance sydevs::operator""_km ( unsigned long long  multiplier)
constexpr amount_of_substance sydevs::operator""_kmol ( unsigned long long  multiplier)
constexpr duration sydevs::operator""_ks ( unsigned long long  multiplier)
constexpr distance sydevs::operator""_m ( unsigned long long  multiplier)
constexpr electric_current sydevs::operator""_mA ( unsigned long long  multiplier)
constexpr electric_current sydevs::operator""_MA ( unsigned long long  multiplier)
constexpr luminous_intensity sydevs::operator""_mcd ( unsigned long long  multiplier)
constexpr luminous_intensity sydevs::operator""_Mcd ( unsigned long long  multiplier)
constexpr mass sydevs::operator""_mg ( unsigned long long  multiplier)
constexpr mass sydevs::operator""_Mg ( unsigned long long  multiplier)
constexpr duration sydevs::operator""_min ( unsigned long long  multiplier)
constexpr thermodynamic_temperature sydevs::operator""_mK ( unsigned long long  multiplier)
constexpr thermodynamic_temperature sydevs::operator""_MK ( unsigned long long  multiplier)
constexpr distance sydevs::operator""_mm ( unsigned long long  multiplier)
constexpr distance sydevs::operator""_Mm ( unsigned long long  multiplier)
constexpr amount_of_substance sydevs::operator""_mmol ( unsigned long long  multiplier)
constexpr amount_of_substance sydevs::operator""_Mmol ( unsigned long long  multiplier)
constexpr amount_of_substance sydevs::operator""_mol ( unsigned long long  multiplier)
constexpr duration sydevs::operator""_ms ( unsigned long long  multiplier)
constexpr duration sydevs::operator""_Ms ( unsigned long long  multiplier)
constexpr electric_current sydevs::operator""_nA ( unsigned long long  multiplier)
constexpr luminous_intensity sydevs::operator""_ncd ( unsigned long long  multiplier)
constexpr mass sydevs::operator""_ng ( unsigned long long  multiplier)
constexpr thermodynamic_temperature sydevs::operator""_nK ( unsigned long long  multiplier)
constexpr distance sydevs::operator""_nm ( unsigned long long  multiplier)
constexpr amount_of_substance sydevs::operator""_nmol ( unsigned long long  multiplier)
constexpr duration sydevs::operator""_ns ( unsigned long long  multiplier)
constexpr electric_current sydevs::operator""_pA ( unsigned long long  multiplier)
constexpr electric_current sydevs::operator""_PA ( unsigned long long  multiplier)
constexpr luminous_intensity sydevs::operator""_pcd ( unsigned long long  multiplier)
constexpr luminous_intensity sydevs::operator""_Pcd ( unsigned long long  multiplier)
constexpr mass sydevs::operator""_pg ( unsigned long long  multiplier)
constexpr mass sydevs::operator""_Pg ( unsigned long long  multiplier)
constexpr thermodynamic_temperature sydevs::operator""_pK ( unsigned long long  multiplier)
constexpr thermodynamic_temperature sydevs::operator""_PK ( unsigned long long  multiplier)
constexpr distance sydevs::operator""_pm ( unsigned long long  multiplier)
constexpr distance sydevs::operator""_Pm ( unsigned long long  multiplier)
constexpr amount_of_substance sydevs::operator""_pmol ( unsigned long long  multiplier)
constexpr amount_of_substance sydevs::operator""_Pmol ( unsigned long long  multiplier)
constexpr duration sydevs::operator""_ps ( unsigned long long  multiplier)
constexpr duration sydevs::operator""_Ps ( unsigned long long  multiplier)
constexpr duration sydevs::operator""_s ( unsigned long long  multiplier)
constexpr electric_current sydevs::operator""_TA ( unsigned long long  multiplier)
constexpr luminous_intensity sydevs::operator""_Tcd ( unsigned long long  multiplier)
constexpr mass sydevs::operator""_Tg ( unsigned long long  multiplier)
constexpr thermodynamic_temperature sydevs::operator""_TK ( unsigned long long  multiplier)
constexpr distance sydevs::operator""_Tm ( unsigned long long  multiplier)
constexpr amount_of_substance sydevs::operator""_Tmol ( unsigned long long  multiplier)
constexpr duration sydevs::operator""_Ts ( unsigned long long  multiplier)
constexpr electric_current sydevs::operator""_uA ( unsigned long long  multiplier)
constexpr luminous_intensity sydevs::operator""_ucd ( unsigned long long  multiplier)
constexpr mass sydevs::operator""_ug ( unsigned long long  multiplier)
constexpr thermodynamic_temperature sydevs::operator""_uK ( unsigned long long  multiplier)
constexpr distance sydevs::operator""_um ( unsigned long long  multiplier)
constexpr amount_of_substance sydevs::operator""_umol ( unsigned long long  multiplier)
constexpr duration sydevs::operator""_us ( unsigned long long  multiplier)
constexpr electric_current sydevs::operator""_yA ( unsigned long long  multiplier)
constexpr electric_current sydevs::operator""_YA ( unsigned long long  multiplier)
constexpr luminous_intensity sydevs::operator""_ycd ( unsigned long long  multiplier)
constexpr luminous_intensity sydevs::operator""_Ycd ( unsigned long long  multiplier)
constexpr mass sydevs::operator""_yg ( unsigned long long  multiplier)
constexpr mass sydevs::operator""_Yg ( unsigned long long  multiplier)
constexpr thermodynamic_temperature sydevs::operator""_yK ( unsigned long long  multiplier)
constexpr thermodynamic_temperature sydevs::operator""_YK ( unsigned long long  multiplier)
constexpr distance sydevs::operator""_ym ( unsigned long long  multiplier)
constexpr distance sydevs::operator""_Ym ( unsigned long long  multiplier)
constexpr amount_of_substance sydevs::operator""_ymol ( unsigned long long  multiplier)
constexpr amount_of_substance sydevs::operator""_Ymol ( unsigned long long  multiplier)
constexpr duration sydevs::operator""_yr ( unsigned long long  multiplier)
constexpr duration sydevs::operator""_ys ( unsigned long long  multiplier)
constexpr duration sydevs::operator""_Ys ( unsigned long long  multiplier)
constexpr electric_current sydevs::operator""_zA ( unsigned long long  multiplier)
constexpr electric_current sydevs::operator""_ZA ( unsigned long long  multiplier)
constexpr luminous_intensity sydevs::operator""_zcd ( unsigned long long  multiplier)
constexpr luminous_intensity sydevs::operator""_Zcd ( unsigned long long  multiplier)
constexpr mass sydevs::operator""_zg ( unsigned long long  multiplier)
constexpr mass sydevs::operator""_Zg ( unsigned long long  multiplier)
constexpr thermodynamic_temperature sydevs::operator""_zK ( unsigned long long  multiplier)
constexpr thermodynamic_temperature sydevs::operator""_ZK ( unsigned long long  multiplier)
constexpr distance sydevs::operator""_zm ( unsigned long long  multiplier)
constexpr distance sydevs::operator""_Zm ( unsigned long long  multiplier)
constexpr amount_of_substance sydevs::operator""_zmol ( unsigned long long  multiplier)
constexpr amount_of_substance sydevs::operator""_Zmol ( unsigned long long  multiplier)
constexpr duration sydevs::operator""_zs ( unsigned long long  multiplier)
constexpr duration sydevs::operator""_Zs ( unsigned long long  multiplier)
template<int64 ndims>
arraynd<bool, ndims> sydevs::operator&& ( const arraynd< bool, ndims > &  lhs,
const arraynd< bool, ndims > &  rhs 
)
template<int64 ndims>
arraynd<bool, ndims> sydevs::operator&& ( const arraynd< bool, ndims > &  lhs,
const bool rhs 
)
template<int64 ndims>
arraynd<bool, ndims> sydevs::operator&& ( const bool lhs,
const arraynd< bool, ndims > &  rhs 
)
template<typename T , int64 ndims>
arraynd<T, ndims> sydevs::operator* ( const arraynd< T, ndims > &  lhs,
const arraynd< T, ndims > &  rhs 
)
template<typename T , int64 ndims, typename U >
arraynd<T, ndims> sydevs::operator* ( const arraynd< T, ndims > &  lhs,
const U &  rhs 
)
template<typename T , int64 ndims, typename U >
arraynd<T, ndims> sydevs::operator* ( const U &  lhs,
const arraynd< T, ndims > &  rhs 
)
template<typename U >
constexpr const quantity<U> sydevs::operator* ( float64  lhs,
quantity< U >  rhs 
)
template<typename U >
constexpr const identity<U> sydevs::operator+ ( int64  lhs,
identity< U >  rhs 
)
constexpr const scale sydevs::operator+ ( int64  lhs,
scale  rhs 
)
template<typename T , int64 ndims>
arraynd<T, ndims> sydevs::operator+ ( const arraynd< T, ndims > &  rhs)
template<typename T , int64 ndims>
arraynd<T, ndims> sydevs::operator+ ( const arraynd< T, ndims > &  lhs,
const arraynd< T, ndims > &  rhs 
)
template<typename T , int64 ndims, typename U >
arraynd<T, ndims> sydevs::operator+ ( const arraynd< T, ndims > &  lhs,
const U &  rhs 
)
template<typename T , int64 ndims, typename U >
arraynd<T, ndims> sydevs::operator+ ( const U &  lhs,
const arraynd< T, ndims > &  rhs 
)
template<typename T , int64 ndims>
arraynd<T, ndims> sydevs::operator- ( const arraynd< T, ndims > &  rhs)
template<typename T , int64 ndims>
arraynd<T, ndims> sydevs::operator- ( const arraynd< T, ndims > &  lhs,
const arraynd< T, ndims > &  rhs 
)
template<typename T , int64 ndims, typename U >
arraynd<T, ndims> sydevs::operator- ( const arraynd< T, ndims > &  lhs,
const U &  rhs 
)
template<typename T , int64 ndims, typename U >
arraynd<T, ndims> sydevs::operator- ( const U &  lhs,
const arraynd< T, ndims > &  rhs 
)
template<typename T , int64 ndims>
arraynd<T, ndims> sydevs::operator/ ( const arraynd< T, ndims > &  lhs,
const arraynd< T, ndims > &  rhs 
)
template<typename T , int64 ndims, typename U >
arraynd<T, ndims> sydevs::operator/ ( const arraynd< T, ndims > &  lhs,
const U &  rhs 
)
template<typename T , int64 ndims, typename U >
arraynd<T, ndims> sydevs::operator/ ( const U &  lhs,
const arraynd< T, ndims > &  rhs 
)
template<typename U >
constexpr const quantity<decltype(_1/U())> sydevs::operator/ ( float64  lhs,
quantity< U >  rhs 
)
bool sydevs::operator< ( duration  lhs,
const time_point &  rhs 
)
template<typename T , int64 ndims>
arraynd<bool, ndims> sydevs::operator< ( const arraynd< T, ndims > &  lhs,
const arraynd< T, ndims > &  rhs 
)
template<typename T , int64 ndims, typename U >
arraynd<bool, ndims> sydevs::operator< ( const arraynd< T, ndims > &  lhs,
const U &  rhs 
)
template<typename T , int64 ndims, typename U >
arraynd<bool, ndims> sydevs::operator< ( const U &  lhs,
const arraynd< T, ndims > &  rhs 
)
std::ostream & sydevs::operator<< ( std::ostream &  os,
const scale &  rhs 
)
template<typename U >
std::ostream& sydevs::operator<< ( std::ostream &  os,
const identity< U > &  rhs 
)
inline
std::ostream & sydevs::operator<< ( std::ostream &  os,
const time_point &  rhs 
)
std::ostream& sydevs::operator<< ( std::ostream &  os,
const mass &  rhs 
)
inline
template<typename T , int64 ndims>
std::ostream& sydevs::operator<< ( std::ostream &  os,
const arraynd< T, ndims > &  rhs 
)
std::ostream& sydevs::operator<< ( std::ostream &  os,
const distance &  rhs 
)
inline
std::ostream& sydevs::operator<< ( std::ostream &  os,
const duration &  rhs 
)
inline
std::ostream& sydevs::operator<< ( std::ostream &  os,
const electric_current &  rhs 
)
inline
std::ostream& sydevs::operator<< ( std::ostream &  os,
const thermodynamic_temperature &  rhs 
)
inline
std::ostream& sydevs::operator<< ( std::ostream &  os,
const amount_of_substance &  rhs 
)
inline
std::ostream& sydevs::operator<< ( std::ostream &  os,
const luminous_intensity &  rhs 
)
inline
std::ostream& sydevs::operator<< ( std::ostream &  os,
const quantity< no_units > &  rhs 
)
inline
template<typename U >
std::ostream& sydevs::operator<< ( std::ostream &  os,
const quantity< U > &  rhs 
)
inline
bool sydevs::operator<= ( duration  lhs,
const time_point &  rhs 
)
template<typename T , int64 ndims>
arraynd<bool, ndims> sydevs::operator<= ( const arraynd< T, ndims > &  lhs,
const arraynd< T, ndims > &  rhs 
)
template<typename T , int64 ndims, typename U >
arraynd<bool, ndims> sydevs::operator<= ( const arraynd< T, ndims > &  lhs,
const U &  rhs 
)
template<typename T , int64 ndims, typename U >
arraynd<bool, ndims> sydevs::operator<= ( const U &  lhs,
const arraynd< T, ndims > &  rhs 
)
bool sydevs::operator== ( duration  lhs,
const time_point &  rhs 
)
template<typename T , int64 ndims>
arraynd<bool, ndims> sydevs::operator== ( const arraynd< T, ndims > &  lhs,
const arraynd< T, ndims > &  rhs 
)
template<typename T , int64 ndims, typename U >
arraynd<bool, ndims> sydevs::operator== ( const arraynd< T, ndims > &  lhs,
const U &  rhs 
)
template<typename T , int64 ndims, typename U >
arraynd<bool, ndims> sydevs::operator== ( const U &  lhs,
const arraynd< T, ndims > &  rhs 
)
bool sydevs::operator> ( duration  lhs,
const time_point &  rhs 
)
template<typename T , int64 ndims>
arraynd<bool, ndims> sydevs::operator> ( const arraynd< T, ndims > &  lhs,
const arraynd< T, ndims > &  rhs 
)
template<typename T , int64 ndims, typename U >
arraynd<bool, ndims> sydevs::operator> ( const arraynd< T, ndims > &  lhs,
const U &  rhs 
)
template<typename T , int64 ndims, typename U >
arraynd<bool, ndims> sydevs::operator> ( const U &  lhs,
const arraynd< T, ndims > &  rhs 
)
bool sydevs::operator>= ( duration  lhs,
const time_point &  rhs 
)
template<typename T , int64 ndims>
arraynd<bool, ndims> sydevs::operator>= ( const arraynd< T, ndims > &  lhs,
const arraynd< T, ndims > &  rhs 
)
template<typename T , int64 ndims, typename U >
arraynd<bool, ndims> sydevs::operator>= ( const arraynd< T, ndims > &  lhs,
const U &  rhs 
)
template<typename T , int64 ndims, typename U >
arraynd<bool, ndims> sydevs::operator>= ( const U &  lhs,
const arraynd< T, ndims > &  rhs 
)
template<int64 ndims>
arraynd<bool, ndims> sydevs::operator|| ( const arraynd< bool, ndims > &  lhs,
const arraynd< bool, ndims > &  rhs 
)
template<int64 ndims>
arraynd<bool, ndims> sydevs::operator|| ( const arraynd< bool, ndims > &  lhs,
const bool rhs 
)
template<int64 ndims>
arraynd<bool, ndims> sydevs::operator|| ( const bool lhs,
const arraynd< bool, ndims > &  rhs 
)
template<typename T , int64 ndims, typename U >
arraynd<T, ndims> sydevs::replace ( const arraynd< T, ndims > &  lhs,
const arraynd< bool, ndims > &  selection,
const U &  rhs 
)

Returns a multidimensional array similar to arr but with elements for which selection(indices) is true replaced with rhs.

template<typename T , int64 ndims, typename U >
arraynd<T, ndims> sydevs::replace ( const arraynd< T, ndims > &  lhs,
const arraynd< bool, ndims > &  selection,
const arraynd< U, ndims > &  rhs 
)

Returns a multidimensional array similar to arr but with elements for which selection(indices) is true replaced with the corresponding elements of rhs.

template<typename T , int64 ndims, typename U >
arraynd<T, ndims> sydevs::to ( const arraynd< U, ndims > &  arr)

Returns a multidimensional array with the elements of arr converted to type T.

template<typename T >
std::string sydevs::tostring ( const T &  val)
template<typename T >
tostring_function sydevs::tostring_converter ( )
inline

Variable Documentation

constexpr auto sydevs::_1 = no_units()
constexpr auto sydevs::_A = amperes()
constexpr auto sydevs::_cd = candelas()
constexpr auto sydevs::_g = grams()
constexpr auto sydevs::_K = kelvins()
constexpr auto sydevs::_m = meters()
constexpr auto sydevs::_mol = moles()
constexpr auto sydevs::_s = seconds()
constexpr scale sydevs::atto = scale(-6)
constexpr scale sydevs::exa = scale(6)
constexpr scale sydevs::femto = scale(-5)
constexpr scale sydevs::giga = scale(3)
constexpr scale sydevs::kilo = scale(1)
constexpr scale sydevs::mega = scale(2)
constexpr scale sydevs::micro = scale(-2)
constexpr scale sydevs::milli = scale(-1)
constexpr scale sydevs::nano = scale(-3)
constexpr scale sydevs::no_scale = scale(std::numeric_limits<scale::level_type>::max())
constexpr scale sydevs::peta = scale(5)
const float64 sydevs::pi = 3.14159265358979323846
constexpr scale sydevs::pico = scale(-4)
constexpr int64 sydevs::quantity_limit = int64(1)*1000*1000*1000*1000*1000

The maximum precision multiplier, plus 1.

constexpr scale sydevs::tera = scale(4)
constexpr scale sydevs::unit = scale(0)
constexpr scale sydevs::yocto = scale(-8)
constexpr scale sydevs::yotta = scale(8)
constexpr scale sydevs::zepto = scale(-7)
constexpr scale sydevs::zetta = scale(7)