On 12/12/14 2:17 PM, H. S. Teoh via Digitalmars-d-learn wrote:
On Fri, Dec 12, 2014 at 11:13:38AM -0500, Steven Schveighoffer via 
Digitalmars-d-learn wrote:
On 12/12/14 8:39 AM, Trollgeir wrote:
http://dlang.org/phobos/std_bitmanip.html

Does anyone know how to bit-shift a BitArray?

I'm trying to make spikes in a neural network travel along the
bits as they have various lengths.

That is a surprising omission from a bit-oriented type...

You also cannot opSlice a BitArray. Nice for enhancement requests, if
you want to add them to the issue tracker.
[...]

I've started working on an implementation of this... but it's not very
clear what the correct semantics should be. For example, if my starting
BitArray b is 1101, say, what should be the result after b>>=1? Should
it be 0110, 110, or 01101?

0110

In other words, I would assume the same semantics as an unsigned int.

In other other words, it's like each bit moves one to the right, and the bit that has no source gets a 0.

It may be useful to add some other functions, such as roll, which would move bits that fall off the end back onto the top.

And maybe expose shift as a function, which allows you to specify the bit value (or maybe range of bits) that should be shifted in from the other side.

Note, I would not allow just opBinary, only opBinaryAssign. No reason to construct temporary BitArrays.

-Steve

Reply via email to