#ifndef DWISH_H_ #define DWISH_H_ #include /** *
 * x[] ~ dwish(R[,], k)
 * 
* @short Wishart distribution */ class DWish : public Distribution { public: DWish(); ~DWish(); double logLikelihood(SArray const &x, std::vector const ¶meters) const; void randomSample(SArray &x, std::vector const ¶meters) const; static void randomSample(double *x, long length, double const *R, double k, int nrow); /** * Checks that R is a square matrix and k is a scalar */ bool checkParameterDim (std::vector const ¶meters) const; /** * Checks that R is symmetric and k >= nrow(R). There is * currently no check that R is positive definite */ bool checkParameterValue (std::vector const ¶meters) const; Index const &dim(std::vector const ¶meters) const; unsigned long df(std::vector const ¶meters) const; double lowerSupport(unsigned long i, std::vector const ¶meters) const; double upperSupport(unsigned long i, std::vector const ¶meters) const; }; #endif /* DWISH_H_ */