Discrete optimization#32
Merged
Merged
Conversation
Enhances the benchmarking suite to provide statistically rigorous and scientifically valid performance comparisons between DBSet and Boost.ICL. Key changes: - Added comprehensive correctness validation; all DBSet operations are now verified against Boost.ICL to ensure 'faster' is also 'correct'. - Fixed temporal state leakage in Serial Update benchmarks by ensuring set state is reset within the measurement loop. - Implemented interleaved, non-overlapping interval generation for scaling analysis, ensuring that normalized set complexity scales linearly with N. - Added ablation benchmarks for specialized MTL operations: checkAndClip and unionIntervalFromRight. - Parameterized input sizes (N=100 to 10,000) to demonstrate performance scaling and memory trends.
- Add binary_feeder.hpp and binary_feeder.cpp - Integrate binary feeder into main.cpp to support --binary argument - Add test coverage for dense and discrete binary feeders in test_json_input.cpp - Update CMakeLists.txt to compile the new binary feeder
…ble slowdown. Instead, the user of the code can decide what to do with the outputs, that are given as a reference.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This pull request adds support for streaming binary input files into property monitors and refactors the feeder interface for both JSON and binary data sources. The most significant changes are the introduction of new binary feeders, a redesign of the feeder API to return internal result vectors directly, and updates to benchmarks and code formatting for consistency.
Binary input support:
binary_feeder.cppimplementation and correspondingbinary_feeder.hppheader, introducingDenseBinaryFeederandDiscreteBinaryFeederclasses for streaming.row.binfiles into monitors. These feeders automatically finalize monitors with a fixed proposition order and expose a unified interface for advancing time steps and retrieving results. [1] [2] [3]Feeder API redesign and improvements:
json_feeder.hppandjson_feeder.cppso thatfeed_nextnow returns a pointer to the internal result vector (valid until the next call), instead of filling an output parameter and returning a boolean. This change also applies to the new binary feeders, ensuring a consistent interface across data sources. [1] [2] [3] [4] [5] [6]Benchmark and code formatting updates:
benchmark_multi_property.cppto use the new feeder API, simplified the logic for advancing feeders, and improved formatting for readability and consistency. [1] [2] [3] [4] [5] [6] [7]General code cleanup:
These changes collectively make the codebase more extensible for new input formats, simplify the feeder interface, and improve code maintainability.