Class DeLiCluTree
- java.lang.Object
-
- elki.index.tree.IndexTree<N,E>
-
- elki.index.tree.spatial.rstarvariants.AbstractRStarTree<N,E,S>
-
- elki.index.tree.spatial.rstarvariants.NonFlatRStarTree<DeLiCluNode,DeLiCluEntry,RTreeSettings>
-
- elki.index.tree.spatial.rstarvariants.deliclu.DeLiCluTree
-
- All Implemented Interfaces:
elki.index.Index
- Direct Known Subclasses:
DeLiCluTreeIndex
public abstract class DeLiCluTree extends NonFlatRStarTree<DeLiCluNode,DeLiCluEntry,RTreeSettings>
DeLiCluTree is a spatial index structure based on an R-Tree. DeLiCluTree is designed for the DeLiClu algorithm, having in each node a boolean array which indicates whether the child nodes are already handled by the DeLiClu algorithm.- Since:
- 0.1
- Author:
- Elke Achtert
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class elki.index.tree.spatial.rstarvariants.AbstractRStarTree
AbstractRStarTree.Statistics
-
-
Field Summary
Fields Modifier and Type Field Description private it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap<it.unimi.dsi.fastutil.ints.IntSet>expandedHolds the ids of the expanded nodes.private static elki.logging.LoggingLOGThe logger for this class.-
Fields inherited from class elki.index.tree.spatial.rstarvariants.AbstractRStarTree
EXTRA_INTEGRITY_CHECKS, height, settings, statistics
-
-
Constructor Summary
Constructors Constructor Description DeLiCluTree(elki.persistent.PageFile<DeLiCluNode> pagefile, RTreeSettings settings)Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected DeLiCluEntrycreateNewDirectoryEntry(DeLiCluNode node)Creates a new directory entry representing the specified node.protected DeLiCluNodecreateNewDirectoryNode()Creates a new directory node with the specified capacity.protected DeLiCluNodecreateNewLeafNode()Creates a new leaf node with the specified capacity.protected DeLiCluEntrycreateRootEntry()Creates an entry representing the root node.it.unimi.dsi.fastutil.ints.IntSetgetExpanded(DeLiCluEntry entry)Returns the nodes which are already expanded with the specified node.it.unimi.dsi.fastutil.ints.IntSetgetExpanded(DeLiCluNode entry)Returns the nodes which are already expanded with the specified node.protected elki.logging.LogginggetLogger()voidsetExpanded(DeLiCluEntry entry1, DeLiCluEntry entry2)Marks the nodes with the specified ids as expanded.-
Methods inherited from class elki.index.tree.spatial.rstarvariants.NonFlatRStarTree
bulkLoad, computeHeight, createEmptyRoot, hasOverflow, hasUnderflow
-
Methods inherited from class elki.index.tree.spatial.rstarvariants.AbstractRStarTree
adjustTree, canBulkLoad, choosePath, containedTest, createBulkLeafNodes, createNewRoot, deletePath, doExtraIntegrityChecks, findPathToObject, getHeight, getLeaves, initializeCapacities, initializeFromFile, insertEntry, insertLeaf, logStatistics, reInsert, setHeight, toString
-
-
-
-
Constructor Detail
-
DeLiCluTree
public DeLiCluTree(elki.persistent.PageFile<DeLiCluNode> pagefile, RTreeSettings settings)
Constructor.- Parameters:
pagefile- Page filesettings- Settings
-
-
Method Detail
-
setExpanded
public void setExpanded(DeLiCluEntry entry1, DeLiCluEntry entry2)
Marks the nodes with the specified ids as expanded.- Parameters:
entry1- the first nodeentry2- the second node
-
getExpanded
public it.unimi.dsi.fastutil.ints.IntSet getExpanded(DeLiCluEntry entry)
Returns the nodes which are already expanded with the specified node.- Parameters:
entry- the id of the node for which the expansions should be returned- Returns:
- the nodes which are already expanded with the specified node
-
getExpanded
public it.unimi.dsi.fastutil.ints.IntSet getExpanded(DeLiCluNode entry)
Returns the nodes which are already expanded with the specified node.- Parameters:
entry- the id of the node for which the expansions should be returned- Returns:
- the nodes which are already expanded with the specified node
-
createNewLeafNode
protected DeLiCluNode createNewLeafNode()
Creates a new leaf node with the specified capacity.- Specified by:
createNewLeafNodein classelki.index.tree.IndexTree<DeLiCluNode,DeLiCluEntry>- Returns:
- a new leaf node
-
createNewDirectoryNode
protected DeLiCluNode createNewDirectoryNode()
Creates a new directory node with the specified capacity.- Specified by:
createNewDirectoryNodein classelki.index.tree.IndexTree<DeLiCluNode,DeLiCluEntry>- Returns:
- a new directory node
-
createNewDirectoryEntry
protected DeLiCluEntry createNewDirectoryEntry(DeLiCluNode node)
Creates a new directory entry representing the specified node.- Specified by:
createNewDirectoryEntryin classAbstractRStarTree<DeLiCluNode,DeLiCluEntry,RTreeSettings>- Parameters:
node- the node to be represented by the new entry- Returns:
- the newly created directory entry
-
createRootEntry
protected DeLiCluEntry createRootEntry()
Creates an entry representing the root node.- Specified by:
createRootEntryin classelki.index.tree.IndexTree<DeLiCluNode,DeLiCluEntry>- Returns:
- an entry representing the root node
-
getLogger
protected elki.logging.Logging getLogger()
- Specified by:
getLoggerin classelki.index.tree.IndexTree<DeLiCluNode,DeLiCluEntry>
-
-