/*Translated by FOR_C, v3.4.2 (-), on 07/09/115 at 08:33:10 */ /*FOR_C Options SET: ftn=u io=c no=p op=aimnv pf=,p_dge2 s=dbov str=l x=f - prototypes */ #include #include "fcrt.h" #include #include #include "p_dge2.h" /* program DRDGE2 *>> 2001-05-22 DRDGE2 Krogh Minor change for making .f90 version. *>> 1994-10-19 DRDGE2 Krogh Changes to use M77CON *>> 1992-03-10 DRDGE2 Lawson * * Demo driver for DGED, DGEFS, DGEI, DGESLT * ------------------------------------------------------------------ *--D replaces "?": ?RDGE2, ?GED, ?GEFS, ?GEI, ?GESLT, ?MATP * ------------------------------------------------------------------ */ /* PARAMETER translations */ #define NMAX 3 /* end of PARAMETER translations */ int main( ) { long int i, info, ipvt[NMAX], j, _i, _r; double det[2], work[NMAX]; static double a[3][3], b[1][3], c[1][3]; static int _aini = 1; /* OFFSET Vectors w/subscript range: 1 to dimension */ double *const Det = &det[0] - 1; long *const Ipvt = &ipvt[0] - 1; double *const Work = &work[0] - 1; /* end of OFFSET VECTORS */ if( _aini ){ /* Do 1 TIME INITIALIZATIONS! */ { static double _itmp0[] = {0.579e0,-.394e0,0.915e0}; for (j = 1, _r = 0; j <= 3; j++) { a[j - 1][0] = _itmp0[_r++]; } } { static double _itmp1[] = {-0.795e0,0.226e0,-0.868e0}; for (j = 1, _r = 0; j <= 3; j++) { a[j - 1][1] = _itmp1[_r++]; } } { static double _itmp2[] = {0.141e0,-0.329e0,-0.286e0}; for (j = 1, _r = 0; j <= 3; j++) { a[j - 1][2] = _itmp2[_r++]; } } { static double _itmp3[] = {5.873e0,-5.324e0,1.069e0}; for (i = 1, _r = 0; i <= 3; i++) { b[0][i - 1] = _itmp3[_r++]; } } { static double _itmp4[] = {-6.267e0,4.951e0,-5.177e0}; for (i = 1, _r = 0; i <= 3; i++) { c[0][i - 1] = _itmp4[_r++]; } } _aini = 0; } /* ------------------------------------------------------------------ */ dmatp( (double*)a, NMAX, NMAX, NMAX, " A(,) =" ); printf(" \n"); dmatp( (double*)b, NMAX, NMAX, 1, " B(,) =" ); dgefs( (double*)a, NMAX, NMAX, (double*)b, NMAX, 1, ipvt, &info ); printf(" \n"); dmatp( (double*)b, NMAX, NMAX, 1, " Solution of A*x = b is:" ); printf(" \n"); dmatp( (double*)c, NMAX, NMAX, 1, " C(,) =" ); dgeslt( (double*)a, NMAX, NMAX, ipvt, (double*)c ); printf(" \n"); dmatp( (double*)c, NMAX, NMAX, 1, " Solution of (A**t)*x = c is:" ); dged( (double*)a, NMAX, NMAX, ipvt, det ); printf("\n Determinant of A is:%10.6f * 10**(%5.2f)\n\n", Det[1], Det[2]); dgei( (double*)a, NMAX, NMAX, ipvt, work ); dmatp( (double*)a, NMAX, NMAX, NMAX, " Inverse of A =" ); exit(0); } /* end of function */