From a9725a4f2192cd3723c2b7b75cabd7efac157268 Mon Sep 17 00:00:00 2001
From: Eduardo Junior <edujrrib@gmail.com>
Date: Sat, 21 May 2016 22:35:57 -0300
Subject: [PATCH] Corrige intervalo de y a ser primeiramente avaliado

---
 R/cmp.R | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/R/cmp.R b/R/cmp.R
index 96f679c..ad22f6c 100644
--- a/R/cmp.R
+++ b/R/cmp.R
@@ -266,8 +266,9 @@ calc_mean_cmp <- function(lambda, nu, sumto, tol = 1e-5) {
     names(nu) <- NULL
     pars <- data.frame(lambda = lambda, nu = nu)
     ## Calcula o ymax usando mu + 5 (sqrt(sigma))
-    sigma <- lambda^(1/nu)/nu - (nu - 1)/(2 * nu^2)
-    ymax <- with(pars, ceiling(max(lambda + 5 * sqrt(sigma))))
+    approxmu <- lambda^(1/nu) - (nu - 1)/(2 * nu)
+    sigma <- (1/nu) * approxmu
+    ymax <- with(pars, ceiling(max(approxmu + 5 * sqrt(sigma))))
     ## Agora verifica se a prob(ymax) é de fato pequena, se não, soma 1.
     lambdamax <- max(pars$lambda)
     numin <- min(pars$nu)
@@ -317,9 +318,10 @@ calc_var_cmp <- function(lambda, nu, sumto, tol = 1e-5) {
     names(lambda) <- NULL
     names(nu) <- NULL
     pars <- data.frame(lambda = lambda, nu = nu)
-    # Calcula o ymax usando mu + 5 (sqrt(sigma))
-    sigma <- lambda^(1/nu)/nu - (nu - 1)/(2 * nu^2)
-    ymax <- with(pars, ceiling(max(lambda + 5 * sqrt(sigma))))
+    ## Calcula o ymax usando mu + 5 (sqrt(sigma))
+    approxmu <- lambda^(1/nu) - (nu - 1)/(2 * nu)
+    sigma <- (1/nu) * approxmu
+    ymax <- with(pars, ceiling(max(approxmu + 5 * sqrt(sigma))))
     # Agora verifica se a prob(ymax) é de fato pequena, se não, soma 1.
     lambdamax <- max(pars$lambda)
     numin <- min(pars$nu)
-- 
GitLab