@Override public IExpr evaluateArg1(final IExpr arg1) { IExpr negExpr = AbstractFunctionEvaluator.getNormalizedNegativeExpression(arg1); if (negExpr.isPresent()) { return Negate(ArcSinh(negExpr)); } IExpr imPart = AbstractFunctionEvaluator.getPureImaginaryPart(arg1); if (imPart.isPresent()) { return F.Times(F.CI, F.ArcSin(imPart)); } return F.NIL; }
@Override public IExpr evaluateArg1(final IExpr arg1) { if (isNegativeExpression(arg1)) { return Times(CN1, ArcSin(Times(CN1, arg1))); } return null; }
@Override public IExpr evaluateArg1(final IExpr arg1) { IExpr negExpr = AbstractFunctionEvaluator.getNormalizedNegativeExpression(arg1); if (negExpr.isPresent()) { return Negate(ArcSin(negExpr)); } IExpr imPart = AbstractFunctionEvaluator.getPureImaginaryPart(arg1); if (imPart.isPresent()) { return F.Times(F.CI, F.ArcSinh(imPart)); } if (arg1.isSin() && arg1.first().isPositive()) { // ArcSin(Sin(z)) return arcSinSin(arg1); } return F.NIL; }
@Override public IExpr evaluateArg1(final IExpr arg1) { if (isNegativeExpression(arg1)) { return Plus(ArcSin(Times(CN1, arg1)), Times(C1D2, Pi)); } return null; }
@Override public IExpr evaluate(final IAST ast, EvalEngine engine) { Validate.checkSize(ast, 2); return F.Times(F.C2, F.ArcSin(F.Sqrt(ast.arg1()))); }
ORDERLESS_MATCHER.defineHashRule(ArcSin(x_), ArcCos(x_), F.CPiHalf);