Program Listing for File amici.h

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

#ifndef amici_h
#define amici_h

#include "amici/cblas.h"
#include "amici/defines.h"
#include "amici/edata.h"
#include "amici/exception.h"
#include "amici/model.h"
#include "amici/rdata.h"
#include "amici/solver.h"
#include "amici/symbolic_functions.h"

namespace amici {

void printErrMsgIdAndTxt(std::string const &id, std::string const &message);

void printWarnMsgIdAndTxt(std::string const &id, std::string const &message);

class AmiciApplication {
  public:
    AmiciApplication() = default;

    std::unique_ptr<ReturnData> runAmiciSimulation(Solver &solver,
                                                   const ExpData *edata,
                                                   Model &model,
                                                   bool rethrow = false);

    std::vector<std::unique_ptr<ReturnData>>
    runAmiciSimulations(Solver const &solver,
                        const std::vector<ExpData *> &edatas,
                        Model const &model, bool failfast, int num_threads);

    outputFunctionType warning = printWarnMsgIdAndTxt;

    outputFunctionType error = printErrMsgIdAndTxt;

    void warningF(const char *identifier, const char *format, ...) const;

    void errorF(const char *identifier, const char *format, ...) const;

    int checkFinite(gsl::span<const realtype> array, const char *fun);
};

std::unique_ptr<ReturnData> runAmiciSimulation(Solver &solver,
                                               const ExpData *edata,
                                               Model &model,
                                               bool rethrow = false);

std::vector<std::unique_ptr<ReturnData>>
runAmiciSimulations(Solver const &solver, const std::vector<ExpData *> &edatas,
                    Model const &model, bool failfast, int num_threads);

} // namespace amici

#endif /* amici_h */