/** {@inheritDoc} */ @Override public ISignedNumber re() { return F.num(getRealPart()); }
/** {@inheritDoc} */ @Override public INumber fractionalPart() { return F.complexNum(getRealPart() % 1, getImaginaryPart() % 1); }
/** {@inheritDoc} */ @Override public IExpr evaluate(EvalEngine engine){ if (F.isZero(getImaginaryPart())) { return F.num(getRealPart()); } return null; }
public static double[] eval(final DoubleStack stack, final int top, final IExpr expr) { if (expr instanceof IAST) { return evalAST(stack, top, (IAST) expr); } if (expr instanceof ISignedNumber) { final double[] result = new double[2]; result[0] = ((ISignedNumber) expr).doubleValue(); result[1] = 0.0; return result; } if (expr instanceof ComplexNum) { final double[] res = new double[2]; res[0] = ((ComplexNum) expr).getRealPart(); res[1] = ((ComplexNum) expr).getImaginaryPart(); return res; } if (expr instanceof ISymbol) { return evalSymbol(((ISymbol) expr)); } throw new UnsupportedOperationException(); }
public static double[] eval(final DoubleStack stack, final int top, final IExpr expr) { if (expr instanceof IAST) { return evalAST(stack, top, (IAST) expr); } Alloc alloc = Alloc.get(); if (expr instanceof ISignedNumber) { final double[] result = alloc.vector(2); result[0] = ((ISignedNumber) expr).doubleValue(); result[1] = 0.0; return result; } if (expr instanceof ComplexNum) { final double[] res = alloc.vector(2); res[0] = ((ComplexNum) expr).getRealPart(); res[1] = ((ComplexNum) expr).getImaginaryPart(); return res; } if (expr instanceof ISymbol) { return evalSymbol(((ISymbol) expr)); } throw new UnsupportedOperationException(); }
/** {@inheritDoc} */ @Override public IExpr evaluate(EvalEngine engine) { if (fComplex.isInfinite()) { return F.CComplexInfinity; } if (fComplex.isNaN()) { return F.Indeterminate; } if (engine.isNumericMode() && engine.isApfloat()) { return ApcomplexNum.valueOf(getRealPart(), getImaginaryPart(), engine.getNumericPrecision()); } // if (F.isZero(getImaginaryPart())) { // return F.num(getRealPart()); // } return F.NIL; }
result[0] = ((ComplexNum) expr).getRealPart(); result[1] = ((ComplexNum) expr).getImaginaryPart(); return result; if (result instanceof ComplexNum) { final double[] res = new double[2]; res[0] = ((ComplexNum) result).getRealPart(); res[1] = ((ComplexNum) result).getImaginaryPart(); return res;
/** * @param that * @return */ @Override public IExpr plus(final IExpr that) { if (that instanceof ComplexNum) { return newInstance(fComplex.add(((ComplexNum) that).fComplex)); } if (that instanceof ApcomplexNum) { ApcomplexNum acn = (ApcomplexNum) that; return ApcomplexNum.valueOf(getRealPart(), getImaginaryPart(), acn.fApcomplex.precision()).add(acn); } if (that instanceof ApfloatNum) { ApfloatNum afn = (ApfloatNum) that; return ApcomplexNum.valueOf(getRealPart(), getImaginaryPart(), afn.fApfloat.precision()) .add(ApcomplexNum.valueOf(afn.fApfloat, Apcomplex.ZERO)); } if (that instanceof Num) { return add(ComplexNum.valueOf(((Num) that).getRealPart())); } return IComplexNum.super.plus(that); }
/** * @param that * @return */ @Override public IExpr times(final IExpr that) { if (that instanceof ComplexNum) { return newInstance(fComplex.multiply(((ComplexNum) that).fComplex)); } if (that instanceof ApcomplexNum) { ApcomplexNum acn = (ApcomplexNum) that; return ApcomplexNum.valueOf(getRealPart(), getImaginaryPart(), acn.fApcomplex.precision()).multiply(acn); } if (that instanceof ApfloatNum) { ApfloatNum afn = (ApfloatNum) that; return ApcomplexNum.valueOf(getRealPart(), getImaginaryPart(), afn.fApfloat.precision()) .multiply(ApcomplexNum.valueOf(afn.fApfloat, Apcomplex.ZERO)); } if (that instanceof Num) { return multiply(ComplexNum.valueOf(((Num) that).getRealPart())); } return IComplexNum.super.times(that); }
result[0] = ((ComplexNum) expr).getRealPart(); result[1] = ((ComplexNum) expr).getImaginaryPart(); return result; if (result instanceof ComplexNum) { final double[] res = alloc.vector(2); res[0] = ((ComplexNum) result).getRealPart(); res[1] = ((ComplexNum) result).getImaginaryPart(); return res;
@Override public IExpr times(final IExpr that) { if (that instanceof ApfloatNum) { return multiply((ApfloatNum) that); } if (that instanceof Num) { return multiply(ApfloatNum.valueOf(((Num) that).getRealPart(), fApfloat.precision())); } if (that instanceof ApcomplexNum) { return ApcomplexNum.valueOf(fApfloat, Apcomplex.ZERO).multiply((ApcomplexNum) that); } if (that instanceof ComplexNum) { ComplexNum cn = (ComplexNum) that; return ApcomplexNum.valueOf(fApfloat, Apcomplex.ZERO) .multiply(ApcomplexNum.valueOf(cn.getRealPart(), cn.getImaginaryPart(), fApfloat.precision())); } return INum.super.times(that); }
if (result instanceof ComplexNum) { final double[] res = new double[2]; res[0] = ((ComplexNum) result).getRealPart(); res[1] = ((ComplexNum) result).getImaginaryPart(); return res;
@Override public IExpr plus(final IExpr that) { if (that instanceof ApfloatNum) { return add((ApfloatNum) that); } if (that instanceof Num) { return add(ApfloatNum.valueOf(((Num) that).getRealPart(), fApfloat.precision())); } if (that instanceof ApcomplexNum) { return ApcomplexNum.valueOf(fApfloat, Apcomplex.ZERO).add((ApcomplexNum) that); } if (that instanceof ComplexNum) { ComplexNum cn = (ComplexNum) that; return ApcomplexNum.valueOf(fApfloat, Apcomplex.ZERO) .add(ApcomplexNum.valueOf(cn.getRealPart(), cn.getImaginaryPart(), fApfloat.precision())); } return INum.super.plus(that); }
/** * @param that * @return */ @Override public IExpr times(final IExpr that) { if (that instanceof ApcomplexNum) { return valueOf(fApcomplex.multiply(((ApcomplexNum) that).fApcomplex)); } if (that instanceof ApfloatNum) { return multiply(ApcomplexNum.valueOf(((ApfloatNum) that).fApfloat, Apcomplex.ZERO)); } if (that instanceof Num) { return multiply(ApcomplexNum.valueOf(((Num) that).getRealPart(), fApcomplex.precision())); } if (that instanceof ComplexNum) { ComplexNum cn = (ComplexNum) that; return multiply(ApcomplexNum.valueOf(cn.getRealPart(), cn.getImaginaryPart(), fApcomplex.precision())); } return IComplexNum.super.times(that); }
/** * @param that * @return */ @Override public IExpr plus(final IExpr that) { if (that instanceof ApcomplexNum) { return valueOf(fApcomplex.add(((ApcomplexNum) that).fApcomplex)); } if (that instanceof ApfloatNum) { return add(ApcomplexNum.valueOf(((ApfloatNum) that).fApfloat, Apcomplex.ZERO)); } if (that instanceof Num) { return add(ApcomplexNum.valueOf(((Num) that).getRealPart(), fApcomplex.precision())); } if (that instanceof ComplexNum) { ComplexNum cn = (ComplexNum) that; return add(ApcomplexNum.valueOf(cn.getRealPart(), cn.getImaginaryPart(), fApcomplex.precision())); } return IComplexNum.super.plus(that); }
if (result instanceof ComplexNum) { final double[] res = alloc.vector(2); res[0] = ((ComplexNum) result).getRealPart(); res[1] = ((ComplexNum) result).getImaginaryPart(); return res;