Releases: vinecopulib/pyvinecopulib
pyvinecopulib v0.7.1
Bug fixes in pyvinecopulib
New features in pyvinecopulib
- Add pickle support for all classes (#168)
- Add
allow_rotationoption toFitControlsBicopandFitControlsVinecop(#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_rotationoption toFitControlsBicopandFitControlsVinecop
to allow for the rotation of the pair copulas (#628). - add a
FitControlsConfigstruct to create flexible and yet safe constructors
forFitControlsBicopandFitControlsVinecop(#629).
BUG FIXES
pyvinecopulib v0.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
- Removal of the overloaded constructors:
- For all classes, only one constructor is now available.
The reason is that the overloaded constructors were un-Pythonic, error-prone, and could not be properly documented with Sphinx.
They have been replaced by a single constructor for each class, along with factoryfrom_xzymethods. - For the
Bicopclass:Bicop.from_family(): Instantiate from a family, rotation, parameters, and variable types.Bicop.from_data(): Instantiate from data, as well as optional controls and variable types.Bicop.from_file(): Instantiate from a file.Bicop.from_json(): Instantiate from a JSON-like string.
- For the
Vinecopclass:Vinecop.from_dimension(): Instantiate an empty vine copula of a given dimension.Vinecop.from_data(): Instantiate from data, as well as an optionalFitControlsVinecop, anRVineStructureor matrix, and variable types.Vinecop.from_structure(): Instantiate from anRVineStructureor matrix, as well as optional pair-copulas and variable types.Vinecop.from_file(): Instantiate from a file.Vinecop.from_json(): Instantiate from a JSON-like string.
- For the
RVineStructureclass:RVineStructure.from_dimension(): Instantiate a default structure of a given dimension and truncation level.RVineStructure.from_order(): Instantiate from an order vector.RVineStructure.from_matrix(): Instantiate from a matrix.RVineStructure.from_file(): Instantiate from a file.RVineStructure.from_json(): Instantiate from a JSON-like string.
- For all classes, only one constructor is now available.
New features in pyvinecopulib
- Expose more structure methods to python (#157)
- Switch to nanobind as a backend (#160)
- New IO methods for
BicopandVinecopclasses 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) andVinecop::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
Rdefaults (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=nativecompiler flags) and add benchmarking example (#592, #611, #613), - using
Eigenelement-wise operations instead ofboostwhenever possible (#598, #612), - using binary search in the TLL for
get_indices(#613).
- aligning with the
Bug fixes
pyvinecopulib v0.6.8
pyvinecopulib 0.6.7
- Improved documentation (#144, #146)
- Plot functions for bivariate and vine copulas (#143)
- Discrete examples (#140)
- Fit method for vines
- Discrete Rosenblatt transform
- Tawn copulas
- Improvements to MST-based edge selection
- Better stability in BB7 pdf
- Analytical derivatives in discrete pdf/hfuncs
pyvinecopulib 0.6.6
v0.6.6 Release v0.6.6
pyvinecopulib 0.6.5
v0.6.5 Release v0.6.5
pyvinecopulib 0.6.4
- Modernize the package build (e.g., switch to pyproject.toml)
- Add latest versions of Python (3.11 and 3.12)
pyvinecopulib 0.6.3
Release following the updates of vinecopulib to 0.6.2, see
https://github.com/vinecopulib/vinecopulib/releases. The most
relevant changes are summarized below.
BUG FIXES
-
replace bitwise ops on boolean operands (#563)
-
handle
NaNs into_pseudo_obs()(#566) -
Replace calls to
sprintfin boost libraries (#565)
pyvinecopulib 0.6.2
Release following the updates of vinecopulib to 0.6.2, see
https://github.com/vinecopulib/vinecopulib/releases. The most
relevant changes are summarized below.
-
improved documentation (discrete and missing dat, Rosenblatt transforms)
-
better parallelization when there is a small number of edges (#555)
pyvinecopulib v0.6.0
Release following the update of vinecopulib to 0.6.0, see
https://github.com/vinecopulib/vinecopulib/releases.