<pre style='margin:0'>
Renee Otten (reneeotten) pushed a commit to branch master
in repository macports-ports.
</pre>
<p><a href="https://github.com/macports/macports-ports/commit/baf0ff04da86d9587142e9890215be2951f41653">https://github.com/macports/macports-ports/commit/baf0ff04da86d9587142e9890215be2951f41653</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit baf0ff04da86d9587142e9890215be2951f41653
</span>Author: Sergey Fedorov <vital.had@gmail.com>
AuthorDate: Sat Sep 16 06:06:49 2023 +0700
<span style='display:block; white-space:pre;color:#404040;'> R-mixture: new port
</span>---
R/R-mixture/Portfile | 27 ++
R/R-mixture/files/patch-fix-isnan-isinf.diff | 436 +++++++++++++++++++++++++++
2 files changed, 463 insertions(+)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/R/R-mixture/Portfile b/R/R-mixture/Portfile
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..dea124dc0ff
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/R/R-mixture/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,27 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortSystem 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup R 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+R.setup cran cran mixture 2.0.5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+categories-append math
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+maintainers {@barracuda156 gmail.com:vital.had} openmaintainer
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+license GPL-2+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+description Mixture models for clustering and classification
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+long_description {*}${description}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+checksums rmd160 c6b4e7636a0e30b4ccfd84514dc3894ca788538d \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sha256 cb80d1561d8cb7b4982c440710f11a706c289ff09dd2011c5cb234ad9f86cd9b \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ size 212759
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+depends_lib-append port:gsl \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:R-BH \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:R-Rcpp \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:R-RcppArmadillo \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:R-RcppGSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles patch-fix-isnan-isinf.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+compilers.setup require_fortran
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+test.run yes
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/R/R-mixture/files/patch-fix-isnan-isinf.diff b/R/R-mixture/files/patch-fix-isnan-isinf.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..28c59bbf4c7
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/R/R-mixture/files/patch-fix-isnan-isinf.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,436 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/T_Model/General_Methods.hpp.orig 2022-07-18 22:59:27.000000000 +0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/T_Model/General_Methods.hpp 2023-09-16 05:03:59.000000000 +0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -281,8 +281,8 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ double ss = arma::sum(inter_zigs.row(i));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if(isnan(ss)){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if(std::isnan(ss)){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ inter_zigs.row(i) = zi_gs.row(i);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ss = arma::sum(inter_zigs.row(i));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -355,8 +355,8 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ double ss = arma::sum(inter_zigs.row(i));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if(isnan(ss)){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if(std::isnan(ss)){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ inter_zigs.row(i) = zi_gs.row(i);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ss = arma::sum(inter_zigs.row(i));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -443,8 +443,8 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ double ss = arma::sum(inter_zigs.row(i));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if(isnan(ss)){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if(std::isnan(ss)){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ inter_zigs.row(i) = zi_gs.row(i);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ss = arma::sum(inter_zigs.row(i));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -563,14 +563,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ try {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ double vgs_g = vgs_solve(eta_g,vgs[0], 0.1);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if(!std::isnan(vgs_g) && !comparison_t(vgs_g,0)){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ for(int g = 0; g < G; g++){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ vgs[g] = vgs_g;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- } catch(const std::exception& e) { };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ } catch(const std::exception& e) { };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -607,7 +604,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ logliks.push_back(calculate_log_liklihood());
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- //checking aitkens convergence criterion
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ // checking aitkens convergence criterion
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ int last_index = logliks.size()-1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ double l_p1 = logliks[last_index];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ double l_t = logliks[last_index-1];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -622,7 +619,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #pragma once
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void T_Mixture_Model::z_ig_init_random(void) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // arma::mat inter_zigs = arma::mat(n,G,arma::fill::zeros);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // for(int i = 0; i < n; i++){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -634,22 +631,19 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // inter_row_sum += inter_zigs.at(i,g);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // // check for stupid nans
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // for(int g = 0; g < G; g++){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // double numer_g = inter_row_sum - inter_zigs(i,g);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // double denom_g = inter_zigs(i,g);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // inter_zigs(i,g) = 1.0/(1 + numer_g/denom_g);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- // if(isnan(inter_zigs(i,g))){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ // if(std::isnan(inter_zigs(i,g))){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // inter_zigs.row(i) = inter_zigs.row(i-1);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- // }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ // }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // zi_gs = inter_zigs;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/gpcm_arma.hpp.orig 2022-07-18 22:59:27.000000000 +0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/gpcm_arma.hpp 2023-09-16 05:07:07.000000000 +0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -656,8 +656,8 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ double ss = arma::sum(inter_zigs.row(i));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if(isnan(ss)){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if(std::isnan(ss)){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ inter_zigs.row(i) = zi_gs.row(i);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ss = arma::sum(inter_zigs.row(i));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -732,8 +732,8 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ double ss = arma::sum(inter_zigs.row(i));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if(isnan(ss)){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if(std::isnan(ss)){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ inter_zigs.row(i) = zi_gs.row(i);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ss = arma::sum(inter_zigs.row(i));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -819,8 +819,8 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ double ss = arma::sum(inter_zigs.row(i));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if(isnan(ss)){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if(std::isnan(ss)){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ inter_zigs.row(i) = zi_gs.row(i);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ss = arma::sum(inter_zigs.row(i));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/ghpcm_arma.hpp.orig 2022-09-20 22:04:13.000000000 +0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/ghpcm_arma.hpp 2023-09-16 04:55:37.000000000 +0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -189,10 +189,10 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ m->set_E_step(stochastic_check);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if(isnan(in_l_tol)){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if(std::isnan(in_l_tol)){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ m->tol_l = 1e-6;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ else{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/stpcm_arma.hpp.orig 2022-09-20 22:04:13.000000000 +0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/stpcm_arma.hpp 2023-09-16 05:01:47.000000000 +0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -203,7 +203,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ } // in all other cases use a standard sampler.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if(isnan(in_l_tol)){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if(std::isnan(in_l_tol)){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ m->tol_l = 1e-6;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ else{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/tpcm_arma.hpp.orig 2022-07-18 22:59:27.000000000 +0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/tpcm_arma.hpp 2023-09-16 05:01:05.000000000 +0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -122,7 +122,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ m->set_E_step(stochastic_check);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ m->set_m_step_vgs(constrained_check);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if(isnan(in_l_tol)){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if(std::isnan(in_l_tol)){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ m->tol_l = 1e-6;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ else{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/vgpcm_arma.hpp.orig 2022-09-20 22:04:13.000000000 +0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/vgpcm_arma.hpp 2023-09-16 04:58:53.000000000 +0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -193,7 +193,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ m->set_E_step(stochastic_check);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ m->set_latent_step(latent_step);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if(isnan(in_l_tol)){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if(std::isnan(in_l_tol)){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ m->tol_l = 1e-6;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ else{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/GH_Model/GH_Mixture_Model.h.orig 2022-09-20 22:04:13.000000000 +0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/GH_Model/GH_Mixture_Model.h 2023-09-16 05:07:50.000000000 +0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -496,7 +496,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ int last_index = logliks.size();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ double l_p1 = logliks[last_index-1];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ double l_t = logliks[last_index-2];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if( isnan(l_p1) || isinf(l_p1) ){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if( std::isnan(l_p1) || std::isinf(l_p1) ){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ infinite_loglik_except e;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ throw e;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -506,7 +506,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ double l_m1 = logliks[last_index-3];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ double a_t = (l_p1 - l_t)/(l_t - l_m1);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if(isnan(a_t) || isinf(a_t)){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if(std::isnan(a_t) || std::isinf(a_t)){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ a_t = 0.0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ double l_Inf = l_t + (l_p1 - l_t)/(1.0-a_t);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -610,7 +610,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // loggy("nu" space nu space "rho" space rho space "delta" space delta space "bess_input" space bess_input space "leading_terms" space leading_terms space "middle terms" space middle_terms space "third term" space third_term space "bessel_term" space bessel_term space "result" space result);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if(isnan(result) || isinf(result)){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if(std::isnan(result) || std::isinf(result)){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // loggy("result: " << result << " leading_terms: " << leading_terms << " middle_terms: " << middle_terms << " third_term: " << third_term << " bessel_term: " << bessel_term );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // loggy("delta: " << delta << " omega_g " << omega_g << " rho " << rho);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -811,8 +811,8 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ double ss = arma::sum(inter_zigs.row(i));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if(isnan(ss)){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if(std::isnan(ss)){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ inter_zigs.row(i) = zi_gs.row(i);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ss = arma::sum(inter_zigs.row(i));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -904,8 +904,8 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ double ss = arma::sum(inter_zigs.row(i));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if(isnan(ss)){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if(std::isnan(ss)){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ inter_zigs.row(i) = zi_gs.row(i);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ss = arma::sum(inter_zigs.row(i));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -982,8 +982,8 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ double ss = arma::sum(inter_zigs.row(i));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if(isnan(ss)){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if(std::isnan(ss)){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ inter_zigs.row(i) = zi_gs.row(i);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ss = arma::sum(inter_zigs.row(i));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/ST_Model/ST_Mixture_Model.h.orig 2022-09-20 22:04:13.000000000 +0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/ST_Model/ST_Mixture_Model.h 2023-09-16 04:58:15.000000000 +0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -490,7 +490,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ double l_p1 = logliks[last_index-1];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ double l_t = logliks[last_index-2];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if( isnan(l_p1) || isinf(l_p1) ){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if( std::isnan(l_p1) || std::isinf(l_p1) ){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ infinite_loglik_except e;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ throw e;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -529,8 +529,8 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ double c_loglik = calculate_log_liklihood();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ bool conv_check = false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // loggy("loglik: " << c_loglik);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if( isnan(c_loglik) || isinf(c_loglik) ){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if( std::isnan(c_loglik) || std::isinf(c_loglik) ){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if(logliks.size() < 10){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ infinite_loglik_except e;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ throw e;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -564,7 +564,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ c_loglik = calculate_log_liklihood();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if(isnan(c_loglik) || isinf(c_loglik)){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if(std::isnan(c_loglik) || std::isinf(c_loglik)){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ zi_gs = prev_zi_gs;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ abar_gs = prev_abar_gs;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ bbar_gs = prev_bbar_gs;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -667,12 +667,12 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ double third_term = (nu/2.0)*( log(delta + v_g) - log(rho));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ double bessel_term = LG_k_bessel(nu,bess_input);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if( isnan(bessel_term)){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if( std::isnan(bessel_term)){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ bessel_term = log(1e-10);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ double result = leading_terms + middle_terms +third_term + bessel_term;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return(result);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -861,8 +861,8 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ double ss = arma::sum(inter_zigs.row(i));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if(isnan(ss)){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if(std::isnan(ss)){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ inter_zigs.row(i) = zi_gs.row(i);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ss = arma::sum(inter_zigs.row(i));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -958,8 +958,8 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ double ss = arma::sum(inter_zigs.row(i));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if(isnan(ss)){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if(std::isnan(ss)){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ inter_zigs.row(i) = zi_gs.row(i);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ss = arma::sum(inter_zigs.row(i));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1037,8 +1037,8 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ double ss = arma::sum(inter_zigs.row(i));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if(isnan(ss)){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if(std::isnan(ss)){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ inter_zigs.row(i) = zi_gs.row(i);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ss = arma::sum(inter_zigs.row(i));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1542,15 +1542,13 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ const double eta_g = bbar_gs[g] - cbar_gs[g] - 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ try {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ double gam_g = st_gamma_solve(eta_g,vs[g], 2*eps);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if(!isnan(gam_g) && !comparison_st(gam_g,20.0)){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if(!std::isnan(gam_g) && !comparison_st(gam_g,20.0)){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ vs[g] = gam_g;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ } catch(const std::exception& e){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- Rcpp::Rcout << "error has occured with gamma solver." << std::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Rcpp::Rcout << "error has occured with gamma solver." << std::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/VG_Model/VG_Mixture_Model.h.orig 2022-09-20 22:04:13.000000000 +0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/VG_Model/VG_Mixture_Model.h 2023-09-16 05:00:24.000000000 +0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -491,7 +491,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ double l_p1 = logliks[last_index-1];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ double l_t = logliks[last_index-2];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if( isnan(l_p1) || isinf(l_p1) ){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if( std::isnan(l_p1) || std::isinf(l_p1) ){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ infinite_loglik_except e;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ throw e;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -532,7 +532,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ double c_loglik = calculate_log_liklihood();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // loggy("loglik: " << c_loglik);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if( isnan(c_loglik) || isinf(c_loglik) ){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if( std::isnan(c_loglik) || std::isinf(c_loglik) ){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if(logliks.size() < 10){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ infinite_loglik_except e;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -567,7 +567,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ c_loglik = calculate_log_liklihood();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if(isnan(c_loglik) || isinf(c_loglik)){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if(std::isnan(c_loglik) || std::isinf(c_loglik)){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ zi_gs = prev_zi_gs;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ abar_gs = prev_abar_gs;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ bbar_gs = prev_bbar_gs;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -669,7 +669,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ double third_term = (nu/2.0)*( log(delta) - log( rho + 2*gam_g));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ double bessel_term = LG_k_bessel(nu, bess_input);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if( isnan(bessel_term)){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if( std::isnan(bessel_term)){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ bessel_term = log(1e-10);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -862,8 +862,8 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ double ss = arma::sum(inter_zigs.row(i));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if(isnan(ss)){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if(std::isnan(ss)){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ inter_zigs.row(i) = zi_gs.row(i);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ss = arma::sum(inter_zigs.row(i));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -956,8 +956,8 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ double ss = arma::sum(inter_zigs.row(i));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if(isnan(ss)){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if(std::isnan(ss)){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ inter_zigs.row(i) = zi_gs.row(i);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ss = arma::sum(inter_zigs.row(i));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1035,8 +1035,8 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ double ss = arma::sum(inter_zigs.row(i));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if(isnan(ss)){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if(std::isnan(ss)){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ inter_zigs.row(i) = zi_gs.row(i);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ss = arma::sum(inter_zigs.row(i));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1360,16 +1360,13 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ const double eta_g = abar_gs[g] - cbar_gs[g] - 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ try {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ double gam_g = vg_gamma_solve(eta_g,gammas[g], 1e-7);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if(!isnan(gam_g) && !comparison_vg(gam_g,10.0)){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if(!std::isnan(gam_g) && !comparison_vg(gam_g,10.0)){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ gammas[g] = gam_g;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ } catch(const std::exception& e){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- Rcpp::Rcout << "error has occured with gamma solver." << std::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Rcpp::Rcout << "error has occured with gamma solver." << std::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span></pre><pre style='margin:0'>
</pre>