Program Listing for File simulation_parameters.h

Return to documentation for file (include/amici/simulation_parameters.h)

#ifndef AMICI_SIMULATION_PARAMETERS_H
#define AMICI_SIMULATION_PARAMETERS_H

#include "amici/defines.h"

#include <vector>

namespace amici {

class SimulationParameters {
public:
    SimulationParameters() = default;

    explicit SimulationParameters(std::vector<realtype> timepoints)
        : ts_(std::move(timepoints))
    {
    }

    SimulationParameters(std::vector<realtype> fixedParameters,
                         std::vector<realtype> parameters)
        : fixedParameters(std::move(fixedParameters)),
          parameters(std::move(parameters)),
          pscale(std::vector<ParameterScaling>(this->parameters.size(),
                                               ParameterScaling::none))
    {
    }

    SimulationParameters(std::vector<realtype> fixedParameters,
                         std::vector<realtype> parameters,
                         std::vector<int> plist
                         )
        : fixedParameters(std::move(fixedParameters)),
          parameters(std::move(parameters)),
          pscale(std::vector<ParameterScaling>(this->parameters.size(),
                                               ParameterScaling::none)),
          plist(std::move(plist))
    {
    }

    SimulationParameters(std::vector<realtype> timepoints,
                         std::vector<realtype> fixedParameters,
                         std::vector<realtype> parameters)
        : fixedParameters(std::move(fixedParameters)),
          parameters(std::move(parameters)),
          pscale(std::vector<ParameterScaling>(this->parameters.size(),
                                               ParameterScaling::none)),
          ts_(std::move(timepoints))
    {
    }

    void reinitializeAllFixedParameterDependentInitialStatesForPresimulation(int nx_rdata);

    void reinitializeAllFixedParameterDependentInitialStatesForSimulation(int nx_rdata);

    void reinitializeAllFixedParameterDependentInitialStates(int nx_rdata);

    std::vector<realtype> fixedParameters;

    std::vector<realtype> fixedParametersPreequilibration;

    std::vector<realtype> fixedParametersPresimulation;

    std::vector<realtype> parameters;

    std::vector<realtype> x0;

    std::vector<realtype> sx0;

    std::vector<ParameterScaling> pscale;

    std::vector<int> plist;

    realtype tstart_ {0.0};

    realtype t_presim {0.0};

    std::vector<realtype> ts_;

    bool reinitializeFixedParameterInitialStates {false};

    std::vector<int> reinitialization_state_idxs_presim;

    std::vector<int> reinitialization_state_idxs_sim;
};

bool operator==(const SimulationParameters &a, const SimulationParameters &b);

} // namespace amici

#endif // AMICI_SIMULATION_PARAMETERS_H