Exemplo n.º 1
0
 public override void AssertEquality(IRankSelect64 obj)
 {
     var other = obj as SArray64;
     if (this.N != other.N) {
         throw new ArgumentException (String.Format ("SArray.N inequality. this.N {0}, other.N: {1}",
                 this.N, other.N));
     }
     this.H.AssertEquality (other.H);
     Assertions.AssertIList<int> (this.L, other.L, "SArray.L");
 }
Exemplo n.º 2
0
 public override void AssertEquality(IRankSelect64 _other)
 {
     DiffSetRL2_64 other = _other as DiffSetRL2_64;
     if (this.N != other.N) {
         throw new ArgumentException ("DiffSetRL2_64 N difference");
     }
     if (this.M != other.M) {
         throw new ArgumentException ("DiffSetRL2_64 M difference");
     }
     if (this.B != other.B) {
         throw new ArgumentException ("DiffSetRL2_64 B difference");
     }
     Assertions.AssertIList<long> (this.Samples, other.Samples, "DiffSetRL2_64 Samples difference");
     Assertions.AssertIList<long> (this.Offsets, other.Offsets, "DiffSetRL2_64 Offsets difference");
     this.Stream.AssertEquality (other.Stream);
 }
Exemplo n.º 3
0
 public RankSelectFromRS64(IRankSelect64 rs)
 {
     this.rs = rs;
 }
Exemplo n.º 4
0
 public abstract void AssertEquality(IRankSelect64 other);
Exemplo n.º 5
0
        public void Build(IList<int> seq, int sigma, int t = 16, BitmapFromList64 bitmap_builder = null)
        {
            this.sigma = sigma;
            long n = seq.Count;
            var L = new long[n];

            var counters = new int[sigma + 1];
            // counters.Add (0, sigma); <- if ListIFS
            for (int i = 0; i < n; ++i) {
                var sym = seq [i];
                counters [sym + 1] += 1;
            }
            for (int i = 1; i <= sigma; ++i) {
                counters [i] += counters [i - 1];
            }
            for (int i = 0; i < n; ++i) {
                var sym = seq [i];
                long long_sym = n * ((long)sym) + i;
                L [counters [sym]] = long_sym;
                counters [sym] += 1;
            }
            counters = null;
            /**** slow construction ****/
            /*****
            for (int i = 0; i < n; ++i) {
                long s = seq [i];
                L [i] = n * s + i;
                //L.Add (n * s + i);
            }
            Array.Sort (L);
            *****/
            if (bitmap_builder == null) {
                bitmap_builder = BitmapBuilders.GetSArray64 ();
            }
            this.xl_bitmap = bitmap_builder (L, n * sigma);
            // now building the permutation for access
            var p = new ListGen_MRRR ();
            p.Build (this.GetNotIdxPERM (), t, null);
            this.perm = p;
        }
Exemplo n.º 6
0
 public void Load(BinaryReader Input)
 {
     this.sigma = Input.ReadInt32 ();
     this.xl_bitmap = RankSelect64GenericIO.Load (Input);
     var p = new ListGen_MRRR ();
     p.Load (Input);
     p.SetPERM (this.GetNotIdxPERM ());
     this.perm = p;
 }