Updated intel syntax x86-64 asm files to also support MS win64 call convention (ifdef...
[gromacs/rigid-bodies.git] / src / gmxlib / nonbonded / nb_kernel_x86_64_sse / nb_kernel301_x86_64_sse.h
blob949293e6fa0257c06e21a1a56977b95d150d0f06
1 /* -*- mode: c; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; c-file-style: "stroustrup"; -*-
3 *
4 * This file is part of Gromacs Copyright (c) 1991-2004
5 * David van der Spoel, Erik Lindahl, University of Groningen.
7 * This program is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License
9 * as published by the Free Software Foundation; either version 2
10 * of the License, or (at your option) any later version.
12 * To help us fund GROMACS development, we humbly ask that you cite
13 * the research papers on the package. Check out http://www.gromacs.org
15 * And Hey:
16 * Gnomes, ROck Monsters And Chili Sauce
18 #ifndef _NB_KERNEL301_X86_64_SSE_H_
19 #define _NB_KERNEL301_X86_64_SSE_H_
22 /*! \file nb_kernel301_x86_64_sse.h
23 * \brief x86_64 SSE-optimized versions of nonbonded kernel 301
25 * \internal
28 #ifdef __cplusplus
29 extern "C" {
30 #endif
31 #if 0
33 #endif
37 /*! \brief Nonbonded kernel 301 with forces, optimized for x86_64 sse.
39 * \internal
41 * <b>Coulomb interaction:</b> Tabulated <br>
42 * <b>VdW interaction:</b> No <br>
43 * <b>Water optimization:</b> SPC/TIP3P interacting with non-water atoms <br>
44 * <b>Forces calculated:</b> Yes <br>
46 * \note All level1 and level2 nonbonded kernels use the same
47 * call sequence. Parameters are documented in nb_kernel.h
49 void
50 nb_kernel301_x86_64_sse (int * nri, int iinr[], int jindex[],
51 int jjnr[], int shift[], float shiftvec[],
52 float fshift[], int gid[], float pos[],
53 float faction[], float charge[], float * facel,
54 float * krf, float * crf, float Vc[],
55 int type[], int * ntype, float vdwparam[],
56 float Vvdw[], float * tabscale, float VFtab[],
57 float invsqrta[], float dvda[], float * gbtabscale,
58 float GBtab[], int * nthreads, int * count,
59 void * mtx, int * outeriter,int * inneriter,
60 float * work);
64 /*! \brief Nonbonded kernel 301 without forces, optimized for x86_64 sse.
66 * \internal
68 * <b>Coulomb interaction:</b> Tabulated <br>
69 * <b>VdW interaction:</b> No <br>
70 * <b>Water optimization:</b> SPC/TIP3P interacting with non-water atoms <br>
71 * <b>Forces calculated:</b> No <br>
73 * \note All level1 and level2 nonbonded kernels use the same
74 * call sequence. Parameters are documented in nb_kernel.h
76 void
77 nb_kernel301nf_x86_64_sse(int * nri, int iinr[], int jindex[],
78 int jjnr[], int shift[], float shiftvec[],
79 float fshift[], int gid[], float pos[],
80 float faction[], float charge[], float * facel,
81 float * krf, float * crf, float Vc[],
82 int type[], int * ntype, float vdwparam[],
83 float Vvdw[], float * tabscale, float VFtab[],
84 float invsqrta[], float dvda[], float * gbtabscale,
85 float GBtab[], int * nthreads, int * count,
86 void * mtx, int * outeriter,int * inneriter,
87 float * work);
90 #ifdef __cplusplus
92 #endif
96 #endif /* _NB_KERNEL301_X86_64_SSE_H_ */