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