su2hmc
Loading...
Searching...
No Matches
matrices.c File Reference

Matrix multiplication and related routines. More...

#include <assert.h>
#include <matrices.h>
Include dependency graph for matrices.c:

Go to the source code of this file.

Functions

int Dslash (Complex *phi, Complex *r, Complex *ut[nc], unsigned int *iu, unsigned int *id, Complex gamval[20], const unsigned short gamin[16], double *dk[nc], Complex_f jqq, float akappa)
 Evaluates \(\Phi=M r\) in double precision.
int Dslashd (Complex *phi, Complex *r, Complex *ut[nc], unsigned int *iu, unsigned int *id, Complex gamval[20], const unsigned short gamin[16], double *dk[nc], Complex_f jqq, float akappa)
 Evaluates \(\Phi=M^\dagger r\) in double precision.
int Hdslash (Complex *phi, Complex *r, Complex *ut[nc], unsigned int *iu, unsigned int *id, Complex gamval[20], const unsigned short gamin[16], double *dk[nc], float akappa)
 Evaluates \(\Phi=M r\) in double precision.
int Hdslashd (Complex *phi, Complex *r, Complex *ut[nc], unsigned int *iu, unsigned int *id, Complex gamval[20], const unsigned short gamin[16], double *dk[nc], float akappa)
 Evaluates \(\Phi=M^\dagger r\) in double precision.
int Dslash_f (Complex_f *phi, Complex_f *r, Complex_f *ut[nc], unsigned int *iu, unsigned int *id, Complex_f gamval[20], const unsigned short gamin[16], float *dk[nc], Complex_f jqq, float akappa)
 Evaluates \(\Phi=M r\) in single precision.
int Dslashd_f (Complex_f *phi, Complex_f *r, Complex_f *ut[nc], unsigned int *iu, unsigned int *id, Complex_f gamval[20], const unsigned short gamin[16], float *dk[nc], 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[nc], unsigned int *iu, unsigned int *id, Complex_f gamval[20], const unsigned short gamin[16], float *dk[nc], float akappa)
 Evaluates \(\Phi=M r\) in single precision.
int Hdslashd_f (Complex_f *phi, Complex_f *r, Complex_f *ut[nc], unsigned int *iu, unsigned int *id, Complex_f gamval[20], const unsigned short gamin[16], float *dk[nc], float akappa)
 Evaluates \(\Phi=M^\dagger r\) in single precision.
void Transpose_c (Complex_f *out, const int fast_in, const int fast_out)
 In place transpose used to convert from AoS to SoA memory layout.
void Transpose_z (Complex *out, const int fast_in, const int fast_out)
 In place transpose used to convert from AoS to SoA memory layout.
void Transpose_f (float *out, const int fast_in, const int fast_out)
 In place transpose used to convert from AoS to SoA memory layout.
void Transpose_d (double *out, const int fast_in, const int fast_out)
 In place transpose used to convert from AoS to SoA memory layout.
void Transpose_I (int *out, const int fast_in, const int fast_out)
 In place transpose used to convert from AoS to SoA memory layout.
void Transpose_U (unsigned int *out, const int fast_in, const int fast_out)
 In place transpose used to convert from AoS to SoA memory layout.

Detailed Description

Matrix multiplication and related routines.

There are 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.