29{
31 ring_elem e;
32 const size_t n = i.index();
33 const std::pair<size_t, size_t> u = *i;
34 mDifferential[n]->get_entry(u.first, u.second, e);
35
39 else
41 for (
size_t r = 0; r <
mBetti[n]; ++r)
42 {
43 if (r == u.first) continue;
44 mDifferential[n]->get_entry(r, u.second, e);
45 if (
mRing->is_zero(e))
continue;
48 else
50 }
51
52 for (
size_t c = 0; c <
mBetti[n + 1]; ++c)
53 {
54 if (c == u.second) continue;
55 mDifferential[n]->get_entry(u.first, c, e);
56 if (
mRing->is_zero(e))
continue;
59 else
61 }
62
63
64
65 return static_cast<size_t>(
s);
66}
std::vector< size_t > mBetti
const LocalRing * mLocalRing
const PolynomialRing * mPolynomialRing