Merge branch 'suoritaMuutos' into dev

This commit is contained in:
Waldir Leoncio 2020-01-14 13:51:34 +01:00
commit 26e510860c
6 changed files with 68 additions and 34 deletions

View file

@ -520,38 +520,4 @@ admix1 <- function(tietue) {
# end
# pointer = pointer+1;
# end
# end
# %--------------------------------------------------------------------------
# function osuusTaulu = suoritaMuutos(osuusTaulu, osuus, indeksi)
# % Päivittää osuusTaulun muutoksen jälkeen.
# global COUNTS;
# npops = size(COUNTS,3);
# i1 = rem(indeksi,npops);
# if i1==0, i1 = npops; end;
# i2 = ceil(indeksi / npops);
# osuusTaulu(i1) = osuusTaulu(i1)-osuus;
# osuusTaulu(i2) = osuusTaulu(i2)+osuus;
# %-------------------------------------------------------------------------
# function [osuusTaulu, logml] = etsiParas(osuus, osuusTaulu, omaFreqs, logml)
# ready = 0;
# while ready ~= 1
# muutokset = laskeMuutokset4(osuus, osuusTaulu, omaFreqs, logml);
# [maxMuutos, indeksi] = max(muutokset(1:end));
# if maxMuutos>0
# osuusTaulu = suoritaMuutos(osuusTaulu, osuus, indeksi);
# logml = logml + maxMuutos;
# else
# ready = 1;
# end
# end

14
R/etsiParas.R Normal file
View file

@ -0,0 +1,14 @@
etsiParas <- function = (osuus, osuusTaulu, omaFreqs, logml) {
ready <- 0;
while (ready != 1) {
muutokset <- laskeMuutokset4(osuus, osuusTaulu, omaFreqs, logml)
[maxMuutos, indeksi] = max(muutokset[1:end]) # TODO: how does this work on Matlab?
if (maxMuutos > 0) {
osuusTaulu <- suoritaMuutos(osuusTaulu, osuus, indeksi)
logml <- logml + maxMuutos
} else {
ready <- 1
}
}
return (c(osuusTaulu, logml))
}

19
R/suoritaMuutos.R Normal file
View file

@ -0,0 +1,19 @@
#' @title suoritaMuutos
#' @description Päivittää osuusTaulun muutoksen jälkeen.
#' @param osuusTaulu Percentage table?
#' @param osuus percentage?
#' @param indeksi index
#' @param COUNTS counts
#' @export
suoritaMuutos <- function (osuusTaulu, osuus, indeksi, COUNTS = matrix(0)) {
npops <- ifelse(is.na(dim(COUNTS)[3]), 1, dim(COUNTS)[3])
i1 <- indeksi %% npops
if (is.na(i1) | i1 == 0) i1 <- npops
i2 <- ceiling(indeksi / npops)
osuusTaulu[i1] <- osuusTaulu[i1] - osuus
osuusTaulu[i2] <- osuusTaulu[i2] + osuus
return (osuusTaulu)
}