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

◆ translate_gbvector_from_vec()

gbvector * PolyRing::translate_gbvector_from_vec ( const FreeModule * F,
const vec v,
ring_elem & result_denominator ) const
virtual

Implements PolynomialRing.

Definition at line 2542 of file poly.cpp.

2546{
2547 if (getCoefficients() == globalQQ)
2548 return translate_gbvector_from_vec_QQ(F, v, result_denominator);
2549 result_denominator = getCoefficients()->one();
2550 if (v == nullptr) return nullptr;
2551 GBRing *GR = get_gb_ring();
2552 gbvectorHeap H(GR, F);
2553 gbvector head;
2554 gbvector *inresult;
2555 for (vec w = v; w != nullptr; w = w->next)
2556 {
2557 inresult = &head;
2558 int comp = w->comp + 1;
2559 for (Nterm& t : w->coeff)
2560 {
2561 // make a gbvector node.
2562 gbvector *g = GR->gbvector_term(F, t.coeff, t.monom, comp);
2563 inresult->next = g;
2564 inresult = inresult->next;
2565 }
2566 H.add(head.next);
2567 }
2568
2569 return H.value();
2570}
const RingQQ * globalQQ
Definition aring.cpp:24
gbvector * gbvector_term(const FreeModule *F, ring_elem coeff, int comp)
Definition gbring.cpp:300
gbvector * translate_gbvector_from_vec_QQ(const FreeModule *F, const vec v, ring_elem &result_denominator) const
Definition poly.cpp:2504
virtual GBRing * get_gb_ring() const
Definition polyring.hpp:276
virtual const Ring * getCoefficients() const
Definition polyring.hpp:277
ring_elem one() const
Definition ring.hpp:357
ring_elem coeff
Definition ringelem.hpp:158
int monom[1]
Definition ringelem.hpp:160
gbvector * next
Definition gbring.hpp:80
int comp
Definition gbring.hpp:82

References gbvectorHeap::add(), Nterm::coeff, gbvector::comp, FreeModule, GBRing::gbvector_term(), PolynomialRing::get_gb_ring(), PolynomialRing::getCoefficients(), globalQQ, Nterm::monom, gbvector::next, Ring::one(), translate_gbvector_from_vec_QQ(), and gbvectorHeap::value().