natix.SimilaritySearch.KnrSeqSearchFootrule.GetCandidates C# (CSharp) Метод

GetCandidates() защищенный Метод

protected GetCandidates ( int qseq, int maxcand ) : IResult
qseq int
maxcand int
Результат IResult
        protected override IResult GetCandidates(int[] qseq, int maxcand)
        {
            var len_qseq = qseq.Length;
            var C = new Dictionary<int,int> ();
            // var omega = this.IndexRefs.MainSpace.Count >> 1;
            var omega = len_qseq << 5;
            // var omega = qseq.Count;
            // var omega = 0;
            for (int i = 0; i < len_qseq; ++i) {
                var rs = this.SEQ.Unravel (qseq [i]);
                var count1 = rs.Count1;
                for (int s = 1; s <= count1; ++s) {
                    var pos = rs.Select1 (s);
                    var docid = pos / this.K;
                    var internal_position = pos - docid * this.K; // pos % this.K
                    int dist;
                    if (!C.TryGetValue (docid, out dist)) {
                        dist = len_qseq * omega;
                    }
                    var d = Math.Abs (i - internal_position);
                    C [docid] = dist + d - omega;
                }
            }
            var res = new ResultTies (Math.Abs (maxcand));
            foreach (var pair in C) {
                res.Push (pair.Key, pair.Value);
            }

            return res;
        }