Lucene.Net.Misc.SweetSpotSimilarity.ComputeLengthNorm C# (CSharp) Method

ComputeLengthNorm() public method

Implemented as: 1/sqrt( steepness * (Math.Abs(x-min) + Math.Abs(x-max) - (max-min)) + 1 ) .

This degrades to 1/Math.Sqrt(x) when min and max are both 1 and steepness is 0.5

:TODO: potential optimization is to just flat out return 1.0f if numTerms is between min and max.

public ComputeLengthNorm ( int numTerms ) : float
numTerms int
return float
        public virtual float ComputeLengthNorm(int numTerms)
        {
            int l = ln_min;
            int h = ln_max;
            float s = ln_steep;

            return (float)(1.0f / Math.Sqrt((s * (float)(Math.Abs(numTerms - l) + Math.Abs(numTerms - h) - (h - l))) + 1.0f));
        }