
Boost : 
From: Martin Bonner (martin.bonner_at_[hidden])
Date: 20060601 04:47:42
Original Message
From: boostbounces_at_[hidden]
[mailto:boostbounces_at_[hidden]] On Behalf Of Maarten Kronenburg
Sent: 31 May 2006 21:25 To: boost_at_[hidden]
Subject: Re: [boost] Infinite precision integer draft
> This problem with unsigned_integer
> throwing an exception when negative
> is already apparent for the two
> expressions
> ab
> and
> a+b [presumably b+a is intended]
[snip]
> a true unsigned infinite precision integer
> which may or may not throw exceptions in
> equivalent expressions
But those expressions are not equivalent for nonnegative integers.
ab is defined as the value x such that b+x is equal to a.
For nonnegative integers that means ab is only defined if a >= b.
I would argue that a is not really meaningful for nonnegative
integers, but the most obvious definition is that a is the value x such
that a+x = 0. That is only defined for a = 0 (and gives x=0).
Thus your first expression is defined for any b <= a, whereas your
second is only defined for b=0.
nonnegative integers are not the same as Z (but are still useful).
 Martin Bonner Martin.Bonner_at_[hidden] Pi Technology, Milton Hall, Ely Road, Milton, Cambridge, CB4 6WZ, ENGLAND Tel: +44 (0)1223 203894
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk