public IExpr evaluate(final int[] index) { int res = index[0] + index[1] + 1; return F.Power(F.integer(res), F.CN1); } }
@Override public IExpr mean(IAST dist) { if (dist.isAST1()) { // 1/x return F.Power(dist.arg1(), F.CN1); } return F.NIL; }
@Override public IExpr variance(IAST dist) { if (dist.isAST1()) { return F.Power(dist.arg1(), F.CN2); } return F.NIL; }
@Override public IExpr median(IAST dist) { if (dist.isAST2()) { // (m,s) -> E^(m+s^2/2) return F.Power(F.E, dist.arg1()); } return F.NIL; }
/** * Constant Degree converted to Pi/180 */ @Override public IExpr evaluate(final ISymbol symbol) { return Times(F.Pi, Power(F.integer(180), F.CN1)); }
public NumberPartititon(IAST plusAST, int n, IAST expandedResult) { this.expandedResult = expandedResult; this.n = n; this.m = plusAST.size() - 1; // System.out.println(m+"/"+n); this.parts = new int[m]; // precalculate all Power[] ASTs: this.precalculatedPowerASTs = F.List(); for (IExpr expr : plusAST) { precalculatedPowerASTs.add(F.Power(expr, F.Null)); } }
@Override public IExpr mean(IAST dist) { if (dist.isAST1()) { // -1 + 1/n IExpr n = dist.arg1(); return F.Plus(F.CN1, F.Power(n, F.CN1)); } return F.NIL; }
@Override public IExpr median(IAST dist) { if (dist.isAST2()) { IExpr n = dist.arg1(); IExpr m = dist.arg2(); // [$ (m*(-1 + 1/InverseBetaRegularized(1, -(1/2), m/2, n/2)))/n $] F.Times(m, F.Power(n, -1), F.Plus(F.CN1, F.Power(F.InverseBetaRegularized(F.C1, F.CN1D2, F.Times(F.C1D2, m), F.Times(F.C1D2, n)), -1))); // $$; } return F.NIL; }
@Override public IExpr median(IAST dist) { if (dist.isAST1()) { // Log(2)/x return F.Times(F.Log(F.C2), F.Power(dist.arg1(), F.CN1)); } return F.NIL; }
@Override public IExpr variance(IAST dist) { if (dist.isAST1()) { // (1-n) / n^2 IExpr n = dist.arg1(); return F.Times(F.Subtract(F.C1, n), F.Power(n, F.CN2)); } return F.NIL; }
@Override public IExpr mean(IAST dist) { if (dist.isAST2()) { IExpr m = dist.arg1(); IExpr s = dist.arg2(); // (m,s) -> E^(m+s^2/2) return F.Power(F.E, F.Plus(m, F.Times(F.C1D2, F.Sqr(s)))); } return F.NIL; }
@Override public IExpr variance(IAST dist) { if (dist.isAST2()) { IExpr n = dist.arg1(); IExpr m = dist.arg2(); // m^2*(-Gamma(1 + 1/n)^2 + Gamma(1 + 2/n)) return F.Times(F.Sqr(m), F.Plus(F.Negate(F.Sqr(F.Gamma(F.Plus(F.C1, F.Power(n, -1))))), F.Gamma(F.Plus(F.C1, F.Times(F.C2, F.Power(n, -1)))))); } return F.NIL; }
@Override public IExpr evaluate(final IAST ast, EvalEngine engine) { Validate.checkSize(ast, 2); if (ast.arg1().isList()) { IAST list = (IAST) ast.arg1(); return F.Divide(F.CentralMoment(list, F.C3), F.Power(F.CentralMoment(list, F.C2), F.C3D2)); } return F.NIL; }
@Override public IExpr mean(IAST dist) { if (dist.isAST2()) { IExpr n = dist.arg1(); IExpr m = dist.arg2(); return // [$ Piecewise({{m/(-2 + m), m > 2}}, Indeterminate) $] F.Piecewise(F.List(F.List(F.Times(F.Power(F.Plus(F.CN2, m), -1), m), F.Greater(m, F.C2))), F.Indeterminate); // $$; } return F.NIL; }
@Override public IExpr evaluate(final IAST ast, EvalEngine engine) { Validate.checkSize(ast, 3); if (ast.arg1().isList()) { IAST list = (IAST) ast.arg1(); IExpr r = ast.arg2(); return F.Divide(F.Total(F.Power(F.Subtract(list, F.Mean(list)), r)), F.Length(list)); } return F.NIL; }
@Override public IExpr mean(IAST dist) { if (dist.isAST2()) { IExpr n = dist.arg1(); IExpr m = dist.arg2(); // Piecewise({{m*Gamma(1 - 1/n), 1 < n}}, Infinity) return F.Piecewise( F.List(F.List(F.Times(m, F.Gamma(F.Subtract(F.C1, F.Power(n, F.CN1)))), F.Less(F.C1, n))), F.CInfinity); } return F.NIL; }