Releases: OldCrow/libhmm
v2.9.1 - Cross-Platform Architecture Support & Build Quality Improvements
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
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
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
🔧 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
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
🎯 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
🚀 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
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
🎯 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
examples/financial_hmm_example.cpp
examples/reliability_hmm_example.cpp
examples/quality_control_hmm_example.cpp
examples/economics_hmm_example.cpp
examples/queuing_theory_hmm_example.cpp
examples/README.md
- Comprehensive example guide
Full Changelog: v2.2.0...v2.2.1
v2.2.0 - Expanded Distribution Support and Standardization
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