11 using namespace Eigen;
15 F_(transition_matrix),
16 Q_(noise_covariance_matrix)
18 if ((F_.rows() == 0) || (F_.cols() == 0))
19 throw std::runtime_error(
"ERROR::LTISTATEMODEL::CTOR\nERROR:\n\tState transition matrix dimensions cannot be 0.");
20 else if ((Q_.rows() == 0) || (Q_.cols() == 0))
21 throw std::runtime_error(
"ERROR::LTISTATEMODEL::CTOR\nERROR:\n\tNoise covariance matrix dimensions cannot be 0.");
22 else if (F_.rows() != F_.cols())
23 throw std::runtime_error(
"ERROR::LTISTATEMODEL::CTOR\nERROR:\n\tState transition matrix must be a square matrix.");
24 else if (Q_.rows() != Q_.cols())
25 throw std::runtime_error(
"ERROR::LTISTATEMODEL::CTOR\nERROR:\n\tNoise covariance matrix must be a square matrix.");
26 else if (F_.rows() != Q_.rows())
27 throw std::runtime_error(
"ERROR::LTISTATEMODEL::CTOR\nERROR:\n\tNumber of rows of the state transition matrix must be the same as the size of the noise covariance matrix.");
32 F_(std::move(state_model.F_)),
33 Q_(std::move(state_model.Q_))
39 if (
this == &state_model)
42 F_ = std::move(state_model.F_);
44 Q_ = std::move(state_model.Q_);