code: def BSR_Row_WriteScalar(A, i, x):
      
      blocksize = A.blocksize[0]
      BlockIndx = int(i/blocksize)
      rowstart = A.indptr[BlockIndx]
      rowend = A.indptr[BlockIndx+1]
      localRowIndx = i % blocksize
  
      # for j in range(rowstart, rowend):
      #   indys = A.data[j,localRowIndx,:].nonzero()[0]
      #   increment = indys.shape[0]
      #   A.data[j,localRowIndx,indys] = x
  
      indys = A.data[rowstart:rowend, localRowIndx, :].nonzero()
      A.data[rowstart:rowend, localRowIndx, :][indys[0], indys[1]] = x
docs: Write a scalar at each nonzero location in row i of BSR matrix A.
  
      Parameters
      ----------
      A : bsr_matrix
          Input matrix
      i : int
          Row number
      x : float
          Scalar to overwrite nonzeros of row i in A
  
      Returns
      -------
      A : bsr_matrix
          All nonzeros in row i of A have been overwritten with x.
          If x is a vector, the first length(x) nonzeros in row i
          of A have been overwritten with entries from x
  
      Examples
      --------
      >>> from numpy import array
      >>> from scipy.sparse import bsr_matrix
      >>> from pyamg.util.BSR_utils import BSR_Row_WriteScalar
      >>> indptr  = array([0,2,3,6])
      >>> indices = array([0,2,2,0,1,2])
      >>> data    = array([1,2,3,4,5,6]).repeat(4).reshape(6,2,2)
      >>> B = bsr_matrix( (data,indices,indptr), shape=(6,6) )
      >>> BSR_Row_WriteScalar(B,5,22)