/** * Create a symbolic complex number * * @param realPart * the real double value part which should be converted to a complex number * @param imagPart * the imaginary double value part which should be converted to a complex number * @return IComplex */ public static IComplex complex(final double realPart, final double imagPart) { return complex(realPart, imagPart, Config.DOUBLE_EPSILON); }
@Override public IExpr evaluate(final ISymbol symbol) { return F.complex(F.C0, F.C1); } }
@Override public IExpr evaluate(final ISymbol symbol) { return F.complex(F.C0, F.C1); } }
/** * Create a symbolic complex number * * @param re * @return */ public static IComplex complex(final IFraction re) { return complex(re, fraction(0, 1)); }
@Override public IExpr eComIntArg(final IComplex c0, final IInteger i1) { return c0.add(F.complex(i1, F.C0)); }
@Override public IExpr eComIntArg(final IComplex c0, final IInteger i1) { return c0.multiply(F.complex(i1, F.C0)); }
/** * Create a symbolic complex number * * @param re * @return */ public static IComplex CC(final IFraction re) { return complex(re, fraction(0L, 1L)); }
/** * Create a symbolic complex number * * @param re * @return */ public static IComplex complex(final IRational re) { return complex(re, fraction(0L, 1L)); }
@Override public IExpr eComIntArg(final IComplex c0, final IInteger i1) { return c0.add(F.complex(i1, F.C0)); }
@Override public IExpr eComIntArg(final IComplex c0, final IInteger i1) { return c0.multiply(F.complex(i1, F.C0)); }
@Override public IExpr visit(IComplexNum element) { return F.complex(element.getRealPart(), element.getImaginaryPart(), epsilon); }
@Override public INumber ceilFraction() throws ArithmeticException { return F.complex(NumberUtil.toLong(Math.ceil(fComplex.getReal())), NumberUtil.toLong(Math.ceil(fComplex.getImaginary()))); }
@Override public INumber floorFraction() throws ArithmeticException { return F.complex(NumberUtil.toLong(Math.floor(fComplex.getReal())), NumberUtil.toLong(Math.floor(fComplex.getImaginary()))); }
@Override public IExpr e1DblComArg(IComplexNum cNum) { de.lab4inf.math.Complex c = new de.lab4inf.math.sets.ComplexNumber(cNum.reDoubleValue(), cNum.imDoubleValue()); c = de.lab4inf.math.functions.Zeta.zeta(c); return F.complex(c.real(), c.imag()); }
@Override public INumber floorFraction() throws ArithmeticException { return F.complex(F.integer(ApfloatMath.floor(fApcomplex.real()).toBigInteger()), F.integer(ApfloatMath.floor(fApcomplex.imag()).toBigInteger())); }
@Override public INumber ceilFraction() throws ArithmeticException { return F.complex(F.integer(ApfloatMath.ceil(fApcomplex.real()).toBigInteger()), F.integer(ApfloatMath.ceil(fApcomplex.imag()).toBigInteger())); }
public static IComplex jas2Complex(edu.jas.poly.Complex<BigRational> c) { IFraction re = F.fraction(c.getRe().numerator(), c.getRe().denominator()); IFraction im = F.fraction(c.getIm().numerator(), c.getIm().denominator()); return F.complex(re, im); }
public boolean monomialToExpr(Complex<BigRational> coeff, ExpVector exp, IASTAppendable monomTimes) { BigRational re = coeff.getRe(); BigRational im = coeff.getIm(); monomTimes.append( F.complex(F.fraction(re.numerator(), re.denominator()), F.fraction(im.numerator(), im.denominator()))); return expVectorToExpr(exp, monomTimes); }
public static IComplex jas2Complex(edu.jas.poly.Complex<BigRational> c) { IFraction re = F.fraction(c.getRe().numerator(), c.getRe().denominator()); IFraction im = F.fraction(c.getIm().numerator(), c.getIm().denominator()); return F.complex(re, im); }
public IAST complexPoly2Expr(final GenPolynomial<edu.jas.arith.BigComplex> poly) throws ArithmeticException, ClassCastException { if (poly.length() == 0) { return F.Plus(F.C0); } IAST result = F.Plus(); for (Monomial<edu.jas.arith.BigComplex> monomial : poly) { edu.jas.arith.BigComplex coeff = monomial.coefficient(); ExpVector exp = monomial.exponent(); IComplex coeffValue = F.complex(coeff); IAST monomTimes = F.Times(coeffValue); long lExp; for (int i = 0; i < exp.length(); i++) { lExp = exp.getVal(i); if (lExp != 0) { monomTimes.add(F.Power(fVariables.get(i), F.integer(lExp))); } } result.add(monomTimes); } return result; } /**