Skip to content

Conversation

OldCrow
Copy link
Owner

@OldCrow OldCrow commented Sep 2, 2025

No description provided.

…ructure

- Correct cache header location (core/distribution_cache.h, not cache/)
- Fix distribution header include paths to use ../common/
- Update Phase 2 metrics with accurate file counts
- Remove references to non-existent math_function_cache.h
- Update version to 2.1 and last updated date
- Renamed benchmark fields for clarity (baseline_time_us, thread_pool_time_us, etc.)
- Fixed all speedup calculations to be relative to baseline (SCALAR) instead of SIMD
- Updated column headers in benchmark output table for better readability
- Fixed Gamma enhanced test to properly measure SIMD_BATCH instead of SCALAR for SIMD timings
- Updated all enhanced test files to use new field names
- Results now correctly show speedups relative to scalar baseline implementation
… calculations

- Fixed all enhanced distribution tests to properly measure baseline (SCALAR) performance
- Corrected SIMD benchmarks to use SIMD_BATCH strategy instead of SCALAR
- Updated speedup calculations to be relative to baseline instead of SIMD time
- Fixed Gaussian test to properly save baseline results for correctness verification
- Ensured consistent benchmark structure across all distribution tests:
  * Baseline time using SCALAR strategy
  * SIMD time using SIMD_BATCH strategy
  * Thread pool, work stealing, and GPU accelerated times with proper fallbacks
  * All speedups calculated relative to baseline for meaningful comparisons

This ensures accurate performance benchmarking and verification across all distribution tests.
- Fixed all enhanced tests to properly test cache invalidation using setter methods
- All distributions now test cache invalidation by modifying parameters on the same instance
- Added comprehensive documentation on distribution mutability and setter methods
- Documented that all distributions are mutable with automatic cache invalidation

Changes:
- Exponential: Use setLambda() instead of creating new instance
- Poisson: Use setLambda() instead of creating new instance
- Uniform: Use setBounds() instead of creating new instance
- Discrete: Use setBounds() instead of creating new instance
- Gamma and Gaussian already used setter methods correctly

This ensures proper testing of cache invalidation functionality across all distributions.
- Handle special cases (NaN, infinity) before computing differences
- Skip difference calculation when both values are infinity with same sign
- Track valid comparisons separately for accurate average calculation
- Only include finite differences in statistics

This prevents inf-inf or nan-nan from producing invalid difference values
that would pollute the max_difference and avg_difference statistics.
The variable names 'large' and 'small' were conflicting with Windows macros
(commonly defined in Windows.h). Renamed to 'large_val' and 'small_val' to
avoid this collision and ensure cross-platform compatibility.
@OldCrow OldCrow merged commit bb84bf4 into main Sep 2, 2025
45 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant