Changes in version 1.2.3 (2025-03-18) Performance gain 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 | Update to functions - 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. Changes in version 1.2.2 Bugfix: - logLik.gips() will return an object of class logLik; - Better Vignettes titles. Changes in version 1.2.1 (2023-08-12) Bugfix: - One test on alternative BLAS/LAPACK has an alternative check for a singular matrix. Found by CRAN's ATLAS test. Changes in version 1.2.0 (2023-08-07) New functions - BIC.gips() - AIC.gips() - logLik.gips() - as.character.gips() Update to functions - 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; - Everywhere a permutation was expected, the 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. Bugfixes: - Sometimes, 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; - When 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; - Slightly different punctuation in print.gips(); - Tremendous vignettes and documentation improvements; - Proper testing of examples; - 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; - Absurdly long structure constants vectors may overflow an 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). Changes in version 1.0.0 (2022-10-13) - This is the first release of gips.