public bool decompose(DMatrixRMaj A)
        {
            Ablock.numRows     = A.numRows;
            Ablock.numCols     = A.numCols;
            Ablock.blockLength = blockLength;
            Ablock.data        = A.data;

            // doing an in-place convert is much more memory efficient at the cost of a little
            // but of CPU
            MatrixOps_DDRB.convertRowToBlock(A.numRows, A.numCols, Ablock.blockLength, A.data, workspace);

            bool ret = alg.decompose(Ablock);

            // convert it back to the normal format if it wouldn't have been modified
            if (!alg.inputModified())
            {
                MatrixOps_DDRB.convertBlockToRow(A.numRows, A.numCols, Ablock.blockLength, A.data, workspace);
            }

            return(ret);
        }
 public void convertBlockToRow(int numRows, int numCols, double[] data)
 {
     MatrixOps_DDRB.convertBlockToRow(numRows, numCols, Ablock.blockLength, data, workspace);
 }