/** * Sets the value of the row, column position in the matrix. * * @param row * @param column * @param value */ @Override public void setElement(int row, int column, double value) { mat.set(row, column, value); }
public void setRow(int row, double... values) { if (values.length != mat.getNumCols()) { throw new IllegalArgumentException( "Call setRow received an array of length " + values.length + ". " + "The dimensions of the matrix is " + mat.getNumRows() + " by " + mat.getNumCols() + "."); } for (int i = 0; i < values.length; i++) { mat.set(row, i, values[i]); } }
public void setColumn(int column, double... values) { if (values.length != mat.getNumCols()) { throw new IllegalArgumentException( "Call setRow received an array of length " + values.length + ". " + "The dimensions of the matrix is " + mat.getNumRows() + " by " + mat.getNumCols() + "."); } for (int i = 0; i < values.length; i++) { mat.set(i, column, values[i]); } }
/** * Constructs a new matrix from a two-dimensional array of doubles. * * @param matrix Array of rows. Each row must have the same length. * @throws IllegalArgumentException if the specified matrix is not regular (i.e. if all rows * doesn't have the same length). */ public GeneralMatrix(final double[][] matrix) throws IllegalArgumentException { mat = new DMatrixRMaj(matrix); final int numRow = getNumRow(); final int numCol = getNumCol(); for (int j = 0; j < numRow; j++) { if (matrix[j].length != numCol) { throw new IllegalArgumentException(Errors.format(ErrorKeys.MATRIX_NOT_REGULAR)); } for (int i = 0; i < numCol; i++) { mat.set(j, i, matrix[j][i]); } } }
/** * Cast (or convert) Matrix to internal DMatrixRMaj representation required for CommonOps_DDRM. * * @param matrix * @return */ private DMatrixRMaj internal(Matrix matrix) { if (matrix instanceof GeneralMatrix) { return ((GeneralMatrix) matrix).mat; } else { DMatrixRMaj a = new DMatrixRMaj(matrix.getNumRow(), matrix.getNumCol()); for (int j = 0; j < a.numRows; j++) { for (int i = 0; i < a.numCols; i++) { a.set(j, i, matrix.getElement(j, i)); } } return a; } }
@Override public void invert(Matrix matrix) throws SingularMatrixException { DMatrixRMaj a; if (matrix instanceof GeneralMatrix) { a = new DMatrixRMaj(((GeneralMatrix) matrix).mat); } else { a = new DMatrixRMaj(matrix.getNumRow(), matrix.getNumCol()); for (int j = 0; j < mat.numRows; j++) { for (int i = 0; i < mat.numCols; i++) { mat.set(j, i, matrix.getElement(j, i)); } } } boolean success = CommonOps_DDRM.invert(a); if (!success) { throw new SingularMatrixException("Could not invert, possible singular matrix?"); } this.mat = a; }
/** * Constructs a new matrix and copies the initial values from the parameter matrix. * * @param matrix The matrix to copy. */ public GeneralMatrix(final Matrix matrix) { if (matrix instanceof GeneralMatrix) { mat = new DMatrixRMaj(((GeneralMatrix) matrix).mat); } else { mat = new DMatrixRMaj(matrix.getNumRow(), matrix.getNumCol()); final int height = getNumRow(); final int width = getNumCol(); for (int j = 0; j < height; j++) { for (int i = 0; i < width; i++) { mat.set(j, i, matrix.getElement(j, i)); } } } }
@Override protected void copy(DMatrixRMaj src, DMatrixRMaj dst) { dst.set(src); } }
public void setModel(CameraUniversalOmni model) { this.mirrorOffset = (double)model.mirrorOffset; distortion.set(model.radial,model.t1,model.t2); K_inv.set(0,0, (double)model.fx); K_inv.set(1,1, (double)model.fy); K_inv.set(0,1, (double)model.skew); K_inv.set(0,2, (double)model.cx); K_inv.set(1,2, (double)model.cy); K_inv.set(2,2,1); CommonOps_DDRM.invert(K_inv); }
public void setMatrix( DMatrixRMaj A ) { synchronized ( this ) { temp.set(A); dirty = true; } repaint(); }
@Override public DMatrixRMaj getL(DMatrixRMaj L) { if( L == null ) { L = this.L.copy(); } else { L.set(this.L); } return L; }
protected void decomposeCommonInit(DMatrixRMaj a) { if( a.numRows > maxWidth || a.numCols > maxWidth ) { setExpectedMaxSize(a.numRows,a.numCols); } m = a.numRows; n = a.numCols; LU.set(a); for (int i = 0; i < m; i++) { pivot[i] = i; } pivsign = 1; }
public void getCameraMatrix(int viewIdx, DMatrixRMaj P) { DMatrixRMaj H = homographies.get(viewIdx); int row = totalFeatures*3 + viewIdx*3; tmp.x = B.unsafe_get(row,0); tmp.y = B.unsafe_get(row+1,0); tmp.z = B.unsafe_get(row+2,0); N.remove(tmp); CommonOps_DDRM.insert(H,P,0,0); P.set(0,3, tmp.x); P.set(1,3, tmp.y); P.set(2,3, tmp.z); }
public void setF32(DMatrixRMaj F32) { this.F32.set(F32); double n = NormOps_DDRM.normF(this.F32); CommonOps_DDRM.scale(1.0/n,this.F32); }
private boolean bidiagonalization(DMatrixRMaj orig, boolean transposed) { if( transposed ) { A_mod.reshape(orig.numCols,orig.numRows,false); CommonOps_DDRM.transpose(orig,A_mod); } else { A_mod.reshape(orig.numRows,orig.numCols,false); A_mod.set(orig); } if( !bidiag.decompose(A_mod) ) return true; return false; }