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

◆ quotient()

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

Reimplemented from Ring.

Definition at line 265 of file polyquotient.cpp.

266{
267 if (K_->get_precision() > 0)
268 {
269 ERROR(
270 "polynomial division not yet implemented for RR or CC coefficients");
271 return from_long(0);
272 }
273 MatrixConstructor matf(make_FreeModule(1), 1);
274 matf.set_entry(0, 0, f);
275 Matrix *mf = matf.to_matrix();
276
277 GBComputation *G = make_gb(g);
278
279 const Matrix *mrem, *mquot;
280 G->matrix_lift(mf, &mrem, &mquot);
281 ring_elem result = mquot->elem(0, 0);
282
283 delete mrem;
284 delete mquot;
285 delete mf;
286 delete G;
287 return result;
288}
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().