Macaulay2 Engine
Loading...
Searching...
No Matches

◆ findConwayPolynomial()

bool findConwayPolynomial ( long charac,
long deg,
bool find_random_if_no_conway_poly_available,
std::vector< long > & result_poly )

Definition at line 624 of file ring.cpp.

628{
629 // returns true if result_poly is actually set
630 int ret = 1;
631 fq_nmod_ctx_t ctx;
632 fmpz_t p;
633 fmpz_init(p);
634 fmpz_set_si(p, charac);
635 if (!find_random_if_no_conway_poly_available)
636 ret = _fq_nmod_ctx_init_conway(ctx, p, deg, "a");
637 else
638 fq_nmod_ctx_init(ctx, p, deg, "a");
639
640 if (ret == 0) return false;
641
642 result_poly.resize(deg + 1);
643 for (long i = 0; i <= deg; i++) result_poly[i] = 0;
644 for (long i = 0; i < ctx->len; i++)
645 {
646 if (ctx->j[i] < 0 or ctx->j[i] > deg)
647 printf("error: encountered bad degree\n");
648 // power is ctx->j[i]
649 // coeff is ctx->a[i]
650 result_poly[ctx->j[i]] = ctx->a[i];
651 }
652
653 // printf("flint GF information:\n");
654 // fq_nmod_ctx_print(ctx);
655
656 fq_nmod_ctx_clear(ctx);
657 return true;
658}
int p

References p.

Referenced by rawConwayPolynomial().