org.omegahat.Probability.Distributions
Class MVNormal

java.lang.Object
  |
  +--org.omegahat.Probability.Distributions.MVNormal
All Implemented Interfaces:
Density, Distribution, Generator, UnnormalizedDensity
Direct Known Subclasses:
NormalProposal

public class MVNormal
extends java.lang.Object
implements Distribution, UnnormalizedDensity


Field Summary
 boolean DEBUG
           
private  boolean isDiagonalCov
           
private  double log_normalizing_constant
           
private  double[] mu
          Mean
private  double normalizing_constant
           
private  PRNG prng
          Pseudo-Random Number Generator to Use
private  PRNGDistributionFunctions prob
          Pull all the probability functions out of package
private  double[][] sigma
          Covariance Matrix
private  double sigmaDet
           
private  double[][] sigmaInv
           
private  double[] sigmaSqrt
           
private  VisualNumerics.math.DoubleSVD sigmaSVD
           
private  double[][] transMat
           
 
Constructor Summary
MVNormal(double[][] var, PRNG prng_in)
           
MVNormal(double[] mean, double[][] var, PRNG prng_in)
           
MVNormal(int dimensions, PRNG prng_in)
           
 
Method Summary
protected  void checkConformity()
           
protected  void checkConformity(double[] x)
           
private  double[][] componentMultiply(double[][] mat, double[] vec)
           
 int dim()
           
private  double dnorm(double[] x)
           
 java.lang.Object generate()
           
 java.lang.Object generateDoubleArray()
           
 java.lang.Object[] generateSeveral(int howmany)
           
 double[][] getCovariance()
           
 double[] getMean()
           
private  double log_dnorm(double[] x)
           
 double logPDF(double[] x)
           
 double logPDF(java.lang.Object value)
           
 double logUnnormalizedPDF(double[] x)
           
 double logUnnormalizedPDF(java.lang.Object value)
           
private  double mahalanobis_2(double[] x)
           
static void main(java.lang.String[] argv)
           
 double PDF(double[] x)
           
 double PDF(java.lang.Object value)
           
private  double[] rnorm()
           
 double[][] setCovariance(double[][] var)
           
 double[] setMean(double[] mean_in)
           
 java.lang.Object setMean(java.lang.Object mean_in)
           
 void setupTransMat()
           
private  double[][] sqrtMat(double[][] mat)
           
private  double[] sqrtVec(double[] vec)
           
private static double square(double a)
           
private  double unnorm_dnorm(double[] x)
           
private  double unnorm_log_dnorm(double[] x)
           
 double unnormalizedPDF(double[] x)
           
 double unnormalizedPDF(java.lang.Object value)
           
(package private)  double xVx(double[] c, double[][] V)
           
 
Methods inherited from class java.lang.Object
, clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, toString, wait, wait, wait
 

Field Detail

mu

private double[] mu
Mean

sigma

private double[][] sigma
Covariance Matrix

sigmaSqrt

private double[] sigmaSqrt

sigmaInv

private double[][] sigmaInv

sigmaSVD

private VisualNumerics.math.DoubleSVD sigmaSVD

sigmaDet

private double sigmaDet

transMat

private double[][] transMat

isDiagonalCov

private boolean isDiagonalCov

normalizing_constant

private double normalizing_constant

log_normalizing_constant

private double log_normalizing_constant

prng

private PRNG prng
Pseudo-Random Number Generator to Use

prob

private PRNGDistributionFunctions prob
Pull all the probability functions out of package

DEBUG

public boolean DEBUG
Constructor Detail

MVNormal

public MVNormal(int dimensions,
                PRNG prng_in)

MVNormal

public MVNormal(double[] mean,
                double[][] var,
                PRNG prng_in)

MVNormal

public MVNormal(double[][] var,
                PRNG prng_in)
Method Detail

getMean

public double[] getMean()

getCovariance

public double[][] getCovariance()

setMean

public java.lang.Object setMean(java.lang.Object mean_in)

setMean

public double[] setMean(double[] mean_in)

setCovariance

public double[][] setCovariance(double[][] var)

dim

public int dim()

setupTransMat

public void setupTransMat()

rnorm

private double[] rnorm()

mahalanobis_2

private double mahalanobis_2(double[] x)

xVx

double xVx(double[] c,
           double[][] V)

dnorm

private double dnorm(double[] x)

unnorm_dnorm

private double unnorm_dnorm(double[] x)

log_dnorm

private double log_dnorm(double[] x)

unnorm_log_dnorm

private double unnorm_log_dnorm(double[] x)

square

private static final double square(double a)

componentMultiply

private double[][] componentMultiply(double[][] mat,
                                     double[] vec)

sqrtMat

private double[][] sqrtMat(double[][] mat)

sqrtVec

private double[] sqrtVec(double[] vec)

checkConformity

protected void checkConformity(double[] x)

checkConformity

protected void checkConformity()

PDF

public double PDF(double[] x)

logPDF

public double logPDF(double[] x)

unnormalizedPDF

public double unnormalizedPDF(double[] x)

logUnnormalizedPDF

public double logUnnormalizedPDF(double[] x)

generateDoubleArray

public java.lang.Object generateDoubleArray()

generate

public java.lang.Object generate()
Specified by:
generate in interface Generator

generateSeveral

public java.lang.Object[] generateSeveral(int howmany)
Specified by:
generateSeveral in interface Generator

PDF

public double PDF(java.lang.Object value)
Specified by:
PDF in interface Density

logPDF

public double logPDF(java.lang.Object value)
Specified by:
logPDF in interface Density

unnormalizedPDF

public double unnormalizedPDF(java.lang.Object value)
Specified by:
unnormalizedPDF in interface UnnormalizedDensity

logUnnormalizedPDF

public double logUnnormalizedPDF(java.lang.Object value)
Specified by:
logUnnormalizedPDF in interface UnnormalizedDensity

main

public static void main(java.lang.String[] argv)