NAME

get_target_matrix - Gets target matrix

SYNOPSIS

#include "m/m_matrix.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 get_target_matrix
(
	Matrix **target_mpp,
	int num_rows,
	int num_cols
);

DESCRIPTION

This routine implements the creation/over-writing semantics used in the KJB library in the case of matrices. If *target_mpp is NULL, then this routine creates the matrix. If it is not null, and it is the right size, then this routine does nothing. If it is the wrong size, then it is resized. In order to be memory efficient, we free before resizing. If the resizing fails, then the original contents of the *target_mpp will be lost. However, target_mpp->elements will be set to NULL, so *target_mpp can be safely sent to free_matrix(). Note that this is in fact the convention throughout the KJB library--if destruction on failure is a problem (usually when *target_mpp is global)--then work on a copy! The sizes (num_rows and num_cols) must both be nonnegative. Conventionally, num_rows and num_cols are both positive; however, it is also acceptable to have num_rows and num_cols both zero. Anything else (such as a mix of positive and zero sizes) is regarded as a bug in the calling program -- set_bug(3) is called and (if it returns) ERROR is returned.

RELATED

Matrix

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_zero_matrix , get_unity_matrix , get_initialized_matrix , free_matrix , get_identity_matrix , ow_zero_matrix , ow_set_matrix , get_diagonal_matrix , get_random_matrix , get_random_matrix_2