Definition at line 534 of file tower.cpp.
536{
537
538
539
542 if (P !=
nullptr &&
T !=
nullptr)
543 {
544 if (P->
n_vars() !=
T->n_vars())
545 {
546 ERROR(
"expected rings with the same number of variables");
547 return nullptr;
548 }
550 {
551 ERROR(
"expected rings with the same characteristic");
552 return nullptr;
553 }
556 }
557#if 0
560 if (P != 0 &&
T != 0)
561 {
564 }
565#endif
566 ERROR(
"expected an element of a TowerRing or a PolynomialRing");
567 return nullptr;
568}
Abstract base for the engine's polynomial-ring hierarchy.
virtual const PolynomialRing * cast_to_PolynomialRing() const
long characteristic() const
virtual const Tower * cast_to_Tower() const
ring_elem get_value() const
static RingElement * make_raw(const Ring *R, ring_elem f)
const Ring * get_ring() const
Ring subclass for tower polynomial rings (Z/p)[x_0][x_1]...[x_{n-1}] modulo a chain of algebraic exte...
References Ring::cast_to_PolynomialRing(), Ring::cast_to_Tower(), Ring::characteristic(), ERROR, RingElement::get_ring(), RingElement::get_value(), RingElement::make_raw(), PolynomialRing::n_vars(), and T.