private void decode( Bits bits, int length, int[] target ) { for ( int i = 0; i < length; i++ ) { target[i] = bits.getInt( bitsPerLabel ); } if ( target.length > length ) { // we have to mark the end here, since the target array is larger target[length] = -1; } }
public long getUnsignedInt() { return getInt( Integer.SIZE ) & 0xFFFFFFFFL; }
public int getInt() { return getInt( Integer.SIZE ); }
@Override public ArrayValue createArray( int length, Bits bits, int requiredBits ) { if ( length == 0 ) { return Values.EMPTY_INT_ARRAY; } final int[] result = new int[length]; for ( int i = 0; i < length; i++ ) { result[i] = bits.getInt( requiredBits ); } return Values.intArray( result ); }
@Override public ArrayValue createArray( int length, Bits bits, int requiredBits ) { if ( length == 0 ) { return Values.EMPTY_FLOAT_ARRAY; } final float[] result = new float[length]; for ( int i = 0; i < length; i++ ) { result[i] = Float.intBitsToFloat( bits.getInt( requiredBits ) ); } return Values.floatArray( result ); }
int length = client.fieldBits.getInt( bitsPerLabel ); int longsInUse = ((bitsPerLabel * (length + 1)) - 1) / Long.SIZE + 1; target = ensureCapacity( target, length ); client.labelBits.getInt( bitsPerLabel ); // first one ignored, since it's just the length decode( client.labelBits, length, target );
public static Value decode( Bits bits ) { // [][][ ,bbbb][bbll,llll][yyyy,tttt][kkkk,kkkk][kkkk,kkkk][kkkk,kkkk] bits.getInt( 24 ); // Get rid of key bits.getByte( 4 ); // Get rid of short array type int typeId = bits.getByte( 4 ); int arrayLength = bits.getByte(6); int requiredBits = bits.getByte( 6 ); /* * So, it can be the case that values require 64 bits to store. However, you cannot encode this * value with 6 bits. calculateRequiredBitsForArray never returns 0, because even for an array of * all 0s one bit is required for every value. So when writing, we let it overflow and write out * 0. When we are reading back, we just have to make sure that reading in 0 means 64. */ if ( requiredBits == 0 ) { requiredBits = 64; } ShortArray type = typeOf( (byte)typeId ); return type.createArray(arrayLength, bits, requiredBits); }
private void decode( Bits bits, int length, int[] target ) { for ( int i = 0; i < length; i++ ) { target[i] = bits.getInt( bitsPerLabel ); } if ( target.length > length ) { // we have to mark the end here, since the target array is larger target[length] = -1; } }
public int getInt() { return getInt( Integer.SIZE ); }
public long getUnsignedInt() { return getInt( Integer.SIZE ) & 0xFFFFFFFFL; }
@Override public ArrayValue createArray( int length, Bits bits, int requiredBits ) { if ( length == 0 ) { return Values.EMPTY_FLOAT_ARRAY; } final float[] result = new float[length]; for ( int i = 0; i < length; i++ ) { result[i] = Float.intBitsToFloat( bits.getInt( requiredBits ) ); } return Values.floatArray( result ); }
@Override public ArrayValue createArray( int length, Bits bits, int requiredBits ) { if ( length == 0 ) { return Values.EMPTY_INT_ARRAY; } final int[] result = new int[length]; for ( int i = 0; i < length; i++ ) { result[i] = bits.getInt( requiredBits ); } return Values.intArray( result ); }
int length = client.fieldBits.getInt( bitsPerLabel ); int longsInUse = ((bitsPerLabel * (length + 1)) - 1) / Long.SIZE + 1; target = ensureCapacity( target, length ); client.labelBits.getInt( bitsPerLabel ); // first one ignored, since it's just the length decode( client.labelBits, length, target );
public static Value decode( Bits bits ) { // [][][ ,bbbb][bbll,llll][yyyy,tttt][kkkk,kkkk][kkkk,kkkk][kkkk,kkkk] bits.getInt( 24 ); // Get rid of key bits.getByte( 4 ); // Get rid of short array type int typeId = bits.getByte( 4 ); int arrayLength = bits.getByte(6); int requiredBits = bits.getByte( 6 ); /* * So, it can be the case that values require 64 bits to store. However, you cannot encode this * value with 6 bits. calculateRequiredBitsForArray never returns 0, because even for an array of * all 0s one bit is required for every value. So when writing, we let it overflow and write out * 0. When we are reading back, we just have to make sure that reading in 0 means 64. */ if ( requiredBits == 0 ) { requiredBits = 64; } ShortArray type = typeOf( (byte)typeId ); return type.createArray(arrayLength, bits, requiredBits); }