Skip to content

Instantly share code, notes, and snippets.

@lemire
Last active February 25, 2019 22:13
Show Gist options
  • Save lemire/40c90e01086b01c18f5ce35e2fe9b8bf to your computer and use it in GitHub Desktop.
Save lemire/40c90e01086b01c18f5ce35e2fe9b8bf to your computer and use it in GitHub Desktop.
Some RoaringBitmap issue
import org.roaringbitmap.*;
import java.io.*;
import java.util.*;
public class Basic {
public static void main(String[] args) throws IOException {
DataInputStream in;
in = new DataInputStream(new FileInputStream(args[0]));
RoaringBitmap rr1 = new RoaringBitmap();
rr1.deserialize(in);
long cardinality1 = rr1.getLongCardinality();
System.out.println("cardinality1 : "+cardinality1);
RoaringBitmap rr2 = new RoaringBitmap();
in = new DataInputStream(new FileInputStream(args[1]));
rr2.deserialize(in);
long cardinality2 = rr2.getLongCardinality();
System.out.println("cardinality2 : "+cardinality2);
final long count[] = new long[2];
rr1.forEach(new IntConsumer() {
@Override
public void accept(int value) {
count[0] ++;
}
});
rr2.forEach(new IntConsumer() {
@Override
public void accept(int value) {
count[1] ++;
}
});
System.out.println("cardinality1 (foreach): "+count[0]);
System.out.println("cardinality2 (foreach): "+count[1]);
System.out.println("rr1 : "+rr1.first()+" "+rr1.last());
System.out.println("rr2 : "+rr2.first()+" "+rr2.last());
RoaringBitmap rrand = RoaringBitmap.and(rr1,rr2);
RoaringBitmap rror = RoaringBitmap.or(rr1,rr2);
RoaringBitmap rrxor = RoaringBitmap.xor(rr1,rr2);
RoaringBitmap rrandnot = RoaringBitmap.andNot(rr1,rr2);
System.out.println("rrandnot : "+rrandnot.first()+" "+rrandnot.last());
System.out.println("cardinality and : "+rrand.getLongCardinality());
System.out.println("cardinality or : "+rror.getLongCardinality());
System.out.println("cardinality xor : "+rrxor.getLongCardinality());
System.out.println("cardinality andnot : "+rrandnot.getLongCardinality());
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment