Recent Releases of scikit-rmt
scikit-rmt - 1.1.0 Release
The new release v1.1.0 includes (#31)
- New simulations showcasing how to use scikit-rmt and RMT for MRI image denoising.
- Support for Python 3.8 up to Python 3.12.
- Improved documentation.
- Removed some deprecation warnings.
- Python
Published by AlejandroSantorum 6 months ago
scikit-rmt - 1.0.0 Release
Announcing the first **stable release* of scikit-rmt (version 1.0.0).
- Python
Published by AlejandroSantorum over 2 years ago
scikit-rmt - 0.10.4 Release
0.10.4 Release
This release includes the updates files after passing pylint.
- Python
Published by AlejandroSantorum over 2 years ago
scikit-rmt - 0.10.2 Release
Version 0.10.2 release
In this release, the module skrmt.covariance has been upgraded with type hints.
- Python
Published by AlejandroSantorum over 2 years ago
scikit-rmt - 0.10.1 Release
Version 0.10.1 release
In this new version scikit-rmt has been enhanced with type hints.
- Python
Published by AlejandroSantorum over 2 years ago
scikit-rmt - 0.10.0 Release
Version 0.10.0 release
In this release the following changes are included:
- Deletion of
set_sizemethod from ensemble classes. The user can still access the size parameters using class properties. - Method
normalize_eigvalsinTracyWidomDistributionis now private. - Add script at
simulations.jss_sims.pyto generate some cool simulations. - Method
rvsreceives size as an int or tuple of ints. - Fixed some typos in doc-strings.
- Python
Published by AlejandroSantorum over 2 years ago
scikit-rmt - 0.9.0 Release
New features introduced with this PR:
- Changed property
use_tridiagonalfortridiagonal_forminGaussianEnsembleandWishartEnsembleclasses. - Added new method
resamplewith the option of specifying theboolargumenttridiagonal_form(by defaultNone), which allows changing the pre-defined form of the matrix - Update
ylabelof thespectral_lawplots to be always"density", and not"probability density". - Update
ylabelof the ensemble plots to be"density"ifdensity=True, and"frequency"ifdensity=False. - Added the method
_plot_eigval_histtoManovaEnsembleclass so the default interval con be correctly specified. - Added
test_standard_vs_tridiag_histmethod inutilsto 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.
- Python
Published by AlejandroSantorum over 2 years ago
scikit-rmt - 0.8.1 Release
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".
- Python
Published by AlejandroSantorum over 2 years ago
scikit-rmt - 0.8.0 release
Announcing release of version 0.8.0
In this release the following changes are included:
Implementation of the method
rvsof the classes withinskrmt.ensemble.spectral_lawto 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:rvsofWignerSemicircleLawis implemented using the fact that Wigner's Semicircle law coincides with a scaled beta distribution.rvsofMarchenkoPasturDistributionis implemented using the algorithm Inverve Transform Sampling to draw independent samples given a PDF.rvsofTracyWidomDistributionis implemented using scipy's rv_continous class, that automatically implementsrvsif you provide the expression of thepdfor of thecdf.rvsofManovaSpectrumDistributionis implemented using the algorithm Inverve Transform Sampling to draw independent samples given a PDF.
Ensemble methods do not normalize eigenvalues by default. To normalize them, the argument
normalize=Truehas 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_stateof typeintto all methods and functions that require random-number generation. This is useful to reproduce any experiment.The input argument
fig_pathis now namedsavefig_pathin all methods and functions to matchmatplotlibnomenclature.New sub-module within
skrmt.ensemblenamedutilscontaining 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
CircularEnsembleare now squared to highlight the actual axis proportions.Renamed
_base_ensembletobase_ensemble.Moved general-purpose functions to a separate file called
misc.py.
- Python
Published by AlejandroSantorum over 2 years ago
scikit-rmt - 0.7.1 Release
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.
- Python
Published by AlejandroSantorum over 2 years ago
scikit-rmt - 0.7.0 Release
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_histandplot_eigval_histdo not receive the argumentnorm_const. Instead, they receive the input argumentnormalize(default toTrue) to select whether to normalize the eigenvalues or not. - Added new method
set_eigval_norm_constin 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.
- Python
Published by AlejandroSantorum over 2 years ago
scikit-rmt - 0.6.1 release
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.
- Python
Published by AlejandroSantorum over 2 years ago
scikit-rmt - 0.6.0 release
Announcing 0.6.0 release.
This new version contains the following improvements or features:
- New skrmt.ensemble.spectral_law sub-module (former skrmt.ensemble.law) that provides four classes to compute, analyze and plot the four main spectral laws, including the sampling and illustration of the probability density function (PDF) and cumulative distribution function (CDF) of the main random matrix ensembles:
- Wigner Semicircle law: WignerSemicircleDistribution.
- Tracy-Widom law: TracyWidomDistribution.
- Marchenko-Pastur law: MarchenkoPasturDistribution.
- Manova Spectrum distribution: ManovaSpectrumDistribution.
- Deprecation of skrmt.ensemble.plot_law sub-module. The former functionality has been moved and upgraded in the new skrmt.ensemble.spectral_law submodule.
- Added computation of the empirical spectral PDF to the classes of the skrmt.ensemble.spectral_law submodule.
- Renamed class method eigval_pdf to joint_eigval_pdf to clarify that this method is computing the joint eigenvalue PDF for the corresponding ensemble.
- Pinned dependencies in requirements.txt file.
- Updated unit tests (99% coverage).
- Updated Sphinx documentation.
- Updated examples and tutorials.
- Updated README.
- Python
Published by AlejandroSantorum over 2 years ago
scikit-rmt - 0.5.0 Release
Announcing 0.5.0 release.
This new version incorporates new functionality for spectrum analysis and simulation, and refactors some existing code. In particular:
Added the sub-module
skrmt.ensemble.lawthat provides four classes to compute, analyze and plot the four main spectral laws, including the sampling and illustration of the probability density function (PDF) and cumulative distribution function (CDF) of the main random matrix ensembles:WignerSemicircleDistribution.MarchenkoPasturDistribution.TracyWidomDistribution.ManovaSpectrumDistribution.
Refactored the code of the submodule
skrmt.ensemble.plot_lawto be based on the usage of the four previous classes. Also, this sub-module is now only focused on plotting and representation of the different simulations of scikit-rmt.Added unit tests for all the new and refactored classes, methods and functions.
New tutorials describing how to sample, compute, analyze and graphically represent the distribution of the spectral laws.
Improved
readmewith the new features.
- Python
Published by AlejandroSantorum almost 3 years ago
scikit-rmt - 0.4.2 Release
Announcing 0.4.2 release.
This new version fixes versioning when packaging the library. Therefore, the release improves the package and includes previous new features:
- Plotting of analytical probability density functions for the following spectral Laws by setting limit_pdf=True argument:
- Wigner Semicircle Law.
- Marchenko-Pastur Law.
- Tracy-Widom Law.
- Simulation of Manova Ensemble spectrum and representation of its analytical probability density function. Check out skrmt.ensemble.plot_law.manova_spectrum_distr function.
- New tests covering new functionality.
- Tutorials updated to describe new analytical PDFs representations.
- Python
Published by AlejandroSantorum about 3 years ago
scikit-rmt - 0.4.1 Release
I am excited to announce the 0.4.1 release.
This new version implements several enhancements:
- Plotting of analytical probability density functions for the following spectral Laws by setting limit_pdf=True argument:
- Wigner Semicircle Law.
- Marchenko-Pastur Law.
- Tracy-Widom Law.
- Simulation of Manova Ensemble spectrum and representation of its analytical probability density function. Check out skrmt.ensemble.plot_law.manova_spectrum_distr function.
- New tests covering new functionality.
- Tutorials updated to describe new analytical PDFs representations.
- Fixed minor bugs with pip install.
- Python
Published by AlejandroSantorum about 3 years ago
scikit-rmt - 0.3.1 Release
I am excited to announce the 0.3.1 release.
Updates: - Fixed bugs related to the hermiticity of some ensembles. - Refined the documentation.
Feel free to install the library by executing:
bash
pip install scikit-rmt
- Python
Published by AlejandroSantorum over 3 years ago
scikit-rmt - 0.2 Release
I am happy to announce the 0.2 release. A bug related with hermiticity of GUE matrices has been fixed.
Feel free to install it as usual:
bash
pip install scikit-rmt
- Python
Published by AlejandroSantorum over 3 years ago
scikit-rmt - scikit-rmt 0.1.4
I am happy to announce the 0.1.4 release. The project description has been improved.
Feel free to install it as usual:
bash
pip install scikit-rmt
- Python
Published by AlejandroSantorum almost 5 years ago