Tabnine Logo
PointerHierarchyRepresentationBuilder
Code IndexAdd Tabnine to your IDE (free)

How to use
PointerHierarchyRepresentationBuilder
in
de.lmu.ifi.dbs.elki.algorithm.clustering.hierarchical

Best Java code snippets using de.lmu.ifi.dbs.elki.algorithm.clustering.hierarchical.PointerHierarchyRepresentationBuilder (Showing top 20 results out of 315)

origin: de.lmu.ifi.dbs.elki/elki-clustering

/**
 * Run the algorithm
 * 
 * @param db Database to run on
 * @param relation Data relation
 * @return Clustering result
 */
public PointerHierarchyRepresentationResult run(Database db, Relation<O> relation) {
 if(SingleLinkage.class.isInstance(linkage)) {
  LOG.verbose("Notice: SLINK is a much faster algorithm for single-linkage clustering!");
 }
 DistanceQuery<O> dq = db.getDistanceQuery(relation, getDistanceFunction());
 final DBIDs ids = relation.getDBIDs();
 MatrixParadigm mat = new MatrixParadigm(ids);
 // Compute the initial (lower triangular) distance matrix.
 initializeDistanceMatrix(mat, dq, linkage);
 // Initialize space for result:
 PointerHierarchyRepresentationBuilder builder = new PointerHierarchyRepresentationBuilder(ids, dq.getDistanceFunction().isSquared());
 nnChainCore(mat, builder);
 return builder.complete();
}
origin: de.lmu.ifi.dbs.elki/elki

/**
 * Execute the cluster merge.
 *
 * @param size Data set size
 * @param scratch Scratch space.
 * @param ix First iterator
 * @param iy Second iterator
 * @param builder Hierarchy builder
 * @param mindist Distance that was used for merging
 * @param x First matrix position
 * @param y Second matrix position
 */
protected void merge(int size, double[] scratch, DBIDArrayIter ix, DBIDArrayIter iy, PointerHierarchyRepresentationBuilder builder, double mindist, int x, int y) {
 // Avoid allocating memory, by reusing existing iterators:
 ix.seek(x);
 iy.seek(y);
 if(LOG.isDebuggingFine()) {
  LOG.debugFine("Merging: " + DBIDUtil.toString(ix) + " -> " + DBIDUtil.toString(iy) + " " + mindist);
 }
 // Perform merge in data structure: x -> y
 assert(y < x);
 // Since y < x, prefer keeping y, dropping x.
 builder.add(ix, mindist, iy);
 // Update cluster size for y:
 final int sizex = builder.getSize(ix), sizey = builder.getSize(iy);
 builder.setSize(iy, sizex + sizey);
 // Note: this changes iy.
 updateMatrix(size, scratch, iy, builder, mindist, x, y, sizex, sizey);
}
origin: elki-project/elki

if(builder.isLinked(ij.seek(j))) {
 continue;
scratch[yb] = linkage.combine(sizex, scratch[xbase + j], sizey, scratch[yb], builder.getSize(ij), mindist);
if(builder.isLinked(ij.seek(j))) {
 continue;
scratch[jb] = linkage.combine(sizex, scratch[xbase + j], sizey, scratch[jb], builder.getSize(ij), mindist);
if(builder.isLinked(ij.seek(j))) {
 continue;
scratch[jb] = linkage.combine(sizex, scratch[jbase + x], sizey, scratch[jb], builder.getSize(ij), mindist);
origin: de.lmu.ifi.dbs.elki/elki

PointerHierarchyRepresentationBuilder builder = new PointerHierarchyRepresentationBuilder(ids);
 if(x == wsize - 1) {
  --wsize;
  for(ix.seek(wsize - 1); builder.isLinked(ix); ix.retract()) {
   --wsize;
return builder.complete();
origin: elki-project/elki

/**
 * Shrink the active set: if the last x objects are all merged, we can reduce
 * the working size accordingly.
 * 
 * @param ix Object iterator
 * @param builder Builder to detect merged status
 * @param end Current active set size
 * @param x Last merged object
 * @return New active set size
 */
protected static int shrinkActiveSet(DBIDArrayIter ix, PointerHierarchyRepresentationBuilder builder, int end, int x) {
 if(x == end - 1) { // Can truncate active set.
  while(builder.isLinked(ix.seek(--end - 1))) {
   // Everything happens in while condition already.
  }
 }
 return end;
}
origin: elki-project/elki

builder.add(ix, distances[offset], iy, prots.seek(offset));
origin: de.lmu.ifi.dbs.elki/elki

PointerHierarchyRepresentationBuilder builder = new PointerHierarchyRepresentationBuilder(ids);
 if(x == wsize - 1) {
  --wsize;
  for(ix.seek(wsize - 1); builder.isLinked(ix); ix.retract()) {
   --wsize;
return builder.complete();
origin: de.lmu.ifi.dbs.elki/elki-clustering

/**
 * Shrink the active set: if the last x objects are all merged, we can reduce
 * the working size accordingly.
 * 
 * @param ix Object iterator
 * @param builder Builder to detect merged status
 * @param end Current active set size
 * @param x Last merged object
 * @return New active set size
 */
protected static int shrinkActiveSet(DBIDArrayIter ix, PointerHierarchyRepresentationBuilder builder, int end, int x) {
 if(x == end - 1) { // Can truncate active set.
  while(builder.isLinked(ix.seek(--end - 1))) {
   // Everything happens in while condition already.
  }
 }
 return end;
}
origin: elki-project/elki

builder.add(ix, distances[offset], iy, prots.seek(offset));
origin: de.lmu.ifi.dbs.elki/elki-clustering

/**
 * Execute the cluster merge.
 *
 * @param end Active set size
 * @param mat Matrix paradigm
 * @param builder Hierarchy builder
 * @param mindist Distance that was used for merging
 * @param x First matrix position
 * @param y Second matrix position
 */
protected void merge(int end, MatrixParadigm mat, PointerHierarchyRepresentationBuilder builder, double mindist, int x, int y) {
 // Avoid allocating memory, by reusing existing iterators:
 final DBIDArrayIter ix = mat.ix.seek(x), iy = mat.iy.seek(y);
 if(LOG.isDebuggingFine()) {
  LOG.debugFine("Merging: " + DBIDUtil.toString(ix) + " -> " + DBIDUtil.toString(iy) + " " + mindist);
 }
 // Perform merge in data structure: x -> y
 assert (y < x);
 // Since y < x, prefer keeping y, dropping x.
 builder.add(ix, linkage.restore(mindist, getDistanceFunction().isSquared()), iy);
 // Update cluster size for y:
 final int sizex = builder.getSize(ix), sizey = builder.getSize(iy);
 builder.setSize(iy, sizex + sizey);
 updateMatrix(end, mat, builder, mindist, x, y, sizex, sizey);
}
origin: elki-project/elki

/**
 * Run the algorithm
 * 
 * @param db Database to run on
 * @param relation Data relation
 * @return Clustering result
 */
public PointerHierarchyRepresentationResult run(Database db, Relation<O> relation) {
 if(SingleLinkage.class.isInstance(linkage)) {
  LOG.verbose("Notice: SLINK is a much faster algorithm for single-linkage clustering!");
 }
 DistanceQuery<O> dq = db.getDistanceQuery(relation, getDistanceFunction());
 final DBIDs ids = relation.getDBIDs();
 MatrixParadigm mat = new MatrixParadigm(ids);
 // Compute the initial (lower triangular) distance matrix.
 initializeDistanceMatrix(mat, dq, linkage);
 // Initialize space for result:
 PointerHierarchyRepresentationBuilder builder = new PointerHierarchyRepresentationBuilder(ids, dq.getDistanceFunction().isSquared());
 nnChainCore(mat, builder);
 return builder.complete();
}
origin: de.lmu.ifi.dbs.elki/elki-clustering

if(builder.isLinked(ij.seek(j))) {
 continue;
scratch[yb] = linkage.combine(sizex, scratch[xbase + j], sizey, scratch[yb], builder.getSize(ij), mindist);
if(builder.isLinked(ij.seek(j))) {
 continue;
scratch[jb] = linkage.combine(sizex, scratch[xbase + j], sizey, scratch[jb], builder.getSize(ij), mindist);
if(builder.isLinked(ij.seek(j))) {
 continue;
scratch[jb] = linkage.combine(sizex, scratch[jbase + x], sizey, scratch[jb], builder.getSize(ij), mindist);
origin: elki-project/elki

/**
 * Find an unlinked object.
 *
 * @param pos Starting position
 * @param end End position
 * @param ix Iterator to translate into DBIDs
 * @param builder Linkage information
 * @return Position
 */
public static int findUnlinked(int pos, int end, DBIDArrayIter ix, PointerHierarchyRepresentationBuilder builder) {
 while(pos < end) {
  if(!builder.isLinked(ix.seek(pos))) {
   return pos;
  }
  ++pos;
 }
 return -1;
}
origin: de.lmu.ifi.dbs.elki/elki-clustering

builder.add(ix, distances[offset], iy, prots.seek(offset));
origin: de.lmu.ifi.dbs.elki/elki

builder.add(ix, mindist, iy);
final int sizex = builder.getSize(ix), sizey = builder.getSize(iy);
builder.setSize(iy, sizex + sizey);
origin: elki-project/elki

/**
 * Run the algorithm
 * 
 * @param db Database to run on
 * @param relation Data relation
 * @return Clustering result
 */
public PointerPrototypeHierarchyRepresentationResult run(Database db, Relation<O> relation) {
 DistanceQuery<O> dq = DatabaseUtil.precomputedDistanceQuery(db, relation, getDistanceFunction(), LOG);
 final DBIDs ids = relation.getDBIDs();
 // Initialize space for result:
 PointerHierarchyRepresentationBuilder builder = new PointerHierarchyRepresentationBuilder(ids, dq.getDistanceFunction().isSquared());
 Int2ObjectOpenHashMap<ModifiableDBIDs> clusters = new Int2ObjectOpenHashMap<>(ids.size());
 MatrixParadigm mat = new MatrixParadigm(ids);
 ArrayModifiableDBIDs prots = DBIDUtil.newArray(MatrixParadigm.triangleSize(ids.size()));
 MiniMax.initializeMatrices(mat, prots, dq);
 nnChainCore(mat, prots.iter(), dq, builder, clusters);
 return (PointerPrototypeHierarchyRepresentationResult) builder.complete();
}
origin: de.lmu.ifi.dbs.elki/elki

if(builder.isLinked(ij.seek(j))) {
 continue;
final int sizej = builder.getSize(ij);
final int yb = ybase + j;
scratch[yb] = linkage.combine(sizex, scratch[xbase + j], sizey, scratch[yb], sizej, mindist);
if(builder.isLinked(ij.seek(j))) {
 continue;
final int sizej = builder.getSize(ij);
final int jb = jbase + y;
scratch[jb] = linkage.combine(sizex, scratch[xbase + j], sizey, scratch[jb], sizej, mindist);
if(builder.isLinked(ij.seek(j))) {
 continue;
final int sizej = builder.getSize(ij);
scratch[jbase + y] = linkage.combine(sizex, scratch[jbase + x], sizey, scratch[jbase + y], sizej, mindist);
origin: de.lmu.ifi.dbs.elki/elki-clustering

/**
 * Find an unlinked object.
 *
 * @param pos Starting position
 * @param end End position
 * @param ix Iterator to translate into DBIDs
 * @param builder Linkage information
 * @return Position
 */
public static int findUnlinked(int pos, int end, DBIDArrayIter ix, PointerHierarchyRepresentationBuilder builder) {
 while(pos < end) {
  if(!builder.isLinked(ix.seek(pos))) {
   return pos;
  }
  ++pos;
 }
 return -1;
}
origin: de.lmu.ifi.dbs.elki/elki-clustering

builder.add(ix, distances[offset], iy, prots.seek(offset));
origin: elki-project/elki

/**
 * Execute the cluster merge.
 *
 * @param end Active set size
 * @param mat Matrix paradigm
 * @param builder Hierarchy builder
 * @param mindist Distance that was used for merging
 * @param x First matrix position
 * @param y Second matrix position
 */
protected void merge(int end, MatrixParadigm mat, PointerHierarchyRepresentationBuilder builder, double mindist, int x, int y) {
 // Avoid allocating memory, by reusing existing iterators:
 final DBIDArrayIter ix = mat.ix.seek(x), iy = mat.iy.seek(y);
 if(LOG.isDebuggingFine()) {
  LOG.debugFine("Merging: " + DBIDUtil.toString(ix) + " -> " + DBIDUtil.toString(iy) + " " + mindist);
 }
 // Perform merge in data structure: x -> y
 assert (y < x);
 // Since y < x, prefer keeping y, dropping x.
 builder.add(ix, linkage.restore(mindist, getDistanceFunction().isSquared()), iy);
 // Update cluster size for y:
 final int sizex = builder.getSize(ix), sizey = builder.getSize(iy);
 builder.setSize(iy, sizex + sizey);
 updateMatrix(end, mat, builder, mindist, x, y, sizex, sizey);
}
de.lmu.ifi.dbs.elki.algorithm.clustering.hierarchicalPointerHierarchyRepresentationBuilder

Javadoc

Class to help building a pointer hierarchy.

Most used methods

  • <init>
    Constructor.
  • add
    Add an element to the pointer representation. Important: If an algorithm does not produce links in a
  • complete
    Finalize the result.
  • getSize
    Get the cluster size of the current object.
  • isLinked
    Test if an object is already linked.
  • setSize
    Set the cluster size of an object.

Popular in Java

  • Making http post requests using okhttp
  • getContentResolver (Context)
  • findViewById (Activity)
  • getExternalFilesDir (Context)
  • Window (java.awt)
    A Window object is a top-level window with no borders and no menubar. The default layout for a windo
  • File (java.io)
    An "abstract" representation of a file system entity identified by a pathname. The pathname may be a
  • PrintStream (java.io)
    Fake signature of an existing Java class.
  • StringTokenizer (java.util)
    Breaks a string into tokens; new code should probably use String#split.> // Legacy code: StringTo
  • Handler (java.util.logging)
    A Handler object accepts a logging request and exports the desired messages to a target, for example
  • JFrame (javax.swing)
  • Best IntelliJ plugins
Tabnine Logo
  • Products

    Search for Java codeSearch for JavaScript code
  • IDE Plugins

    IntelliJ IDEAWebStormVisual StudioAndroid StudioEclipseVisual Studio CodePyCharmSublime TextPhpStormVimGoLandRubyMineEmacsJupyter NotebookJupyter LabRiderDataGripAppCode
  • Company

    About UsContact UsCareers
  • Resources

    FAQBlogTabnine AcademyTerms of usePrivacy policyJava Code IndexJavascript Code Index
Get Tabnine for your IDE now