Oh, forgot to add a bit to those snippets to divide the bytes_per_element into bits, but yeah
> On Aug 11, 2015, at 2:55 PM, Michael McGlothlin <mike.mcgloth...@gmail.com> > wrote: > > SIMD types appear almost as limited in size as using numbers. Often I need to > manipulate thousands or millions of bits efficiently so fumbling around with > numbers is messy. > > I've looked at several implementations on npm but none seemed very mature or > standard. > > I guess it's philosophical as much as anything. In my mind the heart of > programming is bits and bytes so I find it odd that most programming > languages treat bits and bytes as strange uncles. In my mind all other data > types are derived from bits and bytes so it should be possible to easily > derive my own types this way or see the bits behind the types that are > built-in. > > In this case I'm implementing a bit index (which is something I use a lot) > for quickly finding relationships in complex data. Often I want to mess with > bits for working with specifics of file formats and network protocols. When > working with large numbers it's nice to not worry about limits. And I work > directly with bits when doing electronics. > > I'm not surprised that it's not supported but it seemed to go with the idea > of a byte array so I was hopeful. And it seems more generally useful than > things like SIMD types. > > Thanks, > Michael McGlothlin > Sent from my iPhone > >> On Aug 10, 2015, at 7:36 PM, Daniel Ehrenberg <little...@chromium.org> wrote: >> >> SIMD types have bitwise operators, but SIMD.js exposes just fixed-size >> vectors that are optimized to what hardware can optimize certain >> operations for. A future extension (the "long SIMD API") may operate >> on whole arrays. I wouldn't recommend using SIMD.js unless you really >> feel like you're taking advantage of the better performance, and the >> particular vector size works for your requirements. >> >> The point of SIMD is to expose higher-performance hardware features to >> users. You may want to use this for implementing bitwise operations in >> user code. However, if you don't need that, it may be enough for you >> to use existing operators & | ^ ~ etc, in a loop. A search on npm >> yields tons of bitarray libraries which probably do this already, >> though I haven't assessed how good they are. >> >> If you were getting at operator overloading in particular, operators >> are already well-defined on things like Uint8Array: Roughly speaking, >> they will call .valueOf() and, if that results in a Number they will >> do the operation on the underlying Number. There's no built-in valueOf >> method for that object, but you can always monkeypatch one in. Here's >> an example session in the V8 command-line shell: >> >> d8> Uint8ClampedArray.prototype.valueOf = function() { return 1 } >> function () { return 1 } >> d8> new Uint8ClampedArray([1, 2]) << 3 >> 8 >> >> The downside of doing anything beyond existing npm packages and >> changing the language is that it increases complexity. What is the >> upside you have in mind to building it into the language? >> >> Have fun! >> Dan >> >>> On Mon, Aug 10, 2015 at 4:35 PM, Isiah Meadows <isiahmead...@gmail.com> >>> wrote: >>> Do SIMD types solve your problem? >>> >>> https://github.com/tc39/ecmascript_simd >>> >>> >>> On Mon, Aug 10, 2015, 10:58 Michael McGlothlin <mike.mcgloth...@gmail.com> >>> wrote: >>>> >>>> Would there be a downside to extending Bitwise operators to work with >>>> typed arrays such as UInt8ClampedArray? To me it seems natural to want to >>>> perform bit operations on these. Or is there a better way to make a BitSet >>>> that I'm missing? >>>> >>>> >>>> Thanks, >>>> Michael McGlothlin >>>> Sent from my iPhone >>>> _______________________________________________ >>>> es-discuss mailing list >>>> es-discuss@mozilla.org >>>> https://mail.mozilla.org/listinfo/es-discuss >>> >>> >>> _______________________________________________ >>> es-discuss mailing list >>> es-discuss@mozilla.org >>> https://mail.mozilla.org/listinfo/es-discuss >>> > _______________________________________________ > es-discuss mailing list > es-discuss@mozilla.org > https://mail.mozilla.org/listinfo/es-discuss _______________________________________________ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss