On Mon, 2021-06-07 at 18:23 +0300, Andy Shevchenko wrote: > Sometimes it's useful to have well-defined SI metric prefix to be used > to self-describe the formulas or equations. > > List most popular ones in the units.h. trivia: > diff --git a/include/linux/units.h b/include/linux/units.h [] > @@ -4,6 +4,22 @@ > > > #include <linux/math.h> > > +/* Metric prefixes in accordance with Système international (d'unités) */ > +#define PETA 1000000000000000LL > +#define TERA 1000000000000LL > +#define GIGA 1000000000L > +#define MEGA 1000000L > +#define KILO 1000L It's perhaps more legible to avoid the long sequences of zeros by using preprocessor mechanisms. #define KILO (1000UL) #define MEGA (KILO * 1000) #define GIGA (MEGA * 1000) #define TERA (GIGA * 1000ULL) #define PETA (TERA * 1000) or maybe: #define KILO (1000UL) #define MEGA (1000UL * 1000UL) #define GIGA (1000UL * 1000UL * 1000UL) #define TERA (1000ULL * 1000ULL * 1000ULL * 1000ULL) #define PETA (1000ULL * 1000ULL * 1000ULL * 1000ULL * 1000ULL) etc... > +#define HECTO 100L > +#define DECA 10L Should it be DECA or DEKA or both? https://www.nist.gov/pml/weights-and-measures/metric-si-prefixes deka Example: dekameter da 10**1 Ten > +#define DECI 10L > +#define CENTI 100L > +#define MILLI 1000L > +#define MICRO 1000000L > +#define NANO 1000000000L > +#define PICO 1000000000000LL > +#define FEMTO 1000000000000000LL IMO: Might as well include all the prefixes up to 10**24 EXA ZETTA YOTTA, ATTA ZEPTO YOCTO And how do people avoid using MILLI for KILO, MEGA for MICRO, etc... The compiler won't care but usage could look odd.