Written for PyTorch with CUDA compatibility.

**Use Case:** Instead of doing a multivariate normal sampling (available in **torch.distributions.multivariate_normal**), one could also do a random sampling within a specified confidence region of the multivariate gaussian function.

Although it will be an approximation, one could obtain a confidence region using the variance across each dimension (diagonal of the covariance matrix). Suppose we define a 3*s boundary (Upto 3 x variance across each dimension is an accepted confidence interval), then **EllipsoidSampler** can be used to construct such an ellipsoid (with given mean = **mu** and lengths of axes = **axes. **This utility will further help sample from within the ellipsoid in a random fashion (instead of a random normal fashion).