queelius/limes: v3.1.0 — Codebase Simplification

Read full text
Authors: Alex Towell
Cited by: 0

Abstract

Remove ~1,300 lines of dead code, redundant comments, unused concepts, and duplicated logic across all layers while preserving full API compatibility and test coverage (486 tests pass). Highlights Dead code removal Removed 12 unused C++20 concepts across algorithms/concepts and methods/concepts Removed unused type traits, forward declarations, and speculative abstractions Removed unused includes ( , , , , etc.) Duplication elimination Extracted detail::tag_name () — maps function tags to string names (replaced 34-line if-constexpr chain) Extracted detail::make_integrand_fn () — consolidates triplicated integrand lambda construction Extracted detail::mc_box_sampler — shared Monte Carlo RNG and sampling logic Extracted detail::make_extended_args() — shared argument tuple construction for sum/product Extracted combine_results() — deduplicated product integral error propagation Bug fixes Fixed incorrect #include in conditional.hpp and sum_product.hpp Replaced unimplementable gauss_legendre primary template with static_assert listing supported N values Fixed MSVC AVX2 flag to respect ENABLE_AVX2 option (was unconditional) Removed redundant global CMAKE_CXX_STANDARD (already set via target_compile_features) Test improvements Extracted limes_add_test() CMake function (108 → 54 LOC) Made test RNG deterministic with fixed seed Modernized: std::numbers::pi instead of M_PI Removed dead test assertions and redundant concept tests Documentation Rewrote ARCHITECTURE.md to match actual v3.x codebase (was outdated from v1.x) Fixed README.md CMake version requirement (3.16 → 3.20) Updated CLAUDE.md with current concept inventory and detail namespace Stats 38 files changed, 698 insertions, 1,965 deletions (net −1,267 lines) 486 tests pass — zero functionality changes

Fields of Study & Subjects

Mathematical and Computational Methods Mathematical Approximation and Integration Logic programming and type systems

Publication details

Journal / source
Zenodo (CERN European Organization for Nuclear Research)
Publication date
30 January 2026