Package 'vectorbitops'

Title: Vector Bitwise Operations
Description: A tool for fast, efficient bitwise operations along the elements within a vector. Provides such functionality for AND, OR and XOR, as well as infix operators for all of the binary bitwise operations.
Authors: Samuel Sapire [aut, cre, cph]
Maintainer: Samuel Sapire <[email protected]>
License: MIT + file LICENSE
Version: 1.1.2
Built: 2024-12-01 08:41:15 UTC
Source: CRAN

Help Index


Infix operators for bitwise operations.

Description

Basic infix wrapper around the base::bitw_OP_ operations.

Usage

a %|% b

a %&% b

a %^% b

a %<<% n

a %>>% n

Arguments

a, b

Integer vectors. Numerics are coerced to integers.

n

Non-negative integer vector of values up to 31.

Value

An integer vector of length of the longer of the arguments, or zero if one of the arguments is zero-length. NA input makes NA output.

⁠%|%⁠: A vector of pairwise ORed values.

⁠%&%⁠: A vector of pairwise ANDed values.

⁠%^%⁠: A vector of pairwise XORed values.

⁠%<<%⁠: A vector of the values on the LHS pairwise left-shifted by the RHS value.

⁠%>>%⁠: A vector of the values on the LHS pairwise right-shifted by the RHS value.

Examples

1 %|% 2
1 %&% 2
1 %^% 2
1 %<<% 2
8 %>>% 2

Bitwise Operations along a Vector

Description

Functions to apply the same bitwise operation sequentially down a vector of integers. A fast way to AND or OR everything together when a single value is required.

Usage

bit_vector_AND(vec)

bit_vector_OR(vec)

bit_vector_XOR(vec)

Arguments

vec

A vector of integers. Numeric vectors will be coerced to int.

Value

A single integer, the result of applying the operation in question along the vector. Input that cannot be coerced to int returns NA. An empty vector returns 0.

bit_vector_AND: A single integer, the result of ANDing each entry in the input vector together.

bit_vector_OR: A single integer, the result of ORing each entry in the input vector together.

bit_vector_XOR: A single integer, the result of XORing each entry in the input vector together.

Examples

bit_vector_AND(c(1,3,5,7,9))
bit_vector_OR(c(1,2,4,8,16))
bit_vector_XOR(c(1,2,3,4,5))