<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>