ere ``d`` is the dimension. cov : array_like (d, d), optional The covariance matrix. If omitted, use `cov_root` instead. If both `cov` and `cov_root` are omitted, use the identity matrix. cov_root : array_like (d, d'), optional A root decomposition of the covariance matrix, where ``d'`` may be less than ``d`` if the covariance is not full rank. If omitted, use `cov`. inv_transform : bool, optional If True, use inverse transform instead of Box-Muller. Default is True. engine : QMCEngine, optional Quasi-Monte Carlo engine sampler. If None, `Sobol` is used. rng : `numpy.random.Generator`, optional Pseudorandom number generator state. When `rng` is None, a new `numpy.random.Generator` is created using entropy from the operating system. Types other than `numpy.random.Generator` are passed to `numpy.random.default_rng` to instantiate a ``Generator``. .. versionchanged:: 1.15.0 As part of the `SPEC-007 `_ transition from use of `numpy.random.RandomState` to `numpy.random.Generator`, this keyword was changed from `seed` to `rng`. For an interim period, both keywords will continue to work, although only one may be specified at a time. After the interim period, function calls using the `seed` keyword will emit warnings. Following a deprecation period, the `seed` keyword will be removed. Examples -------- >>> import matplotlib.pyplot as plt >>> from scipy.stats import qmc >>> dist = qmc.MultivariateNormalQMC(mean=[0, 5], cov=[[1, 0], [0, 1]]) >>> sample = dist.random(512) >>> _ = plt.scatter(sample[:, 0], sample[:, 1]) >>> plt.show() r0