public class org.apache.commons.math3.genetics.NPointCrossover<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.NPointCrossover
  super_class: java.lang.Object
{
  private final int crossoverPoints;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public void <init>(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.apache.commons.math3.genetics.NPointCrossover this
        start local 1 // int crossoverPoints
         0: .line 66
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 67
            iload 1 /* crossoverPoints */
            ifgt 3
         2: .line 68
            new org.apache.commons.math3.exception.NotStrictlyPositiveException
            dup
            iload 1 /* crossoverPoints */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokespecial org.apache.commons.math3.exception.NotStrictlyPositiveException.<init>:(Ljava/lang/Number;)V
            athrow
         3: .line 70
      StackMap locals: org.apache.commons.math3.genetics.NPointCrossover int
      StackMap stack:
            aload 0 /* this */
            iload 1 /* crossoverPoints */
            putfield org.apache.commons.math3.genetics.NPointCrossover.crossoverPoints:I
         4: .line 71
            return
        end local 1 // int crossoverPoints
        end local 0 // org.apache.commons.math3.genetics.NPointCrossover this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    5     0             this  Lorg/apache/commons/math3/genetics/NPointCrossover<TT;>;
            0    5     1  crossoverPoints  I
    Exceptions:
      throws org.apache.commons.math3.exception.NotStrictlyPositiveException
    MethodParameters:
                 Name  Flags
      crossoverPoints  final

  public int getCrossoverPoints();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.commons.math3.genetics.NPointCrossover this
         0: .line 79
            aload 0 /* this */
            getfield org.apache.commons.math3.genetics.NPointCrossover.crossoverPoints:I
            ireturn
        end local 0 // org.apache.commons.math3.genetics.NPointCrossover this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/commons/math3/genetics/NPointCrossover<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.NPointCrossover this
        start local 1 // org.apache.commons.math3.genetics.Chromosome first
        start local 2 // org.apache.commons.math3.genetics.Chromosome second
         0: .line 110
            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 111
      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 113
      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.NPointCrossover.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.NPointCrossover this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lorg/apache/commons/math3/genetics/NPointCrossover<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

  private 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: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=16, args_size=3
        start local 0 // org.apache.commons.math3.genetics.NPointCrossover this
        start local 1 // org.apache.commons.math3.genetics.AbstractListChromosome first
        start local 2 // org.apache.commons.math3.genetics.AbstractListChromosome second
         0: .line 129
            aload 1 /* first */
            invokevirtual org.apache.commons.math3.genetics.AbstractListChromosome.getLength:()I
            istore 3 /* length */
        start local 3 // int length
         1: .line 130
            iload 3 /* length */
            aload 2 /* second */
            invokevirtual org.apache.commons.math3.genetics.AbstractListChromosome.getLength:()I
            if_icmpeq 3
         2: .line 131
            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 133
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.commons.math3.genetics.NPointCrossover.crossoverPoints:I
            iload 3 /* length */
            if_icmplt 5
         4: .line 134
            new org.apache.commons.math3.exception.NumberIsTooLargeException
            dup
            aload 0 /* this */
            getfield org.apache.commons.math3.genetics.NPointCrossover.crossoverPoints:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            iload 3 /* length */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            iconst_0
            invokespecial org.apache.commons.math3.exception.NumberIsTooLargeException.<init>:(Ljava/lang/Number;Ljava/lang/Number;Z)V
            athrow
         5: .line 138
      StackMap locals:
      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
         6: .line 139
            aload 2 /* second */
            invokevirtual org.apache.commons.math3.genetics.AbstractListChromosome.getRepresentation:()Ljava/util/List;
            astore 5 /* parent2Rep */
        start local 5 // java.util.List parent2Rep
         7: .line 141
            new java.util.ArrayList
            dup
            iload 3 /* length */
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 6 /* child1Rep */
        start local 6 // java.util.List child1Rep
         8: .line 142
            new java.util.ArrayList
            dup
            iload 3 /* length */
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 7 /* child2Rep */
        start local 7 // java.util.List child2Rep
         9: .line 144
            invokestatic org.apache.commons.math3.genetics.GeneticAlgorithm.getRandomGenerator:()Lorg/apache/commons/math3/random/RandomGenerator;
            astore 8 /* random */
        start local 8 // org.apache.commons.math3.random.RandomGenerator random
        10: .line 146
            aload 6 /* child1Rep */
            astore 9 /* c1 */
        start local 9 // java.util.List c1
        11: .line 147
            aload 7 /* child2Rep */
            astore 10 /* c2 */
        start local 10 // java.util.List c2
        12: .line 149
            aload 0 /* this */
            getfield org.apache.commons.math3.genetics.NPointCrossover.crossoverPoints:I
            istore 11 /* remainingPoints */
        start local 11 // int remainingPoints
        13: .line 150
            iconst_0
            istore 12 /* lastIndex */
        start local 12 // int lastIndex
        14: .line 151
            iconst_0
            istore 13 /* i */
        start local 13 // int i
        15: goto 28
        16: .line 153
      StackMap locals: org.apache.commons.math3.genetics.NPointCrossover 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 org.apache.commons.math3.random.RandomGenerator java.util.List java.util.List int int int
      StackMap stack:
            iconst_1
            iload 12 /* lastIndex */
            iadd
            aload 8 /* random */
            iload 3 /* length */
            iload 12 /* lastIndex */
            isub
            iload 11 /* remainingPoints */
            isub
            invokeinterface org.apache.commons.math3.random.RandomGenerator.nextInt:(I)I
            iadd
            istore 14 /* crossoverIndex */
        start local 14 // int crossoverIndex
        17: .line 156
            iload 12 /* lastIndex */
            istore 15 /* j */
        start local 15 // int j
        18: goto 22
        19: .line 157
      StackMap locals: int int
      StackMap stack:
            aload 9 /* c1 */
            aload 4 /* parent1Rep */
            iload 15 /* j */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        20: .line 158
            aload 10 /* c2 */
            aload 5 /* parent2Rep */
            iload 15 /* j */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        21: .line 156
            iinc 15 /* j */ 1
      StackMap locals:
      StackMap stack:
        22: iload 15 /* j */
            iload 14 /* crossoverIndex */
            if_icmplt 19
        end local 15 // int j
        23: .line 162
            aload 9 /* c1 */
            astore 15 /* tmp */
        start local 15 // java.util.List tmp
        24: .line 163
            aload 10 /* c2 */
            astore 9 /* c1 */
        25: .line 164
            aload 15 /* tmp */
            astore 10 /* c2 */
        26: .line 166
            iload 14 /* crossoverIndex */
            istore 12 /* lastIndex */
        end local 15 // java.util.List tmp
        end local 14 // int crossoverIndex
        27: .line 151
            iinc 13 /* i */ 1
            iinc 11 /* remainingPoints */ -1
      StackMap locals:
      StackMap stack:
        28: iload 13 /* i */
            aload 0 /* this */
            getfield org.apache.commons.math3.genetics.NPointCrossover.crossoverPoints:I
            if_icmplt 16
        end local 13 // int i
        29: .line 170
            iload 12 /* lastIndex */
            istore 13 /* j */
        start local 13 // int j
        30: goto 34
        31: .line 171
      StackMap locals:
      StackMap stack:
            aload 9 /* c1 */
            aload 4 /* parent1Rep */
            iload 13 /* j */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        32: .line 172
            aload 10 /* c2 */
            aload 5 /* parent2Rep */
            iload 13 /* j */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        33: .line 170
            iinc 13 /* j */ 1
      StackMap locals:
      StackMap stack:
        34: iload 13 /* j */
            iload 3 /* length */
            if_icmplt 31
        end local 13 // int j
        35: .line 175
            new org.apache.commons.math3.genetics.ChromosomePair
            dup
            aload 1 /* first */
            aload 6 /* child1Rep */
            invokevirtual org.apache.commons.math3.genetics.AbstractListChromosome.newFixedLengthChromosome:(Ljava/util/List;)Lorg/apache/commons/math3/genetics/AbstractListChromosome;
        36: .line 176
            aload 2 /* second */
            aload 7 /* child2Rep */
            invokevirtual org.apache.commons.math3.genetics.AbstractListChromosome.newFixedLengthChromosome:(Ljava/util/List;)Lorg/apache/commons/math3/genetics/AbstractListChromosome;
        37: .line 175
            invokespecial org.apache.commons.math3.genetics.ChromosomePair.<init>:(Lorg/apache/commons/math3/genetics/Chromosome;Lorg/apache/commons/math3/genetics/Chromosome;)V
            areturn
        end local 12 // int lastIndex
        end local 11 // int remainingPoints
        end local 10 // java.util.List c2
        end local 9 // java.util.List c1
        end local 8 // org.apache.commons.math3.random.RandomGenerator random
        end local 7 // java.util.List child2Rep
        end local 6 // java.util.List child1Rep
        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.NPointCrossover this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   38     0             this  Lorg/apache/commons/math3/genetics/NPointCrossover<TT;>;
            0   38     1            first  Lorg/apache/commons/math3/genetics/AbstractListChromosome<TT;>;
            0   38     2           second  Lorg/apache/commons/math3/genetics/AbstractListChromosome<TT;>;
            1   38     3           length  I
            6   38     4       parent1Rep  Ljava/util/List<TT;>;
            7   38     5       parent2Rep  Ljava/util/List<TT;>;
            8   38     6        child1Rep  Ljava/util/List<TT;>;
            9   38     7        child2Rep  Ljava/util/List<TT;>;
           10   38     8           random  Lorg/apache/commons/math3/random/RandomGenerator;
           11   38     9               c1  Ljava/util/List<TT;>;
           12   38    10               c2  Ljava/util/List<TT;>;
           13   38    11  remainingPoints  I
           14   38    12        lastIndex  I
           15   29    13                i  I
           17   27    14   crossoverIndex  I
           18   23    15                j  I
           24   27    15              tmp  Ljava/util/List<TT;>;
           30   35    13                j  I
    Exceptions:
      throws org.apache.commons.math3.exception.DimensionMismatchException, org.apache.commons.math3.exception.NumberIsTooLargeException
    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: "NPointCrossover.java"