Scikit-rmt

Latest version: v1.0.0

Safety actively analyzes 641872 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 2 of 4

0.9.0

New features introduced with this PR:
- Changed property `use_tridiagonal` for `tridiagonal_form` in `GaussianEnsemble` and `WishartEnsemble` classes.
- Added new method `resample` with the option of specifying the `bool` argument `tridiagonal_form` (by default `None`), which allows changing the pre-defined form of the matrix
- Update `ylabel` of the `spectral_law` plots to be always `"density"`, and not `"probability density"`.
- Update `ylabel` of the ensemble plots to be `"density"` if `density=True`, and `"frequency"` if `density=False`.
- Added the method `_plot_eigval_hist` to `ManovaEnsemble` class so the default interval con be correctly specified.
- Added `test_standard_vs_tridiag_hist` method in `utils` to compare the histograms of random matrices in their tridiagonal form vs their standard form.
- Renamed method `set_eigval_norm_const`: now it is a private method.
- Updated examples and tutorials.
- Updated unit tests accordingly.

0.8.1

In the **0.8.1 release** we announce:
- **Refactored routines that plot spectral histograms** of the considered **ensembles**: now there is a method to compute the histogram and basic plot and then other one builds the full plot, with titles and labels.
- Added a function in `skrmt.ensemble.utils` called `plot_spectral_hist_and_law` that illustrates the **spectral histogram of a given random matrix ensemble alongside the PDF of the corresponding spectral law**. This is to analyze the fluctuations of the ensemble histogram vs. the actual PDF.
- New tutorial named *"Eigenvalue independence"*.

0.8.0

In this release the following changes are included:

- Implementation of the method `rvs` of the classes within `skrmt.ensemble.spectral_law` to sample **independent eigenvalues of the spectral distributions without using any random matrix**. This is achieved in several ways depending on our knowledge about each particular distribution:
- `rvs` of `WignerSemicircleLaw` is implemented using the fact that Wigner's Semicircle law [coincides with a scaled beta distribution](https://en.wikipedia.org/wiki/Wigner_semicircle_distribution).
- `rvs` of `MarchenkoPasturDistribution`is implemented using the algorithm [Inverve Transform Sampling](https://en.wikipedia.org/wiki/Inverse_transform_sampling) to draw independent samples given a PDF.
- `rvs` of `TracyWidomDistribution` is implemented using [scipy's rv_continous class](https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.rv_continuous.html), that automatically implements `rvs` if you provide the expression of the `pdf` or of the `cdf`.
- `rvs` of `ManovaSpectrumDistribution` is implemented using the algorithm [Inverve Transform Sampling](https://en.wikipedia.org/wiki/Inverse_transform_sampling) to draw independent samples given a PDF.

- Ensemble methods **do not normalize eigenvalues by default**. To normalize them, the argument `normalize=True` has to be set.
- Ensemble spectrum histograms **are not normalized to represent the PDF by default**, so each bin is representing the absolute count of the sampled eigenvalues. To show the actual eigenvalue frequency (density), set the input argument `density=True`.
- All plotting methods and functions now **computes correctly and automatically** the **representation interval** depending on the **ensemble/law parameters**.
- Added input arg `random_state` of type `int` to all methods and functions that require random-number generation. This is useful to **reproduce any experiment**.
- The input argument `fig_path` is now named `savefig_path` in all methods and functions to match `matplotlib` nomenclature.
- New sub-module within `skrmt.ensemble` named `utils` containing **useful functions**:
- `plot_max_eigvals_tracy_widom`: plots the histogram of the **maximum eigenvalues** of a random ensemble with the
Tracy-Widom PDF.
- `rand_mtx_max_eigvals`: computes **several times the maximum eigenvalue** of different random matrix samples.

- Complex plots of `CircularEnsemble` are now **squared to highlight the actual axis proportions**.
- Renamed `_base_ensemble` to `base_ensemble`.
- Moved **general-purpose functions** to a separate file called `misc.py`.

0.7.1

In this release we incorporate the following hotfix:

**Fixed non-normalized eigenvalues histograms**. Now the histograms are illustrated correctly when the eigenvalues are **not normalized**. The **plot interval is updated depending on additional parameters, such as matrix size `n`**.
In addition, there was a bug were the distribution of the tridiagonal random matrices was not the same as its non-tridiagonalized form when the eigenvalues were not normalized. This has been fixed.

0.7.0

Announcing release version 0.7.0.

New features and modifications:
- Added **default eigenvalue normalization constant** (`eigval_norm_const`), which controls the support of the eigenvalues independently of the sample size.
- Now, the methods `eigval_hist` and `plot_eigval_hist` do **not** receive the argument `norm_const`. Instead, they receive the input argument `normalize` (default to `True`) to select **whether to normalize the eigenvalues or not**.
- Added new method `set_eigval_norm_const` in case the user wants **to change the default eigenvalue normalization constant**.
- Improved and **updated documentation** and tutorials.
- **Updated requirements to avoid scipy memory leak vulnerability**. Potentially, now the library is not tested for python 3.7.
- **Pinned numpy to use version <= 1.24.3** since version **1.24.4 is causing problems**.

0.6.1

Not secure
**New features in this release**:
- **Storing computed eigenvalues** to avoid re-calculating them later. They are just computed again if the matrix is re-sampled.
- The method `rvs` of the class `WignerSemicircleDistribution` now uses the **relationship between the Beta distribution and the Wigner's Semicircle** law to **generate random samples** of it.
- The method `plot_empirical_pdf` of the class `WignerSemicircleDistribution` now **uses the class method** `rvs` to **generate the sampled eigenvalues**, instead of sampling eigenvalues from an instance of the `GaussianEnsemble`.
- Updated doc-strings of the updated classes and methods.

Page 2 of 4

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.