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

◆ vec_coefficient_of_var()

vec PolyRing::vec_coefficient_of_var ( vec v,
int var,
int exp ) const
protected

Definition at line 2345 of file poly.cpp.

2347{
2349 vecterm vec_head;
2350 vecterm *vec_result = &vec_head;
2351 for (vecterm *t = v; t != nullptr; t = t->next)
2352 {
2353 Nterm head;
2354 Nterm *result = &head;
2355 for (Nterm& f : t->coeff)
2356 {
2357 M_->to_expvector(f.monom, exp);
2358 if (exp[x] != e) continue;
2359 exp[x] = 0;
2360 result->next = new_term();
2361 result = result->next;
2362 result->coeff = f.coeff;
2363 M_->from_expvector(exp, result->monom);
2364 }
2365 result->next = nullptr;
2366 vec_result->next = make_vec(t->comp, head.next);
2367 vec_result = vec_result->next;
2368 }
2369 freemem(exp);
2370 vec_result->next = nullptr;
2371 return vec_head.next;
2372}
exponents::Exponents exponents_t
Nterm * new_term() const
Definition poly.cpp:146
const Monoid * M_
Definition polyring.hpp:124
int n_vars() const
Definition polyring.hpp:196
vec make_vec(int r, ring_elem a) const
Definition ring-vecs.cpp:60
void freemem(void *s)
Definition m2-mem.cpp:103
VALGRIND_MAKE_MEM_DEFINED & result(result)
const mpreal exp(const mpreal &x, mp_rnd_t r=mpreal::get_default_rnd())
Definition mpreal.h:2298
#define newarray_atomic(T, len)
Definition newdelete.hpp:91
volatile int x
Nterm * next
Definition ringelem.hpp:157
ring_elem coeff
Definition ringelem.hpp:158
int monom[1]
Definition ringelem.hpp:160

References Nterm::coeff, freemem(), PolynomialRing::M_, Ring::make_vec(), Nterm::monom, PolynomialRing::n_vars(), new_term(), newarray_atomic, Nterm::next, vec::next, result(), and x.

Referenced by vec_top_coefficient().