eqsolver 0.4.0

A library that solves equations using numerical methods
Documentation
# Change Log
All notable changes to this project will be documented in this file, starting from version 0.2.0.

The format is based on [Keep a Changelog](http://keepachangelog.com/)
and this project adheres to [Semantic Versioning](http://semver.org/).

## [0.4.0] - 2025-12-19

### Added
- More workflow checks:
  - Correction of formatting via `cargo fmt -- --check`;
  - clippy via `cargo clippy`;
  - Documentation generation with `cargo doc`;
  - Build via `cargo build --verbose`;
  - Tests via `cargo test`; and
  - Examples running in debug and release mode.

### Changed
- Upgraded to `rand 0.9.2`, `nalgebra 0.34.1`, and `critrion 0.8.1`
- `SolverError` now derives `std::error::Error` using the [`thiserror`]https://docs.rs/thiserror/latest/thiserror/ crate.
- Added variant fields to some enum fields of `SolverError`:
  - `MaxIterReached(usize)`: Contains the number maximum iteration count plus 1;
     it is the number of iterations the solver was at when it output the error.
  - `IncorrectInput { details: &'static str }`: Contains an informative string about why the input was incorrect; and
  - `ExternalError(String)`: Contains a `String` representation (using `to_string()`) of the external error.
- The `cargo fmt` and `cargo clippy` were ran and the suggestions from the latter were fixed.
- Workflows now work in the `dev` branch in addition to `master`


## [0.3.0] - 2025-07-19

### Added
- [Newton-Cotes Integration]https://en.wikipedia.org/wiki/Newton%E2%80%93Cotes_formulas for
  integrating function with single-variable domains.
- [Monte Carlo Integration]https://en.wikipedia.org/wiki/Monte_Carlo_integration for integrating
  functions with single or multiple variable domains.
- [MISER Integration]https://doi.org/10.1063/1.4822899 for integrating
  functions with single or multiple variable domains.
- A new output type (`MeanVariance`) for algorithms whose output are random/stochastic.
- APL2.0 is now a license of `eqsolver` together with MIT.

### Changed
- Upgraded to `rand 0.9.1`, `rand_distr 0.5.1`, and `criterion 0.6.0`.
- Moved [`/tests`]./tests to be in the root of the project.
- Restructured where in the modules global definitions (constants, types, etc.) are.
- Updated dates in licenses


## [0.2.0] - 2024-07-14

### Added
- [Levenberg-Marquardt method]https://en.wikipedia.org/wiki/Levenberg%E2%80%93Marquardt_algorithm for non-linear least squared problems
- [Particle Swarm Optimisation]https://en.wikipedia.org/wiki/Particle_swarm_optimization and [Cross-Entropy method]https://en.wikipedia.org/wiki/Cross-entropy for finding global minimums of objective functions
- Benchmarks using the Rust library `criterion`
- A directory for examples

### Changed
- Upgraded to `nalgebra 0.33.0` and `num_traits 0.2.19`
- Better module/file structure for the source code

### Fixed
- Replaced unnecessary `.clone()`s with borrowing