14namespace layer2_discreta {
16#define MAX_DOMAIN_STACK 100
26 the_factor_poly = NULL;
27 the_sub_domain = NULL;
35 cout <<
"domain::domain orbiter finite_field of order " << F->
q << endl;
40 the_factor_poly = NULL;
41 the_sub_domain = NULL;
62 the_factor_poly = NULL;
63 the_sub_domain = NULL;
82 return the_prime.
s_i_i();
83 if (the_type ==
GFq) {
85 int f = the_factor_poly->
degree();
92 cout <<
"domain::order_int no finite field domain" << endl;
99 return the_prime.
s_i_i();
100 if (the_type ==
GFq) {
107 cout <<
"domain::order_subfield_int no finite field domain" << endl;
114 return the_prime.
s_i_i();
115 if (the_type ==
GFq) {
121 cout <<
"domain::characteristic() no finite field domain" << endl;
134pc_presentation *domain::pres()
142 return the_factor_poly;
147 return the_sub_domain;
153 cout <<
"push_domain() overflow in domain stack" << endl;
163 cout <<
"push_domain() ounderflow in domain stack" << endl;
182 cout <<
"get_current_domain() domain stack empty" << endl;
190domain *get_domain_if_pc_group()
196 if (d->type() == PC_GROUP) {
259 cout <<
"finite_field_domain_order_int(): error: must be GFp or GFq" << endl;
271 cout <<
"finite_field_domain_characteristic(): error: must be GFp or GFq" << endl;
282 cout <<
"finite_field_domain_primitive_root() no finite field domain" << endl;
293 cout <<
"finite_field_domain_primitive_root():" << endl;
294 for (i = 1; i < q; i++) {
297 cout <<
"order of " << i <<
" is " << o << endl;
302 cout <<
"finite_field_domain_primitive_root "
303 "couldn't find primitive root!" << endl;
319 cout <<
"finite_field_domain_base_over_subfield "
320 "no finite field domain" << endl;
335 for (i = 0; i < f; i++) {
345 cout <<
"with::with() trying to push NULL pointer domain" << endl;
373#define MAX_FF_DOMAIN 100
375static int nb_ffm = 0;
380 int f_v = (verbose_level >= 1);
386 cout <<
"allocate_finite_field_domain() too many finite field domains" << endl;
394 cout <<
"allocate_finite_field_domain() q=" << q <<
", p=" << ffm->
p <<
", f=" << ffm->
f << endl;
401 ffm->
m->
Singer(ffm->
p, ffm->
f, verbose_level - 2);
403 cout <<
"q=" << q <<
"=" << ffm->
p <<
"^" << ffm->
f <<
", m=" << *ffm->
m << endl;
419 for (i = 0; i < nb_ffm; i++) {
420 if (Ffm[i]->dom == dom) {
422 cout <<
"deleting ff domain no " << i << endl;
433 for ( ; i < nb_ffm - 1; i++) {
440 cout <<
"free_finite_field_domain() error: domain not found" << endl;
basic number theoretic functions
int i_power_j(int i, int j)
void factor_prime_power(int q, int &p, int &e)
long int primitive_root(long int p, int verbose_level)
DISCRETA vector class for vectors of DISCRETA objects.
unipoly & change_to_unipoly()
DISCRETA class for influencing arithmetic operations.
layer1_foundations::field_theory::finite_field * get_F()
int is_Orbiter_finite_field_domain()
DISCRETA class for polynomials in one variable.
void Singer(int p, int f, int verbose_level)
DISCRETA class related to class domain.
int is_Orbiter_finite_field_domain(domain *&d)
domain * allocate_finite_field_domain(int q, int verbose_level)
void freeobject(discreta_base *p)
discreta_base * callocobject(kind k)
int finite_field_domain_primitive_root()
domain * get_current_domain()
int finite_field_domain_characteristic(domain *d)
int is_finite_field_domain(domain *&d)
int is_GFq_domain(domain *&d)
void finite_field_domain_base_over_subfield(Vector &b)
void free_finite_field_domain(domain *dom)
void pop_domain(domain *&d)
int is_GFp_domain(domain *&d)
int finite_field_domain_order_int(domain *d)
void push_domain(domain *d)
struct ff_memory FF_MEMORY
the orbiter library for the classification of combinatorial objects
DISCRETA auxilliary class for class domain.