@Override public void setOne() { set( true ); }
@Override public void setOne() { set( true ); }
@Override public void setZero() { set( false ); }
@Override public BitType compute(BitType input1, BitType input2, BitType output) { output.set(input1); output.xor(input2); return output; }
public BitType( final boolean value ) { this( ( NativeImg< ?, ? extends LongAccess > ) null ); dataAccess = new LongArray( 1 ); set( value ); }
@Override public void not() { set( !get() ); }
@Override public void not() { set( !get() ); }
@Override public BitType compute(BitType input1, BitType input2, BitType output) { output.set(input1); output.xor(input2); return output; }
@Override public void and( final BitType c ) { set( get() && c.get() ); }
@Override public void xor( final BitType c ) { set( get() ^ c.get() ); }
@Override public void xor( final BitType c ) { set( get() ^ c.get() ); }
@Override public BitType compute(BitType input1, BitType input2, BitType output) { boolean value = input1.get() && !input2.get(); output.set(value); return output; }
private RandomAccessible<BitType> constantImg(final int numDims) { final long[] dims = new long[numDims]; Arrays.fill(dims, 1); final ArrayImg<BitType, LongArray> bitImg = ArrayImgs.bits(dims); bitImg.setLinkedType(new BitType(bitImg)); bitImg.cursor().next().set(true); return Views.extendBorder(bitImg); }
public ArrayImg<BitType, LongArray> generateBitArrayTestImg( final boolean fill, final long... dims) { ArrayImg<BitType, LongArray> bits = ArrayImgs.bits(dims); if (fill) { MersenneTwisterFast betterRNG = new MersenneTwisterFast(0xf1eece); for (BitType b : bits) { b.set(betterRNG.nextBoolean()); } } return bits; }
private void generate2DImg(final RandomAccessibleInterval<BitType> in) { final RandomAccess<BitType> raIn = in.randomAccess(); final MersenneTwisterFast random = new MersenneTwisterFast(SEED); for (int x = 0; x < in.dimension(0); x++) { for (int y = 0; y < in.dimension(1); y++) { raIn.setPosition(new int[] { x, y }); raIn.get().set(random.nextBoolean()); } } }