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

3G开发

开发平台:

Visual C++

  1. //
  2. // File = cmpxpoly.h
  3. //
  4. #ifndef _CMPXPOLY_H_
  5. #define _CMPXPOLY_H_  
  6. #include <fstream>
  7. #include <complex>
  8. using namespace std;
  9. class CmplxPolynomial
  10. {
  11. public: 
  12.   //  default constructor
  13.   CmplxPolynomial( );
  14.   
  15.   //  copy constructor
  16.   CmplxPolynomial( const CmplxPolynomial &original);
  17.   
  18.   // constructor for initializing a binomial
  19.   CmplxPolynomial( const complex<double> coeff_1,
  20.                    const complex<double> coeff_0);
  21.                    
  22.   //  initializing constructor
  23.   CmplxPolynomial( const int degree,
  24.                    const complex<double> *coeff);
  25.                    
  26.   //  initializing constructor
  27.   CmplxPolynomial( const double *coeff,
  28.                    const int degree);
  29.                    
  30.   // assignment operator
  31.   CmplxPolynomial& operator= (const CmplxPolynomial &right);
  32.   
  33.   //  multiply assign operator
  34.   CmplxPolynomial& operator*= (const CmplxPolynomial &right);
  35.   
  36.   //  divide assign operator
  37.   CmplxPolynomial& operator/= (const CmplxPolynomial &divisor);
  38.   
  39.   // return array of polynomial root values
  40.   complex<double>* GetRoots( void );
  41.   // reflect root across the unit circle
  42.   void ReflectRoot( int root_idx );
  43.   // dump polynomial to an output stream
  44.   void DumpToStream( ostream* output_stream);
  45.   
  46.   // get degree of polynomial
  47.   int GetDegree(void); 
  48.   
  49.   // return specified coefficient
  50.   complex<double> GetCoeff(int k);
  51.   // return pointer to copy of coefficients
  52.   void CopyCoeffs(complex<double>*);
  53.   friend class RealPolynomial;
  54. private:
  55.   // find roots of the polynomial
  56.   void FindRoots( void );
  57.   // build sum of powers coefficients from roots
  58.   //void BuildFromRoots( void );
  59.    
  60.   int Poly_Degree;
  61.   complex<double>* Poly_Coeff; 
  62.   complex<double>* RemCoeff;
  63.   complex<double>* Root;
  64. }; 
  65. #endif