There was a significant improvement in the speed of calculation. Details in the table below for 1000 random permutations of a given size:
permutation size | 30 | 50 | 100 | 200 | 300 |
---|---|---|---|---|---|
old computation time | 0.09 s | 0.10 s | 0.25 s | ~10 s | ~25 s |
new computation time | 0.07 s | 0.08 s | 0.10 s | 0.17 s | ~0.20 s |
plot.gips()
can get type = "n0"
, which
will plot the change of n0
along the “MH” optimization.
Handy for deciding of burn-in time;find_MAP(optimizer = "MH")
tracks the n0
along the optimization;summary.gips()
calculates Likelihood-Ratio test.logLik.gips()
will return an object of class
logLik
;BIC.gips()
AIC.gips()
logLik.gips()
as.character.gips()
gips()
has a new default
D_matrix = mean(diag(S)) * diag(p)
;summary.gips()
calculates AIC
,
BIC
, and n_parameters
(number of free
parameters in the covariance matrix);get_probabilities_from_gips()
will return a sorted
vector;compare_posteriories_of_perms()
and
compare_log_posteriories_of_perms()
have a new parameter
digits
;gips
object
can now be passed and interpreted as a permutation. Those are:
perm
in gips()
,
project_matrix()
, prepare_orthogonal_matrix()
,
get_structure_constants()
,
calculate_gamma_function()
;perm1
and perm2
in
compare_posteriories_of_perms()
,
compare_log_posteriories_of_perms()
;x
in gips_perm()
;plot.gips()
can get type = "MLE"
, which is
an alias for type = "heatmap"
;find_MAP(optimizer = "BF")
is 3 times faster;find_MAP(optimizer = "BF")
is default for
perm_size <= 9
.post_probabilities
underflows to 0. This is
appropriately validated now;NaN
s should not occur in find_MAP()
for
D_matrix <- diag(ncol(S)) * d
when
1000 < d < 1e300
;NaN
s do occur in find_MAP()
, they
will throw an error (used to show a warning);Inf
better handled in print.gips()
;print.*()
functions will print \n
in the
end;print.gips()
;delta
parameter of gips()
has to be bigger
than 1
. We used to restrict it to bigger than
2
;project_matrix()
shows a warning when the
non-positive-semi-definite matrix is passed as an S
argument;project_matrix()
preserves colnames()
and
rownames()
of a matrix;D_matrix
is checked for containing any NaN
or Inf
values;integer
. Now we use double
;compare_log_posteriories_of_perms()
and
compare_posteriories_of_perms()
show an error when given
two incomparable gips
objects (with different
parameters).