#NEWLINE# def _dot( x , y ) : #NEWLINE# #INDENT# '\n    Returns the dot product of the arrays, works for sparse and dense.\n    ' #NEWLINE# if ( isinstance ( x , np . ndarray ) and isinstance ( y , np . ndarray ) ) : #NEWLINE# #INDENT# return np . dot ( x , y ) #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# if sparse . issparse ( x ) : #NEWLINE# #INDENT# return x . dot ( y ) #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# if sparse . issparse ( y ) : #NEWLINE# #INDENT# return y . T . dot ( x . T ) . T