public QRNullspaceCalculator(int matrixSize) { MathTools.checkIntervalContains(matrixSize, 1, Integer.MAX_VALUE); nullspaceProjector = new DenseMatrix64F(matrixSize, matrixSize); tempMatrixForProjectionInPlace = new DenseMatrix64F(matrixSize, matrixSize); decomposer = DecompositionFactory.qr(matrixSize, matrixSize); nullspace = new DenseMatrix64F(matrixSize, matrixSize); Q = new DenseMatrix64F(matrixSize, matrixSize); R = new DenseMatrix64F(matrixSize, matrixSize); }
public DampedQRNullspaceCalculator(int matrixSize, double alpha) { this.alpha = alpha; MathTools.checkIntervalContains(matrixSize, 1, Integer.MAX_VALUE); nullspaceProjector = new DenseMatrix64F(matrixSize, matrixSize); tempMatrixForProjectionInPlace = new DenseMatrix64F(matrixSize, matrixSize); linearSolver = LinearSolverFactory.symmPosDef(matrixSize); decomposer = DecompositionFactory.qr(matrixSize, matrixSize); nullspace = new DenseMatrix64F(matrixSize, matrixSize); Q = new DenseMatrix64F(matrixSize, matrixSize); R1 = new DenseMatrix64F(matrixSize, matrixSize); }
CommonOps.extract(P, 0, 3, 0, 3, KR, 0, 0); QRDecomposition<DenseMatrix64F> qr = DecompositionFactory.qr(3, 3);
public Matrix[] calc(Matrix source) { QRDecomposition<DenseMatrix64F> qr = DecompositionFactory.qr((int) source.getRowCount(), (int) source.getColumnCount()); DenseMatrix64F matrix = null; if (source instanceof EJMLDenseDoubleMatrix2D) { matrix = ((EJMLDenseDoubleMatrix2D) source).getWrappedObject(); } else { matrix = new EJMLDenseDoubleMatrix2D(source).getWrappedObject(); } qr.decompose(matrix); DenseMatrix64F qm = qr.getQ(null, true); DenseMatrix64F rm = qr.getR(null, true); Matrix q = new EJMLDenseDoubleMatrix2D(qm); Matrix r = new EJMLDenseDoubleMatrix2D(rm); return new Matrix[] { q, r }; }