public ComplexLambdaUnaryExpression(ComplexExpression Value, Func <ComplexExpression, Expression> GetRe, Func <ComplexExpression, Expression> GetIm) : base(Value) { _GetRe = GetRe; _GetIm = GetIm; }
public ComplexLambdaBinaryExpression(ComplexExpression Left, ComplexExpression Right, Func <ComplexExpression, ComplexExpression, Expression> GetRe, Func <ComplexExpression, ComplexExpression, Expression> GetIm) : base(Left, Right) { _GetRe = GetRe; _GetIm = GetIm; }
internal ComplexDivideExpression(ComplexExpression Left, ComplexExpression Right) : base(Left, Right, (L, R) => Divide(Add(Multiply(L.Re, R.Re), Multiply(Left.Im, Right.Im)), GetNorma(R)), (L, R) => Divide(Subtract(Multiply(L.Im, R.Re), Multiply(L.Re, R.Im)), GetNorma(R))) { }
private static Expression GetNorma(ComplexExpression R) => Add(GetPower(R.Re, Constant(2d)), GetPower(R.Im, Constant(2d)));
public ComplexPowerExpression(ComplexExpression Left, ComplexExpression Right) : base(Left, Right) { }