xcomplex< T > Class Template Reference
[Complex number support]

#include <xcomplex.h>

List of all members.

Public Member Functions

 xcomplex ()
 xcomplex (const T &re_, const T &im_)
 xcomplex (const T &re_)
 xcomplex (const std::complex< T > &orig)
template<typename U>
 xcomplex (const xcomplex< U > &orig)
 operator std::complex< T > () const
T & real ()
const T & real () const
T & imag ()
const T & imag () const
void Set (const T &re_, const T &im_)
xcomplexoperator= (const xcomplex &orig)
xcomplexoperator= (const std::complex< T > &orig)
xcomplexoperator= (const T &orig)
xcomplexoperator+= (const xcomplex &b)
xcomplexoperator-= (const xcomplex &b)
xcomplexoperator*= (const xcomplex &b)
xcomplexoperator/= (const xcomplex &b)
xcomplexoperator*= (const T &fact)
xcomplexoperator/= (const T &div)
xcomplex operator* (const T &fact) const
xcomplex operator* (const xcomplex &b) const
xcomplex operator/ (const xcomplex &b) const
xcomplex operator/ (const T &div) const
xcomplex operator+ (const xcomplex &b) const
xcomplex operator- (const xcomplex &b) const
xcomplex operator- () const
void Negate ()
void Conjugate ()
void Rotate (T angle)
xcomplex conj () const
xcomplex times_i () const
norm () const

Public Attributes

re
im

Related Functions

(Note that these are not member functions.)

template<typename T>
xcomplex< T > conj (const xcomplex< T > &num)
template<typename T>
norm (const xcomplex< T > &num)
template<typename T>
abs (const xcomplex< T > &num)
template<typename T>
xcomplex< T > exp (const xcomplex< T > &num)
template<typename T>
xcomplex< T > operator* (const T &f1, const xcomplex< T > &f2)
template<typename T>
xcomplex< T > operator/ (const T &f1, const xcomplex< T > &f2)
template<typename T>
std::ostream & operator<< (std::ostream &os, const xcomplex< T > &val)


Detailed Description

template<typename T>
class xcomplex< T >

A class for representing complex numbers.

This template is intended as an (under-encapsulated) replacement for the (over-encapsulated) std::complex<>. The goal is to include the whole functionality of std::complex<>, with some additional methods that allow higher performance.

The (known and intentional) differences between xcomplex<> and std::complex<> are:

Definition at line 56 of file xcomplex.h.


Constructor & Destructor Documentation

template<typename T>
xcomplex< T >::xcomplex (  )  [inline]

Default constructor. re and im are not initialised.

Definition at line 63 of file xcomplex.h.

template<typename T>
xcomplex< T >::xcomplex ( const T &  re_,
const T &  im_ 
) [inline]

Creates the complex number (re_, im_).

Definition at line 65 of file xcomplex.h.

template<typename T>
xcomplex< T >::xcomplex ( const T &  re_  )  [inline]

Creates the complex number (re_, 0).

Definition at line 68 of file xcomplex.h.

template<typename T>
xcomplex< T >::xcomplex ( const std::complex< T > &  orig  )  [inline]

Creates an xcomplex from a std::complex of identical precision.

Definition at line 71 of file xcomplex.h.

template<typename T>
template<typename U>
xcomplex< T >::xcomplex ( const xcomplex< U > &  orig  )  [inline, explicit]

Creates a complex number as a copy of orig.

Definition at line 74 of file xcomplex.h.


Member Function Documentation

template<typename T>
xcomplex< T >::operator std::complex< T > (  )  const [inline]

Conversion operator to std::complex<T>

Definition at line 78 of file xcomplex.h.

template<typename T>
T& xcomplex< T >::real (  )  [inline]

Returns the real part as lvalue.

Definition at line 82 of file xcomplex.h.

template<typename T>
const T& xcomplex< T >::real (  )  const [inline]

Returns the real part.

Definition at line 84 of file xcomplex.h.

template<typename T>
T& xcomplex< T >::imag (  )  [inline]

Returns the imaginary part as lvalue.

Definition at line 86 of file xcomplex.h.

template<typename T>
const T& xcomplex< T >::imag (  )  const [inline]

Returns the imaginary part.

Definition at line 88 of file xcomplex.h.

template<typename T>
void xcomplex< T >::Set ( const T &  re_,
const T &  im_ 
) [inline]

Sets the number to (re_, im_).

Definition at line 91 of file xcomplex.h.

template<typename T>
xcomplex& xcomplex< T >::operator= ( const xcomplex< T > &  orig  )  [inline]

Sets the number to orig.

Definition at line 95 of file xcomplex.h.

template<typename T>
xcomplex& xcomplex< T >::operator= ( const std::complex< T > &  orig  )  [inline]

Sets the number to orig.

Definition at line 98 of file xcomplex.h.

template<typename T>
xcomplex& xcomplex< T >::operator= ( const T &  orig  )  [inline]

Sets the number to (orig, 0).

Definition at line 101 of file xcomplex.h.

template<typename T>
xcomplex& xcomplex< T >::operator+= ( const xcomplex< T > &  b  )  [inline]

Adds b to *this.

Definition at line 104 of file xcomplex.h.

template<typename T>
xcomplex& xcomplex< T >::operator-= ( const xcomplex< T > &  b  )  [inline]

Subtracts b from *this.

Definition at line 107 of file xcomplex.h.

template<typename T>
xcomplex& xcomplex< T >::operator*= ( const xcomplex< T > &  b  )  [inline]

Multiplies *this by b.

Definition at line 110 of file xcomplex.h.

template<typename T>
xcomplex& xcomplex< T >::operator/= ( const xcomplex< T > &  b  )  [inline]

Divides *this by b.

Definition at line 117 of file xcomplex.h.

template<typename T>
xcomplex& xcomplex< T >::operator*= ( const T &  fact  )  [inline]

Multiplies *this by fact.

Definition at line 125 of file xcomplex.h.

template<typename T>
xcomplex& xcomplex< T >::operator/= ( const T &  div  )  [inline]

Divides *this by div.

Definition at line 128 of file xcomplex.h.

template<typename T>
xcomplex xcomplex< T >::operator* ( const T &  fact  )  const [inline]

Returns *this * fact.

Definition at line 131 of file xcomplex.h.

template<typename T>
xcomplex xcomplex< T >::operator* ( const xcomplex< T > &  b  )  const [inline]

Returns *this * b.

Definition at line 134 of file xcomplex.h.

template<typename T>
xcomplex xcomplex< T >::operator/ ( const xcomplex< T > &  b  )  const [inline]

Returns *this / b.

Definition at line 137 of file xcomplex.h.

template<typename T>
xcomplex xcomplex< T >::operator/ ( const T &  div  )  const [inline]

Returns *this / div.

Definition at line 140 of file xcomplex.h.

template<typename T>
xcomplex xcomplex< T >::operator+ ( const xcomplex< T > &  b  )  const [inline]

Returns *this + b.

Definition at line 143 of file xcomplex.h.

template<typename T>
xcomplex xcomplex< T >::operator- ( const xcomplex< T > &  b  )  const [inline]

Returns *this - b.

Definition at line 146 of file xcomplex.h.

template<typename T>
xcomplex xcomplex< T >::operator- (  )  const [inline]

Returns -(*this)

Definition at line 149 of file xcomplex.h.

template<typename T>
void xcomplex< T >::Negate (  )  [inline]

Flips the signs of both components.

Definition at line 153 of file xcomplex.h.

template<typename T>
void xcomplex< T >::Conjugate (  )  [inline]

Flips the signs of the imaginary component.

Definition at line 156 of file xcomplex.h.

template<typename T>
void xcomplex< T >::Rotate ( angle  )  [inline]

Multiplies the number by exp(i*angle)

Definition at line 159 of file xcomplex.h.

template<typename T>
xcomplex xcomplex< T >::conj (  )  const [inline]

Returns the complex conjugate of *this.

Definition at line 166 of file xcomplex.h.

template<typename T>
xcomplex xcomplex< T >::times_i (  )  const [inline]

Returns *this*i.

Definition at line 170 of file xcomplex.h.

template<typename T>
T xcomplex< T >::norm (  )  const [inline]

Returns the norm of *this.

Definition at line 174 of file xcomplex.h.


Member Data Documentation

template<typename T>
T xcomplex< T >::re

real part

Definition at line 59 of file xcomplex.h.

template<typename T>
T xcomplex< T >::im

imaginary part

Definition at line 59 of file xcomplex.h.


The documentation for this class was generated from the following file:

Generated on Wed Apr 24 11:31:17 2013 for LevelS C++ support library