private double NormalizedProduct(IntVector fillPercentageRef, IntVector fillPercentage)
 {
     if (fillPercentageRef == null || fillPercentage == null || !fillPercentageRef.Any() || !fillPercentage.Any())
     {
         return -1;
     }
     return fillPercentageRef.NormalizedProduct(fillPercentage);
 }
        private int NeighborhoodDistance(IntVector fillPercentageRef, IntVector fillPercentage)
        {
            if (fillPercentageRef == null || fillPercentage == null || !fillPercentageRef.Any() || !fillPercentage.Any())
            {
                return -1;

            }
            if (fillPercentageRef.Count() != fillPercentage.Count())
            {
                return -1;
            }
            var total = 0;
            for (int pIndexor = 0; pIndexor < fillPercentageRef.Count(); pIndexor++)
            {
                var diff = Math.Abs(fillPercentageRef[pIndexor] - fillPercentage[pIndexor]);
                total += diff * diff;
            }
            return total;
        }