Multiply two vectors.
Let u
, v
, and w
be objects of type COMPLEX8Vector
, and let a
, b
, and c
be objects of type REAL4Vector
.
The LALCCVectorMultiply( &status, &w, &u, &v ) function computes:
w.data[i]= u.data[i] x v.data[i]
The LALCCVectorMultiplyConjugate( &status, &w, &u, &v ) function computes:
w.data[i]=u.data[i] x v.data[i]*
.
The LALCCVectorDivide( &status, &w, &u, &v ) function computes:
w.data[i]= u.data[i] / v.data[i]
The LALSCVectorMultiply( &status, &w, &a, &v ) function computes:
w.data[i]=a.data[i] x v.data[i]
The LALSSVectorMultiply( &status, &c, &a, &b ) function computes:
c.data[i]=a.data[i] x b.data[i]
The double-precison multiply routines (with D
or Z
names) work similarly.
The algorithm for complex division is described in Sec. 5.4 of Ref. [22] . The formula used is:
\[ \frac{a + ib}{c + id} = \left\{ \begin{array}{ll} \frac{[a + b(d/c)] + i[b - a(d/c)]}{c + d(d/c)} & |c| \ge |d| \\ \frac{[a(c/d) + b] + i[b(c/d) - a]}{c(c/d) + d} & |c| < |d|. \end{array} \right. \]
COMPLEX8Vector* XLALCCVectorDivide | ( | COMPLEX8Vector * | out, |
const COMPLEX8Vector * | in1, | ||
const COMPLEX8Vector * | in2 | ||
) |
Definition at line 68 of file VectorMultiply.c.
COMPLEX16Vector* XLALZZVectorDivide | ( | COMPLEX16Vector * | out, |
const COMPLEX16Vector * | in1, | ||
const COMPLEX16Vector * | in2 | ||
) |
Definition at line 98 of file VectorMultiply.c.
COMPLEX8Vector* XLALCCVectorMultiply | ( | COMPLEX8Vector * | out, |
const COMPLEX8Vector * | in1, | ||
const COMPLEX8Vector * | in2 | ||
) |
Definition at line 128 of file VectorMultiply.c.
COMPLEX16Vector* XLALZZVectorMultiply | ( | COMPLEX16Vector * | out, |
const COMPLEX16Vector * | in1, | ||
const COMPLEX16Vector * | in2 | ||
) |
Definition at line 158 of file VectorMultiply.c.
COMPLEX8Vector* XLALCCVectorMultiplyConjugate | ( | COMPLEX8Vector * | out, |
const COMPLEX8Vector * | in1, | ||
const COMPLEX8Vector * | in2 | ||
) |
Definition at line 188 of file VectorMultiply.c.
COMPLEX16Vector* XLALZZVectorMultiplyConjugate | ( | COMPLEX16Vector * | out, |
const COMPLEX16Vector * | in1, | ||
const COMPLEX16Vector * | in2 | ||
) |
Definition at line 218 of file VectorMultiply.c.
COMPLEX8Vector* XLALSCVectorMultiply | ( | COMPLEX8Vector * | out, |
const REAL4Vector * | in1, | ||
const COMPLEX8Vector * | in2 | ||
) |
Definition at line 248 of file VectorMultiply.c.
COMPLEX16Vector* XLALDZVectorMultiply | ( | COMPLEX16Vector * | out, |
const REAL8Vector * | in1, | ||
const COMPLEX16Vector * | in2 | ||
) |
Definition at line 277 of file VectorMultiply.c.
REAL4Vector* XLALSSVectorMultiply | ( | REAL4Vector * | out, |
const REAL4Vector * | in1, | ||
const REAL4Vector * | in2 | ||
) |
Definition at line 307 of file VectorMultiply.c.
REAL8Vector* XLALDDVectorMultiply | ( | REAL8Vector * | out, |
const REAL8Vector * | in1, | ||
const REAL8Vector * | in2 | ||
) |
Definition at line 337 of file VectorMultiply.c.
void LALCCVectorDivide | ( | LALStatus * | status, |
COMPLEX8Vector * | out, | ||
const COMPLEX8Vector * | in1, | ||
const COMPLEX8Vector * | in2 | ||
) |
UNDOCUMENTED.
Definition at line 377 of file VectorMultiply.c.
void LALZZVectorDivide | ( | LALStatus * | status, |
COMPLEX16Vector * | out, | ||
const COMPLEX16Vector * | in1, | ||
const COMPLEX16Vector * | in2 | ||
) |
Definition at line 409 of file VectorMultiply.c.
void LALCCVectorMultiply | ( | LALStatus * | status, |
COMPLEX8Vector * | out, | ||
const COMPLEX8Vector * | in1, | ||
const COMPLEX8Vector * | in2 | ||
) |
UNDOCUMENTED.
Definition at line 442 of file VectorMultiply.c.
void LALZZVectorMultiply | ( | LALStatus * | status, |
COMPLEX16Vector * | out, | ||
const COMPLEX16Vector * | in1, | ||
const COMPLEX16Vector * | in2 | ||
) |
Definition at line 474 of file VectorMultiply.c.
void LALCCVectorMultiplyConjugate | ( | LALStatus * | status, |
COMPLEX8Vector * | out, | ||
const COMPLEX8Vector * | in1, | ||
const COMPLEX8Vector * | in2 | ||
) |
UNDOCUMENTED.
Definition at line 506 of file VectorMultiply.c.
void LALZZVectorMultiplyConjugate | ( | LALStatus * | status, |
COMPLEX16Vector * | out, | ||
const COMPLEX16Vector * | in1, | ||
const COMPLEX16Vector * | in2 | ||
) |
Definition at line 538 of file VectorMultiply.c.
void LALSCVectorMultiply | ( | LALStatus * | status, |
COMPLEX8Vector * | out, | ||
const REAL4Vector * | in1, | ||
const COMPLEX8Vector * | in2 | ||
) |
UNDOCUMENTED.
Definition at line 570 of file VectorMultiply.c.
void LALDZVectorMultiply | ( | LALStatus * | status, |
COMPLEX16Vector * | out, | ||
const REAL8Vector * | in1, | ||
const COMPLEX16Vector * | in2 | ||
) |
Definition at line 602 of file VectorMultiply.c.
void LALSSVectorMultiply | ( | LALStatus * | status, |
REAL4Vector * | out, | ||
const REAL4Vector * | in1, | ||
const REAL4Vector * | in2 | ||
) |
UNDOCUMENTED.
Definition at line 634 of file VectorMultiply.c.
void LALDDVectorMultiply | ( | LALStatus * | status, |
REAL8Vector * | out, | ||
const REAL8Vector * | in1, | ||
const REAL8Vector * | in2 | ||
) |
Definition at line 666 of file VectorMultiply.c.