/** Test object multiplication. */ public void testMultiplication() { a = fac.random(ll); assertTrue("not isZERO( a )", !a.isZERO()); b = fac.random(ll); assertTrue("not isZERO( b )", !b.isZERO()); c = b.multiply(a); d = a.multiply(b); assertTrue("not isZERO( c )", !c.isZERO()); assertTrue("not isZERO( d )", !d.isZERO()); // System.out.println("a = " + a); // System.out.println("b = " + b); e = d.subtract(c); assertTrue("!isZERO( a*b-b*a ) " + e, !e.isZERO()); assertTrue("a*b = b*a", !c.equals(d)); // assertEquals("a*b = b*a",c,d); c = fac.random(ll); // System.out.println("c = " + c); d = a.multiply(b.multiply(c)); e = (a.multiply(b)).multiply(c); // System.out.println("d = " + d); // System.out.println("e = " + e); // System.out.println("d-e = " + d.subtract(c) ); assertEquals("a(bc) = (ab)c", d, e); assertTrue("a(bc) = (ab)c", d.equals(e)); BigQuaternion x = a.leadingBaseCoefficient().inverse(); c = a.monic(); d = a.multiply(x); assertEquals("a.monic() = a(1/ldcf(a))", c, d); BigQuaternion y = b.leadingBaseCoefficient().inverse(); c = b.monic(); d = b.multiply(y); assertEquals("b.monic() = b(1/ldcf(b))", c, d); e = new GenPolynomial<BigQuaternion>(fac, y); d = b.multiply(e); assertEquals("b.monic() = b(1/ldcf(b))", c, d); // d = e.multiply(b); // assertEquals("b.monic() = (1/ldcf(b) (0))*b",c,d); }
/** Test weight homogeneous. */ public void testWeightHomogeneous() { // rational numbers BigRational rf = new BigRational(); // System.out.println("rf = " + rf); // weight term order long[] weight = new long[] {2, 3, 4, 5}; TermOrder to = TermOrderByName.weightOrder(weight); // System.out.println("to = " + to); // polynomials over rational numbers GenPolynomialRing<BigRational> pf = new GenPolynomialRing<BigRational>(rf, 4, to); // System.out.println("pf = " + pf.toScript()); // test 1 GenPolynomial<BigRational> p = pf.getONE(); // System.out.println("p = " + p); assertTrue("1 is weight homogeneous " + p, p.isWeightHomogeneous()); // test 0 p = pf.getZERO(); // System.out.println("p = " + p); assertTrue("0 is weight homogeneous " + p, p.isWeightHomogeneous()); // test random p = pf.random(kl, 3 * ll, el, q); // System.out.println("p = " + p); assertFalse("rnd is weight homogeneous " + p, p.isWeightHomogeneous()); GenPolynomial<BigRational> pl = p.leadingWeightPolynomial(); // System.out.println("pl = " + pl); assertTrue("lw(rnd) is weight homogeneous " + pl, pl.isWeightHomogeneous()); GenPolynomial<BigRational> r = pf.random(kl, 3 * ll, el, q); // System.out.println("r = " + r); assertFalse("rnd is weight homogeneous " + r, r.isWeightHomogeneous()); GenPolynomial<BigRational> rl = r.leadingWeightPolynomial(); // System.out.println("rl = " + rl); assertTrue("lw(rnd) is weight homogeneous " + rl, rl.isWeightHomogeneous()); GenPolynomial<BigRational> t = pl.multiply(rl); // System.out.println("t = " + t); assertTrue("lw(rnd)*lw(rnd) is weight homogeneous " + t, t.isWeightHomogeneous()); }
/** Test homogeneous. */ public void testHomogeneous() { // rational numbers BigRational rf = new BigRational(); // System.out.println("rf = " + rf); // polynomials over rational numbers GenPolynomialRing<BigRational> pf = new GenPolynomialRing<BigRational>(rf, 2); // rl); // System.out.println("pf = " + pf); // test 1 GenPolynomial<BigRational> p = pf.getONE(); // System.out.println("p = " + p); assertTrue("1 is homogeneous " + p, p.isHomogeneous()); // test 0 p = pf.getZERO(); // System.out.println("p = " + p); assertTrue("0 is homogeneous " + p, p.isHomogeneous()); // test random p = pf.random(kl, 2 * ll, el, q); // p = pf.random(kl,ll,el,q); // System.out.println("p = " + p); assertFalse("rnd is homogeneous " + p, p.isHomogeneous()); // make homogeneous GenPolynomialRing<BigRational> pfh = pf.extend(1); // System.out.println("pfh = " + pfh); // remove block order TermOrder to = new TermOrder(TermOrder.IGRLEX); pfh = new GenPolynomialRing<BigRational>(pfh, to); // System.out.println("pfh = " + pfh); GenPolynomial<BigRational> ph = p.homogenize(pfh); // System.out.println("ph = " + ph); assertTrue("ph is homogeneous " + ph, ph.isHomogeneous()); GenPolynomial<BigRational> ps = ph.deHomogenize(pf); // System.out.println("ps = " + ps); assertEquals("phs == p ", ps, p); // findbugs // System.out.println("p is homogeneous = " + p.isHomogeneous()); // System.out.println("ph is homogeneous = " + ph.isHomogeneous()); GenPolynomial<BigRational> s = pf.random(kl, ll, el, q); // System.out.println("s = " + s); assertFalse("rnd is homogeneous " + s, s.isHomogeneous()); GenPolynomial<BigRational> sh = s.homogenize(pfh); // System.out.println("sh = " + sh); assertTrue("sh is homogeneous " + sh, sh.isHomogeneous()); GenPolynomial<BigRational> ss = sh.deHomogenize(pf); // System.out.println("ss = " + ss); assertEquals("ss = s ", ss, s); GenPolynomial<BigRational> th = ph.multiply(sh); // System.out.println("th = " + th); assertTrue("th is homogeneous " + th, th.isHomogeneous()); GenPolynomial<BigRational> t = p.multiply(s); // System.out.println("t = " + t); GenPolynomial<BigRational> ts = th.deHomogenize(pf); // System.out.println("ts = " + ts); assertEquals("ts = t ", ts, t); }