Matrix2.hh
Go to the documentation of this file.
50 using OnlyIfNotOrSameQuantity = typename std::enable_if < !IsQuantity<Value_2>::value || std::is_same<Value_, Value_2>::value >::type;
86 Matrix2(Vector2<Value_> const &vector_1, Vector2<Value_> const &vector_2, Matrix matrix = Matrix::row)
349 return {Vector2<ValueProduct<Value_2_>>(x_ * matrix.ColumnX(), x_ * matrix.ColumnY()), Vector2<ValueProduct<Value_2_>>(y_ * matrix.ColumnX(), y_ * matrix.ColumnY())};
610 for (auto const index : IntegerRange(system.size())) system.at(index) = {Vectors().at(index), Values().at(index)};
697 constexpr Matrix2<ValueProduct<Value_, Value_2_>> operator*(Vector2<Value_2_> const &vector, Matrix2<Value_> const &matrix)
703 constexpr Matrix2<ValueProduct<Value_1_, Value_2_>> MatrixProduct(Vector2<Value_1_> const &vector_1, Vector2<Value_2_> const &vector_2)
constexpr Matrix2 & Transpose()
transpose this matrix
Definition: Matrix2.hh:300
boca::ConstSubIterator< boca::Matrix2, boca::Vector2, Value_ > type
Definition: Matrix2.hh:714
constexpr Matrix2< ValueQuotient< Value_2_ > > operator/(Value_2_ scalar)
Division by scalar.
Definition: Matrix2.hh:429
constexpr ValueSquare Determinant() const
Determinant.
Definition: Matrix2.hh:240
Boost provides free peer-reviewed portable C++ source libraries.
Definition: LorentzVectorBase.hh:726
constexpr bool operator<(Matrix2 const &matrix) const
Less than comparison according to absolute value of the determinant.
Definition: Matrix2.hh:379
Matrix2< ValueQuotient< Value_2_ > > operator/=(Value_2_ scalar)
Division by scalar.
Definition: Matrix2.hh:418
boost::units::quantity< boost::units::si::plane_angle > Angle
Angle measured in radian.
Definition: Si.hh:35
void SetRows(Vector2< Value_ > const &x, Vector2< Value_ > const &y)
Set rows.
Definition: Matrix2.hh:147
typename std::enable_if< !IsMatrix2< Value >::value >::type OnlyIfNotMatrix2
Definition: Matrix2.hh:676
constexpr Matrix2< ValueSquare > Square() const
Square.
Definition: Matrix2.hh:364
Matrix2 & operator*=(Matrix2< Value_2_ > const &matrix)
Multiplication with a matrix.
Definition: Matrix2.hh:438
constexpr ConstSubIterator< boca::Matrix2, Vector2, Value_ > begin() const
const begin
Definition: Matrix2.hh:504
constexpr Vector2< ValueProduct< Value_2_ > > Multiply(Vector2< Value_2_ > const &vector) const
multiply with a vector
Definition: Matrix2.hh:356
constexpr Value_ Minor(Dim2 delete_1, Dim2 delete_2) const
Minor.
Definition: Matrix2.hh:248
constexpr auto operator*(LorentzVectorBase< Value > const &lorentz_vector_1, LorentzVectorBase< Value_2 > const &lorentz_vector_2)
Scalar product of lorentzvectors.
Definition: LorentzVectorBase.hh:701
constexpr Vector2< ValueProduct< Value_2_ > > operator*(Vector2< Value_2_ > const &vector) const
Multiplication with a Vector.
Definition: Matrix2.hh:456
constexpr Matrix2< ValueInverse > Inverse()
inverse of this matrix
Definition: Matrix2.hh:308
Matrix2(Vector2< Value_ > const &vector_1, Vector2< Value_ > const &vector_2, Matrix matrix=Matrix::row)
Constructor accepting two vectors.
Definition: Matrix2.hh:86
constexpr Array2< GradedVector2< Value_ > > EigenSystem() const
Eigen system.
Definition: Matrix2.hh:559
constexpr Array2< Vector2< Value_ > > EigenVectors() const
Eigen vectors.
Definition: Matrix2.hh:551
constexpr Matrix2< ValueProduct< Value_1_, Value_2_ > > MatrixProduct(Vector2< Value_1_ > const &vector_1, Vector2< Value_2_ > const &vector_2)
Definition: Matrix2.hh:703
boost::units::make_system< boost::units::metric::barn_base_unit >::type System
Definition: Barn.hh:22
constexpr Array2< Value_ > EigenValues() const
Eigen values.
Definition: Matrix2.hh:543
boca::SubIterator< boca::Matrix2, boca::Vector2, Value_ > type
Definition: Matrix2.hh:719
constexpr bool operator==(Matrix2 const &matrix) const
Equality comparison.
Definition: Matrix2.hh:387
void SetColumns(Vector2< Value_ > const &x, Vector2< Value_ > const &y)
Set columns.
Definition: Matrix2.hh:156
constexpr Matrix2(Matrix2< Value_2 > const &matrix)
Constructor with type conversion.
Definition: Matrix2.hh:107
typename boost::units::multiply_typeof_helper< Value, Value >::type ValueSquare
Definition: Units.hh:143
constexpr Vector2< Value_ > const & operator[](Dim2 dim_2) const
rows
Definition: Matrix2.hh:464
Matrix2 & operator+=(Matrix2< Value_2 > const &matrix)
Addition.
Definition: Matrix2.hh:396
constexpr Vector2< Value_ > ColumnX() const
x column
Definition: Matrix2.hh:269
Definition: Matrix2.hh:670
constexpr Matrix2< ValueProduct< Value_2_ > > Scale(Value_2_ scalar) const
scale with a scalar
Definition: Matrix2.hh:338
Matrix2 & operator-=(Matrix2< Value_2 > const &matrix)
Substraction.
Definition: Matrix2.hh:407
SubIterator< boca::Matrix2, Vector2, Value_ > begin()
begin
Definition: Matrix2.hh:520
constexpr Matrix2< ValueProduct< Value_2_ > > Multiply(Matrix2< Value_2_ > const &matrix) const
multiply with a matrix
Definition: Matrix2.hh:347
Matrix2(Value_ scalar, Matrix matrix=Matrix::diagonal)
Diagonal Matrix.
Definition: Matrix2.hh:69
Member_ const & Get(std::function< Member_()> const &function) const
Definition: Mutable.hh:23
constexpr Matrix2< ValueProduct< Value_2_ > > operator*(Matrix2< Value_2_ > const &matrix) const
Multiplication with a matrix.
Definition: Matrix2.hh:447
Matrix2 & SetDiagonal(Value_ value)
Set diagonal.
Definition: Matrix2.hh:127
constexpr Vector2< Value_ > ColumnY() const
y column
Definition: Matrix2.hh:277
constexpr ConstSubIterator< boca::Matrix2, Vector2, Value_ > end() const
const end
Definition: Matrix2.hh:512
Matrix2 & SetToIdentity()
Set equal to the identity rotation.
Definition: Matrix2.hh:119