package jetbrains.mps.baseLanguage.math.runtime; /*Generated by MPS */ import java.math.MathContext; import java.math.BigInteger; import java.math.BigDecimal; public class BigComplexScalarOperations implements MatrixScalarOperations { /*package*/ MathContext myContext = null; public BigComplexScalarOperations() { } public BigComplexScalarOperations(MathContext context) { myContext = context; } @Override public BigComplex cast(Object o) { if (o instanceof BigComplex) { return (BigComplex) o; } if (o instanceof Complex) { return new BigComplex((Complex) o); } if (o instanceof BigInteger) { return new BigComplex(new BigDecimal((BigInteger) o), BigDecimal.ZERO); } if (o instanceof BigDecimal) { return new BigComplex(((BigDecimal) o), BigDecimal.ZERO); } if (o instanceof Number) { return new BigComplex(((Number) o).doubleValue(), 0); } throw new ClassCastException(); } @Override public BigComplex add(Object o1, Object o2) { if (myContext == null) { return cast(o1).add(cast(o2)); } else return cast(o1).add(cast(o2), myContext); } @Override public BigComplex mul(Object i1, Object o2) { if (myContext == null) { return cast(i1).mul(cast(o2)); } else return cast(i1).mul(cast(o2), myContext); } @Override public BigComplex neg(Object i) { BigComplex c = cast(i); return new BigComplex(c.re().negate(), c.im().negate()); } @Override public BigComplex inv(Object d) { if (myContext == null) { return cast(d).inv(); } else return cast(d).inv(myContext); } @Override public BigComplex conj(Object o) { return cast(o).conj(); } @Override public Object abs(Object o) { return cast(o).abs(myContext); } }