@Override default IExpr abs() { return F.eval(F.Abs(this)); }
public IExpr apply(IExpr expr) { if (expr.isNumber()) { return ((INumber) expr).eabs(); } IExpr temp = F.eval(F.Abs(expr)); if (!temp.topHead().equals(F.Abs)) { return temp; } return null; } }
@Override public IExpr apply(IExpr expr) { if (expr.isNumber()) { return ((INumber) expr).abs(); } IExpr temp = F.eval(F.Abs(expr)); if (!temp.topHead().equals(F.Abs)) { return temp; } return F.NIL; } }
@Override public IExpr evaluate(final IAST ast, EvalEngine engine) { int size = ast.size(); if (size == 2) { IExpr z = ast.arg1(); return F.List(F.Abs(z), F.Arg(z)); } return F.NIL; }
@Override public IExpr evaluate(final IAST functionList, EvalEngine engine) { if (functionList.size() != 3) { throw new WrongNumberOfArguments(functionList, 2, functionList.argSize()); } IExpr arg1 = functionList.arg1(); IExpr arg2 = functionList.arg2(); int dim1 = arg1.isVector(); if (dim1 > (-1)) { int dim2 = arg2.isVector(); if (dim1 == dim2) { if (dim1 == 0) { return F.C0; } return F.Total(F.Divide(F.Abs(F.Subtract(arg1, arg2)), F.Plus(F.Abs(arg1), F.Abs(arg2)))); } } return F.NIL; }
@Override public IExpr evaluate(final IAST ast, EvalEngine engine) { if (ast.size() != 3) { throw new WrongNumberOfArguments(ast, 2, ast.argSize()); } IExpr u = ast.arg1(); IExpr v = ast.arg2(); int dim1 = u.isVector(); if (dim1 > (-1)) { int dim2 = v.isVector(); if (dim1 == dim2) { if (dim1 == 0) { return F.C0; } return F.Total(F.Divide(F.Abs(F.Subtract(u, v)), F.Total(F.Abs(F.Plus(u, v))))); } } return F.NIL; }
public IExpr evaluate(final IAST ast) { Validate.checkRange(ast, 2, 3); IExpr arg = ast.get(1); if (arg.isNumber()) { // absolute Value of a number return ((INumber) arg).eabs(); } int dim = arg.isVector(); if (dim > (-1)) { return F.Sqrt(((IAST) arg).map(F.Plus, Functors.replaceAll(F.Sqr(F.Abs(F.Null)), F.Null))); } return null; }
@Override public IExpr evaluate(IAST ast, EvalEngine engine) { IExpr z = ast.arg1(); IExpr m = ast.arg2(); if (m.isZero()) { return F.C0; } if (z.isZero()) { return F.C0; } if (z.equals(F.CPiHalf)) { return F.C0; } if (m.isOne()) { // Abs(Re(z)) <= Pi/2 if (engine.evalTrue(F.LessEqual(F.Abs(F.Re(z)), F.CPiHalf))) { return F.Sin(z); } } if (m.isInfinity() || m.isNegativeInfinity()) { return F.CComplexInfinity; } return F.NIL; }
public IExpr evaluateArg1(final IExpr arg1) { if (arg1.isNumber()) { return ((INumber) arg1).eabs(); } if (arg1.isSymbol()) { ISymbol sym = (ISymbol) arg1; return sym.mapConstantDouble(new AbsNumericFunction(sym)); } if (arg1.isTimes()) { IAST[] result = ((IAST) arg1).split(new AbsTimesFunction()); if (result[0].size() > 1) { if (result[1].size() > 1) { result[0].add(F.Abs(result[1])); } return result[0]; } } return null; }
F.Times(F.Power(F.CN1, j), F.Power(F.Times(F.C2, z), F.Plus(F.CN1, F.Times(F.CN2, j))), F.Factorial(F.Plus(F.Times(F.C2, j), F.Abs(n), F.C1D2)), F.Power(F .Times(F.Factorial(F.Plus(F.Times(F.C2, j), F.C1)), F.Factorial(F.Plus(F.QQ(-3L, 2L), F.Times(F.CN2, j), F.Abs(n)))), -1)), F.List(j, F.C0, F.Floor(F.Times(F.C1D4, F.Plus(F.CN3, F.Times(F.C2, F.Abs(n)))))))), F.Times(F.CN1, F.Sin(F.Plus(F.Times(F.C1D2, F.Plus(F.CN1D2, n), F.Pi), F F.Power(F.CN1, j), F.Power(F.Times(F.Factorial(F.Times(F.C2, j)), F.Factorial(F.Plus(F.CN1D2, F.Times(F.CN2, j), F.Abs(n))), F.Power(F.Times(F.C2, z), F.Times(F.C2, j))), -1), F.Factorial(F.Plus(F.CN1D2, F.Times(F.C2, j), F.Abs(n)))), F.List(j, F.C0, F.Floor( F.Times(F.C1D4, F.Plus(F.CN1, F.Times(F.C2, F.Abs(n))))))))));
@Override public IExpr evaluate(final IAST functionList, EvalEngine engine) { if (functionList.size() != 3) { throw new WrongNumberOfArguments(functionList, 2, functionList.argSize()); } IExpr arg1 = functionList.arg1(); IExpr arg2 = functionList.arg2(); int dim1 = arg1.isVector(); if (dim1 > (-1)) { int dim2 = arg2.isVector(); if (dim1 == dim2) { if (dim1 == 0) { return F.C0; } IAST a1 = ((IAST) arg1); IAST a2 = ((IAST) arg2); IASTAppendable maxAST = F.Max(); return maxAST.appendArgs(a1.size(), i -> F.Abs(F.Subtract(a1.get(i), a2.get(i)))); // for (int i = 1; i < a1.size(); i++) { // maxAST.append(F.Abs(F.Subtract(a1.get(i), a2.get(i)))); // } // return maxAST; } } return F.NIL; }
public IExpr evaluate(final IAST functionList) { if (functionList.size() != 3) { throw new WrongNumberOfArguments(functionList, 2, functionList.size() - 1); } IExpr arg1 = functionList.get(1); IExpr arg2 = functionList.get(2); int dim1 = arg1.isVector(); if (dim1 > (-1)) { int dim2 = arg2.isVector(); if (dim1 == dim2) { if (dim1 == 0) { return F.C0; } IAST a1 = ((IAST) arg1); IAST a2 = ((IAST) arg2); IAST maxAST = F.Max(); for (int i = 1; i < a1.size(); i++) { maxAST.add(F.Abs(F.Subtract(a1.get(i), a2.get(i)))); } return maxAST; } } return null; }
public IExpr evaluate(final IAST ast) { if (ast.size() != 3) { throw new WrongNumberOfArguments(ast, 2, ast.size() - 1); } IExpr arg1 = ast.get(1); IExpr arg2 = ast.get(2); int dim1 = arg1.isVector(); if (dim1 > (-1)) { int dim2 = arg2.isVector(); if (dim1 == dim2) { if (dim1 == 0) { return F.C0; } IAST a1 = ((IAST) arg1); IAST a2 = ((IAST) arg2); IAST plusAST = F.Plus(); for (int i = 1; i < a1.size(); i++) { plusAST.add(F.Abs(F.Subtract(a1.get(i), a2.get(i)))); } return plusAST; } } return null; }
@Override public IExpr evaluate(final IAST ast, EvalEngine engine) { Validate.checkSize(ast, 3); IExpr arg1 = ast.arg1(); IExpr arg2 = ast.arg2(); int dim1 = arg1.isVector(); if (dim1 > (-1)) { int dim2 = arg2.isVector(); if (dim1 == dim2) { if (dim1 == 0) { return F.C0; } IAST a1 = ((IAST) arg1); IAST a2 = ((IAST) arg2); int size = a1.size(); IASTAppendable plusAST = F.PlusAlloc(size); plusAST.appendArgs(size, i -> F.Sqr(F.Abs(F.Subtract(a1.get(i), a2.get(i))))); // for (int i = 1; i < size; i++) { // plusAST.append(F.Sqr(F.Abs(F.Subtract(a1.get(i), a2.get(i))))); // } return F.Sqrt(plusAST); } } return F.NIL; }
@Override public IExpr evaluate(final IAST ast, EvalEngine engine) { if (ast.size() != 3) { throw new WrongNumberOfArguments(ast, 2, ast.argSize()); } IExpr arg1 = ast.arg1(); IExpr arg2 = ast.arg2(); int dim1 = arg1.isVector(); if (dim1 > (-1)) { int dim2 = arg2.isVector(); if (dim1 == dim2) { if (dim1 == 0) { return F.C0; } IAST a1 = ((IAST) arg1); IAST a2 = ((IAST) arg2); int size = a1.size(); IASTAppendable plusAST = F.PlusAlloc(size); return plusAST.appendArgs(size, i -> F.Abs(F.Subtract(a1.get(i), a2.get(i)))); // for (int i = 1; i < size; i++) { // plusAST.append(F.Abs(F.Subtract(a1.get(i), a2.get(i)))); // } // return plusAST; } } return F.NIL; }
public IExpr evaluate(final IAST functionList) { if (functionList.size() != 3) { throw new WrongNumberOfArguments(functionList, 2, functionList.size() - 1); } IExpr arg1 = functionList.get(1); IExpr arg2 = functionList.get(2); int dim1 = arg1.isVector(); if (dim1 > (-1)) { int dim2 = arg2.isVector(); if (dim1 == dim2) { if (dim1 == 0) { return F.C0; } IAST a1 = ((IAST) arg1); IAST a2 = ((IAST) arg2); IAST plusAST = F.Plus(); for (int i = 1; i < a1.size(); i++) { plusAST.add(F.Sqr(F.Abs(F.Subtract(a1.get(i), a2.get(i))))); } return plusAST; } } return null; }
public IExpr evaluate(final IAST functionList) { if (functionList.size() != 3) { throw new WrongNumberOfArguments(functionList, 2, functionList.size() - 1); } IExpr arg1 = functionList.get(1); IExpr arg2 = functionList.get(2); int dim1 = arg1.isVector(); if (dim1 > (-1)) { int dim2 = arg2.isVector(); if (dim1 == dim2) { if (dim1 == 0) { return F.C0; } IAST a1 = ((IAST) arg1); IAST a2 = ((IAST) arg2); IAST plusAST = F.Plus(); for (int i = 1; i < a1.size(); i++) { plusAST.add(F.Sqr(F.Abs(F.Subtract(a1.get(i), a2.get(i))))); } return F.Sqrt(plusAST); } } return null; }
result = F.Divide(F.Times(a1, a2), F.Abs(F.Times(a1, a2))); return F.DirectedInfinity(result);
@Override public IExpr evaluate(final IAST functionList, EvalEngine engine) { if (functionList.size() != 3) { throw new WrongNumberOfArguments(functionList, 2, functionList.argSize()); } IExpr arg1 = functionList.arg1(); IExpr arg2 = functionList.arg2(); int dim1 = arg1.isVector(); if (dim1 > (-1)) { int dim2 = arg2.isVector(); if (dim1 == dim2) { if (dim1 == 0) { return F.C0; } IAST a1 = ((IAST) arg1); IAST a2 = ((IAST) arg2); int size = a1.size(); IASTAppendable plusAST = F.PlusAlloc(size); return plusAST.appendArgs(size, i -> F.Sqr(F.Abs(F.Subtract(a1.get(i), a2.get(i))))); // for (int i = 1; i < size; i++) { // plusAST.append(F.Sqr(F.Abs(F.Subtract(a1.get(i), a2.get(i))))); // } // return plusAST; } } return F.NIL; }
@Override public IExpr evaluate(final IAST ast, EvalEngine engine) { Validate.checkSize(ast, 2); int[] dim = ast.arg1().isMatrix(); if (dim == null && ast.arg1().isListOfLists()) { return F.NIL; } if (dim != null) { IAST matrix = (IAST) ast.arg1(); return matrix.mapMatrixColumns(dim, x -> F.MeanDeviation(x)); } int length = ast.arg1().isVector(); if (length > 0) { IAST vector = (IAST) ast.arg1(); int size = vector.size(); IASTAppendable sum = F.PlusAlloc(size); final IExpr mean = F.eval(F.Mean(F.Negate(vector))); vector.forEach(x -> sum.append(F.Abs(F.Plus(x, mean)))); return F.Times(F.Power(F.ZZ(size - 1), -1), sum); } return F.NIL; }