Skip to content

Latest commit

 

History

History
157 lines (129 loc) · 8.42 KB

File metadata and controls

157 lines (129 loc) · 8.42 KB

Changelog

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

[0.8.0] - 2025-12-07

Added

  • Comprehensive Theory Documentation: Complete rewrite of educational documentation with unified pedagogical approach
    • New central thesis: "Approximating unknown dynamical systems to make them tractable"
    • 9 interconnected chapters covering foundations through advanced applications
    • Progressive learning path from linear regression to stochastic calculus

Documentation Structure

  • Chapter 0: Introduction - The Approximation Paradigm
    • Starts with linear regression as simplest derivative estimator
    • Multiple regression for partial derivatives
    • Natural progression to advanced methods
  • Chapter 1: Numerical Differentiation - Finite differences, error analysis
  • Chapter 2: Noise and Smoothing - Bias-variance tradeoff, regularization
  • Chapter 3: Interpolation Methods - Splines, local regression, kernels, neural nets
  • Chapter 4: Multivariate Derivatives - Gradients, Jacobians, Hessians from data
  • Chapter 5: Approximation Theory - Error bounds, convergence rates
  • Chapter 6: Differential Equations - System identification, SINDy, Neural ODEs
  • Chapter 7: Stochastic Calculus - Itô calculus, SDEs, drift/diffusion estimation
  • Chapter 8: Applications - Finance, physics, sensors, ML under error

Key Themes

  • Every chapter connects to central thesis: approximating unknown dynamics
  • Practical code examples throughout using PyDelt API
  • Error quantification and validation strategies
  • Domain-specific considerations for real-world applications

Technical

  • Updated Sphinx configuration for improved Markdown rendering
  • Fixed RST/Markdown integration issues
  • All documentation builds cleanly with Sphinx

[0.6.3] - 2025-10-11

Added

  • Window Function Support: Added comprehensive window function support for segmented time series data
    • New window_func parameter in all interpolator fit() methods
    • Support for custom window generators based on time gaps and value drops
    • Compatible with standard NumPy windows (hanning, hamming, blackman, bartlett)
    • normalize_by_observations parameter in differentiate() for derivative scaling
    • Stores window_weights and n_observations for downstream processing
  • Integration Support: Enhanced integral functions with denormalization options
    • Added n_observations and denormalize parameters to integrate_derivative()
    • Added n_observations and denormalize parameters to integrate_derivative_with_error()
  • Comprehensive Test Suite: Added 13 new tests for window function functionality
    • Tests for standard window functions (Hanning, Hamming, etc.)
    • Tests for custom window generators with time gap and value drop detection
    • Tests for realistic sensor data scenarios with 30-minute gaps and 10-value drops
    • Tests for derivative normalization and integration denormalization
    • Tests for multivariate signal support with windows
  • Documentation: Added Example 7 demonstrating window functions for segmented data
    • Shows how to handle sensor data with measurement gaps
    • Demonstrates custom window generator creation
    • Explains normalization and denormalization workflows

Use Cases

  • Sensor Data: Handle measurement sessions separated by time gaps
  • Financial Data: Process trading sessions with natural boundaries
  • Segmented Time Series: Reduce artifacts at data boundaries
  • Edge Effect Reduction: Apply tapering at session boundaries

Technical Details

  • Window functions are applied to the signal before interpolation
  • Custom window generators can detect boundaries based on configurable thresholds
  • Normalization scales derivatives by 1/N when window functions are used
  • All interpolators (Spline, LOWESS, LOESS, FDA, LLA, GLLA) support window functions

[0.6.2] - 2025-09-23

Added

  • GOLD Interpolator: Added differentiate() method to the GoldInterpolator class
    • Implemented analytical derivatives for 1st and 2nd order using Hermite cubic interpolation
    • Added recursive approach for higher-order derivatives
    • Ensured compatibility with the universal differentiation interface
  • Comprehensive Comparison: Updated comparison framework to include GOLD method
    • Added GOLD to all benchmark tests (univariate, multivariate, noise robustness)
    • Updated research paper with GOLD method results

Improved

  • Documentation: Enhanced explanations for multivariate, tensor, and stochastic calculus implementations
    • Added detailed sections on gradient, Jacobian, Hessian, and Laplacian operations
    • Expanded tensor calculus explanations with vector field operations and coordinate transformations
    • Improved stochastic calculus documentation with Itô and Stratonovich calculus details

Technical Details

  • GOLD method shows excellent performance, ranking just after GLLA in first-order derivative accuracy
  • Good noise robustness comparable to GLLA method
  • Reasonable computational efficiency suitable for most applications

[0.5.1] - 2025-08-11

Added

  • Documentation: Quick Start and Examples updated with Tensor Derivatives
    • New sections for directional derivatives, divergence, curl, strain, and stress
    • Correct component indexing demonstrated for rank-2 tensors (use three indices: [:, i, j])
  • API Docs: Added pydelt.multivariate and pydelt.tensor_derivatives to API reference

Changed

  • Bumped version to 0.5.1 for documentation and example improvements

Notes

  • Visual tests and documentation examples emphasize correct tensor component extraction to avoid shape/reshape errors

[0.5.0] - 2025-08-03

Added

  • Universal Differentiation Interface: Implemented consistent .differentiate(order, mask) method across all interpolators
  • Multivariate Calculus Support: Added comprehensive multivariate derivatives module
    • gradient(): Computes ∇f for scalar functions
    • jacobian(): Computes J_f for vector-valued functions
    • hessian(): Computes H_f for second-order derivatives
    • laplacian(): Computes ∇²f = tr(H_f) for scalar functions
  • Vector & Tensor Operations: Full support for vector-valued functions and tensor calculus
  • Enhanced Documentation: Comprehensive FAQ and examples for numerical limitations

Changed

  • Reframed Library Focus: Expanded from time series derivatives to dynamical systems & differential equations approximation
  • Enhanced Examples: Added comprehensive multivariate derivative examples and visualizations
  • Improved Documentation: Updated all documentation to reflect the new capabilities and focus

Technical Details

  • Implemented MultivariateDerivatives class with robust error handling and consistent output shapes
  • Added domain coverage visualization tools for educational purposes
  • Enhanced all interpolators with analytical or numerical differentiation methods
  • Added masking support for partial derivative computation

[0.4.0] - 2025-07-26

Fixed

  • Critical Bug Fix: Fixed NameError in neural_network_derivative function where undefined variables X and Y were used instead of the correct time and signal parameters
  • TensorFlow Compatibility: Removed unsupported callbacks parameter from TensorFlowModel.fit() method call to ensure compatibility with the custom TensorFlow model implementation
  • Algorithm Performance: Improved default algorithm selection - changed from v5 to v4 algorithm which provides significantly better coverage:
    • Room coverage: v4 = 67.47% vs v5 = 1.16%
    • Packout coverage: v4 = 48.68% vs v5 = 1.71%
    • Total scores: v4 = 2,049,792 vs v5 = 240

Improved

  • Test Coverage: Enhanced test suite stability with 44/46 tests now passing (96% pass rate)
  • Code Quality: Fixed variable naming inconsistencies in automatic differentiation module
  • Neural Network Training: Improved parameter handling for both PyTorch and TensorFlow backends

Technical Details

  • Fixed variable scope issues in src/pydelt/autodiff.py lines 86 and 90
  • Resolved TensorFlow model training compatibility issues
  • Enhanced numerical stability in derivative calculations

Notes

  • Two multivariate neural network derivative tests may occasionally fail due to numerical accuracy requirements - this is expected behavior for neural network convergence and does not affect core functionality
  • All core derivative calculation, interpolation, and integration functions are fully operational

[0.3.1] - Previous Release

  • Previous stable version