public virtual ReturnVector executeFunction(Rete engine, Parameter[] params_Renamed) { System.Decimal bdval = new System.Decimal(0); bool eval = false; if (params_Renamed.Length == 1) { bdval = (System.Decimal) params_Renamed[0].getValue(engine, Constants.BIG_DECIMAL); double bdh = System.Decimal.ToDouble(bdval); if (bdh % 2 == 1) { eval = true; } } DefaultReturnVector ret = new DefaultReturnVector(); DefaultReturnValue rv = new DefaultReturnValue(Constants.BOOLEAN_OBJECT, eval); ret.addReturnValue(rv); return ret; }
public virtual ReturnVector executeFunction(Rete engine, Parameter[] params_Renamed) { System.Decimal bdval = new System.Decimal(0); if (params_Renamed != null) { if (params_Renamed[0] is ValueParam) { bdval = params_Renamed[0].BigDecimalValue; } else if (params_Renamed[0] is BoundParam) { BoundParam bp = (BoundParam) params_Renamed[0]; bdval = (System.Decimal) engine.getBinding(bp.VariableName); } else if (params_Renamed[0] is FunctionParam2) { FunctionParam2 n = (FunctionParam2) params_Renamed[0]; n.Engine = engine; n.lookUpFunction(); ReturnVector rval = (ReturnVector) n.Value; bdval = rval.firstReturnValue().BigDecimalValue; } for (int idx = 1; idx < params_Renamed.Length; idx++) { if (params_Renamed[idx] is ValueParam) { ValueParam n = (ValueParam) params_Renamed[idx]; System.Decimal bd = n.BigDecimalValue; bdval = System.Decimal.Multiply(bdval, bd); } else if (params_Renamed[idx] is FunctionParam2) { FunctionParam2 n = (FunctionParam2) params_Renamed[idx]; n.Engine = engine; n.lookUpFunction(); ReturnVector rval = (ReturnVector) n.Value; System.Decimal bd = rval.firstReturnValue().BigDecimalValue; if (idx == 0) { bdval = bd; } else { bdval = System.Decimal.Multiply(bdval, bd); } } } } DefaultReturnVector ret = new DefaultReturnVector(); DefaultReturnValue rv = new DefaultReturnValue(Constants.BIG_DECIMAL, bdval); ret.addReturnValue(rv); return ret; }
public virtual System.String toPPString(Parameter[] params_Renamed, int indents) { if (params_Renamed != null && params_Renamed.Length >= 0) { System.Text.StringBuilder buf = new System.Text.StringBuilder(); buf.Append("(oddp"); int idx = 0; if (params_Renamed[idx] is BoundParam) { BoundParam bp = (BoundParam) params_Renamed[idx]; buf.Append(" ?" + bp.VariableName); } else if (params_Renamed[idx] is ValueParam) { buf.Append(" " + params_Renamed[idx].StringValue); } else { buf.Append(" " + params_Renamed[idx].StringValue); } buf.Append(")"); return buf.ToString(); } else { return "(oddp <expression>)\n" + "Function description:\n" + "\tReturns true, if its only argument is odd."; } }
public virtual System.String toPPString(Parameter[] params_Renamed, int indents) { if (params_Renamed != null && params_Renamed.Length > 0) { System.Text.StringBuilder buf = new System.Text.StringBuilder(); buf.Append("(*"); for (int idx = 0; idx < params_Renamed.Length; idx++) { if (params_Renamed[idx] is BoundParam) { BoundParam bp = (BoundParam) params_Renamed[idx]; buf.Append(" ?" + bp.VariableName); } else if (params_Renamed[idx] is ValueParam) { buf.Append(" " + params_Renamed[idx].StringValue); } else { buf.Append(" " + params_Renamed[idx].StringValue); } } buf.Append(")"); return buf.ToString(); } else { return "(* (<literal> | <binding>)+)\n" + "Function description:\n" + "\tCalculates the product of its arguments."; } }