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.