@Override public IExpr evaluateArg1(final IExpr arg1) { if (isNegativeExpression(arg1)) { return Times(CN1, ArcTan(Times(CN1, arg1))); } return null; }
@Override public IExpr evaluateArg1(final IExpr arg1) { IExpr negExpr = AbstractFunctionEvaluator.getNormalizedNegativeExpression(arg1); if (negExpr.isPresent()) { return Negate(ArcTanh(negExpr)); } IExpr imPart = AbstractFunctionEvaluator.getPureImaginaryPart(arg1); if (imPart.isPresent()) { return F.Times(F.CI, F.ArcTan(imPart)); } return F.NIL; }
ORDERLESS_MATCHER.defineHashRule(ArcTan(x_), ArcCot(x_), F.CPiHalf); ORDERLESS_MATCHER.defineHashRule(ArcTan(x_), ArcTan(y_), // ORDERLESS_MATCHER.defineHashRule(F.ArcTan(F.C1D3), F.ArcTan(F.C1D2), // Times(F.C1D4, Pi)); ORDERLESS_MATCHER.defineHashRule(F.ArcTan(F.C1D3), F.ArcTan(F.QQ(1L, 7L)), // F.ArcTan(F.C1D2));
@Override public IExpr e1ObjArg(final IExpr arg1) { IExpr negExpr = AbstractFunctionEvaluator.getNormalizedNegativeExpression(arg1); if (negExpr.isPresent()) { return Negate(ArcTan(negExpr)); } IExpr imPart = AbstractFunctionEvaluator.getPureImaginaryPart(arg1); if (imPart.isPresent()) { return F.Times(F.CI, F.ArcTanh(imPart)); } if (arg1.isTan() && arg1.first().isPositive()) { // ArcTan(Tan(z)) return arcTanArcCotInverse(arg1); } return F.NIL; }
@Override public IExpr evaluate(final IAST ast, EvalEngine engine) { Validate.checkSize(ast, 2); int dim = ast.arg1().isVector(); if (dim > 0) { IAST list = (IAST) ast.arg1(); if (dim == 2) { IExpr x = list.arg1(); IExpr y = list.arg2(); return F.List(F.Sqrt(F.Plus(F.Sqr(x), F.Sqr(y))), F.ArcTan(x, y)); } else if (dim == 3) { IExpr x = list.arg1(); IExpr y = list.arg2(); IExpr z = list.arg3(); IAST sqrtExpr = F.Sqrt(F.Plus(F.Sqr(x), F.Sqr(y), F.Sqr(z))); return F.List(sqrtExpr, F.ArcCos(F.Divide(x, sqrtExpr)), F.ArcTan(y, z)); } } else if (ast.arg1().isList()) { IAST list = (IAST) ast.arg1(); return list.mapThread(F.ListAlloc(list.size()), ast, 1); } return F.NIL; }
result.add(F.Times(F.C2, temp, F.ArcTan(Times(ax2Plusb, temp)))); } else { temp = Plus(Times(C1D2, A, Log(Plus(q, Times(p, x), Power(x, C2)))), Times(ArcTan(Times(Plus(p, Times(C2, x)), Power(Plus(Times(CN1, Power(p, C2)), Times(C4, q)), CN1D2))), Plus(Times(C2, B), Times(CN1, A, p)), Power( Plus(Times(CN1, Power(p, C2)), Times(C4, q)), CN1D2)));
return F.ArcTan(F.Re(arg1), imPart);