public class org.apache.commons.math3.distribution.MultivariateNormalDistribution extends org.apache.commons.math3.distribution.AbstractMultivariateRealDistribution
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.apache.commons.math3.distribution.MultivariateNormalDistribution
super_class: org.apache.commons.math3.distribution.AbstractMultivariateRealDistribution
{
private final double[] means;
descriptor: [D
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.apache.commons.math3.linear.RealMatrix covarianceMatrix;
descriptor: Lorg/apache/commons/math3/linear/RealMatrix;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.apache.commons.math3.linear.RealMatrix covarianceMatrixInverse;
descriptor: Lorg/apache/commons/math3/linear/RealMatrix;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final double covarianceMatrixDeterminant;
descriptor: D
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.apache.commons.math3.linear.RealMatrix samplingMatrix;
descriptor: Lorg/apache/commons/math3/linear/RealMatrix;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
public void <init>(double[], double[][]);
descriptor: ([D[[D)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
new org.apache.commons.math3.random.Well19937c
dup
invokespecial org.apache.commons.math3.random.Well19937c.<init>:()V
aload 1
aload 2
invokespecial org.apache.commons.math3.distribution.MultivariateNormalDistribution.<init>:(Lorg/apache/commons/math3/random/RandomGenerator;[D[[D)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/commons/math3/distribution/MultivariateNormalDistribution;
0 2 1 means [D
0 2 2 covariances [[D
Exceptions:
throws org.apache.commons.math3.linear.SingularMatrixException, org.apache.commons.math3.exception.DimensionMismatchException, org.apache.commons.math3.linear.NonPositiveDefiniteMatrixException
MethodParameters:
Name Flags
means final
covariances final
public void <init>(org.apache.commons.math3.random.RandomGenerator, double[], double[][]);
descriptor: (Lorg/apache/commons/math3/random/RandomGenerator;[D[[D)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=13, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
aload 2
arraylength
invokespecial org.apache.commons.math3.distribution.AbstractMultivariateRealDistribution.<init>:(Lorg/apache/commons/math3/random/RandomGenerator;I)V
1: aload 2
arraylength
istore 4
start local 4 2: aload 3
arraylength
iload 4
if_icmpeq 4
3: new org.apache.commons.math3.exception.DimensionMismatchException
dup
aload 3
arraylength
iload 4
invokespecial org.apache.commons.math3.exception.DimensionMismatchException.<init>:(II)V
athrow
4: StackMap locals: org.apache.commons.math3.distribution.MultivariateNormalDistribution org.apache.commons.math3.random.RandomGenerator double[] double[][] int
StackMap stack:
iconst_0
istore 5
start local 5 5: goto 9
6: StackMap locals: int
StackMap stack:
iload 4
aload 3
iload 5
aaload
arraylength
if_icmpeq 8
7: new org.apache.commons.math3.exception.DimensionMismatchException
dup
aload 3
iload 5
aaload
arraylength
iload 4
invokespecial org.apache.commons.math3.exception.DimensionMismatchException.<init>:(II)V
athrow
8: StackMap locals:
StackMap stack:
iinc 5 1
StackMap locals:
StackMap stack:
9: iload 5
iload 4
if_icmplt 6
end local 5 10: aload 0
aload 2
invokestatic org.apache.commons.math3.util.MathArrays.copyOf:([D)[D
putfield org.apache.commons.math3.distribution.MultivariateNormalDistribution.means:[D
11: aload 0
new org.apache.commons.math3.linear.Array2DRowRealMatrix
dup
aload 3
invokespecial org.apache.commons.math3.linear.Array2DRowRealMatrix.<init>:([[D)V
putfield org.apache.commons.math3.distribution.MultivariateNormalDistribution.covarianceMatrix:Lorg/apache/commons/math3/linear/RealMatrix;
12: new org.apache.commons.math3.linear.EigenDecomposition
dup
aload 0
getfield org.apache.commons.math3.distribution.MultivariateNormalDistribution.covarianceMatrix:Lorg/apache/commons/math3/linear/RealMatrix;
invokespecial org.apache.commons.math3.linear.EigenDecomposition.<init>:(Lorg/apache/commons/math3/linear/RealMatrix;)V
astore 5
start local 5 13: aload 0
aload 5
invokevirtual org.apache.commons.math3.linear.EigenDecomposition.getSolver:()Lorg/apache/commons/math3/linear/DecompositionSolver;
invokeinterface org.apache.commons.math3.linear.DecompositionSolver.getInverse:()Lorg/apache/commons/math3/linear/RealMatrix;
putfield org.apache.commons.math3.distribution.MultivariateNormalDistribution.covarianceMatrixInverse:Lorg/apache/commons/math3/linear/RealMatrix;
14: aload 0
aload 5
invokevirtual org.apache.commons.math3.linear.EigenDecomposition.getDeterminant:()D
putfield org.apache.commons.math3.distribution.MultivariateNormalDistribution.covarianceMatrixDeterminant:D
15: aload 5
invokevirtual org.apache.commons.math3.linear.EigenDecomposition.getRealEigenvalues:()[D
astore 6
start local 6 16: iconst_0
istore 7
start local 7 17: goto 21
18: StackMap locals: org.apache.commons.math3.distribution.MultivariateNormalDistribution org.apache.commons.math3.random.RandomGenerator double[] double[][] int org.apache.commons.math3.linear.EigenDecomposition double[] int
StackMap stack:
aload 6
iload 7
daload
dconst_0
dcmpg
ifge 20
19: new org.apache.commons.math3.linear.NonPositiveDefiniteMatrixException
dup
aload 6
iload 7
daload
iload 7
dconst_0
invokespecial org.apache.commons.math3.linear.NonPositiveDefiniteMatrixException.<init>:(DID)V
athrow
20: StackMap locals:
StackMap stack:
iinc 7 1
StackMap locals:
StackMap stack:
21: iload 7
aload 6
arraylength
if_icmplt 18
end local 7 22: new org.apache.commons.math3.linear.Array2DRowRealMatrix
dup
iload 4
iload 4
invokespecial org.apache.commons.math3.linear.Array2DRowRealMatrix.<init>:(II)V
astore 7
start local 7 23: iconst_0
istore 8
start local 8 24: goto 28
25: StackMap locals: org.apache.commons.math3.distribution.MultivariateNormalDistribution org.apache.commons.math3.random.RandomGenerator double[] double[][] int org.apache.commons.math3.linear.EigenDecomposition double[] org.apache.commons.math3.linear.Array2DRowRealMatrix int
StackMap stack:
aload 5
iload 8
invokevirtual org.apache.commons.math3.linear.EigenDecomposition.getEigenvector:(I)Lorg/apache/commons/math3/linear/RealVector;
invokevirtual org.apache.commons.math3.linear.RealVector.toArray:()[D
astore 9
start local 9 26: aload 7
iload 8
aload 9
invokevirtual org.apache.commons.math3.linear.Array2DRowRealMatrix.setColumn:(I[D)V
end local 9 27: iinc 8 1
StackMap locals:
StackMap stack:
28: iload 8
iload 4
if_icmplt 25
end local 8 29: aload 7
invokevirtual org.apache.commons.math3.linear.Array2DRowRealMatrix.transpose:()Lorg/apache/commons/math3/linear/RealMatrix;
astore 8
start local 8 30: iconst_0
istore 9
start local 9 31: goto 39
32: StackMap locals: org.apache.commons.math3.distribution.MultivariateNormalDistribution org.apache.commons.math3.random.RandomGenerator double[] double[][] int org.apache.commons.math3.linear.EigenDecomposition double[] org.apache.commons.math3.linear.Array2DRowRealMatrix org.apache.commons.math3.linear.RealMatrix int
StackMap stack:
aload 6
iload 9
daload
invokestatic org.apache.commons.math3.util.FastMath.sqrt:(D)D
dstore 10
start local 10 33: iconst_0
istore 12
start local 12 34: goto 37
35: StackMap locals: double int
StackMap stack:
aload 8
iload 9
iload 12
dload 10
invokeinterface org.apache.commons.math3.linear.RealMatrix.multiplyEntry:(IID)V
36: iinc 12 1
StackMap locals:
StackMap stack:
37: iload 12
iload 4
if_icmplt 35
end local 12 end local 10 38: iinc 9 1
StackMap locals:
StackMap stack:
39: iload 9
iload 4
if_icmplt 32
end local 9 40: aload 0
aload 7
aload 8
invokevirtual org.apache.commons.math3.linear.Array2DRowRealMatrix.multiply:(Lorg/apache/commons/math3/linear/RealMatrix;)Lorg/apache/commons/math3/linear/RealMatrix;
putfield org.apache.commons.math3.distribution.MultivariateNormalDistribution.samplingMatrix:Lorg/apache/commons/math3/linear/RealMatrix;
41: return
end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 42 0 this Lorg/apache/commons/math3/distribution/MultivariateNormalDistribution;
0 42 1 rng Lorg/apache/commons/math3/random/RandomGenerator;
0 42 2 means [D
0 42 3 covariances [[D
2 42 4 dim I
5 10 5 i I
13 42 5 covMatDec Lorg/apache/commons/math3/linear/EigenDecomposition;
16 42 6 covMatEigenvalues [D
17 22 7 i I
23 42 7 covMatEigenvectors Lorg/apache/commons/math3/linear/Array2DRowRealMatrix;
24 29 8 v I
26 27 9 evec [D
30 42 8 tmpMatrix Lorg/apache/commons/math3/linear/RealMatrix;
31 40 9 row I
33 38 10 factor D
34 38 12 col I
Exceptions:
throws org.apache.commons.math3.linear.SingularMatrixException, org.apache.commons.math3.exception.DimensionMismatchException, org.apache.commons.math3.linear.NonPositiveDefiniteMatrixException
MethodParameters:
Name Flags
rng
means final
covariances final
public double[] getMeans();
descriptor: ()[D
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.commons.math3.distribution.MultivariateNormalDistribution.means:[D
invokestatic org.apache.commons.math3.util.MathArrays.copyOf:([D)[D
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/commons/math3/distribution/MultivariateNormalDistribution;
public org.apache.commons.math3.linear.RealMatrix getCovariances();
descriptor: ()Lorg/apache/commons/math3/linear/RealMatrix;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.commons.math3.distribution.MultivariateNormalDistribution.covarianceMatrix:Lorg/apache/commons/math3/linear/RealMatrix;
invokeinterface org.apache.commons.math3.linear.RealMatrix.copy:()Lorg/apache/commons/math3/linear/RealMatrix;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/commons/math3/distribution/MultivariateNormalDistribution;
public double density(double[]);
descriptor: ([D)D
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=3, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.apache.commons.math3.distribution.MultivariateNormalDistribution.getDimension:()I
istore 2
start local 2 1: aload 1
arraylength
iload 2
if_icmpeq 3
2: new org.apache.commons.math3.exception.DimensionMismatchException
dup
aload 1
arraylength
iload 2
invokespecial org.apache.commons.math3.exception.DimensionMismatchException.<init>:(II)V
athrow
3: StackMap locals: int
StackMap stack:
ldc 6.283185307179586
ldc -0.5
iload 2
i2d
dmul
invokestatic org.apache.commons.math3.util.FastMath.pow:(DD)D
4: aload 0
getfield org.apache.commons.math3.distribution.MultivariateNormalDistribution.covarianceMatrixDeterminant:D
ldc -0.5
invokestatic org.apache.commons.math3.util.FastMath.pow:(DD)D
5: dmul
6: aload 0
aload 1
invokevirtual org.apache.commons.math3.distribution.MultivariateNormalDistribution.getExponentTerm:([D)D
7: dmul
dreturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/apache/commons/math3/distribution/MultivariateNormalDistribution;
0 8 1 vals [D
1 8 2 dim I
Exceptions:
throws org.apache.commons.math3.exception.DimensionMismatchException
MethodParameters:
Name Flags
vals final
public double[] getStandardDeviations();
descriptor: ()[D
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=1
start local 0 0: aload 0
invokevirtual org.apache.commons.math3.distribution.MultivariateNormalDistribution.getDimension:()I
istore 1
start local 1 1: iload 1
newarray 7
astore 2
start local 2 2: aload 0
getfield org.apache.commons.math3.distribution.MultivariateNormalDistribution.covarianceMatrix:Lorg/apache/commons/math3/linear/RealMatrix;
invokeinterface org.apache.commons.math3.linear.RealMatrix.getData:()[[D
astore 3
start local 3 3: iconst_0
istore 4
start local 4 4: goto 7
5: StackMap locals: org.apache.commons.math3.distribution.MultivariateNormalDistribution int double[] double[][] int
StackMap stack:
aload 2
iload 4
aload 3
iload 4
aaload
iload 4
daload
invokestatic org.apache.commons.math3.util.FastMath.sqrt:(D)D
dastore
6: iinc 4 1
StackMap locals:
StackMap stack:
7: iload 4
iload 1
if_icmplt 5
end local 4 8: aload 2
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/apache/commons/math3/distribution/MultivariateNormalDistribution;
1 9 1 dim I
2 9 2 std [D
3 9 3 s [[D
4 8 4 i I
public double[] sample();
descriptor: ()[D
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=5, args_size=1
start local 0 0: aload 0
invokevirtual org.apache.commons.math3.distribution.MultivariateNormalDistribution.getDimension:()I
istore 1
start local 1 1: iload 1
newarray 7
astore 2
start local 2 2: iconst_0
istore 3
start local 3 3: goto 6
4: StackMap locals: int double[] int
StackMap stack:
aload 2
iload 3
aload 0
getfield org.apache.commons.math3.distribution.MultivariateNormalDistribution.random:Lorg/apache/commons/math3/random/RandomGenerator;
invokeinterface org.apache.commons.math3.random.RandomGenerator.nextGaussian:()D
dastore
5: iinc 3 1
StackMap locals:
StackMap stack:
6: iload 3
iload 1
if_icmplt 4
end local 3 7: aload 0
getfield org.apache.commons.math3.distribution.MultivariateNormalDistribution.samplingMatrix:Lorg/apache/commons/math3/linear/RealMatrix;
aload 2
invokeinterface org.apache.commons.math3.linear.RealMatrix.operate:([D)[D
astore 3
start local 3 8: iconst_0
istore 4
start local 4 9: goto 12
10: StackMap locals: org.apache.commons.math3.distribution.MultivariateNormalDistribution int double[] double[] int
StackMap stack:
aload 3
iload 4
dup2
daload
aload 0
getfield org.apache.commons.math3.distribution.MultivariateNormalDistribution.means:[D
iload 4
daload
dadd
dastore
11: iinc 4 1
StackMap locals:
StackMap stack:
12: iload 4
iload 1
if_icmplt 10
end local 4 13: aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lorg/apache/commons/math3/distribution/MultivariateNormalDistribution;
1 14 1 dim I
2 14 2 normalVals [D
3 7 3 i I
8 14 3 vals [D
9 13 4 i I
private double getExponentTerm(double[]);
descriptor: ([D)D
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=7, args_size=2
start local 0 start local 1 0: aload 1
arraylength
newarray 7
astore 2
start local 2 1: iconst_0
istore 3
start local 3 2: goto 5
3: StackMap locals: double[] int
StackMap stack:
aload 2
iload 3
aload 1
iload 3
daload
aload 0
invokevirtual org.apache.commons.math3.distribution.MultivariateNormalDistribution.getMeans:()[D
iload 3
daload
dsub
dastore
4: iinc 3 1
StackMap locals:
StackMap stack:
5: iload 3
aload 2
arraylength
if_icmplt 3
end local 3 6: aload 0
getfield org.apache.commons.math3.distribution.MultivariateNormalDistribution.covarianceMatrixInverse:Lorg/apache/commons/math3/linear/RealMatrix;
aload 2
invokeinterface org.apache.commons.math3.linear.RealMatrix.preMultiply:([D)[D
astore 3
start local 3 7: dconst_0
dstore 4
start local 4 8: iconst_0
istore 6
start local 6 9: goto 12
10: StackMap locals: org.apache.commons.math3.distribution.MultivariateNormalDistribution double[] double[] double[] double int
StackMap stack:
dload 4
aload 3
iload 6
daload
aload 2
iload 6
daload
dmul
dadd
dstore 4
11: iinc 6 1
StackMap locals:
StackMap stack:
12: iload 6
aload 3
arraylength
if_icmplt 10
end local 6 13: ldc -0.5
dload 4
dmul
invokestatic org.apache.commons.math3.util.FastMath.exp:(D)D
dreturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lorg/apache/commons/math3/distribution/MultivariateNormalDistribution;
0 14 1 values [D
1 14 2 centered [D
2 6 3 i I
7 14 3 preMultiplied [D
8 14 4 sum D
9 13 6 i I
MethodParameters:
Name Flags
values final
}
SourceFile: "MultivariateNormalDistribution.java"