#NEWLINE# def compute_kernel_slow( Y , X , kernel , h ) : #NEWLINE# #INDENT# d = np . sqrt ( ( ( Y [ : , None , : ] - X ) ** 2 ) . sum ( ( - 1 ) ) ) #NEWLINE# norm = ( kernel_norm ( h , X . shape [ 1 ] , kernel ) / X . shape [ 0 ] ) #NEWLINE# if ( kernel == 'gaussian' ) : #NEWLINE# #INDENT# return ( norm * np . exp ( ( ( ( - 0.5 ) * ( d * d ) ) / ( h * h ) ) ) . sum ( ( - 1 ) ) ) #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# if ( kernel == 'tophat' ) : #NEWLINE# #INDENT# return ( norm * ( d < h ) . sum ( ( - 1 ) ) ) #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# if ( kernel == 'epanechnikov' ) : #NEWLINE# #INDENT# return ( norm * ( ( 1.0 - ( ( d * d ) / ( h * h ) ) ) * ( d < h ) ) . sum ( ( - 1 ) ) ) #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# if ( kernel == 'exponential' ) : #NEWLINE# #INDENT# return ( norm * np . exp ( ( ( - d ) / h ) ) . sum ( ( - 1 ) ) ) #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# if ( kernel == 'linear' ) : #NEWLINE# #INDENT# return ( norm * ( ( 1 - ( d / h ) ) * ( d < h ) ) . sum ( ( - 1 ) ) ) #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# if ( kernel == 'cosine' ) : #NEWLINE# #INDENT# return ( X * ( np . cos ( ( ( ( 0.5 * np . pi ) * d ) / h ) ) * ( d < h ) ) . sum ( ( - 1 ) ) ) #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# raise ValueError ( 'kernel not recognized' )