NASA - Jet Propulsion Laboratory
    + View the NASA Portal
Search JPL
Jet Propulsion Laboratory Home Earth Solar System Stars & Galaxies Technology
Introduction Background Software Links

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_)
template<typename U>
 xcomplex (const xcomplex< U > &orig)
T & real ()
const T & real () const
T & imag ()
const T & imag () const
void Set (const T &re_, const T &im_)
template<typename U>
xcomplexoperator= (const xcomplex< U > &orig)
xcomplexoperator= (const T &orig)
xcomplexoperator+= (const xcomplex &orig)
xcomplexoperator-= (const xcomplex &orig)
xcomplexoperator*= (const xcomplex &orig)
xcomplexoperator*= (const T &fact)
xcomplex operator* (const T &fact) const
xcomplex operator* (const xcomplex &b) const
xcomplex operator+ (const xcomplex &b) const
xcomplex operator- (const xcomplex &b) const
xcomplex operator- () const
void Negate ()
void Conjugate ()
xcomplex conj () 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>
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:

  • the default constructor of xcomplex<> does nothing, in contrast to std::complex<>, which initialises its members to zero.
  • xcomplex<> implements the methods real() and imag() according to defect report DR387

Definition at line 57 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 64 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 66 of file xcomplex.h.

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

Creates the complex number (re_, 0).

Definition at line 69 of file xcomplex.h.

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

Creates a complex number as a copy of orig.

Definition at line 72 of file xcomplex.h.


Member Function Documentation

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

Returns the real part as lvalue.

Definition at line 76 of file xcomplex.h.

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

Returns the real part.

Definition at line 78 of file xcomplex.h.

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

Returns the imaginary part as lvalue.

Definition at line 80 of file xcomplex.h.

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

Returns the imaginary part.

Definition at line 82 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 85 of file xcomplex.h.

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

Sets the number to orig.

Definition at line 89 of file xcomplex.h.

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

Sets the number to (orig, 0).

Definition at line 92 of file xcomplex.h.

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

Adds orig to *this.

Definition at line 95 of file xcomplex.h.

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

Subtracts orig from *this.

Definition at line 98 of file xcomplex.h.

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

Multiplies *this by orig.

Definition at line 101 of file xcomplex.h.

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

Multiplies *this by fact.

Definition at line 108 of file xcomplex.h.

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

Returns *this * fact.

Definition at line 111 of file xcomplex.h.

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

Returns *this * b.

Definition at line 114 of file xcomplex.h.

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

Returns *this + b.

Definition at line 117 of file xcomplex.h.

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

Returns *this - b.

Definition at line 120 of file xcomplex.h.

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

Returns -(*this)

Definition at line 123 of file xcomplex.h.

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

Flips the signs of both components.

Definition at line 127 of file xcomplex.h.

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

Flips the signs of the imaginary component.

Definition at line 130 of file xcomplex.h.

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

Returns the complex conjugate of *this.

Definition at line 133 of file xcomplex.h.

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

Returns the norm of *this.

Definition at line 137 of file xcomplex.h.


Member Data Documentation

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

real part

Definition at line 60 of file xcomplex.h.

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

imaginary part

Definition at line 60 of file xcomplex.h.


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

Generated on Fri Jun 18 16:12:29 2010 for LevelS C++ support library
Privacy / Copyright
FIRST GOV Contact: NASA Home Page Site Manager:
Webmaster:

CL 03-2650