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

◆ GaussElimComputation()

GaussElimComputation::GaussElimComputation ( const Matrix * m,
int collect_syz,
int n_syz )

Definition at line 69 of file gauss.cpp.

72 : row(m->n_rows() - 1),
73 R(m->get_ring()),
74 gens(m),
75 n_gb(0),
76 n_pairs(0),
77 n_syz(0),
78 collect_syz(collsyz)
79{
80 int i;
81
82 typedef struct gm_elem *gm_elem_ptr;
83 reduce_list = newarray(gm_elem_ptr, m->n_rows());
84 gb_list = newarray(gm_elem_ptr, m->n_rows());
85
86 for (i = 0; i < m->n_rows(); i++)
87 {
88 reduce_list[i] = nullptr;
89 gb_list[i] = nullptr;
90 }
91
92 if (nsyz < 0 || nsyz > m->n_cols()) nsyz = m->n_cols();
93 n_comps_per_syz = nsyz;
94 Fsyz = m->cols()->sub_space(nsyz);
95
96 for (i = 0; i < m->n_cols(); i++)
97 {
98 gm_elem *p = new_gen(i);
99 insert(p);
100 }
101}
FreeModule * sub_space(int n) const
Definition freemod.cpp:197
gm_elem * new_gen(int i)
Definition gauss.cpp:20
gm_elem ** reduce_list
Definition gauss.hpp:62
gm_elem ** gb_list
Definition gauss.hpp:63
const Matrix * gens
Definition gauss.hpp:67
const Ring * R
Definition gauss.hpp:66
void insert(gm_elem *p)
Definition gauss.cpp:32
const FreeModule * Fsyz
Definition gauss.hpp:68
const Ring * get_ring() const
Definition matrix.hpp:134
int n_cols() const
Definition matrix.hpp:147
int n_rows() const
Definition matrix.hpp:146
const FreeModule * cols() const
Definition matrix.hpp:145
int p
#define newarray(T, len)
Definition newdelete.hpp:82

References collect_syz, Matrix::cols(), Fsyz, gb_list, gens, get_ring(), insert(), Matrix, Matrix::n_cols(), n_comps_per_syz, n_gb, n_pairs, Matrix::n_rows(), n_syz, new_gen(), newarray, p, R, reduce_list, row, and FreeModule::sub_space().