public class org.apache.commons.math3.stat.clustering.DBSCANClusterer<T extends org.apache.commons.math3.stat.clustering.Clusterable<T>>
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.commons.math3.stat.clustering.DBSCANClusterer
  super_class: java.lang.Object
{
  private final double eps;
    descriptor: D
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int minPts;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public void <init>(double, int);
    descriptor: (DI)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // org.apache.commons.math3.stat.clustering.DBSCANClusterer this
        start local 1 // double eps
        start local 3 // int minPts
         0: .line 86
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 88
            dload 1 /* eps */
            dconst_0
            dcmpg
            ifge 3
         2: .line 89
            new org.apache.commons.math3.exception.NotPositiveException
            dup
            dload 1 /* eps */
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            invokespecial org.apache.commons.math3.exception.NotPositiveException.<init>:(Ljava/lang/Number;)V
            athrow
         3: .line 91
      StackMap locals: org.apache.commons.math3.stat.clustering.DBSCANClusterer double int
      StackMap stack:
            iload 3 /* minPts */
            ifge 5
         4: .line 92
            new org.apache.commons.math3.exception.NotPositiveException
            dup
            iload 3 /* minPts */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokespecial org.apache.commons.math3.exception.NotPositiveException.<init>:(Ljava/lang/Number;)V
            athrow
         5: .line 94
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dload 1 /* eps */
            putfield org.apache.commons.math3.stat.clustering.DBSCANClusterer.eps:D
         6: .line 95
            aload 0 /* this */
            iload 3 /* minPts */
            putfield org.apache.commons.math3.stat.clustering.DBSCANClusterer.minPts:I
         7: .line 96
            return
        end local 3 // int minPts
        end local 1 // double eps
        end local 0 // org.apache.commons.math3.stat.clustering.DBSCANClusterer this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    this  Lorg/apache/commons/math3/stat/clustering/DBSCANClusterer<TT;>;
            0    8     1     eps  D
            0    8     3  minPts  I
    Exceptions:
      throws org.apache.commons.math3.exception.NotPositiveException
    MethodParameters:
        Name  Flags
      eps     final
      minPts  final

  public double getEps();
    descriptor: ()D
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.commons.math3.stat.clustering.DBSCANClusterer this
         0: .line 104
            aload 0 /* this */
            getfield org.apache.commons.math3.stat.clustering.DBSCANClusterer.eps:D
            dreturn
        end local 0 // org.apache.commons.math3.stat.clustering.DBSCANClusterer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/commons/math3/stat/clustering/DBSCANClusterer<TT;>;

  public int getMinPts();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.commons.math3.stat.clustering.DBSCANClusterer this
         0: .line 113
            aload 0 /* this */
            getfield org.apache.commons.math3.stat.clustering.DBSCANClusterer.minPts:I
            ireturn
        end local 0 // org.apache.commons.math3.stat.clustering.DBSCANClusterer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/commons/math3/stat/clustering/DBSCANClusterer<TT;>;

  public java.util.List<org.apache.commons.math3.stat.clustering.Cluster<T>> cluster(java.util.Collection<T>);
    descriptor: (Ljava/util/Collection;)Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=8, args_size=2
        start local 0 // org.apache.commons.math3.stat.clustering.DBSCANClusterer this
        start local 1 // java.util.Collection points
         0: .line 130
            aload 1 /* points */
            invokestatic org.apache.commons.math3.util.MathUtils.checkNotNull:(Ljava/lang/Object;)V
         1: .line 132
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* clusters */
        start local 2 // java.util.List clusters
         2: .line 133
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 3 /* visited */
        start local 3 // java.util.Map visited
         3: .line 135
            aload 1 /* points */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 5
            goto 13
      StackMap locals: org.apache.commons.math3.stat.clustering.DBSCANClusterer java.util.Collection java.util.List java.util.Map top java.util.Iterator
      StackMap stack:
         4: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.commons.math3.stat.clustering.Clusterable
            astore 4 /* point */
        start local 4 // org.apache.commons.math3.stat.clustering.Clusterable point
         5: .line 136
            aload 3 /* visited */
            aload 4 /* point */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            ifnull 7
         6: .line 137
            goto 13
         7: .line 139
      StackMap locals: org.apache.commons.math3.stat.clustering.DBSCANClusterer java.util.Collection java.util.List java.util.Map org.apache.commons.math3.stat.clustering.Clusterable java.util.Iterator
      StackMap stack:
            aload 0 /* this */
            aload 4 /* point */
            aload 1 /* points */
            invokevirtual org.apache.commons.math3.stat.clustering.DBSCANClusterer.getNeighbors:(Lorg/apache/commons/math3/stat/clustering/Clusterable;Ljava/util/Collection;)Ljava/util/List;
            astore 6 /* neighbors */
        start local 6 // java.util.List neighbors
         8: .line 140
            aload 6 /* neighbors */
            invokeinterface java.util.List.size:()I
            aload 0 /* this */
            getfield org.apache.commons.math3.stat.clustering.DBSCANClusterer.minPts:I
            if_icmplt 12
         9: .line 142
            new org.apache.commons.math3.stat.clustering.Cluster
            dup
            aconst_null
            invokespecial org.apache.commons.math3.stat.clustering.Cluster.<init>:(Lorg/apache/commons/math3/stat/clustering/Clusterable;)V
            astore 7 /* cluster */
        start local 7 // org.apache.commons.math3.stat.clustering.Cluster cluster
        10: .line 143
            aload 2 /* clusters */
            aload 0 /* this */
            aload 7 /* cluster */
            aload 4 /* point */
            aload 6 /* neighbors */
            aload 1 /* points */
            aload 3 /* visited */
            invokevirtual org.apache.commons.math3.stat.clustering.DBSCANClusterer.expandCluster:(Lorg/apache/commons/math3/stat/clustering/Cluster;Lorg/apache/commons/math3/stat/clustering/Clusterable;Ljava/util/List;Ljava/util/Collection;Ljava/util/Map;)Lorg/apache/commons/math3/stat/clustering/Cluster;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 7 // org.apache.commons.math3.stat.clustering.Cluster cluster
        11: .line 144
            goto 13
        12: .line 145
      StackMap locals: java.util.List
      StackMap stack:
            aload 3 /* visited */
            aload 4 /* point */
            getstatic org.apache.commons.math3.stat.clustering.DBSCANClusterer$PointStatus.NOISE:Lorg/apache/commons/math3/stat/clustering/DBSCANClusterer$PointStatus;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 6 // java.util.List neighbors
        end local 4 // org.apache.commons.math3.stat.clustering.Clusterable point
        13: .line 135
      StackMap locals: org.apache.commons.math3.stat.clustering.DBSCANClusterer java.util.Collection java.util.List java.util.Map top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
        14: .line 149
            aload 2 /* clusters */
            areturn
        end local 3 // java.util.Map visited
        end local 2 // java.util.List clusters
        end local 1 // java.util.Collection points
        end local 0 // org.apache.commons.math3.stat.clustering.DBSCANClusterer this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   15     0       this  Lorg/apache/commons/math3/stat/clustering/DBSCANClusterer<TT;>;
            0   15     1     points  Ljava/util/Collection<TT;>;
            2   15     2   clusters  Ljava/util/List<Lorg/apache/commons/math3/stat/clustering/Cluster<TT;>;>;
            3   15     3    visited  Ljava/util/Map<Lorg/apache/commons/math3/stat/clustering/Clusterable<TT;>;Lorg/apache/commons/math3/stat/clustering/DBSCANClusterer$PointStatus;>;
            5   13     4      point  TT;
            8   13     6  neighbors  Ljava/util/List<TT;>;
           10   11     7    cluster  Lorg/apache/commons/math3/stat/clustering/Cluster<TT;>;
    Exceptions:
      throws org.apache.commons.math3.exception.NullArgumentException
    Signature: (Ljava/util/Collection<TT;>;)Ljava/util/List<Lorg/apache/commons/math3/stat/clustering/Cluster<TT;>;>;
    MethodParameters:
        Name  Flags
      points  final

  private org.apache.commons.math3.stat.clustering.Cluster<T> expandCluster(org.apache.commons.math3.stat.clustering.Cluster<T>, T, java.util.List<T>, java.util.Collection<T>, java.util.Map<org.apache.commons.math3.stat.clustering.Clusterable<T>, org.apache.commons.math3.stat.clustering.DBSCANClusterer$PointStatus>);
    descriptor: (Lorg/apache/commons/math3/stat/clustering/Cluster;Lorg/apache/commons/math3/stat/clustering/Clusterable;Ljava/util/List;Ljava/util/Collection;Ljava/util/Map;)Lorg/apache/commons/math3/stat/clustering/Cluster;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=11, args_size=6
        start local 0 // org.apache.commons.math3.stat.clustering.DBSCANClusterer this
        start local 1 // org.apache.commons.math3.stat.clustering.Cluster cluster
        start local 2 // org.apache.commons.math3.stat.clustering.Clusterable point
        start local 3 // java.util.List neighbors
        start local 4 // java.util.Collection points
        start local 5 // java.util.Map visited
         0: .line 167
            aload 1 /* cluster */
            aload 2 /* point */
            invokevirtual org.apache.commons.math3.stat.clustering.Cluster.addPoint:(Lorg/apache/commons/math3/stat/clustering/Clusterable;)V
         1: .line 168
            aload 5 /* visited */
            aload 2 /* point */
            getstatic org.apache.commons.math3.stat.clustering.DBSCANClusterer$PointStatus.PART_OF_CLUSTER:Lorg/apache/commons/math3/stat/clustering/DBSCANClusterer$PointStatus;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 170
            new java.util.ArrayList
            dup
            aload 3 /* neighbors */
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
            astore 6 /* seeds */
        start local 6 // java.util.List seeds
         3: .line 171
            iconst_0
            istore 7 /* index */
        start local 7 // int index
         4: .line 172
            goto 15
         5: .line 173
      StackMap locals: java.util.List int
      StackMap stack:
            aload 6 /* seeds */
            iload 7 /* index */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.apache.commons.math3.stat.clustering.Clusterable
            astore 8 /* current */
        start local 8 // org.apache.commons.math3.stat.clustering.Clusterable current
         6: .line 174
            aload 5 /* visited */
            aload 8 /* current */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.apache.commons.math3.stat.clustering.DBSCANClusterer$PointStatus
            astore 9 /* pStatus */
        start local 9 // org.apache.commons.math3.stat.clustering.DBSCANClusterer$PointStatus pStatus
         7: .line 176
            aload 9 /* pStatus */
            ifnonnull 11
         8: .line 177
            aload 0 /* this */
            aload 8 /* current */
            aload 4 /* points */
            invokevirtual org.apache.commons.math3.stat.clustering.DBSCANClusterer.getNeighbors:(Lorg/apache/commons/math3/stat/clustering/Clusterable;Ljava/util/Collection;)Ljava/util/List;
            astore 10 /* currentNeighbors */
        start local 10 // java.util.List currentNeighbors
         9: .line 178
            aload 10 /* currentNeighbors */
            invokeinterface java.util.List.size:()I
            aload 0 /* this */
            getfield org.apache.commons.math3.stat.clustering.DBSCANClusterer.minPts:I
            if_icmplt 11
        10: .line 179
            aload 0 /* this */
            aload 6 /* seeds */
            aload 10 /* currentNeighbors */
            invokevirtual org.apache.commons.math3.stat.clustering.DBSCANClusterer.merge:(Ljava/util/List;Ljava/util/List;)Ljava/util/List;
            astore 6 /* seeds */
        end local 10 // java.util.List currentNeighbors
        11: .line 183
      StackMap locals: org.apache.commons.math3.stat.clustering.Clusterable org.apache.commons.math3.stat.clustering.DBSCANClusterer$PointStatus
      StackMap stack:
            aload 9 /* pStatus */
            getstatic org.apache.commons.math3.stat.clustering.DBSCANClusterer$PointStatus.PART_OF_CLUSTER:Lorg/apache/commons/math3/stat/clustering/DBSCANClusterer$PointStatus;
            if_acmpeq 14
        12: .line 184
            aload 5 /* visited */
            aload 8 /* current */
            getstatic org.apache.commons.math3.stat.clustering.DBSCANClusterer$PointStatus.PART_OF_CLUSTER:Lorg/apache/commons/math3/stat/clustering/DBSCANClusterer$PointStatus;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        13: .line 185
            aload 1 /* cluster */
            aload 8 /* current */
            invokevirtual org.apache.commons.math3.stat.clustering.Cluster.addPoint:(Lorg/apache/commons/math3/stat/clustering/Clusterable;)V
        14: .line 188
      StackMap locals:
      StackMap stack:
            iinc 7 /* index */ 1
        end local 9 // org.apache.commons.math3.stat.clustering.DBSCANClusterer$PointStatus pStatus
        end local 8 // org.apache.commons.math3.stat.clustering.Clusterable current
        15: .line 172
      StackMap locals:
      StackMap stack:
            iload 7 /* index */
            aload 6 /* seeds */
            invokeinterface java.util.List.size:()I
            if_icmplt 5
        16: .line 190
            aload 1 /* cluster */
            areturn
        end local 7 // int index
        end local 6 // java.util.List seeds
        end local 5 // java.util.Map visited
        end local 4 // java.util.Collection points
        end local 3 // java.util.List neighbors
        end local 2 // org.apache.commons.math3.stat.clustering.Clusterable point
        end local 1 // org.apache.commons.math3.stat.clustering.Cluster cluster
        end local 0 // org.apache.commons.math3.stat.clustering.DBSCANClusterer this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   17     0              this  Lorg/apache/commons/math3/stat/clustering/DBSCANClusterer<TT;>;
            0   17     1           cluster  Lorg/apache/commons/math3/stat/clustering/Cluster<TT;>;
            0   17     2             point  TT;
            0   17     3         neighbors  Ljava/util/List<TT;>;
            0   17     4            points  Ljava/util/Collection<TT;>;
            0   17     5           visited  Ljava/util/Map<Lorg/apache/commons/math3/stat/clustering/Clusterable<TT;>;Lorg/apache/commons/math3/stat/clustering/DBSCANClusterer$PointStatus;>;
            3   17     6             seeds  Ljava/util/List<TT;>;
            4   17     7             index  I
            6   15     8           current  TT;
            7   15     9           pStatus  Lorg/apache/commons/math3/stat/clustering/DBSCANClusterer$PointStatus;
            9   11    10  currentNeighbors  Ljava/util/List<TT;>;
    Signature: (Lorg/apache/commons/math3/stat/clustering/Cluster<TT;>;TT;Ljava/util/List<TT;>;Ljava/util/Collection<TT;>;Ljava/util/Map<Lorg/apache/commons/math3/stat/clustering/Clusterable<TT;>;Lorg/apache/commons/math3/stat/clustering/DBSCANClusterer$PointStatus;>;)Lorg/apache/commons/math3/stat/clustering/Cluster<TT;>;
    MethodParameters:
           Name  Flags
      cluster    final
      point      final
      neighbors  final
      points     final
      visited    final

  private java.util.List<T> getNeighbors(T, java.util.Collection<T>);
    descriptor: (Lorg/apache/commons/math3/stat/clustering/Clusterable;Ljava/util/Collection;)Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // org.apache.commons.math3.stat.clustering.DBSCANClusterer this
        start local 1 // org.apache.commons.math3.stat.clustering.Clusterable point
        start local 2 // java.util.Collection points
         0: .line 201
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* neighbors */
        start local 3 // java.util.List neighbors
         1: .line 202
            aload 2 /* points */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 5
            goto 5
      StackMap locals: org.apache.commons.math3.stat.clustering.DBSCANClusterer org.apache.commons.math3.stat.clustering.Clusterable java.util.Collection java.util.List top java.util.Iterator
      StackMap stack:
         2: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.commons.math3.stat.clustering.Clusterable
            astore 4 /* neighbor */
        start local 4 // org.apache.commons.math3.stat.clustering.Clusterable neighbor
         3: .line 203
            aload 1 /* point */
            aload 4 /* neighbor */
            if_acmpeq 5
            aload 4 /* neighbor */
            aload 1 /* point */
            invokeinterface org.apache.commons.math3.stat.clustering.Clusterable.distanceFrom:(Ljava/lang/Object;)D
            aload 0 /* this */
            getfield org.apache.commons.math3.stat.clustering.DBSCANClusterer.eps:D
            dcmpg
            ifgt 5
         4: .line 204
            aload 3 /* neighbors */
            aload 4 /* neighbor */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 4 // org.apache.commons.math3.stat.clustering.Clusterable neighbor
         5: .line 202
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         6: .line 207
            aload 3 /* neighbors */
            areturn
        end local 3 // java.util.List neighbors
        end local 2 // java.util.Collection points
        end local 1 // org.apache.commons.math3.stat.clustering.Clusterable point
        end local 0 // org.apache.commons.math3.stat.clustering.DBSCANClusterer this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    7     0       this  Lorg/apache/commons/math3/stat/clustering/DBSCANClusterer<TT;>;
            0    7     1      point  TT;
            0    7     2     points  Ljava/util/Collection<TT;>;
            1    7     3  neighbors  Ljava/util/List<TT;>;
            3    5     4   neighbor  TT;
    Signature: (TT;Ljava/util/Collection<TT;>;)Ljava/util/List<TT;>;
    MethodParameters:
        Name  Flags
      point   final
      points  final

  private java.util.List<T> merge(java.util.List<T>, java.util.List<T>);
    descriptor: (Ljava/util/List;Ljava/util/List;)Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=6, args_size=3
        start local 0 // org.apache.commons.math3.stat.clustering.DBSCANClusterer this
        start local 1 // java.util.List one
        start local 2 // java.util.List two
         0: .line 218
            new java.util.HashSet
            dup
            aload 1 /* one */
            invokespecial java.util.HashSet.<init>:(Ljava/util/Collection;)V
            astore 3 /* oneSet */
        start local 3 // java.util.Set oneSet
         1: .line 219
            aload 2 /* two */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 5
      StackMap locals: org.apache.commons.math3.stat.clustering.DBSCANClusterer java.util.List java.util.List java.util.Set top java.util.Iterator
      StackMap stack:
         2: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.commons.math3.stat.clustering.Clusterable
            astore 4 /* item */
        start local 4 // org.apache.commons.math3.stat.clustering.Clusterable item
         3: .line 220
            aload 3 /* oneSet */
            aload 4 /* item */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 5
         4: .line 221
            aload 1 /* one */
            aload 4 /* item */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 4 // org.apache.commons.math3.stat.clustering.Clusterable item
         5: .line 219
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         6: .line 224
            aload 1 /* one */
            areturn
        end local 3 // java.util.Set oneSet
        end local 2 // java.util.List two
        end local 1 // java.util.List one
        end local 0 // org.apache.commons.math3.stat.clustering.DBSCANClusterer this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Lorg/apache/commons/math3/stat/clustering/DBSCANClusterer<TT;>;
            0    7     1     one  Ljava/util/List<TT;>;
            0    7     2     two  Ljava/util/List<TT;>;
            1    7     3  oneSet  Ljava/util/Set<TT;>;
            3    5     4    item  TT;
    Signature: (Ljava/util/List<TT;>;Ljava/util/List<TT;>;)Ljava/util/List<TT;>;
    MethodParameters:
      Name  Flags
      one   final
      two   final
}
Signature: <T::Lorg/apache/commons/math3/stat/clustering/Clusterable<TT;>;>Ljava/lang/Object;
SourceFile: "DBSCANClusterer.java"
NestMembers:
  org.apache.commons.math3.stat.clustering.DBSCANClusterer$PointStatus
InnerClasses:
  private final PointStatus = org.apache.commons.math3.stat.clustering.DBSCANClusterer$PointStatus of org.apache.commons.math3.stat.clustering.DBSCANClusterer
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()