1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
|
#ifndef BODE_CPLX_H
#define BODE_CPLX_H
#include <math.h>
class cplx {
private:
double re,im;
public:
double real() {return re;}
double imag() {return im;}
cplx() {
re = 0.0;
im = -0.0;
}
cplx& operator= (cplx a) {
re = a.re;
im = a.im;
return *this;
}
cplx(double r, double i = 0.0) {
re = r;
im = i;
}
friend cplx operator * (cplx x1, cplx x2);
friend cplx operator + (cplx x1, cplx x2);
friend cplx operator - (cplx x1, cplx x2);
friend cplx operator / (cplx x1, cplx x2);
};
inline cplx operator+(cplx x1, cplx x2)
{
return cplx(x1.re + x2.re, x1.im + x2.im);
}
inline cplx operator-(cplx x1, cplx x2)
{
return cplx(x1.re - x2.re, x1.im - x2.im);
}
inline cplx operator*(cplx x1, cplx x2)
{
return cplx(x1.re * x2.re - x1.im * x2.im,
x1.re * x2.im + x2.re * x1.im);
}
inline cplx operator/(cplx x1, cplx x2)
{
double denom = x2.re * x2.re + x2.im * x2.im;
return cplx( (x1.re * x2.re + x1.im * x2.im) /denom,
(x1.im * x2.re - x2.im * x1.re) / denom);
}
#endif
|