How mdikifahriza/adaptssp works
adaptssp is a command-line 1D subset-sum solver. Its main workflow reads and validates a .prb instance, dispatches to TER or Schroeppel–Shamir, verifies and writes a solution, and can optionally explore related solutions through zero-sum swaps. The graph also shows TER’s internal join stages and the optional GPU paths. Several dispatch and output calls fall in omitted source excerpts; those connections are supported by the README, while GPU implementation details are documented there rather than shown in sampled kernel source.
Main entry points: ter_solver.cpp TER pipeline · main.cpp Verified solution · ter_kernel.cu TER CUDA matching · ss_kernel.cu GPU quarter sorting
Components 18
CLI and results
- Instance parser
src/main.cpp - Solver dispatch
src/main.cpp - Verified solution
src/main.cpp - Solution files
src/main.cpp
TER solver
- TER pipeline
src/ter_solver.cpp - L3 base pools
src/ter_solver.cpp - L2 joins
src/ter_solver.cpp - L1 joins
src/ter_solver.cpp - TER CUDA matching
src/ter_kernel.cu
Schroeppel–Shamir
- SS cardinality search
src/main.cpp - Quarter sums
src/main.cpp - Heap pair search
src/main.cpp - GPU quarter sorting
src/ss_kernel.cu
Solution exploration
- Zero-sum swap BFS
src/zero_sum_swap.h
Shared internals
- Pair bookkeeping
src/pairs_tuple.hpp - Phase profiler
src/profiler.hpp
Other components
- CLI user
- Instance input
Connections 18
- CLI user → Instance parser: provides path
README.md - Instance input → Instance parser: is read by
src/main.cpp - Instance parser → Solver dispatch: supplies instance
README.md - Solver dispatch → TER pipeline: selects TER
README.md - Solver dispatch → SS cardinality search: selects SS
README.md - TER pipeline → L3 base pools: builds
README.md - L3 base pools → L2 joins: feeds
src/ter_solver.cpp - L2 joins → L1 joins: feeds
src/ter_solver.cpp - L1 joins → TER CUDA matching: uses optional GPU matching
README.md - SS cardinality search → Quarter sums: sets cardinalities
README.md - Quarter sums → Heap pair search: feeds sorted streams
README.md - SS cardinality search → GPU quarter sorting: optionally sorts quarters
README.md - Heap pair search → Pair bookkeeping: records matching pairs
src/main.cpp - TER pipeline → Verified solution: returns verified result
README.md - Heap pair search → Verified solution: returns verified result
README.md - Verified solution → Zero-sum swap BFS: seeds exploration
README.md - Verified solution → Solution files: writes bitstring
README.md - TER pipeline → Phase profiler: profiles phases
src/ter_solver.cpp