Core 1.0
Complex Class Reference

Complex numbers. More...

#include <complex.h>

Public Member Functions

 Complex ()
 Empty, set complex to zero.
 
 Complex (const double &, const double &=0.0)
 Create a complex number.
 
constexpr double & operator[] (int)
 Overloaded.
 
const constexpr double & operator[] (int) const
 Overloaded.
 
Complex operator+ () const
 Overloaded.
 
Complex operator- () const
 Overloaded.
 
Complexoperator+= (const Complex &)
 Overloaded.
 
Complexoperator-= (const Complex &)
 Overloaded.
 
Complexoperator*= (const Complex &)
 Overloaded.
 
Complexoperator*= (const double &)
 Overloaded.
 
Complexoperator/= (const double &)
 Overloaded.
 
double Arg () const
 Returns the argument of a complex.
 
Complex Conj () const
 Computes the conjugate of a complex number.
 
int Escape (int=1024) const
 Compute the escape time in the Mandelbrot series.
 

Static Public Member Functions

static Complex Polar (const double &, const double &)
 Returns a complex given modulus and argument.
 

Protected Attributes

double y = 0.0
 Real and imaginary parts.
 

Friends

Complex operator+ (const Complex &u, const Complex &v)
 Adds two complex numbers.
 
Complex operator- (const Complex &u, const Complex &v)
 Subtract two complex numbers.
 
Complex operator* (const Complex &u, const Complex &v)
 Multiplies two complex numbers.
 
Complex operator* (const Complex &u, const double &a)
 Overloaded.
 
Complex operator* (const double &a, const Complex &v)
 Overloaded.
 
Complex operator/ (const Complex &u, const double &a)
 Overloaded.
 
Complex operator/ (const Complex &u, const Complex &v)
 Divide two complex numbers.
 
Complex operator/ (const double &a, const Complex &c)
 Compute the inverse of a complex number.
 
bool operator== (const Complex &u, const Complex &v)
 Overloaded.
 
bool operator!= (const Complex &u, const Complex &v)
 Overloaded.
 
double Norm (const Complex &u)
 Returns the module of a complex.
 
void Normalize (Complex &z)
 Normalize a complex.
 
Complex Sqrt (const Complex &z)
 Computes the square root of a complex number.
 
std::ostream & operator<< (std::ostream &s, const Complex &complex)
 Overloaded.
 

Detailed Description

Complex numbers.

All operators are overloaded to enable the writing of simple math expressions.

Constructor & Destructor Documentation

◆ Complex()

Complex::Complex ( const double & a,
const double & b = 0.0 )
inlineexplicit

Create a complex number.

Parameters
a,bReal and imaginary parts.

Member Function Documentation

◆ Escape()

int Complex::Escape ( int n = 1024) const

Compute the escape time in the Mandelbrot series.

Parameters
nMaximum number of iterations.

◆ operator[]()

double & Complex::operator[] ( int i)
inlineconstexpr

Overloaded.

Returns either the real part or the imaginary part of a complex number.

◆ Polar()

Complex Complex::Polar ( const double & r,
const double & t )
inlinestatic

Returns a complex given modulus and argument.

Parameters
rModulus.
tArgument (in radian).

Friends And Related Symbol Documentation

◆ Normalize

void Normalize ( Complex & z)
friend

Normalize a complex.

c/=Norm(c); // Equivalent
friend double Norm(const Complex &)
Returns the module of a complex.
Definition complex.h:206
Complex()
Empty, set complex to zero.
Definition complex.h:15
Parameters
zComplex number.

◆ operator/

Complex operator/ ( const Complex & u,
const Complex & v )
friend

Divide two complex numbers.

Parameters
u,vArguments.

◆ operator<<

std::ostream & operator<< ( std::ostream & s,
const Complex & complex )
friend

Overloaded.

Parameters
sStream.
complexThe complex.

◆ Sqrt

Complex Sqrt ( const Complex & z)
friend

Computes the square root of a complex number.

Parameters
zComplex number.