Gaussian(const result_type& mu_=result_type::Zero(), const matrix_type& sigma_=matrix_type::Identity(), const std::random_device::result_type seed=std::random_device()(), const int size_=n) : base_type(Eigen::hjoin(mu_.real(), mu_.imag()), 0.5*Eigen::quadjoin(sigma_.real(), sigma_.imag(), -sigma_.imag(), sigma_.real()), seed, 2*size_), mu(mu_), sigma(sigma_), size(size_) { }