Tools for matrix manipulation with GSL. More...
Functions | |
int | gsl_inverse (gsl_matrix *m, gsl_matrix *im) |
double | gsl_inverse_det (gsl_matrix *m, gsl_matrix *im) |
double | gsl_det (gsl_matrix *m) |
gsl_matrix * | colcat (const gsl_matrix *a, const gsl_matrix *b) |
Concatanate : columnwise. | |
gsl_matrix * | rowcat (const gsl_matrix *a, const gsl_matrix *b) |
Concatenate : row-wise. | |
void | gsl_vector2double_offset (gsl_vector *gsl_v, double *v, size_t size, size_t offset) |
Concert a gsl_vector to a double[]. | |
void | sub_double (double *v, double *vi, size_t size, size_t offset) |
int | gsl_rank_svd (gsl_matrix *J) |
Calculate rank of matrix using SVD. | |
int | gsl_inverse_svd (gsl_matrix *A, gsl_matrix *invA) |
Calculate the inverse of a matrix (size n*m) using SVD. | |
int | encaps_gsl_inverse_svd (double A[], double invA[], int noc, int nor) |
double | gsl_vector_norme (gsl_vector *v) |
norme d'un vecteur | |
int | gsl_vector_cross_product3D (gsl_vector *A, gsl_vector *B, gsl_vector *AB) |
cross product | |
int | gsl_vector_create_row (gsl_vector *row, gsl_vector *A, gsl_vector *B) |
double | norme_diff_vecteur (double *v1, double *v2, size_t size) |
Calculate the Eucleadian distance between 2 vectors. | |
void | gsl_vector2double (gsl_vector *gsl_v, double *v, size_t size) |
copie d'un gsl_vector dans un double[] | |
void | gsl_matrix2double (gsl_matrix *gsl_m, double *m, size_t sizei, size_t sizej) |
copie d'un gsl_matrix dans un double[] | |
void | vect2double (vector< double > &vecA, double *A) |
Convert 1d vector to array of doubles. | |
void | vectormat2double (vector< vector< double > > &matA, double *A) |
Convert 2d vector to array of doubles. | |
void | gsl_dbl2matrix (double *A, gsl_matrix *Matr) |
Convert array of doubles to gsl_matrix. | |
int | gsl_matrixprod (gsl_matrix *A, gsl_matrix *B, gsl_matrix *C) |
Calculate Matrix Product. | |
int | gsl_matrixvecprod (gsl_matrix *A, gsl_vector *B, gsl_vector *C) |
Calculate Matrix - Vector Product. |
Tools for matrix manipulation with GSL.
Lib des methodes de manipulation de vecteurs et matrices independant de la robotique et de la calib (de data)
gsl_matrix* colcat | ( | const gsl_matrix * | a, |
const gsl_matrix * | b | ||
) |
Concatanate : columnwise.
Referenced by get_matrix_adjoin().
int encaps_gsl_inverse_svd | ( | double | A[], |
double | invA[], | ||
int | noc, | ||
int | nor | ||
) |
void gsl_dbl2matrix | ( | double * | A, |
gsl_matrix * | Matr | ||
) |
Convert array of doubles to gsl_matrix.
Convert an array of double A (of known size) to a gsl_matrix Matr(of known size, equal). The format followed is that Matr->data = A.
Referenced by calc_joint_angle_err().
double gsl_det | ( | gsl_matrix * | m | ) |
DETERMINANT DE MATRICES GSL
Referenced by get_trans_matrix().
int gsl_inverse | ( | gsl_matrix * | m, |
gsl_matrix * | im | ||
) |
INVERSE DE MATRICE
Referenced by ekf_kalman_gain(), and getRot().
double gsl_inverse_det | ( | gsl_matrix * | m, |
gsl_matrix * | im | ||
) |
int gsl_inverse_svd | ( | gsl_matrix * | A, |
gsl_matrix * | invA | ||
) |
Calculate the inverse of a matrix (size n*m) using SVD.
Referenced by encaps_gsl_inverse_svd().
void gsl_matrix2double | ( | gsl_matrix * | gsl_m, |
double * | m, | ||
size_t | sizei, | ||
size_t | sizej | ||
) |
copie d'un gsl_matrix dans un double[]
Referenced by calc_collar_angles(), and encaps_vector2rot().
int gsl_matrixprod | ( | gsl_matrix * | A, |
gsl_matrix * | B, | ||
gsl_matrix * | C | ||
) |
Calculate Matrix Product.
Function that calculates product of two matrices A*B and stores the result in matrix C.
Referenced by calc_collar_angles(), calc_joint_angle_err(), and calc_pts_in_collar_base_frame().
int gsl_matrixvecprod | ( | gsl_matrix * | A, |
gsl_vector * | B, | ||
gsl_vector * | C | ||
) |
Calculate Matrix - Vector Product.
Function that calculates product of matrice A with vector B and stores the result in vector C.
Referenced by calc_joint_angle_err(), and calc_pts_in_collar_base_frame().
int gsl_rank_svd | ( | gsl_matrix * | J | ) |
Calculate rank of matrix using SVD.
void gsl_vector2double | ( | gsl_vector * | gsl_v, |
double * | v, | ||
size_t | size | ||
) |
copie d'un gsl_vector dans un double[]
Referenced by calc_pts_in_collar_base_frame(), generate_jacobian_femur(), get_fourier_dominant_estimate(), gsl_low_pass_fourier(), and h_femur_encaps().
void gsl_vector2double_offset | ( | gsl_vector * | gsl_v, |
double * | v, | ||
size_t | size, | ||
size_t | offset | ||
) |
Concert a gsl_vector to a double[].
int gsl_vector_create_row | ( | gsl_vector * | row, |
gsl_vector * | A, | ||
gsl_vector * | B | ||
) |
int gsl_vector_cross_product3D | ( | gsl_vector * | A, |
gsl_vector * | B, | ||
gsl_vector * | AB | ||
) |
cross product
Referenced by get_matrix_adjoin(), and gramSchmidt().
double gsl_vector_norme | ( | gsl_vector * | v | ) |
norme d'un vecteur
Referenced by gramSchmidt(), gsl_Rot_matrix2vector(), and gsl_vector2Rot_matrix().
double norme_diff_vecteur | ( | double * | v1, |
double * | v2, | ||
size_t | size | ||
) |
Calculate the Eucleadian distance between 2 vectors.
gsl_matrix* rowcat | ( | const gsl_matrix * | a, |
const gsl_matrix * | b | ||
) |
Concatenate : row-wise.
void sub_double | ( | double * | v, |
double * | vi, | ||
size_t | size, | ||
size_t | offset | ||
) |
void vect2double | ( | vector< double > & | vecA, |
double * | A | ||
) |
Convert 1d vector to array of doubles.
This function is necessary as gsl functions need vectors and matrices to be expressed in terms of arrays of doubles. The function copies the contents of the vector to an array of doubles.
Referenced by encaps_gsl_linsolveSVD(), get_distri_matrices(), get_trans_matrix(), and main().
void vectormat2double | ( | vector< vector< double > > & | matA, |
double * | A | ||
) |
Convert 2d vector to array of doubles.
This function is necessary as gsl functions need vectors and matrices to be expressed in terms of arrays of doubles. The function copies the contents of matrix to a 1d array of doubles. The data is stored according to the method used by GSL ie. matrix[i][j] is stored in location double[i*numcol+j] where numcol is the number of columns in the matrix.
Referenced by calc_mario_frame_opti(), encaps_gsl_linsolveSVD(), generate_jacobian_femur(), and h_femur_encaps().