5#ifndef OASIS_MATRIX_HPP
6#define OASIS_MATRIX_HPP
11typedef Eigen::Matrix<double, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor>
MatrixXXD;
12typedef Eigen::Matrix<double, Eigen::Dynamic, 1>
Matrix1D;
20 Matrix(
size_t numRows,
size_t numCols);
40 [[nodiscard]] auto
GetRows() const ->
size_t;
46 [[nodiscard]] auto
GetCols() const ->
size_t;
#define EXPRESSION_CATEGORY(category)
Definition Expression.hpp:192
#define EXPRESSION_TYPE(type)
Definition Expression.hpp:181
An expression.
Definition Expression.hpp:56
A leaf expression.
Definition LeafExpression.hpp:21
A matrix.
Definition Matrix.hpp:16
auto Equals(const Expression &other) const -> bool final
Compares this expression to another expression for equality.
Definition Matrix.cpp:40
auto GetCols() const -> size_t
Gets the number of columns.
Definition Matrix.cpp:57
auto GetRows() const -> size_t
Gets the number of rows.
Definition Matrix.cpp:52
auto Identity() const -> std::unique_ptr< Expression >
Definition Matrix.cpp:80
auto Differentiate(const Expression &) const -> std::unique_ptr< Expression > final
Tries to differentiate this function.
Definition Matrix.cpp:35
auto Transpose() const -> std::unique_ptr< Matrix >
Gets the matrix's transpose.
Definition Matrix.cpp:62
Matrix(const Matrix &other)=default
auto GetMatrix() const -> MatrixXXD
Gets the matrix.
Definition Matrix.cpp:47
auto Integrate(const Expression &integrationVariable) const -> std::unique_ptr< Expression > final
Attempts to integrate this expression using integration rules.
Definition Matrix.cpp:73
auto Inverse() const -> std::unique_ptr< Matrix >
Gets the matrix's inverse.
Definition Matrix.cpp:67
Eigen::Matrix< double, Eigen::Dynamic, 1 > Matrix1D
Definition Linear.hpp:19
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor > MatrixXXD
Definition Linear.hpp:18
@ UnExp
Definition Expression.hpp:46