SphinxBase
0.6
|
Matrix and linear algebra functions. More...
Go to the source code of this file.
Functions | |
SPHINXBASE_EXPORT void | norm_3d (float32 ***arr, uint32 d1, uint32 d2, uint32 d3) |
Norm an array. More... | |
SPHINXBASE_EXPORT void | accum_3d (float32 ***out, float32 ***in, uint32 d1, uint32 d2, uint32 d3) |
Floor 3-d array. More... | |
SPHINXBASE_EXPORT void | band_nz_1d (float32 *v, uint32 d1, float32 band) |
Ensures that non-zero values x such that -band < x < band, band > 0 are set to -band if x < 0 and band if x > 0. More... | |
SPHINXBASE_EXPORT void | floor_nz_3d (float32 ***m, uint32 d1, uint32 d2, uint32 d3, float32 floor) |
Floor 3-d array. More... | |
SPHINXBASE_EXPORT void | floor_nz_1d (float32 *v, uint32 d1, float32 floor) |
Floor 1-d array. More... | |
SPHINXBASE_EXPORT float64 | determinant (float32 **a, int32 len) |
Calculate the determinant of a positive definite matrix. More... | |
SPHINXBASE_EXPORT int32 | invert (float32 **out_ainv, float32 **a, int32 len) |
Invert (if possible) a positive definite matrix. More... | |
SPHINXBASE_EXPORT int32 | solve (float32 **a, float32 *b, float32 *out_x, int32 n) |
Solve (if possible) a positive-definite system of linear equations AX=B for X. More... | |
SPHINXBASE_EXPORT void | outerproduct (float32 **out_a, float32 *x, float32 *y, int32 len) |
Calculate the outer product of two vectors. More... | |
SPHINXBASE_EXPORT void | matrixmultiply (float32 **out_c, float32 **a, float32 **b, int32 n) |
Multiply C=AB where A and B are symmetric matrices. More... | |
SPHINXBASE_EXPORT void | scalarmultiply (float32 **inout_a, float32 x, int32 n) |
Multiply a symmetric matrix by a constant in-place. More... | |
SPHINXBASE_EXPORT void | matrixadd (float32 **inout_a, float32 **b, int32 n) |
Add A += B. More... | |
Matrix and linear algebra functions.
This file contains some basic matrix and linear algebra operations. In general these operate on positive definite matrices ONLY, because all matrices we're likely to encounter are either covariance matrices or are derived from them, and therefore a non-positive-definite matrix indicates some kind of pathological condition.
Definition in file matrix.h.
SPHINXBASE_EXPORT void accum_3d | ( | float32 *** | out, |
float32 *** | in, | ||
uint32 | d1, | ||
uint32 | d2, | ||
uint32 | d3 | ||
) |
SPHINXBASE_EXPORT void band_nz_1d | ( | float32 * | v, |
uint32 | d1, | ||
float32 | band | ||
) |
SPHINXBASE_EXPORT float64 determinant | ( | float32 ** | a, |
int32 | len | ||
) |
Calculate the determinant of a positive definite matrix.
a | The input matrix, must be positive definite. |
len | The dimension of the input matrix. |
Definition at line 147 of file matrix.c.
References E_FATAL.
SPHINXBASE_EXPORT void floor_nz_1d | ( | float32 * | v, |
uint32 | d1, | ||
float32 | floor | ||
) |
SPHINXBASE_EXPORT void floor_nz_3d | ( | float32 *** | m, |
uint32 | d1, | ||
uint32 | d2, | ||
uint32 | d3, | ||
float32 | floor | ||
) |
SPHINXBASE_EXPORT int32 invert | ( | float32 ** | out_ainv, |
float32 ** | a, | ||
int32 | len | ||
) |
Invert (if possible) a positive definite matrix.
out_ainv | The inverse of a will be stored here. |
a | The input matrix, must be positive definite. |
len | The dimension of the input matrix. |
Definition at line 153 of file matrix.c.
References E_FATAL.
SPHINXBASE_EXPORT void matrixadd | ( | float32 ** | inout_a, |
float32 ** | b, | ||
int32 | n | ||
) |
SPHINXBASE_EXPORT void matrixmultiply | ( | float32 ** | out_c, |
float32 ** | a, | ||
float32 ** | b, | ||
int32 | n | ||
) |
SPHINXBASE_EXPORT void norm_3d | ( | float32 *** | arr, |
uint32 | d1, | ||
uint32 | d2, | ||
uint32 | d3 | ||
) |
SPHINXBASE_EXPORT void outerproduct | ( | float32 ** | out_a, |
float32 * | x, | ||
float32 * | y, | ||
int32 | len | ||
) |
SPHINXBASE_EXPORT void scalarmultiply | ( | float32 ** | inout_a, |
float32 | x, | ||
int32 | n | ||
) |
SPHINXBASE_EXPORT int32 solve | ( | float32 ** | a, |
float32 * | b, | ||
float32 * | out_x, | ||
int32 | n | ||
) |
Solve (if possible) a positive-definite system of linear equations AX=B for X.
a | The A matrix on the left-hand side of the equation, must be positive-definite. |
b | The B vector on the right-hand side of the equation. |
out_x | The X vector will be stored here. |
n | The dimension of the A matrix (n by n) and the B and X vectors. |
Definition at line 159 of file matrix.c.
References E_FATAL.