HiRep 0.1
|
This file contains useful macros that perform OpenMP reduction operations and are necessary to define iterations over sites on the lattice. More...
#include "hr_omp.h"
Go to the source code of this file.
Macros | |
#define | _PIECE_FOR(type, ip) |
Iterate over the pieces of the given geometry. | |
#define | _SITE_FOR_RED(type, ip, is, redop1, redop2) |
Reduced iteration over sites of a given piece. Variables given as redop parameters are reduced using an OpenMP reduction sum. | |
#define | _SITE_FOR(type, ip, is) |
Iterate over sites of a given piece. | |
#define | _SITE_FOR_SUM(type, ip, is, ...) |
Iterate over sites on a given piece and omp-reduce using a sum. | |
#define | _SITE_FOR_MAX(type, ip, is, ...) |
Iterate over sites on a given piece and omp-reduce using a max. | |
#define | _SITE_FOR_MIN(type, ip, is, ...) |
Iterate over sites on a given piece and omp-reduce using a min. *. | |
#define | _MASTER_FOR_RED(type, is, redop1, redop2) |
Reduced iteration over all sites of the local lattice. Variables given as redop parameters will be reduced using an OpenMP reduction sum. | |
#define | _MASTER_FOR(type, is) |
Iterate over all sites of the local lattice. | |
#define | _MASTER_FOR_SUM(type, is, ...) |
Reduced iteration over all sites of the local lattice and omp-reduce using a sum. | |
#define | _MASTER_FOR_MAX(type, is, ...) |
Reduced iteration over all sites of the local lattice and omp-reduce using a max. | |
#define | _MASTER_FOR_MIN(type, is, ...) |
Reduced iteration over all sites of the local lattice and omp-reduce using a min. | |
#define | _FUSE_FOR_RED(type, ip, is, redop1, redop2) |
Fuse reduced on the current piece FIXME: more desc. | |
#define | _FUSE_MASTER_FOR_RED(type, is, redop1, redop2) |
Fuse reduce on the whole local lattice TODO: more desc. | |
#define | _ONE_SPINOR_FOR_RED(s, redop1, redop2) |
Iterate over all sites of the local lattice but not by index in memory but by spinor, applying a OpenMP reduction to the other variables. The current spinor can be found using _SPINOR_PTR(s). | |
#define | _ONE_SITE_FOR_RED(s, redop1, redop2) |
Iterate over all sites of the local lattice but not by index in memory but by site, applying a OpenMP reduction to the other variables. The current site can be found using _SITE_PTR(s). | |
#define | _ONE_SPINOR_FOR_SUM(s, ...) |
Iterate over all sites of the local lattice but not by index in memory but by spinor, applying an OpenMP sum reduction to the other variables. The current spinor can be found using _SPINOR_PTR(s). | |
#define | _ONE_SITE_FOR_SUM(s, ...) |
Iterate over all sites of the local lattice but not by index in memory but by site, applying an OpenMP sum reduction to the other variables. The current site can be found using _SITE_PTR(s). | |
#define | _ONE_SITE_FOR_MAX(s, ...) |
Iterate over all sites of the local lattice but not by index in memory but by site, applying an OpenMP max reduction to the other variables. The current site can be found using _SITE_PTR(s). | |
#define | _TWO_SPINORS_FOR_RED(s1, s2, redop1, redop2) |
Iterate over two corresponding spinors on the given fields, applying an OpenMP reduction operation on the other given variables. The current spinors can be found using _SPINOR_PTR(s1) and _SPINOR_PTR(s2). | |
#define | _TWO_SITE_FOR_RED(s1, s2, redop1, redop2) |
Iterate over two corresponding sites on the given fields, applying an OpenMP reduction operation on the other given variables. The current sites can be found using _SITE_PTR(s1) and _SITE_PTR(s2). | |
#define | _TWO_SPINORS_FOR_SUM(s1, s2, ...) |
Iterate over two corresponding spinors on the given fields, applying an OpenMP sum reduction on the other given variables. The current spinors can be found using _SPINOR_PTR(s1) and _SPINOR_PTR(s2). | |
#define | _TWO_SITE_FOR_SUM(s1, s2, ...) |
Iterate over two corresponding sites on the given fields, applying an OpenMP sum reduction on the other given variables. The current sites can be found using _SITE_PTR(s1) and _SITE_PTR(s2). | |
#define | _THREE_SPINORS_FOR_RED(s1, s2, s3, redop1, redop2) |
Iterate over three corresponding spinors on the given fields, applying an OpenMP reduction on the other given variables. The current spinors can be found using _SPINOR_PTR(s1) and _SPINOR_PTR(s2). | |
#define | _THREE_SITE_FOR_RED(s1, s2, s3, redop1, redop2) |
Iterate over three corresponding sites on the given fields, applying an OpenMP reduction on the other given variables. The current sites can be found using _SITE_PTR(s1) and _SITE_PTR(s2). | |
#define | _ONE_SPINOR_FOR(s) |
Iterate over all sites of the local lattice but not by index in memory but by spinor. The current spinor can be found using _SPINOR_PTR(s). | |
#define | _ONE_SITE_FOR(s) |
Iterate over all sites of the local lattice but not by index in memory but by site. The current site can be found using _SITE_PTR(s). | |
#define | _TWO_SPINORS_FOR(s1, s2) |
Iterate over two corresponding spinors on the given fields. The current spinors can be found using _SPINOR_PTR(s1) and _SPINOR_PTR(s2). | |
#define | _TWO_SITE_FOR(s1, s2) |
Iterate over two corresponding sites on the given fields. The current sites can be found using _SITE_PTR(s1) and _SITE_PTR(s2). | |
#define | _THREE_SPINORS_FOR(s1, s2, s3) |
Iterate over all three corresponding spinors on the given fields. The current spinors can be found using _SPINOR_PTR(s1), _SPINOR_PTR(s2), _SPINOR_PTR(s3). | |
#define | _THREE_SITE_FOR(s1, s2, s3) |
Iterate over all three corresponding sites on the given fields. The current sites can be found using _SITE_PTR(s1), _SITE_PTR(s2), _SITE_PTR(s3). | |
#define | _SPINOR_PTR(s) |
Retrieve current spinor. This macro only works inside _SPINOR_FOR, _TWO_SPINORS_FOR or _THREE_SPINORS_FOR. | |
#define | _SITE_PTR(__s, __mu, __dim) |
Retrieve current site. This macro only works inside _SITE_FOR, _TWO_SITE_FOR or _THREE_SITE_FOR. | |
This file contains useful macros that perform OpenMP reduction operations and are necessary to define iterations over sites on the lattice.
#define _FUSE_FOR_RED | ( | type, | |
ip, | |||
is, | |||
redop1, | |||
redop2 ) |
Fuse reduced on the current piece FIXME: more desc.
type | geometry_descriptor that contains information on the geometry of the local lattice. |
ip | Identifying index of the current piece |
is | Local variable that runs over all site indices on the given piece. |
redop1 | Variable to reduce |
redop2 | Variable to reduce |
#define _FUSE_MASTER_FOR_RED | ( | type, | |
is, | |||
redop1, | |||
redop2 ) |
Fuse reduce on the whole local lattice TODO: more desc.
type | geometry_descriptor that contains information on the geometry of the local lattice. |
is | Local variable that runs over all site indices on the given piece. |
redop1 | Variable to reduce |
redop2 | Variable to reduce |
#define _MASTER_FOR | ( | type, | |
is ) |
Iterate over all sites of the local lattice.
type | geometry_descriptor that contains information on the geometry of the local lattice |
is | Local variable that runs over all site indices |
#define _MASTER_FOR_MAX | ( | type, | |
is, | |||
... ) |
Reduced iteration over all sites of the local lattice and omp-reduce using a max.
type | geometry_descriptor that contains information on the geometry of the local lattice. |
is | Local variable that runs over all site indices on the given piece |
#define _MASTER_FOR_MIN | ( | type, | |
is, | |||
... ) |
Reduced iteration over all sites of the local lattice and omp-reduce using a min.
type | geometry_descriptor that contains information on the geometry of the local lattice. |
is | Local variable that runs over all site indices on the given piece |
#define _MASTER_FOR_RED | ( | type, | |
is, | |||
redop1, | |||
redop2 ) |
Reduced iteration over all sites of the local lattice. Variables given as redop parameters will be reduced using an OpenMP reduction sum.
type | geometry_descriptor that contains information on the geometry of the local and global lattice |
is | Local variable that runs over all site indices on the local lattice |
redop1 | Variable to reduce |
redop2 | Variable to reduce |
#define _MASTER_FOR_SUM | ( | type, | |
is, | |||
... ) |
Reduced iteration over all sites of the local lattice and omp-reduce using a sum.
type | geometry_descriptor that contains information on the geometry of the local lattice. |
is | Local variable that runs over all site indices on the given piece |
#define _ONE_SITE_FOR | ( | s | ) |
Iterate over all sites of the local lattice but not by index in memory but by site. The current site can be found using _SITE_PTR(s).
s | Input field |
#define _ONE_SITE_FOR_MAX | ( | s, | |
... ) |
Iterate over all sites of the local lattice but not by index in memory but by site, applying an OpenMP max reduction to the other variables. The current site can be found using _SITE_PTR(s).
s | Input field |
... | Variables to reduce |
#define _ONE_SITE_FOR_RED | ( | s, | |
redop1, | |||
redop2 ) |
Iterate over all sites of the local lattice but not by index in memory but by site, applying a OpenMP reduction to the other variables. The current site can be found using _SITE_PTR(s).
s | Input field |
redop1 | Variable to reduce |
redop2 | Variable to reduce |
#define _ONE_SITE_FOR_SUM | ( | s, | |
... ) |
Iterate over all sites of the local lattice but not by index in memory but by site, applying an OpenMP sum reduction to the other variables. The current site can be found using _SITE_PTR(s).
s | Input field |
... | Variables to reduce |
#define _ONE_SPINOR_FOR | ( | s | ) |
Iterate over all sites of the local lattice but not by index in memory but by spinor. The current spinor can be found using _SPINOR_PTR(s).
s | Input spinor field |
#define _ONE_SPINOR_FOR_RED | ( | s, | |
redop1, | |||
redop2 ) |
Iterate over all sites of the local lattice but not by index in memory but by spinor, applying a OpenMP reduction to the other variables. The current spinor can be found using _SPINOR_PTR(s).
s | Input spinor field |
redop1 | Variable to reduce |
redop2 | Variable to reduce |
#define _ONE_SPINOR_FOR_SUM | ( | s, | |
... ) |
Iterate over all sites of the local lattice but not by index in memory but by spinor, applying an OpenMP sum reduction to the other variables. The current spinor can be found using _SPINOR_PTR(s).
s | Input spinor field |
... | Variables to reduce |
#define _PIECE_FOR | ( | type, | |
ip ) |
Iterate over the pieces of the given geometry.
type | geometry_descriptor that contains information on the geometry of the local and global lattice |
ip | local variable that denotes the piece index |
#define _SITE_FOR | ( | type, | |
ip, | |||
is ) |
Iterate over sites of a given piece.
type | geometry_descriptor that contains information on the geometry of the local lattice |
ip | Identifying index of the current piece |
is | Local variable that runs over all site indices on the given piece |
#define _SITE_FOR_MAX | ( | type, | |
ip, | |||
is, | |||
... ) |
Iterate over sites on a given piece and omp-reduce using a max.
type | geometry_descriptor that contains information on the geometry of the local lattice. |
ip | Identifying index of the current piece |
is | local variable that runs over all site indices on the given piece |
#define _SITE_FOR_MIN | ( | type, | |
ip, | |||
is, | |||
... ) |
Iterate over sites on a given piece and omp-reduce using a min. *.
type | geometry_descriptor that contains information on the geometry of the local lattice. |
ip | Identifying index of the current piece |
is | local variable that runs over all site indices on the given piece |
#define _SITE_FOR_RED | ( | type, | |
ip, | |||
is, | |||
redop1, | |||
redop2 ) |
Reduced iteration over sites of a given piece. Variables given as redop parameters are reduced using an OpenMP reduction sum.
type | geometry_descriptor that contains information on the geometry of the local and global lattice |
ip | Identifying index of the current piece |
is | Local variable that runs over all site indices on the piece |
redop1 | Variable to reduce |
redop2 | Variable to reduce |
#define _SITE_FOR_SUM | ( | type, | |
ip, | |||
is, | |||
... ) |
Iterate over sites on a given piece and omp-reduce using a sum.
type | geometry_descriptor that contains information on the geometry of the local lattice. |
ip | Identifying index of the current piece |
is | local variable that runs over all site indices on the given piece |
#define _SITE_PTR | ( | __s, | |
__mu, | |||
__dim ) |
Retrieve current site. This macro only works inside _SITE_FOR, _TWO_SITE_FOR or _THREE_SITE_FOR.
s | Field that is being iterated over. |
#define _SPINOR_PTR | ( | s | ) |
Retrieve current spinor. This macro only works inside _SPINOR_FOR, _TWO_SPINORS_FOR or _THREE_SPINORS_FOR.
s | Spinor field that is being iterated over. |
#define _THREE_SITE_FOR | ( | s1, | |
s2, | |||
s3 ) |
Iterate over all three corresponding sites on the given fields. The current sites can be found using _SITE_PTR(s1), _SITE_PTR(s2), _SITE_PTR(s3).
s1 | First input spinor field |
s2 | Second input spinor field |
s3 | Third input spinor field |
#define _THREE_SITE_FOR_RED | ( | s1, | |
s2, | |||
s3, | |||
redop1, | |||
redop2 ) |
Iterate over three corresponding sites on the given fields, applying an OpenMP reduction on the other given variables. The current sites can be found using _SITE_PTR(s1) and _SITE_PTR(s2).
s1 | First input field |
s2 | Second input field |
redop1 | Variable to reduce |
redop2 | Variable to reduce |
#define _THREE_SPINORS_FOR | ( | s1, | |
s2, | |||
s3 ) |
Iterate over all three corresponding spinors on the given fields. The current spinors can be found using _SPINOR_PTR(s1), _SPINOR_PTR(s2), _SPINOR_PTR(s3).
s1 | First input spinor field |
s2 | Second input spinor field |
s3 | Third input spinor field |
#define _THREE_SPINORS_FOR_RED | ( | s1, | |
s2, | |||
s3, | |||
redop1, | |||
redop2 ) |
Iterate over three corresponding spinors on the given fields, applying an OpenMP reduction on the other given variables. The current spinors can be found using _SPINOR_PTR(s1) and _SPINOR_PTR(s2).
s1 | First input spinor field |
s2 | Second input spinor field |
redop1 | Variable to reduce |
redop2 | Variable to reduce |
#define _TWO_SITE_FOR | ( | s1, | |
s2 ) |
Iterate over two corresponding sites on the given fields. The current sites can be found using _SITE_PTR(s1) and _SITE_PTR(s2).
s1 | First input spinor field |
s2 | Second input spinor field |
#define _TWO_SITE_FOR_RED | ( | s1, | |
s2, | |||
redop1, | |||
redop2 ) |
Iterate over two corresponding sites on the given fields, applying an OpenMP reduction operation on the other given variables. The current sites can be found using _SITE_PTR(s1) and _SITE_PTR(s2).
s1 | First input field |
s2 | Second input field |
redop1 | Variable to reduce |
redop2 | Variable to reduce |
#define _TWO_SITE_FOR_SUM | ( | s1, | |
s2, | |||
... ) |
Iterate over two corresponding sites on the given fields, applying an OpenMP sum reduction on the other given variables. The current sites can be found using _SITE_PTR(s1) and _SITE_PTR(s2).
s1 | First input field |
s2 | Second input field |
... | Variables to reduce |
#define _TWO_SPINORS_FOR | ( | s1, | |
s2 ) |
Iterate over two corresponding spinors on the given fields. The current spinors can be found using _SPINOR_PTR(s1) and _SPINOR_PTR(s2).
s1 | First input spinor field |
s2 | Second input spinor field |
#define _TWO_SPINORS_FOR_RED | ( | s1, | |
s2, | |||
redop1, | |||
redop2 ) |
Iterate over two corresponding spinors on the given fields, applying an OpenMP reduction operation on the other given variables. The current spinors can be found using _SPINOR_PTR(s1) and _SPINOR_PTR(s2).
s1 | First input spinor field |
s2 | Second input spinor field |
redop1 | Variable to reduce |
redop2 | Variable to reduce |
#define _TWO_SPINORS_FOR_SUM | ( | s1, | |
s2, | |||
... ) |
Iterate over two corresponding spinors on the given fields, applying an OpenMP sum reduction on the other given variables. The current spinors can be found using _SPINOR_PTR(s1) and _SPINOR_PTR(s2).
s1 | First input spinor field |
s2 | Second input spinor field |
... | Variables to reduce |