/*
- * Note: this file was generated by the Gromacs sse2_double kernel generator.
+ * This file is part of the GROMACS molecular simulation package.
*
- * This source code is part of
+ * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * David van der Spoel, Berk Hess, Erik Lindahl, and including many
+ * others, as listed in the AUTHORS file in the top-level source
+ * directory and at http://www.gromacs.org.
*
- * G R O M A C S
+ * GROMACS is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public License
+ * as published by the Free Software Foundation; either version 2.1
+ * of the License, or (at your option) any later version.
*
- * Copyright (c) 2001-2012, The GROMACS Development Team
+ * GROMACS is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
*
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with GROMACS; if not, see
+ * http://www.gnu.org/licenses, or write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*
- * This program is free software; you can redistribute it and/or modify it under
- * the terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option) any
- * later version.
+ * If you want to redistribute modifications to GROMACS, please
+ * consider that scientific software is very special. Version
+ * control is crucial - bugs must be traceable. We will be happy to
+ * consider code for inclusion in the official distribution, but
+ * derived work must not be called official GROMACS. Details are found
+ * in the README & COPYING files - if they are missing, get the
+ * official version at http://www.gromacs.org.
*
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website.
+ * To help us fund GROMACS development, we humbly ask that you cite
+ * the research papers on the package. Check out http://www.gromacs.org.
+ */
+/*
+ * Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
#ifdef HAVE_CONFIG_H
#include <config.h>
*/
void
nb_kernel_ElecCoul_VdwCSTab_GeomW4W4_VF_sse2_double
- (t_nblist * gmx_restrict nlist,
- rvec * gmx_restrict xx,
- rvec * gmx_restrict ff,
- t_forcerec * gmx_restrict fr,
- t_mdatoms * gmx_restrict mdatoms,
- nb_kernel_data_t * gmx_restrict kernel_data,
- t_nrnb * gmx_restrict nrnb)
+ (t_nblist * gmx_restrict nlist,
+ rvec * gmx_restrict xx,
+ rvec * gmx_restrict ff,
+ t_forcerec * gmx_restrict fr,
+ t_mdatoms * gmx_restrict mdatoms,
+ nb_kernel_data_t gmx_unused * gmx_restrict kernel_data,
+ t_nrnb * gmx_restrict nrnb)
{
- /* Suffixes 0,1,2,3 refer to particle indices for waters in the inner or outer loop, or
+ /* Suffixes 0,1,2,3 refer to particle indices for waters in the inner or outer loop, or
* just 0 for non-waters.
* Suffixes A,B refer to j loop unrolling done with SSE double precision, e.g. for the two different
* jnr indices corresponding to data put in the four positions in the SIMD register.
jnrB = jjnr[jidx+1];
j_coord_offsetA = DIM*jnrA;
j_coord_offsetB = DIM*jnrB;
-
+
/* load j atom coordinates */
gmx_mm_load_4rvec_2ptr_swizzle_pd(x+j_coord_offsetA,x+j_coord_offsetB,
&jx0,&jy0,&jz0,&jx1,&jy1,&jz1,&jx2,
&jy2,&jz2,&jx3,&jy3,&jz3);
-
+
/* Calculate displacement vector */
dx00 = _mm_sub_pd(ix0,jx0);
dy00 = _mm_sub_pd(iy0,jy0);
gmx_mm_load_4rvec_1ptr_swizzle_pd(x+j_coord_offsetA,
&jx0,&jy0,&jz0,&jx1,&jy1,&jz1,&jx2,
&jy2,&jz2,&jx3,&jy3,&jz3);
-
+
/* Calculate displacement vector */
dx00 = _mm_sub_pd(ix0,jx0);
dy00 = _mm_sub_pd(iy0,jy0);
*/
void
nb_kernel_ElecCoul_VdwCSTab_GeomW4W4_F_sse2_double
- (t_nblist * gmx_restrict nlist,
- rvec * gmx_restrict xx,
- rvec * gmx_restrict ff,
- t_forcerec * gmx_restrict fr,
- t_mdatoms * gmx_restrict mdatoms,
- nb_kernel_data_t * gmx_restrict kernel_data,
- t_nrnb * gmx_restrict nrnb)
+ (t_nblist * gmx_restrict nlist,
+ rvec * gmx_restrict xx,
+ rvec * gmx_restrict ff,
+ t_forcerec * gmx_restrict fr,
+ t_mdatoms * gmx_restrict mdatoms,
+ nb_kernel_data_t gmx_unused * gmx_restrict kernel_data,
+ t_nrnb * gmx_restrict nrnb)
{
- /* Suffixes 0,1,2,3 refer to particle indices for waters in the inner or outer loop, or
+ /* Suffixes 0,1,2,3 refer to particle indices for waters in the inner or outer loop, or
* just 0 for non-waters.
* Suffixes A,B refer to j loop unrolling done with SSE double precision, e.g. for the two different
* jnr indices corresponding to data put in the four positions in the SIMD register.
jnrB = jjnr[jidx+1];
j_coord_offsetA = DIM*jnrA;
j_coord_offsetB = DIM*jnrB;
-
+
/* load j atom coordinates */
gmx_mm_load_4rvec_2ptr_swizzle_pd(x+j_coord_offsetA,x+j_coord_offsetB,
&jx0,&jy0,&jz0,&jx1,&jy1,&jz1,&jx2,
&jy2,&jz2,&jx3,&jy3,&jz3);
-
+
/* Calculate displacement vector */
dx00 = _mm_sub_pd(ix0,jx0);
dy00 = _mm_sub_pd(iy0,jy0);
gmx_mm_load_4rvec_1ptr_swizzle_pd(x+j_coord_offsetA,
&jx0,&jy0,&jz0,&jx1,&jy1,&jz1,&jx2,
&jy2,&jz2,&jx3,&jy3,&jz3);
-
+
/* Calculate displacement vector */
dx00 = _mm_sub_pd(ix0,jx0);
dy00 = _mm_sub_pd(iy0,jy0);