17namespace layer1_foundations {
18namespace coding_theory {
46 int f_v = (verbose_level >= 1);
49 cout <<
"create_BCH_code::init" << endl;
72 for (i = 0; i <
d - 1; i++) {
85 cout <<
"coding_theory_domain::make_BCH_code Sel=";
96 for (i = 0; i <
nb_sel; i++) {
101 cout <<
"coding_theory_domain::make_BCH_code P=";
104 cout <<
"j=" << j << endl;
110 cout <<
"coding_theory_domain::make_BCH_code Q=";
120 for (i = 0; i <=
degree; i++) {
131 cout <<
"create_BCH_code::init done" << endl;
138 int f_v = (verbose_level >= 1);
145 cout <<
"create_BCH_code::report" << endl;
149 ost <<
"\\noindent" << endl;
150 ost <<
"BCH-code:\\\\" << endl;
151 ost <<
"$n=" <<
n <<
",$ $k=" <<
k <<
",$ $d_0=" <<
d <<
",$ $q=" <<
F->
q <<
",$ \\\\" << endl;
153 for (i = 0; i <
nb_sel; i++) {
154 ost <<
"m_{" <<
Sel[i] <<
"}";
160 ost <<
"\\\\" << endl;
163 ost <<
"\\noindent" << endl;
164 ost <<
"Chosen cyclotomic sets:\\\\" << endl;
167 ost <<
"\\bigskip" << endl;
170 ost <<
"The generator polynomial has degree " <<
degree << endl;
172 ost <<
"\\begin{verbatim}" << endl;
182 ost <<
"\\end{verbatim}" << endl;
187 ost <<
"The generator matrix is:" << endl;
189 ost <<
"\\left[" << endl;
191 ost <<
"\\right]" << endl;
197 cout <<
"create_BCH_code::report done" << endl;
various functions related to coding theory
void generator_matrix_cyclic_code(field_theory::finite_field *F, int n, std::string &poly_coeffs, int verbose_level)
void report(std::ostream &ost, int verbose_level)
field_theory::finite_field * F
int * generator_polynomial
ring_theory::unipoly_object * P
field_theory::nth_roots * Nth
void init(field_theory::finite_field *F, int n, int d, int verbose_level)
the nth roots over Fq using an extension field
number_theory::cyclotomic_sets * Cyc
ring_theory::unipoly_domain * FX
void init(finite_field *F, int n, int verbose_level)
ring_theory::unipoly_object * generator_Fq
void print_latex_with_selection(std::ostream &ost, int *Selection, int nb_sel)
data_structures::set_of_sets * S
interface to create latex output files
void int_matrix_print_tex(std::ostream &ost, int *p, int m, int n)
void print_object_dense(unipoly_object p, std::ostream &ost)
void mult(unipoly_object a, unipoly_object b, unipoly_object &c, int verbose_level)
int & s_i(unipoly_object p, int i)
int degree(unipoly_object p)
void create_object_by_rank(unipoly_object &p, long int rk, const char *file, int line, int verbose_level)
void print_object_sparse(unipoly_object p, std::ostream &ost)
void assign(unipoly_object a, unipoly_object &b, int verbose_level)
void print_object(unipoly_object p, std::ostream &ost)
#define Int_vec_print(A, B, C)
the orbiter library for the classification of combinatorial objects