SPRAAK
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
Functions
math_basic.c File Reference

Basic matrix and vector operations. More...

Functions

int spr_math_mat_print (SprStream *fd, const void *A, int nrows, int ncols, const SprDT *dt, const char *info)
 
float * spr_mat_f32_A_plus_scaleB_insitu (float *restrict mA, int size, const float *mB, float facB)
 
float * spr_mat_f32_scaleA_plus_B (float *restrict mC, int size, const float *mA, const float *mB, float facA)
 
float * spr_mat_f32_scaleA_plus_scaleB (float *restrict mC, int size, const float *mA, const float *mB, float facA, float facB)
 
float * spr_mat_f32_scaleA_insitu (float *restrict mA, float facA, int size)
 
float * spr_mat_f32_scaleA (float *restrict mC, int size, const float *mA, float facA)
 
float * spr_mat_f32_A_plus_B (float *restrict mC, int size, const float *mA, const float *mB)
 
float * spr_mat_f32_A_plus_B_insitu (float *restrict mA, int size, const float *mB)
 
float * spr_mat_f32_A_minus_B (float *restrict mC, int size, const float *mA, const float *mB)
 
float * spr_mat_f32_A_minus_B_insitu (float *restrict mA, int size, const float *mB)
 
float * spr_mat_f32_A_dotmul_B (float *restrict mC, int size, const float *mA, const float *mB)
 
float * spr_mat_f32_A_dotdiv_B (float *restrict mC, int size, const float *mA, const float *mB)
 
double spr_mat_f32_A_inprod_B (const float *mA, int size, const float *mB)
 
double spr_mat_f32_rowA_inprod_colB (const float *mA, int size, const float *mB, int ncolB)
 
float * spr_mat_f32_A_mul_B (float *restrict mC, const float *mA, int nrowA, int ncolA, const float *mB, int ncolB)
 
float * spr_mat_f32_At_mul_B (float *restrict mC, const float *mA, int nrowA, int ncolA, const float *mB, int ncolB)
 
float * spr_mat_f32_A_mul_Bt (float *restrict mC, const float *mA, int nrowA, int ncolA, const float *mB, int nrowB)
 
float * spr_mat_f32_At_mul_Bt (float *restrict mC, const float *mA, int nrowA, int ncolA, const float *mB, int nrowB)
 
float * spr_mat_f32_colA (float *restrict mC, const float *mA, int nrowA, int ncolA)
 
float * spr_mat_f32_At (float *restrict mC, const float *mA, int nrowA, int ncolA)
 
double spr_mat_f32_detA (float *restrict mA, float *restrict copy, int size)
 
double spr_mat_f32_norm2A (const float *mA, int size)
 
double spr_mat_f32_prodA (const float *mA, int size)
 
double * spr_mat_f64_A_plus_scaleB_insitu (double *restrict mA, int size, const double *mB, double facB)
 
double * spr_mat_f64_scaleA_plus_B (double *restrict mC, int size, const double *mA, const double *mB, double facA)
 
double * spr_mat_f64_scaleA_plus_scaleB (double *restrict mC, int size, const double *mA, const double *mB, double facA, double facB)
 
double * spr_mat_f64_scaleA_insitu (double *restrict mA, double facA, int size)
 
double * spr_mat_f64_scaleA (double *restrict mC, int size, const double *mA, double facA)
 
double * spr_mat_f64_A_plus_B (double *restrict mC, int size, const double *mA, const double *mB)
 
double * spr_mat_f64_A_plus_B_insitu (double *restrict mA, int size, const double *mB)
 
double * spr_mat_f64_A_minus_B (double *restrict mC, int size, const double *mA, const double *mB)
 
double * spr_mat_f64_A_minus_B_insitu (double *restrict mA, int size, const double *mB)
 
double * spr_mat_f64_A_dotmul_B (double *restrict mC, int size, const double *mA, const double *mB)
 
double * spr_mat_f64_A_dotdiv_B (double *restrict mC, int size, const double *mA, const double *mB)
 
double spr_mat_f64_A_inprod_B (const double *mA, int size, const double *mB)
 
double spr_mat_f64_rowA_inprod_colB (const double *mA, int size, const double *mB, int ncolB)
 
double * spr_mat_f64_A_mul_B (double *restrict mC, const double *mA, int nrowA, int ncolA, const double *mB, int ncolB)
 
double * spr_mat_f64_At_mul_B (double *restrict mC, const double *mA, int nrowA, int ncolA, const double *mB, int ncolB)
 
double * spr_mat_f64_A_mul_Bt (double *restrict mC, const double *mA, int nrowA, int ncolA, const double *mB, int nrowB)
 
double * spr_mat_f64_At_mul_Bt (double *restrict mC, const double *mA, int nrowA, int ncolA, const double *mB, int nrowB)
 
double * spr_mat_f64_colA (double *restrict mC, const double *mA, int nrowA, int ncolA)
 
double * spr_mat_f64_At (double *restrict mC, const double *mA, int nrowA, int ncolA)
 
double spr_mat_f64_detA (double *restrict mA, double *restrict copy, int size)
 
double spr_mat_f64_norm2A (const double *mA, int size)
 
double spr_mat_f64_prodA (const double *mA, int size)
 

Detailed Description

Basic matrix and vector operations.

Various routines for basic linear algebra. The routines work well for the relative small vector and matrix dimensions typically used in speech recognition but are not optimized for large matrices (e.g. block matrix multiplication).

Author
Kris Demuynck
Date
xx/08/1995 - KD
Creation.
xx/07/1998 - KD
Added some routines (e.g. Mdet()).
xx/08/1998 - KD
Changed the matrix format (transposing).