Woolz Image Processing Version 1.4.0
AlgVector

Files

file  AlgVectorMath.c
 

Basic vector arithmatic.


Functions

void AlgVectorZero (double *aV, size_t n)
 sets all elements of the given vector to zero.
double AlgVectorNorm (double *aV, size_t n)
 Computes the norm of the given vector $\mathbf{a}$ with n elements:

\[ \|\mathbf{a}\| = \sqrt{\mathbf{a} \cdot \mathbf{a}}. \]

.

double AlgVectorDot (double *aV, double *bV, size_t n)
 Computes the scalar (dot) product of the two vectors $\mathbf{a}$ and $\mathbf{b}$ each with n elements:

\[ \mathbf{a} \cdot \mathbf{b} = \sum_{i = 0}^{n - 1}{a_i b_i} \]

.

void AlgVectorAdd (double *aV, double *bV, double *cV, size_t n)
 Adds vector $\mathbf{b}$ to vector $\mathbf{c}$. Computes $a_i = b_i + c_i, \forall i \in [0 \ldots n - 1]$.
void AlgVectorSub (double *aV, double *bV, double *cV, size_t n)
 Subtracts vector $\mathbf{c}$ from vector $\mathbf{b}$. Computes $a_i = b_i - c_i, \forall i \in [0 \ldots n - 1]$.
void AlgVectorCopy (double *aV, double *bV, size_t n)
 Copies one vector $\mathbf{b}$ to vector $\mathbf{a}$. $a_i = b_i, \forall i \in [0 \ldots n - 1]$.

Function Documentation

void AlgVectorZero ( double *  aV,
size_t  n 
)

sets all elements of the given vector to zero.

Parameters:
aVGiven vector.
nNumber of elements.

Referenced by AlgMatrixTVectorMul().

double AlgVectorNorm ( double *  aV,
size_t  n 
)

Computes the norm of the given vector $\mathbf{a}$ with n elements:

\[ \|\mathbf{a}\| = \sqrt{\mathbf{a} \cdot \mathbf{a}}. \]

.

Returns:
Norm of the vector.
Note:
For efficiency the given parameters are not checked.
Vector size is limited only by address space.
Parameters:
aVGiven vector $\mathbf{a}$,
nNumber of elements in $\mathbf{a}$.

References AlgVectorDot().

Referenced by AlgMatrixCGSolve(), and AlgMatrixSolveLSQR().

double AlgVectorDot ( double *  aV,
double *  bV,
size_t  n 
)

Computes the scalar (dot) product of the two vectors $\mathbf{a}$ and $\mathbf{b}$ each with n elements:

\[ \mathbf{a} \cdot \mathbf{b} = \sum_{i = 0}^{n - 1}{a_i b_i} \]

.

Returns:
Scalar (dot) product of the vectors.
Note:
For efficiency the given parameters are not checked.
Vector size is limited only by address space.
Parameters:
aVVector $\mathbf{a}$.
bVVector $\mathbf{b}$.
nNumber of elements in each of the vectors.

Referenced by AlgMatrixCGSolve(), and AlgVectorNorm().

void AlgVectorAdd ( double *  aV,
double *  bV,
double *  cV,
size_t  n 
)

Adds vector $\mathbf{b}$ to vector $\mathbf{c}$. Computes $a_i = b_i + c_i, \forall i \in [0 \ldots n - 1]$.

Returns:
void
Note:
For efficiency the given parameters are not checked.
Vector size is limited only by address space.
Parameters:
aVVector $\mathbf{a}$.
bVVector $\mathbf{b}$.
cVVector $\mathbf{c}$.
nNumber of elements in each of the vectors.
void AlgVectorSub ( double *  aV,
double *  bV,
double *  cV,
size_t  n 
)

Subtracts vector $\mathbf{c}$ from vector $\mathbf{b}$. Computes $a_i = b_i - c_i, \forall i \in [0 \ldots n - 1]$.

Returns:
void
Note:
For efficiency the given parameters are not checked.
Vector size is limited only by address space.
Parameters:
aVVector $\mathbf{a}$.
bVVector $\mathbf{b}$.
cVVector $\mathbf{c}$.
nNumber of elements in each of the vectors.

Referenced by AlgMatrixCGSolve().

void AlgVectorCopy ( double *  aV,
double *  bV,
size_t  n 
)

Copies one vector $\mathbf{b}$ to vector $\mathbf{a}$. $a_i = b_i, \forall i \in [0 \ldots n - 1]$.

Returns:
void
Note:
For efficiency the given parameters are not checked.
Vector size is limited only by address space.
Parameters:
aVVector $\mathbf{a}$.
bVVector $\mathbf{b}$.
nNumber of elements in each of the vectors.

Referenced by AlgMatrixCGSolve(), AlgMatrixCopy(), AlgMatrixSolveLSQR(), and AlgMatrixTVectorMulAdd().