if np.max(Y_currCol[:, J_Idx_wikiFile_subIndexOffset]) == 0.0:
             Y_currCol[:, J_Idx_wikiFile_subIndexOffset] = 0.000000001
             smallValueAsgn_cnt += 1
     #print ""
     #print "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
     #print "no. of all zeros column that  "
     #print "are assignment to a very small"
     #print "non-negative value : %d/%d" %(smallValueAsgn_cnt,Y_blockWidth)
     #print "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
     #print ""
     #S_Jcolumn = NMF.HALS_CORE( np.matrix( Y_currCol ).transpose() , np.matrix( S[ : , J_Idx_wikiFile : J_Idx_wikiFile + Y_blockWidth ] ).transpose() , A.transpose() , modelOrder ).transpose()
     #print "Please stop here and perform manual LSMU"
     #print "Press any key to continue ..."
     #raw_input()
     S_Jcolumn = NMF.LSMU_CORE(
         np.matrix(Y_currCol).transpose(),
         np.matrix(S[:, J_Idx_wikiFile:J_Idx_wikiFile +
                     Y_blockWidth]).transpose(), A.transpose()).transpose()
     for k in xrange(modelOrder):
         for J_assignmentOffset in xrange(Y_blockWidth):
             S[k, J_Idx_wikiFile +
               J_assignmentOffset] = S_Jcolumn[k, J_assignmentOffset]
     # -------------------------------------- #
     # end of enforcing Sum To One constraint #
     # -------------------------------------- #
 #logFileName = 'S_HALS_itera'+str(cycle+1)+'.txt'
 logFileName = 'S_LSMU_itera' + str(cycle + 1) + '.txt'
 DSP.LOG('log matrix to file', logFileName, S, ' ')
 print "S has been logged in cycle %d" % (cycle + 1)
 DSP.STOP()
 # ------------- #
 # update A part #