// This file is generated by WOK (CPPExt). // Please do not edit this file; modify original file instead. // The copyright and license terms as defined for the original file apply to // this header file considered to be the "object code" form of the original source. #ifndef _math_Jacobi_HeaderFile #define _math_Jacobi_HeaderFile #ifndef _Standard_HeaderFile #include #endif #ifndef _Standard_Macro_HeaderFile #include #endif #ifndef _Standard_Boolean_HeaderFile #include #endif #ifndef _math_Matrix_HeaderFile #include #endif #ifndef _Standard_Integer_HeaderFile #include #endif #ifndef _math_Vector_HeaderFile #include #endif #ifndef _Standard_Real_HeaderFile #include #endif #ifndef _Standard_OStream_HeaderFile #include #endif class StdFail_NotDone; class math_Matrix; class math_Vector; //! This class implements the Jacobi method to find the eigenvalues and
//! the eigenvectors of a real symmetric square matrix.
//! A sort of eigenvalues is done.
class math_Jacobi { public: void* operator new(size_t,void* anAddress) { return anAddress; } void* operator new(size_t size) { return Standard::Allocate(size); } void operator delete(void *anAddress) { if (anAddress) Standard::Free((Standard_Address&)anAddress); } //! Given a Real n X n matrix A, this constructor computes all its
//! eigenvalues and eigenvectors using the Jacobi method.
//! The exception NotSquare is raised if the matrix is not square.
//! No verification that the matrix A is really symmetric is done.
Standard_EXPORT math_Jacobi(const math_Matrix& A); //! Returns true if the computations are successful, otherwise returns false.
Standard_Boolean IsDone() const; //! Returns the eigenvalues vector.
//! Exception NotDone is raised if calculation is not done successfully.
const math_Vector& Values() const; //! returns the eigenvalue number Num.
//! Eigenvalues are in the range (1..n).
//! Exception NotDone is raised if calculation is not done successfully.
Standard_Real Value(const Standard_Integer Num) const; //! returns the eigenvectors matrix.
//! Exception NotDone is raised if calculation is not done successfully.
const math_Matrix& Vectors() const; //! Returns the eigenvector V of number Num.
//! Eigenvectors are in the range (1..n).
//! Exception NotDone is raised if calculation is not done successfully.
void Vector(const Standard_Integer Num,math_Vector& V) const; //! Prints information on the current state of the object.
//! Is used to redefine the operator <<.
Standard_EXPORT void Dump(Standard_OStream& o) const; protected: private: Standard_Boolean Done; math_Matrix AA; Standard_Integer NbRotations; math_Vector EigenValues; math_Matrix EigenVectors; }; #include // other Inline functions and methods (like "C++: function call" methods) #endif