Class Definition:
class empirical { public: // build objects int nbX; int nbY; int nbParams; int aux_nbDraws; int nbOptions; bool xHomogenous; bool outsideOption; arma::cube atoms; // input objects arma::mat U; arma::mat mu; // equilibrium objects arma::mat U_sol; arma::mat mu_sol; // member functions ~empirical(){}; empirical(){}; explicit empirical(int nbX_inp, int nbY_inp); explicit empirical(int nbX_inp, int nbY_inp, const arma::cube& atoms_inp, bool xHomogenous_inp, bool outsideOption_inp); void build(int nbX_inp, int nbY_inp); void build(int nbX_inp, int nbY_inp, const arma::cube& atoms_inp, bool xHomogenous_inp, bool outsideOption_inp); double G(const arma::vec& n); double G(const arma::vec& n, const arma::mat& U_inp, arma::mat& mu_out); double Gx(const arma::mat& U_x_inp, arma::mat& mu_x_out, int x); double Gstar(const arma::vec& n); double Gstar(const arma::vec& n, const arma::mat& mu_inp, arma::mat& U_out); double Gstarx(const arma::mat& mu_x_inp, arma::mat &U_x_out, int x); double Gbar(const arma::mat& Ubar, const arma::mat& mubar, const arma::vec& n, arma::mat& U_out, arma::mat& mu_out); double Gbarx(const arma::vec& Ubar_x, const arma::vec& mubar_x, arma::mat& U_x_out, arma::mat& mu_x_out, int x); private: /* * these private member objects are mostly used by LP solvers */ void presolve_LP_Gstar(); void presolve_LP_Gbar(); bool TRAME_PRESOLVED_GSTAR = false; bool TRAME_PRESOLVED_GBAR = false; int k_Gstar; int n_Gstar; int numnz_Gstar; int* vind_Gstar; int* vbeg_Gstar; double* vval_Gstar; int k_Gbar; int n_Gbar; int numnz_Gbar; int* vind_Gbar; int* vbeg_Gbar; double* vval_Gbar; };