Repository navigation
1.1
Full Changelog: 1.0.5...1.1
Release Notes: lds-gen-cpp v1.1
Overview
This release introduces a new low-discrepancy sequence generator, significant improvements to unit test coverage, build system enhancements for cross-platform compatibility, and extensive documentation updates.
🚀 New Features
1. Disk Sequence Generator
- Added a new
Diskclass for generating 2D points using a low-discrepancy disk sequence. - Useful for quasi-Monte Carlo methods in numerical integration and computer graphics.
- Implemented using two Van der Corput sequences for radial and angular components.
2. Enhanced Unit Tests
- Added comprehensive unit tests for:
- Van der Corput sequence (integer and floating-point variants)
- Halton sequence (multi-dimensional)
- Circle, Disk, Sphere, and Sphere3Hopf sequences
- Reseeding behavior and multiple
pop()calls
3. Integer Low-Discrepancy Sequences (ILDS)
- Added integer-based Van der Corput and Halton sequences for applications requiring integer outputs.
- Includes functions like
vdc_i()and classVdCorput_i.
🛠 Build & CI Improvements
1. Cross-Platform Build Fixes
- Added
-DCMAKE_POLICY_VERSION_MINIMUM=3.5to macOS and Windows CI workflows to ensure compatibility with modern CMake policies. - Updated
xmake.luato improve compatibility with Termux (Android) and other non-standard environments.
2. CMake Version Bump
- Project version updated from
1.0.5to1.1inCMakeLists.txt.
📚 Documentation
1. New Gemini Code-Aware Context Document
- Added
GEMINI.mdwith:- Project overview and key technologies
- Build and run instructions
- Code style and development conventions
- Directory structure explanation
2. Doxygen Support
- Enabled Doxygen for automated documentation generation.
🔧 Code Improvements
1. Optimized div_mod Functions
- Replaced previous
div_mod.hppwith optimized versions using bit-shifting and loop unrolling for divisions by 3 and 7. - Supports
uint8_tanduint16_twithconstexprandnoexcept.
2. Renamed Test File
- Renamed
test_div_mod.cpptotest_div_mod.tppfor consistency (no functional changes).
✅ Testing
- Added 57+ new test cases across all sequence generators.
- Improved test coverage for edge cases, reseeding, and multi-pop behavior.
- All tests pass on macOS, Windows, and Linux (via GitHub Actions).
👥 Contributors
- luk036 (primary contributor)
- Who-dev (build system fixes)
📦 Files Changed
.github/workflows/macos.yml.github/workflows/windows.ymlCMakeLists.txtGEMINI.md(new)include/ldsgen/div_mod.hpp(rewritten)include/ldsgen/lds.hpp(extended withDiskclass)test/source/test_div_mod.cpp→test_div_mod.tpptest/source/test_ilds.cpp(new tests)test/source/test_lds.cpp(extended tests)test/source/test_lds_n.cpp(extended tests)xmake.lua
📈 Summary
- 12 files changed
- 468 additions, 119 deletions
- 10 commits between
1.0.5and1.1
This release significantly improves the robustness, test coverage, and cross-platform compatibility of lds-gen-cpp, making it more reliable and easier to integrate into larger projects.