Merge branch release-4-6 into master
[alexxy/gromacs.git] / src / gromacs / legacyheaders / types / nbnxn_pairlist.h
index 77d269a16075df018cc6ec6eeb4feb3c0a5eb195..5e3f5886f56060e1843973abfe16b7a281b97382 100644 (file)
 #ifndef _nbnxn_pairlist_h
 #define _nbnxn_pairlist_h
 
+#ifdef HAVE_CONFIG_H
+#  include <config.h>
+#endif
+
 #ifdef __cplusplus
 extern "C" {
 #endif
@@ -71,8 +75,12 @@ typedef void nbnxn_free_t (void *ptr);
  * is found, all subsequent j-entries in the i-entry also have full masks.
  */
 typedef struct {
-    int      cj;    /* The j-cluster                             */
-    unsigned excl;  /* The topology exclusion (interaction) bits */
+    int      cj;    /* The j-cluster                    */
+    unsigned excl;  /* The exclusion (interaction) bits */
+#ifdef GMX_CPU_ACCELERATION_IBM_QPX
+    /* Indices into the arrays of SIMD interaction masks. */
+    char     interaction_mask_indices[4];
+#endif
 } nbnxn_cj_t;
 
 /* In nbnxn_ci_t the integer shift contains the shift in the lower 7 bits.
@@ -254,12 +262,14 @@ typedef struct {
      */
     unsigned                *simd_exclusion_filter1;
     unsigned                *simd_exclusion_filter2;
-
-    int                      nout;            /* The number of force arrays                         */
-    nbnxn_atomdata_output_t *out;             /* Output data structures               */
-    int                      nalloc;          /* Allocation size of all arrays (for x/f *x/fstride) */
-    gmx_bool                 bUseBufferFlags; /* Use the flags or operate on all atoms     */
-    nbnxn_buffer_flags_t     buffer_flags;    /* Flags for buffer zeroing+reduc.  */
+#ifdef GMX_CPU_ACCELERATION_IBM_QPX
+    real                    *simd_interaction_array; /* Array of masks needed for exclusions on QPX */
+#endif
+    int                      nout;                   /* The number of force arrays                         */
+    nbnxn_atomdata_output_t *out;                    /* Output data structures               */
+    int                      nalloc;                 /* Allocation size of all arrays (for x/f *x/fstride) */
+    gmx_bool                 bUseBufferFlags;        /* Use the flags or operate on all atoms     */
+    nbnxn_buffer_flags_t     buffer_flags;           /* Flags for buffer zeroing+reduc.  */
 } nbnxn_atomdata_t;
 
 #ifdef __cplusplus