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