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;NaNs should not occur in find_MAP() for
D_matrix <- diag(ncol(S)) * d when
1000 < d < 1e300;NaNs 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).