NAME

do_matrix_recomposition_2 - Computes A*diag*B'

SYNOPSIS

#include "m/m_mat_arith.h"

Example compile flags (system dependent):
  -DLINUX_X86_64 -DLINUX_X86_64_OPTERON  -DGNU_COMPILER 
   -I/home/kobus/include
   -L/home/kobus/misc/load/linux_x86_64_opteron -L/usr/lib/x86_64-linux-gnu
  -lKJB                               -lfftw3  -lgsl -lgslcblas -ljpeg  -lSVM -lstdc++                    -lpthread -lSLATEC -lg2c    -lacml -lacml_mv -lblas -lg2c      -lncursesw 


int do_matrix_recomposition_2
(
	Matrix **target_mpp,
	const Matrix *first_mp,
	const Vector *vp,
	const Matrix *second_mp
);

DESCRIPTION

This routine multiplies a matrix by a a diagonal matrix stored as a vector by a matrix transpose. The matrices must be compatable for muliplication, or ERROR is returned. The first argument is a pointer to the target matrix. If the target matrix itself is null, then a matrix of the appropriate size is created. If the target matrix is the wrong size, it is resized. Finally, if it is the right size, then the storage is recycled, as is.

RETURNS

NO_ERROR on success, and ERROR on failure, with an error message being set.

DISCLAIMER

This software is not adequatedly tested. It is recomended that results are checked independantly where appropriate.

AUTHOR

Kobus Barnard

DOCUMENTER

Kobus Barnard

SEE ALSO

get_vector_outer_product , add_matrices , ow_add_matrices , ow_add_matrices_2 , subtract_matrices , ow_subtract_matrices , multiply_matrices_ew , ow_multiply_matrices_ew , ow_multiply_matrices_ew_2 , divide_matrices_ew , ow_divide_matrices_ew , ow_add_matrix_times_scalar , ow_add_matrix_times_scalar_2 , ow_add_int_matrix_to_matrix , multiply_matrices , multiply_by_transpose , multiply_with_transpose , multiply_by_own_transpose , get_dot_product_of_matrix_rows , get_dot_product_of_matrix_rows_2 , invert_matrix_elements , square_matrix_elements , exp_matrix_elements , log_matrix_elements , log_matrix_elements_2 , sqrt_matrix_elements , add_scalar_to_matrix , subtract_scalar_from_matrix , multiply_matrix_by_scalar , divide_matrix_by_scalar , ow_invert_matrix_elements , ow_square_matrix_elements , ow_exp_matrix_elements , ow_log_matrix_elements , ow_log_matrix_elements_2 , ow_add_scalar_to_matrix , ow_subtract_scalar_from_matrix , ow_multiply_matrix_by_scalar , ow_divide_matrix_by_scalar , multiply_vector_and_matrix , multiply_matrix_and_vector , multiply_matrix_rows , add_row_vector_to_matrix , subtract_row_vector_from_matrix , multiply_matrix_by_row_vector_ew , divide_matrix_by_row_vector , ow_add_row_vector_to_matrix , ow_subtract_row_vector_from_matrix , ow_multiply_matrix_by_row_vector_ew , ow_divide_matrix_by_row_vector , ow_add_vector_to_matrix_row , ow_add_vector_to_matrix_col , ow_add_scalar_times_vector_to_matrix_row , ow_subtract_vector_from_matrix_row , ow_multiply_matrix_row_by_vector , ow_divide_matrix_row_by_vector , ow_multiply_matrix_col_by_vector , ow_add_scalar_to_matrix_row , ow_subtract_scalar_from_matrix_row , ow_multiply_matrix_row_by_scalar , ow_divide_matrix_row_by_scalar , add_col_vector_to_matrix , ow_add_col_vector_to_matrix , subtract_col_vector_from_matrix , ow_subtract_col_vector_from_matrix , multiply_matrix_by_col_vector_ew , ow_multiply_matrix_by_col_vector_ew , divide_matrix_by_col_vector , ow_divide_matrix_by_col_vector , ow_add_matrix_row_times_scalar , ow_add_matrix_rows_ew , ow_multiply_matrix_rows_ew , sum_matrix_elements , sum_matrix_row_elements , sum_matrix_col_elements , average_matrix_elements , ow_subtract_identity_matrix , do_matrix_recomposition , log_sum_log_matrix_elements , ow_exp_scale_by_sum_log_matrix_row , ow_add_matrix_row_to_vector , ow_get_abs_of_matrix , get_abs_of_matrix , get_euler_rotation_matrix , get_euler_homo_rotation_matrix , get_3d_rotation_matrix_1 , get_3d_rotation_matrix_2 , get_2d_rotation_matrix , get_3d_homo_rotation_matrix_1 , get_3d_homo_rotation_matrix_2 , get_2d_homo_rotation_matrix , get_3d_scaling_matrix_1 , get_3d_scaling_matrix_2 , get_3d_homo_scaling_matrix_1 , get_3d_homo_scaling_matrix_2 , get_3d_homo_translation_matrix_1 , get_3d_homo_translation_matrix_2