新增qwt源码版本
This commit is contained in:
83
qwtdemo/examples/bode/complexnumber.h
Normal file
83
qwtdemo/examples/bode/complexnumber.h
Normal file
@@ -0,0 +1,83 @@
|
||||
#ifndef _COMPLEX_NUMBER_H_
|
||||
#define _COMPLEX_NUMBER_H_
|
||||
|
||||
#include <math.h>
|
||||
|
||||
class ComplexNumber
|
||||
{
|
||||
public:
|
||||
ComplexNumber() ;
|
||||
ComplexNumber( double r, double i = 0.0 );
|
||||
|
||||
double real() const;
|
||||
double imag() const;
|
||||
|
||||
friend ComplexNumber operator*(
|
||||
const ComplexNumber &, const ComplexNumber & );
|
||||
|
||||
friend ComplexNumber operator+(
|
||||
const ComplexNumber &, const ComplexNumber & );
|
||||
|
||||
friend ComplexNumber operator-(
|
||||
const ComplexNumber &, const ComplexNumber & );
|
||||
friend ComplexNumber operator/(
|
||||
const ComplexNumber &, const ComplexNumber & );
|
||||
|
||||
private:
|
||||
double d_real;
|
||||
double d_imag;
|
||||
};
|
||||
|
||||
inline ComplexNumber::ComplexNumber():
|
||||
d_real( 0.0 ),
|
||||
d_imag( -0.0 )
|
||||
{
|
||||
}
|
||||
|
||||
inline ComplexNumber::ComplexNumber( double re, double im ):
|
||||
d_real( re ),
|
||||
d_imag( im )
|
||||
{
|
||||
}
|
||||
|
||||
inline double ComplexNumber::real() const
|
||||
{
|
||||
return d_real;
|
||||
}
|
||||
|
||||
inline double ComplexNumber::imag() const
|
||||
{
|
||||
return d_imag;
|
||||
}
|
||||
|
||||
inline ComplexNumber operator+(
|
||||
const ComplexNumber &x1, const ComplexNumber &x2 )
|
||||
{
|
||||
return ComplexNumber( x1.d_real + x2.d_real, x1.d_imag + x2.d_imag );
|
||||
}
|
||||
|
||||
inline ComplexNumber operator-(
|
||||
const ComplexNumber &x1, const ComplexNumber &x2 )
|
||||
{
|
||||
return ComplexNumber( x1.d_real - x2.d_real, x1.d_imag - x2.d_imag );
|
||||
}
|
||||
|
||||
inline ComplexNumber operator*(
|
||||
const ComplexNumber &x1, const ComplexNumber &x2 )
|
||||
{
|
||||
return ComplexNumber( x1.d_real * x2.d_real - x1.d_imag * x2.d_imag,
|
||||
x1.d_real * x2.d_imag + x2.d_real * x1.d_imag );
|
||||
}
|
||||
|
||||
inline ComplexNumber operator/(
|
||||
const ComplexNumber &x1, const ComplexNumber &x2 )
|
||||
{
|
||||
double denom = x2.d_real * x2.d_real + x2.d_imag * x2.d_imag;
|
||||
|
||||
return ComplexNumber(
|
||||
( x1.d_real * x2.d_real + x1.d_imag * x2.d_imag ) / denom,
|
||||
( x1.d_imag * x2.d_real - x2.d_imag * x1.d_real ) / denom
|
||||
);
|
||||
}
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user