All of lore.kernel.org
 help / color / mirror / Atom feed
From: Joe Perches <joe@perches.com>
To: Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	linux-i2c@vger.kernel.org, linux-kernel@vger.kernel.org
Cc: Jarkko Nikula <jarkko.nikula@linux.intel.com>,
	Mika Westerberg <mika.westerberg@linux.intel.com>,
	wsa@kernel.org
Subject: Re: [PATCH v2 1/3] units: Add SI metric prefix definitions
Date: Mon, 07 Jun 2021 12:09:58 -0700	[thread overview]
Message-ID: <ae919bae6c21e23b0a1ed0c9327738e59dd90aa0.camel@perches.com> (raw)
In-Reply-To: <20210607152344.57458-1-andriy.shevchenko@linux.intel.com>

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.



  parent reply	other threads:[~2021-06-07 19:10 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-06-07 15:23 [PATCH v2 1/3] units: Add SI metric prefix definitions Andy Shevchenko
2021-06-07 15:23 ` [PATCH v2 2/3] i2c: designware: Use DIV_ROUND_CLOSEST() macro Andy Shevchenko
2021-06-07 15:23 ` [PATCH v2 3/3] i2c: designware: Fix indentation in the header Andy Shevchenko
2021-06-07 15:43 ` [PATCH v2 1/3] units: Add SI metric prefix definitions Joe Perches
2021-06-07 15:57   ` Andy Shevchenko
2021-06-07 16:00     ` Joe Perches
2021-06-07 16:55       ` Andy Shevchenko
2021-06-07 19:09 ` Joe Perches [this message]
2021-06-08  8:42   ` Jarkko Nikula
2021-07-12 14:16     ` Andy Shevchenko

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ae919bae6c21e23b0a1ed0c9327738e59dd90aa0.camel@perches.com \
    --to=joe@perches.com \
    --cc=andriy.shevchenko@linux.intel.com \
    --cc=jarkko.nikula@linux.intel.com \
    --cc=linux-i2c@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mika.westerberg@linux.intel.com \
    --cc=wsa@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.