multivariate_gaussian returns a prob greater than one

this could be due to the numpy implementation of inv() and pinv().
currently using an implementation that relies on the diagonal of a
covariance matrix only. must extend this later on.