|
|
1.1 root 1: ./ ADD NAME=libF77/README TIME=627343162
2: If your system lacks onexit() and you are not using an ANSI C
3: compiler, then you should compile main.c with NO_ONEXIT defined.
4: See the comments about onexit in the makefile.
5:
6: If your system lacks a _cleanup routine (which is called just
7: before abort(), e.g. to flush buffers), just add a dummy, i.e.,
8: _cleanup() {}
9: to libF77.
10: ./ ADD NAME=libF77/makefile TIME=627748011
11: .SUFFIXES: .c .o
12: # compile, then strip unnecessary symbols
13: .c.o:
14: cc -O -c $*.c
15: ld -r -x $*.o
16: mv a.out $*.o
17:
18: MISC = Version.o main.o s_rnge.o abort_.o getarg_.o iargc_.o getenv_.o\
19: signal_.o s_stop.o s_paus.o system_.o cabs.o\
20: derf_.o derfc_.o erf_.o erfc_.o
21: POW = pow_ci.o pow_dd.o pow_di.o pow_hh.o pow_ii.o pow_ri.o pow_zi.o pow_zz.o
22: CX = c_abs.o c_cos.o c_div.o c_exp.o c_log.o c_sin.o c_sqrt.o
23: DCX = z_abs.o z_cos.o z_div.o z_exp.o z_log.o z_sin.o z_sqrt.o
24: REAL = r_abs.o r_acos.o r_asin.o r_atan.o r_atn2.o r_cnjg.o r_cos.o\
25: r_cosh.o r_dim.o r_exp.o r_imag.o r_int.o\
26: r_lg10.o r_log.o r_mod.o r_nint.o r_sign.o\
27: r_sin.o r_sinh.o r_sqrt.o r_tan.o r_tanh.o
28: DBL = d_abs.o d_acos.o d_asin.o d_atan.o d_atn2.o\
29: d_cnjg.o d_cos.o d_cosh.o d_dim.o d_exp.o\
30: d_imag.o d_int.o d_lg10.o d_log.o d_mod.o\
31: d_nint.o d_prod.o d_sign.o d_sin.o d_sinh.o\
32: d_sqrt.o d_tan.o d_tanh.o
33: INT = i_abs.o i_dim.o i_dnnt.o i_indx.o i_len.o i_mod.o i_nint.o i_sign.o
34: HALF = h_abs.o h_dim.o h_dnnt.o h_indx.o h_len.o h_mod.o h_nint.o h_sign.o
35: CMP = l_ge.o l_gt.o l_le.o l_lt.o hl_ge.o hl_gt.o hl_le.o hl_lt.o
36: EFL = ef1asc_.o ef1cmc_.o
37: CHAR = s_cat.o s_cmp.o s_copy.o
38:
39: libF77.a : $(MISC) $(POW) $(CX) $(DCX) $(REAL) $(DBL) $(INT) \
40: $(HALF) $(CMP) $(EFL) $(CHAR)
41: ar r libF77.a $?
42: ranlib libF77.a
43:
44: Version.o: Version.c
45: cc -c Version.c
46:
47: # If your system lacks onexit() and you are not using an
48: # ANSI C compiler, then you should uncomment the following
49: # two lines (for compiling main.o):
50: #main.o: main.c
51: # cc -c -DNO_ONEXIT main.c
52: # On at least some Sun systems, it is more appropriate to
53: # uncomment the following two lines:
54: #main.o: main.c
55: # cc -c -Donexit=on_exit main.c
56:
57: install: libF77.a
58: mv libF77.a /usr/lib
59:
60: clean:
61: rm -f libF77.a *.o
62: ./ ADD NAME=libF77/Version.c TIME=628430639
63: static char junk[] = "\n@(#)LIBF77 VERSION 2.01 30 Nov. 1989\n";
64:
65: /*
66: 2.00 11 June 1980. File version.c added to library.
67: 2.01 31 May 1988. s_paus() flushes stderr; names of hl_* fixed
68: [ d]erf[c ] added
69: 8 Aug. 1989: #ifdefs for f2c -i2 added to s_cat.c
70: 29 Nov. 1989: s_cmp returns long (for f2c).
71: 30 Nov. 1989: arg types from argtypes.h
72: */
73: ./ ADD NAME=libF77/abort_.c TIME=628474861
74: #include "stdio.h"
75: #include "f2c.h"
76:
77: extern VOID abort();
78:
79: VOID abort_()
80: {
81: fprintf(stderr, "Fortran abort routine called\n");
82: _cleanup();
83: abort();
84: }
85: ./ ADD NAME=libF77/c_abs.c TIME=628437500
86: #include "f2c.h"
87:
88: double c_abs(z)
89: complex *z;
90: {
91: double cabs();
92:
93: return( cabs( z->r, z->i ) );
94: }
95: ./ ADD NAME=libF77/c_cos.c TIME=628437500
96: #include "f2c.h"
97:
98: VOID c_cos(r, z)
99: complex *r, *z;
100: {
101: double sin(), cos(), sinh(), cosh();
102:
103: r->r = cos(z->r) * cosh(z->i);
104: r->i = - sin(z->r) * sinh(z->i);
105: }
106: ./ ADD NAME=libF77/c_div.c TIME=628437671
107: #include "f2c.h"
108:
109: VOID c_div(c, a, b)
110: complex *a, *b, *c;
111: {
112: double ratio, den;
113: double abr, abi;
114:
115: if( (abr = b->r) < 0.)
116: abr = - abr;
117: if( (abi = b->i) < 0.)
118: abi = - abi;
119: if( abr <= abi )
120: {
121: if(abi == 0)
122: abort(); /* fatal("complex division by zero"); */
123: ratio = b->r / b->i ;
124: den = b->i * (1 + ratio*ratio);
125: c->r = (a->r*ratio + a->i) / den;
126: c->i = (a->i*ratio - a->r) / den;
127: }
128:
129: else
130: {
131: ratio = b->i / b->r ;
132: den = b->r * (1 + ratio*ratio);
133: c->r = (a->r + a->i*ratio) / den;
134: c->i = (a->i - a->r*ratio) / den;
135: }
136: }
137: ./ ADD NAME=libF77/c_exp.c TIME=628437500
138: #include "f2c.h"
139:
140: VOID c_exp(r, z)
141: complex *r, *z;
142: {
143: double expx;
144: double exp(), cos(), sin();
145:
146: expx = exp(z->r);
147: r->r = expx * cos(z->i);
148: r->i = expx * sin(z->i);
149: }
150: ./ ADD NAME=libF77/c_log.c TIME=628437500
151: #include "f2c.h"
152:
153: VOID c_log(r, z)
154: complex *r, *z;
155: {
156: double log(), cabs(), atan2();
157:
158: r->i = atan2(z->i, z->r);
159: r->r = log( cabs(z->r, z->i) );
160: }
161: ./ ADD NAME=libF77/c_sin.c TIME=628437501
162: #include "f2c.h"
163:
164: VOID c_sin(r, z)
165: complex *r, *z;
166: {
167: double sin(), cos(), sinh(), cosh();
168:
169: r->r = sin(z->r) * cosh(z->i);
170: r->i = cos(z->r) * sinh(z->i);
171: }
172: ./ ADD NAME=libF77/c_sqrt.c TIME=628437501
173: #include "f2c.h"
174:
175: VOID c_sqrt(r, z)
176: complex *r, *z;
177: {
178: double mag, sqrt(), cabs();
179:
180: if( (mag = cabs(z->r, z->i)) == 0.)
181: r->r = r->i = 0.;
182: else if(z->r > 0)
183: {
184: r->r = sqrt(0.5 * (mag + z->r) );
185: r->i = z->i / r->r / 2;
186: }
187: else
188: {
189: r->i = sqrt(0.5 * (mag - z->r) );
190: if(z->i < 0)
191: r->i = - r->i;
192: r->r = z->i / r->i /2;
193: }
194: }
195: ./ ADD NAME=libF77/cabs.c TIME=379733534
196: double cabs(real, imag)
197: double real, imag;
198: {
199: double temp, sqrt();
200:
201: if(real < 0)
202: real = -real;
203: if(imag < 0)
204: imag = -imag;
205: if(imag > real){
206: temp = real;
207: real = imag;
208: imag = temp;
209: }
210: if((real+imag) == real)
211: return(real);
212:
213: temp = imag/real;
214: temp = real*sqrt(1.0 + temp*temp); /*overflow!!*/
215: return(temp);
216: }
217: ./ ADD NAME=libF77/argtypes.h TIME=628436547
218: typedef long integer;
219: typedef short shortint;
220: typedef double doublereal;
221: typedef float real;
222: typedef struct { float real, imag; } complex;
223: typedef struct { double dreal, dimag; } dcomplex;
224: typedef void VOID;
225: /* VOID can be int on systems that do not recognize void */
226: ./ ADD NAME=libF77/d_abs.c TIME=628437501
227: #include "f2c.h"
228:
229: double d_abs(x)
230: doublereal *x;
231: {
232: if(*x >= 0)
233: return(*x);
234: return(- *x);
235: }
236: ./ ADD NAME=libF77/d_acos.c TIME=628437502
237: #include "f2c.h"
238:
239: double d_acos(x)
240: doublereal *x;
241: {
242: double acos();
243: return( acos(*x) );
244: }
245: ./ ADD NAME=libF77/d_asin.c TIME=628437502
246: #include "f2c.h"
247:
248: double d_asin(x)
249: doublereal *x;
250: {
251: double asin();
252: return( asin(*x) );
253: }
254: ./ ADD NAME=libF77/d_atan.c TIME=628437502
255: #include "f2c.h"
256:
257: double d_atan(x)
258: doublereal *x;
259: {
260: double atan();
261: return( atan(*x) );
262: }
263: ./ ADD NAME=libF77/d_atn2.c TIME=628437502
264: #include "f2c.h"
265:
266: double d_atn2(x,y)
267: doublereal *x, *y;
268: {
269: double atan2();
270: return( atan2(*x,*y) );
271: }
272: ./ ADD NAME=libF77/d_cnjg.c TIME=628437502
273: #include "f2c.h"
274:
275: d_cnjg(r, z)
276: doublecomplex *r, *z;
277: {
278: r->r = z->r;
279: r->i = - z->i;
280: }
281: ./ ADD NAME=libF77/d_cos.c TIME=628437502
282: #include "f2c.h"
283:
284: double d_cos(x)
285: doublereal *x;
286: {
287: double cos();
288: return( cos(*x) );
289: }
290: ./ ADD NAME=libF77/d_cosh.c TIME=628437503
291: #include "f2c.h"
292:
293: double d_cosh(x)
294: doublereal *x;
295: {
296: double cosh();
297: return( cosh(*x) );
298: }
299: ./ ADD NAME=libF77/d_dim.c TIME=628437503
300: #include "f2c.h"
301:
302: double d_dim(a,b)
303: doublereal *a, *b;
304: {
305: return( *a > *b ? *a - *b : 0);
306: }
307: ./ ADD NAME=libF77/d_exp.c TIME=628437503
308: #include "f2c.h"
309:
310: double d_exp(x)
311: doublereal *x;
312: {
313: double exp();
314: return( exp(*x) );
315: }
316: ./ ADD NAME=libF77/d_imag.c TIME=628437503
317: #include "f2c.h"
318:
319: double d_imag(z)
320: doublecomplex *z;
321: {
322: return(z->i);
323: }
324: ./ ADD NAME=libF77/d_int.c TIME=628437503
325: #include "f2c.h"
326:
327: double d_int(x)
328: doublereal *x;
329: {
330: double floor();
331:
332: return( (*x>0) ? floor(*x) : -floor(- *x) );
333: }
334: ./ ADD NAME=libF77/d_lg10.c TIME=628437503
335: #include "f2c.h"
336:
337: #define log10e 0.43429448190325182765
338:
339: double d_lg10(x)
340: doublereal *x;
341: {
342: double log();
343:
344: return( log10e * log(*x) );
345: }
346: ./ ADD NAME=libF77/d_log.c TIME=628437503
347: #include "f2c.h"
348:
349: double d_log(x)
350: doublereal *x;
351: {
352: double log();
353: return( log(*x) );
354: }
355: ./ ADD NAME=libF77/d_mod.c TIME=628437503
356: #include "f2c.h"
357:
358: double d_mod(x,y)
359: doublereal *x, *y;
360: {
361: double floor(), quotient;
362: if( (quotient = *x / *y) >= 0)
363: quotient = floor(quotient);
364: else
365: quotient = -floor(-quotient);
366: return(*x - (*y) * quotient );
367: }
368: ./ ADD NAME=libF77/d_nint.c TIME=628437504
369: #include "f2c.h"
370:
371: double d_nint(x)
372: doublereal *x;
373: {
374: double floor();
375:
376: return( (*x)>=0 ?
377: floor(*x + .5) : -floor(.5 - *x) );
378: }
379: ./ ADD NAME=libF77/d_prod.c TIME=628437504
380: #include "f2c.h"
381:
382: double d_prod(x,y)
383: real *x, *y;
384: {
385: return( (*x) * (*y) );
386: }
387: ./ ADD NAME=libF77/d_sign.c TIME=628437504
388: #include "f2c.h"
389:
390: double d_sign(a,b)
391: doublereal *a, *b;
392: {
393: double x;
394: x = (*a >= 0 ? *a : - *a);
395: return( *b >= 0 ? x : -x);
396: }
397: ./ ADD NAME=libF77/d_sin.c TIME=628437504
398: #include "f2c.h"
399:
400: double d_sin(x)
401: doublereal *x;
402: {
403: double sin();
404: return( sin(*x) );
405: }
406: ./ ADD NAME=libF77/d_sinh.c TIME=628437504
407: #include "f2c.h"
408:
409: double d_sinh(x)
410: doublereal *x;
411: {
412: double sinh();
413: return( sinh(*x) );
414: }
415: ./ ADD NAME=libF77/d_sqrt.c TIME=628437504
416: #include "f2c.h"
417:
418: double d_sqrt(x)
419: doublereal *x;
420: {
421: double sqrt();
422: return( sqrt(*x) );
423: }
424: ./ ADD NAME=libF77/d_tan.c TIME=628437504
425: #include "f2c.h"
426:
427: double d_tan(x)
428: doublereal *x;
429: {
430: double tan();
431: return( tan(*x) );
432: }
433: ./ ADD NAME=libF77/d_tanh.c TIME=628437504
434: #include "f2c.h"
435:
436: double d_tanh(x)
437: doublereal *x;
438: {
439: double tanh();
440: return( tanh(*x) );
441: }
442: ./ ADD NAME=libF77/derf_.c TIME=628437505
443: #include "f2c.h"
444:
445: double derf_(x)
446: doublereal *x;
447: {
448: double erf();
449:
450: return( erf(*x) );
451: }
452: ./ ADD NAME=libF77/derfc_.c TIME=628437505
453: #include "f2c.h"
454:
455: double derfc_(x)
456: doublereal *x;
457: {
458: double erfc();
459:
460: return( erfc(*x) );
461: }
462: ./ ADD NAME=libF77/ef1asc_.c TIME=628437505
463: /* EFL support routine to copy string b to string a */
464:
465: #include "f2c.h"
466:
467: extern VOID s_copy();
468:
469: #define M ( (long) (sizeof(long) - 1) )
470: #define EVEN(x) ( ( (x)+ M) & (~M) )
471:
472: VOID ef1asc_(a, la, b, lb)
473: int *a, *b;
474: long int *la, *lb;
475: {
476: s_copy( (char *)a, (char *)b, EVEN(*la), *lb );
477: }
478: ./ ADD NAME=libF77/ef1cmc_.c TIME=628437505
479: /* EFL support routine to compare two character strings */
480:
481: #include "f2c.h"
482:
483: extern integer s_cmp();
484:
485: integer ef1cmc_(a, la, b, lb)
486: integer *a, *b;
487: integer *la, *lb;
488: {
489: return( s_cmp( (char *)a, (char *)b, *la, *lb) );
490: }
491: ./ ADD NAME=libF77/erf_.c TIME=628437505
492: #include "f2c.h"
493:
494: double erf_(x)
495: real *x;
496: {
497: double erf();
498:
499: return( erf(*x) );
500: }
501: ./ ADD NAME=libF77/erfc_.c TIME=628437505
502: #include "f2c.h"
503:
504: double erfc_(x)
505: real *x;
506: {
507: double erfc();
508:
509: return( erfc(*x) );
510: }
511: ./ ADD NAME=libF77/getarg_.c TIME=628437505
512: #include "f2c.h"
513:
514: /*
515: * subroutine getarg(k, c)
516: * returns the kth unix command argument in fortran character
517: * variable argument c
518: */
519:
520: VOID getarg_(n, s, ls)
521: long int *n;
522: register char *s;
523: long int ls;
524: {
525: extern int xargc;
526: extern char **xargv;
527: register char *t;
528: register int i;
529:
530: if(*n>=0 && *n<xargc)
531: t = xargv[*n];
532: else
533: t = "";
534: for(i = 0; i<ls && *t!='\0' ; ++i)
535: *s++ = *t++;
536: for( ; i<ls ; ++i)
537: *s++ = ' ';
538: }
539: ./ ADD NAME=libF77/getenv_.c TIME=628437505
540: #include "f2c.h"
541:
542: /*
543: * getenv - f77 subroutine to return environment variables
544: *
545: * called by:
546: * call getenv (ENV_NAME, char_var)
547: * where:
548: * ENV_NAME is the name of an environment variable
549: * char_var is a character variable which will receive
550: * the current value of ENV_NAME, or all blanks
551: * if ENV_NAME is not defined
552: */
553:
554: VOID getenv_(fname, value, flen, vlen)
555: char *value, *fname;
556: long int vlen, flen;
557: {
558: extern char **environ;
559: register char *ep, *fp, *flast;
560: register char **env = environ;
561:
562: flast = fname + flen;
563: for(fp = fname ; fp < flast ; ++fp)
564: if(*fp == ' ')
565: {
566: flast = fp;
567: break;
568: }
569:
570: while (ep = *env++)
571: {
572: for(fp = fname; fp<flast ; )
573: if(*fp++ != *ep++)
574: goto endloop;
575:
576: if(*ep++ == '=') /* copy right hand side */
577: while( *ep && --vlen>=0 )
578: *value++ = *ep++;
579:
580: goto blank;
581:
582: endloop: ;
583: }
584:
585: blank:
586: while( --vlen >= 0 )
587: *value++ = ' ';
588: }
589: ./ ADD NAME=libF77/h_abs.c TIME=628437506
590: #include "f2c.h"
591:
592: extern integer s_cmp();
593:
594: shortint h_abs(x)
595: shortint *x;
596: {
597: if(*x >= 0)
598: return(*x);
599: return(- *x);
600: }
601: ./ ADD NAME=libF77/h_dim.c TIME=628437506
602: #include "f2c.h"
603:
604: extern integer s_cmp();
605:
606: shortint h_dim(a,b)
607: shortint *a, *b;
608: {
609: return( *a > *b ? *a - *b : 0);
610: }
611: ./ ADD NAME=libF77/h_dnnt.c TIME=628437506
612: #include "f2c.h"
613:
614: extern integer s_cmp();
615:
616: shortint h_dnnt(x)
617: doublereal *x;
618: {
619: double floor();
620:
621: return( (*x)>=0 ?
622: floor(*x + .5) : -floor(.5 - *x) );
623: }
624: ./ ADD NAME=libF77/h_indx.c TIME=628437506
625: #include "f2c.h"
626:
627: extern integer s_cmp();
628:
629: shortint h_indx(a, b, la, lb)
630: char *a, *b;
631: long int la, lb;
632: {
633: int i, n;
634: char *s, *t, *bend;
635:
636: n = la - lb + 1;
637: bend = b + lb;
638:
639: for(i = 0 ; i < n ; ++i)
640: {
641: s = a + i;
642: t = b;
643: while(t < bend)
644: if(*s++ != *t++)
645: goto no;
646: return(i+1);
647: no: ;
648: }
649: return(0);
650: }
651: ./ ADD NAME=libF77/h_len.c TIME=628437506
652: #include "f2c.h"
653:
654: extern integer s_cmp();
655:
656: shortint h_len(s, n)
657: char *s;
658: long int n;
659: {
660: return(n);
661: }
662: ./ ADD NAME=libF77/h_mod.c TIME=628437506
663: #include "f2c.h"
664:
665: extern integer s_cmp();
666:
667: shortint h_mod(a,b)
668: short *a, *b;
669: {
670: return( *a % *b);
671: }
672: ./ ADD NAME=libF77/h_nint.c TIME=628437506
673: #include "f2c.h"
674:
675: extern integer s_cmp();
676:
677: shortint h_nint(x)
678: real *x;
679: {
680: double floor();
681:
682: return( (*x)>=0 ?
683: floor(*x + .5) : -floor(.5 - *x) );
684: }
685: ./ ADD NAME=libF77/h_sign.c TIME=628437507
686: #include "f2c.h"
687:
688: extern integer s_cmp();
689:
690: shortint h_sign(a,b)
691: shortint *a, *b;
692: {
693: shortint x;
694: x = (*a >= 0 ? *a : - *a);
695: return( *b >= 0 ? x : -x);
696: }
697: ./ ADD NAME=libF77/hl_ge.c TIME=628437507
698: #include "f2c.h"
699:
700: extern integer s_cmp();
701:
702: shortint hl_ge(a,b,la,lb)
703: char *a, *b;
704: long int la, lb;
705: {
706: return(s_cmp(a,b,la,lb) >= 0);
707: }
708: ./ ADD NAME=libF77/hl_gt.c TIME=628437507
709: #include "f2c.h"
710:
711: extern integer s_cmp();
712:
713: shortint hl_gt(a,b,la,lb)
714: char *a, *b;
715: long int la, lb;
716: {
717: return(s_cmp(a,b,la,lb) > 0);
718: }
719: ./ ADD NAME=libF77/hl_le.c TIME=628437507
720: #include "f2c.h"
721:
722: extern integer s_cmp();
723:
724: shortint hl_le(a,b,la,lb)
725: char *a, *b;
726: long int la, lb;
727: {
728: return(s_cmp(a,b,la,lb) <= 0);
729: }
730: ./ ADD NAME=libF77/hl_lt.c TIME=628437507
731: #include "f2c.h"
732:
733: extern integer s_cmp();
734:
735: shortint hl_lt(a,b,la,lb)
736: char *a, *b;
737: long int la, lb;
738: {
739: return(s_cmp(a,b,la,lb) < 0);
740: }
741: ./ ADD NAME=libF77/i_abs.c TIME=628437507
742: #include "f2c.h"
743:
744: integer i_abs(x)
745: integer *x;
746: {
747: if(*x >= 0)
748: return(*x);
749: return(- *x);
750: }
751: ./ ADD NAME=libF77/i_dim.c TIME=628437507
752: #include "f2c.h"
753:
754: integer i_dim(a,b)
755: integer *a, *b;
756: {
757: return( *a > *b ? *a - *b : 0);
758: }
759: ./ ADD NAME=libF77/i_dnnt.c TIME=628437507
760: #include "f2c.h"
761:
762: integer i_dnnt(x)
763: doublereal *x;
764: {
765: double floor();
766:
767: return( (*x)>=0 ?
768: floor(*x + .5) : -floor(.5 - *x) );
769: }
770: ./ ADD NAME=libF77/i_indx.c TIME=628437507
771: #include "f2c.h"
772:
773: integer i_indx(a, b, la, lb)
774: char *a, *b;
775: long int la, lb;
776: {
777: long int i, n;
778: char *s, *t, *bend;
779:
780: n = la - lb + 1;
781: bend = b + lb;
782:
783: for(i = 0 ; i < n ; ++i)
784: {
785: s = a + i;
786: t = b;
787: while(t < bend)
788: if(*s++ != *t++)
789: goto no;
790: return(i+1);
791: no: ;
792: }
793: return(0);
794: }
795: ./ ADD NAME=libF77/i_len.c TIME=628437508
796: #include "f2c.h"
797:
798: integer i_len(s, n)
799: char *s;
800: long int n;
801: {
802: return(n);
803: }
804: ./ ADD NAME=libF77/i_mod.c TIME=628437508
805: #include "f2c.h"
806:
807: integer i_mod(a,b)
808: integer *a, *b;
809: {
810: return( *a % *b);
811: }
812: ./ ADD NAME=libF77/i_nint.c TIME=628437508
813: #include "f2c.h"
814:
815: integer i_nint(x)
816: real *x;
817: {
818: double floor();
819:
820: return( (*x)>=0 ?
821: floor(*x + .5) : -floor(.5 - *x) );
822: }
823: ./ ADD NAME=libF77/i_sign.c TIME=628437508
824: #include "f2c.h"
825:
826: integer i_sign(a,b)
827: integer *a, *b;
828: {
829: integer x;
830: x = (*a >= 0 ? *a : - *a);
831: return( *b >= 0 ? x : -x);
832: }
833: ./ ADD NAME=libF77/iargc_.c TIME=628437508
834: #include "f2c.h"
835:
836: integer iargc_()
837: {
838: extern int xargc;
839: return ( xargc - 1 );
840: }
841: ./ ADD NAME=libF77/l_ge.c TIME=628437508
842: #include "f2c.h"
843:
844: extern integer s_cmp();
845:
846: integer l_ge(a,b,la,lb)
847: char *a, *b;
848: long int la, lb;
849: {
850: return(s_cmp(a,b,la,lb) >= 0);
851: }
852: ./ ADD NAME=libF77/l_gt.c TIME=628437508
853: #include "f2c.h"
854:
855: extern integer s_cmp();
856:
857: integer l_gt(a,b,la,lb)
858: char *a, *b;
859: long int la, lb;
860: {
861: return(s_cmp(a,b,la,lb) > 0);
862: }
863: ./ ADD NAME=libF77/l_le.c TIME=628437508
864: #include "f2c.h"
865:
866: extern integer s_cmp();
867:
868: integer l_le(a,b,la,lb)
869: char *a, *b;
870: long int la, lb;
871: {
872: return(s_cmp(a,b,la,lb) <= 0);
873: }
874: ./ ADD NAME=libF77/l_lt.c TIME=628437509
875: #include "f2c.h"
876:
877: integer l_lt(a,b,la,lb)
878: char *a, *b;
879: long la, lb;
880: {
881: return(s_cmp(a,b,la,lb) < 0);
882: }
883: ./ ADD NAME=libF77/main.c TIME=628524317
884: /* STARTUP PROCEDURE FOR UNIX FORTRAN PROGRAMS */
885:
886: #include "stdio.h"
887: #include "signal.h"
888:
889: #ifndef SIGIOT
890: #define SIGIOT SIGABRT
891: #endif
892:
893: #ifdef NO__STDC
894: #define ONEXIT onexit
895: extern void f_exit();
896: #else
897: #ifdef __STDC__
898: #include "stdlib.h"
899: extern void f_exit(void);
900: #ifndef NO_ONEXIT
901: #define ONEXIT atexit
902: extern int atexit(void (*)(void));
903: #endif
904: #else
905: #ifndef NO_ONEXIT
906: #define ONEXIT onexit
907: extern void f_exit();
908: #endif
909: #endif
910: #endif
911:
912: static void sigdie(s, kill)
913: register char *s;
914: int kill;
915: {
916: /* print error message, then clear buffers */
917: fflush(stderr);
918: fprintf(stderr, "%s\n", s);
919: f_exit();
920: fflush(stderr);
921:
922: if(kill)
923: {
924: /* now get a core */
925: signal(SIGIOT, 0);
926: abort();
927: }
928: else
929: exit(1);
930: }
931:
932: static void sigfdie(n)
933: {
934: sigdie("Floating Exception", 1);
935: }
936:
937:
938:
939: static void sigidie(n)
940: {
941: sigdie("IOT Trap", 1);
942: }
943:
944:
945: static void sigqdie(n)
946: {
947: sigdie("Quit signal", 1);
948: }
949:
950:
951:
952: static void sigindie(n)
953: {
954: sigdie("Interrupt", 0);
955: }
956:
957:
958:
959: static void sigtdie(n)
960: {
961: sigdie("Killed", 0);
962: }
963:
964:
965: int xargc;
966: char **xargv;
967:
968: main(argc, argv)
969: int argc;
970: char **argv;
971: {
972: xargc = argc;
973: xargv = argv;
974: signal(SIGFPE, sigfdie); /* ignore underflow, enable overflow */
975: signal(SIGIOT, sigidie);
976: #ifdef SIGQUIT
977: if( (int)signal(SIGQUIT,sigqdie) & 01) signal(SIGQUIT, SIG_IGN);
978: #endif
979: if( (int)signal(SIGINT, sigindie) & 01) signal(SIGINT, SIG_IGN);
980: signal(SIGTERM,sigtdie);
981:
982: #ifdef pdp11
983: ldfps(01200); /* detect overflow as an exception */
984: #endif
985:
986: f_init();
987: #ifndef NO_ONEXIT
988: ONEXIT(f_exit);
989: #endif
990: MAIN__();
991: #ifdef NO_ONEXIT
992: f_exit();
993: #endif
994: }
995: ./ ADD NAME=libF77/pow_ci.c TIME=628438069
996: #include "f2c.h"
997:
998: VOID pow_ci(p, a, b) /* p = a**b */
999: complex *p, *a;
1000: integer *b;
1001: {
1002: doublecomplex p1, a1;
1003:
1004: a1.r = a->r;
1005: a1.i = a->i;
1006:
1007: pow_zi(&p1, &a1, b);
1008:
1009: p->r = p1.r;
1010: p->i = p1.i;
1011: }
1012: ./ ADD NAME=libF77/pow_dd.c TIME=628437509
1013: #include "f2c.h"
1014:
1015: double pow_dd(ap, bp)
1016: doublereal *ap, *bp;
1017: {
1018: double pow();
1019:
1020: return(pow(*ap, *bp) );
1021: }
1022: ./ ADD NAME=libF77/pow_di.c TIME=628437509
1023: #include "f2c.h"
1024:
1025: double pow_di(ap, bp)
1026: doublereal *ap;
1027: integer *bp;
1028: {
1029: double pow, x;
1030: integer n;
1031:
1032: pow = 1;
1033: x = *ap;
1034: n = *bp;
1035:
1036: if(n != 0)
1037: {
1038: if(n < 0)
1039: {
1040: if(x == 0)
1041: {
1042: return(pow);
1043: }
1044: n = -n;
1045: x = 1/x;
1046: }
1047: for( ; ; )
1048: {
1049: if(n & 01)
1050: pow *= x;
1051: if(n >>= 1)
1052: x *= x;
1053: else
1054: break;
1055: }
1056: }
1057: return(pow);
1058: }
1059: ./ ADD NAME=libF77/pow_hh.c TIME=628437509
1060: #include "f2c.h"
1061:
1062: shortint pow_hh(ap, bp)
1063: shortint *ap, *bp;
1064: {
1065: shortint pow, x, n;
1066:
1067: pow = 1;
1068: x = *ap;
1069: n = *bp;
1070:
1071: if(n < 0)
1072: { }
1073: else if(n > 0)
1074: for( ; ; )
1075: {
1076: if(n & 01)
1077: pow *= x;
1078: if(n >>= 1)
1079: x *= x;
1080: else
1081: break;
1082: }
1083: return(pow);
1084: }
1085: ./ ADD NAME=libF77/pow_ii.c TIME=628437509
1086: #include "f2c.h"
1087:
1088: integer pow_ii(ap, bp)
1089: integer *ap, *bp;
1090: {
1091: integer pow, x, n;
1092:
1093: pow = 1;
1094: x = *ap;
1095: n = *bp;
1096:
1097: if(n < 0)
1098: { }
1099: else if(n > 0)
1100: for( ; ; )
1101: {
1102: if(n & 01)
1103: pow *= x;
1104: if(n >>= 1)
1105: x *= x;
1106: else
1107: break;
1108: }
1109: return(pow);
1110: }
1111: ./ ADD NAME=libF77/pow_ri.c TIME=628437509
1112: #include "f2c.h"
1113:
1114: double pow_ri(ap, bp)
1115: real *ap;
1116: integer *bp;
1117: {
1118: double pow, x;
1119: integer n;
1120:
1121: pow = 1;
1122: x = *ap;
1123: n = *bp;
1124:
1125: if(n != 0)
1126: {
1127: if(n < 0)
1128: {
1129: if(x == 0)
1130: {
1131: return(pow);
1132: }
1133: n = -n;
1134: x = 1/x;
1135: }
1136: for( ; ; )
1137: {
1138: if(n & 01)
1139: pow *= x;
1140: if(n >>= 1)
1141: x *= x;
1142: else
1143: break;
1144: }
1145: }
1146: return(pow);
1147: }
1148: ./ ADD NAME=libF77/pow_zi.c TIME=628438134
1149: #include "f2c.h"
1150:
1151: VOID pow_zi(p, a, b) /* p = a**b */
1152: doublecomplex *p, *a;
1153: integer *b;
1154: {
1155: integer n;
1156: double t;
1157: doublecomplex x;
1158: static doublecomplex one = {1.0, 0.0};
1159:
1160: n = *b;
1161: p->r = 1;
1162: p->i = 0;
1163:
1164: if(n == 0)
1165: return;
1166: if(n < 0)
1167: {
1168: n = -n;
1169: z_div(&x, &one, a);
1170: }
1171: else
1172: {
1173: x.r = a->r;
1174: x.i = a->i;
1175: }
1176:
1177: for( ; ; )
1178: {
1179: if(n & 01)
1180: {
1181: t = p->r * x.r - p->i * x.i;
1182: p->i = p->r * x.i + p->i * x.r;
1183: p->r = t;
1184: }
1185: if(n >>= 1)
1186: {
1187: t = x.r * x.r - x.i * x.i;
1188: x.i = 2 * x.r * x.i;
1189: x.r = t;
1190: }
1191: else
1192: break;
1193: }
1194: }
1195: ./ ADD NAME=libF77/pow_zz.c TIME=628437510
1196: #include "f2c.h"
1197:
1198: VOID pow_zz(r,a,b)
1199: doublecomplex *r, *a, *b;
1200: {
1201: double logr, logi, x, y;
1202: double log(), exp(), cos(), sin(), atan2(), cabs();
1203:
1204: logr = log( cabs(a->r, a->i) );
1205: logi = atan2(a->i, a->r);
1206:
1207: x = exp( logr * b->r - logi * b->i );
1208: y = logr * b->i + logi * b->r;
1209:
1210: r->r = x * cos(y);
1211: r->i = x * sin(y);
1212: }
1213: ./ ADD NAME=libF77/r_abs.c TIME=628437510
1214: #include "f2c.h"
1215:
1216: double r_abs(x)
1217: real *x;
1218: {
1219: if(*x >= 0)
1220: return(*x);
1221: return(- *x);
1222: }
1223: ./ ADD NAME=libF77/r_acos.c TIME=628437510
1224: #include "f2c.h"
1225:
1226: double r_acos(x)
1227: real *x;
1228: {
1229: double acos();
1230: return( acos(*x) );
1231: }
1232: ./ ADD NAME=libF77/r_asin.c TIME=628437510
1233: #include "f2c.h"
1234:
1235: double r_asin(x)
1236: real *x;
1237: {
1238: double asin();
1239: return( asin(*x) );
1240: }
1241: ./ ADD NAME=libF77/r_atan.c TIME=628437510
1242: #include "f2c.h"
1243:
1244: double r_atan(x)
1245: real *x;
1246: {
1247: double atan();
1248: return( atan(*x) );
1249: }
1250: ./ ADD NAME=libF77/r_atn2.c TIME=628437510
1251: #include "f2c.h"
1252:
1253: double r_atn2(x,y)
1254: real *x, *y;
1255: {
1256: double atan2();
1257: return( atan2(*x,*y) );
1258: }
1259: ./ ADD NAME=libF77/r_cnjg.c TIME=628437511
1260: #include "f2c.h"
1261:
1262: VOID r_cnjg(r, z)
1263: complex *r, *z;
1264: {
1265: r->r = z->r;
1266: r->i = - z->i;
1267: }
1268: ./ ADD NAME=libF77/r_cos.c TIME=628437511
1269: #include "f2c.h"
1270:
1271: double r_cos(x)
1272: real *x;
1273: {
1274: double cos();
1275: return( cos(*x) );
1276: }
1277: ./ ADD NAME=libF77/r_cosh.c TIME=628437511
1278: #include "f2c.h"
1279:
1280: double r_cosh(x)
1281: real *x;
1282: {
1283: double cosh();
1284: return( cosh(*x) );
1285: }
1286: ./ ADD NAME=libF77/r_dim.c TIME=628437511
1287: #include "f2c.h"
1288:
1289: double r_dim(a,b)
1290: real *a, *b;
1291: {
1292: return( *a > *b ? *a - *b : 0);
1293: }
1294: ./ ADD NAME=libF77/r_exp.c TIME=628437511
1295: #include "f2c.h"
1296:
1297: double r_exp(x)
1298: real *x;
1299: {
1300: double exp();
1301: return( exp(*x) );
1302: }
1303: ./ ADD NAME=libF77/r_imag.c TIME=628437511
1304: #include "f2c.h"
1305:
1306: double r_imag(z)
1307: complex *z;
1308: {
1309: return(z->i);
1310: }
1311: ./ ADD NAME=libF77/r_int.c TIME=628437511
1312: #include "f2c.h"
1313:
1314: double r_int(x)
1315: real *x;
1316: {
1317: double floor();
1318:
1319: return( (*x>0) ? floor(*x) : -floor(- *x) );
1320: }
1321: ./ ADD NAME=libF77/r_lg10.c TIME=628437511
1322: #include "f2c.h"
1323:
1324: #define log10e 0.43429448190325182765
1325:
1326: double r_lg10(x)
1327: real *x;
1328: {
1329: double log();
1330:
1331: return( log10e * log(*x) );
1332: }
1333: ./ ADD NAME=libF77/r_log.c TIME=628437511
1334: #include "f2c.h"
1335:
1336: double r_log(x)
1337: real *x;
1338: {
1339: double log();
1340: return( log(*x) );
1341: }
1342: ./ ADD NAME=libF77/r_mod.c TIME=628437512
1343: #include "f2c.h"
1344:
1345: double r_mod(x,y)
1346: real *x, *y;
1347: {
1348: double floor(), quotient;
1349: if( (quotient = *x / *y) >= 0)
1350: quotient = floor(quotient);
1351: else
1352: quotient = -floor(-quotient);
1353: return(*x - (*y) * quotient );
1354: }
1355: ./ ADD NAME=libF77/r_nint.c TIME=628437512
1356: #include "f2c.h"
1357:
1358: double r_nint(x)
1359: real *x;
1360: {
1361: double floor();
1362:
1363: return( (*x)>=0 ?
1364: floor(*x + .5) : -floor(.5 - *x) );
1365: }
1366: ./ ADD NAME=libF77/r_sign.c TIME=628437512
1367: #include "f2c.h"
1368:
1369: double r_sign(a,b)
1370: real *a, *b;
1371: {
1372: double x;
1373: x = (*a >= 0 ? *a : - *a);
1374: return( *b >= 0 ? x : -x);
1375: }
1376: ./ ADD NAME=libF77/r_sin.c TIME=628437512
1377: #include "f2c.h"
1378:
1379: double r_sin(x)
1380: real *x;
1381: {
1382: double sin();
1383: return( sin(*x) );
1384: }
1385: ./ ADD NAME=libF77/r_sinh.c TIME=628437512
1386: #include "f2c.h"
1387:
1388: double r_sinh(x)
1389: real *x;
1390: {
1391: double sinh();
1392: return( sinh(*x) );
1393: }
1394: ./ ADD NAME=libF77/r_sqrt.c TIME=628437512
1395: #include "f2c.h"
1396:
1397: double r_sqrt(x)
1398: real *x;
1399: {
1400: double sqrt();
1401: return( sqrt(*x) );
1402: }
1403: ./ ADD NAME=libF77/r_tan.c TIME=628437512
1404: #include "f2c.h"
1405:
1406: double r_tan(x)
1407: real *x;
1408: {
1409: double tan();
1410: return( tan(*x) );
1411: }
1412: ./ ADD NAME=libF77/r_tanh.c TIME=628437512
1413: #include "f2c.h"
1414:
1415: double r_tanh(x)
1416: real *x;
1417: {
1418: double tanh();
1419: return( tanh(*x) );
1420: }
1421: ./ ADD NAME=libF77/s_cat.c TIME=628437513
1422: #include "f2c.h"
1423:
1424: VOID s_cat(lp, rpp, rnp, np, ll)
1425: char *lp, *rpp[];
1426: #ifdef f2c_i2
1427: short int rnp[], *np, ll;
1428: #else
1429: long int rnp[], *np, ll;
1430: #endif
1431: {
1432: int i, n, nc;
1433: char *rp;
1434:
1435: n = *np;
1436: for(i = 0 ; i < n ; ++i)
1437: {
1438: nc = ll;
1439: if(rnp[i] < nc)
1440: nc = rnp[i];
1441: ll -= nc;
1442: rp = rpp[i];
1443: while(--nc >= 0)
1444: *lp++ = *rp++;
1445: }
1446: while(--ll >= 0)
1447: *lp++ = ' ';
1448: }
1449: ./ ADD NAME=libF77/s_cmp.c TIME=628437513
1450: #include "f2c.h"
1451:
1452: integer s_cmp(a, b, la, lb) /* compare two strings */
1453: register char *a, *b;
1454: long int la, lb;
1455: {
1456: register char *aend, *bend;
1457: aend = a + la;
1458: bend = b + lb;
1459:
1460: if(la <= lb)
1461: {
1462: while(a < aend)
1463: if(*a != *b)
1464: return( *a - *b );
1465: else
1466: { ++a; ++b; }
1467:
1468: while(b < bend)
1469: if(*b != ' ')
1470: return( ' ' - *b );
1471: else ++b;
1472: }
1473:
1474: else
1475: {
1476: while(b < bend)
1477: if(*a == *b)
1478: { ++a; ++b; }
1479: else
1480: return( *a - *b );
1481: while(a < aend)
1482: if(*a != ' ')
1483: return(*a - ' ');
1484: else ++a;
1485: }
1486: return(0);
1487: }
1488: ./ ADD NAME=libF77/s_copy.c TIME=628437513
1489: #include "f2c.h"
1490:
1491: VOID s_copy(a, b, la, lb) /* assign strings: a = b */
1492: char *a, *b;
1493: long int la, lb;
1494: {
1495: char *aend, *bend;
1496:
1497: aend = a + la;
1498:
1499: if(la <= lb)
1500: while(a < aend)
1501: *a++ = *b++;
1502:
1503: else
1504: {
1505: bend = b + lb;
1506: while(b < bend)
1507: *a++ = *b++;
1508: while(a < aend)
1509: *a++ = ' ';
1510: }
1511: }
1512: ./ ADD NAME=libF77/s_paus.c TIME=628474922
1513: #include "stdio.h"
1514: #include "f2c.h"
1515: #define PAUSESIG 15
1516:
1517: static waitpause()
1518: {
1519: return;
1520: }
1521:
1522: VOID s_paus(s, n)
1523: char *s;
1524: long int n;
1525: {
1526: int i;
1527:
1528: fprintf(stderr, "PAUSE ");
1529: if(n > 0)
1530: for(i = 0; i<n ; ++i)
1531: putc(*s++, stderr);
1532: fprintf(stderr, " statement executed\n");
1533: if( isatty(fileno(stdin)) )
1534: {
1535: fprintf(stderr, "To resume execution, type go. Any other input will terminate job.\n");
1536: fflush(stderr);
1537: if( getchar()!='g' || getchar()!='o' || getchar()!='\n' )
1538: {
1539: fprintf(stderr, "STOP\n");
1540: f_exit();
1541: exit(0);
1542: }
1543: }
1544: else
1545: {
1546: fprintf(stderr, "To resume execution, execute a kill -%d %d command\n",
1547: PAUSESIG, getpid() );
1548: signal(PAUSESIG, waitpause);
1549: fflush(stderr);
1550: pause();
1551: }
1552: fprintf(stderr, "Execution resumes after PAUSE.\n");
1553: }
1554: ./ ADD NAME=libF77/s_rnge.c TIME=626022810
1555: #include <stdio.h>
1556:
1557: /* called when a subscript is out of range */
1558:
1559: s_rnge(varn, offset, procn, line)
1560: char *varn, *procn;
1561: long int offset;
1562: int line;
1563: {
1564: register int i;
1565:
1566: fprintf(stderr, "Subscript out of range on file line %d, procedure ", line);
1567: for(i = 0 ; i < 8 && *procn!='_' ; ++i)
1568: putc(*procn++, stderr);
1569: fprintf(stderr, ".\nAttempt to access the %ld-th element of variable ", offset+1);
1570: for(i = 0 ; i < 8 && *varn!=' ' ; ++i)
1571: putc(*varn++, stderr);
1572: fprintf(stderr, ".\n");
1573: _cleanup();
1574: abort();
1575: }
1576: ./ ADD NAME=libF77/s_stop.c TIME=628474936
1577: #include "stdio.h"
1578: #include "f2c.h"
1579:
1580: VOID s_stop(s, n)
1581: char *s;
1582: long int n;
1583: {
1584: int i;
1585:
1586: if(n > 0)
1587: {
1588: fprintf(stderr, "STOP ");
1589: for(i = 0; i<n ; ++i)
1590: putc(*s++, stderr);
1591: fprintf(stderr, " statement executed\n");
1592: }
1593: f_exit();
1594: exit(0);
1595: }
1596: ./ ADD NAME=libF77/signal_.c TIME=628437513
1597: #include "f2c.h"
1598:
1599: typedef int (*sig_type)();
1600: extern sig_type signal();
1601:
1602: integer signal_(sigp, procp)
1603: integer *sigp, *procp;
1604: {
1605: int sig;
1606: sig_type proc;
1607: sig = *sigp;
1608: proc = *(sig_type *)procp;
1609:
1610: return (integer)signal(sig, proc);
1611: }
1612: ./ ADD NAME=libF77/system_.c TIME=628437513
1613: /* f77 interface to system routine */
1614:
1615: #include "f2c.h"
1616:
1617: system_(s, n)
1618: register char *s;
1619: long int n;
1620: {
1621: char buff[1000];
1622: register char *bp, *blast;
1623:
1624: blast = buff + (n < 1000 ? n : 1000);
1625:
1626: for(bp = buff ; bp<blast && *s!='\0' ; )
1627: *bp++ = *s++;
1628: *bp = '\0';
1629: system(buff);
1630: }
1631: ./ ADD NAME=libF77/z_abs.c TIME=628438260
1632: #include "f2c.h"
1633:
1634: double z_abs(z)
1635: doublecomplex *z;
1636: {
1637: double cabs();
1638:
1639: return( cabs( z->r, z->i ) );
1640: }
1641: ./ ADD NAME=libF77/z_cos.c TIME=628437514
1642: #include "f2c.h"
1643:
1644: VOID z_cos(r, z)
1645: doublecomplex *r, *z;
1646: {
1647: double sin(), cos(), sinh(), cosh();
1648:
1649: r->r = cos(z->r) * cosh(z->i);
1650: r->i = - sin(z->r) * sinh(z->i);
1651: }
1652: ./ ADD NAME=libF77/z_div.c TIME=628437514
1653: #include "f2c.h"
1654:
1655: VOID z_div(c, a, b)
1656: doublecomplex *a, *b, *c;
1657: {
1658: double ratio, den;
1659: double abr, abi;
1660:
1661: if( (abr = b->r) < 0.)
1662: abr = - abr;
1663: if( (abi = b->i) < 0.)
1664: abi = - abi;
1665: if( abr <= abi )
1666: {
1667: if(abi == 0)
1668: abort(); /* fatal("complex division by zero"); */
1669: ratio = b->r / b->i ;
1670: den = b->i * (1 + ratio*ratio);
1671: c->r = (a->r*ratio + a->i) / den;
1672: c->i = (a->i*ratio - a->r) / den;
1673: }
1674:
1675: else
1676: {
1677: ratio = b->i / b->r ;
1678: den = b->r * (1 + ratio*ratio);
1679: c->r = (a->r + a->i*ratio) / den;
1680: c->i = (a->i - a->r*ratio) / den;
1681: }
1682:
1683: }
1684: ./ ADD NAME=libF77/z_exp.c TIME=628437514
1685: #include "f2c.h"
1686:
1687: VOID z_exp(r, z)
1688: doublecomplex *r, *z;
1689: {
1690: double expx;
1691: double exp(), cos(), sin();
1692:
1693: expx = exp(z->r);
1694: r->r = expx * cos(z->i);
1695: r->i = expx * sin(z->i);
1696: }
1697: ./ ADD NAME=libF77/z_log.c TIME=628437514
1698: #include "f2c.h"
1699:
1700: VOID z_log(r, z)
1701: doublecomplex *r, *z;
1702: {
1703: double log(), cabs(), atan2();
1704:
1705: r->i = atan2(z->i, z->r);
1706: r->r = log( cabs( z->r, z->i ) );
1707: }
1708: ./ ADD NAME=libF77/z_sin.c TIME=628437514
1709: #include "f2c.h"
1710:
1711: VOID z_sin(r, z)
1712: doublecomplex *r, *z;
1713: {
1714: double sin(), cos(), sinh(), cosh();
1715:
1716: r->r = sin(z->r) * cosh(z->i);
1717: r->i = cos(z->r) * sinh(z->i);
1718: }
1719: ./ ADD NAME=libF77/z_sqrt.c TIME=628437514
1720: #include "f2c.h"
1721:
1722: VOID z_sqrt(r, z)
1723: doublecomplex *r, *z;
1724: {
1725: double mag, sqrt(), cabs();
1726:
1727: if( (mag = cabs(z->r, z->i)) == 0.)
1728: r->r = r->i = 0.;
1729: else if(z->r > 0)
1730: {
1731: r->r = sqrt(0.5 * (mag + z->r) );
1732: r->i = z->i / r->r / 2;
1733: }
1734: else
1735: {
1736: r->i = sqrt(0.5 * (mag - z->r) );
1737: if(z->i < 0)
1738: z->i = - z->i;
1739: r->r = z->i / r->i / 2;
1740: }
1741: }
1742: ./ ENDUP
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.