natix.SimilaritySearch.DynamicSequential.DropCloseToMean C# (CSharp) Method

DropCloseToMean() public method

public DropCloseToMean ( double near_radius, double far_radius, IResult near, IResult far, List items ) : void
near_radius double
far_radius double
near IResult
far IResult
items List
return void
        public void DropCloseToMean(double near_radius, double far_radius, IResult near, IResult far, List<ItemPair> items)
        {
            foreach (var item in items) {
                if (item.Dist <= near_radius) {
                    near.Push (item.ObjID, item.Dist);
                } else if (item.Dist >= far_radius) {
                    far.Push (item.ObjID, item.Dist);
                }
            }
        }

Usage Example

コード例 #1
0
 protected override void SearchExtremes(DynamicSequential idx, List<ItemPair> items, object piv, double alpha_stddev, int min_bs, out IResult near, out IResult far, out DynamicSequential.Stats stats)
 {
     items.Clear();
     idx.ComputeDistances (piv, items, out stats);
     var radius = stats.stddev * alpha_stddev;
     near = new Result(idx.Count);
     far = new Result(idx.Count);
     idx.DropCloseToMean(stats.min + radius, stats.max - radius, near, far, items);
     if (near.Count == 0 && far.Count == 0 & min_bs > 0) {
         near = new Result (min_bs);
         far = new Result (min_bs);
         idx.AppendKExtremes(near, far, items);
     }
 }