20#include "reaction_methods/SingleReaction.hpp"
25#include <unordered_map>
33 for (
int i = 1; i <=
nu_i; i++) {
34 value -= std::log(
static_cast<double>(
Ni0 + i));
38 value = -std::numeric_limits<double>::max();
40 for (
int i = 0; i < -
nu_i; i++) {
41 value += std::log(
static_cast<double>(
Ni0 - i));
54 for (
int i = 0; i <
reaction.reactant_types.size(); i++) {
55 auto const nu_i = -1 *
reaction.reactant_coefficients[i];
60 for (
int i = 0; i <
reaction.product_types.size(); i++) {
74 auto const nu_i = -1 *
reaction.reactant_coefficients[0];
cudaStream_t stream[1]
CUDA streams for parallel computing on CPU and GPU.
double calculate_factorial_expression(SingleReaction const &reaction, std::unordered_map< int, int > const &particle_numbers)
Calculates the logarithm of whole product of factorial expressions which occur in the reaction ensemb...
double calculate_factorial_expression_cpH(SingleReaction const &reaction, std::unordered_map< int, int > const &particle_numbers)
Calculates the logarithm of factorial expression which occurs in the constant pH method with symmetri...
double ln_factorial_Ni0_divided_by_factorial_Ni0_plus_nu_i(int Ni0, int nu_i)
Calculates the logarithm of factorial expression which occurs in the reaction ensemble acceptance pro...