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

◆ rawPowerMod()

const RingElement * rawPowerMod ( const RingElement * f,
mpz_srcptr n,
const RingElement * g )

Definition at line 1060 of file ringelement.cpp.

1063{
1064 const Tower *R = f->get_ring()->cast_to_Tower();
1065 if (R == nullptr)
1066 {
1067 ERROR("not implemented for this ring");
1068 return nullptr;
1069 }
1070 if (g->get_ring() != R)
1071 {
1072 ERROR("expected elements in the same ring");
1073 return nullptr;
1074 }
1075 return RingElement::make_raw(R,
1076 R->power_mod(f->get_value(), n, g->get_value()));
1077}
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 power_mod(const ring_elem f, mpz_srcptr n, const ring_elem g) const
Definition tower.cpp:408
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

References Ring::cast_to_Tower(), ERROR, RingElement::get_ring(), RingElement::get_value(), RingElement::make_raw(), and Tower::power_mod().