00001 /**************************************************************************** 00002 * Copyright 2005 Evan Drumwright 00003 * This library is distributed under the terms of the GNU General Public 00004 * License (found in COPYING). 00005 ****************************************************************************/ 00006 00007 #ifndef _MATRIXNN_H 00008 #define _MATRIXNN_H 00009 00010 #include <Physsim/VectorN.h> 00011 #include <Physsim/MatrixN.h> 00012 00013 namespace Physsim { 00014 00016 class MatrixNN : public MatrixN 00017 { 00018 public: 00019 MatrixNN(); 00020 MatrixNN(unsigned dim); 00021 MatrixNN(const MatrixN& source); 00022 MatrixNN(const MatrixNN& source); 00023 MatrixNN(unsigned int dim, const boost::shared_array<Real> array); 00024 void invert(); 00025 bool is_symmetric(Real tolerance) const; 00026 static MatrixNN invert(const MatrixNN& m); 00027 static MatrixNN zero(unsigned dim); 00028 static MatrixNN identity(unsigned dim); 00029 void set_identity(); 00030 virtual void operator=(const MatrixN& source) { assert(source.rows() == source.columns()); MatrixN::operator=(source); } 00031 virtual void operator=(const MatrixNN& source) { MatrixN::operator=(source); } 00032 }; 00033 } 00034 00035 #endif 00036
1.5.1