Skip to content

Releases: diego-urgell/BinSeg

Google Summer of Code Release

22 Aug 05:32
a14827f
Compare
Choose a tag to compare

This release marks the end of Google Summer of Code 2021. During this summer, the whole package was coded from scratch by me, @diego-urgell . At this point, BinSeg is fully usable, and any user can install it via GitHub (see the README for more details) and perform changepoint analysis with it. There are many more features that will be added in the future, tough. The package will be soon released in CRAN. Stay tuned! 🚀

Currently the Binary Segmentation is implemented, along with the following types of change:

  • Normal distribution with change in mean.
  • Normal distribution with change in variance.
  • Normal distribution with change in mean and variance.
  • Poisson distribution with change in rate.
  • Exponential distribution with change in rate.
  • Negative Binomial distribution with change in success probability (has to be validated with an external package yet).

I want to thank and acknowledge my GSOC mentors Rebecca Killick (@rkillick) and Toby Hocking (@tdhock) for the guidance and the valuable suggestions they provided during the summer.

I am also thankful to the GSOC administrators, who made this experience and this package possible.

C++17 code structure

13 Aug 04:32
Compare
Choose a tag to compare
C++17 code structure Pre-release
Pre-release

The original C++ code structure used some features from the C++17 standard, mainly the inline keyword for the initialization of static variables. The package was developed on MacOS, using the clang compiler, and this worked pretty well by setting STD_CXX = CXX17 option on the src/Makevars file.

However, when the package was checked on other platforms, it turned out that it can't be compiled using gcc, because something breaks when loading the C++ compiled shared library from R. This is likely an internal R problem and will be solved in a few months.

Meanwhile, all the C++17 features were removed, and the static variables were initialized at the head of the RcppInterface.cpp file. This is not ideal, but is a stop gap measure that works for now.

This tag preserves the C++ code structure before the removal of the inline keyword, so that it can be easily reimplemented later on when compilation works for the other OS.

Note that this is not a release of the package