aboutsummaryrefslogtreecommitdiff
path: root/src/m_gsl_sf_erf.F90
diff options
context:
space:
mode:
Diffstat (limited to 'src/m_gsl_sf_erf.F90')
-rw-r--r--src/m_gsl_sf_erf.F90110
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