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

◆ dimension() [2/2]

ring_elem SchurRing::dimension ( const ring_elem f) const

Definition at line 332 of file schur.cpp.

333{
334 exponents_t EXP = ALLOCATE_EXPONENTS(sizeof(int) * (nvars_ + 1));
335 ring_elem result = K_->from_long(0);
336 mpz_t dim;
337 mpz_init(dim);
338 for (Nterm& t : f)
339 {
340 to_partition(t.monom, EXP);
341 dimension(EXP, dim);
342 ring_elem h = K_->from_int(dim);
343 ring_elem h2 = K_->mult(t.coeff, h);
344 K_->add_to(result, h2);
345 K_->remove(h);
346 }
347 mpz_clear(dim);
348 return result;
349}
exponents::Exponents exponents_t
const Ring * K_
Definition polyring.hpp:123
void to_partition(const int *m, int *exp) const
Definition schur.cpp:120
void dimension(const int *exp, mpz_t result) const
Definition schur.cpp:314
VALGRIND_MAKE_MEM_DEFINED & result(result)
#define ALLOCATE_EXPONENTS(byte_len)
Definition monoid.hpp:62
const mpreal dim(const mpreal &a, const mpreal &b, mp_rnd_t r=mpreal::get_default_rnd())
Definition mpreal.h:2272

References ALLOCATE_EXPONENTS, dimension(), PolynomialRing::K_, PolynomialRing::nvars_, result(), and to_partition().