Skip to content

Extend interface with masking operations. #33

@edanor

Description

@edanor

Originally reported by: edanor (Bitbucket: edanor, GitHub: edanor)


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.


Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions