753{
754 const bool inExtension = false;
755 try
756 {
759 if (P == nullptr)
760 {
761 ERROR(
"expected polynomial ring");
762 return nullptr;
763 }
764 const int N = P->
n_vars();
765
767 if (foo.mode ==
modeError)
return nullptr;
769 {
770 ERROR("not implemented yet");
771 return nullptr;
772 }
773
774 CFList I;
775 int i;
776 for (i = 0; i < M->
n_rows(); i++)
777 {
778 for (
int j = 0; j < M->
n_cols(); j++)
779 {
781 {
783 }
785 }
786 }
787
788 if (I.length() == 0) {
789 ERROR("expected at least one generator");
790 return nullptr;
791 }
792
793 List<int> t = neworderint(I);
794
795 int n = t.length();
797 ListIterator<int> ii(t);
798 for (i = 0; ii.hasItem(); ii++, i++)
799 u[i] = (n - 1) - (ii.getItem() - 1);
800 std::reverse(u.begin(), u.begin() + n);
801 for (i = n; i < N; i++) u[i] = i;
804 {
806 return nullptr;
807 }
808}
const Ring * get_ring() const
ring_elem elem(int i, int j) const
Abstract base for the engine's polynomial-ring hierarchy.
virtual const PolynomialRing * cast_to_PolynomialRing() const
static RingElement * make_raw(const Ring *R, ring_elem f)
Front-end-visible "ring element" value: an engine ring_elem paired with the Ring* that gives it meani...
static CanonicalForm convertToFactory(mpz_srcptr p)
typename std::vector< T, gc_allocator< T > > gc_vector
a version of the STL vector, which allocates its backing memory with gc.
M2_arrayint stdvector_to_M2_arrayint(const std::vector< T > &v)