Refactor NSS and DNSS implementations for improved readability and modularity#1
Refactor NSS and DNSS implementations for improved readability and modularity#1eclipse0922 wants to merge 1 commit intomasterfrom
Conversation
eclipse0922
commented
Feb 8, 2026
- Rewrote legacy code into clean C++17 style.
- Added missing method implementations and input validation.
- Introduced options struct for configurable parameters in NSS and DNSS.
- Implemented CUDA support for DNSS rotational feature computation.
- Added new CMake configuration for building with or without CUDA.
- Updated README to reflect changes and provide build instructions.
- Added .gitignore to exclude build directories.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: b5a099582a
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| const int t_bucket = point_to_t_bucket[static_cast<std::size_t>(point_index)]; | ||
| const int r_bucket = point_to_r_bucket[static_cast<std::size_t>(point_index)]; | ||
| t_constraints[static_cast<std::size_t>(t_bucket)] += 1.0f; | ||
| r_constraints[static_cast<std::size_t>(r_bucket)] += rotational_returns[static_cast<std::size_t>(point_index)]; |
There was a problem hiding this comment.
Only update constraints for the selected bucket type
The refactor now increments both translational and rotational constraints whenever any point is selected. In the original DNSS logic, only the constraint for the bucket type that was actually selected was incremented. With the new behavior, selecting from a rotational bucket also penalizes its translational bucket (and vice versa), which changes the bucket ordering and can under-sample translation buckets whenever rotational selections dominate. This alters the DNSS sampling distribution relative to the intended algorithm.
Useful? React with 👍 / 👎.
…dularity - Rewrote legacy code into clean C++17 style. - Added missing method implementations and input validation. - Introduced options struct for configurable parameters in NSS and DNSS. - Implemented CUDA support for DNSS rotational feature computation. - Added new CMake configuration for building with or without CUDA. - Updated README to reflect changes and provide build instructions. - Added .gitignore to exclude build directories.
0c0b56e to
2d4f452
Compare
PR Reviewer Guide 🔍(Review updated until commit 2d4f452)Here are some key observations to aid the review process:
|
250d6f6 to
b70e666
Compare
|
Persistent review updated to latest commit b70e666 |
b70e666 to
2d4f452
Compare
|
Persistent review updated to latest commit 2d4f452 |