# Changelog
All notable changes to this project will be documented in this file.
## [0.4.8] - 2025-07-05
### πΌ Other
- Update version to 0.4.8
### π Documentation
- Update macro usage examples for clarity
- Update README files for improved formatting and clarity
### βοΈ Miscellaneous Tasks
- Update CHANGELOG for version 0.4.7
## [0.4.7] - 2025-07-05
### π Features
- Add Langevin equation macro to simplify the generation of stochastic processes
- Add generalized and subordinated Langevin equation macros
- Add loglog plotting functionality and enhance set_config
### πΌ Other
- Bump version 0.4.6
- Add the example of macro `langevin`
- Update version to 0.4.7
### π Refactor
- Simplify error messages in parameter validation across various simulation functions
### βοΈ Miscellaneous Tasks
- Update dependencies and add optional feature
## [0.4.6] - 2025-06-15
### π Bug Fixes
- Adjust the duration calculation logic to accommodate the maximum duration
### πΌ Other
- Bump version 0.4.6
### π Refactor
- Optimized the duration calculation logic in the `FirstPassageTime` structure, simplified the process of finding the index using local functions, and improved the readability and maintainability of the code.
- Extracted and optimized the logic for calculating the average and occupied time, simplified the code structure, and improved readability and maintainability.
### βοΈ Miscellaneous Tasks
- Bump version 0.4.5
## [0.4.5] - 2025-06-11
### π Features
- Add input parameter validation to enhance the robustness of the simulation function
- Enhanced input parameter validation to improve the robustness of simulation functions
- Enhanced input parameter validation for inverse process simulation function
- Optimize the implementation of continuous/point/jump processes and trajectories, simplify type constraints
- Enhanced input parameter validation for random walk simulation functions
- Enhanced Input Validation for Stochastic Process Simulation Functions
### πΌ Other
- Update version to 0.4.5
### βοΈ Miscellaneous Tasks
- Update version to 0.4.4
## [0.4.4] - 2025-06-04
### π Refactor
- Optimize sample aggregation in simulation functions
### βοΈ Miscellaneous Tasks
- Update CHANGELOG for version 0.4.3
- Update version to 0.4.4 and add keywords
## [0.4.3] - 2025-05-30
### π Features
- Add is_increasing function and input validation for interpolation functions
### π Bug Fixes
- Improve linspace and interpolation functions
- *(functionas.rs)* Enhance linspace function with parallel processing and add diff function
- Fix simulation functions with linspace and error handling
### πΌ Other
- Add Levy Walk simulation example
### π Refactor
- Rename FBM struct to FBm for consistency
### π Documentation
- *(CIR.rs)* Improve simulation logic with linspace and diff functions
- *(mod.rs)* Add documentation for Brownian yet non-Gaussian process
- *(mod.rs)* Correct spelling of Fractional Brownian motion
- *(README)* Update Chinese and English documentation for Brownian yet non-Gaussian process
### βοΈ Miscellaneous Tasks
- Update CHANGELOG for version 0.4.2
- Update version to 0.4.3
## [0.4.2] - 2025-05-28
### π Features
- *(bng)* Implement Brownian yet non-Gaussian process simulation
### π Bug Fixes
- *(bm)* Update diffusion_coefficient default value to 0.5
### π Refactor
- Enhance path generation in Langevin and GeneralizedLangevin simulations
### π Documentation
- Update benchmark references in README files
- Update
### βοΈ Miscellaneous Tasks
- Update pre-commit configuration and add new hooks
- Update version to 0.4.2 in Cargo.toml
## [0.4.1] - 2025-05-22
### π Features
- Implement arithmetic operations for Normal distribution
- Enhance Exponential distribution for type flexibility
- Enhance Gamma distribution for type flexibility
- Enhance Normal distribution for type flexibility
- Add LegendPosition enum and integrate with PlotConfig
### π Bug Fixes
- Validate standard deviation in rands function
- Specify numeric type for standard normal random samples
- *(example)* Specify numeric type for standard normal random samples in CIR.rs
### π Refactor
- Clean up documentation in simulation module
- Enhance type stability and remove Sized bounds in process traits
- Simplify trait implementations for type stability
- Remove redundant documentation for PointProcess trait implementations
- Update README files for clarity and consistency
- Simplify StandardStable struct by removing Copy trait
### π Documentation
- Correct capitalization in documentation for Fractional Brownian motion
- Remove redundant documentation for ContinuousProcess trait implementations
- Remove redundant documentation comments across multiple files
- Specify numeric type for standard normal random samples
### βοΈ Miscellaneous Tasks
- Update CHANGELOG for version 0.4.0
- Add rustfmt configuration for code formatting
- Remove rustfmt configuration file
- Update version to 0.4.1 in Cargo.toml
## [0.4.0] - 2025-05-19
### π Features
- Implement LΓ©vy walk simulation
- Add linear interpolation and linspace functions
- Implement TAMSD simulation for point processes
### π Refactor
- Rename `traits.rs` to `basic.rs`
- Refactor simulation traits
- Rename getter methods for consistency
- Refact functional module for stochastic processes
- Update random sampling methods to use u64
- Update process traits to improve type stability
- Enhance type stability in Visualize trait implementations
- Simplify parameter types in simulation methods
- Update random sampling methods to use usize
- Rename methods for consistency and enhance type stability
- Update random sampling methods to improve type stability
- *(example)* Update simulation method signatures for type stability
- Rename Fbm to FBM for consistency
- Update documentation and method signatures for type stability
### π Documentation
- Update documentation for LΓ©vy walk in mod.rs
- Update process documentation with module references
### βοΈ Miscellaneous Tasks
- Update CHANGELOG for version 0.3.13
- Add `.idea` to .gitignore
- Bump version to 0.4.0 in Cargo.toml
## [0.3.13] - 2025-05-15
### π Features
- Rename module `jump` to `point`, change `LevyWalk` into `point`
### πΌ Other
- Update CTRW module import from `jump` to `point`
### π Refactor
- Update TAMSD struct to use generic process type
- Remove optional CSV feature and clean up error handling
- Update PlotConfig to include stairs option and simplify trajectory handling
### βοΈ Miscellaneous Tasks
- Bump version to 0.3.13 in Cargo.toml
## [0.3.12] - 2025-05-12
### π Bug Fixes
- Update error handling in ensure_output_dir function
### βοΈ Miscellaneous Tasks
- Update CHANGELOG for version 0.3.11
- Bump version to 0.3.12 in Cargo.toml
- Update CHANGELOG for version 0.3.12
## [0.3.11] - 2025-05-09
### π Features
- Add visualization error types to XError enum
- Enhance ContinuousProcess and TAMSD with new methods
- Add variance method to TAMSD for enhanced statistical analysis
### πΌ Other
- Implement CIR process simulation and visualization
- Update output formatting in CIR example for improved readability
### π Refactor
- Use iterator style for path generation in Langevin simulations
### π Documentation
- Enhance README examples with additional print statements
- Update README files to simplify descriptions and enhance clarity
- Update README files to include type annotations for methods
- Update README files to remove unnecessary type annotations
- Update README-zh.md to correct terminology for methods
- Update README files to improve clarity and consistency in random distributions and stochastic processes
- Update README-zh.md for terminology consistency
- Update README files to reflect changes in features and usage
- Update output formatting and terminology in README files
- Improve error handling and documentation in random number generation modules
- Enhance documentation for continuous simulation processes
- Enhance documentation for random walk simulation
- Enhance documentation for birth-death and CTRW processes
- Enhance documentation for circulant embedding and CSV writing
- Enhance documentation for plotting functions
- Update README files with new entries and error message improvements
### βοΈ Miscellaneous Tasks
- Bump version to 0.3.11 in Cargo.toml
## [0.3.10] - 2025-05-07
### π Features
- Add `TAMSD` struct and implementation for time-averaged mean square displacement
- Add GaussLegendreError to XError enum
- Refactor README examples to include main function
### π Documentation
- Update traits.rs documentation to include structs
### π§ͺ Testing
- Ignore continuous trajectory test for now
### βοΈ Miscellaneous Tasks
- Update py-diffusion submodule to dirty state
- Add gauss-quad dependency in Cargo.toml
- Add categories and keywords in Cargo.toml
- Bump version to 0.3.10 in Cargo.toml
- Update CHANGELOG for version 0.3.10
- Remove keywords from Cargo.toml
## [0.3.9] - 2025-05-06
### π Features
- Implement From trait for PlotterError to XError
### βοΈ Miscellaneous Tasks
- Bump version to 0.3.9 in Cargo.toml
## [0.3.8] - 2025-05-06
### π Bug Fixes
- Expose csv module in utils for better accessibility
### βοΈ Miscellaneous Tasks
- Update CHANGELOG for version 0.3.7
- Add py-diffusion submodule
- Bump version to 0.3.8 in Cargo.toml
## [0.3.7] - 2025-05-06
### π Features
- Add ensure_output_dir function to handle output directory creation
- Integrate ensure_output_dir in write_csv function
### π Refactor
- Remove ensure_output_dir function from draw.rs
### βοΈ Miscellaneous Tasks
- Update CHANGELOG for version 0.3.6
- Bump version to 0.3.7 in Cargo.toml
## [0.3.6] - 2025-05-06
### π Features
- Add Geometric Brownian motion simulation
- Add Geometric Brownian motion module
- Enhance ContinuousProcess and DiscreteProcess traits
- Add CSV error handling and CSV writing functionality
- Add CSV feature to default dependencies in Cargo.toml
### π Bug Fixes
- Mark GeometricBrownianMotion as completed in TODO list
### π Refactor
- Remove unused methods from continuous process simulations
- Remove unused simulation methods from RandomWalk
- Remove unused simulation methods from BirthDeath, CTRW, and Poisson
### βοΈ Miscellaneous Tasks
- Update CHANGELOG for version 0.3.5
- Bump version to 0.3.6 in Cargo.toml
## [0.3.5] - 2025-04-29
### π Features
- Add Brownian meander simulation implementation
- Add Brownian meander module to continuous simulation
- Add Asymmetric LΓ©vy process simulation
- Add Cauchy and Asymmetric Cauchy process simulations
- Add Gamma distribution random number generation
- Add Inverse process for continuous processes
- Implement Gamma process simulation
### π Bug Fixes
- Improve error handling and documentation in random distributions
- Update README documentation path for consistency
### π Refactor
- Simplify Brownian excursion simulation logic
- Improve code readability and structure in Brownian meander simulation
### π Documentation
- Update README for random number generation and visualization
- Update README to include Brownian meander
- Update documentation to include Brownian meander in simulation module
- Mark Brownian meander as completed in TODO list
- Update README for visualization configuration consistency
- Add Cauchy process to README
- Update simulation module documentation to include Cauchy process
- Mark Cauchy process as completed in TODO list
- Add Chinese version link to README
- Update README for improved clarity and links
- Update random module documentation to include Gamma distribution
- Update Levy and Subordinator simulation examples for clarity
- Add Gamma process to README
- Add Gamma process to simulation documentation
- Mark Gamma process as completed in TODO list
### βοΈ Miscellaneous Tasks
- Update CHANGELOG for version 0.3.4
- Update authors and description in Cargo.toml
- Bump version to 0.3.5 in Cargo.toml
## [0.3.4] - 2025-04-24
### π Features
- Add FFT planner lock error to XError enum
- Enhance CirculantEmbedding with eigenvalue caching and FFT plans
- Enhance CirculantEmbedding with eigenvalue computation and caching
- Add Brownian excursion example simulation
- Add Brownian excursion simulation implementation
- Add visualization test for Brownian motion
- Update trajectory visualization to SVG format
### π Bug Fixes
- Replace unwrap with ? in simulation methods for better error handling
- Correct occupation time parameter in Brownian excursion test
### πΌ Other
- Add Brownian bridge example simulation
### π Refactor
- Update simulation return types from PointPair to Pair
- Simplify type casting in simulation methods
- Update CTRW simulation methods for improved clarity
- Update PlotConfig defaults and improve data handling
### π Documentation
- Update documentation for random and simulation modules
- Update TODO list to mark BrownianBridge as completed
- Add Brownian excursion to the README files
- Add Brownian excursion description to simulation module
- Update mod.rs to include Brownian excursion in module exports
- Update TODO list to mark BrownianExcursion as completed
### βοΈ Miscellaneous Tasks
- Update CHANGELOG for version 0.3.3
- Comment out unused pre-commit hooks for Rust
- Update dependency versions in Cargo.toml
- Update GitHub Actions workflow to include stable branch
- Update dependencies and version in Cargo.toml
## [0.3.3] - 2025-04-15
### π Features
- Add deny.toml configuration file for cargo-deny
- Add pre-commit configuration for Rust and Python
- Implement Brownian bridge simulation
### π Documentation
- Update mod.rs to include Brownian bridge in the simulation module documentation
- Update README files to include Brownian bridge in the list of processes
### βοΈ Miscellaneous Tasks
- Bump version to 0.3.2 in Cargo.toml
- Update CHANGELOG for version 0.3.2
- Update GitHub Actions workflow to include specific file paths for Rust files
- Comment out unused pre-commit hooks for Rust
- Bump version to 0.3.3 in Cargo.toml
## [0.3.2] - 2025-04-05
### π Features
- Enhance Fbm simulation and CirculantEmbedding functionality
- Add error handling for non-positive definite matrices
### π Refactor
- Update default implementations for simulation structs
- Clean up error messages in error.rs
- Update error messages for clarity
- Clean up error messages in error.rs
### βοΈ Miscellaneous Tasks
- Update CHANGELOG for version 0.3.1
- Update GitHub Actions workflow to install dependencies
- Add optional dependency once_cell in Cargo.toml
## [0.3.1] - 2025-03-31
### π Features
- Add TODO list for stochastic processes
- Introduce discrete process and trajectory traits
- Add discrete module for simulation
- Add random walk module to discrete simulation
- Implement LatticeRandomWalk for discrete simulation
- Implement RandomWalk struct for discrete simulation
### π Bug Fixes
- Correct capitalization in Chinese and English README files
### π Refactor
- Change module visibility to public in simulation files
- Update types in discrete simulation traits
### π Documentation
- Enhance error handling documentation for diffusionx crate
- Enhance documentation and structure for stochastic processes
- Update benchmark section in README files
- Remove software environment details from Chinese README
- Improve comments in Brownian motion simulation
- Update README files to include DiscreteProcess trait
- Update README files to include Random Walk
### βοΈ Miscellaneous Tasks
- Update CHANGELOG for version 0.3.0
- Remove unused benchmark for random number generation
- Bump version to 0.3.1 in Cargo.toml
## [0.3.0] - 2025-03-22
### π Features
- Update CHANGELOG for version 0.2.2
- Add plotting functions for continuous and point trajectories
- Refactor simulation modules and add continuous processes
- Update documentation for version 0.2.2 and add visualization examples
### π Bug Fixes
- Update documentation for functional distribution simulation
### βοΈ Miscellaneous Tasks
- Bump version to 0.3.0 in Cargo.toml
## [0.2.2] - 2025-03-20
### π Features
- Implement Exponential, Normal, and Poisson distributions with error handling
- Add InvalidParameters error variant to XError enum
- Enhance visualization of Ornstein-Uhlenbeck process
- Enhance PlotConfig and visualization functionality
- Update version and add visualization feature
### πΌ Other
- Add examples for various stochastic processes
### βοΈ Miscellaneous Tasks
- Update CHANGELOG for version 0.2.1
- Update GitHub Actions workflow to limit branches for push and pull requests
- Update .gitignore to include tmp directory
## [0.2.1] - 2025-03-18
### π Features
- Add visualization feature and enhance error handling
### βοΈ Miscellaneous Tasks
- Bump version to 0.2.1 and update dependencies
## [0.2.0] - 2025-03-18
### π Features
- *(visualization)* Add optional visualization feature with Plotters integration
- *(visualization)* Enhance visualization capabilities with new PlotConfig and plotter modules
- *(error)* Add VisualizationError and PlotterError enums for enhanced error handling in visualization
- *(visualization)* Add time_step field and drawing trait for visualization
- *(error)* Add InvalidColor variant to PlotterError enum for enhanced error reporting
- *(visualization)* Enhance PlotConfig with new fields and color handling
- *(visualization)* Enhance PlotConfig and Visualize trait for improved plotting
- Update version to 0.2.0 and add visualization feature
### π Bug Fixes
- *(visualization)* Update PlotConfig struct for improved type handling
- *(tests)* Update occupation time assertions for stability
### π Refactor
- *(functions)* Remove sine and cosine functions for pi calculations
- *(functions)* Remove gamma function documentation
- *(visualization)* Update .gitignore and remove plotter module
- *(visualization)* Simplify RGBColor conversion in Color enum
- *(visualization)* Remove visualization module and related dependencies
### π Documentation
- *(changelog)* Update CHANGELOG.md for version 0.1.9
### βοΈ Miscellaneous Tasks
- *(dependencies)* Simplify Cargo.toml by removing features section and updating optional dependencies to required
- *(visualization)* Comment out plotter module and its usage
- *(workflow)* Update GitHub Actions to include 'plot' branch for CI
## [0.1.9] - 2025-03-12
### π Features
- *(simulation)* Add Birth-death process simulation module
### π Documentation
- *(readme)* Update roadmap with Birth-death process feature
### βοΈ Miscellaneous Tasks
- *(changelog)* Update CHANGELOG.md for version 0.1.8
- *(version)* Bump library version to 0.1.9 in Cargo.toml
## [0.1.8] - 2025-03-08
### π Features
- *(simulation)* Add Ornstein-Uhlenbeck process simulation module
### πΌ Other
- *(rust-ver 0.1.7)* Bump version to 0.1.7 and update changelog
### π Refactor
- Restructure project and remove Python bindings to a new repo
- *(simulation)* Generalize Langevin and Generalized Langevin structs with generic function types
### π Documentation
- Refactor README for improved clarity and content
- Update README language links and formatting
- *(readme)* Enhance README with comprehensive library overview and refined examples
### π§ͺ Testing
- Refactor test suites for simulation modules
- Modify Langevin test case to remove strict assertion
## [Rust-v0.1.7] - 2025-03-05
### π Features
- *(py-diffusionx)* Add support for FBM, CTRW and Langevin processes
- *(levy_walk)* Add Levy walk simulation module
### π Refactor
- Format
### π Documentation
- *(changelog)* Add entries for Python-v0.1.3 and Rust-v0.1.6 releases
## [Rust-v0.1.6] - 2025-03-04
### π Features
- *(CTRW)* Add continuous-time random walk model
### πΌ Other
- Bump Rust crate version 0.1.6
### π Documentation
- *(CHANGELOG)* Update changelog for Rust v0.1.5 release
- *(bm,fbm)* Improve documentation and code formatting
## [Rust-v0.1.5] - 2025-03-01
### π Features
- *(Rust)* Add Circulant Embedding Method for Gaussian Random Fields
- *(Simulation)* Implement Fractional Brownian Motion (fBm) simulation
### π Refactor
- *(Simulation)* Improve code formatting and import organization
- *(circulant_embedding.rs)* Enhance performance and add variance normalization
- *(circulant_embedding.rs)* Remove variance normalization code
- *(utils)* Reorganize utility functions and add circulant embedding module
### βοΈ Miscellaneous Tasks
- *(Dependencies)* Upgrade Rust dependencies for advanced numerical computing
- *(Dependencies)* Remove ndarray dependency from project
## [Rust-v0.1.4] - 2025-02-24
### π Features
- *(Rust)* Add occupation time for inverse subordinator
- *(Python)* Add functional simulation methods for first passage time and occupation time
- *(Python)* Add Poisson, Subordinator, and Inverse Subordinator simulation classes
- *(Rust)* Add Langevin equation simulation module
- *(Simulation)* Add Generalized Langevin Equation Simulation
- *(Simulation)* Add Subordinated Langevin Equation Simulation
### π Bug Fixes
- *(Langevin)* Correct stochastic simulation noise scaling
### πΌ Other
- Release Rust version 0.1.3
- Bump Python package version to 0.1.2
### π Refactor
- *(Langevin)* Remove unnecessary start position validation
### π Documentation
- *(Rust)* Update CHANGELOG for version 0.1.3
- *(CHANGELOG)* Update changelog for Python version 0.1.2
- Update benchmark results with new hardware and software configuration
- *(Rust)* Update README and documentation for Langevin equation implementations
### βοΈ Miscellaneous Tasks
- Update project dependencies and benchmark performance
- Bump package version to 0.1.4
## [Rust-0.1.3] - 2025-02-21
### π Features
- *(Rust)* Add subordinator simulation module
- *(Rust)* Add Poisson process simulation module
- *(Rust)* Add callable feature for simulation processes, which needs `nightly`.
- Add point process simulation methods for first passage and occupation time
- *(Rust)* Implement inverse subordinator simulation
### π Refactor
- Move simulate_with_duration implementation to traits module
- Standardize import statements and code formatting
- Optimize slice copying in point process duration simulation
### π Documentation
- Improve documentation for Brownian motion and LΓ©vy process simulations
- Update README with subordinator process roadmap
- *(Rust)* Implement subordinator and Poisson process simulations
### βοΈ Miscellaneous Tasks
- Remove rust-toolchain.toml configuration
- Update Rust toolchain and license configuration
- Remove callable feature and nightly Rust toolchain
## [Rust-v0.1.2] - 2025-02-19
### π Features
- Add occupation time functionality
- Add LΓ©vy process simulation and related functionality
- Add occupation time for Brownian motion
### π Bug Fixes
- *(Python)* Add input validation for Brownian motion and LΓ©vy process methods
### πΌ Other
- Lower Python version requirement to 3.9
### π Refactor
- Remove gamma function implementations from utils
- Enhance simulation traits with continuous and point process abstractions
- Update Brownian motion and LΓ©vy process simulation traits
- Optimize occupation time calculation using iterator methods
- Improve code formatting and import organization
- Introduce simulation prelude module for simplified imports
- Expose simulation module traits and functional components
### π Documentation
- Add comprehensive README for Python package
- Update README with new features and progress
- Update project roadmap and feature tracking
- Update README files with comprehensive random number generation and simulation examples
### βοΈ Miscellaneous Tasks
- Add PyPI publication workflow for Python package
- Switch Rust toolchain from stable to beta in publish workflow
- Remove test step from Python publish workflow
- Add changelog and git-cliff configuration
- Update CHANGELOG.md with recent project developments
- Bump project version to 0.1.2
- Prepare Rust release v0.1.2
## [0.1.0] - 2025-02-19
### π Features
- Add minmax utility function for finding min and max values in f64 arrays
- Add first passage time (FPT) calculation for Brownian motion
- Enhance first passage time (FPT) calculation with max duration
- Add Levy process simulation module
### πΌ Other
- Add justfile for generating Rust documentation
### π Refactor
- Traits
- Update Brownian motion simulation and traits
- Simplify Moment and Functional trait implementations
- Remove unused unchecked Brownian motion constructor
- Restructure simulation traits and add first passage time functionality
- Implement StochasticProcess and Trajectory for Brownian motion
- Remove nightly feature and related code
### π Documentation
- Update README with comprehensive library overview and usage examples
- Simplify README with focused usage examples
- Update README with refined usage examples and syntax
- Update README with first passage time (FPT) example
- Refine README with updated Brownian motion simulation examples
- δΈζ, English docs
- Update README with first passage time (FPT) max duration example
- Generate Rust documentation for DiffusionX library
- Update Rust documentation for DiffusionX library
- Modify justfile to clean documentation directory before generation
- Add documentation badge to README files
- Add Julia version reference to README files
- Update Rust documentation for simulation module
- Update README examples for Brownian motion simulation
- Add extensibility section to README files
- Minor README update for extensibility section
- Update documentation links in README files
- Update documentation badge links to Rust documentation path
- Minor documentation updates and formatting improvements
- Remove generated Rust documentation files
### π§ͺ Testing
- Add comprehensive random number generation tests
- *(rust)* Add statistical utility functions for random number generation tests
- *(python)* Enhance stable distribution random number generation tests
### βοΈ Miscellaneous Tasks
- Minor formatting in types module
- Add GitHub Pages deployment workflow for documentation