Last active
February 25, 2019 22:13
-
-
Save lemire/40c90e01086b01c18f5ce35e2fe9b8bf to your computer and use it in GitHub Desktop.
Some RoaringBitmap issue
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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