using EC.Helper.RabbitFunc.Expressions; using EC.Helper.RabbitFunc.Runtime; namespace EC.Helper.RabbitFunc.Extern; [ExternLambda] internal class LogLambdaExpression : SystemLambdaExpression { public LogLambdaExpression() : base(typeof(Math).GetMethod(nameof(Math.Log), new Type[] { typeof(double), typeof(double) }), "log", new BodyExpression(), Expression.Parameter(typeof(double), "x"), Expression.Parameter(typeof(double), "e")) { } private class BodyExpression : Expression { public override object Eval(RuntimeContext context) { var x = ParameterExpression.Access(context, "x"); var e = ParameterExpression.Access(context, "e"); return Math.Log(x, e); } } }