Skip to contents

gips 1.2.3.9000

Performance gain

project_matrix() is now implemented in C++ internally. Additionally, several internal calculations used by log_posteriori_of_gips() and find_MAP(optimizer = "BF") were optimized.

For Brute Force optimization:

permutation size 6 7 8 9
v1.2.3 1.26 s 4.06 s 30.19 s 4.35 min
v1.2.3.9000 0.64 s 2.66 s 16.31 s 2.17 min

For log_posteriori_of_gips() evaluated on 1000 random permutations of a given size:

permutation size 30 50 100 200 300
v1.2.3 2.31 s 2.31 s 11.70 s 46.49 s 110.17 s
v1.2.3.9000 0.84 s 1.26 s 3.24 s 15.73 s 39.47 s

The above tables based on the code from Pull Request #99.

Update to functions

Bugfix:

  • Documentation improvements: grammar and style corrections in roxygen comments, vignettes, and error messages.

gips 1.2.3

CRAN release: 2025-03-18

Performance gain

There was a significant speed improvement in get_structure_constants(), which is used internally by posterior calculations. For 1000 random permutations of a given size:

permutation size 30 50 100 200 300
v1.2.2 0.09 s 0.10 s 0.25 s ~10 s ~25 s
v1.2.3 0.07 s 0.08 s 0.10 s 0.17 s ~0.20 s

This change consequently improved log_posteriori_of_gips(). For 1000 random permutations of a given size:

permutation size 30 50 100 200 300
v1.2.2 1.50 s 2.49 s 7.08 s 55.25 s 169.77 s
v1.2.3 1.29 s 2.24 s 6.84 s 31.73 s 85.10 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.

gips 1.2.2

Bugfix:

  • logLik.gips() will return an object of class logLik;
  • Better Vignettes titles.

gips 1.2.1

CRAN release: 2023-08-12

Bugfix:

  • One test on alternative BLAS/LAPACK has an alternative check for a singular matrix. Found by CRAN’s ATLAS test.

gips 1.2.0

CRAN release: 2023-08-07

Update to functions

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).

gips 1.0.0

CRAN release: 2022-10-13

  • This is the first release of gips.