template<typename Scalar, typename Index = std::ptrdiff_t>
eckit::maths::Matrix class

Matrix class, with internal Column-Major storage ordering.

This class is inherited from Eigen's matrix class Eigen::ColMajor is also Eigen's default (recommended) storage ordering. Furthermore it is directly compatible with Fortran matrix manipulation routines

Public types

using MapType = Matrix
using ConstMapType = MapType

Constructors, destructors, conversion operators

Matrix(void)
template<typename T0, typename T1>
Matrix(const T0& x, const T1& y)
Matrix(const std::initializer_list<std::initializer_list<scalar>>& list)
template<typename OtherDerived>
Matrix(const Eigen::MatrixBase<OtherDerived>& other)
Matrix() defaulted
template<typename T0, typename T1>
Matrix(const T0& nr, const T1& nc)
template<typename T0, typename T1>
Matrix(Scalar* data, const T0& nr, const T1& nc)
Matrix(const Matrix& other)
Matrix(const std::initializer_list<std::initializer_list<Scalar>>& list)
~Matrix()
UNARY_OPERATOR_Scalar(+) UNARY_OPERATOR_Scalar(-

Public functions

template<typename OtherDerived>
auto operator=(const Eigen::MatrixBase<OtherDerived>& other) -> Matrix&
auto noalias() -> Matrix&
void resize(Index nr, Index nc)
auto operator=(const Matrix& other) -> Matrix&
auto data() -> Scalar*
auto data() const -> const Scalar*
auto size() const -> Index
auto rows() const -> Index
auto cols() const -> Index
template<typename T>
auto operator[](const T& i) -> Scalar&
template<typename T>
auto operator[](const T& i) const -> const Scalar&
template<typename T>
auto operator()(const T& i) -> Scalar&
template<typename T>
auto operator()(const T& i) const -> const Scalar&
template<typename T0, typename T1>
auto operator()(const T0& i, const T1& j) -> Scalar&
template<typename T0, typename T1>
auto operator()(const T0& i, const T1& j) const -> const Scalar&
template<typename T>
auto row(const T& i) const -> Matrix
template<typename T>
auto col(const T& j) const -> Matrix
auto inverse() const -> Matrix
auto transpose() const -> Matrix
auto determinant() const -> Scalar
auto minor(const T0& row, const T1& col) const -> T1 Matrix

Friends

template<typename S, typename I>
auto operator<<(std::ostream& os, const Matrix<S, I>& v) -> std::ostream&

Function documentation

template<typename Scalar, typename Index>
eckit::maths::Matrix<Scalar, Index>::Matrix(void)

template<typename Scalar, typename Index> template<typename T0, typename T1>
eckit::maths::Matrix<Scalar, Index>::Matrix(const T0& x, const T1& y)

template<typename Scalar, typename Index>
eckit::maths::Matrix<Scalar, Index>::Matrix(const std::initializer_list<std::initializer_list<scalar>>& list)

template<typename Scalar, typename Index> template<typename OtherDerived>
eckit::maths::Matrix<Scalar, Index>::Matrix(const Eigen::MatrixBase<OtherDerived>& other)

template<typename Scalar, typename Index> template<typename OtherDerived>
Matrix& eckit::maths::Matrix<Scalar, Index>::operator=(const Eigen::MatrixBase<OtherDerived>& other)