diff options
author | bremner <bremner@09fa754a-f411-0410-976a-da6bfa213b30> | 2006-04-21 17:39:32 +0000 |
---|---|---|
committer | bremner <bremner@09fa754a-f411-0410-976a-da6bfa213b30> | 2006-04-21 17:39:32 +0000 |
commit | a468544d39ef18c6e47fd59cf427a4e25fe22b7f (patch) | |
tree | aacd9a4cad151cd60cef375d75088cbe3f18fe7e /float2rat.c |
cvs to svn conversion script
git-svn-id: file:///export/data/bremner/svn/trunk/inetools@2344 09fa754a-f411-0410-976a-da6bfa213b30
Diffstat (limited to 'float2rat.c')
-rw-r--r-- | float2rat.c | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/float2rat.c b/float2rat.c new file mode 100644 index 0000000..1b44a96 --- /dev/null +++ b/float2rat.c @@ -0,0 +1,87 @@ +/* + * Reads a polyhedron file on stdin with rationals and outputs + * an approximation in decimal floating point + * + * David Bremner. bremner@cs.mcgill.ca + * + */ + +static char rcsid[]="$Id$"; + +#include <stdlib.h> +#include <stdio.h> +#include <string.h> +#include <float.h> + +#include "float2rat.ds" + +main(argc,argv) + int argc; + char **argv; +{ + long int m,n; + int i,j; + + long atol(); + + long **N; + long **D; + + char buf[BUFSIZ]; + + CHECK_HELP; + + while ( fgets(buf,BUFSIZ,stdin) !=NULL ) + { + fputs(buf,stdout); + if (strncmp(buf,"begin",5)==0) break; + } + + + if (scanf("%ld %ld %s",&m,&n,buf)==EOF){ + fprintf(stderr,"No begin line"); + exit(1); + } + + printf("%ld %ld rational\n",m,n); + + + for (i=0;i<m;i++) { + for(j=0;j<n;j++) { + char *p; + char *frac; + int k; + + scanf("%s",buf); + + if (p=index(buf,'.')){ + *p=0; + frac=&p[1]; + } else { + frac=""; + } + + + printf("%s%s/1",buf,frac); + for (k=0; k<strlen(frac); k++) + putchar('0'); + + putchar(' '); + + } + fputs("\n",stdout); + } + + fgets(buf,BUFSIZ,stdin); /* clean off last line */ + + while (fgets(buf,BUFSIZ,stdin) !=NULL ) + { + fputs(buf,stdout); + } +} + + + + + + |