def get_inner_product(self,psi1,psi2):
#Take 2 states psi1,psi2, calculate their overlap, for single vector
state_num=self.sys_para.state_num
psi_1_real = (psi1[0:state_num])
psi_1_imag = (psi1[state_num:2*state_num])
psi_2_real = (psi2[0:state_num])
psi_2_imag = (psi2[state_num:2*state_num])
# psi1 has a+ib, psi2 has c+id, we wanna get Sum ((ac+bd) + i (bc-ad)) magnitude
with tf.name_scope('inner_product'):
ac = tf.multiply(psi_1_real,psi_2_real)
bd = tf.multiply(psi_1_imag,psi_2_imag)
bc = tf.multiply(psi_1_imag,psi_2_real)
ad = tf.multiply(psi_1_real,psi_2_imag)
reals = tf.square(tf.add(tf.reduce_sum(ac),tf.reduce_sum(bd)))
imags = tf.square(tf.subtract(tf.reduce_sum(bc),tf.reduce_sum(ad)))
norm = tf.add(reals,imags)
return norm
tensorflow_state.py 文件源码
python
阅读 35
收藏 0
点赞 0
评论 0
评论列表
文章目录