7#ifndef REAL_TIME_TRANSPORT_BLOCK_MATRICES_MATRIX_EXP_H
8#define REAL_TIME_TRANSPORT_BLOCK_MATRICES_MATRIX_EXP_H
12#include <SciCore/Definitions.h>
15#include "../RealTimeTransport_export.h"
18namespace RealTimeTransport
25 MatrixExp()
noexcept =
default;
26 MatrixExp(MatrixExp&& other)
noexcept =
default;
27 MatrixExp(
const MatrixExp& other) =
default;
28 MatrixExp& operator=(MatrixExp&& other)
noexcept =
default;
29 MatrixExp& operator=(
const MatrixExp& other)
noexcept =
default;
31 MatrixExp(
const SciCore::Matrix& A);
33 void initialize(
const SciCore::Matrix& A);
35 SciCore::Matrix operator()(SciCore::Real t)
const;
36 SciCore::Matrix expm1(SciCore::Real t)
const;
39 bool _useEigendecomposition;
40 SciCore::Vector _eigenvalues;
41 std::vector<SciCore::Matrix> _projectors;
47 BlockDiagonalMatrixExp()
noexcept =
default;
48 BlockDiagonalMatrixExp(BlockDiagonalMatrixExp&& other)
noexcept =
default;
49 BlockDiagonalMatrixExp(
const BlockDiagonalMatrixExp& other) =
default;
50 BlockDiagonalMatrixExp& operator=(BlockDiagonalMatrixExp&& other)
noexcept =
default;
51 BlockDiagonalMatrixExp& operator=(
const BlockDiagonalMatrixExp& other)
noexcept =
default;
58 BlockDiagonalMatrix::MatrixType operator()(
int blockIndex, SciCore::Real t)
const;
61 BlockDiagonalMatrix::MatrixType expm1(
int blockIndex, SciCore::Real t)
const;
64 std::vector<MatrixExp> _blocks;
#define REALTIMETRANSPORT_EXPORT
Definition RealTimeTransport_export.h:15
Represents a block diagonal matrix.
Definition BlockDiagonalMatrix.h:33