public static float CalculateChebyshevNorm(IEnumerable <Utility> list)
        {
            var vlist = new List <float>();
            var wsum  = 0.0f;

            foreach (var u in list)
            {
                wsum += u.Weight;
            }

            if (CrMath.AeqZero(wsum))
            {
                return(0.0f);
            }

            foreach (var el in list)
            {
                vlist.Add(el.Weight / wsum * el.Value);
            }

            float res = -10.0f;

            foreach (var v in vlist)
            {
                if (v >= res)
                {
                    res = v;
                }
            }

            return(res);
        }
        public static float CalculateWeightedMetricsNorm(ICollection <Utility> list, float p = 2.0f)
        {
            var vlist = new List <float>();
            var wsum  = 0.0f;

            foreach (var u in list)
            {
                wsum += u.Weight;
            }

            if (CrMath.AeqZero(wsum))
            {
                return(0.0f);
            }

            foreach (var u in list)
            {
                var v = u.Weight / wsum * (float)Math.Pow(u.Value, p);
                vlist.Add(v);
            }

            var sum = 0.0f;

            foreach (var v in vlist)
            {
                sum += v;
            }

            return((float)Math.Pow(sum, 1 / p));
        }
Beispiel #3
0
        public void IsZeroTest(
            [Range(-2.0f, 2.0f, 0.5f)] float value,
            [Range(-2.0f, 2.0f, 0.5f)] float weight)
        {
            var cValue  = value.Clamp01();
            var cWeight = weight.Clamp01();
            var cResult = CrMath.AeqZero(cValue * cWeight);
            var util    = new Utility(value, weight);
            var aResult = util.IsZero;

            Assert.AreEqual(cResult, aResult);
        }
Beispiel #4
0
 public void AeqZeroDoubleTests(double a, bool expected)
 {
     Assert.That(CrMath.AeqZero(a), Is.EqualTo(expected));
 }
Beispiel #5
0
 public void AeqZeroFloatTests(float a, bool expected)
 {
     Assert.That(CrMath.AeqZero(a), Is.EqualTo(expected));
 }