Skip to content

Allow masks to be combined with | and& - #267

Merged
jim22k merged 3 commits into
python-graphblas:mainfrom
eriknw:mask_and_or
Jul 7, 2022
Merged

jim22k merged 3 commits into
python-graphblas:mainfrom
eriknw:mask_and_or

Conversation

@eriknw

@eriknw eriknw commented Jul 4, 2022

Copy link
Copy Markdown
Member

Closes #234

These recipes are much faster than the equivalent recipes in the docstrings, but they still aren't hyper-optimized (they're only semi-optimized). As with .new, this is structured so that any recipe can be updated if need arises.

Currently, all recipes return structural masks that may be complemented. It's not required for them to be structural--perhaps it would be better if some were value masks.

@eriknw
eriknw requested a review from jim22k July 4, 2022 19:17
@coveralls

coveralls commented Jul 5, 2022 •

Copy link
Copy Markdown

Coverage Status

Coverage increased (+0.005%) to 99.341% when pulling 7cd2fdd on eriknw:mask_and_or into ca75633 on python-graphblas:main.

@eriknw eriknw mentioned this pull request Jul 6, 2022
Comment thread graphblas/mask.py Resolved

@jim22k jim22k left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The code all looks good, but the comments are technically wrong.

I think the recipe needs to be:

>>> val = Matrix(bool, nrows, ncols)
>>> val(mask1) << True
>>> val(mask2, replace=True) << val
>>> new_mask = val.S

The same recipe should be listed in the comments for `.new()` as well.

@eriknw

eriknw commented Jul 7, 2022

Copy link
Copy Markdown
Member Author

Updated docstrings. We came up with the same solution, which is a good sign.

@jim22k
jim22k merged commit ef4b1ca into python-graphblas:main Jul 7, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Advanced Notation

3 participants