Skip to content
Snippets Groups Projects

Bit Flag Conditional

Merged Frederik Hennig requested to merge da15siwa/pystencils:bit_masks into master
All threads resolved!

This MR introduces a bit flag conditional that acts like a ternary operator for a single bit flag. It takes at least three arguments:

  • flag_bit specifies which bit of the mask is examined
  • mask_expression is an integer-typed expression which acts as a bit mask
  • then_expression is a SymPy expression of arbitrary type, and
  • optionally else_expression is a SymPy expression of arbitrary type

flag_cond examines the given bit of the given mask and takes the value of then_expression if the bit is set to 1. If not, it becomes either 0 or else_expression:

Three argument version:

    flag_cond(flag_bit, mask, expr) = expr if (flag_bit is set in mask) else 0

Four argument version:

    flag_cond(flag_bit, mask, expr_then, expr_else) = expr_then if (flag_bit is set in mask) else expr_else

Merge request reports

Pipeline #33099 passed

Pipeline passed for a7e4d03b on da15siwa:bit_masks

Approved by

Merged by Markus HolzerMarkus Holzer 4 years ago (Jul 4, 2021 2:57pm UTC)

Merge details

  • Changes merged into master with 2ed62a8e (commits were squashed).
  • Deleted the source branch.

Pipeline #33100 failed

Pipeline failed for 2ed62a8e on master

Test coverage 87.66% from 0 jobs

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
  • added 1 commit

    Compare with previous version

  • added 1 commit

    Compare with previous version

  • Frederik Hennig resolved all threads

    resolved all threads

  • Markus Holzer approved this merge request

    approved this merge request

  • merged

  • Markus Holzer mentioned in commit 2ed62a8e

    mentioned in commit 2ed62a8e

  • Please register or sign in to reply
    Loading