natix.CompactDS.WTM.Select C# (CSharp) Method

Select() public method

public Select ( int symbol, int rank ) : int
symbol int
rank int
return int
        public int Select(int symbol, int rank)
        {
            var symnode = this.Alphabet [symbol];
            //if (symnode == null || symnode.Count < rank) {
            if (symnode == null || rank == 0) {
                return -1;
            }
            WTM_Inner node = symnode.Parent as WTM_Inner;
            var ministring = this.SymbolCoder.Encode (symbol, null);
            ministring.Reverse();
            var mlen = ministring.Count;
            for (int i = 0; i < mlen; i++) {
                var code = ministring[i];
                rank = node.SEQ.Select(code.symbol, rank) + 1;
                node = node.Parent as WTM_Inner;
            }
            return rank - 1;
        }