CHROMA
Classes | Functions | Variables
Chroma::BiCGStabKernels Namespace Reference

Classes

struct  ord_xymz_normx_arg
 
struct  ord_yxpaymabz_arg
 
struct  ord_norm2x_cdotxy_arg
 
struct  ord_xpaypbz_arg
 
struct  ord_xmay_normx_cdotzx_arg
 
struct  ord_cxmayf_arg
 
struct  ib_zvupdates_arg
 
struct  ib_rxupdate_arg
 
struct  ib_stupdate_arg
 

Functions

void initKernels ()
 
void finishKernels ()
 
template<typename T >
void xymz_normx (T &x, const T &y, const T &z, Double &x_norm, const Subset &s)
 
template<typename T , typename C >
void yxpaymabz (T &x, T &y, T &z, const C &a, const C &b, const Subset &s)
 
template<typename T >
void norm2x_cdotxy (const T &x, const T &y, Double &norm2x, DComplex &cdotxy, const Subset &s)
 
template<typename T , typename C >
void xpaypbz (T &x, T &y, T &z, C &a, C &b, const Subset &s)
 
template<typename T , typename C >
void xmay_normx_cdotzx (T &x, const T &y, const T &z, C &a, Double &normx, DComplex &cdotzx, const Subset &s)
 
template<typename T , typename C >
void cxmay (T &x, const T &y, const C &a, const Subset &s)
 
template<typename T , typename C >
void ibicgstab_zvupdates (const T &r, T &z, T &v, const T &u, const T &q, const C &alpha, const C &alpha_rat_beta, const C &alpha_delta, const C &beta, const C &delta, const Subset &s)
 
template<typename T , typename C , typename F >
void ibicgstab_stupdates_reduces (const C &alpha, const T &r, const T &u, const T &v, const T &q, const T &r0, const T &f0, T &s, T &t, C &phi, C &pi, C &gamma, C &eta, C &theta, F &kappa, F &rnorm, const Subset &sub)
 
template<typename T , typename C >
void ibicgstab_rxupdate (const C &omega, const T &s, const T &t, const T &z, T &r, T &x, const Subset &sub)
 
void initScalarSiteKernels ()
 
void finishScalarSiteKernels ()
 
REAL64 * getNormSpace ()
 
template<>
void xymz_normx (LatticeDiracFermionD &x, const LatticeDiracFermionD &y, const LatticeDiracFermionD &z, Double &x_norm, const Subset &s)
 
template<>
void yxpaymabz (LatticeDiracFermionF &x, LatticeDiracFermionF &y, LatticeDiracFermionF &z, const ComplexF &a, const ComplexF &b, const Subset &s)
 
template<>
void norm2x_cdotxy (const LatticeDiracFermionF &x, const LatticeDiracFermionF &y, Double &norm2x, DComplex &cdotxy, const Subset &s)
 
template<>
void xpaypbz (LatticeDiracFermionF &x, LatticeDiracFermionF &y, LatticeDiracFermionF &z, ComplexF &a, ComplexF &b, const Subset &s)
 
template<>
void xmay_normx_cdotzx (LatticeDiracFermionF &x, const LatticeDiracFermionF &y, const LatticeDiracFermionF &z, ComplexF &a, Double &normx, DComplex &cdotzx, const Subset &s)
 
template<>
void cxmay (LatticeDiracFermionF &x, const LatticeDiracFermionF &y, const ComplexF &a, const Subset &s)
 
template<>
void ibicgstab_zvupdates (const LatticeDiracFermionF3 &r, LatticeDiracFermionF3 &z, LatticeDiracFermionF3 &v, const LatticeDiracFermionF3 &u, const LatticeDiracFermionF3 &q, const ComplexD &alpha, const ComplexD &alpha_rat_beta, const ComplexD &alpha_delta, const ComplexD &beta, const ComplexD &delta, const Subset &sub)
 
template<>
void ibicgstab_zvupdates (const LatticeDiracFermionD3 &r, LatticeDiracFermionD3 &z, LatticeDiracFermionD3 &v, const LatticeDiracFermionD3 &u, const LatticeDiracFermionD3 &q, const ComplexD &alpha, const ComplexD &alpha_rat_beta, const ComplexD &alpha_delta, const ComplexD &beta, const ComplexD &delta, const Subset &sub)
 
template<>
void ibicgstab_rxupdate (const ComplexD &omega, const LatticeDiracFermionF3 &s, const LatticeDiracFermionF3 &t, const LatticeDiracFermionF3 &z, LatticeDiracFermionF3 &r, LatticeDiracFermionF3 &x, const Subset &sub)
 
template<>
void ibicgstab_rxupdate (const ComplexD &omega, const LatticeDiracFermionD3 &s, const LatticeDiracFermionD3 &t, const LatticeDiracFermionD3 &z, LatticeDiracFermionD3 &r, LatticeDiracFermionD3 &x, const Subset &sub)
 
template<>
void ibicgstab_stupdates_reduces (const ComplexD &alpha, const LatticeDiracFermionF3 &r, const LatticeDiracFermionF3 &u, const LatticeDiracFermionF3 &v, const LatticeDiracFermionF3 &q, const LatticeDiracFermionF3 &r0, const LatticeDiracFermionF3 &f0, LatticeDiracFermionF3 &s, LatticeDiracFermionF3 &t, ComplexD &phi, ComplexD &pi, ComplexD &gamma, ComplexD &eta, ComplexD &theta, Double &kappa, Double &rnorm, const Subset &sub)
 
template<>
void ibicgstab_stupdates_reduces (const ComplexD &alpha, const LatticeDiracFermionD3 &r, const LatticeDiracFermionD3 &u, const LatticeDiracFermionD3 &v, const LatticeDiracFermionD3 &q, const LatticeDiracFermionD3 &r0, const LatticeDiracFermionD3 &f0, LatticeDiracFermionD3 &s, LatticeDiracFermionD3 &t, ComplexD &phi, ComplexD &pi, ComplexD &gamma, ComplexD &eta, ComplexD &theta, Double &kappa, Double &rnorm, const Subset &sub)
 

Variables

REAL64 * _reduction_space
 
REAL64 * _reduction_space_un
 

Function Documentation

◆ cxmay() [1/2]

template<>
void Chroma::BiCGStabKernels::cxmay ( LatticeDiracFermionF &  x,
const LatticeDiracFermionF &  y,
const ComplexF &  a,
const Subset &  s 
)
inline

Definition at line 283 of file bicgstab_kernels_scalarsite.h.

References Chroma::a, ord_cxmayf_kernel(), Chroma::s(), x, and y.

◆ cxmay() [2/2]

template<typename T , typename C >
void Chroma::BiCGStabKernels::cxmay ( T x,
const T y,
const C &  a,
const Subset &  s 
)

Definition at line 55 of file bicgstab_kernels_naive.h.

References Chroma::a, Chroma::s(), x, and y.

Referenced by Chroma::RelInvBiCGStab_a().

◆ finishKernels()

void Chroma::BiCGStabKernels::finishKernels ( )
inline

◆ finishScalarSiteKernels()

void Chroma::BiCGStabKernels::finishScalarSiteKernels ( )

Definition at line 22 of file bicgstab_kernels_scalarsite.cc.

References _reduction_space_un.

Referenced by finishKernels().

◆ getNormSpace()

REAL64 * Chroma::BiCGStabKernels::getNormSpace ( )

◆ ibicgstab_rxupdate() [1/3]

template<typename T , typename C >
void Chroma::BiCGStabKernels::ibicgstab_rxupdate ( const C &  omega,
const T s,
const T t,
const T z,
T r,
T x,
const Subset &  sub 
)

Definition at line 115 of file bicgstab_kernels_naive.h.

References Chroma::omega, Chroma::r, Chroma::s(), t, x, and z.

Referenced by Chroma::InvIBiCGStab_a(), and Chroma::RelInvIBiCGStab_a().

◆ ibicgstab_rxupdate() [2/3]

template<>
void Chroma::BiCGStabKernels::ibicgstab_rxupdate ( const ComplexD &  omega,
const LatticeDiracFermionD3 &  s,
const LatticeDiracFermionD3 &  t,
const LatticeDiracFermionD3 &  z,
LatticeDiracFermionD3 &  r,
LatticeDiracFermionD3 &  x,
const Subset &  sub 
)
inline

◆ ibicgstab_rxupdate() [3/3]

template<>
void Chroma::BiCGStabKernels::ibicgstab_rxupdate ( const ComplexD &  omega,
const LatticeDiracFermionF3 &  s,
const LatticeDiracFermionF3 &  t,
const LatticeDiracFermionF3 &  z,
LatticeDiracFermionF3 &  r,
LatticeDiracFermionF3 &  x,
const Subset &  sub 
)
inline

◆ ibicgstab_stupdates_reduces() [1/3]

template<typename T , typename C , typename F >
void Chroma::BiCGStabKernels::ibicgstab_stupdates_reduces ( const C &  alpha,
const T r,
const T u,
const T v,
const T q,
const T r0,
const T f0,
T s,
T t,
C &  phi,
C &  pi,
C &  gamma,
C &  eta,
C &  theta,
F kappa,
F rnorm,
const Subset &  sub 
)

◆ ibicgstab_stupdates_reduces() [2/3]

template<>
void Chroma::BiCGStabKernels::ibicgstab_stupdates_reduces ( const ComplexD &  alpha,
const LatticeDiracFermionD3 &  r,
const LatticeDiracFermionD3 &  u,
const LatticeDiracFermionD3 &  v,
const LatticeDiracFermionD3 &  q,
const LatticeDiracFermionD3 &  r0,
const LatticeDiracFermionD3 &  f0,
LatticeDiracFermionD3 &  s,
LatticeDiracFermionD3 &  t,
ComplexD &  phi,
ComplexD &  pi,
ComplexD &  gamma,
ComplexD &  eta,
ComplexD &  theta,
Double &  kappa,
Double &  rnorm,
const Subset &  sub 
)
inline

◆ ibicgstab_stupdates_reduces() [3/3]

template<>
void Chroma::BiCGStabKernels::ibicgstab_stupdates_reduces ( const ComplexD &  alpha,
const LatticeDiracFermionF3 &  r,
const LatticeDiracFermionF3 &  u,
const LatticeDiracFermionF3 &  v,
const LatticeDiracFermionF3 &  q,
const LatticeDiracFermionF3 &  r0,
const LatticeDiracFermionF3 &  f0,
LatticeDiracFermionF3 &  s,
LatticeDiracFermionF3 &  t,
ComplexD &  phi,
ComplexD &  pi,
ComplexD &  gamma,
ComplexD &  eta,
ComplexD &  theta,
Double &  kappa,
Double &  rnorm,
const Subset &  sub 
)
inline

◆ ibicgstab_zvupdates() [1/3]

template<>
void Chroma::BiCGStabKernels::ibicgstab_zvupdates ( const LatticeDiracFermionD3 &  r,
LatticeDiracFermionD3 &  z,
LatticeDiracFermionD3 &  v,
const LatticeDiracFermionD3 &  u,
const LatticeDiracFermionD3 &  q,
const ComplexD &  alpha,
const ComplexD &  alpha_rat_beta,
const ComplexD &  alpha_delta,
const ComplexD &  beta,
const ComplexD &  delta,
const Subset &  sub 
)
inline

◆ ibicgstab_zvupdates() [2/3]

template<>
void Chroma::BiCGStabKernels::ibicgstab_zvupdates ( const LatticeDiracFermionF3 &  r,
LatticeDiracFermionF3 &  z,
LatticeDiracFermionF3 &  v,
const LatticeDiracFermionF3 &  u,
const LatticeDiracFermionF3 &  q,
const ComplexD &  alpha,
const ComplexD &  alpha_rat_beta,
const ComplexD &  alpha_delta,
const ComplexD &  beta,
const ComplexD &  delta,
const Subset &  sub 
)
inline

◆ ibicgstab_zvupdates() [3/3]

template<typename T , typename C >
void Chroma::BiCGStabKernels::ibicgstab_zvupdates ( const T r,
T z,
T v,
const T u,
const T q,
const C &  alpha,
const C &  alpha_rat_beta,
const C &  alpha_delta,
const C &  beta,
const C &  delta,
const Subset &  s 
)
inline

◆ initKernels()

void Chroma::BiCGStabKernels::initKernels ( )
inline

◆ initScalarSiteKernels()

void Chroma::BiCGStabKernels::initScalarSiteKernels ( )

Definition at line 10 of file bicgstab_kernels_scalarsite.cc.

References _reduction_space, and _reduction_space_un.

Referenced by initKernels().

◆ norm2x_cdotxy() [1/2]

template<>
void Chroma::BiCGStabKernels::norm2x_cdotxy ( const LatticeDiracFermionF &  x,
const LatticeDiracFermionF &  y,
Double &  norm2x,
DComplex &  cdotxy,
const Subset &  s 
)
inline

◆ norm2x_cdotxy() [2/2]

template<typename T >
void Chroma::BiCGStabKernels::norm2x_cdotxy ( const T x,
const T y,
Double &  norm2x,
DComplex &  cdotxy,
const Subset &  s 
)

◆ xmay_normx_cdotzx() [1/2]

template<>
void Chroma::BiCGStabKernels::xmay_normx_cdotzx ( LatticeDiracFermionF &  x,
const LatticeDiracFermionF &  y,
const LatticeDiracFermionF &  z,
ComplexF &  a,
Double &  normx,
DComplex &  cdotzx,
const Subset &  s 
)
inline

◆ xmay_normx_cdotzx() [2/2]

template<typename T , typename C >
void Chroma::BiCGStabKernels::xmay_normx_cdotzx ( T x,
const T y,
const T z,
C &  a,
Double &  normx,
DComplex &  cdotzx,
const Subset &  s 
)

◆ xpaypbz() [1/2]

template<>
void Chroma::BiCGStabKernels::xpaypbz ( LatticeDiracFermionF &  x,
LatticeDiracFermionF &  y,
LatticeDiracFermionF &  z,
ComplexF &  a,
ComplexF &  b,
const Subset &  s 
)
inline

Definition at line 175 of file bicgstab_kernels_scalarsite.h.

References Chroma::a, Chroma::b, ord_xpaypbz_kernel(), Chroma::s(), x, y, and z.

◆ xpaypbz() [2/2]

template<typename T , typename C >
void Chroma::BiCGStabKernels::xpaypbz ( T x,
T y,
T z,
C &  a,
C &  b,
const Subset &  s 
)

Definition at line 38 of file bicgstab_kernels_naive.h.

References Chroma::a, Chroma::b, Chroma::s(), Chroma::tmp, x, y, and z.

Referenced by Chroma::RelInvBiCGStab_a().

◆ xymz_normx() [1/2]

template<>
void Chroma::BiCGStabKernels::xymz_normx ( LatticeDiracFermionD &  x,
const LatticeDiracFermionD &  y,
const LatticeDiracFermionD &  z,
Double &  x_norm,
const Subset &  s 
)
inline

◆ xymz_normx() [2/2]

template<typename T >
void Chroma::BiCGStabKernels::xymz_normx ( T x,
const T y,
const T z,
Double &  x_norm,
const Subset &  s 
)

Definition at line 15 of file bicgstab_kernels_naive.h.

References Chroma::s(), x, y, and z.

Referenced by Chroma::RelInvBiCGStab_a(), and Chroma::RelInvIBiCGStab_a().

◆ yxpaymabz() [1/2]

template<>
void Chroma::BiCGStabKernels::yxpaymabz ( LatticeDiracFermionF &  x,
LatticeDiracFermionF &  y,
LatticeDiracFermionF &  z,
const ComplexF &  a,
const ComplexF &  b,
const Subset &  s 
)
inline

Definition at line 82 of file bicgstab_kernels_scalarsite.h.

References Chroma::a, Chroma::b, ord_yxpaymabz_kernel(), Chroma::s(), x, y, and z.

◆ yxpaymabz() [2/2]

template<typename T , typename C >
void Chroma::BiCGStabKernels::yxpaymabz ( T x,
T y,
T z,
const C &  a,
const C &  b,
const Subset &  s 
)

Definition at line 23 of file bicgstab_kernels_naive.h.

References Chroma::a, Chroma::b, Chroma::s(), Chroma::tmp, x, y, and z.

Referenced by Chroma::RelInvBiCGStab_a().

Variable Documentation

◆ _reduction_space

REAL64* Chroma::BiCGStabKernels::_reduction_space

Definition at line 7 of file bicgstab_kernels_scalarsite.cc.

Referenced by getNormSpace(), and initScalarSiteKernels().

◆ _reduction_space_un

REAL64* Chroma::BiCGStabKernels::_reduction_space_un

Definition at line 8 of file bicgstab_kernels_scalarsite.cc.

Referenced by finishScalarSiteKernels(), and initScalarSiteKernels().