Index - All Packages - All Categories - All Classes

Class Filter

A position in a FilterSpace is a region in the baseSpace, and a filter is a set of regions in the baseSpace. It is often more useful to think of a Filter as a Boolean function whose input is a region in the baseSpace, and of unions, intersections, and complements of filters as ORs, ANDs, and NOTs of functions. Not all possible such functions can be represented as Filters, since there is an uncountable infinity of them for any non-finite CoordinateSpace. There are representations for some basic filters, and any filters resulting from a finite sequence of unions, intersections, and complements among them. The basic filters are:
subsetFilter(cs,R) -- all subsets of R (ie. all R1 such that R1->isSubsetOf(R))
supersetFilter(cs,R) -- all supersets of R (ie. all R1 such that R->isSubsetOf(R1))
Mathematically, this is all that is necessary, since other useful filters like intersection filters can be generated from these. (eg. intersectionFilter(R) is subsetFilter(R->complement())->complement()). However, there are several more pseudo constructors provided as shortcuts, including intersectionFilters, closedFilters, emptyFilters, and intersections and unions of sets of filters.

Package: Udanax-Gold
All Superclasses: Object Heaper XnRegion
Immediate Subclasses: AndFilter ClosedFilter NotSubsetFilter NotSupersetFilter OpenFilter OrFilter SubsetFilter SupersetFilter
Protocols: Object
Categories: Xanadu-Filter

Class Methods

andFilter: cs with: subs

A filter that matches only regions that all of the filters in the set would have matched.

andFilterPrivate: cs with: subs

assumes that the interactions between elements have already been removed

closedFilter: cs

An filter that does match any region.

combineIntersect: set withFilter: filter

keep going around doing intersections until there are no more special intersects

combineIntersect: a withImmuSet: b


combineUnion: set withFilter: filter

keep going around doing unions until there are no more special unions

combineUnion: a withImmuSet: b


distributeIntersect: cs with: set withFilter: filter

distribute the intersection of a filter with the union of a set of filters

distributeIntersect: cs with: a withImmuSet: b


distributeUnion: cs with: set withFilter: filter

distribute the union of a filter with the intersection of a set of filters

distributeUnion: cs with: anded withImmuSet: ored

distribute the union of an intersection and a union of sets of filters

infostProtocol



Overrides: XnRegion class

intersectionFilter: cs with: region

A filter that matches any region that intersects the given region.

notSubsetFilter: cs with: region

A filter matching any regions that is not a subset of the given region.

notSupersetFilter: cs with: region

A filter that matches any region that is not a superset of the given region.

openFilter: cs

A filter that matches any region.

orFilter: cs with: subs

A filter that matches any region that any of the filters in the set would have matched.

orFilterPrivate: cs with: subs

assumes that the interactions between elements have already been removed

subsetFilter: cs with: region

A filter that matches any region that is a subset of the given region.

supersetFilter: cs with: region

A region that matches any region that is a superset of the given region.

Instance Methods

actualHashForEqual



Overrides: XnRegion
Overridden by: AndFilter ClosedFilter NotSubsetFilter NotSupersetFilter OpenFilter OrFilter SubsetFilter SupersetFilter

actualStepper: order



Overrides: XnRegion
Overridden by: ClosedFilter

asSimpleRegion



Overrides: XnRegion

baseRegion

Essential. A region in the base space identifying what kind of filter this is. Succeeds only if this isAnyFilter or isAllFilter.

Overridden by: AndFilter ClosedFilter NotSubsetFilter NotSupersetFilter OpenFilter OrFilter SubsetFilter SupersetFilter

complement



Overrides: XnRegion
Overridden by: AndFilter ClosedFilter NotSubsetFilter NotSupersetFilter OpenFilter OrFilter SubsetFilter SupersetFilter

complexIntersect: other


complexUnion: other


coordinateSpace



Overrides: XnRegion

count



Overrides: XnRegion

create: cs



Overridden by: ClosedFilter OpenFilter

createRcvr: receiver



Overridden by: AndFilter ClosedFilter NotSubsetFilter NotSupersetFilter OpenFilter OrFilter SubsetFilter SupersetFilter

distinctions



Overrides: XnRegion

doesPass: joint

Whether there might be anything in the tree beneath the Joint that would pass the filter.

fetchCanonicalIntersect: other

return nil, or the pair of canonical filters (left == new1 | self, right == new2 | other)

Overridden by: NotSupersetFilter

fetchCanonicalUnion: other

return nil, or the pair of canonical filters (left == new1 | self, right == new2 | other)

Overridden by: NotSupersetFilter SupersetFilter

fetchIntersect: other


fetchPairIntersect: other

return the pair of canonical filters (left == new1 | self, right == new2 | other)

fetchPairUnion: other

return the pair of canonical filters (left == new1 | self, right == new2 | other)

fetchSpecialIntersect: other



Overridden by: NotSubsetFilter NotSupersetFilter SubsetFilter SupersetFilter

fetchSpecialSubset: other

return self or other if one is clearly a subset of the other, else nil

Overridden by: AndFilter ClosedFilter NotSubsetFilter NotSupersetFilter OpenFilter OrFilter SubsetFilter SupersetFilter

fetchSpecialUnion: other



Overridden by: NotSubsetFilter NotSupersetFilter SubsetFilter SupersetFilter

fetchUnion: other


filterSpace


getPairIntersect: other

return the pair of canonical filters (left == new1 | self, right == new2 | other)

getPairUnion: other

return the pair of canonical filters (left == new1 | self, right == new2 | other)

hasMember: pos



Overrides: XnRegion

intersect: other



Overrides: XnRegion
Overridden by: ClosedFilter OpenFilter

intersectedFilters

Essential. Break this up into a bunch of Filters which when intersected (anded) together give this one. If there is only one sub Filter it will be the receiver; otherwise, the sub Filters will be simple enough that either they or their complements will return true from at least one of isAndFilter or isOrFilter. If this is full (ie. an open filter) then the stepper will have no elements.

Overridden by: AndFilter ClosedFilter NotSubsetFilter NotSupersetFilter OpenFilter OrFilter SubsetFilter SupersetFilter

isAllFilter

Essential. Whether this is an 'all' Filter, ie. it only matches Regions which contain everything in the baseRegion

Overridden by: AndFilter ClosedFilter NotSubsetFilter NotSupersetFilter OpenFilter OrFilter SubsetFilter SupersetFilter

isAnyFilter

Essential. Whether this is an 'any' Filter, ie. it matches Regions which contain anything in the baseRegion

Overridden by: AndFilter ClosedFilter NotSubsetFilter NotSupersetFilter OpenFilter OrFilter SubsetFilter SupersetFilter

isEmpty



Overrides: XnRegion
Overridden by: AndFilter ClosedFilter NotSubsetFilter NotSupersetFilter OpenFilter OrFilter SubsetFilter SupersetFilter

isEnumerable: order



Overrides: XnRegion
Overridden by: ClosedFilter

isEqual: other



Overrides: XnRegion
Overridden by: AndFilter ClosedFilter NotSubsetFilter NotSupersetFilter OpenFilter OrFilter SubsetFilter SupersetFilter

isFinite



Overrides: XnRegion

isFull



Overrides: XnRegion
Overridden by: AndFilter ClosedFilter NotSubsetFilter NotSupersetFilter OpenFilter OrFilter SubsetFilter SupersetFilter

isSimple



Overrides: XnRegion

isSubsetOf: other



Overrides: XnRegion

isSwitchedBy: delta

Whether the change causes a change in the state of the filter. (IE. Whether the old region was in and the new out, or vice versa.)

isSwitchedOffBy: delta

Whether the change switches the state of the filter from on to off. (IE. Whether the old region was inside the filter and the new region outside.)

isSwitchedOnBy: delta

Whether the change switches the state of the filter from off to on. (IE. Whether the old region was outside the filter and the new region inside.)

match: region

Whether a region is inside this filter.

Overridden by: AndFilter ClosedFilter NotSubsetFilter NotSupersetFilter OpenFilter OrFilter SubsetFilter SupersetFilter

pass: parent

The simplest filter for looking at the tree beneath the node.
The Joint keeps the intersection and union of all the nodes beneath it, so the result of this message can be used to prune a search. If the result is full, then everything beneath the node is in the filter (eg. if this filter contained all subsets of S and the union was a superset of S). If the result is empty, then nothing beneath the node is in the filter (eg. if this filter contained all subsets of S and the intersection was not a subset of S). In less extreme cases, this operation may at least simplify the filter by throwing out irrelevant search criteria.

Overridden by: AndFilter ClosedFilter NotSubsetFilter NotSupersetFilter OpenFilter OrFilter SubsetFilter SupersetFilter

relevantRegion

The region which is relevant to this filter, ie. whose presence or absence in a region can change whether it passes the filter

Overridden by: AndFilter ClosedFilter NotSubsetFilter NotSupersetFilter OpenFilter OrFilter SubsetFilter SupersetFilter

sendSelfTo: xmtr



Overridden by: AndFilter ClosedFilter NotSubsetFilter NotSupersetFilter OpenFilter OrFilter SubsetFilter SupersetFilter

simpleRegions: order



Overrides: XnRegion

simpleUnion: other



Overrides: XnRegion

unionedFilters

Essential. Break this up into a bunch of Filters which when unioned (ored) together give this one. If there is only one sub Filter it will be the receiver; otherwise, the sub Filters will be simple enough that either they or their complements will return true from at least one of isAndFilter or isOrFilter. The sub Filters might not be disjoint Regions. If this is empty (ie. a closed filter) then the stepper will have no elements.

Overridden by: AndFilter ClosedFilter NotSubsetFilter NotSupersetFilter OpenFilter OrFilter SubsetFilter SupersetFilter

unionWith: other



Overrides: XnRegion
Overridden by: ClosedFilter OpenFilter


Index - All Packages - All Categories - All Classes