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

◆ FrobbyAlexanderDual()

MonomialIdeal * FrobbyAlexanderDual ( const MonomialIdeal * I,
const mpz_t * topvec )
static

Definition at line 335 of file monomial-ideal.cpp.

337{
338 int nv = I->topvar() + 1;
340 Frobby::Ideal F(nv);
341 for (Bag& b : *I)
342 {
343 varpower::to_expvector(nv, b.monom().data(), exp);
344
345 if (M2_gbTrace >= 4) fprintf(stderr, "adding ");
346 for (int j = 0; j < nv; j++)
347 {
348 if (M2_gbTrace >= 4) fprintf(stderr, "%d ", exp[j]);
349 F.addExponent(exp[j]);
350 }
351 if (M2_gbTrace >= 4) fprintf(stderr, "\n");
352 }
353
354 // Now create the consumer object, and call Frobby
355 MyIdealConsumer M(I->get_ring(), nv);
356 Frobby::alexanderDual(F, topvec, M);
357 freemem(exp);
358 // Extract the answer as a MonomialIdeal
359 return M.result();
360}
exponents::Exponents exponents_t
static void to_expvector(int n, ConstExponents a, exponents::Exponents result)
int topvar() const
Definition monideal.hpp:187
Frobby::IdealConsumer adapter that collects Frobby's output monomials into an engine MonomialIdeal.
int_bag Bag
Definition int-bag.hpp:70
void freemem(void *s)
Definition m2-mem.cpp:103
int M2_gbTrace
Definition m2-types.cpp:52
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

References freemem(), MonomialIdeal::get_ring(), M2_gbTrace, newarray_atomic, MyIdealConsumer::result(), ExponentList< int, true >::to_expvector(), and MonomialIdeal::topvar().

Referenced by wrapperFrobbyAlexanderDual().