Skip to content

Conversation

@bkietz
Copy link
Member

@bkietz bkietz commented Nov 20, 2020

  • "and", "or", "xor", "and_kleene", and "or_kleene" gain support for scalar arguments.
  • Added new functions "and_not" and "and_not_kleene"
  • repaired and simplified some null propagation logic

@github-actions
Copy link

@bkietz bkietz requested a review from pitrou November 21, 2020 17:01
Copy link
Member

@pitrou pitrou left a comment

Choose a reason for hiding this comment

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

Thank you. Here are some comments. Also, can you update the doc in docs/source/cpp/compute.rst?

Copy link
Member

Choose a reason for hiding this comment

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

Are you running almost the same tests twice here?

Copy link
Member Author

Choose a reason for hiding this comment

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

No, the second tests exclusively array, scalar and scalar, array which isn't covered by CheckScalarBinary

Copy link
Member

Choose a reason for hiding this comment

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

No, I mean you test a set of left / right inputs above, and another set of inputs here. Is there a reason to them separately? (just trying to understand if there is a particular reason...)

Copy link
Member Author

Choose a reason for hiding this comment

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

Ah, I see. Yes they're the same input values (the full truth table) just with a the different call signatures

Copy link
Member

Choose a reason for hiding this comment

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

Mention that heterogenous implementation ((scalar, array) and (array, scalar)) must broadcast the scalar value?

Copy link
Member Author

Choose a reason for hiding this comment

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

That's implicit in the contract of ScalarFunctions though

Copy link
Member

Choose a reason for hiding this comment

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

Would it be useful to add a SliceBitmap helper to bitmap_ops.h?

Copy link
Member Author

Choose a reason for hiding this comment

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

Sounds worthwhile but I'd prefer to do it in follow up

Copy link
Member

Choose a reason for hiding this comment

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

Hmm... Perhaps we can avoid a copy in most cases and just re-use the bitmap buffer?
(do we need a BitmapSliceOrCopy helper?)

Copy link
Member Author

Choose a reason for hiding this comment

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

Reusing the bitmap like this will make it harder to refactor Kleene kernels to support writing into slices, which (I'm guessing) would be the greater performance win. In any case, it can wait till follow up

@bkietz bkietz force-pushed the 10669-Support-Scalar-inputs-to- branch from e7dd732 to 8f8c327 Compare November 23, 2020 15:24
Copy link
Member

@pitrou pitrou left a comment

Choose a reason for hiding this comment

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

+1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants