public T Generate() { for (int i = 0; i < _maxLoops; i++) { var sample = _sampler.Generate(); if (_accepter(sample)) { return(sample); } } throw new TimeoutException("The Monte Carlo sampler failed to pick a value within the prescribed number of iterations."); }
public static IEnumerable <T> Generate <T>(this IDistribution <T> distribution, int count) { for (int i = 0; i < count; i++) { yield return(distribution.Generate()); } }
public IParticleBehavior MakeBehavior() { double xScale = _xScale.Generate(); double yScale = _yScale?.Generate() ?? xScale; return(new ScaleBehavior(xScale, yScale)); }
/// <summary> /// y = phi_x * w + noise, noise ~ x /// </summary> public static double Generate(int nBasis, IEnumerable <double> w, IDistribution <double> noise, double x) { if (w.Count() != nBasis) { throw new ArgumentException(); } // 1 * nBasis var phiX = Core.Utils.PolynomialBasisLinearModelUtility.GetDesignMatrix(nBasis, x); // nBasis * 1 var wm = new Matrix(w, false); return((phiX * wm)[0, 0] + noise.Generate()); }
public IntVector Generate() => new IntVector(_first.Generate(), _second.Generate());
public static IDistribution <TOut> Transform <TIn, TOut>(this IDistribution <TIn> distribution, Func <TIn, TOut> transformer) => new FuncDistribution <TOut>(() => transformer(distribution.Generate()));