CepGen 1.2.5
Central exclusive processes event generator
|
A \(n\times m\) matrix object. More...
#include <CepGen/Utils/Algebra.h>
Public Types | |
typedef std::pair< size_t, size_t > | Indices |
Public Member Functions | |
Matrix (size_t num_rows, size_t num_cols) | |
Object constructor. | |
Matrix (const std::initializer_list< Vector > &vecs) | |
Object constructor (from vectors) | |
Matrix (const Matrix &) | |
Copy constructor. | |
Matrix & | operator= (const Matrix &) |
Assignment operator. | |
operator Vector () const | |
Implicit conversion to vector. | |
size_t | numColumns () const |
Number of (vertical) columns. | |
size_t | numRows () const |
Number of (horizontal) rows. | |
bool | operator== (const Matrix &) const |
Equality operator. | |
bool | operator!= (const Matrix &oth) const |
Inequality operator. | |
Matrix | subset (size_t min_y, size_t min_x, size_t max_y=0ull, size_t max_x=0ull) const |
Extract a subset of the matrix as a new object. | |
Matrix & | operator*= (double) |
Multiplication by a scalar operator. | |
Matrix & | operator*= (const Vector &) |
Multiplication by a vector operator. | |
Matrix & | operator*= (const Matrix &) |
Multiplication by a matrix operator. | |
Matrix & | operator/= (double) |
Division by a scalar operator. | |
Matrix | operator- () const |
Unary inverse operator. | |
Matrix & | operator+= (const Matrix &) |
Addition of another matrix. | |
Matrix & | operator-= (const Matrix &) |
Subtraction of another matrix. | |
double & | operator() (size_t, size_t) |
Component access operator. | |
double | operator() (size_t, size_t) const |
Component retrieval operator. | |
Vector | operator% (const Vector &) const |
Solving operator (from LU decomposition) | |
Indices | imin () const |
Index (row, column) of the minimum matrix element. | |
Indices | imax () const |
Index (row, column) of the maximum matrix element. | |
double | min () const |
Minimum matrix element. | |
double | max () const |
Maximum matrix element. | |
bool | null () const |
Is the matrix uniformly null? | |
bool | positive () const |
Is the matrix positive-defined? | |
bool | negative () const |
Is the matrix negative-defined? | |
bool | nonNegative () const |
Is the matrix non-negative-defined? | |
Matrix & | truncate (double min=1.e-14) |
Truncate (specify minimum non-zero value) for all matrix components. | |
Matrix & | transpose () |
Transpose the matrix. | |
Matrix | transposed () const |
Return a transposition of this matrix. | |
Matrix & | invert () |
Invert the matrix. | |
Matrix | inverted () const |
Return the inverse of this matrix (LU decomposition) | |
VectorRef | column (size_t) |
Return whole column of the matrix. | |
Vector | column (size_t) const |
Return whole column of the matrix. | |
VectorRef | row (size_t) |
Return whole row of the matrix. | |
Vector | row (size_t) const |
Return whole row of the matrix. | |
VectorRef | diagonal () |
Return the diagonal components of the matrix. | |
Vector | diagonal () const |
Return the diagonal components of the matrix. | |
Static Public Member Functions | |
static Matrix | zero (size_t num_rows, size_t num_cols=0ull) |
Build a zero'ed matrix. | |
static Matrix | uniform (size_t num_rows, size_t num_cols, double value=1.) |
Build a uniform matrix. | |
static Matrix | identity (size_t) |
Build a (square) identity matrix. | |
static Matrix | diagonal (const Vector &) |
Build a (square) diagonal matrix from its diagonal vector. | |
Friends | |
Matrix | operator* (double, const Matrix &) |
Multiplication of a matrix by a scalar. | |
Matrix | operator* (const Matrix &, double) |
Multiplication of a matrix by a scalar. | |
Vector | operator* (const Matrix &, const Vector &) |
Multiplication of a matrix by a vector. | |
Matrix | operator* (const Matrix &, const Matrix &) |
Multiplication of a matrix by another matrix. | |
Matrix | operator/ (const Matrix &, double) |
Division of a matrix by a scalar. | |
Matrix | operator+ (const Matrix &, const Matrix &) |
Addition of two matrices. | |
Matrix | operator- (const Matrix &, const Matrix &) |
Subtraction of two matrices. | |
std::ostream & | operator<< (std::ostream &, const Matrix &) |
Printout of matrix components. | |
|
explicit |
[in] | num_rows | number of (horizontal) rows for the matrix |
[in] | num_cols | number of (vertical) columns for the matrix |
Definition at line 30 of file Algebra.cpp.
[in] | vecs | set of (vector) rows |
Definition at line 32 of file Algebra.cpp.
Definition at line 47 of file Algebra.cpp.
VectorRef column | ( | size_t | i | ) |
Definition at line 225 of file Algebra.cpp.
Vector column | ( | size_t | i | ) | const |
Definition at line 223 of file Algebra.cpp.
VectorRef diagonal | ( | ) |
Definition at line 233 of file Algebra.cpp.
Vector diagonal | ( | ) | const |
Definition at line 231 of file Algebra.cpp.
Definition at line 87 of file Algebra.cpp.
|
static |
Definition at line 81 of file Algebra.cpp.
Matrix::Indices imax | ( | ) | const |
Definition at line 168 of file Algebra.cpp.
Matrix::Indices imin | ( | ) | const |
Definition at line 162 of file Algebra.cpp.
Matrix & invert | ( | ) |
Definition at line 208 of file Algebra.cpp.
Matrix inverted | ( | ) | const |
Definition at line 221 of file Algebra.cpp.
double max | ( | ) | const |
Definition at line 176 of file Algebra.cpp.
double min | ( | ) | const |
Definition at line 174 of file Algebra.cpp.
bool negative | ( | ) | const |
Definition at line 182 of file Algebra.cpp.
bool nonNegative | ( | ) | const |
Definition at line 184 of file Algebra.cpp.
bool null | ( | ) | const |
Definition at line 178 of file Algebra.cpp.
size_t numColumns | ( | ) | const |
Definition at line 94 of file Algebra.cpp.
size_t numRows | ( | ) | const |
Definition at line 96 of file Algebra.cpp.
operator Vector | ( | ) | const |
Definition at line 59 of file Algebra.cpp.
Definition at line 136 of file Algebra.cpp.
double & operator() | ( | size_t | ix, |
size_t | iy | ||
) |
Definition at line 148 of file Algebra.cpp.
double operator() | ( | size_t | ix, |
size_t | iy | ||
) | const |
Definition at line 155 of file Algebra.cpp.
Definition at line 117 of file Algebra.cpp.
Definition at line 112 of file Algebra.cpp.
Matrix & operator*= | ( | double | val | ) |
Definition at line 107 of file Algebra.cpp.
Definition at line 126 of file Algebra.cpp.
Matrix operator- | ( | ) | const |
Definition at line 124 of file Algebra.cpp.
Definition at line 131 of file Algebra.cpp.
Matrix & operator/= | ( | double | val | ) |
Definition at line 122 of file Algebra.cpp.
Definition at line 52 of file Algebra.cpp.
bool operator== | ( | const Matrix & | oth | ) | const |
Definition at line 105 of file Algebra.cpp.
bool positive | ( | ) | const |
Definition at line 180 of file Algebra.cpp.
VectorRef row | ( | size_t | i | ) |
Definition at line 229 of file Algebra.cpp.
Vector row | ( | size_t | i | ) | const |
Definition at line 227 of file Algebra.cpp.
Matrix subset | ( | size_t | min_y, |
size_t | min_x, | ||
size_t | max_y = 0ull , |
||
size_t | max_x = 0ull |
||
) | const |
[in] | min_y | first vertical index for the subset |
[in] | min_x | first horizontal index for the subset |
[in] | max_y | last vertical index for the subset |
[in] | max_x | last horizontal index for the subset |
Definition at line 98 of file Algebra.cpp.
Matrix & transpose | ( | ) |
Definition at line 196 of file Algebra.cpp.
Matrix transposed | ( | ) | const |
Definition at line 206 of file Algebra.cpp.
Matrix & truncate | ( | double | min = 1.e-14 | ) |
Definition at line 186 of file Algebra.cpp.
|
static |
[in] | num_rows | number of (horizontal) rows for the matrix |
[in] | num_cols | number of (vertical) columns for the matrix |
[in] | value | uniform value for all the matrix components |
Definition at line 75 of file Algebra.cpp.
|
static |
[in] | num_rows | number of (horizontal) rows for the matrix |
[in] | num_cols | number of (vertical) columns for the matrix |
Definition at line 67 of file Algebra.cpp.
Definition at line 269 of file Algebra.cpp.
Definition at line 261 of file Algebra.cpp.
Definition at line 255 of file Algebra.cpp.
Definition at line 249 of file Algebra.cpp.
Definition at line 237 of file Algebra.cpp.
Definition at line 243 of file Algebra.cpp.
Definition at line 275 of file Algebra.cpp.
|
friend |
Definition at line 277 of file Algebra.cpp.