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

◆ towerGCD()

const RingElement * towerGCD ( const RingElement * F,
const RingElement * G )

Definition at line 433 of file tower.cpp.

434{
435 const Tower *R = F->get_ring()->cast_to_Tower();
436 const Tower *S = G->get_ring()->cast_to_Tower();
437 if (R == nullptr || R != S)
438 {
439 ERROR("encountered different rings");
440 }
441
442 ring_elem result = R->gcd(F->get_value(), G->get_value());
443 return RingElement::make_raw(R, result);
444}
virtual const Tower * cast_to_Tower() const
Definition ring.hpp:241
ring_elem get_value() const
Definition relem.hpp:79
static RingElement * make_raw(const Ring *R, ring_elem f)
Definition relem.cpp:20
const Ring * get_ring() const
Definition relem.hpp:81
ring_elem gcd(const ring_elem f, const ring_elem g) const
Definition tower.cpp:365
Ring subclass for tower polynomial rings (Z/p)[x_0][x_1]...[x_{n-1}] modulo a chain of algebraic exte...
Definition tower.hpp:59
const int ERROR
Definition m2-mem.cpp:55
VALGRIND_MAKE_MEM_DEFINED & result(result)
tbb::flow::graph G

References Ring::cast_to_Tower(), ERROR, G, Tower::gcd(), RingElement::get_ring(), RingElement::get_value(), RingElement::make_raw(), and result().

Referenced by rawGCDRingElement().