su2hmc
|
Matrix multiplication and related routines. More...
#include <assert.h>
#include <complex.h>
#include <matrices.h>
#include <string.h>
#include <stdalign.h>
Go to the source code of this file.
Functions | |
int | Dslash (Complex *phi, Complex *r, Complex *u11t, Complex *u12t, unsigned int *iu, unsigned int *id, Complex *gamval, int *gamin, double *dk4m, double *dk4p, Complex_f jqq, float akappa) |
Evaluates \(\Phi=M r\) in double precision. | |
int | Dslashd (Complex *phi, Complex *r, Complex *u11t, Complex *u12t, unsigned int *iu, unsigned int *id, Complex *gamval, int *gamin, double *dk4m, double *dk4p, Complex_f jqq, float akappa) |
Evaluates \(\Phi=M^\dagger r\) in double precision. | |
int | Hdslash (Complex *phi, Complex *r, Complex *ut[2], unsigned int *iu, unsigned int *id, Complex *gamval, int *gamin, double *dk[2], float akappa) |
Evaluates \(\Phi=M r\) in double precision. | |
int | Hdslashd (Complex *phi, Complex *r, Complex *u11t, Complex *u12t, unsigned int *iu, unsigned int *id, Complex *gamval, int *gamin, double *dk4m, double *dk4p, float akappa) |
Evaluates \(\Phi=M^\dagger r\) in double precision. | |
int | Dslash_f (Complex_f *phi, Complex_f *r, Complex_f *u11t_f, Complex_f *u12t_f, unsigned int *iu, unsigned int *id, Complex_f *gamval_f, int *gamin, float *dk_f[2], Complex_f jqq, float akappa) |
Evaluates \(\Phi=M r\) in single precision. | |
int | Dslashd_f (Complex_f *phi, Complex_f *r, Complex_f *u11t_f, Complex_f *u12t_f, unsigned int *iu, unsigned int *id, Complex_f *gamval_f, int *gamin, float *dk_f[2], Complex_f jqq, float akappa) |
Evaluates \(\Phi=M^\dagger r\) in single precision. | |
int | Hdslash_f (Complex_f *phi, Complex_f *r, Complex_f *ut[2], unsigned int *iu, unsigned int *id, Complex_f *gamval, int *gamin, float *dk[2], float akappa) |
Evaluates \(\Phi=M r\) in single precision. | |
int | Hdslashd_f (Complex_f *phi, Complex_f *r, Complex_f *ut[2], unsigned int *iu, unsigned int *id, Complex_f *gamval, int *gamin, float *dk[2], float akappa) |
Evaluates \(\Phi=M^\dagger r\) in single precision. | |
int | Reunitarise (Complex *ut[2]) |
Reunitarises u11t and u12t as in conj(u11t[i])*u11t[i]+conj(u12t[i])*u12t[i]=1. | |
void | Transpose_c (Complex_f *out, const int fast_in, const int fast_out) |
void | Transpose_z (Complex *out, const int fast_in, const int fast_out) |
void | Transpose_f (float *out, const int fast_in, const int fast_out) |
void | Transpose_d (double *out, const int fast_in, const int fast_out) |
void | Transpose_I (int *out, const int fast_in, const int fast_out) |
void | Transpose_U (unsigned int *out, const int fast_in, const int fast_out) |
Matrix multiplication and related routines.
There are two four matrix mutiplication routines, and each had a double and single (_f) version The Hdslash? routines are called when acting on half of the fermions (up/down flavour partitioning) The Dslash routines act on everything
Any routine ending in a d is the daggered multiplication
Definition in file matrices.c.
int Dslash | ( | Complex * | phi, |
Complex * | r, | ||
Complex * | u11t, | ||
Complex * | u12t, | ||
unsigned int * | iu, | ||
unsigned int * | id, | ||
Complex * | gamval, | ||
int * | gamin, | ||
double * | dk4m, | ||
double * | dk4p, | ||
Complex_f | jqq, | ||
float | akappa ) |
Evaluates \(\Phi=M r\) in double precision.
phi | The product |
r | The array being acted on by M |
u11t | First colour trial field |
u12t | Second colour trial field |
iu | Upper halo indices |
id | Lower halo indices |
gamval | Gamma matrices rescaled by kappa |
gamin | Indices for dirac terms |
dk4m | \(\left(1+\gamma_0\right)e^{-\mu}\) |
dk4p | \(\left(1-\gamma_0\right)e^\mu\) |
jqq | Diquark source |
akappa | Hopping parameter |
Definition at line 19 of file matrices.c.
References Complex, Complex_f, kferm, kvol, nc, ndim, ndirac, ngorkov, and ZHalo_swap_all().
int Dslash_f | ( | Complex_f * | phi, |
Complex_f * | r, | ||
Complex_f * | u11t, | ||
Complex_f * | u12t, | ||
unsigned int * | iu, | ||
unsigned int * | id, | ||
Complex_f * | gamval, | ||
int * | gamin, | ||
float * | dk[2], | ||
Complex_f | jqq, | ||
float | akappa ) |
Evaluates \(\Phi=M r\) in single precision.
phi | The product |
r | The array being acted on by M |
u11t | First colour trial field |
u12t | Second colour trial field |
iu | Upper halo indices |
id | Lower halo indices |
gamval | Gamma matrices rescaled by kappa |
gamin | Indices for dirac terms |
dk4m | \(\left(1+\gamma_0\right)e^{-\mu}\) |
dk4p | \(\left(1-\gamma_0\right)e^\mu\) |
jqq | Diquark source |
akappa | Hopping parameter |
Definition at line 463 of file matrices.c.
References CHalo_swap_all(), Complex_f, kferm, kvol, nc, ndim, ndirac, and ngorkov.
int Dslashd | ( | Complex * | phi, |
Complex * | r, | ||
Complex * | u11t, | ||
Complex * | u12t, | ||
unsigned int * | iu, | ||
unsigned int * | id, | ||
Complex * | gamval, | ||
int * | gamin, | ||
double * | dk4m, | ||
double * | dk4p, | ||
Complex_f | jqq, | ||
float | akappa ) |
Evaluates \(\Phi=M^\dagger r\) in double precision.
phi | The product |
r | The array being acted on by M |
u11t | First colour trial field |
u12t | Second colour trial field |
iu | Upper halo indices |
id | Lower halo indices |
gamval | Gamma matrices rescaled by kappa |
gamin | Indices for dirac terms |
dk4m | \(\left(1+\gamma_0\right)e^{-\mu}\) |
dk4p | \(\left(1-\gamma_0\right)e^\mu\) |
jqq | Diquark source |
akappa | Hopping parameter |
Definition at line 141 of file matrices.c.
References Complex, Complex_f, kferm, kvol, nc, ndim, ndirac, ngorkov, and ZHalo_swap_all().
int Dslashd_f | ( | Complex_f * | phi, |
Complex_f * | r, | ||
Complex_f * | u11t, | ||
Complex_f * | u12t, | ||
unsigned int * | iu, | ||
unsigned int * | id, | ||
Complex_f * | gamval, | ||
int * | gamin, | ||
float * | dk[2], | ||
Complex_f | jqq, | ||
float | akappa ) |
Evaluates \(\Phi=M^\dagger r\) in single precision.
phi | The product |
r | The array being acted on by M |
u11t | First colour trial field |
u12t | Second colour trial field |
iu | Upper halo indices |
id | Lower halo indices |
gamval | Gamma matrices rescaled by kappa |
gamin | Indices for dirac terms |
dk4m | \(\left(1+\gamma_0\right)e^{-\mu}\) |
dk4p | \(\left(1-\gamma_0\right)e^\mu\) |
jqq | Diquark source |
akappa | Hopping parameter |
Definition at line 585 of file matrices.c.
References CHalo_swap_all(), Complex_f, kferm, kvol, nc, ndim, ndirac, and ngorkov.
int Hdslash | ( | Complex * | phi, |
Complex * | r, | ||
Complex * | u11t[2], | ||
unsigned int * | iu, | ||
unsigned int * | id, | ||
Complex * | gamval, | ||
int * | gamin, | ||
double * | dk[2], | ||
float | akappa ) |
Evaluates \(\Phi=M r\) in double precision.
phi | The product |
r | The array being acted on by M |
u11t | First colour trial field |
u12t | Second colour trial field |
iu | Upper halo indices |
id | Lower halo indices |
gamval | Gamma matrices rescaled by kappa |
gamin | Indices for dirac terms |
dk4m | \(\left(1+\gamma_0\right)e^{-\mu}\) |
dk4p | \(\left(1-\gamma_0\right)e^\mu\) |
akappa | Hopping parameter |
Definition at line 268 of file matrices.c.
References Complex, kferm2, kvol, nc, ndim, ndirac, and ZHalo_swap_all().
int Hdslash_f | ( | Complex_f * | phi, |
Complex_f * | r, | ||
Complex_f * | ut[2], | ||
unsigned int * | iu, | ||
unsigned int * | id, | ||
Complex_f * | gamval, | ||
int * | gamin, | ||
float * | dk[2], | ||
float | akappa ) |
Evaluates \(\Phi=M r\) in single precision.
phi | The product |
r | The array being acted on by M |
u11t | First colour trial field |
u12t | Second colour trial field |
iu | Upper halo indices |
id | Lower halo indices |
gamval | Gamma matrices rescaled by kappa |
gamin | Indices for dirac terms |
dk4m | \(\left(1+\gamma_0\right)e^{-\mu}\) |
dk4p | \(\left(1-\gamma_0\right)e^\mu\) |
akappa | Hopping parameter |
Definition at line 712 of file matrices.c.
References AVX, CHalo_swap_all(), Complex_f, kferm2, kvol, nc, ndim, and ndirac.
int Hdslashd | ( | Complex * | phi, |
Complex * | r, | ||
Complex * | u11t, | ||
Complex * | u12t, | ||
unsigned int * | iu, | ||
unsigned int * | id, | ||
Complex * | gamval, | ||
int * | gamin, | ||
double * | dk4m, | ||
double * | dk4p, | ||
float | akappa ) |
Evaluates \(\Phi=M^\dagger r\) in double precision.
phi | The product |
r | The array being acted on by M |
u11t | First colour trial field |
u12t | Second colour trial field |
iu | Upper halo indices |
id | Lower halo indices |
gamval | Gamma matrices rescaled by kappa |
gamin | Indices for dirac terms |
dk4m | \(\left(1+\gamma_0\right)e^{-\mu}\) |
dk4p | \(\left(1-\gamma_0\right)e^\mu\) |
akappa | Hopping parameter |
Definition at line 359 of file matrices.c.
References Complex, kferm2, kvol, nc, ndim, ndirac, and ZHalo_swap_all().
int Hdslashd_f | ( | Complex_f * | phi, |
Complex_f * | r, | ||
Complex_f * | ut[2], | ||
unsigned int * | iu, | ||
unsigned int * | id, | ||
Complex_f * | gamval, | ||
int * | gamin, | ||
float * | dk[2], | ||
float | akappa ) |
Evaluates \(\Phi=M^\dagger r\) in single precision.
phi | The product |
r | The array being acted on by M |
u11t | First colour trial field |
u12t | Second colour trial field |
iu | Upper halo indices |
id | Lower halo indices |
gamval | Gamma matrices rescaled by kappa |
gamin | Indices for dirac terms |
dk4m | \(\left(1+\gamma_0\right)e^{-\mu}\) |
dk4p | \(\left(1-\gamma_0\right)e^\mu\) |
akappa | Hopping parameter |
Definition at line 855 of file matrices.c.
References AVX, CHalo_swap_all(), Complex_f, kferm2, kvol, nc, ndim, and ndirac.
|
inline |
Reunitarises u11t and u12t as in conj(u11t[i])*u11t[i]+conj(u12t[i])*u12t[i]=1.
If you're looking at the FORTRAN code be careful. There are two header files for the /trial/ header. One with u11 u12 (which was included here originally) and the other with u11t and u12t.
ut | Trial fields to be reunitarised |
Definition at line 1012 of file matrices.c.
References Complex, kvol, and ndim.
|
inline |
Definition at line 1050 of file matrices.c.
|
inline |
Definition at line 1119 of file matrices.c.
|
inline |
Definition at line 1096 of file matrices.c.
|
inline |
Definition at line 1142 of file matrices.c.
|
inline |
Definition at line 1165 of file matrices.c.
|
inline |
Definition at line 1073 of file matrices.c.