1 #include "AllClassWrappers.h"
6 #include <Eigen/Sparse>
8 #include <pybind11/pybind11.h>
9 #include <pybind11/eigen.h>
10 #include <pybind11/stl.h>
18 py::class_<LinearSDE, std::shared_ptr<LinearSDE> >(m,
"LinearSDE")
19 .def(py::init( [] (Eigen::MatrixXd
const& F, Eigen::MatrixXd
const& L, Eigen::MatrixXd
const& Q, py::dict
const& d) {
return new LinearSDE(F,L,Q,
ConvertDictToPtree(d)); }))
20 .def(py::init( [] (Eigen::SparseMatrix<double>
const& F, Eigen::MatrixXd
const& L, Eigen::MatrixXd
const& Q, py::dict
const& d) {
return new LinearSDE(F,L,Q,
ConvertDictToPtree(d)); }))
21 .def(py::init( [] (Eigen::MatrixXd
const& F, Eigen::SparseMatrix<double>
const& L, Eigen::MatrixXd
const& Q, py::dict
const& d) {
return new LinearSDE(F,L,Q,
ConvertDictToPtree(d)); }))
22 .def(py::init( [] (Eigen::SparseMatrix<double>
const& F, Eigen::SparseMatrix<double>
const& L, Eigen::MatrixXd
const& Q, py::dict
const& d) {
return new LinearSDE(F,L,Q,
ConvertDictToPtree(d)); }))
23 .def(py::init( [] (std::shared_ptr<muq::Modeling::LinearOperator> F, std::shared_ptr<muq::Modeling::LinearOperator> L, Eigen::MatrixXd
const& Q, py::dict
const& d) {
return new LinearSDE(F,L,Q,
ConvertDictToPtree(d)); }))
24 .def(
"EvolveState", (
void (
LinearSDE::*)(py::EigenDRef<const Eigen::VectorXd>
const&, double, py::EigenDRef<Eigen::VectorXd>)
const) &
LinearSDE::EvolveState)
27 .def(
"EvolveDistribution", (
void (
LinearSDE::*)(py::EigenDRef<const Eigen::VectorXd>
const&, py::EigenDRef<const Eigen::MatrixXd>
const&, double, py::EigenDRef<Eigen::VectorXd>, py::EigenDRef<Eigen::MatrixXd>)
const) &
LinearSDE::EvolveDistribution, py::arg().noconvert(), py::arg().noconvert(), py::arg().noconvert(), py::arg().noconvert(), py::arg().noconvert())
28 .def(
"EvolveDistribution", (std::pair<Eigen::VectorXd, Eigen::MatrixXd> (
LinearSDE::*)(std::pair<py::EigenDRef<const Eigen::VectorXd>,py::EigenDRef<const Eigen::MatrixXd>>
const&,
double)
const) &LinearSDE::EvolveDistribution<py::EigenDRef<const Eigen::VectorXd>,py::EigenDRef<const Eigen::MatrixXd>>)
29 .def(
"EvolveDistribution", (std::pair<Eigen::VectorXd, Eigen::MatrixXd> (
LinearSDE::*)(py::EigenDRef<const Eigen::VectorXd>
const&, py::EigenDRef<const Eigen::MatrixXd>
const&,
double)
const) &LinearSDE::EvolveDistribution<py::EigenDRef<const Eigen::VectorXd>,py::EigenDRef<const Eigen::MatrixXd>>)
Defines a linear time invariant stochastic differential equation with Gaussian process noise.
std::shared_ptr< muq::Modeling::LinearOperator > GetL() const
Eigen::VectorXd EvolveState(EigenRefVector const &f0, double T) const
std::pair< Eigen::MatrixXd, Eigen::MatrixXd > Discretize(double deltaT)
Eigen::MatrixXd const & GetQ() const
static std::shared_ptr< LinearSDE > Concatenate(std::vector< std::shared_ptr< LinearSDE >> const &sdes, boost::property_tree::ptree options=boost::property_tree::ptree())
Combines the states of multiple SDEs into a single monolitch SDE.
const int stateDim
The dimension of the state variable .
std::shared_ptr< muq::Modeling::LinearOperator > GetF() const
std::pair< Eigen::VectorXd, Eigen::MatrixXd > EvolveDistribution(EigenRefVector const &mu0, EigenRefMatrix const &gamma0, double T) const
void SDEWrapper(pybind11::module &m)
boost::property_tree::ptree ConvertDictToPtree(pybind11::dict dict)