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

◆ is_equal()

bool FreeModule::is_equal ( const FreeModule * F) const

Definition at line 154 of file freemod.cpp.

155{
156 int i;
157 if (this == F) return true;
158 if (R != F->get_ring()) return false;
159 if (rank() != F->rank()) return false;
160
161 auto D = R->degree_monoid();
162 if (D->n_vars() > 0)
163 for (i = 0; i < rank(); i++)
164 if (0 != D->compare(degree(i), F->degree(i))) return false;
165
166 /* free modules with same ranks and degrees should be equal
167 if (schreyer != nullptr) return schreyer->is_equal(F->schreyer);
168 if (F->schreyer != nullptr) return false;
169 */
170
171 return true;
172}
const Ring * get_ring() const
Definition freemod.hpp:102
const_monomial degree(int i) const
Definition freemod.hpp:104
const Ring * R
Definition freemod.hpp:75
int rank() const
Definition freemod.hpp:105

References degree(), FreeModule(), get_ring(), R, and rank().

Referenced by ChineseRemainder::CRA(), and IM2_FreeModule_is_equal().