public void dswap(DoubleMatrix2D A, DoubleMatrix2D B) { //B.swap(A); not yet implemented A.checkShape(B); for(int i = A.rows(); --i >= 0;) A.viewRow(i).swap(B.viewRow(i)); } public void dsymv(boolean isUpperTriangular, double alpha, DoubleMatrix2D A, DoubleMatrix1D x, double beta, DoubleMatrix1D y) {
/** C = A||B; Constructs a new matrix which is the concatenation of two other matrices. Example: <tt>0 1</tt> append <tt>3 4</tt> --> <tt>0 1 3 4</tt>. */ public DoubleMatrix1D append(DoubleMatrix1D A, DoubleMatrix1D B) { // concatenate DoubleMatrix1D matrix = make(A.size()+B.size()); matrix.viewPart(0,A.size()).assign(A); matrix.viewPart(A.size(),B.size()).assign(B); return matrix; } /**
/** C = A||B; Constructs a new matrix which is the concatenation of two other matrices. Example: <tt>0 1</tt> append <tt>3 4</tt> --> <tt>0 1 3 4</tt>. */ public ObjectMatrix1D append(ObjectMatrix1D A, ObjectMatrix1D B) { // concatenate ObjectMatrix1D matrix = make(A.size()+B.size()); matrix.viewPart(0,A.size()).assign(A); matrix.viewPart(A.size(),B.size()).assign(B); return matrix; } /**
/** * Returns v = c * v1. * Useful in avoiding the need of the copy() in the colt api. */ public static final DoubleMatrix1D scalarMult(DoubleMatrix1D v1, double c){ DoubleMatrix1D ret = DoubleFactory1D.dense.make(v1.size()); for(int i=0; i<ret.size(); i++){ ret.setQuick(i, c * v1.getQuick(i)); } return ret; }
public void dswap(DoubleMatrix2D A, DoubleMatrix2D B) { //B.swap(A); not yet implemented A.checkShape(B); for(int i = A.rows(); --i >= 0;) A.viewRow(i).swap(B.viewRow(i)); } public void dsymv(boolean isUpperTriangular, double alpha, DoubleMatrix2D A, DoubleMatrix1D x, double beta, DoubleMatrix1D y) {
private static DoubleMatrix2D buildMatrix (double[] lambda, double x) { int k = lambda.length; DoubleFactory2D F2 = DoubleFactory2D.dense; DoubleMatrix2D A = F2.make(k, k); for (int j = 0; j < k-1; j++) { A.setQuick(j, j, -lambda[j]*x); A.setQuick(j, j + 1, lambda[j]*x); } A.setQuick(k-1, k-1, -lambda[k-1]*x); return A; }