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

◆ alexander_dual()

MonomialIdeal * MonomialIdeal::alexander_dual ( const M2_arrayint a) const

Definition at line 834 of file monideal.cpp.

836{
838 Bag *b = new Bag();
839 varpower::one(b->monom());
840 result->insert(b);
841 for (Bag& b : *this)
842 {
843 MonomialIdeal *I1 =
844 varpower_monideal(get_ring(), a, b.monom().data());
845 MonomialIdeal *next_result = result->intersect(*I1);
846 delete I1;
847 delete result;
848 result = next_result;
849 }
850 return result;
851}
static void one(Vector &result)
MonomialIdeal(const PolynomialRing *RR, stash *mi_stash=nullptr)
Definition monideal.cpp:91
const PolynomialRing * get_ring() const
Definition monideal.hpp:190
gc_vector< int > & monom()
Definition int-bag.hpp:60
int_bag Bag
Definition int-bag.hpp:70
VALGRIND_MAKE_MEM_DEFINED & result(result)
static MonomialIdeal * varpower_monideal(const PolynomialRing *R, const M2_arrayint top, const_varpower vp)
Definition monideal.cpp:803

References get_ring(), int_bag::monom(), MonomialIdeal(), ExponentList< int, true >::one(), result(), and varpower_monideal().

Referenced by alexDual().