7#define UNIT(_name) inline constexpr auto _name
40 UNIT(kilometers) = kilo * meters;
41 UNIT(millimeters) = milli * meters;
48 UNIT(kilometers2) = kilo * kilo * meters2;
50 UNIT(meter_kelvins)= meters * kelvins;
51 UNIT(meters2_per_second) = meters2 / seconds;
52 UNIT(kilograms_per_meter2) = kilograms / meters2;
55 UNIT(kilometers3) = kilo * kilo * kilo * meters3;
56 UNIT(meters3_per_second) = meters3 / seconds;
57 UNIT(meters3_per_mol) = meters3 / moles;
58 UNIT(meters3_per_second2) = meters3 / (seconds * seconds);
59 UNIT(meters3_per_kilogram_per_second2) = meters3 / kilograms / (seconds * seconds);
60 UNIT(kilograms_per_meter3) = kilograms / meters3;
63 UNIT(meters_per_hour) = meters / hours;
68 UNIT(newtonmeters) = newtons * meters;
69 UNIT(newtonseconds) = newtons * seconds;
70 UNIT(newtons_per_ampere2) = newtons / (amperes * amperes);
73 UNIT(jouleseconds) = joules * seconds;
74 UNIT(joules_per_second) = joules / seconds;
75 UNIT(joules_per_kelvin) = joules / kelvins;
76 UNIT(joules_per_second_per_kilogram) = joules / seconds / kilograms;
77 UNIT(joules_per_kilogram_per_kelvin) = joules / kilograms / kelvins;
79 UNIT(joules_per_kelvin_per_mol) = joules / kelvins / moles;
83 UNIT(grays) = joules / kilograms;
84 UNIT(sieverts) = joules / kilograms;
87 UNIT(wattmeters2) = watts * meters2;
88 UNIT(watts_per_meter2) = watts / meters2;
90 UNIT(amperes_per_meter) = amperes / meters;
91 UNIT(amperes_per_meter2) = amperes / (meters * meters);
92 UNIT(ampere_hours) = amperes * hours;
95 UNIT(coulombs_per_mol) = coulombs / moles;
98 UNIT(farads) = coulombs / volts;
99 UNIT(hertz_per_volt) = hertz / volts;
100 UNIT(farads_per_meter) = farads / meters;
102 UNIT(ohm_meters) = ohms * meters;
103 UNIT(siemens) = amperes / volts;
104 UNIT(siemens_per_meter) = siemens / meters;
105 UNIT(henrys) = volts * seconds / amperes;
106 UNIT(webers) = volts * seconds;
107 UNIT(teslas) = kilograms / (amperes * seconds * seconds);
108 UNIT(joules_per_tesla) = joules / teslas;
112 UNIT(lumens) = candelas * steradians;
113 UNIT(lumenseconds) = lumens * seconds;
114 UNIT(lumens_per_watt) = lumens / watts;
117 UNIT(kilograms_per_mol) = kilograms / moles;
118 UNIT(mols_per_meter3) = moles / meters3;
119 UNIT(mols_per_kilogram) = moles / kilograms;
120 UNIT(mols_per_second) = moles / seconds;
123 UNIT(kilograms_per_watt) = kilograms / watts;
133 UNIT(miles_per_hour) = statute_miles / hours;
134 UNIT(knots) = nautical_miles / hours;
140 UNIT(bytes_per_second) = bytes / seconds;
171 return 0.5 * (1. - std::cos(2. * x));
177 return 0.5 * (1. + std::cos(2. * x));
187 return std::atan2(meters(y), meters(x));
191 template <
typename T>
195 template <
typename T>
199 template <
typename T>
201 if (x < min)
return min;
202 if (x > max)
return max;
213#undef SI_RETURN_QUANTITY
214#undef SI_INLINE_CONSTEXPR
Defines the dimensionless, the SI base, and the derived SI datatypes, e.g. SI::length.
#define SI_INLINE_CONSTEXPR
Definition internal.h:10
#define SI_INLINE
Definition internal.h:9
Definition constants.h:12
SI_INLINE_CONSTEXPR auto cube(T x)
Raise any number <x> to power of 3 (x³ or x*x*x).
Definition units.h:196
detail::unit< detail::dimension_of_t< Dimension >, detail::ratio< numerator, denumerator > > unit
Definition internal.h:829
SI_INLINE angle sin(angle a)
Calculates the sinus of an angle (a).
Definition units.h:145
SI_INLINE_CONSTEXPR auto clamp(T x, T min, T max)
Clamp any number <x> between <min> and <max> value.
Definition units.h:200
SI_INLINE angle cos(angle a)
Calculates the cosinus of an angle (a).
Definition units.h:151
SI_INLINE angle sqrt(angle a)
Definition units.h:180
SI_INLINE angle tan(angle a)
Calculates the tangens of an angle (a).
Definition units.h:157
SI_INLINE angle sin2(angle x)
Calculates sin²x.
Definition units.h:169
angle radians
basic unit of radians for angle
Definition internal.h:15
SI_INLINE angle atan2(angle y, angle x)
Calculates the atangens of two angles.
Definition units.h:163
long double angle
basic datatype to hold a dimensionless angle, e.g. 3.1415
Definition internal.h:14
SI_INLINE angle cos2(angle x)
Calculates cos²x.
Definition units.h:175
SI_INLINE_CONSTEXPR auto square(T x)
Raise any number <x> to power of 2 (x² or x*x).
Definition units.h:192
Definition internal.h:673
#define UNIT(_name)
Definition units.h:7