Newer
Older
# OpenRNG Changelog
All notable changes to this project will be documented in this file.
## Unreleased
### Added
### Performance
### Changed
### Deprecated
### Removed
### Fixed
### Security
## 25.07
### Added
- New function returning the library version
## 25.04
### Added
#### Generators:
- ARS5, MT2203.
Both generators have a reference implementation and Neon-optimized versions.
#### Distributions:
- GaussianMV, both reference implementation and Neon-optimized version.
### Performance
- The performance of the SFMT19937 generator has been improved.
### Changed
- [SOVERSION](https://cmake.org/cmake/help/latest/prop_tgt/VERSION.html) has
been changed as a consequence of introducing the MT2203 generator.
### Fixed
#### Generators:
- Double precision PHILOX4X32X10.
#### Distributions
- Discrete uniform distribution over an interval `[a,b)`, with both `a` and
`b` integer values and `a< 0`.
### Security
- Added an explicit note to explain that our generators should not be used for
cryptographic purposes as they are not cryptographically secure.
## 24.10
### Added
- Full support for the SOBOL interface, which now includes custom polynomials
and direction numbers.
- Shared object versioning. The CMake properties,
[VERSION](https://cmake.org/cmake/help/latest/prop_tgt/VERSION.html) and
[SOVERSION](https://cmake.org/cmake/help/latest/prop_tgt/VERSION.html) are
now set. VERSION will be updated on every release and SOVERSION will be
updated whenever there is a breaking ABI change.
- Support for a local install of catch2 when building the unit tests. If your
build is configured with -DOPENRNG_LOCAL_CATCH=On, CMake will look for
catch2 locally rather than pulling and building a version from github.
### Performance
- The performance of MT19937 skip-ahead has had a considerable improvement,
particularly when skipping ahead a number of values that is a power of 2.
## 24.04
This is the initial release of OpenRNG, all functionality is new.
### Added
#### Generators:
- Reference versions: MCG31, R250, MRG32K3A, MCG59, SOBOL, MT19937, SFMT19937,
PHILOX4X32X10.
- Neon optimizations: MCG31, MRG32K3A, MCG59, MT19937, SFMT19937,
PHILOX4X32X10.
- NONDETERM for AArch64 and x86-64.
#### Distributions:
- References versions: Cauchy, Exponential, Gaussian, Gumbel, Laplace,
Lognormal, Rayleigh, Uniform, Weibull, Bernoulli, Binomial, Geometric,
Poisson, Uniform, UniformBits, UniformBits32, UniformBits64.
- Neon optimizations: Binomial, Exponential, Gaussian, Geometric, Laplace,
Poisson, Rayleigh, Weibull.
- SVE optimizations: Exponential, Gaussian, Geometric, Rayleigh.
#### Tooling:
- Benchmark framework.
- Unit test framework.
- Scalar maths functions for log, cospi and sinpi.
- Neon and SVE optimizations for log and erfinv.