/// <summary>Executes the function on specified numbers.</summary> /// <param name="numbers">The numbers used in the function.</param> /// <returns>The result of the function execution.</returns> /// <exception cref="ArgumentNullException">When numbers is null.</exception> /// <exception cref="ArgumentException">When the length of numbers do not equal <see cref="ArgumentCount"/>.</exception> public object Execute(object[] numbers) { base.Validate(numbers); string function = char.ToUpperInvariant(_function[0]) + _function.Substring(1); switch (function) { case "Abs": return(DataMath.Abs(numbers[0])); case "Acos": return(DataMath.Acos(numbers[0])); case "Asin": return(DataMath.Asin(numbers[0])); case "Atan": return(DataMath.Atan(numbers[0])); case "Cos": return(DataMath.Cos(numbers[0])); case "Exp": return(DataMath.Exp(numbers[0])); case "Log": return(DataMath.Log(numbers[0])); case "Log10": return(DataMath.Log10(numbers[0])); case "Sin": return(DataMath.Sin(numbers[0])); case "Sqrt": return(DataMath.Sqrt(numbers[0])); case "Tan": return(DataMath.Tan(numbers[0])); default: return(null); } }