Changelog

0.7.1

Bug fixes in pyvinecopulib

  • Upgrade nanobind to allow for single row matrices (fix #169 and #170)

New features in pyvinecopulib

  • Add pickle support for all classes (#168)

  • Add allow_rotation option to FitControlsBicop and FitControlsVinecop (#168)

Changes in vinecopulib version 0.7.1

These changes originate from the latest release of vinecopulib, the C++ library which powers pyvinecopulib.

NEW FEATURES

  • add allow_rotation option to FitControlsBicop and FitControlsVinecop to allow for the rotation of the pair copulas (#628).

  • add a FitControlsConfig struct to create flexible and yet safe constructors for FitControlsBicop and FitControlsVinecop (#629).

BUG FIXES

  • restrict parameter range for fitting Tawn copulas; fix handling of their shape/argument order (#620).

  • compute and save loglik/nobs in Vinecop::fit() (#623)

  • disable unwanted compiler output related to BOOST_CONCEPT checks (#624)

0.7.0

This version introduces a switch to nanobind as a backend (#160): i.e., the C++ bindings, now use nanobind instead of pybind11. It allows for considerable performance improvements (~8x speedup in our latest benchmarks) and smaller binaries.

Breaking API changes in pyvinecopulib

New features in pyvinecopulib

  • Expose more structure methods to python (#157)

  • Switch to nanobind as a backend (#160)

  • New IO methods for Bicop and Vinecop classes to use JSON-like strings (#160)

  • Extensive documentation revamp (#160)

  • Adding a benchmark example (#160)

  • Convertion of all examples to Jupyter notebooks (#160)

Bug fixes in pyvinecopulib

  • Install and test source distribution (#164)

Changes in vinecopulib

These changes originate from the underlying C++ library, vinecopulib, which powers pyvinecopulib.

New features

  • Use analytical derivatives in discrete pdf/hfuncs (#572)

  • Allow for alternative for "prim" vs "kruskal" in MST-based model selection (#577)

  • Improve the dependencies install script to use it in other projects (#576)

  • Add tawn copula (#579)

  • Improve doc (#580, #585, #607)

  • Allow for the discrete Rosenblatt transform (#581)

  • Add Vinecop::fit() (#584)

  • Improve Bicop::str() (#588) and Vinecop::str() (#589)

  • Properly handle discrete variables for the TLL family (#597)

  • Weighted pseudo-observations (#602)

  • Cross-platform random numbers and add seeds options to to_pseudo_obs (#603)

  • Improve performance by

    • aligning with the R defaults (e.g., BOOST_NO_AUTO_PTR, BOOST_ALLOW_DEPRECATED_HEADERS, BOOST_MATH_PROMOTE_DOUBLE_POLICY=false, std::string nonparametric_method = "constant" for the TLL instead of "quadratic", -O3 -march=native compiler flags) and add benchmarking example (#592, #611, #613),

    • using Eigen element-wise operations instead of boost whenever possible (#598, #612),

    • using binary search in the TLL for get_indices (#613).

Bug fixes

  • Improve stability in BB7 PDF (#573)

  • Revamped CI/CD pipeline, tests discoverable by CTest, boost version on windows ((66cf8b0))

  • Fix ASAN issues (#583)

  • Fix interface includes and other CMake issue (#586, #599, #601, #608), by @jschueller