File mmcs.hpp

Functions

template<typename Polytope, typename RandomNumberGenerator, typename MT, typename Point, typename WalkTypePolicy>
bool perform_mmcs_step(Polytope &P, RandomNumberGenerator &rng, unsigned int const &walk_length, unsigned int const &target_ess, unsigned int const &max_num_samples, unsigned int const &window, unsigned int &Neff_sampled, unsigned int &total_samples, unsigned int const &num_rounding_steps, MT &TotalRandPoints, const Point &starting_point, unsigned int const &nburns, bool request_rounding, WalkTypePolicy &WalkType)

The class implements a single step of the Multiphase Monte Carlo Sampling algorithm given in,

A. Chalkis, V. Fisikopoulos, E. Tsigaridas, H. Zafeiropoulos, Geometric algorithms for sampling the flux space of metabolic networks, SoCG 21.

Template Parameters:
  • Polytope – convex polytope type

  • RandomNumberGenerator – random number generator type

  • MT – matrix type

  • Point – cartensian point type

  • WalkTypePolicy – random walk type

template<typename Polytope, typename MT>
void mmcs(Polytope const &Pin, int const &Neff, MT &S, int &total_neff)
template<typename Polytope, typename MT>
void mmcs(Polytope const &Pin, int const &Neff, MT &S, int &total_neff, unsigned int const &walk_length)
template<typename Polytope, typename MT, typename RandomNumberGenerator>
void mmcs(Polytope const &Pin, int const &Neff, MT &S, int &total_neff, unsigned int const &walk_length, RandomNumberGenerator &rng)