21 return (
dE <= 0.0) ? 1.0 : std::exp(-
beta *
dE);
27 std::vector<double>
table(
dEs.size());
28 for (std::size_t
i = 0;
i <
dEs.size(); ++
i)
std::vector< double > make_boltzmann_table(const std::vector< double > &dEs, double beta)
Precompute a table of acceptance probabilities for a discrete set of dE values.
double boltzmann_accept(double dE, double beta) noexcept
Metropolis acceptance probability min(1, exp(-β ΔE)).
real beta(real a, real b)
B(a, b) – beta function.
constexpr T ipow(T x) noexcept
Compute x^N at compile time via repeated squaring.