long complicated poll, you will not be paid for this
For a vector of booleans representing a disjunction, considering these 3 binary operations:
1. Reducing conjunction. Reduces both operands and return the conjunction as a single boolean. Trivial, logical and sane.
2. Expanding conjunction. Returns a matrix representing a disjunction of conjunctions of all pairings of element from each operand (kind of a halfway symbolic computation). Somewhat complicated (essentially matrix multiplication), but still logical, if a bit insane.
3. Element-wise conjunction. Returns a vector containing the conjunction of corresponding elements of two vectors. This vector no longer represents a disjunction unless explicitly converted to original type. Kind of a masking operation. Illogical and insane.
Which operator would you prefer for each?
unsightly happenings
Here you go voter:
https://notabug.org/namark/libsimple_geom/src/master/unit_tests/bool_algebra.cpp
From the depths of the metaprogramming abyss, where compiler bugs dwell, through relentless perversion emerges an abomination of your choosing. If this all goes horribly wrong, I will blame you, even though you were not paid for this.