public class org.apache.commons.math3.genetics.OrderedCrossover<T> implements org.apache.commons.math3.genetics.CrossoverPolicy
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.commons.math3.genetics.OrderedCrossover
  super_class: java.lang.Object
{
  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.commons.math3.genetics.OrderedCrossover this
         0: .line 60
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.apache.commons.math3.genetics.OrderedCrossover this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/commons/math3/genetics/OrderedCrossover<TT;>;

  public org.apache.commons.math3.genetics.ChromosomePair crossover(org.apache.commons.math3.genetics.Chromosome, org.apache.commons.math3.genetics.Chromosome);
    descriptor: (Lorg/apache/commons/math3/genetics/Chromosome;Lorg/apache/commons/math3/genetics/Chromosome;)Lorg/apache/commons/math3/genetics/ChromosomePair;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.apache.commons.math3.genetics.OrderedCrossover this
        start local 1 // org.apache.commons.math3.genetics.Chromosome first
        start local 2 // org.apache.commons.math3.genetics.Chromosome second
         0: .line 73
            aload 1 /* first */
            instanceof org.apache.commons.math3.genetics.AbstractListChromosome
            ifeq 1
            aload 2 /* second */
            instanceof org.apache.commons.math3.genetics.AbstractListChromosome
            ifne 2
         1: .line 74
      StackMap locals:
      StackMap stack:
            new org.apache.commons.math3.exception.MathIllegalArgumentException
            dup
            getstatic org.apache.commons.math3.exception.util.LocalizedFormats.INVALID_FIXED_LENGTH_CHROMOSOME:Lorg/apache/commons/math3/exception/util/LocalizedFormats;
            iconst_0
            anewarray java.lang.Object
            invokespecial org.apache.commons.math3.exception.MathIllegalArgumentException.<init>:(Lorg/apache/commons/math3/exception/util/Localizable;[Ljava/lang/Object;)V
            athrow
         2: .line 76
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* first */
            checkcast org.apache.commons.math3.genetics.AbstractListChromosome
            aload 2 /* second */
            checkcast org.apache.commons.math3.genetics.AbstractListChromosome
            invokevirtual org.apache.commons.math3.genetics.OrderedCrossover.mate:(Lorg/apache/commons/math3/genetics/AbstractListChromosome;Lorg/apache/commons/math3/genetics/AbstractListChromosome;)Lorg/apache/commons/math3/genetics/ChromosomePair;
            areturn
        end local 2 // org.apache.commons.math3.genetics.Chromosome second
        end local 1 // org.apache.commons.math3.genetics.Chromosome first
        end local 0 // org.apache.commons.math3.genetics.OrderedCrossover this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lorg/apache/commons/math3/genetics/OrderedCrossover<TT;>;
            0    3     1   first  Lorg/apache/commons/math3/genetics/Chromosome;
            0    3     2  second  Lorg/apache/commons/math3/genetics/Chromosome;
    Exceptions:
      throws org.apache.commons.math3.exception.DimensionMismatchException, org.apache.commons.math3.exception.MathIllegalArgumentException
    MethodParameters:
        Name  Flags
      first   final
      second  final

  protected org.apache.commons.math3.genetics.ChromosomePair mate(org.apache.commons.math3.genetics.AbstractListChromosome<T>, org.apache.commons.math3.genetics.AbstractListChromosome<T>);
    descriptor: (Lorg/apache/commons/math3/genetics/AbstractListChromosome;Lorg/apache/commons/math3/genetics/AbstractListChromosome;)Lorg/apache/commons/math3/genetics/ChromosomePair;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=19, args_size=3
        start local 0 // org.apache.commons.math3.genetics.OrderedCrossover this
        start local 1 // org.apache.commons.math3.genetics.AbstractListChromosome first
        start local 2 // org.apache.commons.math3.genetics.AbstractListChromosome second
         0: .line 90
            aload 1 /* first */
            invokevirtual org.apache.commons.math3.genetics.AbstractListChromosome.getLength:()I
            istore 3 /* length */
        start local 3 // int length
         1: .line 91
            iload 3 /* length */
            aload 2 /* second */
            invokevirtual org.apache.commons.math3.genetics.AbstractListChromosome.getLength:()I
            if_icmpeq 3
         2: .line 92
            new org.apache.commons.math3.exception.DimensionMismatchException
            dup
            aload 2 /* second */
            invokevirtual org.apache.commons.math3.genetics.AbstractListChromosome.getLength:()I
            iload 3 /* length */
            invokespecial org.apache.commons.math3.exception.DimensionMismatchException.<init>:(II)V
            athrow
         3: .line 96
      StackMap locals: int
      StackMap stack:
            aload 1 /* first */
            invokevirtual org.apache.commons.math3.genetics.AbstractListChromosome.getRepresentation:()Ljava/util/List;
            astore 4 /* parent1Rep */
        start local 4 // java.util.List parent1Rep
         4: .line 97
            aload 2 /* second */
            invokevirtual org.apache.commons.math3.genetics.AbstractListChromosome.getRepresentation:()Ljava/util/List;
            astore 5 /* parent2Rep */
        start local 5 // java.util.List parent2Rep
         5: .line 99
            new java.util.ArrayList
            dup
            iload 3 /* length */
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 6 /* child1 */
        start local 6 // java.util.List child1
         6: .line 100
            new java.util.ArrayList
            dup
            iload 3 /* length */
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 7 /* child2 */
        start local 7 // java.util.List child2
         7: .line 102
            new java.util.HashSet
            dup
            iload 3 /* length */
            invokespecial java.util.HashSet.<init>:(I)V
            astore 8 /* child1Set */
        start local 8 // java.util.Set child1Set
         8: .line 103
            new java.util.HashSet
            dup
            iload 3 /* length */
            invokespecial java.util.HashSet.<init>:(I)V
            astore 9 /* child2Set */
        start local 9 // java.util.Set child2Set
         9: .line 105
            invokestatic org.apache.commons.math3.genetics.GeneticAlgorithm.getRandomGenerator:()Lorg/apache/commons/math3/random/RandomGenerator;
            astore 10 /* random */
        start local 10 // org.apache.commons.math3.random.RandomGenerator random
        10: .line 107
            aload 10 /* random */
            iload 3 /* length */
            invokeinterface org.apache.commons.math3.random.RandomGenerator.nextInt:(I)I
            istore 11 /* a */
        start local 11 // int a
        11: .line 110
      StackMap locals: org.apache.commons.math3.genetics.OrderedCrossover org.apache.commons.math3.genetics.AbstractListChromosome org.apache.commons.math3.genetics.AbstractListChromosome int java.util.List java.util.List java.util.List java.util.List java.util.Set java.util.Set org.apache.commons.math3.random.RandomGenerator int
      StackMap stack:
            aload 10 /* random */
            iload 3 /* length */
            invokeinterface org.apache.commons.math3.random.RandomGenerator.nextInt:(I)I
            istore 12 /* b */
        start local 12 // int b
        12: .line 111
            iload 11 /* a */
            iload 12 /* b */
            if_icmpeq 11
        13: .line 113
            iload 11 /* a */
            iload 12 /* b */
            invokestatic org.apache.commons.math3.util.FastMath.min:(II)I
            istore 13 /* lb */
        start local 13 // int lb
        14: .line 114
            iload 11 /* a */
            iload 12 /* b */
            invokestatic org.apache.commons.math3.util.FastMath.max:(II)I
            istore 14 /* ub */
        start local 14 // int ub
        15: .line 117
            aload 6 /* child1 */
            aload 4 /* parent1Rep */
            iload 13 /* lb */
            iload 14 /* ub */
            iconst_1
            iadd
            invokeinterface java.util.List.subList:(II)Ljava/util/List;
            invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
            pop
        16: .line 118
            aload 8 /* child1Set */
            aload 6 /* child1 */
            invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
            pop
        17: .line 119
            aload 7 /* child2 */
            aload 5 /* parent2Rep */
            iload 13 /* lb */
            iload 14 /* ub */
            iconst_1
            iadd
            invokeinterface java.util.List.subList:(II)Ljava/util/List;
            invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
            pop
        18: .line 120
            aload 9 /* child2Set */
            aload 7 /* child2 */
            invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
            pop
        19: .line 123
            iconst_1
            istore 15 /* i */
        start local 15 // int i
        20: goto 31
        21: .line 124
      StackMap locals: org.apache.commons.math3.genetics.OrderedCrossover org.apache.commons.math3.genetics.AbstractListChromosome org.apache.commons.math3.genetics.AbstractListChromosome int java.util.List java.util.List java.util.List java.util.List java.util.Set java.util.Set org.apache.commons.math3.random.RandomGenerator int int int int int
      StackMap stack:
            iload 14 /* ub */
            iload 15 /* i */
            iadd
            iload 3 /* length */
            irem
            istore 16 /* idx */
        start local 16 // int idx
        22: .line 127
            aload 4 /* parent1Rep */
            iload 16 /* idx */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            astore 17 /* item1 */
        start local 17 // java.lang.Object item1
        23: .line 128
            aload 5 /* parent2Rep */
            iload 16 /* idx */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            astore 18 /* item2 */
        start local 18 // java.lang.Object item2
        24: .line 131
            aload 8 /* child1Set */
            aload 18 /* item2 */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 27
        25: .line 132
            aload 6 /* child1 */
            aload 18 /* item2 */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        26: .line 133
            aload 8 /* child1Set */
            aload 18 /* item2 */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        27: .line 137
      StackMap locals: int java.lang.Object java.lang.Object
      StackMap stack:
            aload 9 /* child2Set */
            aload 17 /* item1 */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 30
        28: .line 138
            aload 7 /* child2 */
            aload 17 /* item1 */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        29: .line 139
            aload 9 /* child2Set */
            aload 17 /* item1 */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 18 // java.lang.Object item2
        end local 17 // java.lang.Object item1
        end local 16 // int idx
        30: .line 123
      StackMap locals:
      StackMap stack:
            iinc 15 /* i */ 1
      StackMap locals:
      StackMap stack:
        31: iload 15 /* i */
            iload 3 /* length */
            if_icmple 21
        end local 15 // int i
        32: .line 144
            aload 6 /* child1 */
            iload 13 /* lb */
            invokestatic java.util.Collections.rotate:(Ljava/util/List;I)V
        33: .line 145
            aload 7 /* child2 */
            iload 13 /* lb */
            invokestatic java.util.Collections.rotate:(Ljava/util/List;I)V
        34: .line 147
            new org.apache.commons.math3.genetics.ChromosomePair
            dup
            aload 1 /* first */
            aload 6 /* child1 */
            invokevirtual org.apache.commons.math3.genetics.AbstractListChromosome.newFixedLengthChromosome:(Ljava/util/List;)Lorg/apache/commons/math3/genetics/AbstractListChromosome;
        35: .line 148
            aload 2 /* second */
            aload 7 /* child2 */
            invokevirtual org.apache.commons.math3.genetics.AbstractListChromosome.newFixedLengthChromosome:(Ljava/util/List;)Lorg/apache/commons/math3/genetics/AbstractListChromosome;
        36: .line 147
            invokespecial org.apache.commons.math3.genetics.ChromosomePair.<init>:(Lorg/apache/commons/math3/genetics/Chromosome;Lorg/apache/commons/math3/genetics/Chromosome;)V
            areturn
        end local 14 // int ub
        end local 13 // int lb
        end local 12 // int b
        end local 11 // int a
        end local 10 // org.apache.commons.math3.random.RandomGenerator random
        end local 9 // java.util.Set child2Set
        end local 8 // java.util.Set child1Set
        end local 7 // java.util.List child2
        end local 6 // java.util.List child1
        end local 5 // java.util.List parent2Rep
        end local 4 // java.util.List parent1Rep
        end local 3 // int length
        end local 2 // org.apache.commons.math3.genetics.AbstractListChromosome second
        end local 1 // org.apache.commons.math3.genetics.AbstractListChromosome first
        end local 0 // org.apache.commons.math3.genetics.OrderedCrossover this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   37     0        this  Lorg/apache/commons/math3/genetics/OrderedCrossover<TT;>;
            0   37     1       first  Lorg/apache/commons/math3/genetics/AbstractListChromosome<TT;>;
            0   37     2      second  Lorg/apache/commons/math3/genetics/AbstractListChromosome<TT;>;
            1   37     3      length  I
            4   37     4  parent1Rep  Ljava/util/List<TT;>;
            5   37     5  parent2Rep  Ljava/util/List<TT;>;
            6   37     6      child1  Ljava/util/List<TT;>;
            7   37     7      child2  Ljava/util/List<TT;>;
            8   37     8   child1Set  Ljava/util/Set<TT;>;
            9   37     9   child2Set  Ljava/util/Set<TT;>;
           10   37    10      random  Lorg/apache/commons/math3/random/RandomGenerator;
           11   37    11           a  I
           12   37    12           b  I
           14   37    13          lb  I
           15   37    14          ub  I
           20   32    15           i  I
           22   30    16         idx  I
           23   30    17       item1  TT;
           24   30    18       item2  TT;
    Exceptions:
      throws org.apache.commons.math3.exception.DimensionMismatchException
    Signature: (Lorg/apache/commons/math3/genetics/AbstractListChromosome<TT;>;Lorg/apache/commons/math3/genetics/AbstractListChromosome<TT;>;)Lorg/apache/commons/math3/genetics/ChromosomePair;
    MethodParameters:
        Name  Flags
      first   final
      second  final
}
Signature: <T:Ljava/lang/Object;>Ljava/lang/Object;Lorg/apache/commons/math3/genetics/CrossoverPolicy;
SourceFile: "OrderedCrossover.java"