public bool setA(DMatrixRMaj A) { blockA.reshape(A.numRows, A.numCols, false); MatrixOps_DDRB.convert(A, blockA); return(alg.setA(blockA)); }
public void invert(DMatrixRMaj A_inv) { blockB.reshape(A_inv.numRows, A_inv.numCols, false); alg.invert(blockB); MatrixOps_DDRB.convert(blockB, A_inv); }
/** * Only converts the B matrix and passes that onto solve. Te result is then copied into * the input 'X' matrix. * * @param B A matrix ℜ <sup>m × p</sup>. Not modified. * @param X A matrix ℜ <sup>n × p</sup>, where the solution is written to. Modified. */ public override void solve(DMatrixRMaj B, DMatrixRMaj X) { blockB.reshape(B.numRows, B.numCols, false); MatrixOps_DDRB.convert(B, blockB); // since overwrite B is true X does not need to be passed in alg.solve(blockB, null); MatrixOps_DDRB.convert(blockB, X); }
virtual public void solve(DMatrixRMaj B, DMatrixRMaj X) { X.reshape(blockA.numCols, B.numCols); blockB.reshape(B.numRows, B.numCols, false); blockX.reshape(X.numRows, X.numCols, false); MatrixOps_DDRB.convert(B, blockB); alg.solve(blockB, blockX); MatrixOps_DDRB.convert(blockX, X); }
public DMatrixRMaj getT(DMatrixRMaj T) { DMatrixRBlock T_block = ((CholeskyOuterForm_DDRB)alg).getT(null); if (T == null) { T = new DMatrixRMaj(T_block.numRows, T_block.numCols); } MatrixOps_DDRB.convert(T_block, T); // todo set zeros return(T); }