1pp_addpm({At=>Top},<<'EOD'); 2=head1 NAME 3 4PDL::GSLSF::HYPERG - PDL interface to GSL Special Functions 5 6=head1 DESCRIPTION 7 8This is an interface to the Special Function package present in the GNU Scientific Library. 9 10=head1 SYNOPSIS 11 12=cut 13 14 15EOD 16 17# PP interface to GSL 18 19pp_addhdr(' 20#include <gsl/gsl_sf.h> 21#include "../gslerr.h" 22'); 23 24pp_def('gsl_sf_hyperg_0F1', 25 GenericTypes => [D], 26 OtherPars =>'double c', 27 Pars=>'double x(); double [o]y(); double [o]e()', 28 Code =>' 29gsl_sf_result r; 30GSLERR(gsl_sf_hyperg_0F1_e,($COMP(c), $x(),&r)) 31$y() = r.val; 32$e() = r.err; 33', 34 Doc =>'/* Hypergeometric function related to Bessel functions 0F1[c,x] = Gamma[c] x^(1/2(1-c)) I_{c-1}(2 Sqrt[x]) Gamma[c] (-x)^(1/2(1-c)) J_{c-1}(2 Sqrt[-x])' 35 ); 36 37pp_def('gsl_sf_hyperg_1F1', 38 GenericTypes => [D], 39 OtherPars =>'double a; double b', 40 Pars=>'double x(); double [o]y(); double [o]e()', 41 Code =>' 42gsl_sf_result r; 43GSLERR(gsl_sf_hyperg_1F1_e,($COMP(a),$COMP(b), $x(),&r)) 44$y() = r.val; 45$e() = r.err; 46', 47 Doc =>'Confluent hypergeometric function for integer parameters. 1F1[a,b,x] = M(a,b,x)' 48 ); 49 50pp_def('gsl_sf_hyperg_U', 51 GenericTypes => [D], 52 OtherPars =>'double a; double b', 53 Pars=>'double x(); double [o]y(); double [o]e()', 54 Code =>' 55gsl_sf_result r; 56GSLERR(gsl_sf_hyperg_U_e,($COMP(a),$COMP(b), $x(),&r)) 57$y() = r.val; 58$e() = r.err; 59', 60 Doc =>'Confluent hypergeometric function for integer parameters. U(a,b,x)' 61 ); 62 63pp_def('gsl_sf_hyperg_2F1', 64 GenericTypes => [D], 65 OtherPars =>'double a; double b; double c', 66 Pars=>'double x(); double [o]y(); double [o]e()', 67 Code =>' 68gsl_sf_result r; 69GSLERR(gsl_sf_hyperg_2F1_e,($COMP(a),$COMP(b), $COMP(c),$x(),&r)) 70$y() = r.val; 71$e() = r.err; 72', 73 Doc =>'Confluent hypergeometric function for integer parameters. 2F1[a,b,c,x]' 74 ); 75 76pp_def('gsl_sf_hyperg_2F1_conj', 77 GenericTypes => [D], 78 OtherPars =>'double a; double b; double c', 79 Pars=>'double x(); double [o]y(); double [o]e()', 80 Code =>' 81gsl_sf_result r; 82GSLERR(gsl_sf_hyperg_2F1_conj_e,($COMP(a),$COMP(b), $COMP(c),$x(),&r)) 83$y() = r.val; 84$e() = r.err; 85', 86 Doc =>'Gauss hypergeometric function 2F1[aR + I aI, aR - I aI, c, x]' 87 ); 88 89pp_def('gsl_sf_hyperg_2F1_renorm', 90 GenericTypes => [D], 91 OtherPars =>'double a; double b; double c', 92 Pars=>'double x(); double [o]y(); double [o]e()', 93 Code =>' 94gsl_sf_result r; 95GSLERR(gsl_sf_hyperg_2F1_renorm_e,($COMP(a),$COMP(b), $COMP(c),$x(),&r)) 96$y() = r.val; 97$e() = r.err; 98', 99 Doc =>'Renormalized Gauss hypergeometric function 2F1[a,b,c,x] / Gamma[c]' 100 ); 101 102pp_def('gsl_sf_hyperg_2F1_conj_renorm', 103 GenericTypes => [D], 104 OtherPars =>'double a; double b; double c', 105 Pars=>'double x(); double [o]y(); double [o]e()', 106 Code =>' 107gsl_sf_result r; 108GSLERR(gsl_sf_hyperg_2F1_conj_renorm_e,($COMP(a),$COMP(b), $COMP(c),$x(),&r)) 109$y() = r.val; 110$e() = r.err; 111', 112 Doc =>'Renormalized Gauss hypergeometric function 2F1[aR + I aI, aR - I aI, c, x] / Gamma[c]' 113 ); 114 115pp_def('gsl_sf_hyperg_2F0', 116 GenericTypes => [D], 117 OtherPars =>'double a; double b', 118 Pars=>'double x(); double [o]y(); double [o]e()', 119 Code =>' 120gsl_sf_result r; 121GSLERR(gsl_sf_hyperg_2F0_e,($COMP(a),$COMP(b), $x(),&r)) 122$y() = r.val; 123$e() = r.err; 124', 125 Doc =>'Mysterious hypergeometric function. The series representation is a divergent hypergeometric series. However, for x < 0 we have 2F0(a,b,x) = (-1/x)^a U(a,1+a-b,-1/x)' 126 ); 127 128 129pp_addpm({At=>Bot},<<'EOD'); 130 131=head1 AUTHOR 132 133This file copyright (C) 1999 Christian Pellegrin <chri@infis.univ.trieste.it> 134All rights reserved. There 135is no warranty. You are allowed to redistribute this software / 136documentation under certain conditions. For details, see the file 137COPYING in the PDL distribution. If this file is separated from the 138PDL distribution, the copyright notice should be included in the file. 139 140The GSL SF modules were written by G. Jungman. 141 142=cut 143 144 145EOD 146 147pp_add_boot('gsl_set_error_handler_off(); 148'); 149 150 151pp_done(); 152