# Re: OT: Half open interval [n,n):was:Re: Accelerated C++: [1,rows] Not so fast

**From:** Steven T. Hatton (*susudata_at_setidava.kushan.aa*)

**Date:** 11/09/04

**Next message:**Roger Thornhill: "Simple UNICODE question"**Previous message:**Stuart Gerchick: "Re: C++ Coding Standards : 101 Rules, Guidelines, and Best Practices"**In reply to:**E. Mark Ping: "Re: OT: Half open interval [n,n):was:Re: Accelerated C++: [1,rows] Not so fast"**Next in thread:**E. Mark Ping: "Re: OT: Half open interval [n,n):was:Re: Accelerated C++: [1,rows] Not so fast"**Reply:**E. Mark Ping: "Re: OT: Half open interval [n,n):was:Re: Accelerated C++: [1,rows] Not so fast"**Messages sorted by:**[ date ] [ thread ] [ subject ] [ author ]

Date: Tue, 09 Nov 2004 16:51:23 -0500

E. Mark Ping wrote:

*> In article <1v6dncuSLY9KsQ3cRVn-qA@speakeasy.net>,
*

*> Steven T. Hatton <susudata@setidava.kushan.aa> wrote:
*

*>>E. Mark Ping wrote:
*

*>>
*

*>>> My apologies for being too terse. I've never seen standard
*

*>>> nomenclature for [a,a), but it makes sense in this case to define it
*

*>>> as the empty set, since that means the union property holds:
*

*>>>
*

*>>> [a,a) U [a,b) = [a,b)
*

*>>>
*

*>>> Similarly, 0! is commenly defined as 1 becuase it's most useful with
*

*>>> that definition in combinatorics, but AFAIK it's not a universally
*

*>>> accepted definition.
*

*>
*

*>>I have a serious reservation about accepting the idea of [a,a) = {}.
*

*>>After thinking it over, it seems to me that [a,a) carries more information
*

*>>than
*

*>>{}.
*

*>
*

*> Well of course it does. 0! carries more information that 1.
*

*>
*

*>>In order for [a,a) = {} to be true, [a,a) = [b,b) where a != b; I'm
*

*>>not sure I'm willing to accept that proposition.
*

*>
*

*> I don't know why not. Note the equivalence:
*

*>
*

*> [a,a) U [a,b) = [a,b)
*

*> [b,b) U [a,b) = [a,b)
*

*>
*

*> Definining [a,a) = {} is just as useful as defining 0! = 1.
*

*>
*

*>>In particular, I'm not sure I'm willing to extend it to the concept
*

*>>of indexing of memory locations.
*

*>
*

*> Why not?
*

*>
*

*> while (p!=q)
*

*> {
*

*> *p++ = *q++;
*

*> }
*

*>
*

*> Is meaningful for p and q even if p==q at the beginning of the loop.
*

If I am discussing a finite range of indices [0,n) and choose some index m

such that 0 < m < n, I can write [m,m) to signify an empty sequence

beginning at m. Hence I can indicate the mth element with the notation

[m,m+1). If I assume [m,m) = [p,p) where p!=m, I am in effect saying

[m,m+1) = [p,p+1) which is false.

-- "If our hypothesis is about anything and not about some one or more particular things, then our deductions constitute mathematics. Thus mathematics may be defined as the subject in which we never know what we are talking about, nor whether what we are saying is true." - Bertrand Russell

**Next message:**Roger Thornhill: "Simple UNICODE question"**Previous message:**Stuart Gerchick: "Re: C++ Coding Standards : 101 Rules, Guidelines, and Best Practices"**In reply to:**E. Mark Ping: "Re: OT: Half open interval [n,n):was:Re: Accelerated C++: [1,rows] Not so fast"**Next in thread:**E. Mark Ping: "Re: OT: Half open interval [n,n):was:Re: Accelerated C++: [1,rows] Not so fast"**Reply:**E. Mark Ping: "Re: OT: Half open interval [n,n):was:Re: Accelerated C++: [1,rows] Not so fast"**Messages sorted by:**[ date ] [ thread ] [ subject ] [ author ]