11 #if defined(__GNUC__) && __GNUC__ == 2 && defined(__cplusplus)
15 #include "tbci/specfun/prototypes.h"
16 #include "tbci/specfun/prototypes2.h"
21 #include "tbci/lapack/f2c.h"
33 static char fmt_900[] =
"(1x,2e14.7,10x,\002ARGUMENT OF GAMMA FUNCTION I\
34 S TOO CLOSE TO A POLE\002)";
35 static char fmt_910[] =
"(\002 ERROR - STIRLING*S SERIES HAS NOT CONVERG\
36 ED\002/14x,\002Z = \002,2e14.7)";
41 complex q__1, q__2, q__3, q__4, q__5, q__6;
60 static cilist io___9 = { 0, 0, 0, fmt_900, 0 };
61 static cilist io___18 = { 0, 0, 0, fmt_910, 0 };
67 pi.
r = (float)3.14159265359, pi.
i = (
float)0.;
79 xdist = x - (
integer) (x - (
float).5);
80 q__1.
r = xdist, q__1.
i =
y;
81 zm.
r = q__1.
r, zm.
i = q__1.
i;
82 if (
c_abs(&zm) >= tol) {
91 ret_val->
r = (float)1e7, ret_val->
i = (
float)0.;
102 q__1.
r = (float)1. - z__->
r, q__1.
i = (
float)0. - z__->
i;
103 z__->
r = q__1.
r, z__->
i = q__1.
i;
110 if (x >= (
float)10.) {
124 q__1.
r =
x, q__1.
i =
y;
125 t.
r = q__1.
r, t.
i = q__1.
i;
126 q__1.
r = t.
r * t.
r - t.
i * t.
i, q__1.
i = t.
r * t.
i + t.
i * t.
r;
127 tt.
r = q__1.
r, tt.
i = q__1.
i;
128 den.
r = t.
r, den.
i = t.
i;
130 c__[0] = (float).08333333333333333;
131 c__[1] = (float)-.002777777777777778;
132 c__[2] = (float)7.936507936507937e-4;
133 c__[3] = (float)-5.952380952380953e-4;
134 c__[4] = (float)8.417508417508417e-4;
135 c__[5] = (float)-.001917526917526918;
136 c__[6] = (float).00641025641025641;
137 c__[7] = (float)-.02955065359477124;
138 c__[8] = (float).1796443723688306;
139 c__[9] = (float)-1.392432216905901;
140 c__[10] = (float)13.40286404416839;
141 q__4.
r = t.
r - (float).5, q__4.
i = t.
i + (
float)0.;
143 q__3.
r = q__4.
r * q__5.
r - q__4.
i * q__5.
i, q__3.
i = q__4.
r * q__5.
i +
145 q__2.
r = q__3.
r - t.
r, q__2.
i = q__3.
i - t.
i;
146 r__1 =
log((
float)6.28318) * (float).5;
147 q__6.
r = r__1, q__6.
i = (float)0.;
148 q__1.
r = q__2.
r + q__6.
r, q__1.
i = q__2.
i + q__6.
i;
149 sum.
r = q__1.
r, sum.
i = q__1.
i;
153 q__2.
r = c__[i__1], q__2.
i = (float)0.;
154 c_div(&q__1, &q__2, &den);
155 term.
r = q__1.
r, term.
i = q__1.
i;
158 if ((r__1 = term.
r / sum.
r,
dabs(r__1)) >= tol) {
161 if (y == (
float)0.) {
168 q__1.
r = sum.
r + term.
r, q__1.
i = sum.
i + term.
i;
169 sum.
r = q__1.
r, sum.
i = q__1.
i;
171 q__1.
r = den.
r * tt.
r - den.
i * tt.
i, q__1.
i = den.
r * tt.
i + den.
i *
173 den.
r = q__1.
r, den.
i = q__1.
i;
194 for (i__ = 1; i__ <= i__1; ++i__) {
195 r__1 = i__ * (float)1. - (
float)1.;
196 q__1.
r = r__1, q__1.
i = (float)0.;
197 a.
r = q__1.
r, a.
i = q__1.
i;
199 q__3.
r = z__->
r + a.
r, q__3.
i = z__->
i + a.
i;
201 q__1.
r = sum.
r - q__2.
r, q__1.
i = sum.
i - q__2.
i;
202 sum.
r = q__1.
r, sum.
i = q__1.
i;
209 q__5.
r = pi.
r * z__->
r - pi.
i * z__->
i, q__5.
i = pi.
r * z__->
i + pi.
i *
212 c_div(&q__3, &pi, &q__4);
214 q__1.
r = q__2.
r - sum.
r, q__1.
i = q__2.
i - sum.
i;
215 sum.
r = q__1.
r, sum.
i = q__1.
i;
216 q__1.
r = (float)1. - z__->
r, q__1.
i = (
float)0. - z__->
i;
217 z__->
r = q__1.
r, z__->
i = q__1.
i;
220 ret_val->
r = q__1.
r, ret_val->
i = q__1.
i;
double c_abs(const complex *)
T sum(const FS_Vector< dims, T > &fv)
const Vector< T > const Vector< T > & x
void cgamma_(complex *ret_val, complex *z)
TBCI__ cplx< T > log(const TBCI__ cplx< T > &z)
void c_sin(complex *, const complex *)
integer do_fio(integer *, char *, ftnlen)
int integer
barf [ba:rf] 2.
void c_exp(complex *, const complex *)
void c_div(complex *, const complex *, const complex *)
double r_imag(const complex *)
const Vector< T > Vector< T > Vector< T > Vector< T > & y
void c_log(complex *, const complex *)
const unsigned TMatrix< T > const Matrix< T > * a