Table of Contents

NAME

QccMatrixOrthogonalize - generate orthonormal basis for range of matrix

SYNOPSIS

#include "libQccPack.h"

int QccMatrixOrthogonalize(const QccMatrix matrix1, int num_rows, i num_cols, QccMatrix matrix2, int *num_cols2);

DESCRIPTION

QccMatrixOrthogonalize() creates an orthonormal basis for the range of matrix1 which is a matrix of size num_rows x num_cols. This orthonormal basis is returned as the columns of matrix2; that is, the columns of matrix2 span the same space as the columns of matrix1. matrix2 must be allocated to be of size num_rows x num_cols prior to calling QccMatrixOrthogonalize().

The number of basis vectors in the orthogonal basis is returned as num_cols2. If matrix1 is rank-deficient, then num_cols2 will be less than num_cols. In this case, num_cols - num_cols2 columns of matrix2 will be zero.

QccMatrixOrthogonalize() is implemented via a call to QccMatrixSVD(3) to generate the singular value decomposition of matrix1. Then, the left singular vectors corresponding to nonzero singular values are returned in matrix2.

SEE ALSO

QccMatrixSVD(3) , QccMatrix(3) , QccPack(3)

AUTHOR

Copyright (C) 1997-2021 James E. Fowler


Table of Contents



Get QccPack at SourceForge.net. Fast, secure and Free Open Source software downloads