Releases: OldCrow/libstats
v0.6.2 - Windows Support & Cross-Platform Stability
This release introduces full Windows compatibility with Microsoft Visual C++ (MSVC) while maintaining complete backward compatibility with macOS and Linux builds.
🔧 Windows Support Enhancements
• Full MSVC Compatibility: Native support for Visual Studio 2022 and MSVC compiler
• Windows-Specific SIMD Detection: Automatic AVX2/AVX/SSE2 optimization on Windows x64
• Platform-Agnostic Build System: Conditional compilation ensures zero impact on Unix/Linux/macOS builds
• Comprehensive Documentation: New docs/Windows_Support.md with setup and build instructions
⚡ Performance & Optimization
• Enhanced SIMD Detection: Improved runtime CPU feature detection across all platforms
• Cross-Platform Memory Management: Platform-specific aligned allocation (_aligned_malloc on Windows, std::aligned_alloc on Unix)
• Compiler Warning Cleanup: Resolved MSVC warnings while maintaining compatibility
🏗️ Build System Improvements
• CMake Windows Integration: Native Windows library naming and symbol export
• Flexible Dependency Detection: Automatic TBB and GTest detection on Windows via find_package
• Cross-Compilation Support: Environment variable overrides for SIMD settings
🔄 Maintained Compatibility
• Zero Breaking Changes: All existing macOS/Linux code unchanged
• Active Development Branch: windows-support branch remains available for ongoing Windows-specific development
• Version Synchronization: Updated version numbers across CMakeLists.txt and libstats.h
📦 What's New Since v0.6.1
• Version number consistency updates
• Final Windows compatibility stabilization
• Build system refinements
This release enables libstats to be used across Windows, macOS, and Linux development environments.
Full Changelog: v0.6.0...v0.6.2
v0.6.0 - Major Refactoring of Plaform-Independent Code
🏗️ Structure Cleanup (COMPLETED)
- Split monolithic distribution_base.h (1400+ lines → 326 lines)
- Reorganized constants.h (600+ lines → 39 focused files)
- Extracted template implementations to reduce compilation time
- Created focused module structure with clear separation of concerns
🚀 Performance Optimizations
- Fixed redundant cache management in uniform distribution parallel methods
- Eliminated ~13x overhead: parallel methods now have ~0% overhead vs SIMD
- Optimized thread-safe parameter caching across all distributions
- Enhanced SIMD dispatch with runtime CPU detection
Code Quality Improvements
- Eliminated all compilation warnings with [[maybe_unused]] attributes
- Standardized error handling patterns across distribution classes
- Improved memory management with focused allocation utilities
- Enhanced thread safety with simplified synchronization patterns
📁 New Modular Structure
Core constants now organized into focused files:
- mathematical_constants.h - π, e, mathematical values
- precision_constants.h - Tolerances, epsilons, thresholds
- statistical_constants.h - Critical values, significance levels
- probability_constants.h - Probability bounds and safety limits
- benchmark_constants.h - Performance testing parameters
- robust_constants.h - Robust estimation parameters
- statistical_methods_constants.h - Bayesian, bootstrap, cross-validation
- goodness_of_fit_constants.h - Critical values for goodness-of-fit tests
Core infrastructure split into focused modules:
- distribution_interface.h - Pure virtual interface definitions
- distribution_cache.h - Caching infrastructure (platform/)
- distribution_memory.h - Memory management utilities
- distribution_validation.h - Validation structures and utilities
📈 Performance Metrics
- 20-30% faster compilation times through header modularization
- Zero performance overhead for parallel uniform distribution methods
- Eliminated double cache validation/locking across all parallel operations
- Improved SIMD dispatch efficiency with centralized CPU detection
✅ Quality Assurance
- All 34 tests pass successfully
- Zero compilation warnings across all platforms
- Full backward compatibility maintained
- Comprehensive performance verification completed
📚 Documentation
- Added comprehensive refactoring plan (core_platform-independent_improvements.md)
- Enhanced code comments and architectural documentation
- Improved namespace organization for better usability
- Updated API examples with modern C++20 patterns
v0.5.0 - Core Functionality Complete
Major optimization phase milestone featuring:
- Comprehensive header reorganization and modularization
- Advanced SIMD optimization with runtime dispatch
- Parallel execution framework with adaptive thresholds
- Work-stealing thread pools and adaptive caching
- Consolidated distribution implementations with full test coverage
- Enhanced documentation and API simplification roadmap
- Robust build system with diagnostic tools
This release completes the core optimization infrastructure and sets
the foundation for API simplification leading to v1.0.0 stable release.
Key Performance Improvements:
- SIMD-optimized batch operations
- Parallel execution with work distribution
- Memory-efficient caching with predictive eviction
- Enhanced numerical precision and stability
Platform Support: macOS, Linux, Windows with C++20 compliance
Zero external dependencies maintained with thread-safe operations.
v0.4.0 - Improve distribution implementations with performance optimizations
Key Features:
- Complete Uniform, Discrete, Gaussian, and Exponential distributions
- SIMD-optimized batch operations with runtime dispatch
- Work-stealing and cache-aware parallel processing
- Comprehensive performance benchmarks with correctness verification
- Production-ready thread-safe implementations
Performance Highlights:
- Fixed critical uniform distribution performance regression (17,365% improvement)
- Consistent parallelization thresholds across all distributions
- Optimized cache management with intelligent grain sizing
- Full coverage of PDF, LogPDF, and CDF operations
Testing & Quality:
- Comprehensive test suites with statistical validation
- Performance benchmarks with automated correctness checks
- Thread safety verification and stress testing
- Complete API consistency across all distributions
v0.3.2 - Fix compiler warnings for unused functions on Apple platforms
Wrap detect_cache_info and detect_topology_info functions in #if !defined(APPLE)
guards since they are unused on Apple platforms due to using sysctl instead
- Resolves compiler warnings without affecting functionality on any platform
v0.3.1 - Fix Intel Mac compilation and linking issues
This release fixes critical compilation and linking issues that affected Intel Macs with Homebrew LLVM when building v0.3.0:
- Fixed missing forward declaration for detect_macos_topology() function
- Added proper Homebrew LLVM libc++ linking for shared library
- Ensures compatibility across all macOS platforms (Intel & Apple Silicon)
v0.3.0 - Modern macOS Thread Optimization
🚀 Key Features:
- Modern QoS-based thread optimization for macOS
- 1.67x-5.24x performance improvements on large datasets
- Enhanced cross-platform compatibility
- Fixed CMake duplicate library warnings
- 100% test pass rate (27/27 tests)
🎯 Performance:
- Work-stealing pool: 67%+ steal success rate
- Parallel speedups: Up to 5.24x on computational workloads
- Clean QoS integration with macOS scheduler
- Zero performance regressions
🔧 Technical Highlights:
- Replace deprecated thread affinity with pthread_set_qos_class_self_np()
- Architecture-aware testing (Apple Silicon L3 cache handling)
- Enhanced SIMD detection and runtime dispatch
- Improved build system with better GTest integration
✅ Compatibility:
- macOS Intel/Apple Silicon optimized
- Linux x86_64/ARM64 with traditional pthread affinity
- Windows x64 with Windows affinity APIs
- Graceful fallbacks for other platforms
v0.2.2 - Fix build issues and resolve AVX2 SIMD race conditions in Exponential distribution
- Fix AVX2 code compilation errors and SIMD feature conflicts
- Resolve race conditions in Exponential distribution SIMD implementations
- Add proper thread safety for SIMD dispatch in exponential calculations
- Mark unused test variables with [[maybe_unused]] to eliminate warnings
- Improve SIMD runtime detection and fallback mechanisms
- Enhanced numerical stability in vectorized exponential computations
- Update build system to handle SIMD feature detection more reliably
- All tests passing with clean warning-free build
v0.2.1 - Fix SIMD detection missing from repository
This patch release fixes critical CMake configuration issues when cloning the repository by:
- Adding missing cmake/SIMDDetection.cmake file with detect_simd_features() function
- Fixing overly broad .gitignore rule that excluded important cmake modules
- Ensuring SIMD detection system works properly on fresh clones
This resolves build failures for users cloning the repository for the first time.
v0.2.0 - Exponential Distribution and Code Consolidation in Tests/Examples
This release represents increased maturation of the libstats library with:
🎯 Production-Ready Examples:
- Clear, meaningful file names (statistical_validation_demo, parallel_execution_demo)
- Comprehensive SIMD and parallel performance benchmarking
- All examples build and run correctly
- Professional documentation alignment
⚡ Enhanced Performance:
- Complete exponential distribution implementation with SIMD support
- Advanced parallel execution demonstrations
- Comprehensive mathematical validation tools
- Production-grade benchmarking capabilities
🛠️ Code Quality:
- Removed obsolete documentation and test files
- Consolidated test architecture with clear naming
- Enhanced error handling and parameter validation
- Version consistency across all components
📚 Documentation Excellence:
- README accurately reflects actual functionality
- Examples properly categorized (Core Usage vs Performance)
- Clear build instructions and usage patterns
- Professional presentation throughout