ood(params1.lambda, p1.eta, p1.omega, sample); auto lh2 = properGeneralizedInverseGaussianLikelihood(lambda, p2.eta, p2.omega, sample); assert(lh0 <= lh1); assert(lh0 <= lh2); assert(lh2 <= lh1);
import std.range; import std.random; import atmosphere.random; import atmosphere.likelihood; import atmosphere.params; auto length = 1000; auto lambda = -2.0, chi = 1.4, psi = 2.3; auto rng = Random(1234); auto sample = new GeneralizedInverseGaussianRNG!double(rng, lambda, chi, psi).take(length).array; auto weights = iota(1.0, length + 1.0).array; auto params1 = generalizedInverseGaussianEstimate!double(sample, weights); auto params2 = generalizedInverseGaussianFixedLambdaEstimate!double(lambda, sample, weights); auto p0 = GIGChiPsi!double(chi, psi); auto p1 = GIGChiPsi!double(params1.chi, params1.psi); auto p2 = GIGChiPsi!double(params2.chi, params2.psi); auto lh0 = properGeneralizedInverseGaussianLikelihood(lambda, p0.eta, p0.omega, sample, weights); auto lh1 = properGeneralizedInverseGaussianLikelihood(params1.lambda, p1.eta, p1.omega, sample, weights); auto lh2 = properGeneralizedInverseGaussianLikelihood(lambda, p2.eta, p2.omega, sample, weights); assert(lh0 <= lh1); assert(lh0 <= lh2); assert(lh2 <= lh1);
atmosphere.params