288 static doublereal rmax, numi[779], sumi[779], numr[779], sumr[779];
292 static doublereal xi, sigfig, xr, denomi[779], denomr[779], ai2;
294 static doublereal ar2, cr2, qi1[779], qi2[779], xi2, qr1[779], qr2[779],
306 d__1 = (ar2 - ar) * rmax;
310 d__1 = (ai2 - ai) * rmax;
314 d__1 = (cr2 - cr) * rmax;
318 d__1 = (ci2 - ci) * rmax;
320 xr2 = z__->
r * sigfig;
322 d__1 = (xr2 - xr) * rmax;
324 xi2 =
d_imag(z__) * sigfig;
326 d__1 = (xi2 - xi) * rmax;
335 for (i__ = 0; i__ <= i__1; ++i__) {
340 denomr[i__ + 1] = 0.;
341 denomi[i__ + 1] = 0.;
349 if (sumr[2] < (
float).5) {
351 }
else if (sumi[2] < (
float).5) {
355 d__1 = sumr[*l + 2], d__2 = sumi[*l + 2];
356 mx1 =
max(d__1,d__2);
358 if (numr[2] < (
float).5) {
360 }
else if (numi[2] < (
float).5) {
364 d__1 = numr[*l + 2], d__2 = numi[*l + 2];
365 mx2 =
max(d__1,d__2);
367 if (mx1 - mx2 > (
float)2.) {
369 z__3.
r = ar, z__3.
i = ai;
370 z__4.
r = xr, z__4.
i = xi;
371 z__2.
r = z__3.
r * z__4.
r - z__3.
i * z__4.
i, z__2.
i = z__3.
r *
372 z__4.
i + z__3.
i * z__4.
r;
373 z__6.
r = cr, z__6.
i = ci;
374 z__5.
r = cnt * z__6.
r, z__5.
i = cnt * z__6.
i;
375 z_div(&z__1, &z__2, &z__5);
376 if (
z_abs(&z__1) <= 1.) {
381 cmpmul_(sumr, sumi, &cr, &ci, qr1, qi1, l, &rmax);
382 cmpmul_(sumr, sumi, &cr2, &ci2, qr2, qi2, l, &rmax);
385 cmpadd_(qr1, qi1, qr2, qi2, sumr, sumi, l, &rmax);
386 armult_(sumr, &cnt, sumr, l, &rmax);
387 armult_(sumi, &cnt, sumi, l, &rmax);
388 cmpmul_(denomr, denomi, &cr, &ci, qr1, qi1, l, &rmax);
389 cmpmul_(denomr, denomi, &cr2, &ci2, qr2, qi2, l, &rmax);
392 cmpadd_(qr1, qi1, qr2, qi2, denomr, denomi, l, &rmax);
393 armult_(denomr, &cnt, denomr, l, &rmax);
394 armult_(denomi, &cnt, denomi, l, &rmax);
395 cmpmul_(numr, numi, &ar, &ai, qr1, qi1, l, &rmax);
396 cmpmul_(numr, numi, &ar2, &ai2, qr2, qi2, l, &rmax);
399 cmpadd_(qr1, qi1, qr2, qi2, numr, numi, l, &rmax);
400 cmpmul_(numr, numi, &xr, &xi, qr1, qi1, l, &rmax);
401 cmpmul_(numr, numi, &xr2, &xi2, qr2, qi2, l, &rmax);
404 cmpadd_(qr1, qi1, qr2, qi2, numr, numi, l, &rmax);
405 cmpadd_(sumr, sumi, numr, numi, sumr, sumi, l, &rmax);
411 arydiv_(sumr, sumi, denomr, denomi, &
final, l, lnchf, &rmax, &bit);
412 ret_val->
r =
final.r, ret_val->
i =
final.i;
452 for (i__ = 0; i__ <= i__1; ++i__) {
456 d__1 =
a[*l + 1] -
b[*l + 1];
458 if (
abs(
a[1]) < (
float).5 || ediff <= -(*l)) {
461 if (
abs(
b[1]) < (
float).5 || ediff >= *l) {
467 for (i__ = -1; i__ <= i__1; ++i__) {
474 for (i__ = -1; i__ <= i__1; ++i__) {
481 if ((d__1 =
a[-1] -
b[-1],
abs(d__1)) < (
float).5) {
485 z__[*l + 2] =
a[*l + 1];
489 z__[*l + 2] =
b[*l + 1];
494 for (i__ = 1; i__ <= i__1; ++i__) {
495 if (
a[i__] >
b[i__]) {
496 z__[*l + 2] =
a[*l + 1];
499 if (
a[i__] <
b[i__]) {
500 z__[*l + 2] =
b[*l + 1];
514 z__[*l + 2] =
a[*l + 1];
515 for (i__ = *l; i__ >= 1; --i__) {
516 z__[i__ + 1] =
a[i__] +
b[i__] + z__[i__ + 1];
517 if (z__[i__ + 1] >= *rmax) {
518 z__[i__ + 1] -= *rmax;
523 if (z__[1] > (
float).5) {
524 for (i__ = *l; i__ >= 1; --i__) {
525 z__[i__ + 1] = z__[i__];
533 z__[*l + 2] =
a[*l + 1];
535 for (i__ = *l; i__ >= i__1; --i__) {
536 z__[i__ + 1] =
a[i__] +
b[i__ - ediff] + z__[i__ + 1];
537 if (z__[i__ + 1] >= *rmax) {
538 z__[i__ + 1] -= *rmax;
543 for (i__ = ediff; i__ >= 1; --i__) {
544 z__[i__ + 1] =
a[i__] + z__[i__ + 1];
545 if (z__[i__ + 1] >= *rmax) {
546 z__[i__ + 1] -= *rmax;
551 if (z__[1] > (
float).5) {
552 for (i__ = *l; i__ >= 1; --i__) {
553 z__[i__ + 1] = z__[i__];
561 z__[*l + 2] =
b[*l + 1];
563 for (i__ = *l; i__ >= i__1; --i__) {
564 z__[i__ + 1] =
a[i__ + ediff] +
b[i__] + z__[i__ + 1];
565 if (z__[i__ + 1] >= *rmax) {
566 z__[i__ + 1] -= *rmax;
571 for (i__ = -ediff; i__ >= 1; --i__) {
572 z__[i__ + 1] =
b[i__] + z__[i__ + 1];
573 if (z__[i__ + 1] >= *rmax) {
574 z__[i__ + 1] -= *rmax;
579 if (z__[1] > (
float).5) {
580 for (i__ = *l; i__ >= 1; --i__) {
581 z__[i__ + 1] = z__[i__];
592 for (i__ = *l; i__ >= 1; --i__) {
593 z__[i__ + 1] =
a[i__] -
b[i__] + z__[i__ + 1];
594 if (z__[i__ + 1] < 0.) {
595 z__[i__ + 1] += *rmax;
603 for (i__ = *l; i__ >= i__1; --i__) {
604 z__[i__ + 1] =
a[i__] -
b[i__ - ediff] + z__[i__ + 1];
605 if (z__[i__ + 1] < 0.) {
606 z__[i__ + 1] += *rmax;
611 for (i__ = ediff; i__ >= 1; --i__) {
612 z__[i__ + 1] =
a[i__] + z__[i__ + 1];
613 if (z__[i__ + 1] < 0.) {
614 z__[i__ + 1] += *rmax;
624 for (i__ = *l; i__ >= 1; --i__) {
625 z__[i__ + 1] =
b[i__] -
a[i__] + z__[i__ + 1];
626 if (z__[i__ + 1] < 0.) {
627 z__[i__ + 1] += *rmax;
635 for (i__ = *l; i__ >= i__1; --i__) {
636 z__[i__ + 1] =
b[i__] -
a[i__ + ediff] + z__[i__ + 1];
637 if (z__[i__ + 1] < 0.) {
638 z__[i__ + 1] += *rmax;
643 for (i__ = -ediff; i__ >= 1; --i__) {
644 z__[i__ + 1] =
b[i__] + z__[i__ + 1];
645 if (z__[i__ + 1] < 0.) {
646 z__[i__ + 1] += *rmax;
652 if (z__[2] > (
float).5) {
658 if (z__[i__ + 1] < (
float).5 && i__ < *l + 1) {
668 for (j = 1; j <= i__1; ++j) {
669 z__[j + 1] = z__[j + i__];
673 for (j = *l + 2 - i__; j <= i__1; ++j) {
677 z__[*l + 2] = z__[*l + 2] - i__ + 1;
680 for (i__ = -1; i__ <= i__1; ++i__) {
681 c__[i__] = z__[i__ + 1];
685 if (c__[1] < (
float).5) {
931 static doublereal n1, n2, n3, x1, x2, ae[4] , be[4]
934 static doublereal ri10, phi, rr10, dum1, dum2;
943 x = rexp * (ar[*l + 1] - 2);
947 x = rexp * (ai[*l + 1] - 2);
951 d__1 = ar[1] * *rmax * *rmax + ar[2] * *rmax + ar[3];
952 dum1 =
d_sign(&d__1, &ar[-1]);
953 d__1 = ai[1] * *rmax * *rmax + ai[2] * *rmax + ai[3];
954 dum2 =
d_sign(&d__1, &ai[-1]);
957 z__1.
r = dum1, z__1.
i = dum2;
961 x = rexp * (br[*l + 1] - 2);
965 x = rexp * (bi[*l + 1] - 2);
969 d__1 = br[1] * *rmax * *rmax + br[2] * *rmax + br[3];
970 dum1 =
d_sign(&d__1, &br[-1]);
971 d__1 = bi[1] * *rmax * *rmax + bi[2] * *rmax + bi[3];
972 dum2 =
d_sign(&d__1, &bi[-1]);
975 z__1.
r = dum1, z__1.
i = dum2;
983 emult_(ce, &ce[2], ce, &ce[2], &n1, &e1);
984 emult_(&ce[1], &ce[3], &ce[1], &ce[3], &n2, &e2);
985 eadd_(&n1, &e1, &n2, &e2, &n3, &e3);
991 }
else if (e1 < -74.) {
997 d__1 = (
log(n3) + e3 *
log(10.)) * .5;
998 z__1.
r = d__1, z__1.
i = phi;
999 c__->
r = z__1.
r, c__->
i = z__1.
i;
1284 static char fmt_300[] =
"(1x,\002 RESULT FROM CONHYP=\002,1p,2d25.12)";
1285 static char fmt_301[] =
"(1x,\002 EXPECTED RESULT=\002,3x,1p,2d25.12)";
1301 static cilist io___88 = { 0, 5, 0, 0, 0 };
1302 static cilist io___90 = { 0, 6, 0, 0, 0 };
1303 static cilist io___91 = { 0, 5, 0, 0, 0 };
1304 static cilist io___93 = { 0, 6, 0, 0, 0 };
1305 static cilist io___94 = { 0, 5, 0, 0, 0 };
1306 static cilist io___96 = { 0, 6, 0, 0, 0 };
1307 static cilist io___97 = { 0, 5, 0, 0, 0 };
1308 static cilist io___99 = { 0, 6, 0, 0, 0 };
1309 static cilist io___100 = { 0, 5, 0, 0, 0 };
1310 static cilist io___102 = { 0, 6, 0, 0, 0 };
1311 static cilist io___104 = { 0, 6, 0, fmt_300, 0 };
1312 static cilist io___107 = { 0, 6, 0, fmt_301, 0 };
1361 conhyp_(&z__1, &
a, &
b, &z__, &lnchf, &ip);
1362 chf.
r = z__1.
r, chf.
i = z__1.
i;
1366 ar = 2.31145634403113e-12;
1367 ai = -1.96169649634905e-11;