# User visible changes in tmvtnorm package

## changes in tmvtnorm  1.7 (2025-09-01)
* Eleminated all CRAN NOTEs during package build process, e.g. Rd \link{} targets missing package anchors 

## changes in tmvtnorm  1.6 (2023-12-05)
* Changed package encoding from 'latin1' to 'UTF-8'.
* Converted the non-ASCII content to ASCII.
* Fixed CITATION file

## changes in tmvtnorm  1.5 (2022-03-22)
* fixed misleading stop message to "lower bound should be strictly less than the upper bound". Reported by Chao Wang [chao-wang@uiowa.edu]
* Added README.md
* Fixed two warnings/errors for R 4.2.0 in `tmvtnorm::rtmvnorm` input checks
```
1: In !is.null(H) && sigma != diag(length(mean)) :
 'length(x) = 9 > 1' in coercion to 'logical(1)'
2: In start.value < lower || start.value > upper :
 'length(x) = 3 > 1' in coercion to 'logical(1)'
```

## changes in tmvtnorm  1.4-10 (2015-08-24)
* Fixed problem with build process in src/Makevars (parallel make)

## changes in tmvtnorm  1.4-9 (2014-03-03)
* Moved package vignette to vignettes/ directory to be consistent with R 3.1.0

## changes in tmvtnorm  1.4-8 (2013-03-29)
* bugfix in dtmvnorm(...,margin=NULL). Introduced in 1.4-7. Reported by Julius.Vainora [julius.vainora@gmail.com]
* bugfix in rtmvt(..., algorithm="gibbs"): Algorithm="gibbs" was not forwarded properly to rtmvnorm(). Reported by Aurelien Bechler [aurelien.bechler@agroparistech.fr]
* allow non-integer degrees of freedom in rtmvt, e.g. rtmvt(..., df=3.2). Suggested by Aurelien Bechler [aurelien.bechler@agroparistech.fr]
  Rejection sampling does not work with non-integer df, only Gibbs sampling.

## changes in tmvtnorm  1.4-7 (2012-11-29)

* new method rtmvnorm2() for drawing random samples with 
  general linear constraints a <= Dx <= b with x (d x 1), D (r x d), a,b (r x 1) 
  which can also handle the case r > d. Requested by Xiaojin Xu [xiaojinxu.fdu@gmail.com]
  Currently works with Gibbs sampling. 
* bugfix in dtmvnorm(...,log=TRUE). Reported by John Merrill [john.merrill@gmail.com]
* optimization in mtmvnorm() to speed up the calculations
* dtmvnorm.marginal2() can now be used with vectorized xq, xr.

## changes in tmvtnorm  1.4-6 (2012-03-23)

* further optimization in mtmvnorm() and implementation of Johnson/Kotz-Formula when only a subset of variables is truncated

## changes in tmvtnorm  1.4-5 (2012-02-13)

* rtmvnorm() can be used with both sparse triplet representation and (compressed sparse column) for H
* dramatic performance gain in mtmvnorm() through optimization

## changes in tmvtnorm  1.4-4 (2012-01-10)

* dramatic performance gain in rtmvnorm.sparseMatrix() through optimization
* Bugfix in rtmvnorm() with linear constraints D: (reported by Claudia Köllmann [koellmann@statistik.tu-dortmund.de])
  - forwarding "algorithm=" argument from rtmvnorm() to internal methods dealing with linear constraints was corrupt.
  - sampling with linear constraints D lead to wrong results due to missing t() 

## changes in tmvtnorm  1.4-2 (2012-01-04)

* Bugfix in rtmvnorm.sparseMatrix(): fixed a memory leak in Fortran code
* Added a package vignette with a description of the Gibbs sampler

## changes in tmvtnorm  1.4-1 (2011-12-27)

* Allow a sparse precision matrix H to be passed to rtmvnorm.sparseMatrix() which allows
  random number generation in very high dimensions (e.g. d >> 5000)
* Rewritten the Fortran version of the Gibbs sampler for the 
  use with sparse precision matrix H.

## changes in tmvtnorm  1.3-1 (2011-12-01)

* Allow for the use of a precision matrix H rather than covariance matrix sigma in rtmvnorm() for both rejection and Gibbs sampling.
  (requested by Miguel Godinho de Matos from Carnegie Mellon University)
* Rewritten both the R and Fortran version of the Gibbs sampler. 
* GMM estimation in gmm.tmvnorm(,method=c("ManjunathWilhelm","Lee")) can now be done using the Manjunath/Wilhelm and Lee moment conditions.


## changes in tmvtnorm 1.2-3 (2011-06-04)

* rtmvnorm() works now with general linear constraints a<= Dx<=b, with x (d x 1), full-rank matrix D (d x d), a,b (d x 1). 
* Implemented with both rejection sampling and Gibbs sampling (Geweke (1991))
* Added GMM estimation in gmm.tmvnorm()
* Bugfix in dtmvt() thanks to Jason Kramer: Using type="shifted" in pmvt()
  (reported by Jason Kramer [jskramer@uci.edu])


## changes in tmvtnorm  1.1-5 (2010-11-20)

* Added Maximum Likelihood estimation method (MLE) mle.tmvtnorm()
* optimized mtmvnorm(): precalcuted F_a[i] in a separate loop which improved the computation of the mean, suggested by Miklos.Reiter@sungard.com
* added a flag doComputeVariance (default TRUE), so users which are only interested in the mean, can compute
  only the variance (BTW: this flag does not make sense for the mean, since the mean has to be calculated anyway.)
* Fixed a bug with LAPACK and BLAS/FLIBS libraries:
Prof. Ripley/Writing R extensions: "For portability, the macros @code{BLAS_LIBS} and @code{FLIBS} should always be included @emph{after} @code{LAPACK_LIBS}."
  

## changes in tmvtnorm 1.0-2 (2010-01-28)

* Added methods for the truncated multivariate t-Distribution : rtmvt(), dtmvt() und ptmvt()
  and ptmvt.marginal()

  
## changes in tmvtnorm 0.9-2 (2010-01-03)

* Implementation of "thinning technique" for Gibbs sampling: Added parameter thinning=1 to rtmvnorm.gibbs() for thinning of Markov chains, 
  i.e. reducing autocorrelations of random samples
* Documenting additional arguments "thinning", "start.value" and "burn.in", for rmvtnorm.gibbs() 
* Added parameter "burn-in" and "thinning" in the Fortran code for discarding burn-in samples and thinng the Markov chain. 
* Added parameter log=FALSE to dtmvnorm.marginal()
* Added parameter margin=NULL to dtmvnorm() as an interface/wrapper to marginal density functions dtmvnorm.marginal() and dtmvnorm.marginal2()
* Code polishing and review

