87 const engine_RawRingElementArray entries);
104 const engine_RawRingElementArray M);
109 const engine_RawRingElementArray M);
116 const engine_RawRingElementArray entries);
124 const engine_RawRingElementArray entries);
153 bool use_only_monomials_with_unit_coeffs =
false)
const;
162 Matrix *transpose()
const;
164 Matrix *operator-()
const;
167 Matrix *mult(
const Matrix *m,
bool opposite_mult)
const;
175 static Matrix *koszul_monomials(
int nskew,
187 Matrix *symm(
int n)
const;
208 Matrix *exterior(
int p,
int strategy)
const;
209 Matrix *minors(
int p,
int strategy)
const;
218 Matrix *pfaffians(
int p)
const;
225 bool is_equal(
const Matrix &m)
const;
226 bool is_zero()
const;
229 bool is_homogeneous()
const;
230 Matrix *homogenize(
int v,
const std::vector<int> &wts)
const;
285 double fraction_non_zero,
Engine-side free module R^n over a Ring.
column_iterator(const Matrix *M, int c)
column_iterator(const Matrix *M)
column_iterator & operator++()
bool operator!=(const column_iterator b)
iterator(const Matrix *M0)
static const Matrix * make_sparse(const FreeModule *target, int ncols, M2_arrayint rows, M2_arrayint cols, const engine_RawRingElementArray entries)
const_monomial degree_shift() const
const Ring * get_ring() const
ring_elem elem(int i, int j) const
Matrix * remove_monomial_factors(bool make_squarefree_only) const
const vec & operator[](int i) const
gc_vector< vec > mEntries
Matrix * simplify(int n) const
Matrix * auto_reduce() const
static const Matrix * make(const FreeModule *target, int ncols, const engine_RawRingElementArray M)
const Matrix * remake(const FreeModule *target, const FreeModule *source, M2_arrayint deg) const
const Matrix * remove_content() const
friend class MatrixConstructor
Matrix(const FreeModule *rows, const FreeModule *cols, const_monomial degree_shift, VECTOR(vec) &entries)
M2_arrayint elim_keep(int nparts) const
const vec & elem(int i) const
virtual unsigned int computeHashValue() const
const Matrix * split_off_content(const Matrix *&result) const
static Matrix * random(const Ring *R, int r, int c)
const FreeModule * rows() const
void minimal_lead_terms_ZZ(gc_vector< int > &result) const
void minimal_lead_terms(gc_vector< int > &result) const
Matrix * lead_term(int n=-1) const
M2_arrayint sort(int degorder, int monorder) const
void text_out(buffer &o) const
const FreeModule * cols() const
Matrix * compress() const
Matrix * divide_by_var(int n, int maxd, int &maxdivided) const
M2_arrayint elim_vars(int nparts) const
const Matrix * content() const
Matrix * remove_scalar_multiples() const
static bool make_sparse_vecs(MatrixConstructor &mat, const FreeModule *target, int ncols, M2_arrayint rows, M2_arrayint cols, const engine_RawRingElementArray entries)
Mutable builder used to assemble an immutable Matrix one column (or one term) at a time.
Engine-side monomial ideal: a decision tree of Nmi_nodes storing the (typically minimal) generators b...
std::list< brMonomial > monomials
FreeModule — finite-rank free module R^n, the type-level anchor for every Matrix.
const int * const_monomial
VALGRIND_MAKE_MEM_DEFINED & result(result)
M2_arrayint M2_arrayintOrNull
MonomialIdeal — exponent-vector-only representation of an ideal generated by monomials.
Monoid — variable count, naming, grading, and monomial order of a polynomial ring.
typename std::vector< T, gc_allocator< T > > gc_vector
a version of the STL vector, which allocates its backing memory with gc.