public virtual IExpr ConstantOptimization() { _ArgExpr = _ArgExpr.ConstantOptimization(); if (_ArgExpr.IsConstant()) { string o = _ArgExpr.EvaluateString(null, null); if (o == null) throw new Exception("Globals collection argument is null"); switch (o.ToLower()) { case "pagenumber": return new FunctionPageNumber(); case "totalpages": return new FunctionTotalPages(); case "executiontime": return new FunctionExecutionTime(); case "reportfolder": return new FunctionReportFolder(); case "reportname": return new FunctionReportName(); default: throw new Exception(string.Format("Globals collection argument '{0}' is unknown.", o)); } } return this; }
public IExpr ConstantOptimization() { _rhs = _rhs.ConstantOptimization(); if (_rhs.IsConstant()) { double d = EvaluateDouble(null, null); return new ConstantInteger((int) d); } return this; }
public IExpr ConstantOptimization() { _rhs = _rhs.ConstantOptimization(); if (_rhs.IsConstant()) { bool b = EvaluateBoolean(null, null); return new ConstantBoolean(b); } return this; }
public IExpr ConstantOptimization() { _rhs = _rhs.ConstantOptimization(); if (_rhs.IsConstant()) { decimal d = EvaluateDecimal(null, null); return new ConstantDecimal(d); } return this; }
public IExpr ConstantOptimization() { _Formatee = _Formatee.ConstantOptimization(); _Format = _Format.ConstantOptimization(); if (_Formatee.IsConstant() && _Format.IsConstant()) { string s = EvaluateString(null, null); return new ConstantString(s); } return this; }
public IExpr ConstantOptimization() { _If = _If.ConstantOptimization(); _IfTrue = _IfTrue.ConstantOptimization(); _IfFalse = _IfFalse.ConstantOptimization(); if (_If.IsConstant()) { bool result = _If.EvaluateBoolean(null, null); return result? _IfTrue: _IfFalse; } return this; }
public virtual IExpr ConstantOptimization() { _ArgExpr = _ArgExpr.ConstantOptimization(); if (_ArgExpr.IsConstant()) { string o = _ArgExpr.EvaluateString(null, null); if (o == null) throw new Exception("Parameter collection argument is null"); ReportParameter rp = _Parameters[o] as ReportParameter; if (rp == null) throw new Exception(string.Format("Parameter collection argument {0} is invalid", o)); return new FunctionReportParameter(rp); } return this; }
public virtual IExpr ConstantOptimization() { _ArgExpr = _ArgExpr.ConstantOptimization(); if (_ArgExpr.IsConstant()) { string o = _ArgExpr.EvaluateString(null, null); if (o == null) throw new Exception("Field collection argument is null"); Field f = _Fields[o] as Field; if (f == null) throw new Exception(string.Format("Field collection argument {0} is invalid", o)); return new FunctionField(f); } return this; }
public virtual IExpr ConstantOptimization() { _ArgExpr = _ArgExpr.ConstantOptimization(); if (_ArgExpr.IsConstant()) { string o = _ArgExpr.EvaluateString(null, null); if (o == null) throw new Exception(Strings.FunctionReportItemCollection_Error_ReportItemCollectionNull); Textbox ri = _ReportItems[o] as Textbox; if (ri == null) throw new Exception(string.Format(Strings.FunctionReportItemCollection_Error_ReportItemCollectionInvalid, o)); return new FunctionTextbox(ri, null); // no access to unique name } return this; }
public virtual IExpr ConstantOptimization() { _ArgExpr = _ArgExpr.ConstantOptimization(); if (_ArgExpr.IsConstant()) { string o = _ArgExpr.EvaluateString(null, null); if (o == null) throw new Exception(Strings.FunctionParameterCollection_Error_ParameterCollectionNull); ReportParameter rp = _Parameters[o] as ReportParameter; if (rp == null) throw new Exception(string.Format(Strings.FunctionParameterCollection_Error_ParameterCollectionInvalid, o)); return new FunctionReportParameter(rp); } return this; }
public virtual IExpr ConstantOptimization() { _ArgExpr = _ArgExpr.ConstantOptimization(); if (_ArgExpr.IsConstant()) { string o = _ArgExpr.EvaluateString(null, null); if (o == null) throw new Exception("ReportItem collection argument is null"); Textbox ri = _ReportItems[o] as Textbox; if (ri == null) throw new Exception(string.Format("ReportItem collection argument {0} is invalid", o)); return new FunctionTextbox(ri, null); // no access to unique name } return this; }
public virtual IExpr ConstantOptimization() { _ArgExpr = _ArgExpr.ConstantOptimization(); if (_ArgExpr.IsConstant()) { string o = _ArgExpr.EvaluateString(null, null); if (o == null) throw new Exception(Strings.FunctionFieldCollection_Error_FieldCollectionNull); Field f = _Fields[o] as Field; if (f == null) throw new Exception(string.Format(Strings.FunctionFieldCollection_Error_FieldCollectionInvalid, o)); return new FunctionField(f); } return this; }
public virtual IExpr ConstantOptimization() { _ArgExpr = _ArgExpr.ConstantOptimization(); if (_ArgExpr.IsConstant()) { string o = _ArgExpr.EvaluateString(null, null); if (o == null) throw new Exception("User collection argument is null"); string lo = o.ToLower(); if (lo == "userid") return new FunctionUserID(); if (lo == "language") return new FunctionUserLanguage(); throw new Exception(string.Format("User collection argument {0} is invalid.", o)); } return this; }
public virtual IExpr ConstantOptimization() { _ArgExpr = _ArgExpr.ConstantOptimization(); if (_ArgExpr.IsConstant()) { string o = _ArgExpr.EvaluateString(null, null); if (o == null) throw new Exception(Strings.FunctionUserCollection_Error_UserCollectionNull); string lo = o.ToLower(); if (lo == "userid") return new FunctionUserID(); if (lo == "language") return new FunctionUserLanguage(); throw new Exception(string.Format(Strings.FunctionUserCollection_Error_UserCollectionInvalid, o)); } return this; }
public static IExpr Differentiate(IExpr expr, string variable) { if (expr.IsConstant()) { return Constant(0.0); } else if (expr.IsSymbol()) { if (expr.SymbolValue() == variable) return Constant(1.0); else return Constant(0.0); } else { var func = expr as Function; if (func.IsBinary) { switch (func.Name) { case "plus": { var left = Differentiate(func.FirstArgument, variable); var right = Differentiate(func.SecondArgument, variable); return Plus(left, right); } case "minus": { var left = Differentiate(func.FirstArgument, variable); var right = Differentiate(func.SecondArgument, variable); return Plus(left, Times(Constant(-1.0), right)); } case "times": { var f = func.FirstArgument; var fPrime = Differentiate(f, variable); var g = func.SecondArgument; var gPrime = Differentiate(g, variable); return Plus(Times(f, gPrime), Times(g, fPrime)); } case "pow": { var g = func.FirstArgument; var h = func.SecondArgument; if (h.IsConstant()) { var pow = h.ConstantValue(); return Times(Times(Constant(pow), Pow(g, Constant(pow - 1.0))), Differentiate(g, variable)); } else if (g.IsConstant() && h.IsSymbol()) { var constant = g.ConstantValue(); return Times(func, Log(g)); } else { return func; } } case "div": { var rewritten = Div(func.FirstArgument, func.SecondArgument); return Differentiate(rewritten, variable); } default: return func; } } else { switch(func.Name) { case "sin": return Times(Cos(func.FirstArgument), Differentiate(func.FirstArgument, variable)); case "cos": return Times(Times(Constant(-1.0), Sin(func.FirstArgument)), Differentiate(func.FirstArgument, variable)); case "tan": return Pow(Sec(func.FirstArgument), Constant(2.0)); case "log": return Div(Differentiate(func.FirstArgument, variable), func.FirstArgument); default: return func; } } } }
public bool IsConstant() { return(_If.IsConstant() && _IfTrue.IsConstant() && _IfFalse.IsConstant()); }
public static IExpr Subtitute(IExpr expr, string variable, IExpr subt) { if (expr.IsSymbol()) { if (expr.SymbolValue() == variable) return subt; else return expr; } else if (expr.IsConstant()) { return expr; } else { var func = expr as Function; if (!func.IsBinary) { return new Function(func.Name, Subtitute(func.FirstArgument, variable, subt)); } else { return new Function(func.Name, Subtitute(func.FirstArgument, variable, subt), Subtitute(func.SecondArgument, variable, subt)); } } }
public bool IsConstant() { return(_Expr.IsConstant()); }
public bool IsConstant() { return(_rhs.IsConstant()); }