Skip to content

Releases: OldCrow/libstats

v0.6.2 - Windows Support & Cross-Platform Stability

29 Jul 23:15

Choose a tag to compare

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

28 Jul 00:03

Choose a tag to compare

🏗️ 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

27 Jul 03:10

Choose a tag to compare

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

24 Jul 04:36

Choose a tag to compare

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

22 Jul 01:36

Choose a tag to compare

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

21 Jul 23:55

Choose a tag to compare

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

21 Jul 05:44

Choose a tag to compare

🚀 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

21 Jul 02:39

Choose a tag to compare

  • 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

21 Jul 00:53

Choose a tag to compare

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

20 Jul 23:40

Choose a tag to compare

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