87 std::less<ColRowIndices>,
88 gc_allocator<std::pair<const ColRowIndices, ring_elem>>>;
93 gc_allocator<std::pair<const int, Subdeterminant>>>;
94 using MinorsCache = std::vector<MinorsSubCache, gc_allocator<MinorsSubCache>>;
136 int calc(
int nsteps);
std::pair< std::vector< int >, std::vector< int > > ColRowIndices
MinorsCache dynamic_cache
void set_next_minor(const int *rows, const int *cols)
void gauss(ring_elem **D, size_t i, size_t r, size_t pivot_col, ring_elem lastpivot)
std::map< ColRowIndices, ring_elem, std::less< ColRowIndices >, gc_allocator< std::pair< const ColRowIndices, ring_elem > > > Subdeterminant
ring_elem detmult(ring_elem f1, ring_elem g1, ring_elem f2, ring_elem g2, ring_elem d)
std::map< int, Subdeterminant, std::less< int >, gc_allocator< std::pair< const int, Subdeterminant > > > MinorsSubCache
bool get_pivot(ring_elem **D, size_t p, ring_elem &pivot, size_t &pivot_col)
ring_elem calc_det(size_t *r, size_t *c, int p)
DetComputation(const Matrix *M, int p, bool do_exterior, int strategy)
void get_minor(size_t *r, size_t *c, int p, ring_elem **D)
std::map< int, int > row_lookup
std::vector< MinorsSubCache, gc_allocator< MinorsSubCache > > MinorsCache
Engine-side free module R^n over a Ring.
Mutable builder used to assemble an immutable Matrix one column (or one term) at a time.
MatrixConstructor — the mutable builder that produces an immutable Matrix.
Matrix — the engine's immutable homomorphism F -> G between free modules.