Macaulay2 Engine
Loading...
Searching...
No Matches
mat-elem-ops.hpp File Reference

MatElementaryOps<MT> — row / column primitives templated over dense or sparse matrix storage. More...

#include <memory>

Go to the source code of this file.

Classes

class  MatElementaryOps< DMat< RT > >
class  MatElementaryOps< SMat< RT > >

Detailed Description

MatElementaryOps<MT> — row / column primitives templated over dense or sparse matrix storage.

Note
AI-generated documentation. Verify against the source before relying on it.

Provides the building-block operations every linear-algebra algorithm composes: row and column swaps, row / column scaling, row addition (row_i += c * row_j), the corresponding column variant, and the pivot-search helper lead_row(mat, col[, result]) that returns the largest-index non-zero row of a given column. The template has separate full specialisations on DMat<RT> and SMat<RT> so each storage shape gets a dense-walk or sparse-pivot implementation appropriate to its data layout; consumers write a generic algorithm against MatElementaryOps<MT> and let the right specialisation be picked at instantiation time.

Engine consumers are the LU machinery (dmat-lu.hpp / dmat-lu-inplace.hpp) and the higher-level dispatchers in mat-linalg.hpp. fractionfreeLU.hpp, hermite.hpp, and gauss.hpp carry their own elementary row/column code rather than going through this template. The arithmetic-only sibling header is mat-arith.hpp.

See also
mat-arith.hpp
mat-linalg.hpp
dmat.hpp
smat.hpp

Definition in file mat-elem-ops.hpp.