public static final BigDecimal plus(BigDecimal v1, BigDecimal v2) { if (v1 != null && v2 != null) { return v1.add(v2, UJMPSettings.getInstance().getMathContext()); } else { return null; } }
public static final BigDecimal divide(BigDecimal v1, BigDecimal v2) { if (BigDecimal.ZERO.equals(v2)) { return null; } else if (v1 != null && v2 != null) { return v1.divide(v2, UJMPSettings.getInstance().getMathContext()); } else { return null; } }
public static final BigDecimal times(BigDecimal v1, BigDecimal v2) { if (v1 != null && v2 != null) { return v1.multiply(v2, UJMPSettings.getInstance().getMathContext()); } else { return null; } }
public static Random getRandom() { if (UJMPSettings.getInstance().isUseMultiThreadedRandom()) { Random random = randoms.get(); if (random == null) { random = new RandomSimple(); randoms.set(random); } return random; } else { return random; } }
public final void calc(SparseMatrix source, double value, SparseMatrix target) { calc(source, new BigDecimal(value, UJMPSettings.getInstance().getMathContext()), target); } };
public final Matrix solve(Matrix source, Matrix b) { Chol<Matrix> chol = null; if (UJMPSettings.getInstance().isUseJBlas()) { chol = DecompositionOps.CHOL_JBLAS; } if (chol == null) { chol = UJMP; } return chol.solve(source, b); } };
public Matrix calc(Matrix source) { Chol<Matrix> chol = null; if (UJMPSettings.getInstance().isUseJBlas()) { chol = DecompositionOps.CHOL_JBLAS; } if (chol == null) { chol = UJMP; } return chol.calc(source); }
public final Matrix[] calc(Matrix source) { LU<Matrix> lu = null; if (UJMPSettings.getInstance().isUseJBlas()) { lu = DecompositionOps.LU_JBLAS; } if (lu == null) { lu = UJMP; } return lu.calc(source); }
public final void calc(final DenseMatrix2D source, final double divisor, final DenseMatrix2D target) { if (source instanceof DenseDoubleMatrix2D && target instanceof DenseDoubleMatrix2D) { DivideScalar.DENSEDOUBLEMATRIX2D.calc((DenseDoubleMatrix2D) source, divisor, (DenseDoubleMatrix2D) target); } else { calc(source, new BigDecimal(divisor, UJMPSettings.getInstance().getMathContext()), target); } } };
public final void calc(final DenseMatrix source, final double factor, final DenseMatrix target) { if (source instanceof DenseMatrix2D && target instanceof DenseMatrix2D) { TimesScalar.DENSEMATRIX2D.calc((DenseMatrix2D) source, factor, (DenseMatrix2D) target); } else { calc(source, new BigDecimal(factor, UJMPSettings.getInstance().getMathContext()), target); } } };
public final void calc(final DenseMatrix source, final double divisor, final DenseMatrix target) { if (source instanceof DenseMatrix2D && target instanceof DenseMatrix2D) { DivideScalar.DENSEMATRIX2D .calc((DenseMatrix2D) source, divisor, (DenseMatrix2D) target); } else { calc(source, new BigDecimal(divisor, UJMPSettings.getInstance().getMathContext()), target); } } };
public final void calc(final DenseMatrix source, final double value, final DenseMatrix target) { if (source instanceof DenseMatrix2D && target instanceof DenseMatrix2D) { PlusScalar.DENSEMATRIX2D.calc((DenseMatrix2D) source, value, (DenseMatrix2D) target); } else { calc(source, new BigDecimal(value, UJMPSettings.getInstance().getMathContext()), target); } } };
public final void calc(final DenseMatrix2D source, final double value, final DenseMatrix2D target) { if (source instanceof DenseDoubleMatrix2D && target instanceof DenseDoubleMatrix2D) { PlusScalar.DENSEDOUBLEMATRIX2D.calc((DenseDoubleMatrix2D) source, value, (DenseDoubleMatrix2D) target); } else { calc(source, new BigDecimal(value, UJMPSettings.getInstance().getMathContext()), target); } } };
public final void calc(final DenseMatrix source, final double value, final DenseMatrix target) { if (source instanceof DenseMatrix2D && target instanceof DenseMatrix2D) { MinusScalar.DENSEMATRIX2D.calc((DenseMatrix2D) source, value, (DenseMatrix2D) target); } else { calc(source, new BigDecimal(value, UJMPSettings.getInstance().getMathContext()), target); } } };
public final void calc(final DenseMatrix2D source, final double value, final DenseMatrix2D target) { if (source instanceof DenseDoubleMatrix2D && target instanceof DenseDoubleMatrix2D) { MinusScalar.DENSEDOUBLEMATRIX2D.calc((DenseDoubleMatrix2D) source, value, (DenseDoubleMatrix2D) target); } else { calc(source, new BigDecimal(value, UJMPSettings.getInstance().getMathContext()), target); } } };
public final void calc(final Matrix source, final double value, final Matrix target) { if (source instanceof DenseMatrix && target instanceof DenseMatrix) { PlusScalar.DENSEMATRIX.calc((DenseMatrix) source, value, (DenseMatrix) target); } else if (source instanceof SparseMatrix && target instanceof SparseMatrix) { PlusScalar.SPARSEMATRIX.calc((SparseMatrix) source, value, (SparseMatrix) target); } else { calc(source, new BigDecimal(value, UJMPSettings.getInstance().getMathContext()), target); } } };
public int rank() { int rank = 0; Matrix[] usv = svd(); Matrix s = usv[1]; for (int i = (int) Math.min(s.getSize(ROW), s.getSize(COLUMN)); --i >= 0;) { if (Math.abs(s.getAsDouble(i, i)) > UJMPSettings.getInstance().getTolerance()) { rank++; } } return rank; }
public final void calc(final Matrix source, final double divisor, final Matrix target) { if (source instanceof DenseMatrix && target instanceof DenseMatrix) { DivideScalar.DENSEMATRIX.calc((DenseMatrix) source, divisor, (DenseMatrix) target); } else if (source instanceof SparseMatrix && target instanceof SparseMatrix) { DivideScalar.SPARSEMATRIX.calc((SparseMatrix) source, divisor, (SparseMatrix) target); } else { calc(source, new BigDecimal(divisor, UJMPSettings.getInstance().getMathContext()), target); } } };
public final void calc(final Matrix source, final double factor, final Matrix target) { if (source instanceof DenseMatrix && target instanceof DenseMatrix) { TimesScalar.DENSEMATRIX.calc((DenseMatrix) source, factor, (DenseMatrix) target); } else if (source instanceof SparseMatrix && target instanceof SparseMatrix) { TimesScalar.SPARSEMATRIX.calc((SparseMatrix) source, factor, (SparseMatrix) target); } else { calc(source, new BigDecimal(factor, UJMPSettings.getInstance().getMathContext()), target); } } };
public final void calc(final Matrix source, final double value, final Matrix target) { if (source instanceof DenseMatrix && target instanceof DenseMatrix) { MinusScalar.DENSEMATRIX.calc((DenseMatrix) source, value, (DenseMatrix) target); } else if (source instanceof SparseMatrix && target instanceof SparseMatrix) { MinusScalar.SPARSEMATRIX.calc((SparseMatrix) source, value, (SparseMatrix) target); } else { calc(source, new BigDecimal(value, UJMPSettings.getInstance().getMathContext()), target); } } };