Loading [MathJax]/extensions/TeX/AMSsymbols.js
LAL 7.7.0.1-5e288d3
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages

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.