Extend interface with masking operations.
Issue #35
new
As for other interfaces, masks should also implement MFI functions with masking operand. An example where it causes problems comes from VecGeom:
VECGEOM_FORCE_INLINE void MaskedAssign(UmesimdBool_v const &cond, UmesimdBool_v const &thenval, UmesimdBool_v const output) { //output->assign(cond, thenval); UmesimdBool_v out_v; out_v.assign(output); UmesimdBool_v t0 = cond.land(thenval); UmesimdBool_v t1 = (!cond).land(out_v); UmesimdBool_v t2 = t0 || t1; output->assign(t2); }
here the overloaded 'MaskedAssign' operation tries to perform blending between two masks.
If usage model comes from the users it should be provided automatically.