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

◆ remainder()

ring_elem PolyRingQuotient::remainder ( const ring_elem f,
const ring_elem g ) const
virtual

Reimplemented from Ring.

Definition at line 241 of file polyquotient.cpp.

243{
244 if (K_->get_precision() > 0)
245 {
246 ERROR(
247 "polynomial division not yet implemented for RR or CC coefficients");
248 return from_long(0);
249 }
250 MatrixConstructor matf(make_FreeModule(1), 1);
251 matf.set_entry(0, 0, f);
252 const Matrix *mf = matf.to_matrix();
253
254 GBComputation *G = make_gb(g);
255
256 const Matrix *mrem = G->matrix_remainder(mf);
257 ring_elem result = mrem->elem(0, 0);
258
259 delete mrem;
260 delete mf;
261 delete G;
262 return result;
263}
ring_elem elem(int i, int j) const
Definition matrix.cpp:307
virtual ring_elem from_long(long n) const
GBComputation * make_gb(const ring_elem g) const
const Ring * K_
Definition polyring.hpp:123
virtual FreeModule * make_FreeModule() const
Definition ring.cpp:53
#define Matrix
Definition factory.cpp:14
const int ERROR
Definition m2-mem.cpp:55
VALGRIND_MAKE_MEM_DEFINED & result(result)
tbb::flow::graph G

References Matrix::elem(), ERROR, from_long(), G, PolynomialRing::K_, Ring::make_FreeModule(), make_gb(), Matrix, result(), MatrixConstructor::set_entry(), and MatrixConstructor::to_matrix().