Main Page | Modules | Class List | File List | Class Members | File Members

Projective Normalisation of Fixed Size Vectors
[Fixed Size Vectors]


Defines

#define GAN_VEC_NORMALISE   gan_vec2_normalize
#define GAN_VEC_NORM_FNAME   "gan_vec2_normalize"
#define GAN_VECTYPE   Gan_Vector2
#define GAN_SQUMATTYPE   Gan_SquMatrix22
#define GAN_VEC_SCALE_S   gan_vec2_scale_s
#define GAN_VEC_DIVIDE_S   gan_vec2_divide_s
#define GAN_VEC_DOT_S   gan_vec2_dot_s
#define GAN_VEC_SQRLEN_S   gan_vec2_sqrlen_s
#define GAN_VEC_OUTER_SYM_Q   gan_vec22_outer_sym_q
#define GAN_SYMMAT_IDENT_S   gan_symmat22_ident_s
#define GAN_SYMMAT_INVERT_Q   gan_symmat22_invert_q
#define GAN_SYMMAT_ZERO_Q   gan_symmat22_zero_q
#define GAN_SYMMAT_MULTV_Q   gan_symmat22_multv2_q
#define GAN_SYMMAT_DIVIDE_S   gan_symmat22_divide_s
#define GAN_SYMMAT_DIVIDE_I   gan_symmat22_divide_i
#define GAN_SYMMAT_INCREMENT   gan_symmat22_increment
#define GAN_SYMMAT_TRACE_S   gan_symmat22_trace_s
#define GAN_SYMMAT_SUB_Q   gan_symmat22_sub_q
#define GAN_SYMMAT_SUMSQR_Q   gan_symmat22_sumsqr_q
#define GAN_SYMMAT_CHOLESKY_Q   gan_symmat22_cholesky_q
#define GAN_LTMATI_MULTV_S   gan_ltmat22I_multv2_s
#define GAN_VEC_NORMALISE   gan_vec3_normalize
#define GAN_VEC_NORM_FNAME   "gan_vec3_normalize"
#define GAN_VECTYPE   Gan_Vector3
#define GAN_SQUMATTYPE   Gan_SquMatrix33
#define GAN_VEC_SCALE_S   gan_vec3_scale_s
#define GAN_VEC_DIVIDE_S   gan_vec3_divide_s
#define GAN_VEC_DOT_S   gan_vec3_dot_s
#define GAN_VEC_SQRLEN_S   gan_vec3_sqrlen_s
#define GAN_VEC_OUTER_SYM_Q   gan_vec33_outer_sym_q
#define GAN_SYMMAT_IDENT_S   gan_symmat33_ident_s
#define GAN_SYMMAT_INVERT_Q   gan_symmat33_invert_q
#define GAN_SYMMAT_ZERO_Q   gan_symmat33_zero_q
#define GAN_SYMMAT_MULTV_Q   gan_symmat33_multv3_q
#define GAN_SYMMAT_DIVIDE_S   gan_symmat33_divide_s
#define GAN_SYMMAT_DIVIDE_I   gan_symmat33_divide_i
#define GAN_SYMMAT_INCREMENT   gan_symmat33_increment
#define GAN_SYMMAT_TRACE_S   gan_symmat33_trace_s
#define GAN_SYMMAT_SUB_Q   gan_symmat33_sub_q
#define GAN_SYMMAT_SUMSQR_Q   gan_symmat33_sumsqr_q
#define GAN_SYMMAT_CHOLESKY_Q   gan_symmat33_cholesky_q
#define GAN_LTMATI_MULTV_S   gan_ltmat33I_multv3_s
#define GAN_VEC_NORMALISE   gan_vec4_normalize
#define GAN_VEC_NORM_FNAME   "gan_vec4_normalize"
#define GAN_VECTYPE   Gan_Vector4
#define GAN_SQUMATTYPE   Gan_SquMatrix44
#define GAN_VEC_SCALE_S   gan_vec4_scale_s
#define GAN_VEC_DIVIDE_S   gan_vec4_divide_s
#define GAN_VEC_DOT_S   gan_vec4_dot_s
#define GAN_VEC_SQRLEN_S   gan_vec4_sqrlen_s
#define GAN_VEC_OUTER_SYM_Q   gan_vec44_outer_sym_q
#define GAN_SYMMAT_IDENT_S   gan_symmat44_ident_s
#define GAN_SYMMAT_INVERT_Q   gan_symmat44_invert_q
#define GAN_SYMMAT_ZERO_Q   gan_symmat44_zero_q
#define GAN_SYMMAT_MULTV_Q   gan_symmat44_multv4_q
#define GAN_SYMMAT_DIVIDE_S   gan_symmat44_divide_s
#define GAN_SYMMAT_DIVIDE_I   gan_symmat44_divide_i
#define GAN_SYMMAT_INCREMENT   gan_symmat44_increment
#define GAN_SYMMAT_TRACE_S   gan_symmat44_trace_s
#define GAN_SYMMAT_SUB_Q   gan_symmat44_sub_q
#define GAN_SYMMAT_SUMSQR_Q   gan_symmat44_sumsqr_q
#define GAN_SYMMAT_CHOLESKY_Q   gan_symmat44_cholesky_q
#define GAN_LTMATI_MULTV_S   gan_ltmat44I_multv4_s

Functions

Gan_Bool gan_vec2_normalize (Gan_Vector2 *b, int n, double term_threshold, int max_iterations, Gan_SquMatrix22 *Lp)
 Normalize array of 2x1 vectors to identity inertia moment.
Gan_Bool gan_vec3_normalize (Gan_Vector3 *b, int n, double term_threshold, int max_iterations, Gan_SquMatrix33 *Lp)
 Normalize array of 3x1 vectors to identity inertia moment.
Gan_Bool gan_vec4_normalize (Gan_Vector4 *b, int n, double term_threshold, int max_iterations, Gan_SquMatrix44 *Lp)
 Normalize array of 2x1 vectors to identity inertia moment.

Function Documentation

Gan_Bool gan_vec2_normalize Gan_Vector2 b,
int  n,
double  term_threshold,
int  max_iterations,
Gan_SquMatrix22 Lp
 

Normalize array of 2x1 vectors to identity inertia moment.

Parameters:
b array of vectors to normalise
n number of vectors in array
term_threshold termination threshold
max_iterations maximum number of iterations
Lp pointer to solution for triangular normalising matrix
Returns:
GAN_TRUE on success, or #GAN_FAILURE if algorithm didn't converge.
This function applies projective normalization to the array of n 2x1 vectors b. After the normalization, the column vectors b are transformed by a lower triangular matrix $ L $, and scaled to unit length, so that the transformed vectors

\[ b'_i = \frac{1}{||L^{-1} b_i||}L^{-1} b_i \]

satisfy the equation

\[ \sum_{i=1\ldots n} (b'_i {b'_i}^{\top}) = \frac{n}{2} I_{2\times 2} \]

where $ I_{2\times 2} $ is the 2x2 identity matrix.

term_threshold specifies a threshold on the smallness of an adjustment to $ L $, below which the algorithm terminates successfully.

max_iterations specifies the maximum number of iterations to perform. If this is reached without the above threshold being reached, the algorithm terminates with failure, returning GAN_FALSE.

Lp is a pointer set to the final solution for the triangular matrix $ L $. If it is passed as NULL then Lp is ignored.

Upon successful termination, the row vectors b are transformed to $ b'_i $ as shown above, and GAN_TRUE is returned.

See also:
gan_vec3_normalize(), gan_mat22_normalize().

Gan_Bool gan_vec3_normalize Gan_Vector3 b,
int  n,
double  term_threshold,
int  max_iterations,
Gan_SquMatrix33 Lp
 

Normalize array of 3x1 vectors to identity inertia moment.

Parameters:
b array of vectors to normalise
n number of vectors in array
term_threshold termination threshold
max_iterations maximum number of iterations
Lp pointer to solution for triangular normalising matrix
Returns:
GAN_TRUE on success, or #GAN_FAILURE if algorithm didn't converge.
This function applies projective normalization to the array of n 3x1 vectors b. After the normalization, the column vectors b are transformed by a lower triangular matrix $ L $, and scaled to unit length, so that the transformed vectors

\[ b'_i = \frac{1}{||L^{-1} b_i||}L^{-1} b_i \]

satisfy the equation

\[ \sum_{i=1\ldots n} (b'_i {b'_i}^{\top}) = \frac{n}{3} I_{3\times 3} \]

where $ I_{3\times 3} $ is the 3x3 identity matrix.

term_threshold specifies a threshold on the smallness of an adjustment to $ L $, below which the algorithm terminates successfully.

max_iterations specifies the maximum number of iterations to perform. If this is reached without the above threshold being reached, the algorithm terminates with failure, returning GAN_FALSE.

Lp is a pointer set to the final solution for the triangular matrix $ L $. If it is passed as NULL then Lp is ignored.

Upon successful termination, the row vectors b are transformed to $ b'_i $ as shown above, and GAN_TRUE is returned.

See also:
gan_vec3_normalize(), gan_mat33_normalize().

Gan_Bool gan_vec4_normalize Gan_Vector4 b,
int  n,
double  term_threshold,
int  max_iterations,
Gan_SquMatrix44 Lp
 

Normalize array of 2x1 vectors to identity inertia moment.

Parameters:
b array of vectors to normalise
n number of vectors in array
term_threshold termination threshold
max_iterations maximum number of iterations
Lp pointer to solution for triangular normalising matrix
Returns:
GAN_TRUE on success, or #GAN_FAILURE if algorithm didn't converge.
This function applies projective normalization to the array of n 2x1 vectors b. After the normalization, the column vectors b are transformed by a lower triangular matrix $ L $, and scaled to unit length, so that the transformed vectors

\[ b'_i = \frac{1}{||L^{-1} b_i||}L^{-1} b_i \]

satisfy the equation

\[ \sum_{i=1\ldots n} (b'_i {b'_i}^{\top}) = \frac{n}{2} I_{2\times 2} \]

where $ I_{2\times 2} $ is the 2x2 identity matrix.

term_threshold specifies a threshold on the smallness of an adjustment to $ L $, below which the algorithm terminates successfully.

max_iterations specifies the maximum number of iterations to perform. If this is reached without the above threshold being reached, the algorithm terminates with failure, returning GAN_FALSE.

Lp is a pointer set to the final solution for the triangular matrix $ L $. If it is passed as NULL then Lp is ignored.

Upon successful termination, the row vectors b are transformed to $ b'_i $ as shown above, and GAN_TRUE is returned.

See also:
gan_vec3_normalize(), gan_mat22_normalize().


Generated on Fri Mar 17 12:44:54 2006 by  doxygen 1.3.9.1