diff --git a/Cargo.toml b/Cargo.toml index 8473744e..79d52997 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "peroxide" -version = "0.37.9" +version = "0.38.0" authors = ["axect "] edition = "2018" description = "Rust comprehensive scientific computation library contains linear algebra, numerical analysis, statistics and machine learning tools with farmiliar syntax" @@ -24,7 +24,7 @@ travis-ci = { repository = "axect/peroxide" } maintenance = { status = "actively-developed" } [dev-dependencies] -float-cmp = "0.9" +float-cmp = "0.10" criterion = { version = "0.5.1", features = ["html_reports"] } [dependencies] @@ -60,8 +60,3 @@ nc = ["netcdf"] parquet = ["arrow2"] complex = ["num-complex", "matrixmultiply/cgemm"] parallel = ["rayon"] - -[[bench]] -path = "benches/parallel_rayon/matrix_benchmark.rs" -name = "matrix_benchmark" -harness = false diff --git a/README.md b/README.md index b70e2005..abbc8cc1 100644 --- a/README.md +++ b/README.md @@ -40,6 +40,8 @@ Peroxide provides various features. - `default` - Pure Rust (No dependencies of architecture - Perfect cross compilation) - `O3` - BLAS & LAPACK (Perfect performance but little bit hard to set-up - Strongly recommend to look [Peroxide with BLAS](https://github.com/Axect/Peroxide_BLAS)) - `plot` - With matplotlib of python, we can draw any plots. +- `complex` - With complex numbers (vector, matrix and integral) +- `parallel` - With some parallel functions - `nc` - To handle netcdf file format with DataFrame - `csv` - To handle csv file format with Matrix or DataFrame - `parquet` - To handle parquet file format with DataFrame @@ -311,7 +313,7 @@ How's that? Let me know if there's anything else you'd like me to improve! ## Latest README version -Corresponding to `0.37.7` +Corresponding to `0.38.0` ## Pre-requisite @@ -321,55 +323,38 @@ Corresponding to `0.37.7` ## Install -- Run below commands in your project directory - -1. Default - - ```bash - cargo add peroxide - ``` - -2. OpenBLAS - - ```bash - cargo add peroxide --features O3 - ``` - -3. Plot - - ```bash - cargo add peroxide --features plot - ``` - -4. NetCDF dependency for DataFrame - - ```bash - cargo add peroxide --features nc - ``` - -5. CSV dependency for DataFrame - - ```bash - cargo add peroxide --features csv - ``` +### Basic Installation +```bash +cargo add peroxide +``` -6. Parquet dependency for DataFrame +### Featured Installation +```bash +cargo add peroxide --features "" +``` - ```bash - cargo add peroxide --features parquet - ``` +### Available Features -7. Serialize or Deserialize with Matrix or polynomial +* `O3`: Adds OpenBLAS support +* `plot`: Enables plotting functionality +* `complex`: Supports complex number operations +* `parallel`: Enables parallel processing capabilities +* `nc`: Adds NetCDF support for DataFrame +* `csv`: Adds CSV support for DataFrame +* `parquet`: Adds Parquet support for DataFrame +* `serde`: Enables serialization/deserialization for Matrix and polynomial - ```bash - cargo add peroxide --features serde - ``` +### Install Examples -8. All features +Single feature installation: +```bash +cargo add peroxide --features "plot" +``` - ```bash - cargo add peroxide --features "O3 plot nc csv parquet serde" - ``` +Multiple features installation: +```bash +cargo add peroxide --features "O3 plot nc csv parquet serde" +``` ## Useful tips for features @@ -388,6 +373,11 @@ Corresponding to `0.37.7` - __src__ - [lib.rs](src/lib.rs) : `mod` and `re-export` + - __complex__: For complex vector, matrix & integrals. + - [mod.rs](src/complex/mod.rs) + - [integrate.rs](src/complex/integrate.rs) : Complex integral + - [matrix.rs](src/complex/matrix.rs) : Complex matrix + - [vector.rs](src/complex/vector.rs) : Complex vector - __fuga__ : Fuga for controlling numerical algorithms. - [mod.rs](src/fuga/mod.rs) - __macros__ : Macro files @@ -434,6 +424,7 @@ Corresponding to `0.37.7` - [fp.rs](src/traits/fp.rs) : Functional programming toolbox - [general.rs](src/traits/general.rs) : General algorithms - [math.rs](src/traits/math.rs) : Mathematics + - [matrix.rs](src/traits/matrix.rs) : Matrix traits - [mutable.rs](src/traits/mutable.rs) : Mutable toolbox - [num.rs](src/traits/num.rs) : Number, Real and more operations - [pointer.rs](src/traits/pointer.rs) : Matrix pointer and Vector pointer for convenience diff --git a/RELEASES.md b/RELEASES.md index 2d8d50ec..d73626db 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -1,7 +1,25 @@ -# Release 0.37.10 (in progress) +# Release 0.38.0 + +## New features - Complex & Parallel + +- `complex` feature + - Implement complex vector, matrix and integral [#35](https://github.com/Axect/Peroxide/issues/35) (Thanks to [@GComitini](https://github.com/GComitini) and [@soumyasen1809](https://github.com/soumyasen1809)) + +- `parallel` feature + - Implement some parallel functions [#72](https://github.com/Axect/Peroxide/issues/72) (Thanks to [@soumyasen1809](https://github.com/soumyasen1809)) + +## Generic Matrix - MatrixTrait + +- Implement `MatrixTrait` for Matrix (Scalar = f64) +- Implement `MatrixTrait` for ComplexMatrix (Scalar = C64) +- `LinearAlgebra` and `solve` depend on `MatrixTrait` + +## Other changes - Update `puruspe` dependency to `0.3.0`, remove `lambert_w` dependency [#79](https://github.com/Axect/Peroxide/pull/79) (Thanks to [@JSorngard](https://github.com/JSorngard)) +- Add `hermite_polynomial` and `bessel_polynomial` [#80](https://github.com/Axect/Peroxide/pull/80) (Thanks to [@jgrage](https://github.com/jgrage)) + # Release 0.37.9 (2024-07-31) - Fix inconsistent lambert w function name [#65](https://github.com/Axect/Peroxide/issues/65) (Thanks to [@JSorngard](https://github.com/JSorngard))