// @(#)root/mathmore:$Id$
// Authors: L. Moneta, A. Zsenei 08/2005
/**********************************************************************
* *
* Copyright (c) 2004 ROOT Foundation, CERN/PH-SFT *
* *
* This library is free software; you can redistribute it and/or *
* modify it under the terms of the GNU General Public License *
* as published by the Free Software Foundation; either version 2 *
* of the License, or (at your option) any later version. *
* *
* This library is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
* General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with this library (see file COPYING); if not, write *
* to the Free Software Foundation, Inc., 59 Temple Place, Suite *
* 330, Boston, MA 02111-1307 USA, or contact the author. *
* *
**********************************************************************/
#if defined(__CINT__) && !defined(__MAKECINT__)
// avoid to include header file when using CINT
#ifndef _WIN32
#include "../lib/libMathMore.so"
#else
#include "../bin/libMathMore.dll"
#endif
#else
#ifndef ROOT_Math_QuantFuncMathMore
#define ROOT_Math_QuantFuncMathMore
namespace ROOT {
namespace Math {
/** @defgroup QuantFunc Quantile Functions
* @ingroup StatFunc
*
* Inverse functions of the cumulative distribution functions
* and the inverse of the complement of the cumulative distribution functions
* for various distributions.
* The functions with the extension _quantile calculate the
* inverse of the _cdf function, the
* lower tail integral of the probability density function
* \f$D^{-1}(z)\f$ where
*
* \f[ D(x) = \int_{-\infty}^{x} p(x') dx' \f]
*
* while those with the _quantile_c extension calculate the
* inverse of the _cdf_c functions, the upper tail integral of the probability
* density function \f$D^{-1}(z) \f$ where
*
* \f[ D(x) = \int_{x}^{+\infty} p(x') dx' \f]
*
* The implementation used is that of
* GSL.
*
* NOTE: In the old releases (< 5.14) the _quantile functions were called
* _quant_inv and the _quantile_c functions were called
* _prob_inv.
* These names are currently kept for backward compatibility, but
* their usage is deprecated.
*/
/** @name Quantile Functions from MathMore
* The implementation used is that of
* GSL.
*/
//@{
/**
Inverse (\f$D^{-1}(z)\f$) of the cumulative distribution
function of the upper tail of Student's t-distribution
(#tdistribution_cdf_c). For detailed description see
Mathworld. The implementation used is that of
GSL.
@ingroup QuantFunc
*/
double tdistribution_quantile_c(double z, double r);
/**
Inverse (\f$D^{-1}(z)\f$) of the cumulative distribution
function of the lower tail of Student's t-distribution
(#tdistribution_cdf). For detailed description see
Mathworld. The implementation used is that of
GSL.
@ingroup QuantFunc
*/
double tdistribution_quantile(double z, double r);
#ifdef HAVE_OLD_STAT_FUNC
//@}
/** @name Backward compatible functions */
}
inline double chisquared_quant_inv(double x, double r) {
return chisquared_quantile (x, r );
}
inline double gamma_quant_inv(double x, double alpha, double theta) {
return gamma_quantile (x, alpha, theta );
}
inline double tdistribution_prob_inv(double x, double r) {
return tdistribution_quantile_c (x, r );
}
inline double tdistribution_quant_inv(double x, double r) {
return tdistribution_quantile (x, r );
}
#endif
} // namespace Math
namespace MathMore {
/**
Re-implementation in MathMore of the Inverse (\f$D^{-1}(z)\f$) of the cumulative distribution
function of the lower tail of the \f$\chi^2\f$ distribution
with \f$r\f$ degrees of freedom (#chisquared_cdf). For detailed description see
Mathworld. The implementation used is that of
GSL.
@ingroup QuantFunc
*/
double chisquared_quantile(double z, double r);
/**
Re-implementation in MathMore of the Inverse (\f$D^{-1}(z)\f$) of the cumulative distribution
function of the lower tail of the gamma distribution
(#gamma_cdf). For detailed description see
Mathworld. The implementation used is that of
GSL.
@ingroup QuantFunc
*/
double gamma_quantile(double z, double alpha, double theta);
} // end namespace MathMore
} // namespace ROOT
#endif // ROOT_Math_QuantFuncMathMore
#endif // if defined (__CINT__) && !defined(__MAKECINT__)