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

◆ sat()

MonomialIdeal * MonomialIdeal::sat ( const MonomialIdeal & J) const

Definition at line 869 of file monideal.cpp.

870{
871 // std::cout << "--calling sat -- I = ";
872 // dmonideal(const_cast<MonomialIdeal*>(this));
873 // std::cout << std::endl << " -- J = ";
874 // dmonideal(const_cast<MonomialIdeal*>(&J));
875 // std::cout << std::endl << " -- sat(I,J) = ";
876 // debug_check();
877 // J.debug_check();
878
880 Bag *b = new Bag();
881 varpower::one(b->monom());
882 result->insert(b);
883 for (Bag& a : J)
884 {
885 MonomialIdeal *result1 = erase(a.monom().data());
886 // result1->debug_check();
887 MonomialIdeal *next_result = result->intersect(*result1);
888 // next_result->debug_check();
889 delete result1;
890 delete result;
891 result = next_result;
892 }
893 // dmonideal(result);
894 // std::cout << "----" << std::endl;
895 GC_reachable_here(&J);
896 return result;
897}
static void one(Vector &result)
MonomialIdeal * erase(const_varpower m) const
Definition monideal.cpp:853
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)

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

Referenced by rawSaturateMonomialIdeal2().