question: public static void performSlice ( Pair < Long , FrameBlock > in , IndexRange ixrange , int brlen , int bclen , ArrayList < Pair < Long , FrameBlock > > outlist ) throws DMLRuntimeException { long index = in . getKey ( ) ; FrameBlock block = in . getValue ( ) ; long cellIndexTopRow = index ; long cellIndexBottomRow = index + block . getNumRows ( ) - 1 ; long cellIndexLeftCol = 1 ; long cellIndexRightCol = block . getNumColumns ( ) ; long cellIndexOverlapTop = Math . max ( cellIndexTopRow , ixrange . rowStart ) ; long cellIndexOverlapBottom = Math . min ( cellIndexBottomRow , ixrange . rowEnd ) ; long cellIndexOverlapLeft = Math . max ( cellIndexLeftCol , ixrange . colStart ) ; long cellIndexOverlapRight = Math . min ( cellIndexRightCol , ixrange . colEnd ) ; if ( cellIndexOverlapTop > cellIndexOverlapBottom || cellIndexOverlapLeft > cellIndexOverlapRight ) { return ; } IndexRange tmpRange = new IndexRange ( cellIndexOverlapTop - index , cellIndexOverlapBottom - index , cellIndexOverlapLeft - 1 , cellIndexOverlapRight - 1 ) ; int rowCut = ( int ) ( ixrange . rowStart - index ) ; long resultBlockIndexTop = UtilFunctions . computeBlockIndex ( cellIndexOverlapTop , brlen ) ; long resultBlockIndexBottom = UtilFunctions . computeBlockIndex ( cellIndexOverlapBottom , brlen ) ; for ( long r = resultBlockIndexTop ; r <= resultBlockIndexBottom ; r ++ ) { ValueType [ ] schema = Arrays . copyOfRange ( block . getSchema ( ) , ( int ) tmpRange . colStart , ( int ) tmpRange . colEnd + 1 ) ; long iResultIndex = Math . max ( ( ( r - 1 ) * brlen - ixrange . rowStart + 1 ) , 0 ) ; Pair < Long , FrameBlock > out = new Pair < Long , FrameBlock > ( new Long ( iResultIndex + 1 ) , new FrameBlock ( schema ) ) ; outlist . add ( out ) ; } block . sliceOperations ( outlist , tmpRange , rowCut ) ; }
target:  This function will get slice of the input frame block overlapping in overall slice(Range), slice has requested for.