1919 */
2020template <system_state StateType>
2121auto create_portfolio_interface () {
22- auto interface = diffeq::interfaces::make_integration_interface<StateType>();
22+ auto interface = diffeq::interfaces::make_integration_interface<StateType, double >();
2323
2424 // Example: Market data signal causes continuous trajectory shift
2525 interface->template register_signal_influence <double >(
2626 " price_update" ,
27- diffeq::interfaces::IntegrationInterface<StateType>::InfluenceMode::CONTINUOUS_SHIFT,
27+ diffeq::interfaces::IntegrationInterface<StateType, double >::InfluenceMode::CONTINUOUS_SHIFT,
2828 [](const double & new_price, StateType& state, auto t) {
2929 // Modify portfolio dynamics based on price update
3030 if (state.size () >= 3 ) {
@@ -40,7 +40,7 @@ auto create_portfolio_interface() {
4040 // Example: Risk alert causes discrete state modification
4141 interface->template register_signal_influence <std::string>(
4242 " risk_alert" ,
43- diffeq::interfaces::IntegrationInterface<StateType>::InfluenceMode::DISCRETE_EVENT,
43+ diffeq::interfaces::IntegrationInterface<StateType, double >::InfluenceMode::DISCRETE_EVENT,
4444 [](const std::string& alert_type, StateType& state, auto t) {
4545 if (alert_type == " high_volatility" && state.size () >= 3 ) {
4646 // Reduce all positions by 10%
@@ -74,12 +74,12 @@ auto create_portfolio_interface() {
7474 */
7575template <system_state StateType>
7676auto create_robotics_interface () {
77- auto interface = diffeq::interfaces::make_integration_interface<StateType>();
77+ auto interface = diffeq::interfaces::make_integration_interface<StateType, double >();
7878
7979 // Example: Control command causes discrete position target update
8080 interface->template register_signal_influence <std::vector<double >>(
8181 " control_command" ,
82- diffeq::interfaces::IntegrationInterface<StateType>::InfluenceMode::DISCRETE_EVENT,
82+ diffeq::interfaces::IntegrationInterface<StateType, double >::InfluenceMode::DISCRETE_EVENT,
8383 [](const std::vector<double >& targets, StateType& state, auto t) {
8484 // Update target positions (assuming state has position targets)
8585 size_t n_joints = std::min (targets.size (), state.size () / 3 );
@@ -96,7 +96,7 @@ auto create_robotics_interface() {
9696 // Example: Emergency stop signal
9797 interface->template register_signal_influence <bool >(
9898 " emergency_stop" ,
99- diffeq::interfaces::IntegrationInterface<StateType>::InfluenceMode::DISCRETE_EVENT,
99+ diffeq::interfaces::IntegrationInterface<StateType, double >::InfluenceMode::DISCRETE_EVENT,
100100 [](const bool & stop, StateType& state, auto t) {
101101 if (stop) {
102102 // Set all velocities to zero
@@ -134,12 +134,12 @@ auto create_robotics_interface() {
134134 */
135135template <system_state StateType>
136136auto create_scientific_interface () {
137- auto interface = diffeq::interfaces::make_integration_interface<StateType>();
137+ auto interface = diffeq::interfaces::make_integration_interface<StateType, double >();
138138
139139 // Example: Parameter update from external optimization
140140 interface->template register_signal_influence <double >(
141141 " parameter_update" ,
142- diffeq::interfaces::IntegrationInterface<StateType>::InfluenceMode::PARAMETER_UPDATE,
142+ diffeq::interfaces::IntegrationInterface<StateType, double >::InfluenceMode::PARAMETER_UPDATE,
143143 [](const double & new_param, StateType& state, auto t) {
144144 // Update system parameters affecting dynamics
145145 // This could modify integration tolerances, system constants, etc.
@@ -149,7 +149,7 @@ auto create_scientific_interface() {
149149 // Example: Data logging triggered by external events
150150 interface->template register_signal_influence <std::string>(
151151 " log_trigger" ,
152- diffeq::interfaces::IntegrationInterface<StateType>::InfluenceMode::OUTPUT_TRIGGER,
152+ diffeq::interfaces::IntegrationInterface<StateType, double >::InfluenceMode::OUTPUT_TRIGGER,
153153 [](const std::string& log_type, StateType& state, auto t) {
154154 // This will trigger all output streams immediately
155155 }
0 commit comments