Example #1
0
 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;
 }
Example #2
0
 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;
 }
Example #3
0
 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.";
     }
 }
Example #4
0
 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.";
     }
 }