Skip to content

Releases: OldCrow/libhmm

v2.9.1 - Cross-Platform Architecture Support & Build Quality Improvements

02 Jul 22:40
Compare
Choose a tag to compare

Key Features:
• ARM64 HMM library ecosystem porting with Intel SSE to ARM NEON mapping
• Architecture-aware build system with automatic Homebrew path detection
• Zero build warnings through enhanced dependency management
• Cross-platform validation across Intel x86_64 and ARM64 architectures
• Modern GTest integration with duplicate library warning elimination

Technical Highlights:
• Automatic Apple Silicon vs Intel Mac detection in CMake
• SIMD performance preservation through ARM NEON intrinsic translation
• Enhanced build system robustness with proper feature detection
• Comprehensive cross-platform documentation and validation

Validated Libraries:
• libhmm: Native ARM64 optimization
• HMMLib: Complete Intel SSE to ARM NEON port
• GHMM: Python environment and build compatibility
• StochHMM: Cross-platform compilation
• HTK: Speech toolkit ARM64 support
• LAMP HMM: Pre-C++98 modernization for Apple Silicon
• JAHMM: Java HMM library compatibility

Build Quality: libhmm should be 100% warning-free compilation across all platforms

v2.8.0 - Comprehensive Distribution Testing Framework & Bug Fixes

29 Jun 18:47
Compare
Choose a tag to compare

174 standardized test cases across all distributions
• Organized by statistical families (location-scale, gamma family, etc.)
• Comprehensive parameter validation and statistical property verification
• Robust error handling and edge case testing
• 100% test success rate providing rigorous mathematical validation

🐛 Critical Bug Fixes:
• Fixed Pareto distribution boundary condition bug - proper PDF calculation at x=x_m
• Ensures mathematical correctness for power law distributions
• Added Rayleigh distribution to main distributions header for completeness

v2.7.1: Discrete distributions gold standard upgrade & HTK continuous benchmarking

28 Jun 06:18
Compare
Choose a tag to compare

Major Features:
• Elevated all 4 discrete distributions (Discrete, Binomial, Negative Binomial, Poisson) to gold standard
• Comprehensive exception handling in stream input operators
• Robust boundary value management and input validation
• Consistent variable naming conventions across discrete distributions

Benchmarking Enhancements:
• Clean separation of discrete vs continuous HTK benchmarks
• Comprehensive 1D Gaussian continuous distribution benchmarking
• Extended performance scaling analysis (100 to 1,000,000 observations)
• Performance crossover analysis: libhmm excels <5k obs, HTK dominates >10k obs

Updated Performance Rankings (latest benchmarks):
• GHMM: 25,164.9 obs/ms (24.25x faster than libhmm)
• HMMLib: 18,889.2 obs/ms (17.83x faster than libhmm)
• StochHMM: 2,075.7 obs/ms (2.10x faster than libhmm)
• libhmm: 1,037.6 obs/ms (baseline)
• HTK: Variable scaling (177x faster for very long sequences)

Quality Improvements:
• 100% test pass rate maintained
• Enhanced numerical robustness and error handling
• No breaking changes - full backward compatibility
• Comprehensive documentation updates

Files Modified:
• All 4 discrete distribution headers and implementations
• HTK benchmark separation and continuous support
• Updated performance rankings and scaling analysis
• Comprehensive benchmarking documentation updates"

v2.7.0 - Stream I/O robustness and code quality enhancement

27 Jun 22:51
Compare
Choose a tag to compare

🔧 Stream I/O Robustness:

  • Comprehensive exception handling across all distribution stream input operators
  • Consistent try-catch blocks with std::stod() parsing and robust error recovery
  • Stream failbit setting on parse failure instead of throwing exceptions
  • Standardized variable naming conventions and numeric boundary handling

📋 Gold Standard Checklist:

  • Established comprehensive Gold Standard Checklist for distribution quality
  • Documented consistent patterns for exception handling and error recovery
  • All distributions meet robustness and maintainability standards
  • 100% test pass rate with enhanced reliability

📚 Documentation & Organization:

  • Moved CROSS_PLATFORM.md to docs/ directory
  • Added cross-platform build guide references
  • Updated Contributing section with style guide and checklist references
  • Added clang-tidy enforcement for automated code quality

🏗️ Architecture & Build System:

  • Reorganized test suite into logical subdirectories
  • Enhanced CMake integration with cross-platform support
  • Modern C++17 matrix/vector architecture with SIMD optimization
  • .clang-tidy configuration for code quality enforcement

This release establishes solid foundations for consistent code quality and
robust stream I/O operations across the entire libhmm codebase.

v2.6.0 - Zero Dependencies & Comprehensive Benchmarking

26 Jun 03:09
Compare
Choose a tag to compare

Major updates:
✅ Complete Boost dependency elimination
✅ Custom Matrix/Vector implementations with SIMD-friendly layout
✅ Comprehensive 5-library benchmarking suite with 100% numerical agreement
✅ Zero external dependencies - C++17 standard library only
✅ Performance baseline established across HMM libraries

v2.5.0 - Calculator Modernization & Benchmark Validation

25 Jun 05:38
Compare
Choose a tag to compare

🎯 Major AutoCalculator System Validation & Performance Improvements

Key Achievements

✅ Complete benchmark suite modernization with 100% numerical accuracy
✅ ~17x performance improvement (540x → 31x gap vs HMMLib)
✅ AutoCalculator system validation across all problem sizes
✅ API modernization to current libhmm patterns

Benchmark Validation

  • 16/16 test cases with perfect numerical agreement (≤ 2e-10 precision)
  • Updated algorithm_performance_benchmark.cpp to AutoCalculator APIs
  • Modernized classic_problems_benchmark.cpp with comprehensive test suite
  • Detailed calculator selection rationale in debug output

Performance Results

  • Forward-Backward: HMMLib 31.3x faster (major improvement from ~540x)
  • Viterbi: HMMLib 20.9x faster (significant improvement)
  • Clear evidence SIMD optimizations provide substantial real-world benefits

API Modernization

  • Migrated to libhmm::forwardbackward::AutoCalculator
  • Migrated to libhmm::viterbi::AutoCalculator
  • Simplified calculator usage with automatic selection
  • Enhanced debug information with performance predictions

Infrastructure

  • Reliable benchmark system for ongoing optimization work
  • Validated calculator selection logic
  • Future-ready measurement tools for continuous improvement

v2.4.0 - Robust Training Infrastructure & Numerical Stability

24 Jun 01:52
Compare
Choose a tag to compare

🚀 Major Enhancement Release - Advanced training infrastructure with comprehensive numerical stability and intelligent trainer selection.

✨ New Features

🛡️ Numerical Stability Framework

  • NumericalSafety: Comprehensive validation for NaN, infinity, and underflow detection
  • ConvergenceDetector: Advanced convergence monitoring with configurable criteria
  • AdaptivePrecision: Dynamic precision adjustment for optimal numerical accuracy
  • ErrorRecovery: Multiple recovery strategies (GRACEFUL, ROBUST, ADAPTIVE)
  • NumericalDiagnostics: Detailed health reporting and issue tracking

🎯 Intelligent Trainer Selection

  • Trainer Traits System: Automatic trainer selection based on data characteristics
  • Performance Prediction: Algorithm complexity scoring and benchmarking
  • AutoTrainer: Intelligent trainer factory with optimal configuration selection
  • Training Objectives: Support for ACCURACY, SPEED, ROBUSTNESS, and MEMORY optimization

💪 RobustViterbiTrainer

  • Integrated numerical stability with all safety components
  • Advanced error recovery and adaptive precision handling
  • Comprehensive diagnostics and health monitoring
  • Multiple training presets (conservative, balanced, aggressive, realtime, high_precision)

🔧 API Improvements

  • Consolidated Includes: Single distributions.h header for all probability distributions
  • Cleaner Integration: Simplified includes across all core headers
  • Enhanced Error Handling: Graceful degradation with detailed error reporting

🐛 Bug Fixes

  • Fixed infinite recursion in ADAPTIVE recovery strategy
  • Resolved memory management issues in error recovery paths
  • Improved numerical stability in edge cases

🧪 Testing

  • 31/31 tests passing - Complete test coverage maintained
  • New comprehensive unit tests for numerical stability components
  • Robust trainer testing with edge cases and error scenarios
  • Performance benchmarking for trainer selection algorithms

📊 Performance

  • Intelligent algorithm selection reduces training time by up to 40% for appropriate datasets
  • Robust error handling prevents crashes while maintaining accuracy
  • Adaptive precision optimization balances speed and numerical stability

🔄 Migration Guide

  • Replace individual distribution includes with #include <libhmm/distributions/distributions.h>
  • Existing code continues to work without changes
  • New RobustViterbiTrainer available as drop-in replacement for enhanced reliability

📋 Requirements

  • C++17 compatible compiler
  • CMake 3.15+
  • Boost libraries

This release significantly enhances the reliability and robustness of the libhmm library while maintaining full backward compatibility.

v2.3.0 - Additional Statistical Distributions & Performance Optimization

23 Jun 19:53
Compare
Choose a tag to compare

Major Feature Release - This release adds powerful new statistical distributions and comprehensive SIMD/threading optimizations, making libhmm suitable for advanced statistical modeling and high-performance applications.

🆕 New Statistical Distributions

Student's t-Distribution

• Complete implementation for robust statistical modeling with heavy tails
• Parameters: location (μ), scale (σ), and degrees of freedom (ν)
• Perfect for financial modeling, outlier-robust analysis, and extreme event modeling
• Includes MLE parameter fitting and comprehensive validation

Chi-squared Distribution

• Essential for goodness-of-fit testing and statistical hypothesis testing
• Parameter: degrees of freedom (k)
• Used in categorical data analysis and process capability studies
• Efficient implementation with numerical stability

⚡ Performance Optimizations

• 🔥 SIMD Vectorization: AVX, SSE2, and ARM NEON support with up to 3x speedup
• 🧵 Modern C++17 Thread Pool: Work-stealing algorithm for optimal multi-core performance
• 🎯 Optimized Forward-Backward Calculator: SIMD-accelerated matrix operations with cache-friendly layouts
• 🤖 Automatic Optimization: Runtime CPU feature detection and algorithm selection
• 💾 Memory Efficiency: Aligned allocators and memory pools for high-performance computing

📚 New Examples

• robust_financial_hmm_example.cpp: Heavy-tailed financial modeling using Student's t-distribution for crisis detection and robust portfolio optimization
• statistical_process_control_hmm_example.cpp: Advanced quality control using Chi-squared distribution for hypothesis testing and SPC

🔧 Enhancements & Fixes

• ✅ Zero-Warning Builds: Eliminated all compiler warnings across platforms
• 🔨 Fixed HMM Stream Parser: Resolved multiline distribution format parsing issues
• 📦 CMake Improvements: Fixed FindBoost deprecation warnings and enhanced cross-platform support
• 🛡️ Enhanced Error Handling: Improved parameter validation and exception safety
• 📖 Comprehensive Documentation: Updated README, CHANGELOG, and testing strategy

📊 Technical Specifications

Feature Count Status
Probability Distributions 17 total ✅ All tested
Test Suites 28 comprehensive ✅ 100% passing
Examples 9 real-world ✅ All domains covered
SIMD Support 3 architectures ✅ AVX/SSE2/NEON
Threading C++17 standard ✅ Work-stealing pool

🎯 Use Cases

• Finance: Robust portfolio optimization, crisis detection, heavy-tailed risk modeling
• Manufacturing: Advanced statistical process control, quality monitoring, hypothesis testing
• Research: Heavy-tailed statistical modeling, goodness-of-fit testing, robust statistics
• High-Performance Computing: SIMD-accelerated matrix operations, parallel training

🔄 Backward Compatibility

✅ Fully Backward Compatible - All existing code continues to work unchanged. New features are opt-in.

🚀 Performance Gains

• Matrix Operations: Up to 3x speedup with SIMD vectorization
• Memory Access: Cache-optimized layouts reduce latency
• Parallel Processing: Multi-core training for large datasets
• Automatic Selection: Optimal algorithms chosen based on problem size and CPU features

📋 Requirements

• C++17 Compatible Compiler: GCC 7+, Clang 5+, MSVC 2017+
• CMake: 3.15 or later
• Boost Libraries: For matrix operations
• Platform: macOS, Linux, Unix-like systems

🔗 Quick Start

# Download and build
git clone https://github.com/OldCrow/libhmm.git
cd libhmm && mkdir build && cd build
cmake .. && make -j$(nproc)

# Run tests (28/28 should pass)
ctest

# Try new distributions
./examples/robust_financial_hmm_example
./examples/statistical_process_control_hmm_example

💡 Migration from v2.2.1

No breaking changes! Simply rebuild with the new version to get:
• Automatic SIMD optimizations (if supported by your CPU)
• Access to new Student's t and Chi-squared distributions
• Enhanced performance and reliability

Full CHANGELOG: v2.2.1...v2.3.0

v2.2.1 - More Comprehensive Examples Suite

23 Jun 14:01
Compare
Choose a tag to compare

🎯 New Comprehensive Example Suite

This release adds 5 new domain-specific examples demonstrating real-world HMM applications:

📊 New Examples Added

  • 🏦 Financial Markets - Market volatility and returns modeling (Beta, Log-Normal)
  • 🔧 Reliability Engineering - Component lifetime analysis (Weibull, Exponential)
  • 🏭 Quality Control - Manufacturing process monitoring (Binomial, Uniform)
  • 📈 Economics - Customer behavior and inequality analysis (Negative Binomial, Pareto)
  • ⏱️ Queuing Theory - Service systems analysis (Poisson, Exponential, Gamma)

Key Features

  • Complete Distribution Coverage - All 12 distributions demonstrated
  • 7 Comprehensive Examples - Real-world applications across major domains
  • Detailed Documentation - Mathematical insights and best practices
  • Industry Applications - Technology, finance, engineering, manufacturing, economics, service systems
  • Training Examples - Synthetic data generation and parameter learning

🚀 Application Domains

  • Technology: Web analytics, network monitoring
  • Finance: Market analysis, risk management
  • Engineering: Predictive maintenance, reliability analysis
  • Manufacturing: Quality control, statistical process control
  • Economics: Customer analytics, inequality research
  • Service Systems: Call centers, queuing analysis

Each example includes probability calculations, state inference, training demonstrations, and comprehensive application guidance.

📁 Example Files

Full Changelog: v2.2.0...v2.2.1

v2.2.0 - Expanded Distribution Support and Standardization

23 Jun 05:47
Compare
Choose a tag to compare

Release Highlights in v2.2.0:
• 🆕 4 New Distributions: Binomial, Negative Binomial, Uniform, Weibull
• 📊 50% More Coverage: 8 → 12 total distributions
• ✅ 100% Test Success: 19/19 tests passing
• 🔧 Enhanced Validation: Improved parameter checking across all distributions
• 📈 Major Expansion: 5,854 lines of new functionality