Translated laskeMuutokset2 and 3

This commit is contained in:
Waldir Leoncio 2020-10-19 16:12:22 +02:00
parent 5dd2889c54
commit 9a38c59ab9

View file

@ -70,7 +70,7 @@ laskeMuutokset <- function(ind, globalRows, data, adjprior, priorTerm) {
i2 <- find(muutokset == -Inf) # Etsit<69><74>n populaatiot jotka muuttuneet viime kerran j<>lkeen. i2 <- find(muutokset == -Inf) # Etsit<69><74>n populaatiot jotka muuttuneet viime kerran j<>lkeen.
i2 <- setdiff(i2, i1) i2 <- setdiff(i2, i1)
i2_logml <- POP_LOGML(i2) i2_logml <- POP_LOGML[i2]
ni2 <- length(i2) ni2 <- length(i2)
@ -85,107 +85,100 @@ laskeMuutokset <- function(ind, globalRows, data, adjprior, priorTerm) {
return(list(muutokset = muutokset, diffInCounts = diffInCounts)) return(list(muutokset = muutokset, diffInCounts = diffInCounts))
} }
# %------------------------------------------------------------------------------------
laskeMuutokset2 <- function(i1, globalRows, data, adjprior, priorTerm) { laskeMuutokset2 <- function(i1, globalRows, data, adjprior, priorTerm) {
# % Palauttaa npops*1 taulun, jossa i:s alkio kertoo, mik<69> olisi # % Palauttaa npops*1 taulun, jossa i:s alkio kertoo, mik<69> olisi
# % muutos logml:ss<73>, mik<69>li korin i1 kaikki yksil<69>t siirret<65><74>n # % muutos logml:ss<73>, mik<69>li korin i1 kaikki yksil<69>t siirret<65><74>n
# % koriin i. # % koriin i.
# global COUNTS; global SUMCOUNTS; npops <- size(COUNTS, 3)
# global PARTITION; global POP_LOGML; muutokset <- zeros(npops, 1)
# npops = size(COUNTS,3);
# muutokset = zeros(npops,1);
# i1_logml = POP_LOGML(i1); i1_logml <- POP_LOGML[i1]
# inds = find(PARTITION==i1); inds <- find(PARTITION == i1)
# ninds = length(inds); ninds <- length(inds)
# if ninds==0 if (ninds == 0) {
# diffInCounts = zeros(size(COUNTS,1), size(COUNTS,2)); diffInCounts <- zeros(size(COUNTS, 1), size(COUNTS, 2))
# return; return()
# end }
# rows = []; rows = list()
# for i = 1:ninds for (i in 1:ninds) {
# ind = inds(i); ind <- inds(i)
# lisa = globalRows(ind,1):globalRows(ind,2); lisa <- globalRows(ind, 1):globalRows(ind, 2)
# rows = [rows; lisa']; rows <- c(rows, t(lisa))
# %rows = [rows; globalRows{ind}']; }
# end
# diffInCounts = computeDiffInCounts(rows', size(COUNTS,1), size(COUNTS,2), data); diffInCounts <- computeDiffInCounts(
# diffInSumCounts = sum(diffInCounts); t(rows), size(COUNTS, 1), size(COUNTS, 2), data
)
diffInSumCounts <- sum(diffInCounts)
# COUNTS(:,:,i1) = COUNTS(:,:,i1)-diffInCounts; COUNTS[, , i1] <- COUNTS[, , i1] - diffInCounts
# SUMCOUNTS(i1,:) = SUMCOUNTS(i1,:)-diffInSumCounts; SUMCOUNTS[i1, ] <- SUMCOUNTS[i1, ] - diffInSumCounts
# new_i1_logml = computePopulationLogml(i1, adjprior, priorTerm); new_i1_logml <- computePopulationLogml(i1, adjprior, priorTerm)
# COUNTS(:,:,i1) = COUNTS(:,:,i1)+diffInCounts; COUNTS[, , i1] <- COUNTS[, , i1] + diffInCounts
# SUMCOUNTS(i1,:) = SUMCOUNTS(i1,:)+diffInSumCounts; SUMCOUNTS[i1, ] <- SUMCOUNTS[i1, ] + diffInSumCounts
# i2 = [1:i1-1 , i1+1:npops]; i2 <- c(1:i1-1, i1+1:npops)
# i2_logml = POP_LOGML(i2); i2_logml <- POP_LOGML[i2]
# COUNTS(:,:,i2) = COUNTS(:,:,i2)+repmat(diffInCounts, [1 1 npops-1]); COUNTS[, , i2] <- COUNTS[, , i2] + repmat(diffInCounts, c(1, 1, npops - 1))
# SUMCOUNTS(i2,:) = SUMCOUNTS(i2,:)+repmat(diffInSumCounts,[npops-1 1]); SUMCOUNTS[i2, ] <- SUMCOUNTS[i2, ] + repmat(diffInSumCounts, c(npops - 1, 1))
# new_i2_logml = computePopulationLogml(i2, adjprior, priorTerm); new_i2_logml <- computePopulationLogml(i2, adjprior, priorTerm)
# COUNTS(:,:,i2) = COUNTS(:,:,i2)-repmat(diffInCounts, [1 1 npops-1]); COUNTS[, , i2] <- COUNTS[, , i2] - repmat(diffInCounts, c(1, 1, npops - 1))
# SUMCOUNTS(i2,:) = SUMCOUNTS(i2,:)-repmat(diffInSumCounts,[npops-1 1]); SUMCOUNTS[i2, ] <- SUMCOUNTS[i2, ] - repmat(diffInSumCounts, c(npops - 1, 1))
# muutokset(i2) = new_i1_logml - i1_logml ... muutokset[i2] <- new_i1_logml - i1_logml + new_i2_logml - i2_logml
# + new_i2_logml - i2_logml; return(list(muutokset = muutokset, diffInCounts = diffInCounts))
return(list(muutokset = muutokset, diffInCounts = diffInCounts))
} }
laskeMuutokset3 <- function(T2, inds2, globalRows, data, adjprior, priorTerm, i1) { laskeMuutokset3 <- function(T2, inds2, globalRows, data, adjprior, priorTerm, i1) {
# % Palauttaa length(unique(T2))*npops taulun, jossa (i,j):s alkio # Palauttaa length(unique(T2))*npops taulun, jossa (i,j):s alkio
# % kertoo, mik<69> olisi muutos logml:ss<73>, jos populaation i1 osapopulaatio # kertoo, mik<69> olisi muutos logml:ss<73>, jos populaation i1 osapopulaatio
# % inds2(find(T2==i)) siirret<65><74>n koriin j. # inds2(find(T2==i)) siirret<65><74>n koriin j.
# global COUNTS; global SUMCOUNTS; npops <- size(COUNTS, 3)
# global PARTITION; global POP_LOGML; npops2 <- length(unique(T2))
# npops = size(COUNTS,3); muutokset <- zeros(npops2, npops)
# npops2 = length(unique(T2));
# muutokset = zeros(npops2, npops);
# i1_logml = POP_LOGML(i1); i1_logml = POP_LOGML[i1]
# for pop2 = 1:npops2 for (pop2 in 1:npops2) {
# inds = inds2(find(T2==pop2)); inds <- inds2[find(T2==pop2)]
# ninds = length(inds); ninds <- length(inds);
# if ninds>0 if (ninds > 0) {
# rows = []; rows <- list()
# for i = 1:ninds for (i in 1:ninds) {
# ind = inds(i); ind <- inds[i]
# lisa = globalRows(ind,1):globalRows(ind,2); lisa <- globalRows[ind, 1]:globalRows[ind, 2]
# rows = [rows; lisa']; rows <- c(rows, t(lisa))
# %rows = [rows; globalRows{ind}']; }
# end diffInCounts <- computeDiffInCounts(
# diffInCounts = computeDiffInCounts(rows', size(COUNTS,1), size(COUNTS,2), data); t(rows), size(COUNTS, 1), size(COUNTS, 2), data
# diffInSumCounts = sum(diffInCounts); )
diffInSumCounts <- sum(diffInCounts)
# COUNTS(:,:,i1) = COUNTS(:,:,i1)-diffInCounts; COUNTS[, , i1] <- COUNTS[, , i1] - diffInCounts
# SUMCOUNTS(i1,:) = SUMCOUNTS(i1,:)-diffInSumCounts; SUMCOUNTS[i1, ] <- SUMCOUNTS[i1, ] - diffInSumCounts
# new_i1_logml = computePopulationLogml(i1, adjprior, priorTerm); new_i1_logml <- computePopulationLogml(i1, adjprior, priorTerm)
# COUNTS(:,:,i1) = COUNTS(:,:,i1)+diffInCounts; COUNTS[, , i1] <- COUNTS[, , i1] + diffInCounts
# SUMCOUNTS(i1,:) = SUMCOUNTS(i1,:)+diffInSumCounts; SUMCOUNTS[i1, ] <- SUMCOUNTS[i1, ] + diffInSumCounts
# i2 = [1:i1-1 , i1+1:npops]; i2 <- c(1:i1-1, i1+1:npops)
# i2_logml = POP_LOGML(i2)'; i2_logml <- t(POP_LOGML[i2])
# COUNTS(:,:,i2) = COUNTS(:,:,i2)+repmat(diffInCounts, [1 1 npops-1]); COUNTS[, , i2] <- COUNTS[, , i2] + repmat(diffInCounts, c(1, 1, npops - 1))
# SUMCOUNTS(i2,:) = SUMCOUNTS(i2,:)+repmat(diffInSumCounts,[npops-1 1]); SUMCOUNTS[i2, ] <- SUMCOUNTS[i2, ] + repmat(diffInSumCounts, c(npops - 1, 1))
# new_i2_logml = computePopulationLogml(i2, adjprior, priorTerm)'; new_i2_logml <- t(computePopulationLogml(i2, adjprior, priorTerm))
# COUNTS(:,:,i2) = COUNTS(:,:,i2)-repmat(diffInCounts, [1 1 npops-1]); COUNTS[, , i2] <- COUNTS[, , i2] - repmat(diffInCounts, c(1, 1, npops - 1))
# SUMCOUNTS(i2,:) = SUMCOUNTS(i2,:)-repmat(diffInSumCounts,[npops-1 1]); SUMCOUNTS[i2, ] <- SUMCOUNTS[i2, ] - repmat(diffInSumCounts, c(npops - 1, 1))
# muutokset(pop2,i2) = new_i1_logml - i1_logml ... muutokset[pop2, i2] <- new_i1_logml - i1_logml + new_i2_logml - i2_logml
# + new_i2_logml - i2_logml; }
# end }
# end return(muutokset)
return(muutokset)
} }
laskeMuutokset5 <- function(inds, globalRows, data, adjprior, priorTerm, i1, i2) { laskeMuutokset5 <- function(inds, globalRows, data, adjprior, priorTerm, i1, i2) {