advanced-algorithms 0.1.4

A comprehensive library of advanced algorithms for numerical analysis, linear algebra, cryptography, optimization, and graph theory
Documentation
# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]

## [0.1.4] - 2025-12-31

### Added
- Comprehensive performance benchmarks for all major algorithms
- Benchmark results added to README
- Criterion.rs benchmarking suite

### Changed
- Enhanced README with performance metrics and throughput data

## [0.1.3] - 2025-12-31

### Changed

- Updated README documentation

## [0.1.2] - 2025-12-31

### Changed

- Updated repository and homepage URLs
- Minor documentation improvements

## [0.1.1] - 2025-12-31

### Changed

- Excluded PUBLISHING.md and PROJECT_SUMMARY.md from published package
- All clippy warnings fixed for production-ready code

## [0.1.0] - 2025-12-31

### Added

#### Numerical Analysis & Linear Algebra

- **Fast Fourier Transform (FFT)**: Cooley-Tukey algorithm with parallel processing support

  - `fft()`: Standard FFT for real-valued input
  - `fft_complex()`: FFT for complex-valued input
  - `ifft()`: Inverse FFT
  - `fft_parallel()`: Multi-threaded FFT for large datasets
  - `power_spectrum()`: Compute power spectrum from FFT output
  - `magnitude_spectrum()`: Compute magnitude spectrum

- **QR Decomposition**: Householder transformations for numerically stable decomposition

  - `QRDecomposition::decompose()`: Compute Q and R matrices
  - `solve()`: Solve linear systems using QR
  - Support for overdetermined systems

- **Newton-Raphson Method**: Iterative root finding

  - `find_root()`: Basic root finding
  - `NewtonRaphsonSolver`: Advanced solver with configuration
  - `find_roots_in_interval()`: Find multiple roots
  - `numerical_gradient()`: Numerical gradient computation

- **Singular Value Decomposition (SVD)**: Matrix factorization
  - `SVD::decompose()`: Compute U, Σ, V^T
  - `rank()`: Compute matrix rank
  - `condition_number()`: Compute condition number

#### Number Theory & Cryptography

- **Miller-Rabin Primality Test**: Probabilistic and deterministic primality testing

  - `is_prime()`: Probabilistic test
  - `is_prime_deterministic()`: Deterministic for 64-bit integers
  - `generate_prime()`: Generate random primes

- **Extended Euclidean Algorithm**: GCD and modular arithmetic

  - `extended_gcd()`: Compute GCD and Bézout coefficients
  - `mod_inverse()`: Modular multiplicative inverse
  - `solve_linear_congruence()`: Solve ax ≡ b (mod m)
  - `gcd_multiple()`: GCD of multiple numbers
  - `lcm()`, `lcm_multiple()`: Least common multiple

- **Mersenne Twister (MT19937)**: High-quality PRNG
  - `MersenneTwister::new()`: Initialize with seed
  - `next_u32()`, `next_u64()`: Generate random integers
  - `next_f64()`: Generate random floats
  - `next_gaussian()`: Box-Muller normal distribution

#### Optimization & Statistics

- **Gradient Descent**: First-order optimization

  - Multiple learning rate strategies (constant, decreasing, exponential, adaptive)
  - Momentum support
  - `StochasticGD`: Mini-batch gradient descent

- **Levenberg-Marquardt Algorithm**: Non-linear least squares

  - Curve fitting
  - Parameter estimation
  - Automatic Jacobian computation

- **Monte Carlo Integration**: Numerical integration via sampling
  - Parallel processing for large sample sizes
  - Multi-dimensional integration
  - Importance sampling support

#### Graph Algorithms

- **Dijkstra's Algorithm**: Single-source shortest paths

  - `shortest_path()`: Compute all shortest paths from source
  - `shortest_path_to_target()`: Early termination for specific target
  - Path reconstruction

- **A\* Search Algorithm**: Heuristic pathfinding

  - `find_path()`: A\* with custom heuristic
  - `find_path_bounded()`: A\* with cost limit
  - Grid utilities with Manhattan and Euclidean distance

- **Bellman-Ford Algorithm**: Shortest paths with negative weights

  - `shortest_path()`: Single-source shortest paths
  - `has_negative_cycle()`: Cycle detection
  - `find_negative_cycle()`: Locate negative cycles

- **Floyd-Warshall Algorithm**: All-pairs shortest paths
  - `all_pairs_shortest_path()`: Compute all distances
  - `transitive_closure()`: Graph reachability
  - `diameter()`: Find graph diameter
  - `find_center()`: Find graph center

#### Infrastructure

- Comprehensive error handling with `AlgorithmError` enum
- Extensive test coverage for all algorithms
- Detailed documentation with examples
- Multi-threading support via Rayon
- Type-safe APIs leveraging Rust's type system

### Documentation

- Complete README.md with usage examples
- PUBLISHING.md guide for crates.io publication
- Inline documentation for all public APIs
- Examples in doc comments

### Performance

- Optimized release profile configuration
- Parallel implementations for computationally intensive algorithms
- Numerically stable implementations

[Unreleased]: https://github.com/yourusername/advanced-algorithms/compare/v0.1.0...HEAD
[0.1.0]: https://github.com/yourusername/advanced-algorithms/releases/tag/v0.1.0