Boost logo

Boost :

Subject: Re: [boost] [contract] toward N3351 concepts
From: Dave Abrahams (dave_at_[hidden])
Date: 2012-10-05 17:26:03


on Fri Oct 05 2012, Andrew Sutton <asutton.list-AT-gmail.com> wrote:

>> Zero breaks the postconditions of division. So?
>
> Not always. Dividing by 0.0 for floating point types is a valid
> operation resulting in inf.

Yes, I'm talking about ints.

> One of the goals of looking at semantics in this way is to help
> programmers document and better characterize the requirements of their
> algorithms. An algorithm that computes generically over Fields
> necessarily excludes NaN as an input and must guard against division
> by 0. An algorithm that computes over, say, ExtendedReals may allow
> division by 0, but also excludes NaN. A generic algorithm designed
> specifically for floating point types allows division by 0 and NaN as
> inputs.

Right.

> The point isn't to change the meaning of existing programs by
> excluding certain values or expressions. Axioms should present a
> consistent logical framework that precisely but generally describe the
> semantics our existing programs. This is not easily done.

I agree; it is not.

-- 
Dave Abrahams
BoostPro Computing                  Software Development        Training
http://www.boostpro.com             Clang/LLVM/EDG Compilers  C++  Boost

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk