public double GetValue(Point2D p)
 {
     if (AggregateType == AggregateType.Sum)
     {
         return(Factors.Sum(x => x.Formula(p)));
     }
     else if (AggregateType == AggregateType.Min)
     {
         return(Factors.Min0(x => x.Formula(p)));
     }
     else if (AggregateType == AggregateType.Max)
     {
         return(Factors.Max0(x => x.Formula(p)));
     }
     else
     {
         return(0);
     }
 }