matrix_pf.h
上传用户:jtjnyq9001
上传日期:2014-11-21
资源大小:3974k
文件大小:2k
源码类别:

3G开发

开发平台:

Visual C++

  1. #ifndef _MATRIX_PF_H_
  2. #define _MATRIX_PF_H_
  3. #include "vector_pf.h"
  4. //#include "rowvec_pf.h"
  5. class rowvec_pf;
  6. class colvec_pf;
  7. class matrix_pf
  8. {
  9. protected:
  10.   struct mrep
  11.     {
  12.     rowvec_pf **f;
  13.     int refcnt;
  14.     int orig_indx;
  15.     int length;
  16.     int max_indx;
  17.     } *pM;
  18.   int Is_Temp;
  19. public:
  20.   matrix_pf( void ); 
  21.   matrix_pf( int row_orig, int nrows, 
  22.              int col_orig, int ncols);
  23.   matrix_pf( int nrows, 
  24.              int ncols);
  25.   void allocate( int row_orig, int nrows,
  26.                   int col_orig, int ncols);
  27. //  void DumpToStream(ostream *output_stream);
  28.   void setrow(int row_num, PrimeFieldElem* val_vec);
  29.    void common_ctor_proc( int row_orig, 
  30.                    int nrows, 
  31.                    int col_orig,
  32.                    int ncols);
  33.    void Resize(int nrows, int ncols);
  34.   ~matrix_pf( void );
  35.   int nrows(void);
  36.   int ncols(void);
  37.   rowvec_pf& operator[](int i);
  38.   colvec_pf& operator*( colvec_pf &v2);
  39.   matrix_pf& operator-=( matrix_pf &m2);
  40.    matrix_pf& operator!();
  41.   friend class vector_pf;
  42.   friend class rowvec_pf;
  43.   friend class colvec_pf;
  44.   friend matrix_pf& operator*(matrix_pf &m1, matrix_pf &m2);
  45.   //friend matrix_pf& gauss_jordan(matrix_pf &a, matrix_pf &b);
  46.   ///friend vector<T>& vector<T>::operator*( matrix<T> &m2);
  47.   //void operator=(const double_complex& right);
  48. };
  49. matrix_pf& transpose(matrix_pf &orig_mat);
  50. //matrix_pf& gauss_jordan(matrix_pf &a, matrix<T> &b);
  51. //matrix<T>& gauss_jordan(matrix<T> &a, matrix<T> &b);
  52. //vector<double>& operator*(matrix<double> &m1, vector<double> &v2);
  53. //matrix<double>& operator*(vector<double> &m1, vector<double> &v2);
  54. #endif