complex.html
来自「ST20 Embedded Toolset R2.0.5用于开发基于ST20芯片」· HTML 代码 · 共 668 行 · 第 1/2 页
HTML
668 行
<HTML><HEAD><TITLE><complex></TITLE></HEAD><BODY><H1><A NAME="<complex>"><CODE><complex></CODE></A></H1><HR><P><B><CODE><A HREF="#abs">abs</A>· <A HREF="#arg">arg</A>· <A HREF="#complex">complex</A>· <A HREF="#conj">conj</A>· <A HREF="#cos">cos</A>· <A HREF="#cosh">cosh</A>· <A HREF="#double_complex">double_complex</A>· <A HREF="#exp">exp</A>· <A HREF="#float_complex">float_complex</A>· <A HREF="#imag">imag</A>· <A HREF="#log">log</A>· <A HREF="#log10">log10</A>· <A HREF="#norm">norm</A>· <A HREF="#operator!=">operator!=</A>· <A HREF="#operator*">operator*</A>· <A HREF="#operator+">operator+</A>· <A HREF="#operator-">operator-</A>· <A HREF="#operator/">operator/</A>· <A HREF="#operator<<">operator<<</A>· <A HREF="#operator==">operator==</A>· <A HREF="#operator>>">operator>></A>· <A HREF="#polar">polar</A>· <A HREF="#pow">pow</A>· <A HREF="#real">real</A>· <A HREF="#sin">sin</A>· <A HREF="#sinh">sinh</A>· <A HREF="#sqrt">sqrt</A>· <A HREF="#tan">tan</A>· <A HREF="#tanh">tanh</A>· <A HREF="#__STD_COMPLEX">__STD_COMPLEX</A></CODE></B></P><HR><P>Include the standard header <B><CODE><complex></CODE></B>to define classes <CODE>double_complex</CODE> and <CODE>float_complex</CODE> and a host ofsupporting functions.Unless otherwise specified,functions that can return multiple values return an imaginarypart in the half-open interval <CODE>(-pi, pi]</CODE>.</P><PRE> // DECLARATIONS#define <B><A HREF="#__STD_COMPLEX">__STD_COMPLEX</A></B> // CLASSESclass double_complex;class float_complex; // double_complex FUNCTIONSdouble_complex <B><A HREF="#operator+">operator+</A></B>(const double_complex& left, const double_complex& right);double_complex <B><A HREF="#operator+">operator+</A></B>(const double_complex& left, const double& right);double_complex <B><A HREF="#operator+">operator+</A></B>(const double& left, const double_complex& right);double_complex <B><A HREF="#operator-">operator-</A></B>(const double_complex& left, const double_complex& right);double_complex <B><A HREF="#operator-">operator-</A></B>(const double_complex& left, const double& right);double_complex <B><A HREF="#operator-">operator-</A></B>(const double& left, const double_complex& right);double_complex <B><A HREF="#operator*">operator*</A></B>(const double_complex& left, const double_complex& right);double_complex <B><A HREF="#operator*">operator*</A></B>(const double_complex& left, const double& right);double_complex <B><A HREF="#operator*">operator*</A></B>(const double& left, const double_complex& right);double_complex <B><A HREF="#operator/">operator/</A></B>(const double_complex& left, const double_complex& right);double_complex <B><A HREF="#operator/">operator/</A></B>(const double_complex& left, const double& right);double_complex <B><A HREF="#operator/">operator/</A></B>(const double& left, const double_complex& right);double_complex <B><A HREF="#operator+">operator+</A></B>(const double_complex& left);double_complex <B><A HREF="#operator-">operator-</A></B>(const double_complex& left);bool <B><A HREF="#operator==">operator==</A></B>(const double_complex& left, const double_complex& right);bool <B><A HREF="#operator==">operator==</A></B>(const double_complex& left, const double& right);bool <B><A HREF="#operator==">operator==</A></B>(const double& left, const double_complex& right);bool <B><A HREF="#operator!=">operator!=</A></B>(const double_complex& left, const double_complex& right);bool <B><A HREF="#operator!=">operator!=</A></B>(const double_complex& left, const double& right);bool <B><A HREF="#operator!=">operator!=</A></B>(const double& left, const double_complex& right);istream& <B><A HREF="#operator>>">operator>></A></B>(istream& istr, double_complex& right);ostream& <B><A HREF="#operator<<">operator<<</A></B>(ostream& ostr, const double_complex& right);double <B><A HREF="#real">real</A></B>(const double_complex& left);double <B><A HREF="#imag">imag</A></B>(const double_complex& left);double <B><A HREF="#abs">abs</A></B>(const double_complex& left);double <B><A HREF="#arg">arg</A></B>(const double_complex& left);double <B><A HREF="#norm">norm</A></B>(const double_complex& left);double_complex <B><A HREF="#conj">conj</A></B>(const double_complex& left);double_complex <B><A HREF="#polar">polar</A></B>(const double& rho, const double& theta = 0);double_complex <B><A HREF="#cos">cos</A></B>(const double_complex& left);double_complex <B><A HREF="#cosh">cosh</A></B>(const double_complex& left);double_complex <B><A HREF="#exp">exp</A></B>(const double_complex& left);double_complex <B><A HREF="#log">log</A></B>(const double_complex& left);double_complex <B><A HREF="#log10">log10</A></B>(const double_complex& left);double_complex <B><A HREF="#pow">pow</A></B>(const double_complex& left, int right);double_complex <B><A HREF="#pow">pow</A></B>(const double_complex& left, const double& right);double_complex <B><A HREF="#pow">pow</A></B>(const double_complex& left, const double_complex& right);double_complex <B><A HREF="#pow">pow</A></B>(const double& left, const double_complex& right);double_complex <B><A HREF="#sin">sin</A></B>(const double_complex& left);double_complex <B><A HREF="#sinh">sinh</A></B>(const double_complex& left);double_complex <B><A HREF="#sqrt">sqrt</A></B>(const double_complex& left); // float_complex FUNCTIONSbool <B><A HREF="#operator==">operator==</A></B>(const float& left, const float_complex& right);bool <B><A HREF="#operator!=">operator!=</A></B>(const float_complex& left, const float_complex& right);bool <B><A HREF="#operator!=">operator!=</A></B>(const float_complex& left, const float& right);bool <B><A HREF="#operator!=">operator!=</A></B>(const float& left, const float_complex& right);istream& <B><A HREF="#operator>>">operator>></A></B>(istream& istr, float_complex& right);ostream& <B><A HREF="#operator<<">operator<<</A></B>(ostream& ostr, const float_complex& right);float <B><A HREF="#real">real</A></B>(const float_complex& left);float <B><A HREF="#imag">imag</A></B>(const float_complex& left);float <B><A HREF="#abs">abs</A></B>(const float_complex& left);float <B><A HREF="#arg">arg</A></B>(const float_complex& left);float <B><A HREF="#norm">norm</A></B>(const float_complex& left);float_complex <B><A HREF="#conj">conj</A></B>(const float_complex& left);float_complex <B><A HREF="#polar">polar</A></B>(const float& rho, const float& theta = 0);float_complex <B><A HREF="#cos">cos</A></B>(const float_complex& left);float_complex <B><A HREF="#cosh">cosh</A></B>(const float_complex& left);float_complex <B><A HREF="#exp">exp</A></B>(const float_complex& left);float_complex <B><A HREF="#log">log</A></B>(const float_complex& left);float_complex <B><A HREF="#log10">log10</A></B>(const float_complex& left);float_complex <B><A HREF="#pow">pow</A></B>(const float_complex& left, int right);float_complex <B><A HREF="#pow">pow</A></B>(const float_complex& left, const float& right);float_complex <B><A HREF="#pow">pow</A></B>(const float_complex& left, const float_complex& right);float_complex <B><A HREF="#pow">pow</A></B>(const float& left, const float_complex& right);float_complex <B><A HREF="#sin">sin</A></B>(const float_complex& left);float_complex <B><A HREF="#sinh">sinh</A></B>(const float_complex& left);float_complex <B><A HREF="#sqrt">sqrt</A></B>(const float_complex& left); // END OF DECLARATIONS</PRE><H2><A NAME="abs"><CODE>abs</CODE></A></H2><PRE>double <B>abs</B>(const double_complex& left);float <B>abs</B>(const float_complex& left);</PRE><P>The function returns the magnitude of <CODE>left</CODE>.</P><H2><A NAME="arg"><CODE>arg</CODE></A></H2><PRE>double <B>arg</B>(const double_complex& left);float <B>arg</B>(const float_complex& left);</PRE><P>The function returns the phase angle of <CODE>left</CODE>.</P><H2><A NAME="complex"><CODE>complex</CODE></A></H2><PRE>template<class Ty> class <B>complex</B> {public: typedef Ty <B><A HREF="#complex::value_type">value_type</A></B>; Ty <B><A HREF="#complex::real">real</A></B>() const; Ty <B><A HREF="#complex::imag">imag</A></B>() const; <B><A HREF="#complex::complex">complex</A></B>(const Ty& realval = 0, const Ty& imagval = 0); <B><A HREF="#complex::complex">complex</A></B>(const complex& right); complex& <B><A HREF="#complex::operator=">operator=</A></B>(const complex& right); complex& <B><A HREF="#complex::operator+=">operator+=</A></B>(const complex& right); complex& <B><A HREF="#complex::operator-=">operator-=</A></B>(const complex& right); complex& <B><A HREF="#complex::operator*=">operator*=</A></B>(const complex& right); complex& <B><A HREF="#complex::operator/=">operator/=</A></B>(const complex& right); complex& <B><A HREF="#complex::operator=">operator=</A></B>(const Ty& right); complex& <B><A HREF="#complex::operator=">operator=</A></B>(const Ty& right); complex& <B><A HREF="#complex::operator+=">operator+=</A></B>(const Ty& right); complex& <B><A HREF="#complex::operator-=">operator-=</A></B>(const Ty& right); complex& <B><A HREF="#complex::operator*=">operator*=</A></B>(const Ty& right); complex& <B><A HREF="#complex::operator/=">operator/=</A></B>(const Ty& right); };</PRE><P>The template class doesn't really exist. It is a convenient fictionfor describing the behavior common to the two types:</P><UL><LI><CODE><A HREF="#double_complex">double_complex</A></CODE> --which behaves like <CODE>complex<double></CODE></LI><LI><CODE><A HREF="#float_complex">float_complex</A></CODE> --which behaves like <CODE>complex<float></CODE></LI></UL><P>The template class describes an object that stores two objectsof type <B><CODE>Ty</CODE></B>, one that represents the real partof a complex number and one that represents the imaginary part.</P><H3><A NAME="complex::complex"><CODE>complex::complex</CODE></A></H3><PRE><B>complex</B>(const Ty& realval = 0, const Ty& imagval = 0);<B>complex</B>(const complex& right);</PRE><P>The first constructor initializes the stored real part to<CODE>realval</CODE> and the stored imaginary part to <CODE>imagval</CODE>.The second constructor initializes the stored real part to<CODE>right.real()</CODE> and the stored imaginary part to<CODE>right.imag()</CODE>.</P><H3><A NAME="complex::imag"><CODE>complex::imag</CODE></A></H3><PRE>Ty <B>imag</B>() const;</PRE><P>The member function returns the stored imaginary part.</P><H3><A NAME="complex::operator*="><CODE>complex::operator*=</CODE></A></H3><PRE>complex& <B>operator*=</B>(const complex& right);complex& <B>operator*=</B>(const Ty& right);</PRE><P>The first member function replaces the stored real and imaginary partswith those corresponding to the complex product of <CODE>*this</CODE>and <CODE>right</CODE>. It then returns <CODE>*this</CODE>.</P><P>The second member function multiplies both the stored real partand the stored imaginary part with <CODE>right</CODE>.It then returns <CODE>*this</CODE>.</P><H3><A NAME="complex::operator+="><CODE>complex::operator+=</CODE></A></H3><PRE>complex& <B>operator+=</B>(const complex& right);complex& <B>operator+=</B>(const Ty& right);</PRE><P>The first member function replaces the stored real and imaginary partswith those corresponding to the complex sum of <CODE>*this</CODE>and <CODE>right</CODE>. It then returns <CODE>*this</CODE>.</P><P>The second member function adds <CODE>right</CODE> to the stored real part.It then returns <CODE>*this</CODE>.</P><H3><A NAME="complex::operator-="><CODE>complex::operator-=</CODE></A></H3><PRE>complex& <B>operator-=</B>(const complex& right);complex& <B>operator-=</B>(const Ty& right);</PRE><P>The first member function replaces the stored real and imaginary partswith those corresponding to the complex difference of <CODE>*this</CODE>and <CODE>right</CODE>. It then returns <CODE>*this</CODE>.</P><P>The second member function subtracts <CODE>right</CODE> fromthe stored real part. It then returns <CODE>*this</CODE>.</P><H3><A NAME="complex::operator/="><CODE>complex::operator/=</CODE></A></H3><PRE>complex& <B>operator/=</B>(const complex& right);complex& <B>operator/=</B>(const Ty& right);</PRE><P>The first member function replaces the stored real and imaginary partswith those corresponding to the complex quotient of <CODE>*this</CODE>and <CODE>right</CODE>. It then returns <CODE>*this</CODE>.</P><P>The second member function multiplies both the stored real partand the stored imaginary part with <CODE>right</CODE>.It then returns <CODE>*this</CODE>.</P><H3><A NAME="complex::operator="><CODE>complex::operator=</CODE></A></H3><PRE>complex& <B>operator=</B>(const complex& right);complex& <B>operator=</B>(const Ty& right);</PRE><P>The first member function replaces the stored real part with<CODE>right.real()</CODE> and the stored imaginary partwith <CODE>right.imag()</CODE>. It then returns <CODE>*this</CODE>.</P><P>The second member function replaces the stored real part with<CODE>right</CODE> and the stored imaginary partwith zero. It then returns <CODE>*this</CODE>.</P><H3><A NAME="complex::real"><CODE>complex::real</CODE></A></H3><PRE>Ty <B>real</B>() const;</PRE><P>The member function returns the stored real part.</P><H3><A NAME="complex::value_type"><CODE>complex::value_type</CODE></A></H3><PRE>typedef Ty <B>value_type</B>;</PRE><P>The type is a synonym for the template parameter <CODE>Ty</CODE>.</P><H2><A NAME="conj"><CODE>conj</CODE></A></H2><PRE>double_complex <B>conj</B>(const double_complex& left);float_complex <B>conj</B>(const float_complex& left);</PRE><P>The function returns the conjugate of <CODE>left</CODE>.</P><H2><A NAME="cos"><CODE>cos</CODE></A></H2><PRE>double_complex <B>cos</B>(const double_complex& left);float_complex <B>cos</B>(const float_complex& left);</PRE><P>The function returns the cosine of <CODE>left</CODE>.</P><H2><A NAME="cosh"><CODE>cosh</CODE></A></H2><PRE>double_complex <B>cosh</B>(const double_complex& left);float_complex <B>cosh</B>(const float_complex& left);</PRE><P>The function returns the hyperbolic cosine of <CODE>left</CODE>.</P><H2><A NAME="double_complex"><CODE>double_complex</CODE></A></H2><PRE>class <B>double_complex</B> : public complex<double> {public: <B>double_complex</B>(double realval = 0, double imagval = 0); <B>double_complex</B>(const float_complex& right); double_complex& <B>operator=</B>(const double right); };</PRE><P>The class describes an object that stores two objects
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?