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
}
}