using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace csmic.CodedFunctions { /// /// A coded implementation of the log function. /// class CF_Log : ICodedFunction { #region ICodedFunction Members /// /// Expects 2 arguments. /// public int NumExpectedArguments { get { return 2; } } /// /// The name of the function. /// public string FunctionName { get { return "log"; } } /// /// Executes a code block. /// /// The arguments used in the code block. /// The log of the first argument to the base of the second argument. public decimal Execute(params decimal[] args) { decimal output = 0; if (args.Length == this.NumExpectedArguments) { decimal input = args[0]; decimal logBase = args[1]; try { output = (decimal)Math.Log((double)input, (double)logBase); } catch { output = decimal.MinValue; } } return output; } #endregion } }