gsl_sf_fermi_dirac.h 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. /* specfunc/gsl_sf_fermi_dirac.h
  2. *
  3. * Copyright (C) 1996, 1997, 1998, 1999, 2000 Gerard Jungman
  4. *
  5. * This program is free software; you can redistribute it and/or modify
  6. * it under the terms of the GNU General Public License as published by
  7. * the Free Software Foundation; either version 3 of the License, or (at
  8. * your option) any later version.
  9. *
  10. * This program is distributed in the hope that it will be useful, but
  11. * WITHOUT ANY WARRANTY; without even the implied warranty of
  12. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  13. * General Public License for more details.
  14. *
  15. * You should have received a copy of the GNU General Public License
  16. * along with this program; if not, write to the Free Software
  17. * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  18. */
  19. /* Author: G. Jungman */
  20. #ifndef __GSL_SF_FERMI_DIRAC_H__
  21. #define __GSL_SF_FERMI_DIRAC_H__
  22. #include "gsl_sf_result.h"
  23. #undef __BEGIN_DECLS
  24. #undef __END_DECLS
  25. #ifdef __cplusplus
  26. # define __BEGIN_DECLS extern "C" {
  27. # define __END_DECLS }
  28. #else
  29. # define __BEGIN_DECLS /* empty */
  30. # define __END_DECLS /* empty */
  31. #endif
  32. __BEGIN_DECLS
  33. /* Complete Fermi-Dirac Integrals:
  34. *
  35. * F_j(x) := 1/Gamma[j+1] Integral[ t^j /(Exp[t-x] + 1), {t,0,Infinity}]
  36. *
  37. *
  38. * Incomplete Fermi-Dirac Integrals:
  39. *
  40. * F_j(x,b) := 1/Gamma[j+1] Integral[ t^j /(Exp[t-x] + 1), {t,b,Infinity}]
  41. */
  42. /* Complete integral F_{-1}(x) = e^x / (1 + e^x)
  43. *
  44. * exceptions: GSL_EUNDRFLW
  45. */
  46. int gsl_sf_fermi_dirac_m1_e(const double x, gsl_sf_result * result);
  47. double gsl_sf_fermi_dirac_m1(const double x);
  48. /* Complete integral F_0(x) = ln(1 + e^x)
  49. *
  50. * exceptions: GSL_EUNDRFLW
  51. */
  52. int gsl_sf_fermi_dirac_0_e(const double x, gsl_sf_result * result);
  53. double gsl_sf_fermi_dirac_0(const double x);
  54. /* Complete integral F_1(x)
  55. *
  56. * exceptions: GSL_EUNDRFLW, GSL_EOVRFLW
  57. */
  58. int gsl_sf_fermi_dirac_1_e(const double x, gsl_sf_result * result);
  59. double gsl_sf_fermi_dirac_1(const double x);
  60. /* Complete integral F_2(x)
  61. *
  62. * exceptions: GSL_EUNDRFLW, GSL_EOVRFLW
  63. */
  64. int gsl_sf_fermi_dirac_2_e(const double x, gsl_sf_result * result);
  65. double gsl_sf_fermi_dirac_2(const double x);
  66. /* Complete integral F_j(x)
  67. * for integer j
  68. *
  69. * exceptions: GSL_EUNDRFLW, GSL_EOVRFLW
  70. */
  71. int gsl_sf_fermi_dirac_int_e(const int j, const double x, gsl_sf_result * result);
  72. double gsl_sf_fermi_dirac_int(const int j, const double x);
  73. /* Complete integral F_{-1/2}(x)
  74. *
  75. * exceptions: GSL_EUNDRFLW, GSL_EOVRFLW
  76. */
  77. int gsl_sf_fermi_dirac_mhalf_e(const double x, gsl_sf_result * result);
  78. double gsl_sf_fermi_dirac_mhalf(const double x);
  79. /* Complete integral F_{1/2}(x)
  80. *
  81. * exceptions: GSL_EUNDRFLW, GSL_EOVRFLW
  82. */
  83. int gsl_sf_fermi_dirac_half_e(const double x, gsl_sf_result * result);
  84. double gsl_sf_fermi_dirac_half(const double x);
  85. /* Complete integral F_{3/2}(x)
  86. *
  87. * exceptions: GSL_EUNDRFLW, GSL_EOVRFLW
  88. */
  89. int gsl_sf_fermi_dirac_3half_e(const double x, gsl_sf_result * result);
  90. double gsl_sf_fermi_dirac_3half(const double x);
  91. /* Incomplete integral F_0(x,b) = ln(1 + e^(b-x)) - (b-x)
  92. *
  93. * exceptions: GSL_EUNDRFLW, GSL_EDOM
  94. */
  95. int gsl_sf_fermi_dirac_inc_0_e(const double x, const double b, gsl_sf_result * result);
  96. double gsl_sf_fermi_dirac_inc_0(const double x, const double b);
  97. __END_DECLS
  98. #endif /* __GSL_SF_FERMI_DIRAC_H__ */