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

◆ remainderAndQuotient()

ring_elem PolyRingQuotient::remainderAndQuotient ( const ring_elem f,
const ring_elem g,
ring_elem & quot ) const
virtual

Reimplemented from Ring.

Definition at line 290 of file polyquotient.cpp.

293{
294 if (K_->get_precision() > 0)
295 {
296 ERROR(
297 "polynomial division not yet implemented for RR or CC coefficients");
298 quot = from_long(0);
299 return from_long(0);
300 }
301 MatrixConstructor matf(make_FreeModule(1), 1);
302 matf.set_entry(0, 0, f);
303 Matrix *mf = matf.to_matrix();
304
305 GBComputation *G = make_gb(g);
306
307 const Matrix *mrem, *mquot;
308 G->matrix_lift(mf, &mrem, &mquot);
309 quot = mquot->elem(0, 0);
310 ring_elem result = mrem->elem(0, 0);
311
312 delete mrem;
313 delete mquot;
314 delete mf;
315 delete G;
316 return result;
317}
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().