public class org.apache.commons.math3.optimization.linear.SimplexSolver extends org.apache.commons.math3.optimization.linear.AbstractLinearOptimizer
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.apache.commons.math3.optimization.linear.SimplexSolver
super_class: org.apache.commons.math3.optimization.linear.AbstractLinearOptimizer
{
private static final double DEFAULT_EPSILON;
descriptor: D
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1.0E-6
private static final int DEFAULT_ULPS;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 10
private final double epsilon;
descriptor: D
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int maxUlps;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
ldc 1.0E-6
bipush 10
invokespecial org.apache.commons.math3.optimization.linear.SimplexSolver.<init>:(DI)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/commons/math3/optimization/linear/SimplexSolver;
public void <init>(double, int);
descriptor: (DI)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 3 0: aload 0
invokespecial org.apache.commons.math3.optimization.linear.AbstractLinearOptimizer.<init>:()V
1: aload 0
dload 1
putfield org.apache.commons.math3.optimization.linear.SimplexSolver.epsilon:D
2: aload 0
iload 3
putfield org.apache.commons.math3.optimization.linear.SimplexSolver.maxUlps:I
3: return
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/apache/commons/math3/optimization/linear/SimplexSolver;
0 4 1 epsilon D
0 4 3 maxUlps I
MethodParameters:
Name Flags
epsilon final
maxUlps final
private java.lang.Integer getPivotColumn(org.apache.commons.math3.optimization.linear.SimplexTableau);
descriptor: (Lorg/apache/commons/math3/optimization/linear/SimplexTableau;)Ljava/lang/Integer;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=8, args_size=2
start local 0 start local 1 0: dconst_0
dstore 2
start local 2 1: aconst_null
astore 4
start local 4 2: aload 1
invokevirtual org.apache.commons.math3.optimization.linear.SimplexTableau.getNumObjectiveFunctions:()I
istore 5
start local 5 3: goto 9
4: StackMap locals: double java.lang.Integer int
StackMap stack:
aload 1
iconst_0
iload 5
invokevirtual org.apache.commons.math3.optimization.linear.SimplexTableau.getEntry:(II)D
dstore 6
start local 6 5: dload 6
dload 2
dcmpg
ifge 8
6: dload 6
dstore 2
7: iload 5
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
astore 4
end local 6 8: StackMap locals:
StackMap stack:
iinc 5 1
StackMap locals:
StackMap stack:
9: iload 5
aload 1
invokevirtual org.apache.commons.math3.optimization.linear.SimplexTableau.getWidth:()I
iconst_1
isub
if_icmplt 4
end local 5 10: aload 4
areturn
end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/apache/commons/math3/optimization/linear/SimplexSolver;
0 11 1 tableau Lorg/apache/commons/math3/optimization/linear/SimplexTableau;
1 11 2 minValue D
2 11 4 minPos Ljava/lang/Integer;
3 10 5 i I
5 8 6 entry D
MethodParameters:
Name Flags
tableau
private java.lang.Integer getPivotRow(org.apache.commons.math3.optimization.linear.SimplexTableau, int);
descriptor: (Lorg/apache/commons/math3/optimization/linear/SimplexTableau;I)Ljava/lang/Integer;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=14, args_size=3
start local 0 start local 1 start local 2 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 3
start local 3 1: ldc 1.7976931348623157E308
dstore 4
start local 4 2: aload 1
invokevirtual org.apache.commons.math3.optimization.linear.SimplexTableau.getNumObjectiveFunctions:()I
istore 6
start local 6 3: goto 17
4: StackMap locals: java.util.List double int
StackMap stack:
aload 1
iload 6
aload 1
invokevirtual org.apache.commons.math3.optimization.linear.SimplexTableau.getWidth:()I
iconst_1
isub
invokevirtual org.apache.commons.math3.optimization.linear.SimplexTableau.getEntry:(II)D
dstore 7
start local 7 5: aload 1
iload 6
iload 2
invokevirtual org.apache.commons.math3.optimization.linear.SimplexTableau.getEntry:(II)D
dstore 9
start local 9 6: dload 9
dconst_0
aload 0
getfield org.apache.commons.math3.optimization.linear.SimplexSolver.maxUlps:I
invokestatic org.apache.commons.math3.util.Precision.compareTo:(DDI)I
ifle 16
7: dload 7
dload 9
ddiv
dstore 11
start local 11 8: dload 11
dload 4
invokestatic java.lang.Double.compare:(DD)I
istore 13
start local 13 9: iload 13
ifne 12
10: aload 3
iload 6
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
11: goto 16
StackMap locals: org.apache.commons.math3.optimization.linear.SimplexSolver org.apache.commons.math3.optimization.linear.SimplexTableau int java.util.List double int double double double int
StackMap stack:
12: iload 13
ifge 16
13: dload 11
dstore 4
14: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 3
15: aload 3
iload 6
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 13 end local 11 end local 9 end local 7 16: StackMap locals: org.apache.commons.math3.optimization.linear.SimplexSolver org.apache.commons.math3.optimization.linear.SimplexTableau int java.util.List double int
StackMap stack:
iinc 6 1
StackMap locals:
StackMap stack:
17: iload 6
aload 1
invokevirtual org.apache.commons.math3.optimization.linear.SimplexTableau.getHeight:()I
if_icmplt 4
end local 6 18: aload 3
invokeinterface java.util.List.size:()I
ifne 20
19: aconst_null
areturn
20: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.List.size:()I
iconst_1
if_icmple 50
21: aload 1
invokevirtual org.apache.commons.math3.optimization.linear.SimplexTableau.getNumArtificialVariables:()I
ifle 33
22: aload 3
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 7
goto 32
StackMap locals: org.apache.commons.math3.optimization.linear.SimplexSolver org.apache.commons.math3.optimization.linear.SimplexTableau int java.util.List double top java.util.Iterator
StackMap stack:
23: aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.Integer
astore 6
start local 6 24: iconst_0
istore 8
start local 8 25: goto 31
26: StackMap locals: org.apache.commons.math3.optimization.linear.SimplexSolver org.apache.commons.math3.optimization.linear.SimplexTableau int java.util.List double java.lang.Integer java.util.Iterator int
StackMap stack:
iload 8
aload 1
invokevirtual org.apache.commons.math3.optimization.linear.SimplexTableau.getArtificialVariableOffset:()I
iadd
istore 9
start local 9 27: aload 1
aload 6
invokevirtual java.lang.Integer.intValue:()I
iload 9
invokevirtual org.apache.commons.math3.optimization.linear.SimplexTableau.getEntry:(II)D
dstore 10
start local 10 28: dload 10
dconst_1
aload 0
getfield org.apache.commons.math3.optimization.linear.SimplexSolver.maxUlps:I
invokestatic org.apache.commons.math3.util.Precision.equals:(DDI)Z
ifeq 30
aload 6
aload 1
iload 9
invokevirtual org.apache.commons.math3.optimization.linear.SimplexTableau.getBasicRow:(I)Ljava/lang/Integer;
invokevirtual java.lang.Integer.equals:(Ljava/lang/Object;)Z
ifeq 30
29: aload 6
areturn
end local 10 end local 9 30: StackMap locals:
StackMap stack:
iinc 8 1
StackMap locals:
StackMap stack:
31: iload 8
aload 1
invokevirtual org.apache.commons.math3.optimization.linear.SimplexTableau.getNumArtificialVariables:()I
if_icmplt 26
end local 8 end local 6 32: StackMap locals: org.apache.commons.math3.optimization.linear.SimplexSolver org.apache.commons.math3.optimization.linear.SimplexTableau int java.util.List double top java.util.Iterator
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 23
33: StackMap locals: org.apache.commons.math3.optimization.linear.SimplexSolver org.apache.commons.math3.optimization.linear.SimplexTableau int java.util.List double
StackMap stack:
aload 0
invokevirtual org.apache.commons.math3.optimization.linear.SimplexSolver.getIterations:()I
aload 0
invokevirtual org.apache.commons.math3.optimization.linear.SimplexSolver.getMaxIterations:()I
iconst_2
idiv
if_icmpge 50
34: aconst_null
astore 6
start local 6 35: aload 1
invokevirtual org.apache.commons.math3.optimization.linear.SimplexTableau.getWidth:()I
istore 7
start local 7 36: aload 1
invokevirtual org.apache.commons.math3.optimization.linear.SimplexTableau.getNumObjectiveFunctions:()I
istore 8
start local 8 37: aload 1
invokevirtual org.apache.commons.math3.optimization.linear.SimplexTableau.getWidth:()I
iconst_1
isub
istore 9
start local 9 38: aload 3
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 11
goto 48
StackMap locals: org.apache.commons.math3.optimization.linear.SimplexSolver org.apache.commons.math3.optimization.linear.SimplexTableau int java.util.List double java.lang.Integer int int int top java.util.Iterator
StackMap stack:
39: aload 11
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.Integer
astore 10
start local 10 40: iload 8
istore 12
start local 12 41: goto 47
42: StackMap locals: org.apache.commons.math3.optimization.linear.SimplexSolver org.apache.commons.math3.optimization.linear.SimplexTableau int java.util.List double java.lang.Integer int int int java.lang.Integer java.util.Iterator int
StackMap stack:
aload 1
iload 12
invokevirtual org.apache.commons.math3.optimization.linear.SimplexTableau.getBasicRow:(I)Ljava/lang/Integer;
astore 13
start local 13 43: aload 13
ifnull 46
aload 13
aload 10
invokevirtual java.lang.Integer.equals:(Ljava/lang/Object;)Z
ifeq 46
iload 12
iload 7
if_icmpge 46
44: iload 12
istore 7
45: aload 10
astore 6
end local 13 46: StackMap locals:
StackMap stack:
iinc 12 1
StackMap locals:
StackMap stack:
47: iload 12
iload 9
if_icmpge 48
aload 10
aload 6
invokevirtual java.lang.Integer.equals:(Ljava/lang/Object;)Z
ifeq 42
end local 12 end local 10 48: StackMap locals: org.apache.commons.math3.optimization.linear.SimplexSolver org.apache.commons.math3.optimization.linear.SimplexTableau int java.util.List double java.lang.Integer int int int top java.util.Iterator
StackMap stack:
aload 11
invokeinterface java.util.Iterator.hasNext:()Z
ifne 39
49: aload 6
areturn
end local 9 end local 8 end local 7 end local 6 50: StackMap locals: org.apache.commons.math3.optimization.linear.SimplexSolver org.apache.commons.math3.optimization.linear.SimplexTableau int java.util.List double
StackMap stack:
aload 3
iconst_0
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast java.lang.Integer
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 51 0 this Lorg/apache/commons/math3/optimization/linear/SimplexSolver;
0 51 1 tableau Lorg/apache/commons/math3/optimization/linear/SimplexTableau;
0 51 2 col I
1 51 3 minRatioPositions Ljava/util/List<Ljava/lang/Integer;>;
2 51 4 minRatio D
3 18 6 i I
5 16 7 rhs D
6 16 9 entry D
8 16 11 ratio D
9 16 13 cmp I
24 32 6 row Ljava/lang/Integer;
25 32 8 i I
27 30 9 column I
28 30 10 entry D
35 50 6 minRow Ljava/lang/Integer;
36 50 7 minIndex I
37 50 8 varStart I
38 50 9 varEnd I
40 48 10 row Ljava/lang/Integer;
41 48 12 i I
43 46 13 basicRow Ljava/lang/Integer;
MethodParameters:
Name Flags
tableau
col final
protected void doIteration(org.apache.commons.math3.optimization.linear.SimplexTableau);
descriptor: (Lorg/apache/commons/math3/optimization/linear/SimplexTableau;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=9, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.apache.commons.math3.optimization.linear.SimplexSolver.incrementIterationsCounter:()V
1: aload 0
aload 1
invokevirtual org.apache.commons.math3.optimization.linear.SimplexSolver.getPivotColumn:(Lorg/apache/commons/math3/optimization/linear/SimplexTableau;)Ljava/lang/Integer;
astore 2
start local 2 2: aload 0
aload 1
aload 2
invokevirtual java.lang.Integer.intValue:()I
invokevirtual org.apache.commons.math3.optimization.linear.SimplexSolver.getPivotRow:(Lorg/apache/commons/math3/optimization/linear/SimplexTableau;I)Ljava/lang/Integer;
astore 3
start local 3 3: aload 3
ifnonnull 5
4: new org.apache.commons.math3.optimization.linear.UnboundedSolutionException
dup
invokespecial org.apache.commons.math3.optimization.linear.UnboundedSolutionException.<init>:()V
athrow
5: StackMap locals: java.lang.Integer java.lang.Integer
StackMap stack:
aload 1
aload 3
invokevirtual java.lang.Integer.intValue:()I
aload 2
invokevirtual java.lang.Integer.intValue:()I
invokevirtual org.apache.commons.math3.optimization.linear.SimplexTableau.getEntry:(II)D
dstore 4
start local 4 6: aload 1
aload 3
invokevirtual java.lang.Integer.intValue:()I
dload 4
invokevirtual org.apache.commons.math3.optimization.linear.SimplexTableau.divideRow:(ID)V
7: iconst_0
istore 6
start local 6 8: goto 13
9: StackMap locals: double int
StackMap stack:
iload 6
aload 3
invokevirtual java.lang.Integer.intValue:()I
if_icmpeq 12
10: aload 1
iload 6
aload 2
invokevirtual java.lang.Integer.intValue:()I
invokevirtual org.apache.commons.math3.optimization.linear.SimplexTableau.getEntry:(II)D
dstore 7
start local 7 11: aload 1
iload 6
aload 3
invokevirtual java.lang.Integer.intValue:()I
dload 7
invokevirtual org.apache.commons.math3.optimization.linear.SimplexTableau.subtractRow:(IID)V
end local 7 12: StackMap locals:
StackMap stack:
iinc 6 1
StackMap locals:
StackMap stack:
13: iload 6
aload 1
invokevirtual org.apache.commons.math3.optimization.linear.SimplexTableau.getHeight:()I
if_icmplt 9
end local 6 14: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lorg/apache/commons/math3/optimization/linear/SimplexSolver;
0 15 1 tableau Lorg/apache/commons/math3/optimization/linear/SimplexTableau;
2 15 2 pivotCol Ljava/lang/Integer;
3 15 3 pivotRow Ljava/lang/Integer;
6 15 4 pivotVal D
8 14 6 i I
11 12 7 multiplier D
Exceptions:
throws org.apache.commons.math3.exception.MaxCountExceededException, org.apache.commons.math3.optimization.linear.UnboundedSolutionException
MethodParameters:
Name Flags
tableau final
protected void solvePhase1(org.apache.commons.math3.optimization.linear.SimplexTableau);
descriptor: (Lorg/apache/commons/math3/optimization/linear/SimplexTableau;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=6, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual org.apache.commons.math3.optimization.linear.SimplexTableau.getNumArtificialVariables:()I
ifne 3
1: return
2: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual org.apache.commons.math3.optimization.linear.SimplexSolver.doIteration:(Lorg/apache/commons/math3/optimization/linear/SimplexTableau;)V
3: StackMap locals:
StackMap stack:
aload 1
invokevirtual org.apache.commons.math3.optimization.linear.SimplexTableau.isOptimal:()Z
ifeq 2
4: aload 1
iconst_0
aload 1
invokevirtual org.apache.commons.math3.optimization.linear.SimplexTableau.getRhsOffset:()I
invokevirtual org.apache.commons.math3.optimization.linear.SimplexTableau.getEntry:(II)D
dconst_0
aload 0
getfield org.apache.commons.math3.optimization.linear.SimplexSolver.epsilon:D
invokestatic org.apache.commons.math3.util.Precision.equals:(DDD)Z
ifne 6
5: new org.apache.commons.math3.optimization.linear.NoFeasibleSolutionException
dup
invokespecial org.apache.commons.math3.optimization.linear.NoFeasibleSolutionException.<init>:()V
athrow
6: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/apache/commons/math3/optimization/linear/SimplexSolver;
0 7 1 tableau Lorg/apache/commons/math3/optimization/linear/SimplexTableau;
Exceptions:
throws org.apache.commons.math3.exception.MaxCountExceededException, org.apache.commons.math3.optimization.linear.UnboundedSolutionException, org.apache.commons.math3.optimization.linear.NoFeasibleSolutionException
MethodParameters:
Name Flags
tableau final
public org.apache.commons.math3.optimization.PointValuePair doOptimize();
descriptor: ()Lorg/apache/commons/math3/optimization/PointValuePair;
flags: (0x0001) ACC_PUBLIC
Code:
stack=9, locals=2, args_size=1
start local 0 0: new org.apache.commons.math3.optimization.linear.SimplexTableau
dup
aload 0
invokevirtual org.apache.commons.math3.optimization.linear.SimplexSolver.getFunction:()Lorg/apache/commons/math3/optimization/linear/LinearObjectiveFunction;
1: aload 0
invokevirtual org.apache.commons.math3.optimization.linear.SimplexSolver.getConstraints:()Ljava/util/Collection;
2: aload 0
invokevirtual org.apache.commons.math3.optimization.linear.SimplexSolver.getGoalType:()Lorg/apache/commons/math3/optimization/GoalType;
3: aload 0
invokevirtual org.apache.commons.math3.optimization.linear.SimplexSolver.restrictToNonNegative:()Z
4: aload 0
getfield org.apache.commons.math3.optimization.linear.SimplexSolver.epsilon:D
5: aload 0
getfield org.apache.commons.math3.optimization.linear.SimplexSolver.maxUlps:I
6: invokespecial org.apache.commons.math3.optimization.linear.SimplexTableau.<init>:(Lorg/apache/commons/math3/optimization/linear/LinearObjectiveFunction;Ljava/util/Collection;Lorg/apache/commons/math3/optimization/GoalType;ZDI)V
7: astore 1
start local 1 8: aload 0
aload 1
invokevirtual org.apache.commons.math3.optimization.linear.SimplexSolver.solvePhase1:(Lorg/apache/commons/math3/optimization/linear/SimplexTableau;)V
9: aload 1
invokevirtual org.apache.commons.math3.optimization.linear.SimplexTableau.dropPhase1Objective:()V
10: goto 12
11: StackMap locals: org.apache.commons.math3.optimization.linear.SimplexTableau
StackMap stack:
aload 0
aload 1
invokevirtual org.apache.commons.math3.optimization.linear.SimplexSolver.doIteration:(Lorg/apache/commons/math3/optimization/linear/SimplexTableau;)V
12: StackMap locals:
StackMap stack:
aload 1
invokevirtual org.apache.commons.math3.optimization.linear.SimplexTableau.isOptimal:()Z
ifeq 11
13: aload 1
invokevirtual org.apache.commons.math3.optimization.linear.SimplexTableau.getSolution:()Lorg/apache/commons/math3/optimization/PointValuePair;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lorg/apache/commons/math3/optimization/linear/SimplexSolver;
8 14 1 tableau Lorg/apache/commons/math3/optimization/linear/SimplexTableau;
Exceptions:
throws org.apache.commons.math3.exception.MaxCountExceededException, org.apache.commons.math3.optimization.linear.UnboundedSolutionException, org.apache.commons.math3.optimization.linear.NoFeasibleSolutionException
}
SourceFile: "SimplexSolver.java"
RuntimeVisibleAnnotations:
java.lang.Deprecated()