/** * Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.analytics.math.statistics.distribution; import cern.jet.random.engine.RandomEngine; import com.opengamma.analytics.math.function.Function1D; import com.opengamma.util.ArgumentChecker; import com.opengamma.util.CompareUtils; /** * */ public class StudentTOneTailedCriticalValueCalculator extends Function1D<Double, Double> { private final ProbabilityDistribution<Double> _dist; public StudentTOneTailedCriticalValueCalculator(final double nu) { ArgumentChecker.notNegative(nu, "nu"); _dist = new StudentTDistribution(nu); } public StudentTOneTailedCriticalValueCalculator(final double nu, final RandomEngine engine) { ArgumentChecker.notNegative(nu, "nu"); ArgumentChecker.notNull(engine, "engine"); _dist = new StudentTDistribution(nu, engine); } @Override public Double evaluate(final Double x) { ArgumentChecker.notNull(x, "x"); ArgumentChecker.notNegative(x, "x"); if (CompareUtils.closeEquals(x, 0.5, 1e-14)) { return 0.5; } return _dist.getInverseCDF(x); } }