MF_Rows_rotate_buf MD_Rows_rotate_buf ME_Rows_rotate_buf
 MCF_Rows_rotate_buf MCD_Rows_rotate_buf MCE_Rows_rotate_buf
 MI_Rows_rotate_buf MBI_Rows_rotate_buf MSI_Rows_rotate_buf MLI_Rows_rotate_buf MQI_Rows_rotate_buf
 MU_Rows_rotate_buf MUB_Rows_rotate_buf MUS_Rows_rotate_buf MUL_Rows_rotate_buf MUQ_Rows_rotate_buf
 Function efficient row rotation (moving of whole rows), using specified buffer memory
 Syntax C/C++ #include void MF_Rows_rotate_buf( fMatrix MA, ui ht, ui len, int pos, fMatrix MBuf ); C++ MatObj #include void matrix::Rows_rotate_buf( const int pos, const matrix MBuf ); Pascal/Delphi uses MFstd; procedure MF_Rows_rotate_buf( MA:fMatrix; ht, len:UIntSize; pos:Integer; MBuf:fMatrix );
 CUDA function C/C++ #include int cudaMF_Rows_rotate_buf( fMatrix d_MA, ui ht, ui len, int pos, fMatrix d_MBuf ); CUDA function Pascal/Delphi uses MFstd; function cudaMF_Rows_rotate_buf( d_MA:fMatrix; ht, len:UIntSize; pos:Integer; d_MBuf:fMatrix ): IntBool;
 Description MAi,j = MAi, len-pos+j,   j=0,..,pos-1 MAi,j = MAi, j-pos,      j=pos,...,len-1 MAi,j = MAi-pos, j,      i=pos,...,ht-1 This function is a more efficient variant of MF_Rows_rotate. Instead of internally allocating the necessary work-space, it takes the matrix MBuf as buffer memory. MBuf must be a matrix generated by the OptiVec memory management functions (MF_matrix etc.). The size (i.e., the number of elements, ht*len) of MBuf must be at least the same size as MA.