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

◆ MatrixSorter()

MatrixSorter::MatrixSorter ( const Matrix * m,
int degorder,
int ringorder )

Definition at line 123 of file matrix-sort.cpp.

124 : deg_ascending(degorder), ringorder_ascending(ringorder)
125{
126 R = m->get_ring();
127
128 int nelems = m->n_cols();
129
130 if (degorder != 0)
131 {
132 sort_degs = newarray_atomic(int, nelems);
133 for (int i = 0; i < nelems; i++)
134 sort_degs[i] = m->cols()->primary_degree(i);
135 }
136
137 result = M2_makearrayint(nelems);
138
139 sort_vals = result->array;
140 for (int i = 0; i < nelems; i++) sort_vals[i] = i;
141
142 sort_vecs = newarray(vec, nelems);
143 for (int i = 0; i < nelems; i++) sort_vecs[i] = m->elem(i);
144}
int primary_degree(int i) const
Definition freemod.cpp:440
const Ring * get_ring() const
Definition matrix.hpp:134
ring_elem elem(int i, int j) const
Definition matrix.cpp:307
int n_cols() const
Definition matrix.hpp:147
const FreeModule * cols() const
Definition matrix.hpp:145
const Ring * R
int ringorder_ascending
M2_arrayint result
M2_arrayint M2_makearrayint(int n)
Definition m2-types.cpp:6
#define newarray(T, len)
Definition newdelete.hpp:82
#define newarray_atomic(T, len)
Definition newdelete.hpp:91

References Matrix::cols(), deg_ascending, Matrix::elem(), Matrix::get_ring(), M2_makearrayint(), Matrix, Matrix::n_cols(), newarray, newarray_atomic, FreeModule::primary_degree(), R, result, ringorder_ascending, sort_degs, sort_vals, and sort_vecs.