public class Bitfield
extends java.lang.Object
Modifier and Type | Class and Description |
---|---|
static class |
Bitfield.IterBit |
Modifier and Type | Field and Description |
---|---|
static long[][] |
unconditionalORlong |
static long[] |
unconditionalORlongElem |
Constructor and Description |
---|
Bitfield() |
Modifier and Type | Method and Description |
---|---|
static long[][] |
addNewWords(long[][] src,
long[][] or,
long[] allBitsArg)
Returns a new (copied) bit array with given src
with given new word of bits newBits for a set of bits;
sets unconditionally if all bits are existing in all second dimensions.
|
static boolean |
checkAllset(long[][] cond,
long[] allBitsArg)
Checks whether in all cond OR elements all bits of allBitsArg are set.
|
static boolean |
checkOrConditionMet(long[][] cond,
long[] requ)
Check whether all requested bits are set in one of the OR part of cond
|
static boolean |
equals(long[][] c1,
long[][] c2) |
static boolean |
equals(long[] c1,
long[] c2) |
static int |
getLastBit(long bitWord) |
static int |
getLastBit(long[] bitArray)
Returns the bit number of the last set bit in the given bitArray.
|
static long[][] |
mergeWords(long[][] src,
long[][] mask)
Returns a new (copied) bit array with given src
with given new word of bits newBits for a set of bits;
It creates anyway a new instance of all bits and copies also all inner words ( bit fields).
|
static long[] |
set_AddBits(long[] dst,
long[] or) |
static long[][] |
setBits(long[][] src,
long[] newBits)
Builds either a new long[][] with all given and newBits
whereby the newBits are merged in any index of the second dimension of src.
|
static long[] |
setBits(long[] src,
long[] newBits)
Builds either a new long[] with all given and newBits
or returns src if newBits == null or returns newBits if src==null.
|
static java.lang.CharSequence |
writeBits(int[] bits) |
static java.lang.CharSequence |
writeBits(int[][] bits) |
static java.lang.StringBuilder |
writeBits(long[] bits) |
static java.lang.StringBuilder |
writeBits(long[][] bits) |
static void |
writeBits(java.lang.StringBuilder sb,
int[] bits) |
static void |
writeBits(java.lang.StringBuilder sb,
int[][] bits) |
static void |
writeBits(java.lang.StringBuilder sb,
long[] bits) |
static void |
writeBits(java.lang.StringBuilder sb,
long[][] bits) |
static java.lang.CharSequence |
writeBitsHex(long[] bits) |
static void |
writeBitsHex(java.lang.StringBuilder sb,
long[] bits) |
static java.lang.CharSequence |
writeBitsObj(java.lang.Object obj) |
static void |
writeBitsObj(java.lang.StringBuilder sb,
java.lang.Object obj) |
public static long[][] unconditionalORlong
public static long[] unconditionalORlongElem
public static int getLastBit(long[] bitArray)
public static long[][] addNewWords(long[][] src, long[][] or, long[] allBitsArg)
src
- null or given bits.or
- null or new bits to add in second dimension. May have more second dimensions also.
Also if it is null, a new instance for return is built, see #set_addNewBits(long[][], long[][], long[])
.allBitsArg
- If all these bits are given in any of the second dimension, then set to unconditionalORlong
,
then the returned value is unconditionalORlong
.public static long[][] mergeWords(long[][] src, long[][] mask)
0x05 0x06
0x1
, evoutSrc2 has 0x4
and 0x8
, then 0x01 0x01 //zOrS = 1 0x04 0x08 //zOrS = 1 --------- 0x05 0x09 =>0x0dThe
0x0d = 1101
is the resulting condition on the prepO of this FBlock for further usage. Condition bit 0x02
is missing.
0x01, 0x02
, evoutSrc2 = 0x04 0x08
:0x01 0x02 0x01 0x02 //zOrS = 1 0x04 0x04 0x08 0x08 //zOrS = 2, fill 2 elements one after another with one evoutSrc-cond. ------------------- 0x05 0x06 0x09 0x0a =>0x0fThe resulting condition is 0x0f. If that are all condition bits used for this evinMdl, then no condition is stored on output.
0x01 0x02 0x01 0x02 //zOrS = 1 0x04 0x04 0x08 0x08 //zOrS = 2, fill 2 elements one after another with one evoutSrc-cond. 0x10 0x10 0x10 0x10 //zOrS = 4 ------------------- 0x15 0x16 0x19 0x1a =>0x1f
0x01 0x02 0x01 0x02 0x01 0x02 0x01 0x02 //zOrS = 1 0x04 0x04 0x08 0x08 0x04 0x04 0x08 0x08 //zOrS = 2, fill 2 elements one after another with one evoutSrc-cond. 0x10 0x10 0x10 0x10 0x20 0x20 0x20 0x20 //zOrS = 4 --------------------------------------- 0x15 0x16 0x19 0x1a 0x25 0x26 0x29 0x2a =>0x2f
Evout_FBcl#condBits
are for example [3][]
then this conditions are just similar handled as more evoutSrc to this evin Join.
It means the number of variants is already increased for this example by a factor of 3.
src
- null or given bits.or
- null or new bits to add in second dimension. May have more second dimensions also.
Also if it is null, a new instance for return is built, see #set_addNewBits(long[][], long[][], long[])
.allBitsArg
- If all these bits are given in any of the second dimension, then set to unconditionalORlong
,
then the returned value is unconditionalORlong
.public static long[] set_AddBits(long[] dst, long[] or)
public static long[] setBits(long[] src, long[] newBits)
src
- given bits, maybe nullnewBits
- new bits, maybe nullpublic static long[][] setBits(long[][] src, long[] newBits)
src
- given bits, maybe nullnewBits
- new bits, maybe nullpublic static int getLastBit(long bitWord)
public static boolean equals(long[][] c1, long[][] c2)
public static boolean equals(long[] c1, long[] c2)
public static boolean checkAllset(long[][] cond, long[] allBitsArg)
cond
- given conditionallBitsArg
- all condition bits which are possiblepublic static boolean checkOrConditionMet(long[][] cond, long[] requ)
requ
- given bits from #condBits
or from temporary such bits.cond
- requested bits, all should be set in givenpublic static void writeBits(java.lang.StringBuilder sb, long[] bits)
public static void writeBitsHex(java.lang.StringBuilder sb, long[] bits)
public static java.lang.CharSequence writeBitsHex(long[] bits)
public static void writeBits(java.lang.StringBuilder sb, long[][] bits)
public static java.lang.StringBuilder writeBits(long[] bits)
public static java.lang.StringBuilder writeBits(long[][] bits)
public static void writeBits(java.lang.StringBuilder sb, int[] bits)
public static void writeBits(java.lang.StringBuilder sb, int[][] bits)
public static java.lang.CharSequence writeBits(int[] bits)
public static java.lang.CharSequence writeBits(int[][] bits)
public static void writeBitsObj(java.lang.StringBuilder sb, java.lang.Object obj)
public static java.lang.CharSequence writeBitsObj(java.lang.Object obj)