com.opengamma.strata.math.impl.statistics.distribution.StudentTOneTailedCriticalValueCalculator.java Source code

Java tutorial

Introduction

Here is the source code for com.opengamma.strata.math.impl.statistics.distribution.StudentTOneTailedCriticalValueCalculator.java

Source

/**
 * Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies
 *
 * Please see distribution for license.
 */
package com.opengamma.strata.math.impl.statistics.distribution;

import java.util.function.Function;

import com.google.common.math.DoubleMath;
import com.opengamma.strata.collect.ArgChecker;

import cern.jet.random.engine.RandomEngine;

/**
 *
 */
public class StudentTOneTailedCriticalValueCalculator implements Function<Double, Double> {

    private final ProbabilityDistribution<Double> _dist;

    public StudentTOneTailedCriticalValueCalculator(double nu) {
        ArgChecker.notNegative(nu, "nu");
        _dist = new StudentTDistribution(nu);
    }

    public StudentTOneTailedCriticalValueCalculator(double nu, RandomEngine engine) {
        ArgChecker.notNegative(nu, "nu");
        ArgChecker.notNull(engine, "engine");
        _dist = new StudentTDistribution(nu, engine);
    }

    @Override
    public Double apply(Double x) {
        ArgChecker.notNull(x, "x");
        ArgChecker.notNegative(x, "x");
        if (DoubleMath.fuzzyEquals(x, 0.5, 1e-14)) {
            return 0.5;
        }
        return _dist.getInverseCDF(x);
    }

}