Index - All Packages - All Categories - All Classes

Class SetRegion

How do you make regions for spaces whose positions
a) have no orderring (ie., either no ordering can be imposed (as
in HeaperSpace) or it is undesirable to impose one (as curently
in IDSpace)); and
b) there is an inifinte supply of new positions, and you can only
name the positions you've encountered?

SetRegion is our answer to that. To start with, a set region can simply be an enumeration of the positions which are its members. However, because the complement of an XuRegion must be a valid XuRegion, and we have no other representation of the infinite set of positions left over, we must also be able to represent the region consisting of all positions except those explicitly enumerated. Every SetRegion must either have a finite number of positions, or it must cover all the space except for a finite number of positions.

With regard to degrees of simplicity (see class comment in XuRegion), we currently only have distinctions. There are no non-distinctions, and therefore no non-simple SetRegions. Interesting cases are:

1) empty region
2) full region
3) singleton set (single member)
4) singleton hole (single non-member)
5) region with more than 1, but a finite number, of members
6) region with more than 1, but a finite number, of non-members

Cases 1, 3, and 5 can be considered the "positive" regions, and cases 2, 4, and 6 the "negative" ones.

Because we only have distinctions (which we are currently doing for an internal reason which will probably go away), we forego the ability to use the generic XuRegion protocol to decompose complex regions into simpler ones. Instead we provide SetRegion specific protocol ("positions" and "isComplement").

At a later time, we will probably have cases 1 thru 4 above be the only distinctions, case 6 be a simple region but not a distinction, and have case 5 be a non-simple region. (These choices are all consistent with the letter and spirit of the simplicity framework documented in XuRegion. Simple regions must be the *intersection* of distinctions, therefore case 5 cannot be a simple non-distinction.) Please try to write your software so that it'll be insensitive to this change. Thanks.

SetRegion is an abstract superclass useful for defining regions for spaces which have the constraints listed above.

Package: Udanax-Gold
All Superclasses: Object Heaper XnRegion
Immediate Subclasses: HeaperRegion
Protocols: Object
Categories: Xanadu-Spaces-Unordered

Instance Methods

actualHashForEqual



Overrides: XnRegion

actualStepper: order



Overrides: XnRegion

asSimpleRegion



Overrides: XnRegion

complement



Overrides: XnRegion

coordinateSpace



Overrides: XnRegion
Overridden by: HeaperRegion

count



Overrides: XnRegion

create: cmp with: set

the set should be for my use alone

Overridden by: HeaperRegion

createRcvr: receiver



Overridden by: HeaperRegion

distinctions



Overrides: XnRegion

hasMember: atPos



Overrides: XnRegion

intersect: region



Overrides: XnRegion

intersects: region



Overrides: XnRegion

isComplement

FALSE means that I'm a 'positive' region (see class comment).
TRUE means I'm a negative region.

isEmpty



Overrides: XnRegion

isEnumerable: order



Overrides: XnRegion
Overridden by: HeaperRegion

isEqual: other



Overrides: XnRegion

isFinite



Overrides: XnRegion

isFull



Overrides: XnRegion

isSimple



Overrides: XnRegion

isSubsetOf: other



Overrides: XnRegion

makeNew: isComplement with: positions



Overridden by: HeaperRegion

minus: other



Overrides: XnRegion

positions

If I'm a positive region (see class comment and isComplement), then
this is a list of those positions I contain. If I'm negative, then it's
those positions I don't contain.

printOn: oo



Overrides: Object

sendSelfTo: xmtr



Overridden by: HeaperRegion

simpleRegions: order

Make up a singleton set containing the whole region

Overrides: XnRegion

simpleUnion: other



Overrides: XnRegion

theOne



Overrides: XnRegion

unionWith: region



Overrides: XnRegion

with: pos



Overrides: XnRegion

without: pos



Overrides: XnRegion


Index - All Packages - All Categories - All Classes