/** * <tt>A = A - s <=> A[i] = A[i] - s</tt>. * @param A the matrix to modify. * @param s the scalar; can have any value. * @return <tt>A</tt> (for convenience only). */ public static DoubleMatrix1D minus(DoubleMatrix1D A, double s) { return A.assign(F.minus(s)); } /**
/** * <tt>A = A - s <=> A[row,col] = A[row,col] - s</tt>. * @param A the matrix to modify. * @param s the scalar; can have any value. * @return <tt>A</tt> (for convenience only). */ public static DoubleMatrix2D minus(DoubleMatrix2D A, double s) { return A.assign(F.minus(s)); } /**
/** * <tt>A = A - s <=> A[i] = A[i] - s</tt>. * @param A the matrix to modify. * @param s the scalar; can have any value. * @return <tt>A</tt> (for convenience only). */ public static DoubleMatrix1D minus(DoubleMatrix1D A, double s) { return A.assign(F.minus(s)); } /**
/** * <tt>A = A - s <=> A[row,col] = A[row,col] - s</tt>. * @param A the matrix to modify. * @param s the scalar; can have any value. * @return <tt>A</tt> (for convenience only). */ public static DoubleMatrix2D minus(DoubleMatrix2D A, double s) { return A.assign(F.minus(s)); } /**
/** * Constructs a matrix with cells having ascending values. * For debugging purposes. */ public DoubleMatrix3D ascending(int slices, int rows, int columns) { cern.jet.math.Functions F = cern.jet.math.Functions.functions; return descending(slices,rows,columns).assign(F.chain(F.neg,F.minus(slices*rows*columns))); } /**
/** Constructs a matrix with cells having ascending values. For debugging purposes. Example: <tt>0 1 2</tt> */ public DoubleMatrix1D ascending(int size) { cern.jet.math.Functions F = cern.jet.math.Functions.functions; return descending(size).assign(F.chain(F.neg,F.minus(size))); } /**
/** * Constructs a matrix with cells having ascending values. * For debugging purposes. */ public DoubleMatrix3D ascending(int slices, int rows, int columns) { cern.jet.math.Functions F = cern.jet.math.Functions.functions; return descending(slices,rows,columns).assign(F.chain(F.neg,F.minus(slices*rows*columns))); } /**
/** Constructs a matrix with cells having ascending values. For debugging purposes. Example: <tt>0 1 2</tt> */ public DoubleMatrix1D ascending(int size) { cern.jet.math.Functions F = cern.jet.math.Functions.functions; return descending(size).assign(F.chain(F.neg,F.minus(size))); } /**
/** Constructs a matrix with cells having ascending values. For debugging purposes. Example: <pre> 0 1 2 3 4 5 </pre> */ public DoubleMatrix2D ascending(int rows, int columns) { cern.jet.math.Functions F = cern.jet.math.Functions.functions; return descending(rows,columns).assign(F.chain(F.neg,F.minus(columns*rows))); } /**
/** Constructs a matrix with cells having ascending values. For debugging purposes. Example: <pre> 0 1 2 3 4 5 </pre> */ public DoubleMatrix2D ascending(int rows, int columns) { cern.jet.math.Functions F = cern.jet.math.Functions.functions; return descending(rows,columns).assign(F.chain(F.neg,F.minus(columns*rows))); } /**
private double logsumexp(DoubleMatrix1D x){ DoubleMatrix1D myX = x.copy(); double maxX = StatUtils.max(myX.toArray()); return Math.log(myX.assign(Functions.minus(maxX)).assign(Functions.exp).zSum()) + maxX; }
public Matrix minus(double value) { Matrix result = new ColtDenseDoubleMatrix2D((DenseDoubleMatrix2D) matrix.copy().assign(Functions.minus(value))); MapMatrix<String, Object> a = getMetaData(); if (a != null) { result.setMetaData(a.clone()); } return result; }
public Matrix minus(double value) { Matrix result = new ColtDenseDoubleMatrix2D((DenseDoubleMatrix2D) matrix.copy().assign(Functions.minus(value))); MapMatrix<String, Object> a = getMetaData(); if (a != null) { result.setMetaData(a.clone()); } return result; }
public Matrix minus(double value) { Matrix result = new ColtSparseDoubleMatrix2D((SparseDoubleMatrix2D) matrix.copy() .assign(Functions.minus(value))); MapMatrix<String, Object> a = getMetaData(); if (a != null) { result.setMetaData(a.clone()); } return result; }
public Matrix minus(double value) { Matrix result = new ColtSparseDoubleMatrix2D((SparseDoubleMatrix2D) matrix.copy() .assign(Functions.minus(value))); MapMatrix<String, Object> a = getMetaData(); if (a != null) { result.setMetaData(a.clone()); } return result; }
public static double[] totalInstabilityUndir(DoubleMatrix2D xi, List<Node> vars){ if (vars.size()!= xi.columns() || vars.size()!= xi.rows()) { throw new IllegalArgumentException("stability mat must have same number of rows and columns as there are vars"); } Algebra al = new Algebra(); //DoubleMatrix2D xiu = MGM.upperTri(xi.copy().assign(al.transpose(xi)),1); DoubleMatrix2D xiu = xi.copy().assign(xi.copy().assign(Functions.minus(1.0)), Functions.mult).assign(Functions.mult(-2.0)); double[] D = new double[4]; int[] discInds = MixedUtils.getDiscreteInds(vars); int[] contInds = MixedUtils.getContinuousInds(vars); int p = contInds.length; int q = discInds.length; double temp = MGM.upperTri(xiu.copy(),1).zSum(); D[0] = temp/ ((p+q-1.0)*(p+q)/2.0); temp = MGM.upperTri(xiu.viewSelection(contInds, contInds).copy(), 1).zSum(); D[1] = temp/(p*(p-1.0)/2.0); temp = xiu.viewSelection(contInds, discInds).zSum(); D[2] = temp/(p*q); temp = MGM.upperTri(xiu.viewSelection(discInds, discInds).copy(), 1).zSum(); D[3] = temp/(q*(q-1.0)/2.0); return D; }