src/main/java/org/thegalactic/lattice/ConceptLattice.java
private void recursiveDiagramIceberg(Concept n, ClosureSystem init, int threshold) {
        Context context = (Context) init;
        Vector<TreeSet<Comparable>> immSucc = this.immediateSuccessors(n, init);
        for (TreeSet<Comparable> setX : immSucc) {
            if (context.getExtentNb(setX) >= threshold) {
                Concept c = new Concept(new TreeSet(setX), false);
                Concept ns = (Concept) this.getNode(c);
                if (ns != null) {
                    this.addEdge(n, ns);
                } else {
                    this.addNode(c);
                    this.addEdge(n, c);
                    this.recursiveDiagramIceberg(c, init, threshold);
                }
            }
        }
    }
/**
     * Returns the Hasse diagramme of the closed set iceberg of the specified
     * closure system issued from the specified concept.
     *
     * Immediate successors generation is an adaptation of Bordat's theorem
     * stating that there is a bijection between minimal strongly connected
     * component of the precedence subgraph issued from the specified node, and
     * its immediate successors.
     *
     * This treatment is performed in O(cCl|S|^3log g) where S is the initial
     * set of elements, c is the number of closed sets that could be exponential
     * in the worst case, Cl is the closure computation complexity and g is the
     * number of minimal generators of the lattice.
     *
     * @param n         a concept
     * @param init      a closure system
     * @param threshold a support threshold, as a number of observations
     */
Returns the Hasse diagramme of the closed set iceberg of the specified
closure system issued from the specified concept.

Immediate successors generation is an adaptation of Bordat's theorem
stating that there is a bijection between minimal strongly connected
component of the precedence subgraph issued from the specified node, and
its immediate successors.

This treatment is performed in O(cCl|S|^3log g) where S is the initial
set of elements, c is the number of closed sets that could be exponential
in the worst case, Cl is the closure computation complexity and g is the
number of minimal generators of the lattice.

@param n         a concept
@param init      a closure system
@param threshold a support threshold, as a number of observations
Returns the Hasse diagramme of the closed set iceberg of the specified closure system issued from the specified concept . Immediate successors generation is an adaptation of Bordat ' s theorem stating that there is a bijection between minimal strongly connected component of the precedence subgraph issued from the specified node and its immediate successors . This treatment is performed in O ( cCl|S|^3log g ) where S is the initial set of elements c is the number of closed sets that could be exponential in the worst case Cl is the closure computation complexity and g is the number of minimal generators of the lattice . @param n a concept @param init a closure system @param threshold a support threshold as a number of observations
private void recursiveDiagramIceberg(Concept n, ClosureSystem init, int threshold) {
        Context context = (Context) init;
        Vector<TreeSet<Comparable>> immSucc = this.immediateSuccessors(n, init);
        for (TreeSet<Comparable> setX : immSucc) {
            if (context.getExtentNb(setX) >= threshold) {
                Concept c = new Concept(new TreeSet(setX), false);
                Concept ns = (Concept) this.getNode(c);
                if (ns != null) {
                    this.addEdge(n, ns);
                } else {
                    this.addNode(c);
                    this.addEdge(n, c);
                    this.recursiveDiagramIceberg(c, init, threshold);
                }
            }
        }
    }
private void recursiveDiagramIceberg ( Concept n , ClosureSystem init , int threshold ) { Context context = ( Context ) init ; Vector < TreeSet < Comparable > > immSucc = this . immediateSuccessors ( n , init ) ; for ( TreeSet < Comparable > setX : immSucc ) { if ( context . getExtentNb ( setX ) >= threshold ) { Concept c = new Concept ( new TreeSet ( setX ) , false ) ; Concept ns = ( Concept ) this . getNode ( c ) ; if ( ns != null ) { this . addEdge ( n , ns ) ; } else { this . addNode ( c ) ; this . addEdge ( n , c ) ; this . recursiveDiagramIceberg ( c , init , threshold ) ; } } } }
Returns the Hasse diagramme of the closed set iceberg of the specified
 closure system issued from the specified concept.
Returns the Hasse diagramme of the closed set iceberg of the specified closure system issued from the specified concept .