Meta Matrix Library
Home About FAQ Install Documentation To Do Download Related Links


Tutorial   Modules   Alphabetical List   Data Structures   File List   Data Fields   Globals   Related Pages (e.g. ToDo)  

Matrix operations


Functions

ME_MATRIXmeml_matrix_scaling (const MEML_FLOAT alpha, const ME_MATRIX *M)
 $ B := alpha * A $
void meml_matrix_scaling_f (const MEML_FLOAT alpha, ME_MATRIX *M)
 $ A := alpha * A $
MEML_FLOAT meml_matrix_norm (const ME_MATRIX *M)
 $ \alpha := \|A\|_2 $
MEML_FLOAT meml_matrix_norm_inf (const ME_MATRIX *M)
 $ \alpha := \|A\|_{inf} $
MEML_FLOAT meml_matrix_norm_1 (const ME_MATRIX *M)
 $ \alpha := \|A\|_{1} $
MEML_FLOAT meml_matrix_norm_frobenius (const ME_MATRIX *M)
 $ \alpha := \|A\|_{fro} = \sqrt{\sum_{i=1}^m \sum_{j=1}^m a_{ij}^2}$
void meml_matrix_rank_one_update_f (const MEML_FLOAT alpha, const VECTOR *x, const VECTOR *y, ME_MATRIX *M)
 $ A := \alpha xy^T + A $
ME_MATRIXmeml_matrix_rank_one_update (const MEML_FLOAT alpha, const VECTOR *x, const VECTOR *y, const ME_MATRIX *M)
 $ B := \alpha xy^T + A $
ME_MATRIXmeml_matrix_mul (const ME_MATRIX *A, const ME_MATRIX *B)
 $ C := A * B $
void meml_matrix_mul_f (const ME_MATRIX *A, const ME_MATRIX *B, ME_MATRIX **C)
 $ C := A * B $
void meml_matrix_mul_ff (const MEML_FLOAT alpha, const ME_MATRIX *A, const ME_MATRIX *B, const MEML_FLOAT beta, ME_MATRIX **C)
 $ C := alpha A * B + beta C $
ME_MATRIXmeml_matrix_add (const ME_MATRIX *A, const ME_MATRIX *B)
 $ C := A + B $
void meml_matrix_add_f (const ME_MATRIX *A, ME_MATRIX *B)
 $ B := A + B $
ME_MATRIXmeml_matrix_trans (ME_MATRIX *M)
 A : = M'.
void meml_matrix_trans_f (ME_MATRIX **M)
 M : = M'.
int meml_matrix_qr (const ME_MATRIX *M, ME_MATRIX **Q, ME_MATRIX **R)
 QR = M.
ME_MATRIXmeml_matrix_eig_f (const ME_MATRIX *M, VECTOR *wr, VECTOR *wi)
void meml_matrix_eig (const ME_MATRIX *M, VECTOR *wr, VECTOR *wi)
VECTORmeml_matrix_svd (const ME_MATRIX *A)
int meml_matrix_svd_f (const ME_MATRIX *A, VECTOR *s)
MEML_INT meml_matrix_rank (const ME_MATRIX *M)
 rank of a matrix
ME_MATRIXmeml_matrix_lu (const ME_MATRIX *M, ME_MATRIX *L, ME_MATRIX *U)
 M = P * L * U.
int meml_matrix_equal (const ME_MATRIX *A, const ME_MATRIX *B)
 returns 1 if A=B and 0 if A $ \not= $ B

Function Documentation

ME_MATRIX* meml_matrix_add const ME_MATRIX A,
const ME_MATRIX B
 

$ C := A + B $

void meml_matrix_add_f const ME_MATRIX A,
ME_MATRIX B
 

$ B := A + B $

void meml_matrix_eig const ME_MATRIX M,
VECTOR wr,
VECTOR wi
 

compute for an N-by-N real nonsymmetric matrix M, the S nvalues

ME_MATRIX* meml_matrix_eig_f const ME_MATRIX M,
VECTOR wr,
VECTOR wi
 

compute for an N-by-N real nonsymmetric matrix M, the S nvalues and the left eigenvectors

int meml_matrix_equal const ME_MATRIX A,
const ME_MATRIX B
 

returns 1 if A=B and 0 if A $ \not= $ B

Todo:
'quick and dirty' . Not optimized for the different matrix types.

meml_matrix_equal uses meml_equal , so '=' means | A[i][j]-B[i][j] | < MEML_EPS

ME_MATRIX* meml_matrix_lu const ME_MATRIX M,
ME_MATRIX L,
ME_MATRIX U
 

M = P * L * U.

Computes the LU decomposition of M. The function returns the permutation matrix

ME_MATRIX* meml_matrix_mul const ME_MATRIX A,
const ME_MATRIX B
 

$ C := A * B $

void meml_matrix_mul_f const ME_MATRIX A,
const ME_MATRIX B,
ME_MATRIX **  C
 

$ C := A * B $

void meml_matrix_mul_ff const MEML_FLOAT  alpha,
const ME_MATRIX A,
const ME_MATRIX B,
const MEML_FLOAT  beta,
ME_MATRIX **  C
 

$ C := alpha A * B + beta C $

MEML_FLOAT meml_matrix_norm const ME_MATRIX M  ) 
 

$ \alpha := \|A\|_2 $

MEML_FLOAT meml_matrix_norm_1 const ME_MATRIX M  ) 
 

$ \alpha := \|A\|_{1} $

Todo:
'quick and dirty' . Not optimized a sparse matrix types.

MEML_FLOAT meml_matrix_norm_frobenius const ME_MATRIX M  ) 
 

$ \alpha := \|A\|_{fro} = \sqrt{\sum_{i=1}^m \sum_{j=1}^m a_{ij}^2}$

Todo:
'quick and dirty' . Not optimized for the different matrix types.

MEML_FLOAT meml_matrix_norm_inf const ME_MATRIX M  ) 
 

$ \alpha := \|A\|_{inf} $

Todo:
'quick and dirty' . Not optimized a sparse matrix types.

int meml_matrix_qr const ME_MATRIX M,
ME_MATRIX **  Q,
ME_MATRIX **  R
 

QR = M.

Computes the QR decomposition of M

MEML_INT meml_matrix_rank const ME_MATRIX M  ) 
 

rank of a matrix

This function computes the rank of a matrix, using the singular value decomposition. The rank is taken to be the number of singular values of the matrix that are greater than MEML_EPS

ME_MATRIX* meml_matrix_rank_one_update const MEML_FLOAT  alpha,
const VECTOR x,
const VECTOR y,
const ME_MATRIX M
 

$ B := \alpha xy^T + A $

void meml_matrix_rank_one_update_f const MEML_FLOAT  alpha,
const VECTOR x,
const VECTOR y,
ME_MATRIX M
 

$ A := \alpha xy^T + A $

ME_MATRIX* meml_matrix_scaling const MEML_FLOAT  alpha,
const ME_MATRIX M
 

$ B := alpha * A $

void meml_matrix_scaling_f const MEML_FLOAT  alpha,
ME_MATRIX M
 

$ A := alpha * A $

Todo:
Not optimized for the LS matrix

VECTOR* meml_matrix_svd const ME_MATRIX A  ) 
 

Computes the singular values of A

int meml_matrix_svd_f const ME_MATRIX A,
VECTOR s
 

compute for an N-by-N real nonsymmetric matrix M, the S nvalues and the left eigenvectors

ME_MATRIX* meml_matrix_trans ME_MATRIX M  ) 
 

A : = M'.

void meml_matrix_trans_f ME_MATRIX **  M  ) 
 

M : = M'.

Todo:
Not optimized for LS-matrix types.


Generated on Tue Mar 28 14:10:38 2006 by  doxygen 1.4.1