|
EllAlgo 1.6.13
|
Square matrix with flat std::vector<double> storage. More...
#include <ell_matrix.hpp>
Public Member Functions | |
| Matrix (std::size_t ndim, double init=0.0) | |
| Construct an ndim × ndim matrix. | |
| void | clear (double value=0.0) |
| Reset all elements to value. | |
| double & | operator() (std::size_t row, std::size_t col) |
| Access element (row, col) — mutable. | |
| const double & | operator() (std::size_t row, std::size_t col) const |
| Access element (row, col) — const. | |
| Matrix & | operator*= (double alpha) |
| Scale all elements by alpha. | |
| Matrix | operator* (double alpha) const |
| Return a scaled copy. | |
| void | identity () |
| Set to identity matrix. | |
| SliceView | diagonal () |
| Mutable view of the diagonal (stride = ndim + 1) | |
| SliceView | row (std::size_t r) |
| Mutable view of row r (contiguous, stride = 1) | |
| SliceView | column (std::size_t c) |
| Mutable view of column c (strided, stride = ndim) | |
| double | trace () const |
| Sum of diagonal elements. | |
Square matrix with flat std::vector<double> storage.
Provides element access via operator()(row, col) and strided views (row, column, diagonal) via SliceView, which supports assignment from valarray, scalar fill, element access, and implicit valarray conversion — matching the original std::slice_array<double> API.
|
inlineexplicit |
Construct an ndim × ndim matrix.
| [in] | ndim | Number of rows/columns |
| [in] | init | Fill value (default 0.0) |
|
inline |
Mutable view of column c (strided, stride = ndim)
|
inline |
Mutable view of the diagonal (stride = ndim + 1)
|
inline |
Set to identity matrix.
|
inline |
Access element (row, col) — mutable.
Access element (row, col) — const.
|
inline |
Mutable view of row r (contiguous, stride = 1)
|
inline |
Sum of diagonal elements.
\[ \operatorname{tr}(A) = \sum_{i=1}^{n} A_{ii} \]