/*Translated by FOR_C, v3.4.2 (-), on 07/09/115 at 08:33:12 */ /*FOR_C Options SET: ftn=u io=c no=p op=aimnv pf=,p_dpolz s=dbov str=l x=f - prototypes */ #include #include "fcrt.h" #include #include #include "p_dpolz.h" /* Program DRDPOLZ *>> 2009-10-28 DRZPOLZ Krogh Mods to get comples used in single prec. *>> 1996-07-09 DRZPOLZ Krogh Set for deriving single precision C vers. *>> 1994-08-09 DRDPOLZ WVS Remove '0' in format *>> 1992-03-06 DRDPOLZ CLL *>> 1987-12-09 DRDPOLZ Lawson Initial Code. * Conversion should only be done from "D" to "S" for processing to C. *--D replaces "?": DR?POLZ, ?POLZ * Demonstration driver for DPOLZ. * ------------------------------------------------------------------ */ int main( ) { long int ierr, n1, n2; double h[25], z1[3][2], z2[5][2]; static double a1[4]={1.e0,-4.e0,1.e0,-4.e0}; static double a2[6]={1.e0,-15.e0,85.e0,-225.e0,274.e0,-120.e0}; /* OFFSET Vectors w/subscript range: 1 to dimension */ double *const A1 = &a1[0] - 1; double *const A2 = &a2[0] - 1; double *const H = &h[0] - 1; /* end of OFFSET VECTORS */ /*++ CODE for .D. | .C. is active */ /*++ CODE for .S. & ~.C. is inactive * complex Z1(3), Z2(5) *++ END */ /*++ CODE for ~.C. is inactive * integer I, k *++ CODE for .C. is active */ long int i, k; /*++ END * */ /* ------------------------------------------------------------------ */ n1 = 3; n2 = 5; /*++ CODE for ~.C. is inactive * 100 format(' ','Degree =',I2/' ', 'Coefficients =',(T20,4(F10.4,1X))) * 200 format(' ','Roots ='/(2(1X,'(',1X,F8.5,',',1X,F8.5,2X,')':2X))) * 300 format(//' ') * print 100, N1, (A1(I),I=1,4) *++ CODE for .C. is active */ printf(" Degree =%2ld\n Coefficients = ", n1); for (i = 0; i < 4; i++) printf("%10.4f", a1[i]); dpolz( a1, n1, (double*)z1, h, &ierr ); /*++ End *++ CODE for .D. & ~.C. is inactive * print 200, ((Z1(K,I),K=1,2),I=1,3) *++ CODE for .S. & ~.C. is inactive * print 200, (Z1(I),I=1,3) *++ CODE for ~.C. is inactive * print 300 * print 100, N2, (A2(I),I=1,6) *++ CODE for .C. is active */ printf("\n Roots =\n"); for (i = 0; i < 3; i+=2) { printf(" ( %8.5f, %8.5f )", z1[i][0], z1[i][1]); if (i<2) printf(" ( %8.5f, %8.5f )", z1[i+1][0], z1[i+1][1]); printf("\n");} printf("\n\n \n Degree =%2ld\n Coefficients = ", n2); for (i = 0; i < 6; i+=4) { for (k = i ; k < (i < 2 ? i + 4 : 6); k++) printf("%10.4f", a2[k]); if (i < 4) printf("\n ");} dpolz( a2, n2, (double*)z2, h, &ierr ); /*++ End *++ CODE for .D. & ~.C. is inactive * print 200,((Z2(K,I),K=1,2),I=1,5) *++ CODE for .S. & ~.C. is inactive * print 200,(Z2(I),I=1,5) *++ CODE for .C. is active */ printf("\n Roots =\n"); for (i = 0; i < 5; i+=2) { printf(" ( %8.5f, %8.5f )", z2[i][0], z2[i][1]); if (i<4) printf(" ( %8.5f, %8.5f )", z2[i+1][0], z2[i+1][1]); printf("\n");} printf("\n"); exit(0); } /* end of function */ /*++ END */