#line 1 "/user/cvsspst/ees1cg/RAVL/RAVL-0.7/Math/LinearAlgebra/General/MatrixRUT.hh" // This file is part of RAVL, Recognition And Vision Library // Copyright (C) 2001, University of Surrey // This code may be redistributed under the terms of the GNU Lesser // General Public License (LGPL). See the lgpl.licence file for details or // see http://www.gnu.org/copyleft/lesser.html // file-header-ends-here #ifndef RAVL_MATRIXRUT_HEADER #define RAVL_MATRIXRUT_HEADER 1 /////////////////////////////////////////// //! rcsid="$Id: MatrixRUT.hh,v 1.8 2002/06/18 11:10:09 craftit Exp $" //! file="Ravl/Math/LinearAlgebra/General/MatrixRUT.hh" //! lib=RavlMath //! userlevel=Normal //! author="Charles Galambos" //! date="24/01/2001" //! docentry="Ravl.Math.Linear Algebra" #include "Ravl/Matrix.hh" namespace RavlN { //! userlevel=Normal //: Right Upper Triangular matrix. // This class contains functions optimised for working with // Right Upper Triangular matrix's. The lower right is assumed // to be zero. Most of the operations on this matrix ignore the // contents of the lower part, and it is not garanteed to contain // zero's. To ensure this use 'ZeroLowerLeft()', this MUST be // done before using matrix operators that are not part of this // class.
// The matrix MUST be square.
class MatrixRUTC
: public MatrixC
{
public:
MatrixRUTC()
{}
//: Default constructor.
MatrixRUTC(UIntT size)
: MatrixC(size,size)
{}
//: Create a new matrix of size * size.
MatrixRUTC(const MatrixC &oth)
: MatrixC(oth)
{ RavlAssert(oth.Rows() == oth.Cols()); }
//: Base constructor.
MatrixRUTC(const SArray2dC
// This matrix is altered to L-U factored form by the computation.
// If the input matrix is singular, false is returned and
// true if the operation succeeded.
VectorC Solve(const MatrixRUTC &A,const VectorC &b);
//: Solve a general linear system A*x = b
// Where X is the returned vector.
// If matrix is singular a zero length vector is returned.
}
#endif