Main Page   Modules   Compound List   File List   Compound Members   File Members  

2x4matrixf.c File Reference

#include <math.h>
#include <gandalf/linalg/2x4matrixf.h>
#include <gandalf/common/misc_error.h>
#include <gandalf/common/endian_io.h>

Defines

#define GAN_MATTYPE   Gan_Matrix24_f
#define GAN_MATRIX_TYPE   Gan_Matrix_f
#define GAN_SQUMATRIX_TYPE   Gan_SquMatrix_f
#define GAN_VECTOR_TYPE   Gan_Vector_f
#define GAN_MAT_ELEMENT_TYPE   GAN_FLOAT
#define GAN_REALTYPE   float
#define GAN_VECTYPE1   Gan_Vector2_f
#define GAN_VECTYPE2   Gan_Vector4_f
#define GAN_MATTYPEL   Gan_Matrix22_f
#define GAN_MATTYPER   Gan_Matrix44_f
#define GAN_SQUMATTYPEL   Gan_SquMatrix22_f
#define GAN_SQUMATTYPER   Gan_SquMatrix44_f
#define GAN_MAT_FPRINT   gan_mat24f_fprint
#define GAN_MAT_PRINT   gan_mat24f_print
#define GAN_MAT_FSCANF   gan_mat24f_fscanf
#define GAN_MAT_FWRITE   gan_mat24f_fwrite
#define GAN_MAT_FREAD   gan_mat24f_fread
#define GAN_MAT_ZERO_Q   gan_mat24f_zero_q
#define GAN_MAT_ZERO_S   gan_mat24f_zero_s
#define GAN_MAT_COPY_Q   gan_mat24f_copy_q
#define GAN_MAT_COPY_S   gan_mat24f_copy_s
#define GAN_MAT_SCALE_Q   gan_mat24f_scale_q
#define GAN_MAT_SCALE_I   gan_mat24f_scale_i
#define GAN_MAT_SCALE_S   gan_mat24f_scale_s
#define GAN_MAT_DIVIDE_Q   gan_mat24f_divide_q
#define GAN_MAT_DIVIDE_I   gan_mat24f_divide_i
#define GAN_MAT_DIVIDE_S   gan_mat24f_divide_s
#define GAN_MAT_NEGATE_Q   gan_mat24f_negate_q
#define GAN_MAT_NEGATE_I   gan_mat24f_negate_i
#define GAN_MAT_NEGATE_S   gan_mat24f_negate_s
#define GAN_MAT_UNIT_Q   gan_mat24f_unit_q
#define GAN_MAT_UNIT_I   gan_mat24f_unit_i
#define GAN_MAT_UNIT_S   gan_mat24f_unit_s
#define GAN_MAT_ADD_Q   gan_mat24f_add_q
#define GAN_MAT_ADD_I1   gan_mat24f_add_i1
#define GAN_MAT_ADD_I2   gan_mat24f_add_i2
#define GAN_MAT_INCREMENT   gan_mat24f_increment
#define GAN_MAT_ADD_S   gan_mat24f_add_s
#define GAN_MAT_SUB_Q   gan_mat24f_sub_q
#define GAN_MAT_SUB_I1   gan_mat24f_sub_i1
#define GAN_MAT_SUB_I2   gan_mat24f_sub_i2
#define GAN_MAT_DECREMENT   gan_mat24f_decrement
#define GAN_MAT_SUB_S   gan_mat24f_sub_s
#define GAN_VEC_OUTER_Q   gan_vec24f_outer_q
#define GAN_VEC_OUTER_S   gan_vec24f_outer_s
#define GAN_MAT_MULTV_Q   gan_mat24f_multv4_q
#define GAN_MAT_MULTV_S   gan_mat24f_multv4_s
#define GAN_MATT_MULTV_Q   gan_mat24Tf_multv2_q
#define GAN_MATT_MULTV_S   gan_mat24Tf_multv2_s
#define GAN_MAT_LMULTM_Q   gan_mat24f_lmultm22_q
#define GAN_MAT_LMULTM_S   gan_mat24f_lmultm22_s
#define GAN_MAT_LMULTMT_Q   gan_mat24f_lmultm22T_q
#define GAN_MAT_LMULTMT_S   gan_mat24f_lmultm22T_s
#define GAN_MAT_RMULTM_Q   gan_mat24f_rmultm44_q
#define GAN_MAT_RMULTM_S   gan_mat24f_rmultm44_s
#define GAN_MAT_RMULTMT_Q   gan_mat24f_rmultm44T_q
#define GAN_MAT_RMULTMT_S   gan_mat24f_rmultm44T_s
#define GAN_MAT_LMULTMT_SYM_Q   gan_mat24f_lmultm24T_sym_q
#define GAN_MAT_LMULTMT_SYM_S   gan_mat24f_lmultm24T_sym_s
#define GAN_MAT_RMULTMT_SYM_Q   gan_mat24f_rmultm24T_sym_q
#define GAN_MAT_RMULTMT_SYM_S   gan_mat24f_rmultm24T_sym_s
#define GAN_MAT_SLMULTT_Q   gan_mat24f_slmultT_q
#define GAN_MAT_SLMULTT_S   gan_mat24f_slmultT_s
#define GAN_MAT_SRMULTT_Q   gan_mat24f_srmultT_q
#define GAN_MAT_SRMULTT_S   gan_mat24f_srmultT_s
#define GAN_MAT_LMULTS_Q   gan_mat24f_lmults22_q
#define GAN_MAT_LMULTS_S   gan_mat24f_lmults22_s
#define GAN_MAT_RMULTS_Q   gan_mat24f_rmults44_q
#define GAN_MAT_RMULTS_S   gan_mat24f_rmults44_s
#define GAN_SYMMATL_LRMULT_Q   gan_symmat22f_lrmultm24T_q
#define GAN_SYMMATL_LRMULT_S   gan_symmat22f_lrmultm24T_s
#define GAN_SYMMATR_LRMULT_Q   gan_symmat44f_lrmultm24_q
#define GAN_SYMMATR_LRMULT_S   gan_symmat44f_lrmultm24_s
#define GAN_MAT_LMULTL_Q   gan_mat24f_lmultl22_q
#define GAN_MAT_LMULTL_S   gan_mat24f_lmultl22_s
#define GAN_MAT_LMULTL_I   gan_mat24f_lmultl22_i
#define GAN_MAT_LMULTLI_Q   gan_mat24f_lmultl22I_q
#define GAN_MAT_LMULTLI_S   gan_mat24f_lmultl22I_s
#define GAN_MAT_LMULTLI_I   gan_mat24f_lmultl22I_i
#define GAN_MAT_LMULTLT_Q   gan_mat24f_lmultl22T_q
#define GAN_MAT_LMULTLT_S   gan_mat24f_lmultl22T_s
#define GAN_MAT_LMULTLT_I   gan_mat24f_lmultl22T_i
#define GAN_MAT_LMULTLIT_Q   gan_mat24f_lmultl22IT_q
#define GAN_MAT_LMULTLIT_S   gan_mat24f_lmultl22IT_s
#define GAN_MAT_LMULTLIT_I   gan_mat24f_lmultl22IT_i
#define GAN_MAT_RMULTL_Q   gan_mat24f_rmultl44_q
#define GAN_MAT_RMULTL_S   gan_mat24f_rmultl44_s
#define GAN_MAT_RMULTL_I   gan_mat24f_rmultl44_i
#define GAN_MAT_RMULTLI_Q   gan_mat24f_rmultl44I_q
#define GAN_MAT_RMULTLI_S   gan_mat24f_rmultl44I_s
#define GAN_MAT_RMULTLI_I   gan_mat24f_rmultl44I_i
#define GAN_MAT_RMULTLT_Q   gan_mat24f_rmultl44T_q
#define GAN_MAT_RMULTLT_S   gan_mat24f_rmultl44T_s
#define GAN_MAT_RMULTLT_I   gan_mat24f_rmultl44T_i
#define GAN_MAT_RMULTLIT_Q   gan_mat24f_rmultl44IT_q
#define GAN_MAT_RMULTLIT_S   gan_mat24f_rmultl44IT_s
#define GAN_MAT_RMULTLIT_I   gan_mat24f_rmultl44IT_i
#define GAN_MAT_SUMSQR_Q   gan_mat24f_sumsqr_q
#define GAN_MAT_SUMSQR_S   gan_mat24f_sumsqr_s
#define GAN_MAT_FNORM_Q   gan_mat24f_Fnorm_q
#define GAN_MAT_FNORM_S   gan_mat24f_Fnorm_s
#define GAN_MAT_FROM_MAT_Q   gan_mat24f_from_matf_q
#define GAN_MAT_FROM_MAT_S   gan_mat24f_from_matf_s

Functions

Gan_Bool gan_mat24f_fprint (FILE *fp, Gan_Matrix24_f *A, const char *prefix, int indent, const char *fmt)
 Print 2x4 matrix to file.

Gan_Bool gan_mat24f_fscanf (FILE *fp, Gan_Matrix24_f *A, char *prefix, int prefix_len)
 Read 2x4 matrix from file.

Gan_Matrix24_f gan_mat24f_fill_s (float XX, float XY, float XZ, float XW, float YX, float YY, float YZ, float YW)
 Fill 2x4 matrix with values.

Gan_Vector2_f gan_mat24f_multv3h_s (Gan_Matrix24_f *A, Gan_Vector3_f *p, float h)
 Multiply 2x4 matrix by homogeneous 3-vector.

void gan_mat24f_get_rows_s (Gan_Matrix24_f *A, Gan_Vector4_f *p, Gan_Vector4_f *q)
 Extract rows of 2x4 matrix.

void gan_mat24f_get_cols_s (Gan_Matrix24_f *A, Gan_Vector2_f *p, Gan_Vector2_f *q, Gan_Vector2_f *r, Gan_Vector2_f *s)
 Extract columns of 2x4 matrix.

Gan_Matrix24_fgan_mat24f_from_matf_q (Gan_Matrix_f *A, Gan_Matrix24_f *B)
 Macro: Convert generic rectangular matrix to fixed size matrix structure.

Gan_Bool gan_mat24f_print (Gan_Matrix24_f *A, const char *prefix, int indent, const char *fmt)
 Print fixed size matrix to standard output.

Gan_Bool gan_mat24f_fwrite (FILE *fp, Gan_Matrix24_f *A, gan_ui32 magic_number)
 Write fixed size matrix to file stream.

Gan_Bool gan_mat24f_fread (FILE *fp, Gan_Matrix24_f *A, gan_ui32 *magic_number)
 Read fixed size matrix from file stream.

Gan_Matrix24_f gan_mat24f_zero_s (void)
 Set fixed size matrix to zero.

Gan_Matrix24_f gan_mat24f_copy_s (Gan_Matrix24_f *A)
 Copy fixed size matrix.

Gan_Matrix24_f gan_mat24f_scale_s (Gan_Matrix24_f *A, float a)
 Scale fixed size matrix.

Gan_Matrix24_f gan_mat24f_divide_s (Gan_Matrix24_f *A, float a)
 Divide fixed size matrix by scalar.

Gan_Matrix24_f gan_mat24f_negate_s (Gan_Matrix24_f *A)
 Negate fixed size matrix.

Gan_Matrix24_fgan_mat24f_unit_q (Gan_Matrix24_f *A, Gan_Matrix24_f *B)
 Scale matrix to unit norm.

Gan_Matrix24_f gan_mat24f_unit_s (Gan_Matrix24_f *A)
 Scale matrix to unit norm.

Gan_Matrix24_f gan_mat24f_add_s (Gan_Matrix24_f *A, Gan_Matrix24_f *B)
 Add two fixed size matrices.

Gan_Matrix24_f gan_mat24f_sub_s (Gan_Matrix24_f *A, Gan_Matrix24_f *B)
 Subtract two fixed size matrices.

Gan_Matrix24_f gan_vec24f_outer_s (Gan_Vector2_f *p, Gan_Vector4_f *q)
 Compute the outer product of two fixed size vectors.

Gan_Vector2_f gan_mat24f_multv4_s (Gan_Matrix24_f *A, Gan_Vector4_f *p)
 Matrix/vector product.

Gan_Vector4_f gan_mat24Tf_multv2_s (Gan_Matrix24_f *A, Gan_Vector2_f *p)
 Matrix/vector product with the matrix transposed.

Gan_Matrix24_f gan_mat24f_lmultm22_s (Gan_Matrix24_f *A, Gan_Matrix22_f *B)
 Left-multiply a matrix by another matrix.

Gan_Matrix24_f gan_mat24f_lmultm22T_s (Gan_Matrix24_f *A, Gan_Matrix22_f *B)
 Left-multiply a matrix by the transpose of another matrix.

Gan_Matrix24_f gan_mat24f_rmultm44_s (Gan_Matrix24_f *A, Gan_Matrix44_f *B)
 Right-multiply a matrix by another matrix.

Gan_Matrix24_f gan_mat24f_rmultm44T_s (Gan_Matrix24_f *A, Gan_Matrix44_f *B)
 Right-multiply a matrix by the transpose of another matrix.

Gan_SquMatrix44_f gan_mat24f_lmultm24T_sym_s (Gan_Matrix24_f *A, Gan_Matrix24_f *B)
 Matrix product producing a symmetric matrix.

Gan_SquMatrix22_f gan_mat24f_rmultm24T_sym_s (Gan_Matrix24_f *A, Gan_Matrix24_f *B)
 Matrix product producing a symmetric matrix.

Gan_SquMatrix44_f gan_mat24f_slmultT_s (Gan_Matrix24_f *A)
 Left-multiply a matrix by its own transpose, producing a symmetric matrix.

Gan_SquMatrix22_f gan_mat24f_srmultT_s (Gan_Matrix24_f *A)
 Right-multiply a matrix by its own transpose, producing a symmetric matrix.

Gan_Matrix24_f gan_mat24f_lmults22_s (Gan_Matrix24_f *A, Gan_SquMatrix22_f *B)
 Left-multiply a matrix by a symmetric matrix.

Gan_Matrix24_f gan_mat24f_rmults44_s (Gan_Matrix24_f *A, Gan_SquMatrix44_f *B)
 Right-multiply a matrix by a symmetric matrix.

Gan_SquMatrix44_f gan_symmat22f_lrmultm24T_s (Gan_SquMatrix22_f *A, Gan_Matrix24_f *B, Gan_Matrix24_f *C)
 Matrix triple product involving symmetric matrices.

Gan_SquMatrix22_f gan_symmat44f_lrmultm24_s (Gan_SquMatrix44_f *A, Gan_Matrix24_f *B, Gan_Matrix24_f *C)
 Matrix triple product involving symmetric matrices.

Gan_Matrix24_f gan_mat24f_lmultl22_s (Gan_Matrix24_f *A, Gan_SquMatrix22_f *B)
 Left-multiply a matrix by a lower-triangular matrix.

Gan_Matrix24_f gan_mat24f_lmultl22I_s (Gan_Matrix24_f *A, Gan_SquMatrix22_f *B)
 Left-multiply a matrix by the inverse of a lower-triangular matrix.

Gan_Matrix24_f gan_mat24f_lmultl22T_s (Gan_Matrix24_f *A, Gan_SquMatrix22_f *B)
 Left-multiply a matrix by the transpose of a lower-triangular matrix.

Gan_Matrix24_f gan_mat24f_lmultl22IT_s (Gan_Matrix24_f *A, Gan_SquMatrix22_f *B)
 Left-multiply a matrix by the inverse transpose of a lower-triangular matrix.

Gan_Matrix24_f gan_mat24f_rmultl44_s (Gan_Matrix24_f *A, Gan_SquMatrix44_f *B)
 Right-multiply a matrix by a lower-triangular matrix.

Gan_Matrix24_f gan_mat24f_rmultl44I_s (Gan_Matrix24_f *A, Gan_SquMatrix44_f *B)
 Right-multiply a matrix by the inverse of a lower-triangular matrix.

Gan_Matrix24_f gan_mat24f_rmultl44T_s (Gan_Matrix24_f *A, Gan_SquMatrix44_f *B)
 Right-multiply a matrix by the transpose of a lower-triangular matrix.

Gan_Matrix24_f gan_mat24f_rmultl44IT_s (Gan_Matrix24_f *A, Gan_SquMatrix44_f *B)
 Right-multiply a matrix by the inverse transpose of a lower-triangular matrix.

float gan_mat24f_sumsqr_s (Gan_Matrix24_f *A)
 Returns sum of squares of matrix elements.

float gan_mat24f_Fnorm_s (Gan_Matrix24_f *A)
 Frobenius norm of matrix.

Gan_Matrix24_f gan_mat24f_from_matf_s (Gan_Matrix_f *A)
 Convert generic rectangular matrix to fixed size matrix structure.


Detailed Description

Module: 2x4 matrices (single precision)

Part of: Gandalf Library

Revision: Last edited: Author:

Copyright: (c) 2000 Imagineer Software Limited


Define Documentation

#define GAN_MATTYPE   Gan_Matrix24_f
 

File: Module: 2x4 matrices (single precision) Part of: Gandalf Library

Revision: Last edited: Author: Copyright: (c) 2000 Imagineer Software Limited

Notes: Not to be compiled separately


Generated on Mon Oct 13 16:14:36 2003 by doxygen1.3-rc1