#include "sys.h" #include "debug.h" #include #include #include #include #include #include "../polynomial/mk.h" using std::cin; using std::cout; using std::cerr; using std::endl; using std::fstream; using libecc::bitset; unsigned int const m = libecc::field_extension_degree; unsigned int const k = libecc::reduction_polynomial_exponents::k; unsigned int const k1 = libecc::reduction_polynomial_exponents::k1; unsigned int const k2 = libecc::reduction_polynomial_exponents::k2; unsigned int const q = 1 << m; // The order of the field, 2^m. unsigned int const hd = (m - 1) / 4 + 1; // Hex digits. libecc::polynomial a; libecc::polynomial b; typedef libecc::polynomial poly; int main(int argc, char* argv[]) { if (argc != 2) { cerr << "Provide exactly one argument.\n"; return 1; } poly x(argv[1]); poly y(x); cout << y; do { y *= y; cout << " -> " << y; } while (x != y); cout << endl; }