489{
491 {
492 ERROR(
"expected matrix over ZZ");
493 *result_remainder = nullptr;
494 *result_quotient = nullptr;
495 return false;
496 }
498 {
499 ERROR(
"expected matrices to have same number of rows");
500 *result_remainder = nullptr;
501 *result_quotient = nullptr;
502 return false;
503 }
505 MatrixConstructor mat_quotient(
Fsyz, m->
cols(),
nullptr);
506 bool all_zeroes = true;
507 for (
int i = 0; i < m->
n_cols(); i++)
508 {
510 vec fsyz = nullptr;
511
513 if (f != nullptr) all_zeroes = false;
514
516 mat_remainder.set_column(i, f);
517 mat_quotient.set_column(i, fsyz);
518 }
519 *result_remainder = mat_remainder.to_matrix();
520 *result_quotient = mat_quotient.to_matrix();
521 return all_zeroes;
522}
void gb_reduce(vec &f) const
const_monomial degree_shift() const
const Ring * get_ring() const
ring_elem elem(int i, int j) const
const FreeModule * rows() const
const FreeModule * cols() const
void negate_vec_to(vec &v) const
vec copy_vec(const vecterm *v) const