gnu.math

Class BitOps


public class BitOps
extends java.lang.Object

Implements logical (bit-wise) operations on infinite-precision integers. There are no BitOps object - all the functions here are static. The semantics used are the same as for Common Lisp.

Method Summary

static IntNum
and(IntNum x, IntNum y)
Return the logical (bit-wise) "and" of two IntNums.
static IntNum
and(IntNum x, int y)
Return the logical (bit-wise) "and" of an IntNum and an int.
static int
bitCount(IntNum x)
Count one bits in an IntNum.
static int
bitCount(int i)
static int
bitCount(int[] x, int len)
static IntNum
bitOp(int op, IntNum x, IntNum y)
Do one the the 16 possible bit-wise operations of two IntNums.
static boolean
bitValue(IntNum x, int bitno)
Return the value of a specified bit in an IntNum.
static IntNum
extract(IntNum x, int startBit, int endBit)
Extract a bit-field as an unsigned integer.
static IntNum
ior(IntNum x, IntNum y)
Return the logical (bit-wise) "(inclusive) or" of two IntNums.
static IntNum
not(IntNum x)
Return the logical (bit-wise) negation of an IntNum.
static void
setBitOp(IntNum result, int op, IntNum x, IntNum y)
Do one the the 16 possible bit-wise operations of two IntNums.
static int
swappedOp(int op)
Return the boolean opcode (for bitOp) for swapped operands.
static boolean
test(IntNum x, IntNum y)
Return true iff two IntNums have any true bits in common.
static boolean
test(IntNum x, int y)
Return true iff an IntNum and an int have any true bits in common.
static IntNum
xor(IntNum x, IntNum y)
Return the logical (bit-wise) "exclusive or" of two IntNums.

Method Details

and

public static IntNum and(IntNum x,
                         IntNum y)
Return the logical (bit-wise) "and" of two IntNums.

and

public static IntNum and(IntNum x,
                         int y)
Return the logical (bit-wise) "and" of an IntNum and an int.

bitCount

public static int bitCount(IntNum x)
Count one bits in an IntNum. If argument is negative, count zero bits instead.

bitCount

public static int bitCount(int i)

bitCount

public static int bitCount(int[] x,
                           int len)

bitOp

public static IntNum bitOp(int op,
                           IntNum x,
                           IntNum y)
Do one the the 16 possible bit-wise operations of two IntNums.

bitValue

public static boolean bitValue(IntNum x,
                               int bitno)
Return the value of a specified bit in an IntNum.

extract

public static IntNum extract(IntNum x,
                             int startBit,
                             int endBit)
Extract a bit-field as an unsigned integer.

ior

public static IntNum ior(IntNum x,
                         IntNum y)
Return the logical (bit-wise) "(inclusive) or" of two IntNums.

not

public static IntNum not(IntNum x)
Return the logical (bit-wise) negation of an IntNum.

setBitOp

public static void setBitOp(IntNum result,
                            int op,
                            IntNum x,
                            IntNum y)
Do one the the 16 possible bit-wise operations of two IntNums.

swappedOp

public static int swappedOp(int op)
Return the boolean opcode (for bitOp) for swapped operands. I.e. bitOp (swappedOp(op), x, y) == bitOp (op, y, x).

test

public static boolean test(IntNum x,
                           IntNum y)
Return true iff two IntNums have any true bits in common.

test

public static boolean test(IntNum x,
                           int y)
Return true iff an IntNum and an int have any true bits in common.

xor

public static IntNum xor(IntNum x,
                         IntNum y)
Return the logical (bit-wise) "exclusive or" of two IntNums.