Changelog

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