15static constexpr float PI_F = 3.1415926535f;
18#define UNIT_FUNC_MODIFIERS [[nodiscard, gnu::always_inline]] static inline
24static_assert(
sizeof(
celsius_t) ==
sizeof(float));
45static_assert(
sizeof(
meters_t) ==
sizeof(float));
48static_assert(
sizeof(
inches_t) ==
sizeof(float));
49static_assert(
sizeof(
feet_t) ==
sizeof(float));
50static_assert(
sizeof(
miles_t) ==
sizeof(float));
77#define meters_from(x) _Generic((x), \
78 centimeters_t: meters_from_centimeters, \
79 millimeters_t: meters_from_millimeters, \
80 inches_t: meters_from_inches, \
81 feet_t: meters_from_feet, \
82 miles_t: meters_from_miles \
93static_assert(
sizeof(
seconds_t) ==
sizeof(float));
94static_assert(
sizeof(
minutes_t) ==
sizeof(float));
95static_assert(
sizeof(
hours_t) ==
sizeof(float));
96static_assert(
sizeof(
days_t) ==
sizeof(float));
118#define seconds_from(x) _Generic((x), \
119 milliseconds_t: seconds_from_milliseconds, \
120 minutes_t: seconds_from_minutes, \
121 hours_t: seconds_from_hours, \
122 days_t: seconds_from_days \
129static_assert(
sizeof(
degrees_t) ==
sizeof(float));
130static_assert(
sizeof(
radians_t) ==
sizeof(float));
147static_assert(
sizeof(
grams_t) ==
sizeof(float));
148static_assert(
sizeof(
kilograms_t) ==
sizeof(float));
149static_assert(
sizeof(
pounds_t) ==
sizeof(float));
161#define kilograms_from(x) _Generic((x), \
162 grams_t: kilograms_from_grams, \
163 pounds_t: kilograms_from_pounds \
171static_assert(
sizeof(
pascals_t) ==
sizeof(float));
172static_assert(
sizeof(
psi_t) ==
sizeof(float));
173static_assert(
sizeof(
bar_t) ==
sizeof(float));
187 return (
psi_t){ .value = p.
value / 6894.75729f };
192 return (
bar_t){ .value = p.
value / 100000.0f };
200static_assert(
sizeof(
mps_t) ==
sizeof(float));
201static_assert(
sizeof(
kph_t) ==
sizeof(float));
202static_assert(
sizeof(
mph_t) ==
sizeof(float));
211 return (
mps_t){ .value = m.
value * 0.44704f };
221 return (
mph_t){ .value = m.
value / 0.44704f };
float value
Definition units.h:169
float value
Definition units.h:21
float value
Definition units.h:39
float value
Definition units.h:90
float value
Definition units.h:126
float value
Definition units.h:22
float value
Definition units.h:42
float value
Definition units.h:143
float value
Definition units.h:89
float value
Definition units.h:41
float value
Definition units.h:144
float value
Definition units.h:197
float value
Definition units.h:38
float value
Definition units.h:43
float value
Definition units.h:40
float value
Definition units.h:86
float value
Definition units.h:88
float value
Definition units.h:198
float value
Definition units.h:196
float value
Definition units.h:167
float value
Definition units.h:145
float value
Definition units.h:168
float value
Definition units.h:127
float value
Definition units.h:87
UNIT_FUNC_MODIFIERS fahrenheit_t fahrenheit_from(celsius_t c)
Definition units.h:28
UNIT_FUNC_MODIFIERS degrees_t degrees_from(radians_t rad)
Definition units.h:138
UNIT_FUNC_MODIFIERS mps_t mps_from_mph(mph_t m)
Definition units.h:210
UNIT_FUNC_MODIFIERS kph_t kph_from_mps(mps_t m)
Definition units.h:215
UNIT_FUNC_MODIFIERS radians_t radians_from(degrees_t deg)
Definition units.h:133
static constexpr float PI_F
Definition units.h:15
UNIT_FUNC_MODIFIERS meters_t meters_from_miles(miles_t mi)
Definition units.h:73
UNIT_FUNC_MODIFIERS pascals_t pascals_from_bar(bar_t b)
Definition units.h:181
UNIT_FUNC_MODIFIERS seconds_t seconds_from_minutes(minutes_t min)
Definition units.h:104
UNIT_FUNC_MODIFIERS psi_t psi_from_pascals(pascals_t p)
Definition units.h:186
UNIT_FUNC_MODIFIERS seconds_t seconds_from_hours(hours_t hr)
Definition units.h:109
UNIT_FUNC_MODIFIERS celsius_t celsius_from(fahrenheit_t f)
Definition units.h:33
UNIT_FUNC_MODIFIERS kilograms_t kilograms_from_pounds(pounds_t lb)
Definition units.h:157
UNIT_FUNC_MODIFIERS mps_t mps_from_kph(kph_t k)
Definition units.h:205
UNIT_FUNC_MODIFIERS seconds_t seconds_from_days(days_t d)
Definition units.h:114
UNIT_FUNC_MODIFIERS meters_t meters_from_millimeters(millimeters_t mm)
Definition units.h:58
UNIT_FUNC_MODIFIERS bar_t bar_from_pascals(pascals_t p)
Definition units.h:191
UNIT_FUNC_MODIFIERS meters_t meters_from_feet(feet_t ft)
Definition units.h:68
UNIT_FUNC_MODIFIERS pascals_t pascals_from_psi(psi_t p)
Definition units.h:176
#define UNIT_FUNC_MODIFIERS
Definition units.h:18
UNIT_FUNC_MODIFIERS mph_t mph_from_mps(mps_t m)
Definition units.h:220
UNIT_FUNC_MODIFIERS kilograms_t kilograms_from_grams(grams_t g)
Definition units.h:152
UNIT_FUNC_MODIFIERS meters_t meters_from_centimeters(centimeters_t cm)
Definition units.h:53
UNIT_FUNC_MODIFIERS meters_t meters_from_inches(inches_t in)
Definition units.h:63
UNIT_FUNC_MODIFIERS seconds_t seconds_from_milliseconds(milliseconds_t ms)
Definition units.h:99