Exemplo n.º 1
0
TEST(ARingZZpFlint, create)
{
  M2::ARingZZpFlint R(101);

  EXPECT_EQ(ringName(R), "AZZFlint/101");
  testSomeMore(R);

  M2::ARingZZpFlint::ElementType a;
  R.init(a);
  R.set_from_long(a, 99);
  R.set_from_long(a, 101);
  R.set_from_long(a, 103);
  R.clear(a);
}
Exemplo n.º 2
0
TEST(ARingZZpFFPACK, create)
{
  M2::ARingZZpFFPACK R(101);

  EXPECT_EQ(ringName(R), "ZZpFPACK(101,1)");
  testSomeMore(R);

  std::cout << "max modulus for ffpack zzp: "
            << M2::ARingZZpFFPACK::getMaxModulus() << std::endl;

  M2::ARingZZpFFPACK::ElementType a;
  R.init(a);
  R.set_from_long(a, 99);
  R.set_from_long(a, 101);
  R.set_from_long(a, 103);
  R.clear(a);
}
Exemplo n.º 3
0
  TEST(ARingGFGivaroGivaro, create) {
    M2::ARingGFGivaro R(5,3);
      
    EXPECT_EQ(ringName(R), "GF(5,3,Givaro)");
    EXPECT_EQ(R.cardinality(), 125);
    EXPECT_EQ(R.characteristic(), 5);

    M2_arrayint gen_modpoly = R.getModPolynomialCoeffs();
    std::cout << "minimal polynomial = ";
    dintarray(gen_modpoly);
    std::cout << std::endl;

    M2_arrayint gen_coeffs = R.getGeneratorCoeffs();
    std::cout << "generator polynomial = ";
    dintarray(gen_coeffs);
    std::cout << std::endl;

    // Check what values integers go to
    M2::ARingGFGivaro::ElementType a;
    R.init(a);
    for (int i=-5; i<R.characteristic(); i++)
      {
        R.set_from_long(a, i);
        M2_arrayint coeffs = R.fieldElementToM2Array(a);
        if (i >= 0) EXPECT_EQ(coeffs->array[0], i);
        EXPECT_EQ(coeffs->len, 3);
        for (int j=1; j<3; j++)
          EXPECT_EQ(coeffs->array[j], 0);
        std::cout << i << " = ";
        dintarray(coeffs);
        std::cout << std::endl;
      }
    R.clear(a);

    testSomeMore(R);
  }