LAL  7.5.0.1-89842e6

Detailed Description

Multiply two vectors.

Author
J. D. E. Creighton, T. D. Creighton, A. M. Sintes

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.

Algorithm

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. \]

Prototypes

COMPLEX8VectorXLALCCVectorDivide (COMPLEX8Vector *out, const COMPLEX8Vector *in1, const COMPLEX8Vector *in2)
 
COMPLEX16VectorXLALZZVectorDivide (COMPLEX16Vector *out, const COMPLEX16Vector *in1, const COMPLEX16Vector *in2)
 
COMPLEX8VectorXLALCCVectorMultiply (COMPLEX8Vector *out, const COMPLEX8Vector *in1, const COMPLEX8Vector *in2)
 
COMPLEX16VectorXLALZZVectorMultiply (COMPLEX16Vector *out, const COMPLEX16Vector *in1, const COMPLEX16Vector *in2)
 
COMPLEX8VectorXLALCCVectorMultiplyConjugate (COMPLEX8Vector *out, const COMPLEX8Vector *in1, const COMPLEX8Vector *in2)
 
COMPLEX16VectorXLALZZVectorMultiplyConjugate (COMPLEX16Vector *out, const COMPLEX16Vector *in1, const COMPLEX16Vector *in2)
 
COMPLEX8VectorXLALSCVectorMultiply (COMPLEX8Vector *out, const REAL4Vector *in1, const COMPLEX8Vector *in2)
 
COMPLEX16VectorXLALDZVectorMultiply (COMPLEX16Vector *out, const REAL8Vector *in1, const COMPLEX16Vector *in2)
 
REAL4VectorXLALSSVectorMultiply (REAL4Vector *out, const REAL4Vector *in1, const REAL4Vector *in2)
 
REAL8VectorXLALDDVectorMultiply (REAL8Vector *out, const REAL8Vector *in1, const REAL8Vector *in2)
 
void LALCCVectorDivide (LALStatus *status, COMPLEX8Vector *out, const COMPLEX8Vector *in1, const COMPLEX8Vector *in2)
 UNDOCUMENTED. More...
 
void LALZZVectorDivide (LALStatus *status, COMPLEX16Vector *out, const COMPLEX16Vector *in1, const COMPLEX16Vector *in2)
 
void LALCCVectorMultiply (LALStatus *status, COMPLEX8Vector *out, const COMPLEX8Vector *in1, const COMPLEX8Vector *in2)
 UNDOCUMENTED. More...
 
void LALZZVectorMultiply (LALStatus *status, COMPLEX16Vector *out, const COMPLEX16Vector *in1, const COMPLEX16Vector *in2)
 
void LALCCVectorMultiplyConjugate (LALStatus *status, COMPLEX8Vector *out, const COMPLEX8Vector *in1, const COMPLEX8Vector *in2)
 UNDOCUMENTED. More...
 
void LALZZVectorMultiplyConjugate (LALStatus *status, COMPLEX16Vector *out, const COMPLEX16Vector *in1, const COMPLEX16Vector *in2)
 
void LALSCVectorMultiply (LALStatus *status, COMPLEX8Vector *out, const REAL4Vector *in1, const COMPLEX8Vector *in2)
 UNDOCUMENTED. More...
 
void LALDZVectorMultiply (LALStatus *status, COMPLEX16Vector *out, const REAL8Vector *in1, const COMPLEX16Vector *in2)
 
void LALSSVectorMultiply (LALStatus *status, REAL4Vector *out, const REAL4Vector *in1, const REAL4Vector *in2)
 UNDOCUMENTED. More...
 
void LALDDVectorMultiply (LALStatus *status, REAL8Vector *out, const REAL8Vector *in1, const REAL8Vector *in2)
 

Function Documentation

◆ XLALCCVectorDivide()

COMPLEX8Vector* XLALCCVectorDivide ( COMPLEX8Vector out,
const COMPLEX8Vector in1,
const COMPLEX8Vector in2 
)

Definition at line 68 of file VectorMultiply.c.

◆ XLALZZVectorDivide()

COMPLEX16Vector* XLALZZVectorDivide ( COMPLEX16Vector out,
const COMPLEX16Vector in1,
const COMPLEX16Vector in2 
)

Definition at line 98 of file VectorMultiply.c.

◆ XLALCCVectorMultiply()

COMPLEX8Vector* XLALCCVectorMultiply ( COMPLEX8Vector out,
const COMPLEX8Vector in1,
const COMPLEX8Vector in2 
)

Definition at line 128 of file VectorMultiply.c.

◆ XLALZZVectorMultiply()

COMPLEX16Vector* XLALZZVectorMultiply ( COMPLEX16Vector out,
const COMPLEX16Vector in1,
const COMPLEX16Vector in2 
)

Definition at line 158 of file VectorMultiply.c.

◆ XLALCCVectorMultiplyConjugate()

COMPLEX8Vector* XLALCCVectorMultiplyConjugate ( COMPLEX8Vector out,
const COMPLEX8Vector in1,
const COMPLEX8Vector in2 
)

Definition at line 188 of file VectorMultiply.c.

◆ XLALZZVectorMultiplyConjugate()

COMPLEX16Vector* XLALZZVectorMultiplyConjugate ( COMPLEX16Vector out,
const COMPLEX16Vector in1,
const COMPLEX16Vector in2 
)

Definition at line 218 of file VectorMultiply.c.

◆ XLALSCVectorMultiply()

COMPLEX8Vector* XLALSCVectorMultiply ( COMPLEX8Vector out,
const REAL4Vector in1,
const COMPLEX8Vector in2 
)

Definition at line 248 of file VectorMultiply.c.

◆ XLALDZVectorMultiply()

COMPLEX16Vector* XLALDZVectorMultiply ( COMPLEX16Vector out,
const REAL8Vector in1,
const COMPLEX16Vector in2 
)

Definition at line 277 of file VectorMultiply.c.

◆ XLALSSVectorMultiply()

REAL4Vector* XLALSSVectorMultiply ( REAL4Vector out,
const REAL4Vector in1,
const REAL4Vector in2 
)

Definition at line 307 of file VectorMultiply.c.

◆ XLALDDVectorMultiply()

REAL8Vector* XLALDDVectorMultiply ( REAL8Vector out,
const REAL8Vector in1,
const REAL8Vector in2 
)

Definition at line 337 of file VectorMultiply.c.

◆ LALCCVectorDivide()

void LALCCVectorDivide ( LALStatus status,
COMPLEX8Vector out,
const COMPLEX8Vector in1,
const COMPLEX8Vector in2 
)

UNDOCUMENTED.

Definition at line 377 of file VectorMultiply.c.

◆ LALZZVectorDivide()

void LALZZVectorDivide ( LALStatus status,
COMPLEX16Vector out,
const COMPLEX16Vector in1,
const COMPLEX16Vector in2 
)

Definition at line 409 of file VectorMultiply.c.

◆ LALCCVectorMultiply()

void LALCCVectorMultiply ( LALStatus status,
COMPLEX8Vector out,
const COMPLEX8Vector in1,
const COMPLEX8Vector in2 
)

UNDOCUMENTED.

Definition at line 442 of file VectorMultiply.c.

◆ LALZZVectorMultiply()

void LALZZVectorMultiply ( LALStatus status,
COMPLEX16Vector out,
const COMPLEX16Vector in1,
const COMPLEX16Vector in2 
)

Definition at line 474 of file VectorMultiply.c.

◆ LALCCVectorMultiplyConjugate()

void LALCCVectorMultiplyConjugate ( LALStatus status,
COMPLEX8Vector out,
const COMPLEX8Vector in1,
const COMPLEX8Vector in2 
)

UNDOCUMENTED.

Definition at line 506 of file VectorMultiply.c.

◆ LALZZVectorMultiplyConjugate()

void LALZZVectorMultiplyConjugate ( LALStatus status,
COMPLEX16Vector out,
const COMPLEX16Vector in1,
const COMPLEX16Vector in2 
)

Definition at line 538 of file VectorMultiply.c.

◆ LALSCVectorMultiply()

void LALSCVectorMultiply ( LALStatus status,
COMPLEX8Vector out,
const REAL4Vector in1,
const COMPLEX8Vector in2 
)

UNDOCUMENTED.

Definition at line 570 of file VectorMultiply.c.

◆ LALDZVectorMultiply()

void LALDZVectorMultiply ( LALStatus status,
COMPLEX16Vector out,
const REAL8Vector in1,
const COMPLEX16Vector in2 
)

Definition at line 602 of file VectorMultiply.c.

◆ LALSSVectorMultiply()

void LALSSVectorMultiply ( LALStatus status,
REAL4Vector out,
const REAL4Vector in1,
const REAL4Vector in2 
)

UNDOCUMENTED.

Definition at line 634 of file VectorMultiply.c.

◆ LALDDVectorMultiply()

void LALDDVectorMultiply ( LALStatus status,
REAL8Vector out,
const REAL8Vector in1,
const REAL8Vector in2 
)

Definition at line 666 of file VectorMultiply.c.