/*Translated by FOR_C, v3.4.2 (-), on 07/09/115 at 08:33:08 */ /*FOR_C Options SET: ftn=u io=c no=p op=aimnv pf=,p_cpolz s=dbov str=l x=f - prototypes */ #include #include "fcrt.h" #include #include #include "p_cpolz.h" /* Program DRCPOLZ *>> 2009-10-27 DRCPOLZ Krogh/Snyder Added ',' in format stmt. *>> 1996-06-14 DRCPOLZ Krogh Set for deriving C vers. *>> 1992-03-06 DRCPOLZ CLL *>> 1987-12-09 DRCPOLZ Lawson Initial Code. * Conversion should only be done from "Z" to "C" for processing to C. *--C replaces "?": DR?POLZ, ?POLZ * Demonstration driver for CPOLZ. * ------------------------------------------------------------------ */ int main( ) { long int ierr, n1, n2, n3; float h[50], z[5][2]; static float a1[4][2]={1.e0,0.e0,-4.e0,0.e0,1.e0,0.e0,-4.e0,0.e0}; static float a2[6][2]={1.e0,0.e0,-15.e0,0.e0,85.e0,0.e0,-225.e0, 0.e0,274.e0,0.e0,-120.e0,0.e0}; static float a3[6][2]={1.0e0,0.0e0,-5.5e0,-1.5e0,10.00e0,7.750e0, -7.500e0,-13.25e0,-1.000e0,11.00e0,3.000e0,-1.500e0}; /* OFFSET Vectors w/subscript range: 1 to dimension */ float *const H = &h[0] - 1; /* end of OFFSET VECTORS */ long int i; /* integer I, K * */ /* ------------------------------------------------------------------ */ n1 = 3; n2 = 5; n3 = 5; cpolz( a1, n1, z, h, &ierr ); /*++ CODE for ~.C. is inactive * 100 format(' Degree =',I2// * * ' Coefficients ='/ * * (2(1X:'(',1X,F14.9,',',1X,F14.9,1X,')',2X))) * 200 format(/' Roots ='/(2(1X,'(',1X,F14.9,',',1X,F14.9,1X,')':2X))) *c * print 100, N1, ((A1(K,I),K=1,2),I=1,N1+1) * print 200, ((Z(K,I),K=1,2),I=1,N1) *c * print'(/)' * print 100, N2, ((A2(K,I),K=1,2),I=1,N2+1) * call CPOLZ(A2,N2,Z,H,IERR) * print 200, ((Z(K,I),K=1,2),I=1,N2) *c * print'(/)' * print 100, N3, ((A3(K,I),K=1,2),I=1,N3+1) * call CPOLZ(A3,N3,Z,H,IERR) * print 200, ((Z(K,I),K=1,2),I=1,N3) *++ CODE for .C. is active */ printf(" Degree =%2ld\n\n Coefficients =\n", n1); for (i = 0; i <= n1; i+=2){ printf(" (%14.9f, %14.9f )", a1[i][0], a1[i][1]); if (i < n1) printf(" (%14.9f, %14.9f )", a1[i+1][0], a1[i+1][1]); printf(" \n");} printf("\n Roots =\n"); for (i = 0; i <= (n1-1); i+=2){ printf(" (%14.9f, %14.9f )", z[i][0], z[i][1]); if (i < (n1-1)) printf(" (%14.9f, %14.9f )", z[i+1][0], z[i+1][1]); printf(" \n");} printf("\n\n Degree =%2ld\n\n Coefficients =\n", n2); for (i = 0; i <= n2; i+=2){ printf(" (%14.9f, %14.9f )", a2[i][0], a2[i][1]); if (i < n2) printf(" (%14.9f, %14.9f )", a2[i+1][0], a2[i+1][1]); printf("\n");} cpolz( a2, n2, z, h, &ierr ); printf("\n Roots =\n"); for (i = 0; i <= (n2-1); i+=2){ printf(" (%14.9f, %14.9f )", z[i][0], z[i][1]); if (i < (n2-1)) printf(" (%14.9f, %14.9f )", z[i+1][0], z[i+1][1]); printf(" \n");} printf("\n\n Degree =%2ld\n\n Coefficients =\n", n3); for (i = 0; i <= n3; i+=2){ printf(" (%14.9f, %14.9f )", a3[i][0], a3[i][1]); if (i < n3) printf(" (%14.9f, %14.9f )", a3[i+1][0], a3[i+1][1]); printf("\n");} cpolz( a3, n3, z, h, &ierr ); printf("\n Roots =\n"); for (i = 0; i <= (n3-1); i+=2){ printf(" (%14.9f, %14.9f )", z[i][0], z[i][1]); if (i < (n3-1)) printf(" (%14.9f, %14.9f )", z[i+1][0], z[i+1][1]); printf(" \n");} exit(0); } /* end of function */ /*++ END */