void setupE() { reset(); t.normalise(); t.asVector(vt); makeE(q, t, E); }
int main (int argc, char *argv[]) { unsigned int n, g1, g2; char W[BUF_SIZE], Wp[BUF_SIZE], D[BUF_SIZE], E[BUF_SIZE]; if ( argc != 2 ) { fprintf (stderr, "%s <n>\n", argv[0]); fprintf (stderr, "\tgenerate SPL for Rader's Algorithm on vector's\n"); fprintf (stderr, "\tof length n, where n is prime.\n"); exit (1); } /* make sure that "n" is prime */ sscanf (argv[1], "%u", &n); if (!isprime (n)) { fprintf (stderr, "%u is not a prime number ... ABORT!\n", n); exit (1); } /* find generator(s) */ FindGenerators (n, &g1, &g2); makeW (n, g1, W); makeWp (n, g2, Wp); /* makeD (n, g2, D); */ makeE (n, /* D, */ g2, E); printf ("(compose %s\n", Wp); printf (" (direct_sum (matrix (1)) (conj_trans F%u))\n", n-1); printf (" %s\n", E); printf (" (direct_sum (matrix (1)) F%u)\n", n - 1); printf (" %s)\n", W); return 0; }