public virtual /**/ double quality() { return(alg.quality()); } /** * Converts B and X into block matrices and calls the block matrix solve routine. * * @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 virtual void solve(FMatrixRMaj B, FMatrixRMaj X) { blockB.reshape(B.numRows, B.numCols, false); blockX.reshape(X.numRows, X.numCols, false); MatrixOps_FDRB.convert(B, blockB); alg.solve(blockB, blockX); MatrixOps_FDRB.convert(blockX, X); }
/** * Converts 'A' into a block matrix and call setA() on the block matrix solver. * * @param A The A matrix in the linear equation. Not modified. Reference saved. * @return true if it can solve the system. */ public virtual bool setA(FMatrixRMaj A) { blockA.reshape(A.numRows, A.numCols, false); MatrixOps_FDRB.convert(A, blockA); return(alg.setA(blockA)); }