NAME
multiply_matrix_rows - Multiplies each row of a matrix by each row of another
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 multiply_matrix_rows
(
Matrix **target_mpp,
const Matrix *first_mp,
const Matrix *second_mp
);
DESCRIPTION
This routine multiplies each row of a matrix by each row of another. The
number of columns in the two matrices must be the same. The resulting matrix
is a stack of elementwise mulitiplied rows, starting with the first row of
the first matrix multiplied by each row in the second matrix, and so on.
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. Currenly this routine can only fail (gracefully!) due to memory
allocation failure. The routine will also fail due to dimension mismatch,
but this is currently treated as a bug (see set_bug()).
WARNING
This routine was created to simplify multipliying spectra, and is used in
several other ways as well. However, it seems not to be a natural
interface. Thus either the routine or the name may change in the future.
It should be considered somewhat OBSOLETE.
NOTE
The target matrix (first argument) must be different from the other two
matrices.
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
,
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
,
do_matrix_recomposition_2
,
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