33 template <
typename Value>
40 using iterator =
typename std::vector<Value>::iterator;
106 const Value&
getValue(
size_t const row,
size_t const col)
const
120 Value&
getValue(
size_t const row,
size_t const col)
134 void setValue(
size_t const row,
size_t const col,
const Value& value)
210 template <
typename T,
long int ROWS,
long int COLS>
214 for (
long int i = 0; i < ROWS; ++i)
216 for (
long int j = 0; j < COLS; ++j)
218 (*this)(i, j) = array[i][j];
245 if (
data_.empty())
return Value();
246 return *std::max_element(
data_.begin(),
data_.end());
256 if (
data_.empty())
return Value();
257 return *std::min_element(
data_.begin(),
data_.end());
276 "Matrices must have the same dimensions for comparison.");
282 return !(*
this == rhs);
296 for (
Size i = 0; i < matrix.
rows(); ++i)
298 for (
Size j = 0; j < matrix.
cols(); ++j)
300 os << std::setprecision(6) << std::setw(6) << matrix(i, j) <<
' ';
A 2D matrix class with efficient buffer access for NumPy interoperability.
Definition Matrix.h:35
bool operator==(const Matrix &rhs) const
Equality operator. Compares two matrices for equality.
Definition Matrix.h:273
void resize(size_t rows, size_t cols)
Resize matrix (contents become undefined after resize)
Definition Matrix.h:177
friend std::ostream & operator<<(std::ostream &os, const Matrix< Value > &matrix)
Friend function to output the matrix to an output stream.
Definition Matrix.h:294
Value value_type
Definition Matrix.h:39
std::vector< Value > data_
Column-major storage.
Definition Matrix.h:308
typename std::vector< Value >::iterator iterator
Definition Matrix.h:40
const_iterator begin() const
Definition Matrix.h:229
const Value & getValue(size_t const row, size_t const col) const
Get element at (row, col)
Definition Matrix.h:106
typename std::vector< Value >::const_iterator const_iterator
Definition Matrix.h:41
const_iterator cbegin() const
Definition Matrix.h:231
Matrix()
Default constructor creates empty matrix.
Definition Matrix.h:48
Size cols() const
Number of columns.
Definition Matrix.h:84
const Value & operator()(size_t row, size_t col) const
Unchecked const element access (row, col)
Definition Matrix.h:146
Size rows_
Number of rows.
Definition Matrix.h:309
const Value * data() const
Const pointer to raw data buffer.
Definition Matrix.h:160
void fill(Value value)
Fill all elements with value.
Definition Matrix.h:185
bool empty() const
Check if matrix is empty.
Definition Matrix.h:90
Value minValue() const
Returns the minimum value in the matrix.
Definition Matrix.h:254
Matrix(Size rows, Size cols, Value value=Value())
Constructor to create a matrix with specified dimensions and fill value.
Definition Matrix.h:57
Size cols_
Number of columns.
Definition Matrix.h:310
Size rows() const
Number of rows.
Definition Matrix.h:81
Value * data()
Pointer to raw data buffer (column-major storage)
Definition Matrix.h:157
int innerStride() const
Stride between consecutive elements in same column (always 1 for column-major)
Definition Matrix.h:163
const_iterator cend() const
Definition Matrix.h:232
Matrix(Matrix &&) noexcept=default
Move constructor.
void setMatrix(T const (&array)[ROWS][COLS])
Sets the matrix values using a 2D array.
Definition Matrix.h:211
int outerStride() const
Stride between consecutive columns.
Definition Matrix.h:166
bool operator!=(const Matrix &rhs) const
Definition Matrix.h:280
Value & operator()(size_t row, size_t col)
Unchecked element access (row, col)
Definition Matrix.h:140
Matrix(const Matrix &)=default
Copy constructor.
void clear()
Clear matrix (set to 0x0)
Definition Matrix.h:191
Value & getValue(size_t const row, size_t const col)
Get mutable element at (row, col)
Definition Matrix.h:120
iterator end()
Definition Matrix.h:228
Size size() const
Total number of elements.
Definition Matrix.h:87
const_iterator end() const
Definition Matrix.h:230
Value maxValue() const
Returns the maximum value in the matrix.
Definition Matrix.h:243
iterator begin()
Definition Matrix.h:227
static constexpr bool rowMajor()
Returns false (column-major storage, not row-major)
Definition Matrix.h:169
void setValue(size_t const row, size_t const col, const Value &value)
Set element at (row, col)
Definition Matrix.h:134
size_t Size
Size type e.g. used as variable which can hold result of size()
Definition Types.h:97
#define OPENMS_PRECONDITION(condition, message)
Precondition macro.
Definition openms/include/OpenMS/CONCEPT/Macros.h:94
Main OpenMS namespace.
Definition openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/ISpectrumAccess.h:19