"sim.sagat.data" <- 
function (N = 1000, P=N, mu, Var, cov.pattern=list(c(1,round(.05*N))), cov.const) 
{
    Sigma <- matrix(0, N, N)
    for(i in 1:length(cov.pattern)) {
      Sigma[cov.pattern[[i]][1]:cov.pattern[[i]][2], cov.pattern[[i]][1]:cov.pattern[[i]][2]] <- cov.const[i]
    }
    diag(Sigma) <- Var

    eigen <- eigen(Sigma)
    eigen$values[eigen$values <= 0] <- .05
    Sigma <- eigen$vectors %*% diag(eigen$values) %*% t(eigen$vectors)

    compendium <- t(mvrnorm(n = P, mu = mu, Sigma = Sigma))

    return(compendium)
}