Go to the documentation of this file.00001
00002
00003 template<long n> class zhematrix_small
00004 {
00005 public:
00006
00007
00008
00009 comple array[(n*(n+1))/2];
00010
00011
00012
00013
00014 inline zhematrix_small();
00015 inline explicit zhematrix_small(const zhematrix&);
00016 inline zhematrix_small(const comple&);
00017 inline ~zhematrix_small();
00018
00019
00020
00021
00022
00023 inline zgematrix_small<n,n> to_zgematrix_small() const;
00024 inline zhematrix to_zhematrix() const;
00025
00026
00027 inline comple& operator()(const long& i, const long& j);
00028 inline comple operator()(const long& i, const long& j) const;
00029 inline zhematrix_small<n>& set(const long&, const long&, const comple&);
00030 template<long _n> inline friend std::ostream& operator<<(std::ostream&, const zhematrix_small<_n>&);
00031 inline void read(const char* filename);
00032 inline void write(const char* filename) const;
00033
00034
00035 inline zhematrix_small<n>& zero();
00036 inline zhematrix_small<n>& identity();
00037
00038
00039
00040
00041
00042 template<long N> inline zhematrix_small<N>& operator= (const zhematrix_small<N>&);
00043
00044 template<long N> inline friend zhematrix_small<N>& operator+=(zhematrix_small<N>&, const zhematrix_small<N>&);
00045
00046 template<long N> inline friend zhematrix_small<N>& operator-=(zhematrix_small<N>&, const zhematrix_small<N>&);
00047
00048 template<long N> inline friend zhematrix_small<N>& operator*=(zhematrix_small<N>&, const zhematrix_small<N>&);
00049 template<long N> inline friend zhematrix_small<N>& operator*=(zhematrix_small<N>&, const comple&);
00050
00051 template<long N> inline friend zhematrix_small<N>& operator/=(zhematrix_small<N>&, const comple&);
00052
00053 template<long N> inline friend const zhematrix_small<N>& operator+(const zhematrix_small<N>&);
00054 template<long N> inline friend zhematrix_small< N > operator-(const zhematrix_small<N>&);
00055
00056 template<long N> inline friend zgematrix_small<N,N> operator+(const zhematrix_small<N>&, const zgematrix_small<N,N>&);
00057 template<long N> inline friend zhematrix_small< N > operator+(const zhematrix_small<N>&, const zhematrix_small< N >&);
00058
00059 template<long N> inline friend zgematrix_small<N,N> operator-(const zhematrix_small<N>&, const zgematrix_small<N,N>&);
00060 template<long N> inline friend zhematrix_small< N > operator-(const zhematrix_small<N>&, const zhematrix_small< N >&);
00061
00062 template<long N> inline friend zcovector_small< N > operator*(const zhematrix_small<N>&, const zcovector_small< N >&);
00063 template<long N> inline friend zgematrix_small<N,N> operator*(const zhematrix_small<N>&, const zgematrix_small<N,N>&);
00064 template<long N> inline friend zgematrix_small<N,N> operator*(const zhematrix_small<N>&, const zhematrix_small< N >&);
00065 template<long N> inline friend zhematrix_small< N > operator*(const zhematrix_small<N>&, const comple&);
00066
00067 template<long N> inline friend zhematrix_small< N > operator/(const zhematrix_small<N>&, const comple&);
00068
00069 template<long N> inline friend zhematrix_small< N > operator*(const comple&, const zhematrix_small< N >&);
00070 };
00071
00072
00073
00074
00075
00076 inline comple det(const zhemat2&);
00077 inline zhemat2 inv(const zhemat2&);
00078 inline comple det(const zhemat3&);
00079 inline zhemat3 inv(const zhemat3&);