# [R] rtmvnorm {tmvtnorm} seems broken

Tim Benham timothy.benham at uqconnect.edu.au
Wed Dec 10 06:51:22 CET 2014

```General linear constraints don't seem to work. I get an error message if I
have more constraint equations than variables. E.g. executing the following
code

print(R.version)
library('tmvtnorm')
cat('tmvtnorm version ')
print(packageVersion('tmvtnorm'))
## Let's constrain our sample to the dwarfed hypercube of dimension p.
p <- 3  # dimension
mean <- rep(0,p)
sigma <- diag(p)
## a <= Dx <= b
a <- c(rep(0,p),-Inf)
b <- c(rep(1,p),2)
D <- rbind(diag(p),rep(1,p))
cat('mean is\n'); print(mean)
cat('a is\n'); print(a)
cat('b is\n'); print(b)
cat('D is\n'); print(D)
X <- rtmvnorm(n=1000, mean, sigma, D=D, lower=a, upper=b, algorithm="gibbsR")

produces the following output

platform       x86_64-w64-mingw32
arch           x86_64
os             mingw32
system         x86_64, mingw32
status
major          3
minor          1.0
year           2014
month          04
day            10
svn rev        65387
language       R
version.string R version 3.1.0 (2014-04-10)
nickname       Spring Dance
tmvtnorm version  '1.4.9'
mean is
 0 0 0
a is
    0    0    0 -Inf
b is
 1 1 1 2
D is
[,1] [,2] [,3]
[1,]    1    0    0
[2,]    0    1    0
[3,]    0    0    1
[4,]    1    1    1
Error in checkTmvArgs(mean, sigma, lower, upper) (from rtmvnorm-test.R#18) :
mean, lower and upper must have the same length

That error message is not appropriate when a matrix of linear constraints is
passed in. I emailed the package maintainer on the 3rd but received only an