class picocli.CommandLine$CosineSimilarity
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: picocli.CommandLine$CosineSimilarity
  super_class: java.lang.Object
{
  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // picocli.CommandLine$CosineSimilarity this
         0: .line 15548
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // picocli.CommandLine$CosineSimilarity this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lpicocli/CommandLine$CosineSimilarity;

  static java.util.List<java.lang.String> mostSimilar(java.lang.String, java.lang.Iterable<java.lang.String>);
    descriptor: (Ljava/lang/String;Ljava/lang/Iterable;)Ljava/util/List;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // java.lang.String pattern
        start local 1 // java.lang.Iterable candidates
         0: .line 15549
            aload 0 /* pattern */
            aload 1 /* candidates */
            dconst_0
            invokestatic picocli.CommandLine$CosineSimilarity.mostSimilar:(Ljava/lang/String;Ljava/lang/Iterable;D)Ljava/util/List;
            areturn
        end local 1 // java.lang.Iterable candidates
        end local 0 // java.lang.String pattern
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0     pattern  Ljava/lang/String;
            0    1     1  candidates  Ljava/lang/Iterable<Ljava/lang/String;>;
    Signature: (Ljava/lang/String;Ljava/lang/Iterable<Ljava/lang/String;>;)Ljava/util/List<Ljava/lang/String;>;
    MethodParameters:
            Name  Flags
      pattern     
      candidates  

  static java.util.List<java.lang.String> mostSimilar(java.lang.String, java.lang.Iterable<java.lang.String>, double);
    descriptor: (Ljava/lang/String;Ljava/lang/Iterable;D)Ljava/util/List;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=9, args_size=3
        start local 0 // java.lang.String pattern
        start local 1 // java.lang.Iterable candidates
        start local 2 // double threshold
         0: .line 15551
            aload 0 /* pattern */
            invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
            astore 0 /* pattern */
         1: .line 15552
            new java.util.TreeMap
            dup
            invokespecial java.util.TreeMap.<init>:()V
            astore 4 /* sorted */
        start local 4 // java.util.SortedMap sorted
         2: .line 15553
            aload 1 /* candidates */
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 6
            goto 6
      StackMap locals: java.lang.String java.lang.Iterable double java.util.SortedMap top java.util.Iterator
      StackMap stack:
         3: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 5 /* candidate */
        start local 5 // java.lang.String candidate
         4: .line 15554
            aload 0 /* pattern */
            aload 5 /* candidate */
            invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
            iconst_2
            invokestatic picocli.CommandLine$CosineSimilarity.similarity:(Ljava/lang/String;Ljava/lang/String;I)D
            dstore 7 /* score */
        start local 7 // double score
         5: .line 15555
            dload 7 /* score */
            dload 2 /* threshold */
            dcmpl
            ifle 6
            aload 4 /* sorted */
            dload 7 /* score */
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            aload 5 /* candidate */
            invokeinterface java.util.SortedMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 7 // double score
        end local 5 // java.lang.String candidate
         6: .line 15553
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         7: .line 15557
            new java.util.ArrayList
            dup
            aload 4 /* sorted */
            invokeinterface java.util.SortedMap.values:()Ljava/util/Collection;
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
            invokestatic picocli.CommandLine.reverseList:(Ljava/util/List;)Ljava/util/List;
            areturn
        end local 4 // java.util.SortedMap sorted
        end local 2 // double threshold
        end local 1 // java.lang.Iterable candidates
        end local 0 // java.lang.String pattern
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    8     0     pattern  Ljava/lang/String;
            0    8     1  candidates  Ljava/lang/Iterable<Ljava/lang/String;>;
            0    8     2   threshold  D
            2    8     4      sorted  Ljava/util/SortedMap<Ljava/lang/Double;Ljava/lang/String;>;
            4    6     5   candidate  Ljava/lang/String;
            5    6     7       score  D
    Signature: (Ljava/lang/String;Ljava/lang/Iterable<Ljava/lang/String;>;D)Ljava/util/List<Ljava/lang/String;>;
    MethodParameters:
            Name  Flags
      pattern     
      candidates  
      threshold   

  private static double similarity(java.lang.String, java.lang.String, int);
    descriptor: (Ljava/lang/String;Ljava/lang/String;I)D
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=5, args_size=3
        start local 0 // java.lang.String sequence1
        start local 1 // java.lang.String sequence2
        start local 2 // int degree
         0: .line 15561
            aload 0 /* sequence1 */
            iload 2 /* degree */
            invokestatic picocli.CommandLine$CosineSimilarity.countNgramFrequency:(Ljava/lang/String;I)Ljava/util/Map;
            astore 3 /* m1 */
        start local 3 // java.util.Map m1
         1: .line 15562
            aload 1 /* sequence2 */
            iload 2 /* degree */
            invokestatic picocli.CommandLine$CosineSimilarity.countNgramFrequency:(Ljava/lang/String;I)Ljava/util/Map;
            astore 4 /* m2 */
        start local 4 // java.util.Map m2
         2: .line 15563
            aload 3 /* m1 */
            aload 4 /* m2 */
            invokestatic picocli.CommandLine$CosineSimilarity.dotProduct:(Ljava/util/Map;Ljava/util/Map;)D
            aload 3 /* m1 */
            aload 3 /* m1 */
            invokestatic picocli.CommandLine$CosineSimilarity.dotProduct:(Ljava/util/Map;Ljava/util/Map;)D
            aload 4 /* m2 */
            aload 4 /* m2 */
            invokestatic picocli.CommandLine$CosineSimilarity.dotProduct:(Ljava/util/Map;Ljava/util/Map;)D
            dmul
            invokestatic java.lang.Math.sqrt:(D)D
            ddiv
            dreturn
        end local 4 // java.util.Map m2
        end local 3 // java.util.Map m1
        end local 2 // int degree
        end local 1 // java.lang.String sequence2
        end local 0 // java.lang.String sequence1
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0  sequence1  Ljava/lang/String;
            0    3     1  sequence2  Ljava/lang/String;
            0    3     2     degree  I
            1    3     3         m1  Ljava/util/Map<Ljava/lang/String;Ljava/lang/Integer;>;
            2    3     4         m2  Ljava/util/Map<Ljava/lang/String;Ljava/lang/Integer;>;
    MethodParameters:
           Name  Flags
      sequence1  
      sequence2  
      degree     

  private static java.util.Map<java.lang.String, java.lang.Integer> countNgramFrequency(java.lang.String, int);
    descriptor: (Ljava/lang/String;I)Ljava/util/Map;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // java.lang.String sequence
        start local 1 // int degree
         0: .line 15567
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 2 /* m */
        start local 2 // java.util.Map m
         1: .line 15568
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         2: goto 8
         3: .line 15569
      StackMap locals: java.util.Map int
      StackMap stack:
            aload 0 /* sequence */
            iload 3 /* i */
            iload 3 /* i */
            iload 1 /* degree */
            iadd
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 4 /* gram */
        start local 4 // java.lang.String gram
         4: .line 15570
            aload 2 /* m */
            aload 4 /* gram */
            iconst_1
            aload 2 /* m */
            aload 4 /* gram */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifeq 5
            aload 2 /* m */
            aload 4 /* gram */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            goto 6
      StackMap locals: java.lang.String int java.util.Map int java.lang.String
      StackMap stack: java.util.Map java.lang.String int
         5: iconst_0
      StackMap locals: java.lang.String int java.util.Map int java.lang.String
      StackMap stack: java.util.Map java.lang.String int int
         6: iadd
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 4 // java.lang.String gram
         7: .line 15568
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 3 /* i */
            iload 1 /* degree */
            iadd
            aload 0 /* sequence */
            invokevirtual java.lang.String.length:()I
            if_icmple 3
        end local 3 // int i
         9: .line 15572
            aload 2 /* m */
            areturn
        end local 2 // java.util.Map m
        end local 1 // int degree
        end local 0 // java.lang.String sequence
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   10     0  sequence  Ljava/lang/String;
            0   10     1    degree  I
            1   10     2         m  Ljava/util/Map<Ljava/lang/String;Ljava/lang/Integer;>;
            2    9     3         i  I
            4    7     4      gram  Ljava/lang/String;
    Signature: (Ljava/lang/String;I)Ljava/util/Map<Ljava/lang/String;Ljava/lang/Integer;>;
    MethodParameters:
          Name  Flags
      sequence  
      degree    

  private static double dotProduct(java.util.Map<java.lang.String, java.lang.Integer>, java.util.Map<java.lang.String, java.lang.Integer>);
    descriptor: (Ljava/util/Map;Ljava/util/Map;)D
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=6, args_size=2
        start local 0 // java.util.Map m1
        start local 1 // java.util.Map m2
         0: .line 15576
            dconst_0
            dstore 2 /* result */
        start local 2 // double result
         1: .line 15577
            aload 0 /* m1 */
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 5
            goto 6
      StackMap locals: java.util.Map java.util.Map double top java.util.Iterator
      StackMap stack:
         2: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 4 /* key */
        start local 4 // java.lang.String key
         3: dload 2 /* result */
            aload 0 /* m1 */
            aload 4 /* key */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            aload 1 /* m2 */
            aload 4 /* key */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifeq 4
            aload 1 /* m2 */
            aload 4 /* key */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            goto 5
      StackMap locals: java.util.Map java.util.Map double java.lang.String java.util.Iterator
      StackMap stack: double int
         4: iconst_0
      StackMap locals: java.util.Map java.util.Map double java.lang.String java.util.Iterator
      StackMap stack: double int int
         5: imul
            i2d
            dadd
            dstore 2 /* result */
        end local 4 // java.lang.String key
      StackMap locals: java.util.Map java.util.Map double top java.util.Iterator
      StackMap stack:
         6: aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         7: .line 15578
            dload 2 /* result */
            dreturn
        end local 2 // double result
        end local 1 // java.util.Map m2
        end local 0 // java.util.Map m1
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0      m1  Ljava/util/Map<Ljava/lang/String;Ljava/lang/Integer;>;
            0    8     1      m2  Ljava/util/Map<Ljava/lang/String;Ljava/lang/Integer;>;
            1    8     2  result  D
            3    6     4     key  Ljava/lang/String;
    Signature: (Ljava/util/Map<Ljava/lang/String;Ljava/lang/Integer;>;Ljava/util/Map<Ljava/lang/String;Ljava/lang/Integer;>;)D
    MethodParameters:
      Name  Flags
      m1    
      m2    
}
SourceFile: "CommandLine.java"
NestHost: picocli.CommandLine
InnerClasses:
  private CosineSimilarity = picocli.CommandLine$CosineSimilarity of picocli.CommandLine