Closed eunnieverse closed 8 years ago
In 5fd499bdae3bd232e16ef54f27bf198ff87a8b11 there are some new routines:
cdouble HVector::Dot(HVector *B); /* hermitian dot product, this \cdot B */
cdouble HVector::DotU(HVector *B); /* non-conjugated dot product */
double HVector::DotD(HVector *B); /* real part of Dot() */
Also, HMatrix
has a matrix-vector multiplication method:
/* matrix-vector multiplication, this*X = Y (xgemv)) */
/* Trans='C' or 'T' for hermitian / non-hermitian adjoint */
void HMatrix::Apply(HVector *X, HVector *Y, char Trans=0);
(All of these routines are just wrappers around the level-1 and level-2 BLAS). Please let me know how they work.
Row * Matrix * Vector operations can be simplified with HVector::Dot / HVector::DotU and HMatrix::Apply. Thank you! The issue is now closed.
On Wednesday, June 17, 2015, HomerReid notifications@github.com wrote:
In 5fd499b https://github.com/HomerReid/scuff-em/commit/5fd499bdae3bd232e16ef54f27bf198ff87a8b11 there are some new routines:
cdouble HVector::Dot(HVector B); / hermitian dot product, this \cdot B / cdouble HVector::DotU(HVector *B); / non-conjugated dot product / double HVector::DotD(HVector *B); / real part of Dot() */
Also, HMatrix has a matrix-vector multiplication method:
/* matrix-vector multiplication, thisX = Y (xgemv)) */ / Trans='C' or 'T' for hermitian / non-hermitian adjoint / void HMatrix::Apply(HVector X, HVector *Y, char Trans=0);
(All of these routines are just wrappers around the level-1 and level-2 BLAS). Please let me know how they work.
— Reply to this email directly or view it on GitHub https://github.com/HomerReid/scuff-em/issues/45#issuecomment-112736791.
The following operations for HVector datatype will be useful.
dot product between vectors complex conjugate for all elements