org.abora.gold.tumbler
Class RealRegion
java.lang.Object
|
+--org.abora.gold.java.AboraHeaper
|
+--org.abora.gold.xpp.basic.Heaper
|
+--org.abora.gold.spaces.basic.XnRegion
|
+--org.abora.gold.tumbler.RealRegion
- public class RealRegion
- extends XnRegion
| Fields inherited from class org.abora.gold.xpp.basic.Heaper |
AllBlasts, BecomeMap, GarbageCount, InGC, InitializedClasses, InitializingClasses, LastMemory, NextClientRequestNumber, NotOneElementSignal, PackageTable, PromiseNameTable, StringHashSBoxes |
| Fields inherited from class org.abora.gold.java.AboraHeaper |
ActiveClubs, CurrentAuthor, CurrentBertCanopyCache, CurrentBertCrum, CurrentChunk, CurrentGrandMap, CurrentKeyMaster, CurrentPacker, CurrentSensorCanopyCache, CurrentServer, CurrentSession, CurrentSessions, CurrentTrace, InitialEditClub, InitialOwner, InitialReadClub, InitialSponsor, InsideTransactionFlag |
|
Method Summary |
int |
actualHashForEqual()
|
Stepper |
actualStepper(OrderSpec order)
Only called if I've already said I'm enumerable in the originally stated order. |
XnRegion |
asSimpleRegion()
Return a simple region containing all positions contained by myself.
If I am simple, then the result must be me. |
XnRegion |
complement()
Essential. |
CoordinateSpace |
coordinateSpace()
Essential. |
IntegerVar |
count()
How many positions do I contain? If I am not 'isFinite', then this message will BLAST.
|
ScruSet |
distinctions()
Break it up into a set of non-full distinctions. |
boolean |
hasMember(Position position)
Do I contain this position? More than anything else, the behavior of this message is the
defining characteristic of an XuRegion. |
static void |
info()
{Stepper CLIENT of: RealRegion} intervals: order {OrderSpec default: NULL}
{BooleanVar CLIENT} isBoundedAbove
{BooleanVar CLIENT} isBoundedBelow
{BooleanVar CLIENT} isInterval
{XuReal CLIENT} lowerBound
{XuReal CLIENT} upperBound
|
static void |
initTimeNonInherited()
|
XnRegion |
intersect(XnRegion other)
Essential. |
Stepper |
intervals()
|
Stepper |
intervals(OrderSpec order)
Essential. |
boolean |
isBoundedAbove()
Same meaning as IntegerRegion::isBoundedAbove
|
boolean |
isBoundedBelow()
Same meaning as IntegerRegion::isBoundedBelow
|
boolean |
isEmpty()
Every coordinate space has exactly one empty region. |
boolean |
isEnumerable(OrderSpec order)
Any representable infinite set of real numbers is also not enumerable
|
boolean |
isEqual(Heaper other)
Two regions are equal iff they contain exactly the same set of positions
|
boolean |
isFinite()
Essential. |
boolean |
isFull()
true if this is the largest possible region in this space -- the region that contains all
positions in the space. |
boolean |
isInterval()
Whether this Region is a non-empty interval, i.e. |
boolean |
isSimple()
Am I a simple region. |
boolean |
isSubsetOf(XnRegion other)
I'm a subset of other if I don't have any positions that he doesn't. |
static void |
linkTimeNonInherited()
|
RealPos |
lowerBound()
The largest real number such that all the positions in the region are >= it. |
static Heaper |
make(boolean startsInside,
PrimArray transitions)
Make a new region, reusing the given array. |
void |
printOn(java.io.PrintWriter oo)
|
PtrArray |
secretTransitions()
|
void |
sendSelfTo(Xmtr xmtr)
do nothing
|
Stepper |
simpleRegions(OrderSpec order)
Break myself up into a finite set of non-empty simple regions which, when
unionWith'ed together will yield me. |
XnRegion |
simpleUnion(XnRegion other)
The result must contain all positions contained by either of the two
original regions, and the result must be simple. |
boolean |
startsInside()
|
Stepper |
stepper(OrderSpec order)
Essential. |
XnRegion |
unionWith(XnRegion other)
The result has as members exactly those positions which are members of either of the
original two regions. |
RealPos |
upperBound()
The smallest real number such that all the positions in the region are <= it. |
static RealRegion |
usingx(boolean startsInside,
PrimFloatArray vals,
PrimIntegerArray flags)
|
| Methods inherited from class org.abora.gold.spaces.basic.XnRegion |
asArray, chooseMany, chooseMany, chooseOne, chooseOne, delta, disjointSimpleRegions, disjointSimpleRegions, dox, immuSet, intersects, isDistinction, isEnumerable, mapping, minus, simpleRegions, stepper, theOne, with, without |
| Methods inherited from class org.abora.gold.xpp.basic.Heaper |
abstractDeclarationFor, abstractTypeFor, addMethodAttributeToInOf, addPackage, addPackageCategory, allClientProtocolOn, argumentTypesFor, arrow, blast, blast, BLAST, cachePromiseNameTable, cachePromiseNameTableIn, canYouBecome, cast, cleanPromiseClasses, cleanupGarbage, clientClassesDo, clientFunctionsOn, clientMethodsOn, clientProtocol, clientProtocolDo, clientProtocolOn, clientProtocolOn, collectibleClasses, compare, compileClientSubclasses, compileConstantPromiseMethods, compileCreateFromRcvr, compileEQ, compileGeneratedClassMethod, compileGeneratedMethod, compileHook, compilePromise, compilePromiseDefaultMethods, compilePromiseFluidDeclarations, compilePromiseHandlers, compilePromiseMethods, compileRequestCreateMsgInArguments, compileRequestEvaluateMsgInReturningArguments, compileRPCSpecialistEvaluateMsgForReturningArguments, compileSendSelfTo, compileSendSelfToSendHook, compileStubbleMethods, compileSubclassStubbleMethods, computeMangle, computePreorder, constantTypeValue, convert, convertCopyDeclarations, convertDeferredDeclarations, convertProxyDeclarations, convertSubclassCopyDeclarations, convertSubclassDeferredDeclarations, convertSubclassProxyDeclarations, copyReferencesToType, create, create, create, create, create, create, create, create, create, create, createRequestClassArguments, definesProxyMethods, delete, deref, destroy, destruct, destructor, enum, enumFlags, equals, exportName, fetchAttribute, fetchPackage, fetchSuperCategory, fileOutClientProtocol, findCategory, findSenderAndReceiverMethods, findTailInto, flushPromiseNameTable, foo, freezeClientClasses, freezeClientProtocol, freezeStProtocol, frozenClasses, garbageCollect, garbageCollectFrom, gcOpportunity, gcOpportunity, generatedCategory, generatePromiseNames, getCategory, getOrMakePackage, getSuperCategory, handlerSignaturesFrom, hash, hashForEqual, hasProxyMethods, info_clientClasses, info_clientSideClasses, info_promiseClasses, info_stProtocol, inGC, initializedClasses, initializingClasses, initPackages, initStringHashSBoxes, inspectPieces, instanceSize, IntegerVar, isByProxy, isConstructed, isDestructed, isEqualOrSubclassOf, isGenerated, isIntType, isKindOf, isRawType, isUnlocked, make, makeClassTable, makeFillTable, makeRequestTable, mangle, markChildren, markCount, markInstances, mayBecome, mayBecomeAnySubclassOf, new1, newX, nonCopyVariables, notWorking, pack, packageClasses, packagingCategory, parseExportName, passe, pointerToStaticMember, pointerToStaticMember, pointerToVirtualMember, preorderMax, preorderNumber, PROBLEM, problems, promiseClass, promiseDefaultValue, promiseName, promiseNameTable, promiseToAbstract, registerPackageCategory, removeGeneratedCode, removeStubbleMethods, removeSubclassGeneratedCode, removeSubclassStubbleMethods, requestProcedure, requestProceduresFrom, returnTypeFor, rootName, scheduleTermination, sendProxyTo, serverNameFor, setGC, signal, signals, smalltalkSelector, stClientProtocol, stubbleSelectorTokenReturnsArguments, subclassNonCopyVariables, takeOop, togglePromiseName, togglePromiseOfParse, unimplemented, unmangle, verifyFreeze, wipeStubble |
| Methods inherited from class org.abora.gold.java.AboraHeaper |
asOop, basicInspect, displayString, error, hack, halt, inspect, knownBug, mightNotImplement, REQUIRES, shouldImplement, shouldNotImplement, stubbleForSubclassResponsibility, thingToDo, willNotImplement |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
myStartsInside
protected boolean myStartsInside
myTransitionVals
protected PrimFloatArray myTransitionVals
myTransitionFlags
protected PrimIntegerArray myTransitionFlags
TheManager
protected static RealManager TheManager
RealRegion
public RealRegion(boolean startsInside,
PrimFloatArray vals,
PrimIntegerArray flags)
RealRegion
public RealRegion(Rcvr receiver)
count
public IntegerVar count()
- Description copied from class:
XnRegion
- How many positions do I contain? If I am not 'isFinite', then this message will BLAST.
- Overrides:
count in class XnRegion
distinctions
public ScruSet distinctions()
- Description copied from class:
XnRegion
- Break it up into a set of non-full distinctions. It is an error to send
this to a non-simple region. A full region will respond with the null
set. Other distinctions will respond with a singleton set containing
themselves, and simple regions will respond with a set of distinctions
which, when intersected together, yield the original region.
- Overrides:
distinctions in class XnRegion
intervals
public Stepper intervals(OrderSpec order)
- Essential. Break this up into disjoint intervals
isInterval
public boolean isInterval()
- Whether this Region is a non-empty interval, i.e. if A, B in the Region and A <= C <= B
then C is in the Region. This includes inequalities (e.g. {x | x > 5}) and the fullRegion
in addition to ordinary two-ended intervals.
simpleRegions
public Stepper simpleRegions(OrderSpec order)
- Description copied from class:
XnRegion
- Break myself up into a finite set of non-empty simple regions which, when
unionWith'ed together will yield me. May be sent to any region. If I
am isEmpty, I will respond with the empty stepper. Otherwise, if I am
simple I will respond with a stepper producing just myself.
Please only use NULL for the 'order' argument for now unless the
documentation for a particular region or coordinate space says that
it will deal with the 'order' argument meaningfully. When no order is
specified then I may return the simple regions in any order. When the
ordering functionality is implemented, then I am constrained to
produce the simple regions in an order consistent with the argument's
ordering of my positions. When the simple regions don't overlap, and
don't surround each other in the ordering, then the meaning is clear.
Otherwise, there are several plausible options for how we should
specify this message.
- Overrides:
simpleRegions in class XnRegion
stepper
public Stepper stepper(OrderSpec order)
- Description copied from class:
XnRegion
- Essential. If my positions are enumerable in the order specified, then return a stepper
which will so enumerate them. If 'order' is NULL, then I may treat this as a request to
enumerate according to any order I choose, except that if I am enumerable in ascending
order, then I must be enumerable given NULL. For example, if I choose to regard NULL as
implying ascending order, and I am only enumerable in descending order, then given NULL, I
may blast even though there is an order in which I am enumerable.
In fact, right now the ability to respond to an 'order' argument is in such a
to-be-implemented state that it should only be considered safe to provide a NULL argument,
unless the documentation on a particular space or region says otherwise.
The eventual specification of this message is clear, and is upwards compatible from the
current behavior: If I can enumerate in an order consistent with 'order', do so. If
'order' is NULL, then if I can be enumerated at all (if there is any counting sequence),
then I still do so. For example, I should be able to get an (infinite) stepper for
stepping through all the integers, but not all the reals. As the above example shows,
being enumerable doesn't imply being finite.
Also, being able to produce a stepper that continues to yield more positions in the
specified order is not sufficient to imply being enumerable. To be enumerable, it must be
the case that any given position which is a member of the region will eventually be
reached by the stepper. Not all implementations currently succeed in guaranteeing this
(See UnionCrossRegion::isEnumerable).
See ScruTable::stepper.
- Overrides:
stepper in class XnRegion
actualStepper
public Stepper actualStepper(OrderSpec order)
- Description copied from class:
XnRegion
- Only called if I've already said I'm enumerable in the originally stated order. Also, if
the originally stated order was NULL, I get a guaranteed non-null order. Subclasses which
override 'stepper' to a method which doesn't send 'actualStepper' may override
'actualStepper' to a stub method which always BLASTs.
- Overrides:
actualStepper in class XnRegion
actualHashForEqual
public int actualHashForEqual()
- Overrides:
actualHashForEqual in class XnRegion
hasMember
public boolean hasMember(Position position)
- Description copied from class:
XnRegion
- Do I contain this position? More than anything else, the behavior of this message is the
defining characteristic of an XuRegion. All other messages (except for the simplicity
characterization) should be specifiable in terms of the behavior of this message. What an
XuRegion *is* (mostly) is a finite decision procedure for accepting or rejecting any given
position.
- Overrides:
hasMember in class XnRegion
isBoundedAbove
public boolean isBoundedAbove()
- Same meaning as IntegerRegion::isBoundedAbove
isBoundedBelow
public boolean isBoundedBelow()
- Same meaning as IntegerRegion::isBoundedBelow
isEmpty
public boolean isEmpty()
- Description copied from class:
XnRegion
- Every coordinate space has exactly one empty region. It is the one containing no
positions. It and only it responds 'true' to this message.
- Overrides:
isEmpty in class XnRegion
isEnumerable
public boolean isEnumerable(OrderSpec order)
- Any representable infinite set of real numbers is also not enumerable
- Overrides:
isEnumerable in class XnRegion
isEqual
public boolean isEqual(Heaper other)
- Description copied from class:
XnRegion
- Two regions are equal iff they contain exactly the same set of positions
- Overrides:
isEqual in class XnRegion
isFinite
public boolean isFinite()
- Description copied from class:
XnRegion
- Essential. Do I contain a finite number of positions? If I do, then the 'count' message
will say how many, and I will gladly provide a stepper which will step over all of them.
I.e., isFinite implies isEnumerable.
- Overrides:
isFinite in class XnRegion
isFull
public boolean isFull()
- Description copied from class:
XnRegion
- true if this is the largest possible region in this space -- the region that contains all
positions in the space. Note that in a space which has no positions (which is perfectly
valid), the one XuRegion would be both empty (since it has no positions) and full (since
it has all the positions in the space).
- Overrides:
isFull in class XnRegion
isSimple
public boolean isSimple()
- Description copied from class:
XnRegion
- Am I a simple region. See XuRegion class comment for implications of being simple.
- Overrides:
isSimple in class XnRegion
isSubsetOf
public boolean isSubsetOf(XnRegion other)
- Description copied from class:
XnRegion
- I'm a subset of other if I don't have any positions that he doesn't. Note that if we are
equal, then I am still a subset of him. If you want to know if I'm a strict subset, you
can ask
a->isSubsetOf(b) && !! a->isEqual(b)
- Overrides:
isSubsetOf in class XnRegion
complement
public XnRegion complement()
- Description copied from class:
XnRegion
- Essential. Return a region of containing exactly those positions not in this region. The
complement of a distinction must be a distinction.
- Overrides:
complement in class XnRegion
intersect
public XnRegion intersect(XnRegion other)
- Description copied from class:
XnRegion
- Essential. The intersection of two simple regions must be simple. The intersection of two
distinctions must therefore be a simple region. The result has exactly those members which
both the original regions have.
- Overrides:
intersect in class XnRegion
simpleUnion
public XnRegion simpleUnion(XnRegion other)
- Description copied from class:
XnRegion
- The result must contain all positions contained by either of the two
original regions, and the result must be simple. However, the result
may contain additional positions. See the comment on
'XuRegion::asSimpleRegion'. a->simpleUnion(b) satisfies the same specification
as (a->unionWith(b))->asSimpleRegion(). However, the two results do
not have to be the same region.
- Overrides:
simpleUnion in class XnRegion
unionWith
public XnRegion unionWith(XnRegion other)
- Description copied from class:
XnRegion
- The result has as members exactly those positions which are members of either of the
original two regions. No matter how simple the two original regions are, the result may be
non-simple.
The only reason this is called 'unionWith' instead of 'union' is that the latter is a C++
keyword.
- Overrides:
unionWith in class XnRegion
secretTransitions
public PtrArray secretTransitions()
startsInside
public boolean startsInside()
printOn
public void printOn(java.io.PrintWriter oo)
- Overrides:
printOn in class Heaper
asSimpleRegion
public XnRegion asSimpleRegion()
- Description copied from class:
XnRegion
- Return a simple region containing all positions contained by myself.
If I am simple, then the result must be me. Otherwise,
the resulting region will contain more positions than I do, but it
must contain all those that I do. It would be good for the resulting
simple region to not contain many more points than it needs in order
to satisfy these constraints; but this is a preference, not a
specification. Particular spaces may specify stronger guarantees,
but as far as class XuRegion is concerned it is correct (though silly)
for this message to always return the full region for the space.
- Overrides:
asSimpleRegion in class XnRegion
coordinateSpace
public CoordinateSpace coordinateSpace()
- Description copied from class:
XnRegion
- Essential. The coordinate space in which this is a region
- Overrides:
coordinateSpace in class XnRegion
lowerBound
public RealPos lowerBound()
- The largest real number such that all the positions in the region are >= it. Does not
necessarily lie in the region. For example, the region of all numbers > 2 has a
lowerBound of 2.
upperBound
public RealPos upperBound()
- The smallest real number such that all the positions in the region are <= it. Does not
necessarily lie in the region. For example, the region of all numbers < 2 has an
upperBound of 2.
intervals
public Stepper intervals()
sendSelfTo
public void sendSelfTo(Xmtr xmtr)
- Description copied from class:
Heaper
- do nothing
- Overrides:
sendSelfTo in class Heaper
initTimeNonInherited
public static void initTimeNonInherited()
linkTimeNonInherited
public static void linkTimeNonInherited()
make
public static Heaper make(boolean startsInside,
PrimArray transitions)
- Make a new region, reusing the given array. Noone else should ever modify it!!
usingx
public static RealRegion usingx(boolean startsInside,
PrimFloatArray vals,
PrimIntegerArray flags)
info
public static void info()
- {Stepper CLIENT of: RealRegion} intervals: order {OrderSpec default: NULL}
{BooleanVar CLIENT} isBoundedAbove
{BooleanVar CLIENT} isBoundedBelow
{BooleanVar CLIENT} isInterval
{XuReal CLIENT} lowerBound
{XuReal CLIENT} upperBound
Translation - Copyright © 2003 David G Jones. All Rights Reserved.
Original Udanax-Gold - Copyright © 1979-1999 Udanax.com. All rights reserved.