public static IExpr dirichletWindow(IExpr x) { return // [$ Piecewise({{1, -(1/2) <= x <= 1/2}}, 0) $] F.Piecewise(F.List(F.List(F.C1, F.LessEqual(F.CN1D2, x, F.C1D2))), F.C0); // $$; }
public static IExpr bartlettWindow(IExpr x) { return // [$ Piecewise({{1 - 2*x, 0 <= x <= 1/2}, {1 + 2*x, Inequality(-(1/2), LessEqual, x, Less, 0)}}, 0) // $] F.Piecewise(F.List(F.List(F.Plus(F.C1, F.Times(F.CN2, x)), F.LessEqual(F.C0, x, F.C1D2)), F.List(F.Plus(F.C1, F.Times(F.C2, x)), F.And(F.LessEqual(F.CN1D2, x), F.Less(x, F.C0)))), F.C0); // $$; }
/** * Evaluate LessEqual, if both arguments are real numbers * * @param a1 * @return */ default IExpr lessEqual(final IExpr a1) { if (isReal() && a1.isReal()) { return ((ISignedNumber) this).isGreaterThan(((ISignedNumber) a1)) ? F.False : F.True; } EvalEngine engine = EvalEngine.get(); return engine.evaluate(F.LessEqual(this, a1)); }
public static IExpr hannWindow(IExpr x) { return // [$ Piecewise({{1/2 + (1/2)*Cos(2*Pi*x), -(1/2) <= x <= 1/2}}, 0) $] F.Piecewise(F.List(F.List(F.Plus(F.C1D2, F.Times(F.C1D2, F.Cos(F.Times(F.C2, F.Pi, x)))), F.LessEqual(F.CN1D2, x, F.C1D2))), F.C0); // $$; }
public static IExpr gaussianWindow(IExpr x) { return // [$ Piecewise({{E^(-((50*x^2)/9)), -(1/2) <= x <= 1/2}}, 0) $] F.Piecewise(F.List( F.List(F.Exp(F.Times(F.CN1, F.QQ(1L, 9L), F.ZZ(50L), F.Sqr(x))), F.LessEqual(F.CN1D2, x, F.C1D2))), F.C0); // $$; }
private IAST createComparator(IAST matrix, int i, int j, int size) { if (i == 1) { // # < matrix[i+2, 1] return F.Less(F.Slot1, matrix.getPart(i + 2, 1)); } else { if (j < size) { // matrix[i+1, 1] <= # < matrix[i+2, 1] return F.And(F.LessEqual(matrix.getPart(i + 1, 1), F.Slot1), F.Less(F.Slot1, matrix.getPart(i + 2, 1))); } else { // # >= matrix[i+1, 1] return F.GreaterEqual(F.Slot1, matrix.getPart(i + 1, 1)); } } }
public static IExpr hammingWindow(IExpr x) { return // [$ Piecewise({{25/46 + (21/46)*Cos(2*Pi*x), -(1/2) <= x <= 1/2}}, 0) $] F.Piecewise(F.List(F.List(F.Plus(F.QQ(25L, 46L), F.Times(F.QQ(21L, 46L), F.Cos(F.Times(F.C2, F.Pi, x)))), F.LessEqual(F.CN1D2, x, F.C1D2))), F.C0); // $$; }
@Override public IExpr pdf(IAST dist, IExpr k) { IExpr[] minMax = minmax(dist); if (minMax != null) { IExpr a = minMax[0]; IExpr b = minMax[1]; IExpr function = // [$ Piecewise({{1/(b - a), a <= # <= b}}, 0)& $] F.Function(F.Piecewise( F.List(F.List(F.Power(F.Plus(F.Negate(a), b), -1), F.LessEqual(a, F.Slot1, b))), F.C0)); // $$; return callFunction(function, k); } return F.NIL; }
@Override public IExpr pdf(IAST dist, IExpr k) { IExpr[] minMax = minmax(dist); if (minMax != null) { IExpr a = minMax[0]; IExpr b = minMax[1]; IExpr function = // [$ ( Piecewise({{1/(1 - a + b), a <= # <= b}}, 0) & ) $] F.Function(F.Piecewise( F.List(F.List(F.Power(F.Plus(F.C1, F.Negate(a), b), -1), F.LessEqual(a, F.Slot1, b))), F.C0)); // $$; return callFunction(function, k); } return F.NIL; }
public static IExpr parzenWindow(IExpr x) { return // [$ Piecewise({{-2*(-1 + 2*x)^3, Inequality(1/4, Less, x, LessEqual, 1/2)},{2*(1 + 2*x)^3, Inequality(-(1/2), // LessEqual, x, Less, -(1/4))},{1 - 24*x^2 - 48*x^3, Inequality(-(1/4), LessEqual, x, Less, 0)}, {1 - 24*x^2 + // 48*x^3, 0 <= x <= 1/4}}, 0) $] F.Piecewise(F.List( F.List(F.Times(F.CN2, F.Power(F.Plus(F.CN1, F.Times(F.C2, x)), 3)), F.And(F.Less(F.C1D4, x), F.LessEqual(x, F.C1D2))), F.List(F.Times(F.C2, F.Power(F.Plus(F.C1, F.Times(F.C2, x)), 3)), F.And(F.LessEqual(F.CN1D2, x), F.Less(x, F.CN1D4))), F.List(F.Plus(F.C1, F.Times(F.ZZ(-24L), F.Sqr(x)), F.Times(F.ZZ(-48L), F.Power(x, 3))), F.And(F.LessEqual(F.CN1D4, x), F.Less(x, F.C0))), F.List(F.Plus(F.C1, F.Times(F.ZZ(-24L), F.Sqr(x)), F.Times(F.ZZ(48L), F.Power(x, 3))), F.LessEqual(F.C0, x, F.C1D4))), F.C0); // $$; }
public static IExpr tukeyWindow(IExpr x) { return // [$ Piecewise({{1, -(1/3) - 2*x <= 0 && -(1/3) + 2*x <= 0}, {(1/2)*(1 + Cos(3*Pi*(1/6 + x))), x >= -(1/2) && // -(1/3) - 2*x > 0}, {(1/2)*(1 + Cos(3*Pi*(-(1/6) + x))), -(1/3) + 2*x > 0 && x <= 1/2}}, 0) $] F.Piecewise(F.List( F.List(F.C1, F.And(F.LessEqual(F.Plus(F.CN1D3, F.Times(F.CN2, x)), F.C0), F.LessEqual(F.Plus(F.CN1D3, F.Times(F.C2, x)), F.C0))), F.List(F.Times(F.C1D2, F.Plus(F.C1, F.Cos(F.Times(F.C3, F.Pi, F.Plus(F.QQ(1L, 6L), x))))), F.And(F.GreaterEqual(x, F.CN1D2), F.Greater(F.Plus(F.CN1D3, F.Times(F.CN2, x)), F.C0))), F.List(F.Times(F.C1D2, F.Plus(F.C1, F.Cos(F.Times(F.C3, F.Pi, F.Plus(F.QQ(-1L, 6L), x))))), F.And(F.Greater(F.Plus(F.CN1D3, F.Times(F.C2, x)), F.C0), F.LessEqual(x, F.C1D2)))), F.C0); // $$; }
public static IExpr blackmanWindow(IExpr x) { return // [$ Piecewise({{(1/50)*(21 + 25*Cos(2*Pi*x) + 4*Cos(4*Pi*x)), -(1/2) <= x <= 1/2}}, 0) $] F.Piecewise( F.List(F.List( F.Times(F.QQ(1L, 50L), F.Plus(F.ZZ(21L), F.Times(F.ZZ(25L), F.Cos(F.Times(F.C2, F.Pi, x))), F.Times(F.C4, F.Cos(F.Times(F.C4, F.Pi, x))))), F.LessEqual(F.CN1D2, x, F.C1D2))), F.C0); // $$; }
@Override public IExpr cdf(IAST dist, IExpr k) { if (dist.isAST1()) { IExpr p = dist.arg1(); IExpr function = // [$ (Piecewise({{0, # < 0}, {1 - p, 0<=#<1 }}, 1)) & $] F.Function( F.Piecewise( F.List(F.List(F.C0, F.Less(F.Slot1, F.C0)), F.List(F.Plus(F.C1, F.Negate(p)), F.And(F.LessEqual(F.C0, F.Slot1), F.Less(F.Slot1, F.C1)))), F.C1)); // $$; return callFunction(function, k); } return F.NIL; }
public static IExpr blackmanHarrisWindow(IExpr x) { return // [$ Piecewise({{(35875 + 48829*Cos(2*Pi*x) + 14128*Cos(4*Pi*x) + 1168*Cos(6*Pi*x))/100000, -(1/2) <= x <= // 1/2}}, 0) // $] F.Piecewise(F.List(F.List( F.Times(F.QQ(1L, 100000L), F.Plus(F.ZZ(35875L), F.Times(F.ZZ(48829L), F.Cos(F.Times(F.C2, F.Pi, x))), F.Times(F.ZZ(14128L), F.Cos(F.Times(F.C4, F.Pi, x))), F.Times(F.ZZ(1168L), F.Cos(F.Times(F.C6, F.Pi, x))))), F.LessEqual(F.CN1D2, x, F.C1D2))), F.C0); // $$; }
@Override public IExpr pdf(IAST dist, IExpr k) { if (dist.isAST2()) { IExpr n = dist.arg1(); IExpr m = dist.arg2(); // IExpr function = // [$ Piecewise({{(1 - m)^(-# + n)*m^#*Binomial(n, #), 0 <= # <= n}}, 0) & $] F.Function( F.Piecewise(F.List(F.List( F.Times(F.Power(F.Plus(F.C1, F.Negate(m)), F.Plus(F.Negate(F.Slot1), n)), F.Power(m, F.Slot1), F.Binomial(n, F.Slot1)), F.LessEqual(F.C0, F.Slot1, n))), F.C0)); // $$; return callFunction(function, k); } return F.NIL; }
public static IExpr nuttallWindow(IExpr x) { return // [$ Piecewise[{{(88942 + 121849*Cos(2*Pi*x) + 36058*Cos(4*Pi*x) + 3151*Cos(6*Pi*x))/250000, -(1/2) <= x <= // 1/2}}, 0] $] F.Piecewise(F.List(F.List( F.Times(F.QQ(1L, 250000L), F.Plus(F.ZZ(88942L), F.Times(F.ZZ(121849L), F.Cos(F.Times(F.C2, F.Pi, x))), F.Times(F.ZZ(36058L), F.Cos(F.Times(F.C4, F.Pi, x))), F.Times(F.ZZ(3151L), F.Cos(F.Times(F.C6, F.Pi, x))))), F.LessEqual(F.CN1D2, x, F.C1D2))), F.C0); // $$; }
@Override public IExpr cdf(IAST dist, IExpr k) { IExpr[] minMax = minmax(dist); if (minMax != null) { IExpr a = minMax[0]; IExpr b = minMax[1]; IExpr function = // [$ (Piecewise({{(1 - a + Floor(#))/(1 - a + b), a<=#<b}, {1, # >= b}}, 0)) & $] F.Function(F.Piecewise(F.List( F.List(F.Times(F.Power(F.Plus(F.C1, F.Negate(a), b), -1), F.Plus(F.C1, F.Negate(a), F.Floor(F.Slot1))), F.And(F.LessEqual(a, F.Slot1), F.Less(F.Slot1, b))), F.List(F.C1, F.GreaterEqual(F.Slot1, b))), F.C0)); // $$; return callFunction(function, k); } return F.NIL; }
public static IExpr blackmanNuttallWindow(IExpr x) { return // [$ Piecewise({{(4891775*Cos(2*Pi*x) + 1365995*Cos(4*Pi*x) + 106411*Cos(6*Pi*x) + 3635819)/10000000, -(1/2) <= // x // <= 1/2}}, 0) // $] F.Piecewise(F.List(F.List( F.Times(F.QQ(1L, 10000000L), F.Plus(F.Times(F.ZZ(4891775L), F.Cos(F.Times(F.C2, F.Pi, x))), F.Times(F.ZZ(1365995L), F.Cos(F.Times(F.C4, F.Pi, x))), F.Times(F.ZZ(106411L), F.Cos(F.Times(F.C6, F.Pi, x))), F.ZZ(3635819L))), F.LessEqual(F.CN1D2, x, F.C1D2))), F.C0); // $$; }
public static IExpr flatTopWindow(IExpr x) { return // [$ Piecewise({{(215578947 + 416631580*Cos(2*Pi*x) + 277263158*Cos(4*Pi*x) + 83578947*Cos(6*Pi*x) + // 6947368*Cos(8*Pi*x))/1000000000, -(1/2) <= x <= 1/2}}, 0) $] F.Piecewise(F.List(F.List( F.Times(F.QQ(1L, 1000000000L), F.Plus(F.ZZ(215578947L), F.Times(F.ZZ(416631580L), F.Cos(F.Times(F.C2, F.Pi, x))), F.Times(F.ZZ(277263158L), F.Cos(F.Times(F.C4, F.Pi, x))), F.Times(F.ZZ(83578947L), F.Cos(F.Times(F.C6, F.Pi, x))), F.Times(F.ZZ(6947368L), F.Cos(F.Times(F.C8, F.Pi, x))))), F.LessEqual(F.CN1D2, x, F.C1D2))), F.C0); // $$; }
@Override public IExpr cdf(IAST dist, IExpr k) { if (dist.isAST2()) { IExpr n = dist.arg1(); IExpr m = dist.arg2(); IExpr function = // [$ (Piecewise({{BetaRegularized(1 - m, n - Floor(#), 1 + Floor(#)), 0<=#<n}, {1, # >= n}}, // 0)) & $] F.Function(F.Piecewise(F.List( F.List(F.BetaRegularized(F.Plus(F.C1, F.Negate(m)), F.Plus(n, F.Negate(F.Floor(F.Slot1))), F.Plus(F.C1, F.Floor(F.Slot1))), F.And(F.LessEqual(F.C0, F.Slot1), F.Less(F.Slot1, n))), F.List(F.C1, F.GreaterEqual(F.Slot1, n))), F.C0)); // $$; return callFunction(function, k); } return F.NIL; }