Sunteți pe pagina 1din 6

/* complex.

h
Complex Number Library - Include File
class complex: declarations for complex numbers.
Copyright c! "orland International #$$%
&ll 'ights 'eser(ed.
&ll function names) member names) and operators ha(e been borro*ed
from &+,+ C--) except for the addition of:
friend complex .Cdecl acoscomplex,!/
friend complex .Cdecl asincomplex,!/
friend complex .Cdecl atancomplex,!/
friend complex .Cdecl log#%complex,!/
friend complex .Cdecl tancomplex,!/
friend complex .Cdecl tanhcomplex,!/
complex .Cdecl operator-!/
complex .Cdecl operator-!/
*/
0ifndef ..cplusplus
0error 1ust use C-- for the type complex.
0endif
0if 2defined.C314L56.7!
0define .C314L56.7 #
0include 8math.h9
class complex :
public:
// constructors
complexdouble ..re.(al) double ..im.(al;%!/
complex!/
// complex manipulations
friend double .Cdecl realcomplex,!/ // the real part
friend double .Cdecl imagcomplex,!/ // the imaginary part
friend complex .Cdecl con<complex,!/ // the complex con<ugate
friend double .Cdecl normcomplex,!/ // the s=uare of the magnitude
friend double .Cdecl argcomplex,!/ // the angle in the plane
friend complex .Cdecl polardouble ..mag) double ..angle;%!/
// Create a complex ob<ect gi(en polar coordinates
// 3(erloaded &N>I C math functions
friend double .Cdecl abscomplex,!/
friend complex .Cdecl acoscomplex,!/
friend complex .Cdecl asincomplex,!/
friend complex .Cdecl atancomplex,!/
friend complex .Cdecl coscomplex,!/
friend complex .Cdecl coshcomplex,!/
friend complex .Cdecl expcomplex,!/
friend complex .Cdecl logcomplex,!/
friend complex .Cdecl log#%complex,!/
friend complex .Cdecl po*complex, ..base) double ..expon!/
friend complex .Cdecl po*double ..base) complex, ..expon!/
friend complex .Cdecl po*complex, ..base) complex, ..expon!/
friend complex .Cdecl sincomplex,!/
friend complex .Cdecl sinhcomplex,!/
friend complex .Cdecl s=rtcomplex,!/
friend complex .Cdecl tancomplex,!/
friend complex .Cdecl tanhcomplex,!/
// "inary 3perator Functions
friend complex .Cdecl operator-complex,) complex,!/
friend complex .Cdecl operator-double) complex,!/
friend complex .Cdecl operator-complex,) double!/
friend complex .Cdecl operator-complex,) complex,!/
friend complex .Cdecl operator-double) complex,!/
friend complex .Cdecl operator-complex,) double!/
friend complex .Cdecl operator*complex,) complex,!/
friend complex .Cdecl operator*complex,) double!/
friend complex .Cdecl operator*double) complex,!/
friend complex .Cdecl operator/complex,) complex,!/
friend complex .Cdecl operator/complex,) double!/
friend complex .Cdecl operator/double) complex,!/
friend int .Cdecl operator;;complex,) complex,!/
friend int .Cdecl operator2;complex,) complex,!/
complex, .Cdecl operator-;complex,!/
complex, .Cdecl operator-;double!/
complex, .Cdecl operator-;complex,!/
complex, .Cdecl operator-;double!/
complex, .Cdecl operator*;complex,!/
complex, .Cdecl operator*;double!/
complex, .Cdecl operator/;complex,!/
complex, .Cdecl operator/;double!/
complex .Cdecl operator-!/
complex .Cdecl operator-!/
// Implementation
pri(ate:
double re) im/
?/
// Inline complex functions
inline complex::complexdouble ..re.(al) double ..im.(al!
:
re ; ..re.(al/
im ; ..im.(al/
?
inline complex::complex!
:
/* if you *ant your complex numbers initiali@ed ...
re ; im ; %/
*/
?
inline complex .Cdecl complex::operator-!
:
return *this/
?
inline complex .Cdecl complex::operator-!
:
return complex-re) -im!/
?
// Aefinitions of compound-assignment operator member functions
inline complex, .Cdecl complex::operator-;complex, ..@B!
:
re -; ..@B.re/
im -; ..@B.im/
return *this/
?
inline complex, .Cdecl complex::operator-;double ..re.(alB!
:
re -; ..re.(alB/
return *this/
?
inline complex, .Cdecl complex::operator-;complex, ..@B!
:
re -; ..@B.re/
im -; ..@B.im/
return *this/
?
inline complex, .Cdecl complex::operator-;double ..re.(alB!
:
re -; ..re.(alB/
return *this/
?
inline complex, .Cdecl complex::operator*;double ..re.(alB!
:
re *; ..re.(alB/
im *; ..re.(alB/
return *this/
?
inline complex, .Cdecl complex::operator/;double ..re.(alB!
:
re /; ..re.(alB/
im /; ..re.(alB/
return *this/
?
// Aefinitions of non-member complex functions
inline double .Cdecl realcomplex, ..@!
:
return ..@.re/
?
inline double .Cdecl imagcomplex, ..@!
:
return ..@.im/
?
inline complex .Cdecl con<complex, ..@!
:
return complex..@.re) -..@.im!/
?
inline complex .Cdecl polardouble ..mag) double ..angle!
:
return complex..mag*cos..angle!) ..mag*sin..angle!!/
?
// Aefinitions of non-member binary operator functions
inline complex .Cdecl operator-complex, ..@#) complex, ..@B!
:
return complex..@#.re - ..@B.re) ..@#.im - ..@B.im!/
?
inline complex .Cdecl operator-double ..re.(al#) complex, ..@B!
:
return complex..re.(al# - ..@B.re) ..@B.im!/
?
inline complex .Cdecl operator-complex, ..@#) double ..re.(alB!
:
return complex..@#.re - ..re.(alB) ..@#.im!/
?
inline complex .Cdecl operator-complex, ..@#) complex, ..@B!
:
return complex..@#.re - ..@B.re) ..@#.im - ..@B.im!/
?
inline complex .Cdecl operator-double ..re.(al#) complex, ..@B!
:
return complex..re.(al# - ..@B.re) -..@B.im!/
?
inline complex .Cdecl operator-complex, ..@#) double ..re.(alB!
:
return complex..@#.re - ..re.(alB) ..@#.im!/
?
inline complex .Cdecl operator*complex, ..@#) double ..re.(alB!
:
return complex..@#.re*..re.(alB) ..@#.im*..re.(alB!/
?
inline complex .Cdecl operator*double ..re.(al#) complex, ..@B!
:
return complex..@B.re*..re.(al#) ..@B.im*..re.(al#!/
?
inline complex .Cdecl operator/complex, ..@#) double ..re.(alB!
:
return complex..@#.re/..re.(alB) ..@#.im/..re.(alB!/
?
inline int .Cdecl operator;;complex, ..@#) complex, ..@B!
:
return ..@#.re ;; ..@B.re ,, ..@#.im ;; ..@B.im/
?
inline int .Cdecl operator2;complex, ..@#) complex, ..@B!
:
return ..@#.re 2; ..@B.re CC ..@#.im 2; ..@B.im/
?
// Complex stream I/3
0include 8iostream.h9
ostream, .Cdecl operator88ostream,) complex,!/
istream, .Cdecl operator99istream,) complex,!/
0endif

S-ar putea să vă placă și