⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 comp.h

📁 一个关于滤波器设计的小程序
💻 H
字号:
#ifndef _INC_COMPLEOP
#define _INC_COMPLEOP
#include <math.h>
#ifndef PI
#define PI 3.1415926535897
#define MAXORDER 1000
#endif 

class comp
{
  public:
	double x;
	double y;
	comp(){x=0;y=0;}
    comp(double a){x=a;y=0;}
	comp(double a,double b){x=a;y=b;}
    comp operator=(comp a){x=a.x;y=a.y;return *this;}
    comp operator=(double a){x=a;y=0.0;return *this;}
    friend comp operator+(comp a, comp b)
	{
	  comp c;
	  c.x=a.x+b.x;
	  c.y=a.y+b.y;
	  return c;
	}
    friend comp operator+(double a,comp b)
	{
		comp c;
		c.x=a+b.x;
		c.y=b.y;
		return c;
	}
    friend comp operator+(comp a,double b)
	{
		comp c;
	    c.x=a.x+b;
		c.y=a.y;
		return c;
	}
	friend comp operator-(comp a, comp b){comp c;c.x=a.x-b.x;c.y=a.y-b.y;return c;}
    friend comp operator-(double a,comp b){comp c;c.x=a-b.x;c.y=-b.y;return c;}
	friend comp operator-(comp a,double b){comp c;c.x=a.x-b;c.y=a.y;return c;}
	friend comp operator*(comp a, comp b){comp c;c.x=a.x*b.x-a.y*b.y;c.y=a.y*b.x+a.x*b.y;return c;}
    friend comp operator*(double a,comp b){comp c;c.x=a*b.x;c.y=a*b.y;return c;}
    friend comp operator*(comp a,double b){comp c;c.x=a.x*b;c.y=a.y*b;return c;}
	friend comp operator/(comp a, comp b)
	{
	  comp c;
	  double t;
	  c.x=0.0;
	  c.y=0.0;
	  t=b.x*b.x+b.y*b.y;
	  if(t==0)return c;
	  c.x=(a.x*b.x+a.y*b.y)/t;
      c.y=(a.y*b.x-a.x*b.y)/t;
	  return c;
	}
    friend comp operator/(double a,comp b)
	{
	  comp c;
	  double t;
	  c.x=0.0;
	  c.y=0.0;
	  t=b.x*b.x+b.y*b.y;
	  if(t==0)return c;
	  c.x=a*b.x/t;
      c.y=-a*b.y/t;
	  return c;
	}
    friend comp operator/(comp a,double b)
	{
      comp c;
	  c.x=0.0;c.y=0.0;
	  if(b==0)
	  return c;
	  c.x=a.x/b;
	  c.y=a.y/b;
	  return c;
	}
	friend comp operator!(comp a)
	{
	  comp c;
	  c.x=a.x;
	  c.y=-a.y;
	  return c;
	}
	friend short int operator==(comp a, comp b)
	{
	  if((a.x==b.x)&&(a.y==b.y))
	    return 1;
	  else 
	    return 0;
	}
    friend short int operator!=(comp a, comp b)
	{
	  if((a.x==b.x)&&(a.y==b.y))
	    return 0;
	  else 
	    return 1;
	}
    friend double cabs(comp a){return sqrt(a.x*a.x+a.y*a.y);}
    friend double csqu(comp a){return(a.x*a.x+a.y*a.y);}
	friend double imag(comp a){return a.y;}
	friend double real(comp a){return a.x;}
    friend double cpha(comp a)
	{
	  return(atan2(a.y,a.x));
	}
	friend comp not(comp a)
	{
	  comp c;
	  c.x=a.x;
	  c.y=-a.y;
	  return c;
	}
	friend comp exp(comp a)
	{
	  comp c;
	  c.x=a.x*cos(a.y);
	  c.y=a.x*sin(a.y);
	  return c;
	}
};
#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -