Template Class TripleFusion

Inheritance Relationships

Base Type

Class Documentation

template<typename Left, typename Center, typename Right>
class TripleFusion : public otyca::Model<1>

A class representing a combination of three components: Left, Center, and Right.

This class combines three components of types Left, Center, and Right to a single model by doing a weighted sum of these three components.

Template Parameters:
  • Left – The type of the left component.

  • Center – The type of the center component.

  • Right – The type of the right component.

Public Functions

template<typename ...LeftArgs, typename ...CenterArgs, typename ...RightArgs>
inline TripleFusion(double left_decay, double left_start, double right_decay, double right_start, std::tuple<LeftArgs...> leftArgs, std::tuple<CenterArgs...> centerArgs, std::tuple<RightArgs...> rightArgs)

Constructs a TripleFusion object with specified decay, start values, and arguments for each component.

Parameters:
  • left_decay – The decay for the left component.

  • left_start – The starting value for the left component.

  • right_decay – The decay for the right component.

  • right_start – The starting value for the right component.

  • leftArgs – The arguments for constructing the left component.

  • centerArgs – The arguments for constructing the center component.

  • rightArgs – The arguments for constructing the right component.

template<typename ...LeftArgs, typename ...CenterArgs, typename ...RightArgs>
inline TripleFusion(std::tuple<LeftArgs...> leftArgs, std::tuple<CenterArgs...> centerArgs, std::tuple<RightArgs...> rightArgs)

Constructs a TripleFusion object with arguments for each component.

Parameters:
  • leftArgs – The arguments for constructing the left component.

  • centerArgs – The arguments for constructing the center component.

  • rightArgs – The arguments for constructing the right component.

inline void set_transition(double left_bandwidth, double left_start, double right_bandwidth, double right_start)

Sets the transition values for the left and right components.

Parameters:
  • left_bandwidth – The bandwidth for the left component.

  • left_start – The starting value for the left component.

  • right_bandwidth – The bandwidth for the right component.

  • right_start – The starting value for the right component.

inline virtual void set_transformed_calibration_parameters(const std::vector<double> &p)

Sets the transformed parameters for the components.

Parameters:

p – A vector of transformed parameters to set for the components.

inline virtual void set_parameters(const std::vector<double> &p)

Set the model’s raw parameters.

Parameters:

parameters – A vector of new parameter values.

inline virtual std::vector<double> get_parameters() const

Retrieves the parameters of the components.

Returns:

A vector of parameters for the components.

inline virtual std::vector<double> get_transformed_calibration_parameters() const

Retrieves the transformed parameters of the components.

Returns:

A vector of transformed parameters for the components.

inline virtual std::vector<double> get_transformed_calibration_parameter_variances() const

Retrieves the transformed parameter variances for the components.

Returns:

A vector of transformed parameter variances for the components.

inline virtual std::string name() const

Returns the name of the TripleFusion object, concatenating the names of the components.

Returns:

A string representing the name of the TripleFusion object.

inline virtual std::vector<double> evaluate(const std::vector<std::array<double, 1>> &x) const

Evaluates the TripleFusion object using the given vector of values.

Parameters:

x – A vector of input values for the evaluation.

Returns:

A vector of evaluated values for the TripleFusion object.

Public Members

Left _left

The left component.

Center _center

The center component.

Right _right

The right component.