--- a
+++ b/feasible_joint_stiffness/lrslib-062/setupnash.c
@@ -0,0 +1,154 @@
+#include <stdio.h>
+#include <string.h>
+#include "lrslib.h"
+#define MAXLINE 1000
+
+/* Usage: setupnash game game1.ine game2.ine   */
+/* Reads input file game containing            */
+/* m n                                         */
+/* A matrix        (m by n rationals )         */ 
+/* B matrix        (m by n rationals )         */ 
+/* Outputs: two files game1.ine game2.ine      */
+/* that are used by nash                       */
+
+int
+main (int argc, char *argv[])
+
+{
+  long m,n,i,j;
+  long Anum[100][100], Bnum[100][100];
+  long Aden[100][100], Bden[100][100];
+
+  if ( argc < 3 )
+    {
+      printf ("\nUsage: setupnash infile outfile1 outfile2\n");
+      return(FALSE);
+     }
+
+
+  if ((lrs_ifp = fopen (argv[1], "r")) == NULL)
+        {
+          printf ("\nBad input file name\n");
+          return (FALSE);
+        }
+      else
+        printf ("\n*Input taken from file %s", argv[1]);
+
+  if(fscanf(lrs_ifp,"%ld %ld",&m,&n)==EOF)
+     { printf("\nInvalid m,n");
+       return(FALSE);
+     }
+
+  if( m > 1000 || n > 1000)
+     {
+        printf ("\nm=%ld n=%ld",m,n);
+        printf ("\nBoth m and n must at most 1000\n");
+        return(FALSE);
+     }
+
+
+/* process input file */
+/* read A matrix      */
+
+  for (i=0;i<m;i++)
+     for (j=0;j<n;j++)
+       lreadrat(&Anum[i][j],&Aden[i][j]);
+
+   
+/* read B matrix      */
+
+  for (i=0;i<m;i++)
+     for (j=0;j<n;j++)
+       lreadrat(&Bnum[i][j],&Bden[i][j]);
+
+/* write first output file */ 
+
+  if ((lrs_ofp = fopen (argv[2], "w")) == NULL)
+        {
+          printf ("\nBad output file name\n");
+          return (FALSE);
+        }
+      else
+        printf ("\n*Output one sent to file %s\n", argv[2]);
+
+  fprintf(lrs_ofp,"*%s: player 1",argv[1]);
+  fprintf(lrs_ofp,"\nH-representation"); 
+  fprintf(lrs_ofp,"\nlinearity 1 %ld",m+n+1); 
+  fprintf(lrs_ofp,"\nbegin"); 
+  fprintf(lrs_ofp,"\n%ld %ld rational",m+n+1,m+2);
+  for (i=0;i<m;i++)
+    {
+     fprintf(lrs_ofp,"\n0 ");
+     for (j=0;j<m;j++)
+       {
+         if ( i == j )
+            fprintf(lrs_ofp,"1 ");
+         else
+            fprintf(lrs_ofp,"0 ");
+       }
+     fprintf(lrs_ofp,"0 ");
+     }
+
+  for (i=0;i<n;i++)
+    {
+     fprintf(lrs_ofp,"\n0 ");
+     for (j=0;j<m;j++)
+        lprat("",-Bnum[j][i],Bden[j][i]);
+     fprintf(lrs_ofp," 1 ");
+     }
+  fprintf(lrs_ofp,"\n-1 ");
+  for (j=0;j<m;j++)
+     fprintf(lrs_ofp,"1 ");
+  fprintf(lrs_ofp,"0 ");
+
+  fprintf(lrs_ofp,"\nend"); 
+  fprintf(lrs_ofp,"\n");
+  fclose(lrs_ofp);
+
+/* output file 2  */
+
+  if ((lrs_ofp = fopen (argv[3], "w")) == NULL)
+        {
+          printf ("\nBad output file name\n");
+          return (FALSE);
+        }
+      else
+        printf ("\n*Output two sent to file %s\n", argv[3]);
+
+  fprintf(lrs_ofp,"*%s: player 2",argv[1]);
+  fprintf(lrs_ofp,"\nH-representation");
+  fprintf(lrs_ofp,"\nlinearity 1 %ld",m+n+1);
+  fprintf(lrs_ofp,"\nbegin");
+  fprintf(lrs_ofp,"\n%ld %ld rational",m+n+1,n+2);
+
+  for (i=0;i<m;i++)
+    {
+     fprintf(lrs_ofp,"\n0 ");
+     for (j=0;j<n;j++)
+        lprat("",-Anum[i][j],Aden[i][j]);
+     fprintf(lrs_ofp," 1 ");
+     }
+
+  for (i=0;i<n;i++)
+    {
+     fprintf(lrs_ofp,"\n0 ");
+     for (j=0;j<n;j++)
+       {
+         if ( i == j )
+            fprintf(lrs_ofp,"1 ");
+         else
+            fprintf(lrs_ofp,"0 ");
+       }
+     fprintf(lrs_ofp,"0 ");
+     }
+  fprintf(lrs_ofp,"\n-1 ");
+  for (j=0;j<n;j++)
+     fprintf(lrs_ofp,"1 ");
+  fprintf(lrs_ofp,"0 ");
+
+  fprintf(lrs_ofp,"\nend");
+  fprintf(lrs_ofp,"\n");
+  fclose(lrs_ofp);
+
+  return(TRUE);
+}