Definition at line 190 of file det.cpp.
193{
195
196 ring_elem r;
197
199 {
202 }
204 {
206 {
209 }
210 std::vector<int> row_vec(
p), col_vec(
p);
211 for (
int i = 0; i <
p; ++i)
212 {
213 row_vec[i] =
static_cast<int>(
row_set[i]);
214 col_vec[i] =
static_cast<int>(
col_set[i]);
215 }
216
218 auto it = map.find({row_vec, col_vec});
219 if (it != map.end()) { r = it->second; }
221 }
222 else
224
226 {
229 else
230 result.append(
R->make_vec(0, r));
231 }
232 else
234
237 {
238
240 {
243 }
244
247 for (
size_t i = 0; i <
p; i++)
row_set[i] = i;
248 }
250}
MinorsCache dynamic_cache
std::map< ColRowIndices, ring_elem, std::less< ColRowIndices >, gc_allocator< std::pair< const ColRowIndices, ring_elem > > > Subdeterminant
ring_elem calc_det(size_t *r, size_t *c, int p)
void get_minor(size_t *r, size_t *c, int p, ring_elem **D)
std::map< int, int > row_lookup
static bool increment(size_t n, Subset &s)
References bareiss_det(), calc_det(), col_set, COMP_COMPUTING, COMP_DONE, COMP_INTERRUPTED, D, DET_BAREISS, DET_DYNAMIC, do_exterior, done, dynamic_cache, get_minor(), Subsets::increment(), M, make_dynamic_cache(), p, R, result, row_lookup, row_set, strategy, this_col, this_row, and ZERO_RINGELEM.
Referenced by calc().