#lang racket
(require (planet williams/science/special-functions)
         plot)
(plot (function erf)
      #:x-min -4.0 #:x-max 4.0
      #:y-min -1.0 #:y-max 1.0
      #:title "Error Function, erf(x)")
(plot (function erfc)
      #:x-min -4.0 #:x-max 4.0
      #:y-min 0.0 #:y-max 2.0
      #:title "Complementary Error Function, erfc(x)")
(plot (function hazard)
      #:x-min -5.0 #:x-max 10.0
      #:y-min 0.0 #:y-max 10.0
      #:title "Hazard Function, hazard(x)")
(plot (function expint-E1)
      #:x-min -4.0 #:x-max 4.0
      #:y-min -10.0 #:y-max 10.0
      #:title "Exponential Integral, E1(x)")
(plot (function expint-E2)
      #:x-min -4.0 #:x-max 4.0
      #:y-min -10.0 #:y-max 10.0
      #:title "Exponential Integral, E2(x)")
(plot (function expint-Ei)
      #:x-min -4.0 #:x-max 4.0
      #:y-min -10.0 #:y-max 10.0
      #:title "Exponential Integral, Ei(x)")
(plot (function gamma)
      #:x-min 0.001 #:x-max 6.0
      #:y-min 0.0 #:y-max 120.0
      #:title "Gamma Function, gamma(x)")
(plot (function gamma)
      #:x-min -0.999 #:x-max -0.001
      #:y-min -120.0 #:y-max 0.0
      #:title "Gamma Function, gamma(x)")
(plot (function lngamma)
      #:x-min 0.001 #:x-max 6.0
      #:y-min -1.0 #:y-max 5.0
      #:title "Log Gamma Function, lngamma(x)")
(plot (function gammastar)
      #:x-min 0.001 #:x-max 4.0
      #:y-min 0.0 #:y-max 10.0
      #:title "Regulated Gamma Function, gammastar(x)")
(plot (function psi)
      #:x-min 0.001 #:x-max 5.0
      #:y-min -5.0 #:y-max 5.0
      #:title "Psi (Digamma) Function, psi(x)")
(plot (function psi-1)
      #:x-min 0.001 #:x-max 5.0
      #:y-min 0.0 #:y-max 5.0
      #:title "Psi-1 (Trigamma) Function, psi-1(x)")
(plot (function (lambda (x) (psi-n 3 x)))
      #:x-min 0.001 #:x-max 5.0
      #:y-min 0.0 #:y-max 10.0
      #:title "Psi-n (Polygamma) Function, psi-n(3, x)")
(plot (function zeta)
      #:x-min -5.0 #:x-max 5.0
      #:y-min -5.0 #:y-max 5.0
      #:title "Riemann Zeta Function, zeta(x)")
(plot (function (lambda (x) (hzeta x 2.0)))
      #:x-min 1.001 #:x-max 5.0
      #:y-min 0.0 #:y-max 5.0
      #:title "Hurwitz Zeta Function, hzeta(x, 2.0)")
(plot (function eta)
      #:x-min -10.0 #:x-max 10.0
      #:y-min -5.0 #:y-max 5.0
      #:title "Eta Function, eta(x)")