public Matrix <R> ComputeVariablesJacobian(D input) { var leftJacobian = LeftFunction.ComputeParametersJacobian(input); var rightJacobian = RightFunction.ComputeParametersJacobian(input); var scalar = RightFunction.Compute(input).MultiplicativeInverse; leftJacobian *= scalar; rightJacobian *= -LeftFunction.Compute(input) * scalar * scalar; return(leftJacobian - rightJacobian); }
public void GetAllParametersOptimizationScales(R[] buffer, int startIndex) { LeftFunction.GetAllParametersOptimizationScales(buffer, startIndex); RightFunction.GetAllParametersOptimizationScales(buffer, startIndex + LeftFunction.ParametersCount); }
public void SetAllParameters(R[] paramValues, int startIndex) { LeftFunction.SetAllParameters(paramValues, startIndex); RightFunction.SetAllParameters(paramValues, startIndex + LeftFunction.ParametersCount); }
public string ToSQL(LeftFunction funcExp) { return(_FunctionToSQL(funcExp, "LEFT")); }
public R Compute(D input) { return(LeftFunction.Compute(input).Divide(RightFunction.Compute(input))); }
public object Evaluate(LeftFunction funcExp, object data, IEnumerable <object> parameters = null) { var paramValues = _GetParameterValues(funcExp, data, parameters); return((object)((string)paramValues[0]).Substring(0, (int)paramValues[1])); }
public void GetAllParameters(PF[] buffer, int startIndex) { LeftFunction.GetAllParameters(buffer, startIndex); RightFunction.GetAllParameters(buffer, startIndex + LeftFunction.ParametersCount); }
public Matrix <PF> ComputeVariablesJacobian(D input) { return(LeftFunction.ComputeVariablesJacobian(input) - RightFunction.ComputeVariablesJacobian(input)); }
public Matrix <PF> ComputeParametersJacobian(D input) { return(Matrix <PF> .ConcatRows(LeftFunction.ComputeParametersJacobian(input), -RightFunction.ComputeParametersJacobian(input))); }
public R Compute(D input) { return(LeftFunction.Compute(input).Subtract(RightFunction.Compute(input))); }