diff options
author | Jaron Kent-Dobias <jaron@kent-dobias.com> | 2018-07-26 13:06:54 -0400 |
---|---|---|
committer | Jaron Kent-Dobias <jaron@kent-dobias.com> | 2018-07-26 13:06:54 -0400 |
commit | 870555f569bc63fecdc7c0b16e72e4e002f21c13 (patch) | |
tree | 704fc4669fa3c69af8882b10eff0e89321b3be83 /lib/finite_states.h | |
parent | 215c40813a35c4fdc0bb5f1b8fdea125b9e9d2e4 (diff) | |
download | c++-870555f569bc63fecdc7c0b16e72e4e002f21c13.tar.gz c++-870555f569bc63fecdc7c0b16e72e4e002f21c13.tar.bz2 c++-870555f569bc63fecdc7c0b16e72e4e002f21c13.zip |
all the R_t have been objectified
Diffstat (limited to 'lib/finite_states.h')
-rw-r--r-- | lib/finite_states.h | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/lib/finite_states.h b/lib/finite_states.h index 1e8800c..08eff30 100644 --- a/lib/finite_states.h +++ b/lib/finite_states.h @@ -3,27 +3,28 @@ #include <cmath> #include <functional> +#include <array> #define FINITE_STATES // must have N_STATES, states[N_STATES], and state_to_ind defined before // invoking header -double J_probs[N_STATES * N_STATES * N_STATES]; -double H_probs[N_STATES * N_STATES]; +std::array<std::array<std::array<double, N_STATES>, N_STATES>, N_STATES> J_probs; +std::array<std::array<double, N_STATES>, N_STATES> H_probs; template <class X_t> void initialize_probs(std::function <double(X_t, X_t)> J, std::function <double(X_t)> H, double T) { for (q_t i = 0; i < N_STATES; i++) { for (q_t j = 0; j < N_STATES; j++) { for (q_t k = 0; k < N_STATES; k++) { - J_probs[i * N_STATES * N_STATES + j * N_STATES +k] = 1.0 - exp(-(J(states[i], states[k]) - J(states[j], states[k])) / T); + J_probs[i][j][k] = 1.0 - exp(-(J(states[i], states[k]) - J(states[j], states[k])) / T); } } } for (q_t i = 0; i < N_STATES; i++) { for (q_t j = 0; j < N_STATES; j++) { - H_probs[i * N_STATES + j] = 1.0 - exp(-(H(states[i]) - H(states[j])) / T); + H_probs[i][j] = 1.0 - exp(-(H(states[i]) - H(states[j])) / T); } } } |