nb_kernel312_ppc_altivec.c

来自「最著名最快的分子模拟软件」· C语言 代码 · 共 1,579 行 · 第 1/5 页

C
1,579
字号
				c6t             = vec_sld(c6,nul,4);				c12t            = vec_sld(c12,nul,4);				dx11            = vec_sub(ix1,jx1);				dx12            = vec_sub(ix1,jx2);				dx13            = vec_sub(ix1,jx3);				dy11            = vec_sub(iy1,jy1);				dy12            = vec_sub(iy1,jy2);				dy13            = vec_sub(iy1,jy3);				dz11            = vec_sub(iz1,jz1);				dz12            = vec_sub(iz1,jz2);				dz13            = vec_sub(iz1,jz3);				dx21            = vec_sub(ix2,jx1);				dx22            = vec_sub(ix2,jx2);				dx23            = vec_sub(ix2,jx3);				dy21            = vec_sub(iy2,jy1);				dy22            = vec_sub(iy2,jy2);				dy23            = vec_sub(iy2,jy3);				dz21            = vec_sub(iz2,jz1);				dz22            = vec_sub(iz2,jz2);				dz23            = vec_sub(iz2,jz3);				dx31            = vec_sub(ix3,jx1);				dx32            = vec_sub(ix3,jx2);				dx33            = vec_sub(ix3,jx3);				dy31            = vec_sub(iy3,jy1);				dy32            = vec_sub(iy3,jy2);				dy33            = vec_sub(iy3,jy3);				dz31            = vec_sub(iz3,jz1);				dz32            = vec_sub(iz3,jz2);				dz33            = vec_sub(iz3,jz3);				rsq11           = vec_madd(dx11,dx11,nul);				rsq12           = vec_madd(dx12,dx12,nul);				rsq13           = vec_madd(dx13,dx13,nul);				rsq21           = vec_madd(dx21,dx21,nul);				rsq22           = vec_madd(dx22,dx22,nul);				rsq23           = vec_madd(dx23,dx23,nul);				rsq31           = vec_madd(dx31,dx31,nul);				rsq32           = vec_madd(dx32,dx32,nul);				rsq33           = vec_madd(dx33,dx33,nul);				rsq11           = vec_madd(dy11,dy11,rsq11);				rsq12           = vec_madd(dy12,dy12,rsq12);				rsq13           = vec_madd(dy13,dy13,rsq13);				rsq21           = vec_madd(dy21,dy21,rsq21);				rsq22           = vec_madd(dy22,dy22,rsq22);				rsq23           = vec_madd(dy23,dy23,rsq23);				rsq31           = vec_madd(dy31,dy31,rsq31);				rsq32           = vec_madd(dy32,dy32,rsq32);				rsq33           = vec_madd(dy33,dy33,rsq33);				rsq11           = vec_madd(dz11,dz11,rsq11);				rsq12           = vec_madd(dz12,dz12,rsq12);				rsq13           = vec_madd(dz13,dz13,rsq13);				rsq21           = vec_madd(dz21,dz21,rsq21);				rsq22           = vec_madd(dz22,dz22,rsq22);				rsq23           = vec_madd(dz23,dz23,rsq23);				rsq31           = vec_madd(dz31,dz31,rsq31);				rsq32           = vec_madd(dz32,dz32,rsq32);				rsq33           = vec_madd(dz33,dz33,rsq33);				zero_highest_element_in_9_vectors(&rsq11,&rsq12,&rsq13,												  &rsq21,&rsq22,&rsq23,												  &rsq31,&rsq32,&rsq33);				do_9_invsqrt(rsq11,rsq12,rsq13,							 rsq21,rsq22,rsq23,							 rsq31,rsq32,rsq33,							 &rinv11,&rinv12,&rinv13,							 &rinv21,&rinv22,&rinv23,							 &rinv31,&rinv32,&rinv33);				zero_highest_element_in_9_vectors(&rinv11,&rinv12,&rinv13,												  &rinv21,&rinv22,&rinv23,												  &rinv31,&rinv32,&rinv33);				rinvsq11        = vec_madd(rinv11,rinv11,nul);				r11             = vec_madd(rsq11,rinv11,nul); 				r12             = vec_madd(rsq12,rinv12,nul); 				r13             = vec_madd(rsq13,rinv13,nul); 				r21             = vec_madd(rsq21,rinv21,nul); 				rinvsix         = vec_madd(rinvsq11,rinvsq11,nul);				r22             = vec_madd(rsq22,rinv22,nul); 				r23             = vec_madd(rsq23,rinv23,nul); 				r31             = vec_madd(rsq31,rinv31,nul); 				r32             = vec_madd(rsq32,rinv32,nul); 				r33             = vec_madd(rsq33,rinv33,nul); 				rinvsix         = vec_madd(rinvsix,rinvsq11,nul);				do_vonly_3_ctable_coul(VFtab,vec_madd(r11,tsc,nul),&VV11c);				do_vonly_3_ctable_coul(VFtab,vec_madd(r12,tsc,nul),&VV12c);				do_vonly_3_ctable_coul(VFtab,vec_madd(r13,tsc,nul),&VV13c);				do_vonly_3_ctable_coul(VFtab,vec_madd(r21,tsc,nul),&VV21c);				do_vonly_3_ctable_coul(VFtab,vec_madd(r22,tsc,nul),&VV22c);				do_vonly_3_ctable_coul(VFtab,vec_madd(r23,tsc,nul),&VV23c);				do_vonly_3_ctable_coul(VFtab,vec_madd(r31,tsc,nul),&VV31c);				do_vonly_3_ctable_coul(VFtab,vec_madd(r32,tsc,nul),&VV32c);				do_vonly_3_ctable_coul(VFtab,vec_madd(r33,tsc,nul),&VV33c);				Vvdwtot          = vec_nmsub(c6t,rinvsix,Vvdwtot);				Vvdwtot          = vec_madd(c12t,vec_madd(rinvsix,rinvsix,nul),										   Vvdwtot);				vctot           = vec_madd(qqOOt,VV11c,vctot);				vctot           = vec_madd(qqOHt,VV12c,vctot);				vctot           = vec_madd(qqOHt,VV13c,vctot);				vctot           = vec_madd(qqOHt,VV21c,vctot);				vctot           = vec_madd(qqHHt,VV22c,vctot);				vctot           = vec_madd(qqHHt,VV23c,vctot);				vctot           = vec_madd(qqOHt,VV31c,vctot);				vctot           = vec_madd(qqHHt,VV32c,vctot);				vctot           = vec_madd(qqHHt,VV33c,vctot);			} else if(k<(nj1-1)) {				jnra            = jjnr[k];				jnrb            = jjnr[k+1];				j3a             = 3*jnra;				j3b             = 3*jnrb;				load_2_3atoms(pos+j3a,pos+j3b,							  &jx1,&jy1,&jz1,&jx2,&jy2,&jz2,&jx3,&jy3,&jz3);				qqOOt           = vec_sld(qqOO,nul,8);				qqOHt           = vec_sld(qqOH,nul,8);				qqHHt           = vec_sld(qqHH,nul,8);				c6t             = vec_sld(c6,nul,8);				c12t            = vec_sld(c12,nul,8);				dx11            = vec_sub(ix1,jx1);				dx12            = vec_sub(ix1,jx2);				dx13            = vec_sub(ix1,jx3);				dy11            = vec_sub(iy1,jy1);				dy12            = vec_sub(iy1,jy2);				dy13            = vec_sub(iy1,jy3);				dz11            = vec_sub(iz1,jz1);				dz12            = vec_sub(iz1,jz2);				dz13            = vec_sub(iz1,jz3);				dx21            = vec_sub(ix2,jx1);				dx22            = vec_sub(ix2,jx2);				dx23            = vec_sub(ix2,jx3);				dy21            = vec_sub(iy2,jy1);				dy22            = vec_sub(iy2,jy2);				dy23            = vec_sub(iy2,jy3);				dz21            = vec_sub(iz2,jz1);				dz22            = vec_sub(iz2,jz2);				dz23            = vec_sub(iz2,jz3);				dx31            = vec_sub(ix3,jx1);				dx32            = vec_sub(ix3,jx2);				dx33            = vec_sub(ix3,jx3);				dy31            = vec_sub(iy3,jy1);				dy32            = vec_sub(iy3,jy2);				dy33            = vec_sub(iy3,jy3);				dz31            = vec_sub(iz3,jz1);				dz32            = vec_sub(iz3,jz2);				dz33            = vec_sub(iz3,jz3);				rsq11           = vec_madd(dx11,dx11,nul);				rsq12           = vec_madd(dx12,dx12,nul);				rsq13           = vec_madd(dx13,dx13,nul);				rsq21           = vec_madd(dx21,dx21,nul);				rsq22           = vec_madd(dx22,dx22,nul);				rsq23           = vec_madd(dx23,dx23,nul);				rsq31           = vec_madd(dx31,dx31,nul);				rsq32           = vec_madd(dx32,dx32,nul);				rsq33           = vec_madd(dx33,dx33,nul);				rsq11           = vec_madd(dy11,dy11,rsq11);				rsq12           = vec_madd(dy12,dy12,rsq12);				rsq13           = vec_madd(dy13,dy13,rsq13);				rsq21           = vec_madd(dy21,dy21,rsq21);				rsq22           = vec_madd(dy22,dy22,rsq22);				rsq23           = vec_madd(dy23,dy23,rsq23);				rsq31           = vec_madd(dy31,dy31,rsq31);				rsq32           = vec_madd(dy32,dy32,rsq32);				rsq33           = vec_madd(dy33,dy33,rsq33);				rsq11           = vec_madd(dz11,dz11,rsq11);				rsq12           = vec_madd(dz12,dz12,rsq12);				rsq13           = vec_madd(dz13,dz13,rsq13);				rsq21           = vec_madd(dz21,dz21,rsq21);				rsq22           = vec_madd(dz22,dz22,rsq22);				rsq23           = vec_madd(dz23,dz23,rsq23);				rsq31           = vec_madd(dz31,dz31,rsq31);				rsq32           = vec_madd(dz32,dz32,rsq32);				rsq33           = vec_madd(dz33,dz33,rsq33);				zero_highest_2_elements_in_9_vectors(&rsq11,&rsq12,&rsq13,													 &rsq21,&rsq22,&rsq23,													 &rsq31,&rsq32,&rsq33);				do_9_invsqrt(rsq11,rsq12,rsq13,							 rsq21,rsq22,rsq23,							 rsq31,rsq32,rsq33,							 &rinv11,&rinv12,&rinv13,							 &rinv21,&rinv22,&rinv23,							 &rinv31,&rinv32,&rinv33);      				zero_highest_2_elements_in_9_vectors(&rinv11,&rinv12,&rinv13,													 &rinv21,&rinv22,&rinv23,													 &rinv31,&rinv32,&rinv33);				rinvsq11        = vec_madd(rinv11,rinv11,nul);				r11             = vec_madd(rsq11,rinv11,nul); 				r12             = vec_madd(rsq12,rinv12,nul); 				r13             = vec_madd(rsq13,rinv13,nul); 				r21             = vec_madd(rsq21,rinv21,nul); 				rinvsix         = vec_madd(rinvsq11,rinvsq11,nul);				r22             = vec_madd(rsq22,rinv22,nul); 				r23             = vec_madd(rsq23,rinv23,nul); 				r31             = vec_madd(rsq31,rinv31,nul); 				r32             = vec_madd(rsq32,rinv32,nul); 				r33             = vec_madd(rsq33,rinv33,nul); 				rinvsix         = vec_madd(rinvsix,rinvsq11,nul);				do_vonly_2_ctable_coul(VFtab,vec_madd(r11,tsc,nul),&VV11c);				do_vonly_2_ctable_coul(VFtab,vec_madd(r12,tsc,nul),&VV12c);				do_vonly_2_ctable_coul(VFtab,vec_madd(r13,tsc,nul),&VV13c);				do_vonly_2_ctable_coul(VFtab,vec_madd(r21,tsc,nul),&VV21c);				do_vonly_2_ctable_coul(VFtab,vec_madd(r22,tsc,nul),&VV22c);				do_vonly_2_ctable_coul(VFtab,vec_madd(r23,tsc,nul),&VV23c);				do_vonly_2_ctable_coul(VFtab,vec_madd(r31,tsc,nul),&VV31c);				do_vonly_2_ctable_coul(VFtab,vec_madd(r32,tsc,nul),&VV32c);				do_vonly_2_ctable_coul(VFtab,vec_madd(r33,tsc,nul),&VV33c);				Vvdwtot          = vec_nmsub(c6t,rinvsix,Vvdwtot);				Vvdwtot          = vec_madd(c12t,vec_madd(rinvsix,rinvsix,nul),										   Vvdwtot);				vctot           = vec_madd(qqOOt,VV11c,vctot);				vctot           = vec_madd(qqOHt,VV12c,vctot);				vctot           = vec_madd(qqOHt,VV13c,vctot);				vctot           = vec_madd(qqOHt,VV21c,vctot);				vctot           = vec_madd(qqHHt,VV22c,vctot);				vctot           = vec_madd(qqHHt,VV23c,vctot);				vctot           = vec_madd(qqOHt,VV31c,vctot);				vctot           = vec_madd(qqHHt,VV32c,vctot);				vctot           = vec_madd(qqHHt,VV33c,vctot);			} else if(k<nj1) {				jnra            = jjnr[k];				j3a             = 3*jnra;				load_1_3atoms(pos+j3a,							  &jx1,&jy1,&jz1,&jx2,&jy2,&jz2,&jx3,&jy3,&jz3);				qqOOt           = vec_sld(qqOO,nul,12);				qqOHt           = vec_sld(qqOH,nul,12);				qqHHt           = vec_sld(qqHH,nul,12);				c6t             = vec_sld(c6,nul,12);				c12t            = vec_sld(c12,nul,12);				dx11            = vec_sub(ix1,jx1);				dx12            = vec_sub(ix1,jx2);				dx13            = vec_sub(ix1,jx3);				dy11            = vec_sub(iy1,jy1);				dy12            = vec_sub(iy1,jy2);				dy13            = vec_sub(iy1,jy3);				dz11            = vec_sub(iz1,jz1);				dz12            = vec_sub(iz1,jz2);				dz13            = vec_sub(iz1,jz3);				dx21            = vec_sub(ix2,jx1);				dx22            = vec_sub(ix2,jx2);				dx23            = vec_sub(ix2,jx3);				dy21            = vec_sub(iy2,jy1);				dy22            = vec_sub(iy2,jy2);				dy23            = vec_sub(iy2,jy3);				dz21            = vec_sub(iz2,jz1);				dz22            = vec_sub(iz2,jz2);				dz23            = vec_sub(iz2,jz3);				dx31            = vec_sub(ix3,jx1);				dx32            = vec_sub(ix3,jx2);				dx33            = vec_sub(ix3,jx3);				dy31            = vec_sub(iy3,jy1);				dy32            = vec_sub(iy3,jy2);				dy33            = vec_sub(iy3,jy3);				dz31            = vec_sub(iz3,jz1);				dz32            = vec_sub(iz3,jz2);				dz33            = vec_sub(iz3,jz3);				rsq11           = vec_madd(dx11,dx11,nul);				rsq12           = vec_madd(dx12,dx12,nul);				rsq13           = vec_madd(dx13,dx13,nul);				rsq21           = vec_madd(dx21,dx21,nul);				rsq22           = vec_madd(dx22,dx22,nul);				rsq23           = vec_madd(dx23,dx23,nul);				rsq31           = vec_madd(dx31,dx31,nul);				rsq32           = vec_madd(dx32,dx32,nul);				rsq33           = vec_madd(dx33,dx33,nul);				rsq11           = vec_madd(dy11,dy11,rsq11);				rsq12           = vec_madd(dy12,dy12,rsq12);				rsq13           = vec_madd(dy13,dy13,rsq13);				rsq21           = vec_madd(dy21,dy21,rsq21);				rsq22           = vec_madd(dy22,dy22,rsq22);				rsq23           = vec_madd(dy23,dy23,rsq23);				rsq31           = vec_madd(dy31,dy31,rsq31);				rsq32           = vec_madd(dy32,dy32,rsq32);				rsq33           = vec_madd(dy33,dy33,rsq33);				rsq11           = vec_madd(dz11,dz11,rsq11);				rsq12           = vec_madd(dz12,dz12,rsq12);				rsq13           = vec_madd(dz13,dz13,rsq13);				rsq21           = vec_madd(dz21,dz21,rsq21);				rsq22           = vec_madd(dz22,dz22,rsq22);				rsq23           = vec_madd(dz23,dz23,rsq23);				rsq31           = vec_madd(dz31,dz31,rsq31);				rsq32           = vec_madd(dz32,dz32,rsq32);				rsq33           = vec_madd(dz33,dz33,rsq33);				zero_highest_3_elements_in_9_vectors(&rsq11,&rsq12,&rsq13,													 &rsq21,&rsq22,&rsq23,													 &rsq31,&rsq32,&rsq33);				do_9_invsqrt(rsq11,rsq12,rsq13,							 rsq21,rsq22,rsq23,							 rsq31,rsq32,rsq33,							 &rinv11,&rinv12,&rinv13,							 &rinv21,&rinv22,&rinv23,							 &rinv31,&rinv32,&rinv33);				zero_highest_3_elements_in_9_vectors(&rinv11,&rinv12,&rinv13,													 &rinv21,&rinv22,&rinv23,													 &rinv31,&rinv32,&rinv33);				rinvsq11        = vec_madd(rinv11,rinv11,nul);				r11             = vec_madd(rsq11,rinv11,nul); 				r12             = vec_madd(rsq12,rinv12,nul); 				r13             = vec_madd(rsq13,rinv13,nul); 				r21             = vec_madd(rsq21,rinv21,nul); 

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?