#include <config.h>
#include <string.h>
#include <util/data_types.h>
#include <util/vector_asm.h>
Go to the source code of this file.
Namespaces | |
| namespace | cps |
Classes | |
| class | cps::Matrix |
| A class of general 3x3 complex matrices. More... | |
| class | cps::Vector |
| A class implementing a general 3 component complex vector. More... | |
Defines | |
| #define | INCLUDED_VECTOR_H |
| Prevent multiple inclusion. | |
Enumerations | |
| enum | { COLORS = 3 } |
| The rank of the matrices represented by the Matrix class. More... | |
Functions | |
| void | moveMem (void *b, const void *a, int len) |
| vector copy; b = a | |
| void | moveFloat (Float *b, const Float *a, int len) |
| void | mDotMEqual (IFloat *c, const IFloat *a, const IFloat *b) |
| 3x3 complex matrix multiplication; c = ab | |
| void | mDotMPlus (IFloat *c, const IFloat *a, const IFloat *b) |
| 3x3 complex matrix multiplication and sum; c += ab | |
| void | uDotXEqual (IFloat *y, const IFloat *m, const IFloat *x) |
| 3x3 complex matrix times vector; y = Mx | |
| IFloat | dotProduct (const IFloat *a, const IFloat *b, int) |
| vector scalar product; a.b | |
| void | vecAddEquVec (IFloat *a, const IFloat *b, int) |
| vector addition; a += b | |
| void | vecMinusEquVec (IFloat *a, const IFloat *b, int) |
| vector subtraction; a -= b | |
| void | vecNegative (IFloat *a, const IFloat *b, int) |
| vector negation; a = -b | |
| void | vecZero (IFloat *a, int size) |
| set all elements to zero | |
| void | vecTimesEquFloat (IFloat *a, IFloat b, int) |
| real scalar times vector multiplication; a *= b | |
| void | vecEqualsVecTimesEquFloat (IFloat *a, IFloat *b, IFloat c, int) |
| real scalar times vector multiplication; a = c*b | |
| void | fTimesV1PlusV2 (IFloat *a, IFloat b, const IFloat *c, const IFloat *d, int size) |
| vector linear combination; a = bc+d | |
| void | fTimesV1MinusV2 (IFloat *a, IFloat b, const IFloat *c, const IFloat *d, int size) |
| vector linear combination; a = bc-d | |
| void | compDotProduct (IFloat *c_r, IFloat *c_i, const IFloat *a, const IFloat *b, int) |
| complex vector scalar product; a.b | |
| void | cTimesV1PlusV2 (IFloat *a, IFloat b_re, IFloat b_im, const IFloat *c, const IFloat *d, int size) |
| complex vector linear combination; a = bc+d | |
| void | cTimesV1MinusV2 (IFloat *a, IFloat b_re, IFloat b_im, const IFloat *c, const IFloat *d, int size) |
| Not implemented on qcdsp. | |
| void | oneMinusfTimesMatrix (IFloat *a, IFloat b, const IFloat *c, int n) |
| matrix linear combination; a = 1-bc | |
| void | uDotXPlus (IFloat *y, const IFloat *u, const IFloat *x) |
| Multiplication of complex vector by matrix and addition; y += Mx. | |
| void | uDotXMinus (IFloat *y, const IFloat *u, const IFloat *x) |
| Multiplication of complex vector by matrix and subtraction; y -= Mx. | |
| void | uDagDotXEqual (IFloat *y, const IFloat *u, const IFloat *x) |
| Multiplication of complex vector by hermitian conjugate matrix and summation; y += M^dagger x. | |
| void | uDagDotXPlus (IFloat *y, const IFloat *u, const IFloat *x) |
| Multiplication of complex vector by hermitian conjugate matrix; y = M^dagger x. | |
| IFloat | reChar6 (IFloat *p) |
| IFloat | imChar6 (IFloat *p) |
| IFloat | reChar8 (IFloat *p) |
| IFloat | reChar10 (IFloat *p) |
| IFloat | imChar10 (IFloat *p) |
Also declarations of functions that perform operations on complex vectors.
Definition in file vector.h.
|
|
Prevent multiple inclusion.
|
|
|
The rank of the matrices represented by the Matrix class.
|
|
||||||||||||||||||||||||
|
complex vector scalar product; a.b
Definition at line 406 of file vector_util.C. Referenced by cps::WspectExtendedMesons::ColorAlgebra(), cps::Vector::CompDotProductGlbSum(), cps::Vector::CompDotProductGlbSum4D(), and cps::Vector::CompDotProductNode(). |
|
||||||||||||||||||||||||||||
|
Not implemented on qcdsp.
Definition at line 444 of file vector_util.C. References cps::Float. Referenced by cps::Vector::CTimesV1MinusV2(). |
|
||||||||||||||||||||||||||||
|
complex vector linear combination; a = bc+d
Definition at line 425 of file vector_util.C. References cps::Float. Referenced by cps::Vector::CTimesV1PlusV2(). |
|
||||||||||||||||
|
vector scalar product; a.b If the vectors are real, this function computes the scalar product.
Definition at line 278 of file vector_util.C. References cps::IFloat. Referenced by cps::Matrix::ErrorSU3(), cps::FdwfBase::FeigSolv(), cps::FstagTypes::FhamiltonNode(), cps::DiracOpStag::MatPcDagMatPc(), cps::DiracOpP4::MatPcDagMatPc(), cps::DiracOpAsqtad::MatPcDagMatPc(), cps::Vector::Normalize(), cps::Vector::NormSqArraySliceSum(), cps::Vector::NormSqGlbSum(), cps::Vector::NormSqGlbSum4D(), cps::Vector::NormSqNode(), cps::Vector::ReDotProductGlbSum(), cps::Vector::ReDotProductGlbSum4D(), cps::Vector::ReDotProductNode(), and cps::wilson_mdagm(). |
|
||||||||||||||||||||||||
|
vector linear combination; a = bc-d
Definition at line 362 of file vector_util.C. Referenced by cps::Vector::FTimesV1MinusV2(), cps::DiracOpStag::MatInv(), cps::DiracOpP4::MatInv(), cps::DiracOpAsqtad::MatInv(), cps::Fstag::SetPhi(), cps::Fp4::SetPhi(), and cps::Fasqtad::SetPhi(). |
|
||||||||||||||||||||||||
|
|
Definition at line 89 of file su3_char.C. References cps::IFloat. Referenced by cps::Matrix::Char10(). |
|
|
Definition at line 46 of file su3_char.C. References cps::IFloat, and cps::p(). Referenced by cps::Matrix::Char6(). |
|
||||||||||||||||
|
3x3 complex matrix multiplication; c = ab The 3x3 complex matrices are assumed to be stored in a linear form where the real part of the (i,j) element is at array position [6i+2j] and the imaginary part of the (i,j) element is at array position [6i+2j+1].
Definition at line 99 of file vector_util.C. Referenced by cps::asqtad_dirac_init_g(), cps::Matrix::DotMEqual(), cps::Lattice::EvolveGfield(), cps::Gwilson::GforceSite(), cps::GtadpoleRect::GforceSite(), cps::GpowerRect::GforceSite(), cps::GpowerPlaq::GforceSite(), cps::GimprRect::GforceSite(), cps::GimprOLSym::GforceSite(), cps::Parallel(), cps::Lattice::PathOrdProd(), cps::Lattice::PathOrdProdPlus(), cps::Lattice::Plaq(), cps::GpowerRect::PowerRectStaple(), cps::GpowerRect::PowerStaple(), cps::GpowerPlaq::PowerStaple(), cps::pt_mat(), cps::pt_mat_norm(), cps::Lattice::RectStaple(), cps::Lattice::ReTrPlaq(), cps::Lattice::ReTrRect(), cps::Lattice::Staple(), cps::Staple5_NN(), cps::Staple5_NP(), cps::Staple5_PN(), cps::Staple5_PP(), cps::Staple7_NN(), cps::Staple7_NP(), cps::Staple7_PN(), and cps::Staple7_PP(). |
|
||||||||||||||||
|
3x3 complex matrix multiplication and sum; c += ab The 3x3 complex matrices are assumed to be stored in a linear form where the real part of the (i,j) element is at array position [6i+2j] and the imaginary part of the (i,j) element is at array position [6i+2j+1].
Definition at line 175 of file vector_util.C. Referenced by cps::Matrix::DotMPlus(), cps::GtadpoleRect::GforceSite(), cps::GpowerRect::GforceSite(), cps::GimprRect::GforceSite(), cps::Lattice::PathOrdProdPlus(), cps::Lattice::RectStaple(), and cps::Lattice::Staple(). |
|
||||||||||||||||
|
Definition at line 58 of file vector_util.C. References cps::dclock(), cps::Float, and cps::print_flops(). Referenced by cps::CanonToAnything(), cps::Lattice::Convert(), cps::Vector::CopyVec(), and cps::FdwfBase::Fconvert(). |
|
||||||||||||||||
|
vector copy; b = a
Definition at line 45 of file vector_util.C. References cps::dclock(), and cps::print_flops(). Referenced by cps::Lattice::BufferedChairStaple(), cps::Lattice::BufferedCubeStaple(), cps::Lattice::BufferedRectStaple(), cps::Lattice::BufferedStaple(), cps::WspectQuark::Clone(), cps::CloverLeaf(), cps::CloverLeaf1x3(), cps::CloverLeaf2x2(), cps::CloverLeaf3x3(), cps::CloverLeafRect(), cps::Lattice::CopyGaugeField(), cps::Lattice::EvolveGfield(), cps::Fp4::EvolveMomFforce(), cps::Fasqtad::EvolveMomFforce(), cps::Fstag::FforceSite(), cps::five_staple(), cps::Lattice::GaugeField(), cps::LinkBuffer::GetBufferedLink(), cps::WspectField::getField(), cps::Gwilson::GforceSite(), cps::GtadpoleRect::GforceSite(), cps::GpowerRect::GforceSite(), cps::GpowerPlaq::GforceSite(), cps::GimprRect::GforceSite(), cps::GimprOLSym::GforceSite(), cps::lepage_staple(), cps::DiracOpWilson::MatInv(), cps::DiracOpStag::MatInv(), cps::DiracOpP4::MatInv(), cps::DiracOpDwf::MatInv(), cps::DiracOpAsqtad::MatInv(), cps::Vector::operator=(), cps::Matrix::operator=(), cps::Lattice::PathOrdProd(), cps::Lattice::PathOrdProdPlus(), cps::Lattice::Plaq(), cps::GpowerRect::PowerRectStaple(), cps::GpowerRect::PowerStaple(), cps::GpowerPlaq::PowerStaple(), cps::Lattice::RectStaple(), cps::Lattice::ReTrPlaq(), cps::seven_staple(), cps::QPropWRand::ShiftPropBackward(), cps::QPropW::ShiftPropBackward(), cps::QPropWRand::ShiftPropForward(), cps::QPropW::ShiftPropForward(), cps::Lattice::Staple(), cps::three_staple(), cps::three_staple2(), and cps::twist_links(). |
|
||||||||||||||||||||
|
matrix linear combination; a = 1-bc The 3x3 complex matrix is assumed to be stored in a linear form where the real part of the (i,j) element is at array position [6i+2j] and the imaginary part of the (i,j) element is at array position [6i+2j+1].
Definition at line 378 of file vector_util.C. References cps::IFloat, and cps::p(). Referenced by cps::Lattice::EvolveGfield(), and cps::Matrix::OneMinusfTimesM(). |
|
|
Definition at line 84 of file su3_char.C. References cps::IFloat. Referenced by cps::Matrix::Char10(). |
|
|
Definition at line 23 of file su3_char.C. References cps::IFloat, and cps::p(). Referenced by cps::Matrix::Char6(). |
|
|
Definition at line 68 of file su3_char.C. References cps::IFloat, and cps::p(). Referenced by cps::Matrix::Char8(). |
|
||||||||||||||||
|
Multiplication of complex vector by hermitian conjugate matrix and summation; y += M^dagger x. The 3x3 complex matrix is assumed to be stored in a linear form where the real part of the (i,j) element is at vector position [6i+2j] and the imaginary part of the (i,j) element is at vector position [6i+2j+1].
Definition at line 521 of file vector.C. Referenced by cps::DiracOpAsqtad::Dslash(), cps::FermionVectorTp::GaussianSmearVector(), cps::pt_1vec(), cps::pt_1vec_cb_norm(), cps::pt_1vec_cb_pad(), cps::stag_dirac(), and cps::WilsonMatrix::UdagMultSource(). |
|
||||||||||||||||
|
Multiplication of complex vector by hermitian conjugate matrix; y = M^dagger x. The 3x3 complex matrix is assumed to be stored in a linear form where the real part of the (i,j) element is at vector position [6i+2j] and the imaginary part of the (i,j) element is at vector position [6i+2j+1].
Definition at line 496 of file vector.C. Referenced by cps::DiracOpAsqtad::Dslash(), cps::FermionVectorTp::GaussianSmearVector(), and cps::stag_dirac(). |
|
||||||||||||||||
|
3x3 complex matrix times vector; y = Mx The 3x3 complex matrix is assumed to be stored in a linear form where the real part of the (i,j) element is at array position [6i+2j] and the imaginary part of the (i,j) element is at array position [6i+2j+1].
Definition at line 253 of file vector_util.C. Referenced by cps::Vector::DotXEqual(), cps::DiracOpAsqtad::Dslash(), cps::FermionVector::gaugeFixSink(), cps::FermionVectorTp::GaugeFixSink(), cps::FermionVectorTp::GaussianSmearVector(), cps::FermionVectorTp::GFWallSource(), cps::FermionVectorTp::LandauGaugeFixSink(), cps::pt_1vec(), cps::pt_1vec_cb_norm(), cps::pt_1vec_cb_pad(), cps::FermionVectorTp::SetLandauGaugeMomentaSource(), cps::stag_dirac(), and cps::WilsonMatrix::UMultSource(). |
|
||||||||||||||||
|
Multiplication of complex vector by matrix and subtraction; y -= Mx. The 3x3 complex matrix is assumed to be stored in a linear form where the real part of the (i,j) element is at vector position [6i+2j] and the imaginary part of the (i,j) element is at vector position [6i+2j+1].
Definition at line 470 of file vector.C. Referenced by cps::DiracOpAsqtad::Dslash(), and cps::stag_dirac(). |
|
||||||||||||||||
|
Multiplication of complex vector by matrix and addition; y += Mx.
Definition at line 444 of file vector.C. Referenced by cps::FermionVectorTp::GaussianSmearVector(). |
|
||||||||||||||||
|
vector addition; a += b
Definition at line 320 of file vector_util.C. Referenced by cps::GtadpoleRect::AllStaple(), cps::GimprRect::AllStaple(), cps::GimprOLSym::AllStaple(), cps::GtadpoleRect::GactionGradient(), cps::GpowerRect::GactionGradient(), cps::GimprRect::GactionGradient(), cps::Vector::operator+=(), cps::Matrix::operator+=(), cps::GpowerRect::PowerRectStaple(), cps::GpowerRect::PowerStaple(), cps::GpowerPlaq::PowerStaple(), cps::Lattice::Staple(), and cps::Vector::VecAddEquVec(). |
|
||||||||||||||||||||
|
real scalar times vector multiplication; a = c*b
|
|
||||||||||||||||
|
vector subtraction; a -= b
Definition at line 333 of file vector_util.C. Referenced by cps::Fstag::FforceSite(), cps::DiracOpStag::MatInv(), cps::DiracOpP4::MatInv(), cps::DiracOpAsqtad::MatInv(), cps::Vector::operator-=(), cps::Matrix::operator-=(), and cps::Vector::VecMinusEquVec(). |
|
||||||||||||||||
|
vector negation; a = -b
Definition at line 392 of file vector_util.C. Referenced by cps::Matrix::NegMatrix(), and cps::Vector::VecNegative(). |
|
||||||||||||||||
|
real scalar times vector multiplication; a *= b
Definition at line 293 of file vector_util.C. Referenced by cps::GtadpoleRect::AllStaple(), cps::GimprRect::AllStaple(), cps::GimprOLSym::AllStaple(), cps::Gwilson::GactionGradient(), cps::GtadpoleRect::GactionGradient(), cps::GpowerRect::GactionGradient(), cps::GimprRect::GactionGradient(), cps::GimprOLSym::GactionGradient(), cps::QuarkPropS::getQuarkPropS(), cps::Gwilson::GforceSite(), cps::GtadpoleRect::GforceSite(), cps::GpowerRect::GforceSite(), cps::GpowerPlaq::GforceSite(), cps::GimprRect::GforceSite(), cps::GimprOLSym::GforceSite(), cps::DiracOpStag::MatInv(), cps::DiracOpP4::MatInv(), cps::DiracOpAsqtad::MatInv(), cps::Lattice::MltFloatImpl(), cps::Vector::Normalize(), cps::Vector::operator *=(), cps::Matrix::operator *=(), cps::GpowerRect::PowerRectStaple(), cps::GpowerRect::PowerStaple(), cps::GpowerPlaq::PowerStaple(), cps::Matrix::TrLessAntiHermMatrix(), and cps::Vector::VecTimesEquFloat(). |
|
||||||||||||
|
set all elements to zero Assign vector to zero.
Definition at line 459 of file vector_util.C. Referenced by cps::Vector::VecZero(). |
1.3.9.1