diff options
Diffstat (limited to 'src/m_gsl_sf_erf.F90')
-rw-r--r-- | src/m_gsl_sf_erf.F90 | 110 |
1 files changed, 110 insertions, 0 deletions
diff --git a/src/m_gsl_sf_erf.F90 b/src/m_gsl_sf_erf.F90 new file mode 100644 index 0000000..d9e670a --- /dev/null +++ b/src/m_gsl_sf_erf.F90 @@ -0,0 +1,110 @@ +module m_gsl_sf_erf + implicit none + + interface + + ! Complementary Error Function + ! erfc(x) := 2/Sqrt[Pi] Integrate[Exp[-t^2], {t,x,Infinity}] + ! + ! exceptions: none + integer function gsl_sf_erfc_e (x, result) + use m_gsl_sf_result + implicit none + double precision x + type(gsl_sf_result) result + end function gsl_sf_erfc_e + + double precision function gsl_sf_erfc (x) + implicit none + double precision x + end function gsl_sf_erfc + + + ! Log Complementary Error Function + ! + ! exceptions: none + integer function gsl_sf_log_erfc_e (x, result) + use m_gsl_sf_result + implicit none + double precision x + type(gsl_sf_result) result + end function gsl_sf_log_erfc_e + + double precision function gsl_sf_log_erfc (x) + implicit none + double precision x + end function gsl_sf_log_erfc + + + ! Error Function + ! erf(x) := 2/Sqrt[Pi] Integrate[Exp[-t^2], {t,0,x}] + ! + ! exceptions: none + integer function gsl_sf_erf_e (x, result) + use m_gsl_sf_result + implicit none + double precision x + type(gsl_sf_result) result + end function gsl_sf_erf_e + + double precision function gsl_sf_erf (x) + implicit none + double precision x + end function gsl_sf_erf + + + ! Probability functions: + ! Z(x) : Abramowitz+Stegun 26.2.1 + ! Q(x) : Abramowitz+Stegun 26.2.3 + ! + ! exceptions: none + integer function gsl_sf_erf_Z_e (x, result) + use m_gsl_sf_result + implicit none + double precision x + type(gsl_sf_result) result + end function gsl_sf_erf_Z_e + + integer function gsl_sf_erf_Q_e (x, result) + use m_gsl_sf_result + implicit none + double precision x + type(gsl_sf_result) result + end function gsl_sf_erf_Q_e + + double precision function gsl_sf_erf_Z (x) + implicit none + double precision x + end function gsl_sf_erf_Z + + double precision function gsl_sf_erf_Q (x) + implicit none + double precision x + end function gsl_sf_erf_Q + + +#if 0 + /* Does not exist in older versions of GSL*/ + + ! Hazard function, also known as the inverse Mill's ratio. + ! + ! H(x) := Z(x)/Q(x) + ! = Sqrt[2/Pi] Exp[-x^2 / 2] / Erfc[x/Sqrt[2]] + ! + ! exceptions: GSL_EUNDRFLW + integer function gsl_sf_hazard_e (x, result) + use m_gsl_sf_result + implicit none + double precision x + type(gsl_sf_result) result + end function gsl_sf_hazard_e + + double precision function gsl_sf_hazard (x) + implicit none + double precision x + end function gsl_sf_hazard +#endif + + end interface + +end module m_gsl_sf_erf |