// Description: Moments of normal distribution
#ifndef PASTELSYS_NORMAL_MOMENTS_H
#define PASTELSYS_NORMAL_MOMENTS_H
#include "pastel/sys/random/normal_distribution.h"
#include <cmath>
namespace Pastel
{
// Mean of normal distribution.
template <typename Real>
decltype(auto) mean(const Normal_Distribution<Real>& distribution)
{
return distribution.mean();
}
// Variance of normal distribution.
template <typename Real>
decltype(auto) variance(const Normal_Distribution<Real>& distribution)
{
return distribution.rotation() *
arma::diagmat(arma::square(distribution.scale())) *
trans(distribution.rotation());
}
}
#endif