RESPOND 2.4.0
Researching Effective Strategies to Prevent Opioid Death
Loading...
Searching...
No Matches
transition.hpp
1
2// File: transition.hpp //
3// Project: respond //
4// Created Date: 2026-02-02 //
5// Author: Matthew Carroll //
6// ----- //
7// Last Modified: 2026-02-09 //
8// Modified By: Matthew Carroll //
9// ----- //
10// Copyright (c) 2026 Syndemics Lab at Boston Medical Center //
12
13#ifndef RESPOND_TRANSITION_HPP_
14#define RESPOND_TRANSITION_HPP_
15
16#include <map>
17#include <memory>
18#include <string>
19
20#include <Eigen/Dense>
21
22#include <respond/history.hpp>
23
24namespace respond {
25
31public:
33 virtual ~Transition() = default;
34
42 virtual Eigen::VectorXd
43 Execute(const Eigen::VectorXd &s,
44 std::map<std::string, History> &h) const = 0;
45
49 virtual void AddTransitionMatrix(const Eigen::MatrixXd &m) = 0;
50
53 virtual std::string GetTransitionName() const = 0;
54
56 virtual void ClearTransitionMatrices() = 0;
57
60 virtual std::string GetLogName() const = 0;
61
64 Transition(const Transition &) = delete;
67 Transition &operator=(const Transition &) = delete;
68
71 virtual std::unique_ptr<Transition> clone() const = 0;
72
73protected:
76 Transition() = default;
77};
78} // namespace respond
79
80#endif
Abstract base class representing a state transition operation. Transitions apply transformation matri...
Definition: transition.hpp:30
virtual Eigen::VectorXd Execute(const Eigen::VectorXd &s, std::map< std::string, History > &h) const =0
Executes this transition, applying it to a state vector. The input state is not modified; history rec...
virtual void ClearTransitionMatrices()=0
Clears all stored transition matrices.
virtual void AddTransitionMatrix(const Eigen::MatrixXd &m)=0
Adds a transformation matrix to this transition. The matrix is stored for use during Execute() calls.
virtual ~Transition()=default
Virtual destructor for proper polymorphic cleanup.
virtual std::string GetLogName() const =0
Retrieves the logger name used by this transition.
Transition()=default
Protected default constructor for subclass initialization. Not intended for direct public use.
Transition(const Transition &)=delete
Deleted copy constructor (transitions are non-copyable by public API).
virtual std::unique_ptr< Transition > clone() const =0
Creates a deep copy of this transition.
Transition & operator=(const Transition &)=delete
Deleted copy assignment operator (transitions are non-copyable by public API).
virtual std::string GetTransitionName() const =0
Retrieves the name/type of this transition.