19 lines
776 B
TypeScript
19 lines
776 B
TypeScript
/**
|
|
* Pairwise filtering using bit masks.
|
|
*
|
|
* This filtering method is based on two 16-bit values:
|
|
* - The interaction groups (the 16 left-most bits of `self.0`).
|
|
* - The interaction mask (the 16 right-most bits of `self.0`).
|
|
*
|
|
* An interaction is allowed between two filters `a` and `b` two conditions
|
|
* are met simultaneously:
|
|
* - The interaction groups of `a` has at least one bit set to `1` in common with the interaction mask of `b`.
|
|
* - The interaction groups of `b` has at least one bit set to `1` in common with the interaction mask of `a`.
|
|
* In other words, interactions are allowed between two filter iff. the following condition is met:
|
|
*
|
|
* ```
|
|
* ((a >> 16) & b) != 0 && ((b >> 16) & a) != 0
|
|
* ```
|
|
*/
|
|
export declare type InteractionGroups = number;
|