natix.CompactDS.DiffSet.BackendSelect1 C# (CSharp) Method

BackendSelect1() private method

Unlocked Select1 useful
private BackendSelect1 ( int rank, BitStreamCtx ctx ) : int
rank int
ctx BitStreamCtx
return int
        int BackendSelect1(int rank, BitStreamCtx ctx)
        {
            if (rank < 1) {
                return -1;
            }
            this.ResetReader();
            int start_index = (rank - 1) / this.B;
            int acc;
            int left;
            if (start_index == 0) {
                acc = AccStart;
                ctx.Seek (0);
                left = rank;
            } else {
                acc = this.Samples[start_index - 1];
                ctx.Seek (this.Offsets[start_index - 1]);
                left = rank - start_index * this.B;
            }
            // int start_acc = acc;
            for (int i = 0; i < left; i++) {
                int read = this.ReadNext(ctx);
                acc += read;
            }
            return acc;
        }