def test_log(): print "==================================" print "Complex logarithm:" y = np.log(x) f_log = function([x_re, x_im], clog(x_re, x_im)) t_y_re, t_y_im = f_log(x.real, x.imag) t_y = t_y_re + t_y_im*1j print "NumPy result:" print y print "Theano result:" print t_y assert np.linalg.norm(y-t_y) < 0.001
def test_exp(): print "==================================" print "Complex exponential:" y = np.exp(x) f_exp = function([x_re, x_im], cexp(x_re, x_im)) t_y_re, t_y_im = f_exp(x.real, x.imag) t_y = t_y_re + t_y_im*1j print "NumPy result:" print y print "Theano result:" print t_y assert np.linalg.norm(y-t_y) < 0.001
def test_dot(): print "==================================" print "Complex dot product:" y = np.dot(w,x) f_cdot = function([w_re, w_im, x_re, x_im], cdot(w_re, w_im, x_re, x_im)) t_y_re, t_y_im = f_cdot(w.real, w.imag, x.real, x.imag) t_y = t_y_re + t_y_im*1j print "NumPy result:" print y print "Theano result:" print t_y assert np.linalg.norm(y-t_y) < 0.001