BitVector comparisons


Is there a simple and, most importantly, fast way to do AND, OR, NOT operatoions on complete BitVectors? I have two fairly long columns of BitVectors and I want to find the intersect between each vector in once column compared to every column in the other. I've tried using strings in the Java snippet node, but it's just too slow (on my 4 core i7 and 4GB o'RAM machine).



As an aside, are there any plans to have the Java snippet node accept BitSets as input? Being limited to Strings, Doubles, Integers and 2D arrays of each is a real pain.

You can use "Fingerprint Expander"  node  in the Erlwood nodes to separate out the Bitvectors into individual numerical columns if this helps at all.


Hello Rich,

we plan to add aggregation methods that can handle BitVectors for the next KNIME release. These methods can be used in all nodes that support them e.g. the GroupBy and Pivoting node.



Hi guys, has anything changed since the last post (2011) in terms of what can be done with BitVectors in Knime? I noticed that there is a BitVectorUtil class:

which does exactly what I want (bitwise OR on BitVectors), but are these methods exposed in Knime? I though it is possible using JavaSnippet node, but it seems that the BitVector input is recognized as a String variable. Conversion to integers is out of the question (my vectors are either 1024- or 2048-bit).



Hi Simon, 

I used the node and getting this error -> Execute failed: For input string: "."

My BitString size is 16,384 (power of 14). What do you think the error about?




BitVectors have now several aggregation methods. Have a look at the Column Aggregator node to find out more.