From: Nick Bowler <nbowler@elliptictech.com>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: dave@gnu.org, Eric Dumazet <eric.dumazet@gmail.com>,
lkml <linux-kernel@vger.kernel.org>,
stable@vger.kernel.org
Subject: Re: [PATCH v2] lib: gcd: prevent possible div by 0
Date: Wed, 12 Sep 2012 17:38:21 -0400 [thread overview]
Message-ID: <20120912213821.GA30480@elliptictech.com> (raw)
In-Reply-To: <20120912123625.fd09bd60.akpm@linux-foundation.org>
On 2012-09-12 12:36 -0700, Andrew Morton wrote:
> On Wed, 12 Sep 2012 21:20:30 +0200
> Davidlohr Bueso <dave@gnu.org> wrote:
> > On Wed, 2012-09-12 at 12:10 -0700, Andrew Morton wrote:
> > > On Mon, 10 Sep 2012 16:35:19 +0200
> > > Davidlohr Bueso <dave@gnu.org> wrote:
> > >
> > > > Account for all properties when a and/or b are 0:
> > > > gcd(0, 0) = 0
> > > > gcd(a, 0) = a
> > > > gcd(0, b) = b
[...]
> I'm scratching my head a bit at the patch though. What does gcd(0, 13)
> mean? That 0 can be divided by 13 zero times, which is an integer
> result? I wonder why any non-buggy code would do that....
The number-theoretical definition of gcd(a, b) on the integers, leaving
aside the case where a and b are both 0, are defined as the greatest
integer which divides both a and b.
An integer x divides y if there exists an integer M such that x*M
equals y.
Observe that all integers divide zero (since we can set M to 0, and
x*0 = 0 for any x). So it's easy to see that the result of gcd(x, 0)
and gcd(0, x) must be |x|.
The case of gcd(0, 0) is tricky. Clearly, as all integers divide zero,
none of these can be the greatest one. So this is normally treated as a
special case, defined to be 0 by convention, as this makes the use of
gcd "nicer" in other areas of mathematics.
Cheers,
--
Nick Bowler, Elliptic Technologies (http://www.elliptictech.com/)
prev parent reply other threads:[~2012-09-12 21:38 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-09-10 14:35 [PATCH v2] lib: gcd: prevent possible div by 0 Davidlohr Bueso
2012-09-12 19:05 ` Davidlohr Bueso
2012-09-12 19:36 ` Greg Kroah-Hartman
2012-09-12 19:10 ` Andrew Morton
2012-09-12 19:20 ` Davidlohr Bueso
2012-09-12 19:36 ` Andrew Morton
2012-09-12 20:30 ` Davidlohr Bueso
2012-09-12 21:38 ` Nick Bowler [this message]
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=20120912213821.GA30480@elliptictech.com \
--to=nbowler@elliptictech.com \
--cc=akpm@linux-foundation.org \
--cc=dave@gnu.org \
--cc=eric.dumazet@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=stable@vger.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.