LIB "tst.lib"; tst_init(); /************************************************************************************ Env.sing First step in creating non-magma calculations 11/29/15 Got quotient ring created, basic options set. Using reverse lexicographic order (or weighted rev.) 01/04/16 First step in constructing computations. ************************************************************************************/ // do not print all the "redefined" warnings when we load the LIBraries. option(noredefine) ; // load the stuff we need. LIB "poly.lib" ; LIB "nctools.lib" ; LIB "ncalg.lib" ; // reduce all ideals and Groebner bases option(redSB) ; option(redTail) ; // simplify all expressions in any quotient ring - i.e. put in normal form option(qringNF) ; // start with the least value of nu; check higher ones later. int nu = 2 ; // int N = 5 ; // cycle through come calculable values for N for (int N=3; N<=11; N=N+1) { // N can't divide nu^2 if ( nu^2 mod N == 0 ) { newline, "Skipping N = ", N, newline ; N= N+1 ; continue ; } // r is the order of q^nu int r = lcm( N, nu^2 ) div nu^2 ; // Create the commutative ring over the coefficients of augmented Q // ring QN = (0,w), (a,b,x,y), lp ; // lexicographic order violates ordering condition // ring QN = (0,w), (a,b,x,y), rp ; // reverse lexicographic allows really unbalanced a & b powers. // ring QN = (0,w), (a,b,x,y), Dp ; // degree lexicographic violates ordering condition ring QN = (0,w), (a,b,x,y), wp(1,1,N,N) ; // keeps a & b exponents closer. // extend Q by Nth root of unity minpoly = rootofUnity(N) ; // q is what we use in all the formulas number q = w^nu ; // display all exponents with a '^' symbol; // must be done whenever a new ring gets declared if results are going to be printed short = 0 ; // Procedure to get (k)q_nu as defined in the Radford paper. proc subq_nu (int k) { number retval = 1; for (int m=1; m