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

◆ IM2_Ring_quotient1()

const Ring * IM2_Ring_quotient1 ( const Ring * R,
const Ring * B )

Definition at line 423 of file ring.cpp.

428{
429 try
430 {
431 const PolynomialRing *R1 = R->cast_to_PolynomialRing();
432 const PolynomialRing *B1 = B->cast_to_PolynomialRing();
433 if (R1 == nullptr || B1 == nullptr)
434 {
435 ERROR("expected a polynomial ring");
436 return nullptr;
437 }
438 if (R1->n_quotients() > 0)
439 {
440 ERROR("encountered quotient polynomial ring");
441 return nullptr;
442 }
445 return result;
446 } catch (const exc::engine_error& e)
447 {
448 ERROR(e.what());
449 return nullptr;
450 }
451}
int n_quotients() const
Definition polyring.hpp:219
static PolynomialRing * create_quotient(const PolynomialRing *R, VECTOR(Nterm *) &elems)
Definition polyring.cpp:79
Abstract base for the engine's polynomial-ring hierarchy.
Definition polyring.hpp:96
virtual const PolynomialRing * cast_to_PolynomialRing() const
Definition ring.hpp:243
void intern_polyring(const PolynomialRing *G)
Definition finalize.cpp:81
const int ERROR
Definition m2-mem.cpp:55
VALGRIND_MAKE_MEM_DEFINED & result(result)

References Ring::cast_to_PolynomialRing(), PolynomialRing::create_quotient(), ERROR, intern_polyring(), PolynomialRing::n_quotients(), and result().