gnu.math
Class BitOps

java.lang.Object
  extended by gnu.math.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, int y)
          Return the logical (bit-wise) "and" of an IntNum and an int.
static IntNum and(IntNum x, IntNum y)
          Return the logical (bit-wise) "and" of two IntNums.
static int bitCount(int i)
           
static int bitCount(int[] x, int len)
           
static int bitCount(IntNum x)
          Count one bits in an IntNum.
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, int y)
          Return true iff an IntNum and an int have any true bits in common.
static boolean test(IntNum x, IntNum y)
          Return true iff two IntNums have any true bits in common.
static IntNum xor(IntNum x, IntNum y)
          Return the logical (bit-wise) "exclusive or" of two IntNums.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

bitValue

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


test

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


test

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


and

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


and

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


ior

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


xor

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


not

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


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).


bitOp

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


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.


extract

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


bitCount

public static int bitCount(int i)

bitCount

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

bitCount

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