feat: Ported Boolean 'And' block (refs #536, EPIC #161)
Port Boolean Blocks to GNU Radio 4
This PR ports Boolean operator blocks as part of EPIC #161.
Blocks included in this PR:
- [x]
And– ✅ implemented & tested
(Original implementation by Alex from PR #536; I fixed CI issues and tests.)
Additional blocks coming in separate commits (within this same PR):
- [ ]
AndConst– in progress - [ ]
Or– in progress - [ ]
Xor– in progress - [ ]
Not– in progress
Each block will have clearly separated commits for easier review and potential merge conflicts handling, as suggested by @mormj .
All CI checks (DCO, Restyled, SonarCloud) will be explicitly handled per commit.
@jsallay @mormj can u help me with these failing CI tests, i am using docker env . I added the above files and again did a clean build and also tested which was all successful build(96%) but after creating the PR and pushing it , most of the CI checks are failing, can u let me know why this issue is occurring and how can i solve it.
others are also welcomed to help me solve the issue!!
@KrxGu I started adding some blocks for boolean logic including unary math blocks a while ago (max, min, and, or, xor, not, negate). Unfortunately, I never had the time to completely finish it, and then forgot about it. Maybe you can use some of it or pick it up. See the relevant changes here:
https://github.com/fair-acc/gnuradio4/compare/main...eltos:gnuradio4:eltos-boolean-math-blocks
PS: I used MathOpMultiPortImpl template from #395 and then just
template<typename T>
using And = MathOpMultiPortImpl<T, std::bit_and<T>>;
@KrxGu do you plan to continue working on this PR? If yes, you may need to rebase against the latest main commit.
@KrxGu I started adding some blocks for boolean logic including unary math blocks a while ago (max, min, and, or, xor, not, negate). Unfortunately, I never had the time to completely finish it, and then forgot about it. Maybe you can use some of it or pick it up. See the relevant changes here:
main...eltos:gnuradio4:eltos-boolean-math-blocks
PS: I used
MathOpMultiPortImpltemplate from #395 and then justtemplate<typename T> using And = MathOpMultiPortImpl<T, std::bit_and<T>>;
Thank you for the heads up, tried to take inspirations for your work for few header files kindly refer to #595
@KrxGu - I assume this can be closed now since bitwise operators are included in #595 ?
@KrxGu - I assume this can be closed now since bitwise operators are included in #595 ?