projnormal.formulas.projected_normal_c.sampling
Sampling functions for the general projected normal distribution with an additive constant const in the denominator.
Functions
|
Compute the mean, covariance and second moment of the variable \(y = x/\sqrt{x^T x + c}\) where \(x \sim \mathcal{N}(\mu_x, \Sigma_x)\) and \(c\) is a positive constant added to the denominator, by sampling from the distribution. |
|
Sample the variable \(y = x/\sqrt{x^T x + c}\) where \(x \sim \mathcal{N}(\mu_x, \Sigma_x)\) and \(c\) is a constant added to the denominator. |
- empirical_moments(mean_x, covariance_x, const, n_samples)
Compute the mean, covariance and second moment of the variable \(y = x/\sqrt{x^T x + c}\) where \(x \sim \mathcal{N}(\mu_x, \Sigma_x)\) and \(c\) is a positive constant added to the denominator, by sampling from the distribution.
- Parameters:
mean_x (
torch.Tensor) – Mean of x. Shape is(n_dim,).covariance_x (
torch.Tensor) – Covariance of x. Shape is(n_dim, n_dim).const (
torch.Tensor) – Constant added to the denominator. Shape is().n_samples (
int) – Number of samples to draw.
- Returns:
Dictionary with the keys
mean,covariance, andsecond_moment, containing the empirical moments of the projected normal distribution.- Return type:
dict
- sample(mean_x, covariance_x, const, n_samples)
Sample the variable \(y = x/\sqrt{x^T x + c}\) where \(x \sim \mathcal{N}(\mu_x, \Sigma_x)\) and \(c\) is a constant added to the denominator.
- Parameters:
mean_x (
torch.Tensor) – Mean of x. Shape is(n_dim,).covariance_x (
torch.Tensor) – Covariance of x. Shape is(n_dim, n_dim).const (
torch.Tensor) – Constant added to the denominator. Shape is().n_samples (
int) – Number of samples to draw.
- Returns:
Samples from the distribution. Shape is
(n_samples, n_dim).- Return type:
torch.Tensor