1## Copyright (C) 2016, 2017 Julien Bect <jbect@users.sourceforge.net>
2## Copyright (C) 2016 Susi Lehtola
3## Copyright (C) 2004 Teemu Ikonen <tpikonen@pcu.helsinki.fi>
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 2 of the License, or
8## (at your option) any later version.
9##
10## This program is distributed in the hope that it will be useful,
11## but WITHOUT ANY WARRANTY; without even the implied warranty of
12## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13## GNU 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, see <http://www.gnu.org/licenses/>.
17
18RT="./replace_template.sh"
19
20cp gsl_sf.header.cc gsl_sf.cc
21
22# double to double ###################################################
23
24export octave_name=gsl_sf_clausen
25export    funcname=gsl_sf_clausen_e
26cat << \EOF > docstring.txt
27The Clausen function is defined by the following integral,
28
29Cl_2(x) = - \int_0^x dt \log(2 \sin(t/2))
30
31It is related to the dilogarithm by Cl_2(\theta) = \Im Li_2(\exp(i \theta)).
32EOF
33${RT} D_D >> gsl_sf.cc
34
35## Deprecated naming scheme
36export octave_name=clausen
37export    funcname=gsl_sf_clausen_e
38${RT} D_D >> gsl_sf.cc
39
40######################################################################
41
42export octave_name=gsl_sf_dawson
43export    funcname=gsl_sf_dawson_e
44cat << \EOF > docstring.txt
45The Dawson integral is defined by \exp(-x^2) \int_0^x dt \exp(t^2).
46A table of Dawson integral can be found in Abramowitz & Stegun, Table 7.5.
47EOF
48${RT} D_D >> gsl_sf.cc
49
50## Deprecated naming scheme
51export octave_name=dawson
52export    funcname=gsl_sf_dawson_e
53${RT} D_D >> gsl_sf.cc
54
55######################################################################
56
57export octave_name=gsl_sf_debye_1
58export    funcname=gsl_sf_debye_1_e
59cat << \EOF > docstring.txt
60The Debye functions are defined by the integral
61
62D_n(x) = n/x^n \int_0^x dt (t^n/(e^t - 1)).
63
64For further information see Abramowitz & Stegun, Section 27.1.
65EOF
66${RT} D_D >> gsl_sf.cc
67
68## Deprecated naming scheme
69export octave_name=debye_1
70export    funcname=gsl_sf_debye_1_e
71${RT} D_D >> gsl_sf.cc
72
73######################################################################
74
75export octave_name=gsl_sf_debye_2
76export    funcname=gsl_sf_debye_2_e
77cat << \EOF > docstring.txt
78The Debye functions are defined by the integral
79
80D_n(x) = n/x^n \int_0^x dt (t^n/(e^t - 1)).
81
82For further information see Abramowitz & Stegun, Section 27.1.
83EOF
84${RT} D_D >> gsl_sf.cc
85
86## Deprecated naming scheme
87export octave_name=debye_2
88export    funcname=gsl_sf_debye_2_e
89${RT} D_D >> gsl_sf.cc
90
91######################################################################
92
93export octave_name=gsl_sf_debye_3
94export    funcname=gsl_sf_debye_3_e
95cat << \EOF > docstring.txt
96The Debye functions are defined by the integral
97
98D_n(x) = n/x^n \int_0^x dt (t^n/(e^t - 1)).
99
100For further information see Abramowitz & Stegun, Section 27.1.
101EOF
102${RT} D_D >> gsl_sf.cc
103
104## Deprecated naming scheme
105export octave_name=debye_3
106export    funcname=gsl_sf_debye_3_e
107${RT} D_D >> gsl_sf.cc
108
109######################################################################
110
111export octave_name=gsl_sf_debye_4
112export    funcname=gsl_sf_debye_4_e
113cat << \EOF > docstring.txt
114The Debye functions are defined by the integral
115
116D_n(x) = n/x^n \int_0^x dt (t^n/(e^t - 1)).
117
118For further information see Abramowitz & Stegun, Section 27.1.
119EOF
120${RT} D_D >> gsl_sf.cc
121
122## Deprecated naming scheme
123export octave_name=debye_4
124export    funcname=gsl_sf_debye_4_e
125${RT} D_D >> gsl_sf.cc
126
127######################################################################
128
129export octave_name=gsl_sf_debye_5
130export    funcname=gsl_sf_debye_5_e
131cat << \EOF > docstring.txt
132The Debye functions are defined by the integral
133
134D_n(x) = n/x^n \int_0^x dt (t^n/(e^t - 1)).
135
136For further information see Abramowitz & Stegun, Section 27.1.
137EOF
138${RT} D_D >> gsl_sf.cc
139
140######################################################################
141
142export octave_name=gsl_sf_debye_6
143export    funcname=gsl_sf_debye_6_e
144cat << \EOF > docstring.txt
145The Debye functions are defined by the integral
146
147D_n(x) = n/x^n \int_0^x dt (t^n/(e^t - 1)).
148
149For further information see Abramowitz & Stegun, Section 27.1.
150EOF
151${RT} D_D >> gsl_sf.cc
152
153######################################################################
154
155export octave_name=gsl_sf_dilog
156export    funcname=gsl_sf_dilog_e
157cat << \EOF > docstring.txt
158Computes the dilogarithm for a real argument.
159In Lewins notation this is Li_2(x), the real part of the
160dilogarithm of a real x. It is defined by the integral
161representation
162
163 Li_2(x) = - \Re \int_0^x ds \log(1-s) / s.
164
165Note that \Im(Li_2(x)) = 0 for x <= 1, and -\pi\log(x)
166for x > 1.
167
168Note that Abramowitz & Stegun refer to the Spence integral
169S(x)=Li_2(1-x) as the dilogarithm rather than Li_2(x).
170EOF
171${RT} D_D >> gsl_sf.cc
172
173######################################################################
174
175export octave_name=gsl_sf_erf
176export    funcname=gsl_sf_erf_e
177cat << \EOF > docstring.txt
178Computes the error function
179erf(x) = (2/\sqrt(\pi)) \int_0^x dt \exp(-t^2).
180EOF
181${RT} D_D >> gsl_sf.cc
182
183## Deprecated naming scheme
184export octave_name=erf_gsl
185export    funcname=gsl_sf_erf_e
186${RT} D_D >> gsl_sf.cc
187
188######################################################################
189
190export octave_name=gsl_sf_erfc
191export    funcname=gsl_sf_erfc_e
192cat << \EOF > docstring.txt
193Computes the complementary error function
194erfc(x) = 1 - erf(x) = (2/\sqrt(\pi)) \int_x^\infty \exp(-t^2).
195EOF
196${RT} D_D >> gsl_sf.cc
197
198## Deprecated naming scheme
199export octave_name=erfc_gsl
200export    funcname=gsl_sf_erfc_e
201${RT} D_D >> gsl_sf.cc
202
203######################################################################
204
205export octave_name=gsl_sf_log_erfc
206export    funcname=gsl_sf_log_erfc_e
207cat << \EOF > docstring.txt
208Computes the logarithm of the complementary error
209function \log(\erfc(x)).
210EOF
211${RT} D_D >> gsl_sf.cc
212
213## Deprecated naming scheme
214export octave_name=log_erfc
215export    funcname=gsl_sf_log_erfc_e
216${RT} D_D >> gsl_sf.cc
217
218######################################################################
219
220export octave_name=gsl_sf_erf_Z
221export    funcname=gsl_sf_erf_Z_e
222cat << \EOF > docstring.txt
223Computes the Gaussian probability function
224Z(x) = (1/(2\pi)) \exp(-x^2/2).
225EOF
226${RT} D_D >> gsl_sf.cc
227
228## Deprecated naming scheme
229export octave_name=erf_Z
230export    funcname=gsl_sf_erf_Z_e
231${RT} D_D >> gsl_sf.cc
232
233######################################################################
234
235export octave_name=gsl_sf_erf_Q
236export    funcname=gsl_sf_erf_Q_e
237cat << \EOF > docstring.txt
238Computes the upper tail of the Gaussian probability
239function  Q(x) = (1/(2\pi)) \int_x^\infty dt \exp(-t^2/2).
240EOF
241${RT} D_D >> gsl_sf.cc
242
243## Deprecated naming scheme
244export octave_name=erf_Q
245export    funcname=gsl_sf_erf_Q_e
246${RT} D_D >> gsl_sf.cc
247
248######################################################################
249
250export octave_name=gsl_sf_hazard
251export    funcname=gsl_sf_hazard_e
252cat << \EOF > docstring.txt
253The hazard function for the normal distrbution, also known as the
254inverse Mill\'s ratio, is defined as
255h(x) = Z(x)/Q(x) = \sqrt@{2/\pi \exp(-x^2 / 2) / \erfc(x/\sqrt 2)@}.
256It decreases rapidly as x approaches -\infty and asymptotes to
257h(x) \sim x as x approaches +\infty.
258EOF
259${RT} D_D >> gsl_sf.cc
260
261## Deprecated naming scheme
262export octave_name=hazard
263export    funcname=gsl_sf_hazard_e
264${RT} D_D >> gsl_sf.cc
265
266######################################################################
267
268export octave_name=gsl_sf_expm1
269export    funcname=gsl_sf_expm1_e
270cat << \EOF > docstring.txt
271Computes the quantity \exp(x)-1 using an algorithm that
272is accurate for small x.
273EOF
274${RT} D_D >> gsl_sf.cc
275
276## Deprecated naming scheme
277export octave_name=expm1
278export    funcname=gsl_sf_expm1_e
279${RT} D_D >> gsl_sf.cc
280
281######################################################################
282
283export octave_name=gsl_sf_exprel
284export    funcname=gsl_sf_exprel_e
285cat << \EOF > docstring.txt
286Computes the quantity (\exp(x)-1)/x using an algorithm
287that is accurate for small x. For small x the algorithm is based on
288the expansion (\exp(x)-1)/x = 1 + x/2 + x^2/(2*3) + x^3/(2*3*4) + \dots.
289EOF
290${RT} D_D >> gsl_sf.cc
291
292## Deprecated naming scheme
293export octave_name=exprel
294export    funcname=gsl_sf_exprel_e
295${RT} D_D >> gsl_sf.cc
296
297######################################################################
298
299export octave_name=gsl_sf_exprel_2
300export    funcname=gsl_sf_exprel_2_e
301cat << \EOF > docstring.txt
302Computes the quantity 2(\exp(x)-1-x)/x^2 using an
303algorithm that is accurate for small x. For small x the algorithm is
304based on the expansion
3052(\exp(x)-1-x)/x^2 = 1 + x/3 + x^2/(3*4) + x^3/(3*4*5) + \dots.
306EOF
307${RT} D_D >> gsl_sf.cc
308
309## Deprecated naming scheme
310export octave_name=exprel_2
311export    funcname=gsl_sf_exprel_2_e
312${RT} D_D >> gsl_sf.cc
313
314######################################################################
315
316export octave_name=gsl_sf_expint_E1
317export    funcname=gsl_sf_expint_E1_e
318cat << \EOF > docstring.txt
319Computes the exponential integral E_1(x),
320
321E_1(x) := Re \int_1^\infty dt \exp(-xt)/t.
322EOF
323${RT} D_D >> gsl_sf.cc
324
325## Deprecated naming scheme
326export octave_name=expint_E1
327export    funcname=gsl_sf_expint_E1_e
328${RT} D_D >> gsl_sf.cc
329
330######################################################################
331
332export octave_name=gsl_sf_expint_E2
333export    funcname=gsl_sf_expint_E2_e
334cat << \EOF > docstring.txt
335Computes the second-order exponential integral E_2(x),
336
337E_2(x) := \Re \int_1^\infty dt \exp(-xt)/t^2.
338EOF
339${RT} D_D >> gsl_sf.cc
340
341## Deprecated naming scheme
342export octave_name=expint_E2
343export    funcname=gsl_sf_expint_E2_e
344${RT} D_D >> gsl_sf.cc
345
346######################################################################
347
348export octave_name=gsl_sf_expint_Ei
349export    funcname=gsl_sf_expint_Ei_e
350cat << \EOF > docstring.txt
351Computes the exponential integral E_i(x),
352
353Ei(x) := - PV(\int_@{-x@}^\infty dt \exp(-t)/t)
354
355where PV denotes the principal value of the integral.
356EOF
357${RT} D_D >> gsl_sf.cc
358
359## Deprecated naming scheme
360export octave_name=expint_Ei
361export    funcname=gsl_sf_expint_Ei_e
362${RT} D_D >> gsl_sf.cc
363
364######################################################################
365
366export octave_name=gsl_sf_Shi
367export    funcname=gsl_sf_Shi_e
368cat << \EOF > docstring.txt
369Computes the integral Shi(x) = \int_0^x dt \sinh(t)/t.
370EOF
371${RT} D_D >> gsl_sf.cc
372
373## Deprecated naming scheme
374export octave_name=Shi
375export    funcname=gsl_sf_Shi_e
376${RT} D_D >> gsl_sf.cc
377
378######################################################################
379
380export octave_name=gsl_sf_Chi
381export    funcname=gsl_sf_Chi_e
382cat << \EOF > docstring.txt
383Computes the integral
384
385Chi(x) := Re[ \gamma_E + \log(x) + \int_0^x dt (\cosh[t]-1)/t] ,
386
387where \gamma_E is the Euler constant.
388EOF
389${RT} D_D >> gsl_sf.cc
390
391## Deprecated naming scheme
392export octave_name=Chi
393export    funcname=gsl_sf_Chi_e
394${RT} D_D >> gsl_sf.cc
395
396######################################################################
397
398export octave_name=gsl_sf_expint_3
399export    funcname=gsl_sf_expint_3_e
400cat << \EOF > docstring.txt
401Computes the exponential integral
402Ei_3(x) = \int_0^x dt \exp(-t^3) for x >= 0.
403EOF
404${RT} D_D >> gsl_sf.cc
405
406## Deprecated naming scheme
407export octave_name=expint_3
408export    funcname=gsl_sf_expint_3_e
409${RT} D_D >> gsl_sf.cc
410
411######################################################################
412
413export octave_name=gsl_sf_Si
414export    funcname=gsl_sf_Si_e
415cat << \EOF > docstring.txt
416Computes the Sine integral Si(x) = \int_0^x dt \sin(t)/t.
417EOF
418${RT} D_D >> gsl_sf.cc
419
420## Deprecated naming scheme
421export octave_name=Si
422export    funcname=gsl_sf_Si_e
423${RT} D_D >> gsl_sf.cc
424
425######################################################################
426
427export octave_name=gsl_sf_Ci
428export    funcname=gsl_sf_Ci_e
429cat << \EOF > docstring.txt
430Computes the Cosine integral
431Ci(x) = -\int_x^\infty dt \cos(t)/t for x > 0.
432EOF
433${RT} D_D >> gsl_sf.cc
434
435## Deprecated naming scheme
436export octave_name=Ci
437export    funcname=gsl_sf_Ci_e
438${RT} D_D >> gsl_sf.cc
439
440######################################################################
441
442export octave_name=gsl_sf_atanint
443export    funcname=gsl_sf_atanint_e
444cat << \EOF > docstring.txt
445Computes the Arctangent integral
446AtanInt(x) = \int_0^x dt \arctan(t)/t.
447EOF
448${RT} D_D >> gsl_sf.cc
449
450## Deprecated naming scheme
451export octave_name=atanint
452export    funcname=gsl_sf_atanint_e
453${RT} D_D >> gsl_sf.cc
454
455######################################################################
456
457export octave_name=gsl_sf_fermi_dirac_mhalf
458export    funcname=gsl_sf_fermi_dirac_mhalf_e
459cat << \EOF > docstring.txt
460Computes the complete Fermi-Dirac integral F_@{-1/2@}(x).
461EOF
462${RT} D_D >> gsl_sf.cc
463
464## Deprecated naming scheme
465export octave_name=fermi_dirac_mhalf
466export    funcname=gsl_sf_fermi_dirac_mhalf_e
467${RT} D_D >> gsl_sf.cc
468
469######################################################################
470
471export octave_name=gsl_sf_fermi_dirac_half
472export    funcname=gsl_sf_fermi_dirac_half_e
473cat << \EOF > docstring.txt
474Computes the complete Fermi-Dirac integral F_@{1/2@}(x).
475EOF
476${RT} D_D >> gsl_sf.cc
477
478## Deprecated naming scheme
479export octave_name=fermi_dirac_half
480export    funcname=gsl_sf_fermi_dirac_half_e
481${RT} D_D >> gsl_sf.cc
482
483######################################################################
484
485export octave_name=gsm_sf_fermi_dirac_3half
486export    funcname=gsl_sf_fermi_dirac_3half_e
487cat << \EOF > docstring.txt
488Computes the complete Fermi-Dirac integral F_@{3/2@}(x).
489EOF
490${RT} D_D >> gsl_sf.cc
491
492## Deprecated naming scheme
493export octave_name=fermi_dirac_3half
494export    funcname=gsl_sf_fermi_dirac_3half_e
495${RT} D_D >> gsl_sf.cc
496
497######################################################################
498
499export octave_name=gsl_sf_gamma
500export    funcname=gsl_sf_gamma_e
501cat << \EOF > docstring.txt
502Computes the Gamma function \Gamma(x), subject to x not
503being a negative integer. The function is computed using the real
504Lanczos method. The maximum value of x such that \Gamma(x) is not
505considered an overflow is given by the macro GSL_SF_GAMMA_XMAX and is 171.0.
506EOF
507${RT} D_D >> gsl_sf.cc
508
509## Deprecated naming scheme
510export octave_name=gamma_gsl
511export    funcname=gsl_sf_gamma_e
512${RT} D_D >> gsl_sf.cc
513
514######################################################################
515
516export octave_name=gsl_sf_lngamma
517export    funcname=gsl_sf_lngamma_e
518cat << \EOF > docstring.txt
519Computes the logarithm of the Gamma function,
520\log(\Gamma(x)), subject to x not a being negative integer.
521For x<0 the real part of \log(\Gamma(x)) is returned, which is
522equivalent to \log(|\Gamma(x)|). The function is computed using
523the real Lanczos method.
524EOF
525${RT} D_D >> gsl_sf.cc
526
527## Deprecated naming scheme
528export octave_name=lngamma_gsl
529export    funcname=gsl_sf_lngamma_e
530${RT} D_D >> gsl_sf.cc
531
532######################################################################
533
534export octave_name=gsl_sf_gammastar
535export    funcname=gsl_sf_gammastar_e
536cat << \EOF > docstring.txt
537Computes the regulated Gamma Function \Gamma^*(x)
538for x > 0. The regulated gamma function is given by,
539
540\Gamma^*(x) = \Gamma(x)/(\sqrt@{2\pi@} x^@{(x-1/2)@} \exp(-x))
541            = (1 + (1/12x) + ...)  for x \to \infty
542
543and is a useful suggestion of Temme.
544EOF
545${RT} D_D >> gsl_sf.cc
546
547## Deprecated naming scheme
548export octave_name=gammastar
549export    funcname=gsl_sf_gammastar_e
550${RT} D_D >> gsl_sf.cc
551
552######################################################################
553
554export octave_name=gsl_sf_gammainv
555export    funcname=gsl_sf_gammainv_e
556cat << \EOF > docstring.txt
557Computes the reciprocal of the gamma function, 1/\Gamma(x) using the real Lanczos method.
558EOF
559${RT} D_D >> gsl_sf.cc
560
561## Deprecated naming scheme
562export octave_name=gammainv_gsl
563export    funcname=gsl_sf_gammainv_e
564${RT} D_D >> gsl_sf.cc
565
566######################################################################
567
568export octave_name=gsl_sf_lambert_W0
569export    funcname=gsl_sf_lambert_W0_e
570cat << \EOF > docstring.txt
571These compute the principal branch of the Lambert W function, W_0(x).
572
573Lambert\'s W functions, W(x), are defined to be solutions of the
574export octave_name=gammastar
575export    funcname=gsl_sf_gammastar_e
576equation W(x) \exp(W(x)) = x. This function has multiple branches
577for x < 0; however, it has only two real-valued branches.
578We define W_0(x) to be the principal branch, where W > -1 for x < 0,
579and W_@{-1@}(x) to be the other real branch, where W < -1 for x < 0.
580EOF
581${RT} D_D >> gsl_sf.cc
582
583## Deprecated naming scheme
584export octave_name=lambert_W0
585export    funcname=gsl_sf_lambert_W0_e
586${RT} D_D >> gsl_sf.cc
587
588######################################################################
589
590export octave_name=gsl_sf_lambert_Wm1
591export    funcname=gsl_sf_lambert_Wm1_e
592cat << \EOF > docstring.txt
593These compute the secondary real-valued branch of the Lambert
594W function, W_@{-1@}(x).
595
596Lambert\'s W functions, W(x), are defined to be solutions of the
597equation W(x) \exp(W(x)) = x. This function has multiple branches
598for x < 0; however, it has only two real-valued branches.
599We define W_0(x) to be the principal branch, where W > -1 for x < 0,
600and W_@{-1@}(x) to be the other real branch, where W < -1 for x < 0.
601EOF
602${RT} D_D >> gsl_sf.cc
603
604## Deprecated naming scheme
605export octave_name=lambert_Wm1
606export    funcname=gsl_sf_lambert_Wm1_e
607${RT} D_D >> gsl_sf.cc
608
609######################################################################
610
611export octave_name=gsl_sf_log_1plusx
612export    funcname=gsl_sf_log_1plusx_e
613cat << \EOF > docstring.txt
614Computes \log(1 + x) for x > -1 using an algorithm that
615is accurate for small x.
616EOF
617${RT} D_D >> gsl_sf.cc
618
619## Deprecated naming scheme
620export octave_name=log_1plusx
621export    funcname=gsl_sf_log_1plusx_e
622${RT} D_D >> gsl_sf.cc
623
624######################################################################
625
626export octave_name=gsl_sf_log_1plusx_mx
627export    funcname=gsl_sf_log_1plusx_mx_e
628cat << \EOF > docstring.txt
629Computes \log(1 + x) - x for x > -1 using an algorithm
630that is accurate for small x.
631EOF
632${RT} D_D >> gsl_sf.cc
633
634## Deprecated naming scheme
635export octave_name=log_1plusx_mx
636export    funcname=gsl_sf_log_1plusx_mx_e
637${RT} D_D >> gsl_sf.cc
638
639######################################################################
640
641export octave_name=gsl_sf_psi
642export    funcname=gsl_sf_psi_e
643cat << \EOF > docstring.txt
644Computes the digamma function \psi(x) for general x,
645x \ne 0.
646EOF
647${RT} D_D >> gsl_sf.cc
648
649## Deprecated naming scheme
650export octave_name=psi
651export    funcname=gsl_sf_psi_e
652${RT} D_D >> gsl_sf.cc
653
654######################################################################
655
656export octave_name=gsl_sf_psi_1piy
657export    funcname=gsl_sf_psi_1piy_e
658cat << \EOF > docstring.txt
659Computes the real part of the digamma function on
660the line 1+i y, Re[\psi(1 + i y)].
661EOF
662${RT} D_D >> gsl_sf.cc
663
664## Deprecated naming scheme
665export octave_name=psi_1piy
666export    funcname=gsl_sf_psi_1piy_e
667${RT} D_D >> gsl_sf.cc
668
669######################################################################
670
671export octave_name=gsl_sf_synchrotron_1
672export    funcname=gsl_sf_synchrotron_1_e
673cat << \EOF > docstring.txt
674Computes the first synchrotron function
675x \int_x^\infty dt K_@{5/3@}(t) for x >= 0.
676EOF
677${RT} D_D >> gsl_sf.cc
678
679## Deprecated naming scheme
680export octave_name=synchrotron_1
681export    funcname=gsl_sf_synchrotron_1_e
682${RT} D_D >> gsl_sf.cc
683
684######################################################################
685
686export octave_name=gsl_sf_synchrotron_2
687export    funcname=gsl_sf_synchrotron_2_e
688cat << \EOF > docstring.txt
689Computes the second synchrotron function
690x K_@{2/3@}(x) for x >= 0.
691EOF
692${RT} D_D >> gsl_sf.cc
693
694## Deprecated naming scheme
695export octave_name=synchrotron_2
696export    funcname=gsl_sf_synchrotron_2_e
697${RT} D_D >> gsl_sf.cc
698
699######################################################################
700
701export octave_name=gsl_sf_transport_2
702export    funcname=gsl_sf_transport_2_e
703cat << \EOF > docstring.txt
704Computes the transport function J(2,x).
705
706The transport functions J(n,x) are defined by the integral
707representations J(n,x) := \int_0^x dt t^n e^t /(e^t - 1)^2.
708EOF
709${RT} D_D >> gsl_sf.cc
710
711## Deprecated naming scheme
712export octave_name=transport_2
713export    funcname=gsl_sf_transport_2_e
714${RT} D_D >> gsl_sf.cc
715
716######################################################################
717
718export octave_name=gsl_sf_transport_3
719export    funcname=gsl_sf_transport_3_e
720cat << \EOF > docstring.txt
721Computes the transport function J(3,x).
722
723The transport functions J(n,x) are defined by the integral
724representations J(n,x) := \int_0^x dt t^n e^t /(e^t - 1)^2.
725EOF
726${RT} D_D >> gsl_sf.cc
727
728## Deprecated naming scheme
729export octave_name=transport_3
730export    funcname=gsl_sf_transport_3_e
731${RT} D_D >> gsl_sf.cc
732
733######################################################################
734
735export octave_name=gsl_sf_transport_4
736export    funcname=gsl_sf_transport_4_e
737cat << \EOF > docstring.txt
738Computes the transport function J(4,x).
739
740The transport functions J(n,x) are defined by the integral
741representations J(n,x) := \int_0^x dt t^n e^t /(e^t - 1)^2.
742EOF
743${RT} D_D >> gsl_sf.cc
744
745## Deprecated naming scheme
746export octave_name=transport_4
747export    funcname=gsl_sf_transport_4_e
748${RT} D_D >> gsl_sf.cc
749
750######################################################################
751
752export octave_name=gsl_sf_transport_5
753export    funcname=gsl_sf_transport_5_e
754cat << \EOF > docstring.txt
755Computes the transport function J(5,x).
756
757The transport functions J(n,x) are defined by the integral
758representations J(n,x) := \int_0^x dt t^n e^t /(e^t - 1)^2.
759EOF
760${RT} D_D >> gsl_sf.cc
761
762## Deprecated naming scheme
763export octave_name=transport_5
764export    funcname=gsl_sf_transport_5_e
765${RT} D_D >> gsl_sf.cc
766
767######################################################################
768
769export octave_name=gsl_sf_sinc
770export    funcname=gsl_sf_sinc_e
771cat << \EOF > docstring.txt
772Computes \sinc(x) = \sin(\pi x) / (\pi x) for any value of x.
773EOF
774${RT} D_D >> gsl_sf.cc
775
776## Deprecated naming scheme
777export octave_name=sinc_gsl
778export    funcname=gsl_sf_sinc_e
779${RT} D_D >> gsl_sf.cc
780
781######################################################################
782
783export octave_name=gsl_sf_lnsinh
784export    funcname=gsl_sf_lnsinh_e
785cat << \EOF > docstring.txt
786Computes \log(\sinh(x)) for x > 0.
787EOF
788${RT} D_D >> gsl_sf.cc
789
790## Deprecated naming scheme
791export octave_name=lnsinh
792export    funcname=gsl_sf_lnsinh_e
793${RT} D_D >> gsl_sf.cc
794
795######################################################################
796
797export octave_name=gsl_sf_lncosh
798export    funcname=gsl_sf_lncosh_e
799cat << \EOF > docstring.txt
800Computes \log(\cosh(x)) for any x.
801EOF
802${RT} D_D >> gsl_sf.cc
803
804## Deprecated naming scheme
805export octave_name=lncosh
806export    funcname=gsl_sf_lncosh_e
807${RT} D_D >> gsl_sf.cc
808
809
810# (int, double) to double ############################################
811
812export octave_name=gsl_sf_bessel_Jn
813export    funcname=gsl_sf_bessel_Jn_e
814cat << \EOF > docstring.txt
815Computes the regular cylindrical Bessel function of
816order n, J_n(x).
817EOF
818${RT} ID_D >> gsl_sf.cc
819
820## Deprecated naming scheme
821export octave_name=bessel_Jn
822export    funcname=gsl_sf_bessel_Jn_e
823${RT} ID_D >> gsl_sf.cc
824
825######################################################################
826
827export octave_name=gsl_sf_bessel_Yn
828export    funcname=gsl_sf_bessel_Yn_e
829cat << \EOF > docstring.txt
830Computes the irregular cylindrical Bessel function of
831order n, Y_n(x), for x>0.
832EOF
833${RT} ID_D >> gsl_sf.cc
834
835## Deprecated naming scheme
836export octave_name=bessel_Yn
837export    funcname=gsl_sf_bessel_Yn_e
838${RT} ID_D >> gsl_sf.cc
839
840######################################################################
841
842export octave_name=gsl_sf_bessel_In
843export    funcname=gsl_sf_bessel_In_e
844cat << \EOF > docstring.txt
845Computes the regular modified cylindrical Bessel
846function of order n, I_n(x).
847EOF
848${RT} ID_D >> gsl_sf.cc
849
850## Deprecated naming scheme
851export octave_name=bessel_In
852export    funcname=gsl_sf_bessel_In_e
853${RT} ID_D >> gsl_sf.cc
854
855######################################################################
856
857export octave_name=gsl_sf_bessel_In_scaled
858export    funcname=gsl_sf_bessel_In_scaled_e
859cat << \EOF > docstring.txt
860Computes the scaled regular modified cylindrical Bessel
861function of order n, \exp(-|x|) I_n(x)
862EOF
863${RT} ID_D >> gsl_sf.cc
864
865## Deprecated naming scheme
866export octave_name=bessel_In_scaled
867export    funcname=gsl_sf_bessel_In_scaled_e
868${RT} ID_D >> gsl_sf.cc
869
870######################################################################
871
872export octave_name=gsl_sf_bessel_Kn
873export    funcname=gsl_sf_bessel_Kn_e
874cat << \EOF > docstring.txt
875Computes the irregular modified cylindrical Bessel
876function of order n, K_n(x), for x > 0.
877EOF
878${RT} ID_D >> gsl_sf.cc
879
880## Deprecated naming scheme
881export octave_name=bessel_Kn
882export    funcname=gsl_sf_bessel_Kn_e
883${RT} ID_D >> gsl_sf.cc
884
885######################################################################
886
887export octave_name=gsl_sf_bessel_Kn_scaled
888export    funcname=gsl_sf_bessel_Kn_scaled_e
889cat << \EOF > docstring.txt
890
891EOF
892${RT} ID_D >> gsl_sf.cc
893
894## Deprecated naming scheme
895export octave_name=bessel_Kn_scaled
896export    funcname=gsl_sf_bessel_Kn_scaled_e
897${RT} ID_D >> gsl_sf.cc
898
899######################################################################
900
901export octave_name=gsl_sf_bessel_jl
902export    funcname=gsl_sf_bessel_jl_e
903cat << \EOF > docstring.txt
904Computes the regular spherical Bessel function of
905order l, j_l(x), for l >= 0 and x >= 0.
906EOF
907${RT} ID_D >> gsl_sf.cc
908
909## Deprecated naming scheme
910export octave_name=bessel_jl
911export    funcname=gsl_sf_bessel_jl_e
912${RT} ID_D >> gsl_sf.cc
913
914######################################################################
915
916export octave_name=gsl_sf_bessel_yl
917export    funcname=gsl_sf_bessel_yl_e
918cat << \EOF > docstring.txt
919Computes the irregular spherical Bessel function of
920order l, y_l(x), for l >= 0.
921EOF
922${RT} ID_D >> gsl_sf.cc
923
924## Deprecated naming scheme
925export octave_name=bessel_yl
926export    funcname=gsl_sf_bessel_yl_e
927${RT} ID_D >> gsl_sf.cc
928
929######################################################################
930
931export octave_name=gsl_sf_bessel_il_scaled
932export    funcname=gsl_sf_bessel_il_scaled_e
933cat << \EOF > docstring.txt
934Computes the scaled regular modified spherical Bessel
935function of order l, \exp(-|x|) i_l(x)
936EOF
937${RT} ID_D >> gsl_sf.cc
938
939## Deprecated naming scheme
940export octave_name=bessel_il_scaled
941export    funcname=gsl_sf_bessel_il_scaled_e
942${RT} ID_D >> gsl_sf.cc
943
944######################################################################
945
946export octave_name=gsl_sf_bessel_kl_scaled
947export    funcname=gsl_sf_bessel_kl_scaled_e
948cat << \EOF > docstring.txt
949Computes the scaled irregular modified spherical Bessel
950function of order l, \exp(x) k_l(x), for x>0.
951EOF
952${RT} ID_D >> gsl_sf.cc
953
954## Deprecated naming scheme
955export octave_name=bessel_kl_scaled
956export    funcname=gsl_sf_bessel_kl_scaled_e
957${RT} ID_D >> gsl_sf.cc
958
959######################################################################
960
961export octave_name=gsl_sf_exprel_n
962export    funcname=gsl_sf_exprel_n_e
963cat << \EOF > docstring.txt
964Computes the N-relative exponential, which is the n-th
965generalization of the functions gsl_sf_exprel and gsl_sf_exprel2. The
966N-relative exponential is given by,
967
968exprel_N(x) = N!/x^N (\exp(x) - \sum_@{k=0@}^@{N-1@} x^k/k!)
969            = 1 + x/(N+1) + x^2/((N+1)(N+2)) + ...
970            = 1F1 (1,1+N,x)
971EOF
972${RT} ID_D >> gsl_sf.cc
973
974## Deprecated naming scheme
975export octave_name=exprel_n
976export    funcname=gsl_sf_exprel_n_e
977${RT} ID_D >> gsl_sf.cc
978
979######################################################################
980
981export octave_name=gsl_sf_fermi_dirac_int
982export    funcname=gsl_sf_fermi_dirac_int_e
983cat << \EOF > docstring.txt
984Computes the complete Fermi-Dirac integral with an
985integer index of j, F_j(x) = (1/\Gamma(j+1)) \int_0^\infty dt (t^j
986/(\exp(t-x)+1)).
987EOF
988${RT} ID_D >> gsl_sf.cc
989
990## Deprecated naming scheme
991export octave_name=fermi_dirac_int
992export    funcname=gsl_sf_fermi_dirac_int_e
993${RT} ID_D >> gsl_sf.cc
994
995######################################################################
996
997export octave_name=gsl_sf_taylorcoeff
998export    funcname=gsl_sf_taylorcoeff_e
999cat << \EOF > docstring.txt
1000Computes the Taylor coefficient x^n / n!
1001for x >= 0, n >= 0.
1002EOF
1003${RT} ID_D >> gsl_sf.cc
1004
1005## Deprecated naming scheme
1006export octave_name=taylorcoeff
1007export    funcname=gsl_sf_taylorcoeff_e
1008${RT} ID_D >> gsl_sf.cc
1009
1010######################################################################
1011
1012export octave_name=gsl_sf_legendre_Pl
1013export    funcname=gsl_sf_legendre_Pl_e
1014cat << \EOF > docstring.txt
1015These functions evaluate the Legendre polynomial P_l(x) for a specific
1016value of l, x subject to l >= 0, |x| <= 1
1017EOF
1018${RT} ID_D >> gsl_sf.cc
1019
1020## Deprecated naming scheme
1021export octave_name=legendre_Pl
1022export    funcname=gsl_sf_legendre_Pl_e
1023${RT} ID_D >> gsl_sf.cc
1024
1025######################################################################
1026
1027export octave_name=gsl_sf_legendre_Ql
1028export    funcname=gsl_sf_legendre_Ql_e
1029cat << \EOF > docstring.txt
1030Computes the Legendre function Q_l(x) for x > -1, x != 1
1031and l >= 0.
1032EOF
1033${RT} ID_D >> gsl_sf.cc
1034
1035## Deprecated naming scheme
1036export octave_name=legendre_Ql
1037export    funcname=gsl_sf_legendre_Ql_e
1038${RT} ID_D >> gsl_sf.cc
1039
1040######################################################################
1041
1042export octave_name=gsl_sf_mathieu_a
1043export    funcname=gsl_sf_mathieu_a_e
1044cat << \EOF > docstring.txt
1045Computes the characteristic values a_n(q) of the
1046Mathieu function ce_n(q,x).
1047EOF
1048${RT} ID_D >> gsl_sf.cc
1049
1050######################################################################
1051
1052export octave_name=gsl_sf_mathieu_b
1053export    funcname=gsl_sf_mathieu_b_e
1054cat << \EOF > docstring.txt
1055Computes the characteristic values b_n(q) of the
1056Mathieu function se_n(q,x).
1057EOF
1058${RT} ID_D >> gsl_sf.cc
1059
1060######################################################################
1061
1062export octave_name=gsl_sf_psi_n
1063export    funcname=gsl_sf_psi_n_e
1064cat << \EOF > docstring.txt
1065Computes the polygamma function \psi^@{(m)@}(x)
1066for m >= 0, x > 0.
1067EOF
1068${RT} ID_D >> gsl_sf.cc
1069
1070## Deprecated naming scheme
1071export octave_name=psi_n
1072export    funcname=gsl_sf_psi_n_e
1073${RT} ID_D >> gsl_sf.cc
1074
1075
1076# (double, double) to double #########################################
1077
1078export octave_name=gsl_sf_bessel_Jnu
1079export    funcname=gsl_sf_bessel_Jnu_e
1080cat << \EOF > docstring.txt
1081Computes the regular cylindrical Bessel function of
1082fractional order nu, J_\nu(x).
1083EOF
1084${RT} DD_D >> gsl_sf.cc
1085
1086## Deprecated naming scheme
1087export octave_name=bessel_Jnu
1088export    funcname=gsl_sf_bessel_Jnu_e
1089${RT} DD_D >> gsl_sf.cc
1090
1091######################################################################
1092
1093export octave_name=gsl_sf_bessel_Ynu
1094export    funcname=gsl_sf_bessel_Ynu_e
1095cat << \EOF > docstring.txt
1096Computes the irregular cylindrical Bessel function of
1097fractional order nu, Y_\nu(x).
1098EOF
1099${RT} DD_D >> gsl_sf.cc
1100
1101## Deprecated naming scheme
1102export octave_name=bessel_Ynu
1103export    funcname=gsl_sf_bessel_Ynu_e
1104${RT} DD_D >> gsl_sf.cc
1105
1106######################################################################
1107
1108export octave_name=gsl_sf_bessel_Inu
1109export    funcname=gsl_sf_bessel_Inu_e
1110cat << \EOF > docstring.txt
1111Computes the regular modified Bessel function of
1112fractional order nu, I_\nu(x) for x>0, \nu>0.
1113EOF
1114${RT} DD_D >> gsl_sf.cc
1115
1116## Deprecated naming scheme
1117export octave_name=bessel_Inu
1118export    funcname=gsl_sf_bessel_Inu_e
1119${RT} DD_D >> gsl_sf.cc
1120
1121######################################################################
1122
1123export octave_name=gsl_sf_bessel_Inu_scaled
1124export    funcname=gsl_sf_bessel_Inu_scaled_e
1125cat << \EOF > docstring.txt
1126Computes the scaled regular modified Bessel function of
1127fractional order nu, \exp(-|x|)I_\nu(x) for x>0, \nu>0.
1128EOF
1129${RT} DD_D >> gsl_sf.cc
1130
1131## Deprecated naming scheme
1132export octave_name=bessel_Inu_scaled
1133export    funcname=gsl_sf_bessel_Inu_scaled_e
1134${RT} DD_D >> gsl_sf.cc
1135
1136######################################################################
1137
1138export octave_name=gsl_sf_bessel_Knu
1139export    funcname=gsl_sf_bessel_Knu_e
1140cat << \EOF > docstring.txt
1141Computes the irregular modified Bessel function of
1142fractional order nu, K_\nu(x) for x>0, \nu>0.
1143EOF
1144${RT} DD_D >> gsl_sf.cc
1145
1146## Deprecated naming scheme
1147export octave_name=bessel_Knu
1148export    funcname=gsl_sf_bessel_Knu_e
1149${RT} DD_D >> gsl_sf.cc
1150
1151######################################################################
1152
1153export octave_name=gsl_sf_bessel_lnKnu
1154export    funcname=gsl_sf_bessel_lnKnu_e
1155cat << \EOF > docstring.txt
1156Computes the logarithm of the irregular modified Bessel
1157function of fractional order nu, \ln(K_\nu(x)) for x>0, \nu>0.
1158EOF
1159${RT} DD_D >> gsl_sf.cc
1160
1161## Deprecated naming scheme
1162export octave_name=bessel_lnKnu
1163export    funcname=gsl_sf_bessel_lnKnu_e
1164${RT} DD_D >> gsl_sf.cc
1165
1166######################################################################
1167
1168export octave_name=gsl_sf_bessel_Knu_scaled
1169export    funcname=gsl_sf_bessel_Knu_scaled_e
1170cat << \EOF > docstring.txt
1171Computes the scaled irregular modified Bessel function
1172of fractional order nu, \exp(+|x|) K_\nu(x) for x>0, \nu>0.
1173EOF
1174${RT} DD_D >> gsl_sf.cc
1175
1176## Deprecated naming scheme
1177export octave_name=bessel_Knu_scaled
1178export    funcname=gsl_sf_bessel_Knu_scaled_e
1179${RT} DD_D >> gsl_sf.cc
1180
1181######################################################################
1182
1183export octave_name=gsl_sf_exp_mult
1184export    funcname=gsl_sf_exp_mult_e
1185cat << \EOF > docstring.txt
1186These routines exponentiate x and multiply by the factor y to return
1187the product y \exp(x).
1188EOF
1189${RT} DD_D >> gsl_sf.cc
1190
1191## Deprecated naming scheme
1192export octave_name=exp_mult
1193export    funcname=gsl_sf_exp_mult_e
1194${RT} DD_D >> gsl_sf.cc
1195
1196######################################################################
1197
1198export octave_name=gsl_sf_fermi_dirac_inc_0
1199export    funcname=gsl_sf_fermi_dirac_inc_0_e
1200cat << \EOF > docstring.txt
1201Computes the incomplete Fermi-Dirac integral with an
1202index of zero, F_0(x,b) = \ln(1 + e^@{b-x@}) - (b-x).
1203EOF
1204${RT} DD_D >> gsl_sf.cc
1205
1206## Deprecated naming scheme
1207export octave_name=fermi_dirac_inc_0
1208export    funcname=gsl_sf_fermi_dirac_inc_0_e
1209${RT} DD_D >> gsl_sf.cc
1210
1211######################################################################
1212
1213export octave_name=gsl_sf_poch
1214export    funcname=gsl_sf_poch_e
1215cat << \EOF > docstring.txt
1216Computes the Pochhammer symbol
1217
1218(a)_x := \Gamma(a + x)/\Gamma(a),
1219
1220subject to a and a+x not being negative integers. The Pochhammer
1221symbol is also known as the Apell symbol.
1222EOF
1223${RT} DD_D >> gsl_sf.cc
1224
1225## Deprecated naming scheme
1226export octave_name=poch
1227export    funcname=gsl_sf_poch_e
1228${RT} DD_D >> gsl_sf.cc
1229
1230######################################################################
1231
1232export octave_name=gsl_sf_lnpoch
1233export    funcname=gsl_sf_lnpoch_e
1234cat << \EOF > docstring.txt
1235Computes the logarithm of the Pochhammer symbol,
1236\log((a)_x) = \log(\Gamma(a + x)/\Gamma(a)) for a > 0, a+x > 0.
1237EOF
1238${RT} DD_D >> gsl_sf.cc
1239
1240## Deprecated naming scheme
1241export octave_name=lnpoch
1242export    funcname=gsl_sf_lnpoch_e
1243${RT} DD_D >> gsl_sf.cc
1244
1245######################################################################
1246
1247export octave_name=gsl_sf_pochrel
1248export    funcname=gsl_sf_pochrel_e
1249cat << \EOF > docstring.txt
1250Computes the relative Pochhammer symbol ((a,x) - 1)/x
1251where (a,x) = (a)_x := \Gamma(a + x)/\Gamma(a).
1252EOF
1253${RT} DD_D >> gsl_sf.cc
1254
1255## Deprecated naming scheme
1256export octave_name=pochrel
1257export    funcname=gsl_sf_pochrel_e
1258${RT} DD_D >> gsl_sf.cc
1259
1260######################################################################
1261
1262export octave_name=gsl_sf_gamma_inc_Q
1263export    funcname=gsl_sf_gamma_inc_Q_e
1264cat << \EOF > docstring.txt
1265Computes the normalized incomplete Gamma Function
1266Q(a,x) = 1/\Gamma(a) \int_x\infty dt t^@{a-1@} \exp(-t) for a > 0, x >= 0.
1267EOF
1268${RT} DD_D >> gsl_sf.cc
1269
1270## Deprecated naming scheme
1271export octave_name=gamma_inc_Q
1272export    funcname=gsl_sf_gamma_inc_Q_e
1273${RT} DD_D >> gsl_sf.cc
1274
1275######################################################################
1276
1277export octave_name=gsl_sf_gamma_inc_P
1278export    funcname=gsl_sf_gamma_inc_P_e
1279cat << \EOF > docstring.txt
1280Computes the complementary normalized incomplete Gamma
1281Function P(a,x) = 1/\Gamma(a) \int_0^x dt t^@{a-1@} \exp(-t)
1282for a > 0, x >= 0.
1283EOF
1284${RT} DD_D >> gsl_sf.cc
1285
1286## Deprecated naming scheme
1287export octave_name=gamma_inc_P
1288export    funcname=gsl_sf_gamma_inc_P_e
1289${RT} DD_D >> gsl_sf.cc
1290
1291######################################################################
1292
1293export octave_name=gsl_sf_gamma_inc
1294export    funcname=gsl_sf_gamma_inc_e
1295cat << \EOF > docstring.txt
1296These functions compute the incomplete Gamma Function the
1297normalization factor included in the previously defined functions:
1298\Gamma(a,x) = \int_x\infty dt t^@{a-1@} \exp(-t) for a real and x >= 0.
1299EOF
1300${RT} DD_D >> gsl_sf.cc
1301
1302## Deprecated naming scheme
1303export octave_name=gamma_inc
1304export    funcname=gsl_sf_gamma_inc_e
1305${RT} DD_D >> gsl_sf.cc
1306
1307######################################################################
1308
1309export octave_name=gsl_sf_beta
1310export    funcname=gsl_sf_beta_e
1311cat << \EOF > docstring.txt
1312Computes the Beta Function,
1313B(a,b) = \Gamma(a)\Gamma(b)/\Gamma(a+b) for a > 0, b > 0.
1314EOF
1315${RT} DD_D >> gsl_sf.cc
1316
1317## Deprecated naming scheme
1318export octave_name=beta_gsl
1319export    funcname=gsl_sf_beta_e
1320${RT} DD_D >> gsl_sf.cc
1321
1322######################################################################
1323
1324export octave_name=gsl_sf_lnbeta
1325export    funcname=gsl_sf_lnbeta_e
1326cat << \EOF > docstring.txt
1327Computes the logarithm of the Beta Function,
1328\log(B(a,b)) for a > 0, b > 0.
1329EOF
1330${RT} DD_D >> gsl_sf.cc
1331
1332## Deprecated naming scheme
1333export octave_name=lnbeta
1334export    funcname=gsl_sf_lnbeta_e
1335${RT} DD_D >> gsl_sf.cc
1336
1337######################################################################
1338
1339export octave_name=gsl_sf_hyperg_0F1
1340export    funcname=gsl_sf_hyperg_0F1_e
1341cat << \EOF > docstring.txt
1342Computes the hypergeometric function 0F1(c,x).
1343EOF
1344${RT} DD_D >> gsl_sf.cc
1345
1346## Deprecated naming scheme
1347export octave_name=hyperg_0F1
1348export    funcname=gsl_sf_hyperg_0F1_e
1349${RT} DD_D >> gsl_sf.cc
1350
1351######################################################################
1352
1353export octave_name=gsl_sf_conicalP_half
1354export    funcname=gsl_sf_conicalP_half_e
1355cat << \EOF > docstring.txt
1356Computes the irregular Spherical Conical Function
1357P^@{1/2@}_@{-1/2 + i \lambda@}(x) for x > -1.
1358EOF
1359${RT} DD_D >> gsl_sf.cc
1360
1361## Deprecated naming scheme
1362export octave_name=conicalP_half
1363export    funcname=gsl_sf_conicalP_half_e
1364${RT} DD_D >> gsl_sf.cc
1365
1366######################################################################
1367
1368export octave_name=gsl_sf_conicalP_mhalf
1369export    funcname=gsl_sf_conicalP_mhalf_e
1370cat << \EOF > docstring.txt
1371Computes the regular Spherical Conical Function
1372P^@{-1/2@}_@{-1/2 + i \lambda@}(x) for x > -1.
1373EOF
1374${RT} DD_D >> gsl_sf.cc
1375
1376## Deprecated naming scheme
1377export octave_name=conicalP_mhalf
1378export    funcname=gsl_sf_conicalP_mhalf_e
1379${RT} DD_D >> gsl_sf.cc
1380
1381######################################################################
1382
1383export octave_name=gsl_sf_conicalP_0
1384export    funcname=gsl_sf_conicalP_0_e
1385cat << \EOF > docstring.txt
1386Computes the conical function P^0_@{-1/2 + i \lambda@}(x)
1387for x > -1.
1388EOF
1389${RT} DD_D >> gsl_sf.cc
1390
1391## Deprecated naming scheme
1392export octave_name=conicalP_0
1393export    funcname=gsl_sf_conicalP_0_e
1394${RT} DD_D >> gsl_sf.cc
1395
1396######################################################################
1397
1398export octave_name=gsl_sf_conicalP_1
1399export    funcname=gsl_sf_conicalP_1_e
1400cat << \EOF > docstring.txt
1401Computes the conical function P^1_@{-1/2 + i \lambda@}(x)
1402for x > -1.
1403EOF
1404${RT} DD_D >> gsl_sf.cc
1405
1406## Deprecated naming scheme
1407export octave_name=conicalP_1
1408export    funcname=gsl_sf_conicalP_1_e
1409${RT} DD_D >> gsl_sf.cc
1410
1411
1412# (double, mode) to double ###########################################
1413
1414export octave_name=gsl_sf_airy_Ai
1415export    funcname=gsl_sf_airy_Ai_e
1416cat << \EOF > docstring.txt
1417Computes the Airy function Ai(x) with an accuracy
1418specified by mode.
1419EOF
1420${RT} DM_D >> gsl_sf.cc
1421
1422## Deprecated naming scheme
1423export octave_name=airy_Ai
1424export    funcname=gsl_sf_airy_Ai_e
1425${RT} DM_D >> gsl_sf.cc
1426
1427######################################################################
1428
1429export octave_name=gsl_sf_airy_Bi
1430export    funcname=gsl_sf_airy_Bi_e
1431cat << \EOF > docstring.txt
1432Computes the Airy function Bi(x) with an accuracy
1433specified by mode.
1434EOF
1435${RT} DM_D >> gsl_sf.cc
1436
1437## Deprecated naming scheme
1438export octave_name=airy_Bi
1439export    funcname=gsl_sf_airy_Bi_e
1440${RT} DM_D >> gsl_sf.cc
1441
1442######################################################################
1443
1444export octave_name=gsl_sf_airy_Ai_scaled
1445export    funcname=gsl_sf_airy_Ai_scaled_e
1446cat << \EOF > docstring.txt
1447Computes a scaled version of the Airy function
1448S_A(x) Ai(x). For x>0 the scaling factor S_A(x) is \exp(+(2/3) x^(3/2)), and
1449is 1 for x<0.
1450EOF
1451${RT} DM_D >> gsl_sf.cc
1452
1453## Deprecated naming scheme
1454export octave_name=airy_Ai_scaled
1455export    funcname=gsl_sf_airy_Ai_scaled_e
1456${RT} DM_D >> gsl_sf.cc
1457
1458######################################################################
1459
1460export octave_name=gsl_sf_airy_Bi_scaled
1461export    funcname=gsl_sf_airy_Bi_scaled_e
1462cat << \EOF > docstring.txt
1463Computes a scaled version of the Airy function
1464S_B(x) Bi(x). For x>0 the scaling factor S_B(x) is exp(-(2/3) x^(3/2)), and
1465is 1 for x<0.
1466EOF
1467${RT} DM_D >> gsl_sf.cc
1468
1469## Deprecated naming scheme
1470export octave_name=airy_Bi_scaled
1471export    funcname=gsl_sf_airy_Bi_scaled_e
1472${RT} DM_D >> gsl_sf.cc
1473
1474######################################################################
1475
1476export octave_name=gsl_sf_airy_Ai_deriv
1477export    funcname=gsl_sf_airy_Ai_deriv_e
1478cat << \EOF > docstring.txt
1479Computes the Airy function derivative Ai'(x) with an
1480accuracy specified by mode.
1481EOF
1482${RT} DM_D >> gsl_sf.cc
1483
1484## Deprecated naming scheme
1485export octave_name=airy_Ai_deriv
1486export    funcname=gsl_sf_airy_Ai_deriv_e
1487${RT} DM_D >> gsl_sf.cc
1488
1489######################################################################
1490
1491export octave_name=gsl_sf_airy_Bi_deriv
1492export    funcname=gsl_sf_airy_Bi_deriv_e
1493cat << \EOF > docstring.txt
1494Computes the Airy function derivative Bi'(x) with an
1495accuracy specified by mode.
1496EOF
1497${RT} DM_D >> gsl_sf.cc
1498
1499## Deprecated naming scheme
1500export octave_name=airy_Bi_deriv
1501export    funcname=gsl_sf_airy_Bi_deriv_e
1502${RT} DM_D >> gsl_sf.cc
1503
1504######################################################################
1505
1506export octave_name=gsl_sf_airy_Ai_deriv_scaled
1507export    funcname=gsl_sf_airy_Ai_deriv_scaled_e
1508cat << \EOF > docstring.txt
1509Computes the derivative of the scaled Airy function
1510S_A(x) Ai(x).
1511EOF
1512${RT} DM_D >> gsl_sf.cc
1513
1514## Deprecated naming scheme
1515export octave_name=airy_Ai_deriv_scaled
1516export    funcname=gsl_sf_airy_Ai_deriv_scaled_e
1517${RT} DM_D >> gsl_sf.cc
1518
1519######################################################################
1520
1521export octave_name=gsl_sf_airy_Bi_deriv_scaled
1522export    funcname=gsl_sf_airy_Bi_deriv_scaled_e
1523cat << \EOF > docstring.txt
1524Computes the derivative of the scaled Airy function
1525S_B(x) Bi(x).
1526EOF
1527${RT} DM_D >> gsl_sf.cc
1528
1529## Deprecated naming scheme
1530export octave_name=airy_Bi_deriv_scaled
1531export    funcname=gsl_sf_airy_Bi_deriv_scaled_e
1532${RT} DM_D >> gsl_sf.cc
1533
1534######################################################################
1535
1536export octave_name=gsl_sf_ellint_Kcomp
1537export    funcname=gsl_sf_ellint_Kcomp_e
1538cat << \EOF > docstring.txt
1539Computes the complete elliptic integral K(k)
1540@tex
1541\beforedisplay
1542$$
1543\eqalign{
1544K(k)   &= \int_0^{\pi/2}  {dt \over \sqrt{(1 - k^2 \sin^2(t))}}  \cr
1545}
1546$$
1547\afterdisplay
1548See also:
1549@end tex
1550@ifinfo
1551@group
1552@example
1553                              pi
1554                              ---
1555                               2
1556                             /
1557                             |             1
1558          ellint_Kcomp(k)  = |    ------------------- dt
1559                             |              2   2
1560                             /    sqrt(1 - k sin (t))
1561                              0
1562
1563@end example
1564@end group
1565@end ifinfo
1566@ifhtml
1567@group
1568@example
1569                              pi
1570                              ---
1571                               2
1572                             /
1573                             |             1
1574          ellint_Kcomp(k)  = |    ------------------- dt
1575                             |              2   2
1576                             /    sqrt(1 - k sin (t))
1577                              0
1578
1579@end example
1580@end group
1581@end ifhtml
1582
1583@seealso{ellipj, ellipke}
1584
1585The notation used here is based on Carlson, @cite{Numerische
1586Mathematik} 33 (1979) and differs slightly from that used by
1587Abramowitz & Stegun, where the functions are given in terms of the
1588parameter @math{m = k^2}.
1589
1590EOF
1591${RT} DM_D >> gsl_sf.cc
1592
1593## Deprecated naming scheme
1594export octave_name=ellint_Kcomp
1595export    funcname=gsl_sf_ellint_Kcomp_e
1596${RT} DM_D >> gsl_sf.cc
1597
1598######################################################################
1599
1600export octave_name=gsl_sf_ellint_Ecomp
1601export    funcname=gsl_sf_ellint_Ecomp_e
1602cat << \EOF > docstring.txt
1603Computes the complete elliptic integral E(k) to the
1604accuracy specified by the mode variable mode.
1605
1606@tex
1607\beforedisplay
1608$$
1609\eqalign{
1610E(k)   &= \int_0^{\pi/2}    \sqrt{(1 - k^2 \sin^2(t))} dt \cr
1611}
1612$$
1613\afterdisplay
1614See also:
1615
1616@end tex
1617@ifinfo
1618@group
1619@example
1620                               pi
1621                              ---
1622                               2
1623                             /
1624                             |              2    2
1625         ellint_Ecomp(k)  =  |    sqrt(1 - k sin (t)) dt
1626                             |
1627                             /
1628                              0
1629
1630@end example
1631@end group
1632@end ifinfo
1633@ifhtml
1634@group
1635@example
1636                               pi
1637                              ---
1638                               2
1639                             /
1640                             |              2    2
1641         ellint_Ecomp(k)  =  |    sqrt(1 - k sin (t)) dt
1642                             |
1643                             /
1644                              0
1645
1646@end example
1647@end group
1648@end ifhtml
1649
1650@seealso{ellipj, ellipke}
1651
1652The notation used here is based on Carlson, @cite{Numerische
1653Mathematik} 33 (1979) and differs slightly from that used by
1654Abramowitz & Stegun, where the functions are given in terms of the
1655parameter @math{m = k^2}.
1656EOF
1657${RT} DM_D >> gsl_sf.cc
1658
1659## Deprecated naming scheme
1660export octave_name=ellint_Ecomp
1661export    funcname=gsl_sf_ellint_Ecomp_e
1662${RT} DM_D >> gsl_sf.cc
1663
1664
1665# (double, double, mode) to double ###################################
1666
1667export octave_name=gsl_sf_ellint_E
1668export    funcname=gsl_sf_ellint_E_e
1669cat << \EOF > docstring.txt
1670This routine computes the elliptic integral E(\phi,k) to the accuracy
1671specified by the mode variable mode. Note that Abramowitz & Stegun
1672define this function in terms of the parameter m = k^2.
1673EOF
1674${RT} DDM_D >> gsl_sf.cc
1675
1676######################################################################
1677
1678export octave_name=gsl_sf_ellint_F
1679export    funcname=gsl_sf_ellint_F_e
1680cat << \EOF > docstring.txt
1681This routine computes the elliptic integral F(\phi,k) to the accuracy
1682specified by the mode variable mode. Note that Abramowitz & Stegun
1683define this function in terms of the parameter m = k^2.
1684EOF
1685${RT} DDM_D >> gsl_sf.cc
1686
1687######################################################################
1688
1689export octave_name=gsl_sf_ellint_Pcomp
1690export    funcname=gsl_sf_ellint_Pcomp_e
1691cat << \EOF > docstring.txt
1692Computes the complete elliptic integral \Pi(k,n) to the
1693accuracy specified by the mode variable mode. Note that Abramowitz &
1694Stegun define this function in terms of the parameters m = k^2 and
1695\sin^2(\alpha) = k^2, with the change of sign n \to -n.
1696EOF
1697${RT} DDM_D >> gsl_sf.cc
1698
1699######################################################################
1700
1701export octave_name=gsl_sf_ellint_RC
1702export    funcname=gsl_sf_ellint_RC_e
1703cat << \EOF > docstring.txt
1704This routine computes the incomplete elliptic integral RC(x,y) to the
1705accuracy specified by the mode variable mode.
1706EOF
1707${RT} DDM_D >> gsl_sf.cc
1708
1709######################################################################
1710
1711export octave_name=gsl_sf_ellint_D
1712export    funcname=gsl_sf_ellint_D_e
1713cat << \EOF > docstring.txt
1714This function computes the incomplete elliptic integral
1715D(\phi,k) which is defined through the Carlson form
1716RD(x,y,z) by the following relation,
1717
1718D(\phi,k) = (1/3)(\sin(\phi))^3
1719	  x RD (1-\sin^2(\phi), 1-k^2 \sin^2(\phi), 1).
1720EOF
1721echo "#if GSL_MAJOR_VERSION < 2" >> gsl_sf.cc
1722${RT} DDDM_D >> gsl_sf.cc
1723echo "#else" >> gsl_sf.cc
1724${RT} DDM_D >> gsl_sf.cc
1725echo "#endif" >> gsl_sf.cc
1726
1727
1728# (double, double, double, mode) to double ###########################
1729
1730export octave_name=gsl_sf_ellint_P
1731export    funcname=gsl_sf_ellint_P_e
1732cat << \EOF > docstring.txt
1733This routine computes the incomplete elliptic integral \Pi(\phi,k,n)
1734to the accuracy specified by the mode variable mode. Note that
1735Abramowitz & Stegun define this function in terms of the parameters
1736m = k^2 and \sin^2(\alpha) = k^2, with the change of sign n \to -n.
1737EOF
1738${RT} DDDM_D >> gsl_sf.cc
1739
1740######################################################################
1741
1742export octave_name=gsl_sf_ellint_RD
1743export    funcname=gsl_sf_ellint_RD_e
1744cat << \EOF > docstring.txt
1745This routine computes the incomplete elliptic integral RD(x,y,z) to the
1746accuracy specified by the mode variable mode.
1747EOF
1748${RT} DDDM_D >> gsl_sf.cc
1749
1750######################################################################
1751
1752export octave_name=gsl_sf_ellint_RF
1753export    funcname=gsl_sf_ellint_RF_e
1754cat << \EOF > docstring.txt
1755This routine computes the incomplete elliptic integral RF(x,y,z) to the
1756accuracy specified by the mode variable mode.
1757EOF
1758${RT} DDDM_D >> gsl_sf.cc
1759
1760
1761# (double, double, double, double, mode) to double ###################
1762
1763export octave_name=gsl_sf_ellint_RJ
1764export    funcname=gsl_sf_ellint_RJ_e
1765cat << \EOF > docstring.txt
1766This routine computes the incomplete elliptic integral RJ(x,y,z,p) to the
1767accuracy specified by the mode variable mode.
1768EOF
1769${RT} DDDDM_D >> gsl_sf.cc
1770
1771
1772# int to double ######################################################
1773
1774export octave_name=gsl_sf_airy_zero_Ai
1775export    funcname=gsl_sf_airy_zero_Ai_e
1776cat << \EOF > docstring.txt
1777Computes the location of the s-th zero of the Airy
1778function Ai(x).
1779EOF
1780${RT} I_D >> gsl_sf.cc
1781
1782## Deprecated naming scheme
1783export octave_name=airy_zero_Ai
1784export    funcname=gsl_sf_airy_zero_Ai_e
1785${RT} I_D >> gsl_sf.cc
1786
1787######################################################################
1788
1789export octave_name=gsl_sf_airy_zero_Bi
1790export    funcname=gsl_sf_airy_zero_Bi_e
1791cat << \EOF > docstring.txt
1792Computes the location of the s-th zero of the Airy
1793function Bi(x).
1794EOF
1795${RT} I_D >> gsl_sf.cc
1796
1797## Deprecated naming scheme
1798export octave_name=airy_zero_Bi
1799export    funcname=gsl_sf_airy_zero_Bi_e
1800${RT} I_D >> gsl_sf.cc
1801
1802######################################################################
1803
1804export octave_name=gsl_sf_airy_zero_Ai_deriv
1805export    funcname=gsl_sf_airy_zero_Ai_deriv_e
1806cat << \EOF > docstring.txt
1807Computes the location of the s-th zero of the Airy
1808function derivative Ai(x).
1809EOF
1810${RT} I_D >> gsl_sf.cc
1811
1812## Deprecated naming scheme
1813export octave_name=airy_zero_Ai_deriv
1814export    funcname=gsl_sf_airy_zero_Ai_deriv_e
1815${RT} I_D >> gsl_sf.cc
1816
1817######################################################################
1818
1819export octave_name=gsl_sf_airy_zero_Bi_deriv
1820export    funcname=gsl_sf_airy_zero_Bi_deriv_e
1821cat << \EOF > docstring.txt
1822Computes the location of the s-th zero of the Airy
1823function derivative Bi(x).
1824EOF
1825${RT} I_D >> gsl_sf.cc
1826
1827## Deprecated naming scheme
1828export octave_name=airy_zero_Bi_deriv
1829export    funcname=gsl_sf_airy_zero_Bi_deriv_e
1830${RT} I_D >> gsl_sf.cc
1831
1832######################################################################
1833
1834export octave_name=gsl_sf_bessel_zero_J0
1835export    funcname=gsl_sf_bessel_zero_J0_e
1836cat << \EOF > docstring.txt
1837Computes the location of the s-th positive zero of the
1838Bessel function J_0(x).
1839EOF
1840${RT} I_D >> gsl_sf.cc
1841
1842## Deprecated naming scheme
1843export octave_name=bessel_zero_J0
1844export    funcname=gsl_sf_bessel_zero_J0_e
1845${RT} I_D >> gsl_sf.cc
1846
1847######################################################################
1848
1849export octave_name=gsl_sf_bessel_zero_J1
1850export    funcname=gsl_sf_bessel_zero_J1_e
1851cat << \EOF > docstring.txt
1852Computes the location of the s-th positive zero of the
1853Bessel function J_1(x).
1854EOF
1855${RT} I_D >> gsl_sf.cc
1856
1857## Deprecated naming scheme
1858export octave_name=bessel_zero_J1
1859export    funcname=gsl_sf_bessel_zero_J1_e
1860${RT} I_D >> gsl_sf.cc
1861
1862######################################################################
1863
1864export octave_name=gsl_sf_psi_1_int
1865export    funcname=gsl_sf_psi_1_int_e
1866cat << \EOF > docstring.txt
1867Computes the Trigamma function \psi(n) for positive
1868integer n.
1869EOF
1870${RT} I_D >> gsl_sf.cc
1871
1872## Deprecated naming scheme
1873export octave_name=psi_1_int
1874export    funcname=gsl_sf_psi_1_int_e
1875${RT} I_D >> gsl_sf.cc
1876
1877
1878# (int, double, double) to double ####################################
1879
1880export octave_name=gsl_sf_conicalP_cyl_reg
1881export    funcname=gsl_sf_conicalP_cyl_reg_e
1882cat << \EOF > docstring.txt
1883Computes the Regular Cylindrical Conical Function
1884@math{P^{-m}_{-1/2 + i \lambda}(x)}, for @math{x > -1}, @math{m} @geq{} @math{-1}.
1885EOF
1886${RT} IDD_D >> gsl_sf.cc
1887
1888######################################################################
1889
1890export octave_name=gsl_sf_conicalP_sph_reg
1891export    funcname=gsl_sf_conicalP_sph_reg_e
1892cat << \EOF > docstring.txt
1893Computes the Regular Spherical Conical Function
1894@math{P^{-1/2-l}_{-1/2 + i \lambda}(x)}, for @math{x > -1}, @math{l} @geq{} @math{-1}.
1895EOF
1896${RT} IDD_D >> gsl_sf.cc
1897
1898######################################################################
1899
1900export octave_name=gsl_sf_gegenpoly_n
1901export    funcname=gsl_sf_gegenpoly_n_e
1902cat << \EOF > docstring.txt
1903These functions evaluate the Gegenbauer polynomial @math{C^{(\lambda)}_n(x)}
1904for n, lambda, x subject to @math{\lambda > -1/2}, @math{n} @geq{} @math{0}.
1905EOF
1906${RT} IDD_D >> gsl_sf.cc
1907
1908######################################################################
1909
1910export octave_name=gsl_sf_laguerre_n
1911export    funcname=gsl_sf_laguerre_n_e
1912cat << \EOF > docstring.txt
1913Computes the generalized Laguerre polynomial @math{L^a_n(x)} for
1914@math{a > -1} and @math{n} @geq{} @math{0}.
1915EOF
1916${RT} IDD_D >> gsl_sf.cc
1917
1918######################################################################
1919
1920export octave_name=gsl_sf_mathieu_ce
1921export    funcname=gsl_sf_mathieu_ce_e
1922cat << \EOF > docstring.txt
1923This routine computes the angular Mathieu function ce_n(q,x).
1924EOF
1925${RT} IDD_D >> gsl_sf.cc
1926
1927######################################################################
1928
1929export octave_name=gsl_sf_mathieu_se
1930export    funcname=gsl_sf_mathieu_se_e
1931cat << \EOF > docstring.txt
1932This routine computes the angular Mathieu function se_n(q,x).
1933EOF
1934${RT} IDD_D >> gsl_sf.cc
1935
1936# (int, int, double) to double
1937
1938######################################################################
1939
1940export octave_name=gsl_sf_hyperg_U_int
1941export    funcname=gsl_sf_hyperg_U_int_e
1942cat << \EOF > docstring.txt
1943Secondary Confluent Hypergoemetric U function A&E 13.1.3
1944m and n are integers.
1945EOF
1946${RT} IID_D >> gsl_sf.cc
1947
1948######################################################################
1949
1950export octave_name=gsl_sf_hyperg_1F1_int
1951export    funcname=gsl_sf_hyperg_1F1_int_e
1952cat << \EOF > docstring.txt
1953Primary Confluent Hypergoemetric U function A&E 13.1.3
1954m and n are integers.
1955EOF
1956${RT} IID_D >> gsl_sf.cc
1957
1958######################################################################
1959
1960export octave_name=gsl_sf_legendre_Plm
1961export    funcname=gsl_sf_legendre_Plm_e
1962cat << \EOF > docstring.txt
1963Computes the associated Legendre polynomial P_l^m(x)
1964for m >= 0, l >= m, |x| <= 1.
1965EOF
1966${RT} IID_D >> gsl_sf.cc
1967
1968## Deprecated naming scheme
1969export octave_name=legendre_Plm
1970export    funcname=gsl_sf_legendre_Plm_e
1971${RT} IID_D >> gsl_sf.cc
1972
1973######################################################################
1974
1975export octave_name=gsl_sf_legendre_sphPlm
1976export    funcname=gsl_sf_legendre_sphPlm_e
1977cat << \EOF > docstring.txt
1978Computes the normalized associated Legendre polynomial
1979$\sqrt@{(2l+1)/(4\pi)@} \sqrt@{(l-m)!/(l+m)!@} P_l^m(x)$ suitable for use
1980in spherical harmonics. The parameters must satisfy m >= 0, l >= m,
1981|x| <= 1. Theses routines avoid the overflows that occur for the
1982standard normalization of P_l^m(x).
1983EOF
1984${RT} IID_D >> gsl_sf.cc
1985
1986## Deprecated naming scheme
1987export octave_name=legendre_sphPlm
1988export    funcname=gsl_sf_legendre_sphPlm_e
1989${RT} IID_D >> gsl_sf.cc
1990
1991
1992# (int, int, double, double) to double ###############################
1993
1994export octave_name=gsl_sf_hydrogenicR
1995export    funcname=gsl_sf_hydrogenicR_e
1996cat << \EOF > docstring.txt
1997This routine computes the n-th normalized hydrogenic bound state
1998radial wavefunction,
1999@tex
2000R_n := 2 (Z^{3/2}/n^2) \sqrt{(n-l-1)!/(n+l)!} \exp(-Z r/n)
2001         (2Zr/n)^l L^{2l+1}_{n-l-1}(2Zr/n).
2002@end tex
2003@ifnottex
2004
2005@example
2006@group
2007          Z^(3/2)     ----------------    -Z r/n          l    2l+1
2008R_n := 2 --------  \ / (n-l-1)!/(n+l)! . e       . (2Zr/n)  . L      (2Zr/n).
2009            n^2     v                                          n-l-1
2010@end group
2011@end example
2012
2013@end ifnottex
2014where @math{L^a_b(x)} is the generalized Laguerre polynomial.
2015The normalization is chosen such that the wavefunction \psi
2016is given by @math{\psi(n,l,r) = R_n Y_{lm}}.
2017EOF
2018${RT} IIDD_D >> gsl_sf.cc
2019
2020######################################################################
2021
2022export octave_name=gsl_sf_mathieu_Mc
2023export    funcname=gsl_sf_mathieu_Mc_e
2024cat << \EOF > docstring.txt
2025This routine computes the radial j-th kind Mathieu function
2026@math{Mc_n^{(j)}(q,x)} of order n.
2027EOF
2028${RT} IIDD_D >> gsl_sf.cc
2029
2030######################################################################
2031
2032export octave_name=gsl_sf_mathieu_Ms
2033export    funcname=gsl_sf_mathieu_Ms_e
2034cat << \EOF > docstring.txt
2035This routine computes the radial j-th kind Mathieu function
2036@math{Ms_n^{(j)}(q,x)} of order n.
2037EOF
2038${RT} IIDD_D >> gsl_sf.cc
2039
2040
2041# (double, int) to double ############################################
2042
2043export octave_name=gsl_sf_bessel_zero_Jnu
2044export    funcname=gsl_sf_bessel_zero_Jnu_e
2045cat << \EOF > docstring.txt
2046Computes the location of the n-th positive zero of the
2047Bessel function J_x().
2048EOF
2049${RT} DI_D >> gsl_sf.cc
2050
2051
2052# (double, double, double) to double #################################
2053
2054export octave_name=gsl_sf_hyperg_U
2055export    funcname=gsl_sf_hyperg_U_e
2056cat << \EOF > docstring.txt
2057Secondary Confluent Hypergoemetric U function A&E 13.1.3
2058All inputs are double as is the output.
2059EOF
2060${RT} DDD_D >> gsl_sf.cc
2061
2062## Deprecated naming scheme
2063export octave_name=hyperg_U
2064export    funcname=gsl_sf_hyperg_U_e
2065${RT} DDD_D >> gsl_sf.cc
2066
2067######################################################################
2068
2069export octave_name=gsl_sf_hyperg_1F1
2070export    funcname=gsl_sf_hyperg_1F1_e
2071cat << \EOF > docstring.txt
2072Primary Confluent Hypergoemetric U function A&E 13.1.3
2073All inputs are double as is the output.
2074EOF
2075${RT} DDD_D >> gsl_sf.cc
2076
2077## Deprecated naming scheme
2078export octave_name=hyperg_1F1
2079export    funcname=gsl_sf_hyperg_1F1_e
2080${RT} DDD_D >> gsl_sf.cc
2081
2082######################################################################
2083
2084export octave_name=gsl_sf_hyperg_2F0
2085export    funcname=gsl_sf_hyperg_2F0_e
2086cat << \EOF > docstring.txt
2087Computes the hypergeometric function 2F0(a,b,x).
2088The series representation is a divergent hypergeometric series.
2089However, for x < 0 we have 2F0(a,b,x) = (-1/x)^a U(a,1+a-b,-1/x)
2090EOF
2091${RT} DDD_D >> gsl_sf.cc
2092
2093## Deprecated naming scheme
2094export octave_name=hyperg_2F0
2095export    funcname=gsl_sf_hyperg_2F0_e
2096${RT} DDD_D >> gsl_sf.cc
2097
2098######################################################################
2099
2100export octave_name=gsl_sf_beta_inc
2101export    funcname=gsl_sf_beta_inc_e
2102cat << \EOF > docstring.txt
2103Computes the normalized incomplete Beta function
2104
2105  I_x(a,b)=B_x(a,b)/B(a,b)
2106
2107where @math{B_x(a,b) = \int_0^x t^(a-1) (1-t)^(b-1) dt}
2108for @math{0 \le x \le 1}.
2109
2110For a > 0, b > 0 the value is computed using a continued fraction
2111expansion. For all other values it is computed using the relation
2112  I_x(a,b,x) = (1/a) x^a 2F1(a,1-b,a+1,x)/B(a,b).
2113EOF
2114${RT} DDD_D >> gsl_sf.cc
2115
2116
2117# (double, double, double, double) to double #########################
2118
2119export octave_name=gsl_sf_hyperg_2F1
2120export    funcname=gsl_sf_hyperg_2F1_e
2121cat << \EOF > docstring.txt
2122Computes the Gauss hypergeometric function
21232F1(a,b,c,x) = F(a,b,c,x) for |x| < 1.
2124If the arguments (a,b,c,x) are too close to a singularity then
2125the function can return the error code GSL_EMAXITER when the
2126series approximation converges too slowly.
2127This occurs in the region of x=1, c - a - b = m for integer m.
2128EOF
2129${RT} DDDD_D >> gsl_sf.cc
2130
2131
2132# unsigned int to double #############################################
2133
2134export octave_name=gsl_sf_fact
2135export    funcname=gsl_sf_fact_e
2136cat << \EOF > docstring.txt
2137Computes the factorial n!. The factorial is related to the Gamma
2138function by n! = \Gamma(n+1). The maximum value of n such that n! is
2139not considered an overflow is 170.
2140EOF
2141${RT} U_D >> gsl_sf.cc
2142
2143######################################################################
2144
2145export octave_name=gsl_sf_doublefact
2146export    funcname=gsl_sf_doublefact_e
2147cat << \EOF > docstring.txt
2148Compute the double factorial n!! = n(n-2)(n-4)\dots. The maximum value
2149of n such that n!! is not considered an overflow is 297.
2150EOF
2151${RT} U_D >> gsl_sf.cc
2152
2153######################################################################
2154
2155export octave_name=gsl_sf_lnfact
2156export    funcname=gsl_sf_lnfact_e
2157cat << \EOF > docstring.txt
2158Computes the logarithm of the factorial of n,
2159\log(n!). The algorithm is faster than computing \ln(\Gamma(n+1)) via
2160gsl_sf_lngamma for n < 170, but defers for larger n.
2161EOF
2162${RT} U_D >> gsl_sf.cc
2163
2164######################################################################
2165
2166export octave_name=gsl_sf_lndoublefact
2167export    funcname=gsl_sf_lndoublefact_e
2168cat << \EOF > docstring.txt
2169Computes the logarithm of the double factorial of n, \log(n!!).
2170EOF
2171${RT} U_D >> gsl_sf.cc
2172
2173
2174# (unsigned int, unsigned int) to double #############################
2175
2176export octave_name=gsl_sf_choose
2177export    funcname=gsl_sf_choose_e
2178cat << \EOF > docstring.txt
2179Computes the combinatorial factor n choose m = n!/(m!(n-m)!).
2180EOF
2181${RT} UU_D >> gsl_sf.cc
2182
2183######################################################################
2184
2185export octave_name=gsl_sf_lnchoose
2186export    funcname=gsl_sf_lnchoose_e
2187cat << \EOF > docstring.txt
2188Computes the logarithm of n choose m. This is equivalent to
2189\log(n!) - \log(m!) - \log((n-m)!).
2190EOF
2191${RT} UU_D >> gsl_sf.cc
2192
2193
2194# (int, int, int, int, int, int) to double ###########################
2195
2196export octave_name=gsl_sf_coupling_3j
2197export    funcname=gsl_sf_coupling_3j_e
2198cat << \EOF > docstring.txt
2199computes the Wigner 3-j coefficient,
2200
2201@example
2202@group
2203(ja jb jc
2204 ma mb mc)
2205@end group
2206@end example
2207
2208where the arguments are given in half-integer units,
2209@code{ja = two_ja/2}, @code{ma = two_ma/2}, etc.
2210EOF
2211${RT} IIIIII_D >> gsl_sf.cc
2212
2213## Deprecated naming scheme
2214export octave_name=coupling_3j
2215export    funcname=gsl_sf_coupling_3j_e
2216${RT} IIIIII_D >> gsl_sf.cc
2217
2218######################################################################
2219
2220export octave_name=gsl_sf_coupling_6j
2221export    funcname=gsl_sf_coupling_6j_e
2222cat << \EOF > docstring.txt
2223computes the Wigner 6-j coefficient,
2224
2225@example
2226@group
2227@{ja jb jc
2228 jd je jf@}
2229@end group
2230@end example
2231
2232where the arguments are given in half-integer units,
2233@code{ja = two_ja/2}, @code{jd = two_jd/2}, etc.
2234EOF
2235${RT} IIIIII_D >> gsl_sf.cc
2236
2237## Deprecated naming scheme
2238export octave_name=coupling_6j
2239export    funcname=gsl_sf_coupling_6j_e
2240${RT} IIIIII_D >> gsl_sf.cc
2241
2242
2243# (int, int, int, int, int, int, int, int, int) to double ############
2244
2245export octave_name=gsl_sf_coupling_9j
2246export    funcname=gsl_sf_coupling_9j_e
2247cat << \EOF > docstring.txt
2248computes the Wigner 9-j coefficient,
2249
2250@example
2251@group
2252@{ja jb jc
2253 jd je jf
2254 jg jh ji@}
2255@end group
2256@end example
2257
2258where the arguments are given in half-integer units,
2259@code{ja = two_ja/2}, @code{jd = two_jd/2}, etc.
2260EOF
2261${RT} IIIIIIIII_D >> gsl_sf.cc
2262
2263## Deprecated naming scheme
2264export octave_name=coupling_9j
2265export    funcname=gsl_sf_coupling_9j_e
2266${RT} IIIIIIIII_D >> gsl_sf.cc
2267
2268
2269#############################
2270## gsl_sf_*_array function ##
2271#############################
2272
2273# (length, double) ###################################################
2274
2275export octave_name=gsl_sf_bessel_jl_array
2276export    funcname=gsl_sf_bessel_jl_array
2277cat << \EOF > docstring.txt
2278Computes the values of the regular spherical Bessel functions j_l(x)
2279for l from 0 to lmax inclusive for lmax >= 0 and x >= 0. The values
2280are computed using recurrence relations for efficiency, and therefore
2281may differ slightly from the exact values.
2282EOF
2283${RT} LD_D_array >> gsl_sf.cc
2284
2285######################################################################
2286
2287export octave_name=gsl_sf_bessel_jl_steed_array
2288export    funcname=gsl_sf_bessel_jl_steed_array
2289cat << \EOF > docstring.txt
2290This routine uses Steeds method to compute the values of the regular
2291spherical Bessel functions j_l(x) for l from 0 to lmax inclusive for
2292lmax >= 0 and x >= 0.  The Steed/Barnett algorithm is described in
2293Comp. Phys. Comm. 21, 297 (1981). Steeds method is more stable than
2294the recurrence used in the other functions but is also slower.
2295EOF
2296${RT} LD_D_array >> gsl_sf.cc
2297
2298######################################################################
2299
2300export octave_name=gsl_sf_bessel_il_scaled_array
2301export    funcname=gsl_sf_bessel_il_scaled_array
2302cat << \EOF > docstring.txt
2303This routine computes the values of the scaled regular modified
2304spherical Bessel functions \exp(-|x|) i_l(x) for l from 0 to lmax
2305inclusive for lmax >= 0. The values are computed using recurrence
2306relations for efficiency, and therefore may differ slightly from the
2307exact values.
2308EOF
2309${RT} LD_D_array >> gsl_sf.cc
2310
2311######################################################################
2312
2313export octave_name=gsl_sf_bessel_kl_scaled_array
2314export    funcname=gsl_sf_bessel_kl_scaled_array
2315cat << \EOF > docstring.txt
2316This routine computes the values of the scaled irregular modified
2317spherical Bessel functions \exp(x) k_l(x) for l from 0 to lmax
2318inclusive for lmax >= 0 and x>0. The values are computed using
2319recurrence relations for efficiency, and therefore may differ slightly
2320from the exact values.
2321EOF
2322${RT} LD_D_array >> gsl_sf.cc
2323
2324######################################################################
2325
2326export octave_name=gsl_sf_bessel_yl_array
2327export    funcname=gsl_sf_bessel_yl_array
2328cat << \EOF > docstring.txt
2329This routine computes the values of the irregular spherical Bessel
2330functions y_l(x) for l from 0 to lmax inclusive for lmax >= 0. The
2331values are computed using recurrence relations for efficiency, and
2332therefore may differ slightly from the exact values.
2333EOF
2334${RT} LD_D_array >> gsl_sf.cc
2335
2336######################################################################
2337
2338export octave_name=gsl_sf_legendre_Pl_array
2339export    funcname=gsl_sf_legendre_Pl_array
2340cat << \EOF > docstring.txt
2341These functions compute arrays of Legendre polynomials P_l(x) and
2342derivatives dP_l(x)/dx, for l = 0, \dots, lmax, |x| <= 1.
2343EOF
2344${RT} LD_D_array >> gsl_sf.cc
2345
2346
2347# (length, double, double) ###########################################
2348
2349export octave_name=gsl_sf_gegenpoly_array
2350export    funcname=gsl_sf_gegenpoly_array
2351cat << \EOF > docstring.txt
2352This function computes an array of Gegenbauer polynomials
2353@math{C^{(\lambda)}_n(x)} for n = 0, 1, 2, \dots, nmax, subject to
2354@math{\lambda > -1/2}, @math{nmax} @geq{} @math{0}.
2355EOF
2356${RT} LDD_D_array >> gsl_sf.cc
2357
2358
2359# (min, max, double) #################################################
2360
2361export octave_name=gsl_sf_bessel_In_array
2362export    funcname=gsl_sf_bessel_In_array
2363cat << \EOF > docstring.txt
2364his routine computes the values of the regular modified cylindrical
2365Bessel functions I_n(x) for n from nmin to nmax inclusive. The start
2366of the range nmin must be positive or zero. The values are computed
2367using recurrence relations for efficiency, and therefore may differ
2368slightly from the exact values.
2369EOF
2370${RT} LLD_D_array >> gsl_sf.cc
2371
2372######################################################################
2373
2374export octave_name=gsl_sf_bessel_In_scaled_array
2375export    funcname=gsl_sf_bessel_In_scaled_array
2376cat << \EOF > docstring.txt
2377This routine computes the values of the scaled regular cylindrical
2378Bessel functions \exp(-|x|) I_n(x) for n from nmin to nmax
2379inclusive. The start of the range nmin must be positive or zero. The
2380values are computed using recurrence relations for efficiency, and
2381therefore may differ slightly from the exact values.
2382EOF
2383${RT} LLD_D_array >> gsl_sf.cc
2384
2385######################################################################
2386
2387export octave_name=gsl_sf_bessel_Jn_array
2388export    funcname=gsl_sf_bessel_Jn_array
2389cat << \EOF > docstring.txt
2390This routine computes the values of the regular cylindrical Bessel
2391functions J_n(x) for n from nmin to nmax inclusive. The values are
2392computed using recurrence relations for efficiency, and therefore may
2393differ slightly from the exact values.
2394EOF
2395${RT} LLD_D_array >> gsl_sf.cc
2396
2397######################################################################
2398
2399export octave_name=gsl_sf_bessel_Kn_array
2400export    funcname=gsl_sf_bessel_Kn_array
2401cat << \EOF > docstring.txt
2402This routine computes the values of the irregular modified cylindrical
2403Bessel functions K_n(x) for n from nmin to nmax inclusive. The start
2404of the range nmin must be positive or zero. The domain of the function
2405is x>0. The values are computed using recurrence relations for
2406efficiency, and therefore may differ slightly from the exact values.
2407EOF
2408${RT} LLD_D_array >> gsl_sf.cc
2409
2410######################################################################
2411
2412export octave_name=gsl_sf_bessel_Kn_scaled_array
2413export    funcname=gsl_sf_bessel_Kn_scaled_array
2414cat << \EOF > docstring.txt
2415This routine computes the values of the scaled irregular cylindrical
2416Bessel functions \exp(x) K_n(x) for n from nmin to nmax inclusive. The
2417start of the range nmin must be positive or zero. The domain of the
2418function is x>0. The values are computed using recurrence relations
2419for efficiency, and therefore may differ slightly from the exact
2420values.
2421EOF
2422${RT} LLD_D_array >> gsl_sf.cc
2423
2424######################################################################
2425
2426export octave_name=gsl_sf_bessel_Yn_array
2427export    funcname=gsl_sf_bessel_Yn_array
2428cat << \EOF > docstring.txt
2429This routine computes the values of the irregular cylindrical Bessel
2430functions Y_n(x) for n from nmin to nmax inclusive. The domain of the
2431function is x>0. The values are computed using recurrence relations
2432for efficiency, and therefore may differ slightly from the exact
2433values.
2434EOF
2435${RT} LLD_D_array >> gsl_sf.cc
2436
2437
2438# (length, int, double) to double ####################################
2439
2440# DEPRECATED: gsl_sf_legendre_Plm_array 2.0
2441export octave_name=gsl_sf_legendre_Plm_array
2442export    funcname=gsl_sf_legendre_Plm_array
2443cat << \EOF > docstring.txt
2444Compute arrays of Legendre polynomials P_l^m(x) for m >= 0, l = |m|,
2445..., lmax, |x| <= 1.
2446EOF
2447${RT} LID_D_array >> gsl_sf.cc
2448
2449######################################################################
2450
2451# DEPRECATED: gsl_sf_legendre_Plm_deriv_array 2.0
2452export octave_name=gsl_sf_legendre_Plm_deriv_array
2453export    funcname=gsl_sf_legendre_Plm_deriv_array
2454cat << \EOF > docstring.txt
2455Compute arrays of Legendre polynomials P_l^m(x) and derivatives
2456dP_l^m(x)/dx for m >= 0, l = |m|, ..., lmax, |x| <= 1.
2457EOF
2458${RT} LID_DD_array >> gsl_sf.cc
2459
2460######################################################################
2461
2462# DEPRECATED: gsl_sf_legendre_sphPlm_array 2.0
2463export octave_name=gsl_sf_legendre_sphPlm_array
2464export    funcname=gsl_sf_legendre_sphPlm_array
2465cat << \EOF > docstring.txt
2466Computes an array of normalized associated Legendre functions
2467@iftex
2468@tex
2469$\\sqrt{(2l+1)/(4\\pi)} \\sqrt{(l-m)!/(l+m)!} P_l^m(x)$
2470for $m >= 0, l = |m|, ..., lmax, |x| <= 1.0$
2471@end tex
2472@end iftex
2473@ifinfo
2474sqrt((2l+1)/(4*pi)) * sqrt((l-m)!/(l+m)!) Plm (x)
2475for m >= 0, l = |m|, ..., lmax, |x| <= 1.0
2476@end ifinfo
2477EOF
2478${RT} LID_D_array >> gsl_sf.cc
2479
2480## Deprecated naming scheme
2481export octave_name=legendre_sphPlm_array
2482export    funcname=gsl_sf_legendre_sphPlm_array
2483${RT} LID_D_array >> gsl_sf.cc
2484
2485######################################################################
2486
2487# DEPRECATED: gsl_sf_legendre_sphPlm_deriv_array 2.0
2488export octave_name=gsl_sf_legendre_sphPlm_deriv_array
2489export    funcname=gsl_sf_legendre_sphPlm_deriv_array
2490cat << \EOF > docstring.txt
2491Computes an array of normalized associated Legendre functions
2492@iftex
2493@tex
2494$\\sqrt{(2l+1)/(4\\pi)} \\sqrt{(l-m)!/(l+m)!} P_l^m(x)$
2495for $m \geq 0, l = |m|, ..., lmax, |x| <= 1.0$
2496@end tex
2497@end iftex
2498@ifinfo
2499sqrt((2l+1)/(4*pi)) * sqrt((l-m)!/(l+m)!) Plm (x)
2500for m >= 0, l = |m|, ..., lmax, |x| <= 1.0
2501@end ifinfo
2502and their derivatives.
2503EOF
2504${RT} LID_DD_array >> gsl_sf.cc
2505
2506######################################################################
2507
2508export octave_name=gsl_sf_legendre_array
2509export    funcname=gsl_sf_legendre_array_e
2510cat << \EOF > docstring.txt
2511Calculate all normalized associated Legendre polynomials for 0 <= l <=
2512lmax and 0 <= m <= l for |x| <= 1. The norm parameter specifies which
2513normalization is used. The array index of P_l^m is given by
2514l(l+1)/2+m. To include or exclude the Condon-Shortley phase factor of
2515(-1)^m, set the fourth parameter to either -1 or 1, respectively.
2516
2517EOF
2518${RT} NSDD_D_array >> gsl_sf.cc
2519
2520######################################################################
2521
2522export octave_name=gsl_sf_legendre_deriv_array
2523export    funcname=gsl_sf_legendre_deriv_array_e
2524cat << \EOF > docstring.txt
2525Calculate all normalized associated Legendre polynomials and their
2526first derivatives for 0 <= l <= lmax and 0 <= m <= l for |x| <= 1. The
2527norm parameter specifies which normalization is used. The array index
2528of P_l^m is given by l(l+1)/2+m. To include or exclude the
2529Condon-Shortley phase factor of (-1)^m, set the fourth parameter to
2530either -1 or 1, respectively.
2531EOF
2532${RT} NSDD_DD_array >> gsl_sf.cc
2533
2534######################################################################
2535
2536export octave_name=legendre_deriv2_array
2537export    funcname=gsl_sf_legendre_deriv2_array_e
2538cat << \EOF > docstring.txt
2539Calculate all normalized associated Legendre polynomials and their
2540first and second derivatives for 0 <= l <= lmax and 0 <= m <= l for |x| <= 1. The
2541norm parameter specifies which normalization is used. The array index
2542of P_l^m is given by l(l+1)/2+m. To include or exclude the
2543Condon-Shortley phase factor of (-1)^m, set the fourth parameter to
2544either -1 or 1, respectively.
2545EOF
2546${RT} NSDD_DDD_array >> gsl_sf.cc
2547
2548
2549######################################################################
2550##                   Zeta and related functions                     ##
2551######################################################################
2552
2553
2554## Riemann zeta function
2555
2556export octave_name=gsl_sf_zeta
2557export    funcname=gsl_sf_zeta_e
2558cat << \EOF > docstring.txt
2559Computes the Riemann zeta function \zeta(s) for
2560arbitrary s, s \ne 1.
2561
2562The Riemann zeta function is defined by the infinite sum
2563\zeta(s) = \sum_@{k=1@}^\infty k^@{-s@}.
2564EOF
2565${RT} D_D >> gsl_sf.cc
2566
2567## Deprecated naming scheme (package release 2.0.0)
2568export octave_name=gsl_zt_zeta
2569export    funcname=gsl_sf_zeta_e
2570${RT} D_D >> gsl_sf.cc
2571
2572## Deprecated naming scheme (package release < 2.0.0)
2573export octave_name=zeta
2574export    funcname=gsl_sf_zeta_e
2575${RT} D_D >> gsl_sf.cc
2576
2577export octave_name=gsl_sf_zeta_int
2578export    funcname=gsl_sf_zeta_int_e
2579cat << \EOF > docstring.txt
2580Computes the Riemann zeta function \zeta(n) for
2581integer n, n \ne 1.
2582EOF
2583${RT} I_D >> gsl_sf.cc
2584
2585## Deprecated naming scheme (package release < 2.0.0)
2586export octave_name=zeta_int
2587export    funcname=gsl_sf_zeta_int_e
2588${RT} I_D >> gsl_sf.cc
2589
2590
2591## Riemann zeta function minus one
2592
2593export octave_name=gsl_sf_zetam1
2594export    funcname=gsl_sf_zetam1_e
2595cat << \EOF > docstring.txt
2596Computes \zeta(s) - 1 for arbitrary s, s \ne 1, where \zeta
2597denotes the Riemann zeta function.
2598
2599@seealso{gsl_sf_zeta}
2600EOF
2601${RT} D_D >> gsl_sf.cc
2602
2603export octave_name=gsl_sf_zetam1_int
2604export    funcname=gsl_sf_zetam1_int_e
2605cat << \EOF > docstring.txt
2606Computes \zeta(s) - 1 for integer n, n \ne 1, where \zeta
2607denotes the Riemann zeta function.
2608
2609@seealso{gsl_sf_zetam1, gsl_sf_zeta, gsl_sf_zeta_int}
2610EOF
2611${RT} I_D >> gsl_sf.cc
2612
2613
2614## Dirichlet eta function
2615
2616export octave_name=gsl_sf_eta
2617export    funcname=gsl_sf_eta_e
2618cat << \EOF > docstring.txt
2619Computes the eta function \eta(s) for arbitrary s.
2620
2621The eta function is defined by \eta(s) = (1-2^@{1-s@}) \zeta
2622EOF
2623${RT} D_D >> gsl_sf.cc
2624
2625## Deprecated naming scheme
2626export octave_name=eta
2627export    funcname=gsl_sf_eta_e
2628${RT} D_D >> gsl_sf.cc
2629
2630export octave_name=gsl_sf_eta_int
2631export    funcname=gsl_sf_eta_int_e
2632cat << \EOF > docstring.txt
2633Computes the eta function \eta(n) for integer n.
2634EOF
2635${RT} I_D >> gsl_sf.cc
2636
2637## Deprecated naming scheme
2638export octave_name=eta_int
2639export    funcname=gsl_sf_eta_int_e
2640${RT} I_D >> gsl_sf.cc
2641
2642
2643## Hurwitz zeta function
2644
2645export octave_name=gsl_sf_hzeta
2646export    funcname=gsl_sf_hzeta_e
2647cat << \EOF > docstring.txt
2648Computes the Hurwitz zeta function \zeta(s,q)
2649for s > 1, q > 0.
2650EOF
2651${RT} DD_D >> gsl_sf.cc
2652
2653## Deprecated naming scheme
2654export octave_name=hzeta
2655export    funcname=gsl_sf_hzeta_e
2656${RT} DD_D >> gsl_sf.cc
2657