Jones matrices are 2x2 matrices with complex elements. More...

#include <Jones.h>

Public Types

typedef Matrix< 2, 2, std::complex< T > > equiv
 

Public Member Functions

 Jones (T scalar=0.0)
 Default constructor.
 
template<typename U >
 Jones (const U &scalar)
 Construct from a castable type.
 
 Jones (std::complex< T > j00_, std::complex< T > j01_, std::complex< T > j10_, std::complex< T > j11_)
 Construct from std::complex<T>
 
 Jones (const Jones &s)
 Construct from another Jones<T> matrix.
 
template<typename U >
 Jones (const Jones< U > &s)
 Construct from another Jones<U> matrix.
 
template<typename U >
 Jones (const Matrix< 2, 2, std::complex< U > > &M)
 Construct from a Matrix.
 
Jonesoperator= (const Jones &s)
 Set this instance equal to another Jones<T> instance.
 
Jonesoperator= (T scalar)
 Set this instance equal to a scalar.
 
Jonesoperator= (std::complex< T > scalar)
 Set this instance equal to a complex scalar.
 
template<typename U >
Jonesoperator= (const Jones< U > &s)
 Set this instance equal to another Jones<U> instance.
 
 operator equiv () const
 Cast to Matrix.
 
Jonesoperator+= (const Jones &s)
 Add another Jones<T> instance to this one.
 
Jonesoperator-= (const Jones &s)
 Subract another Jones<T> instance from this one.
 
Jonesoperator*= (const Jones &j)
 Multiply another Jones<T> instance into this one (this=this*j)
 
template<typename U >
Jonesoperator*= (const std::complex< U > &au)
 Multiply this instance by std::complex<U>
 
template<typename U >
Jonesoperator/= (const std::complex< U > &au)
 Divide this instance by std::complex<U>
 
Jonesoperator*= (T a)
 Multiply this instance by T.
 
Jonesoperator/= (T a)
 Divide this instance by T.
 
bool operator== (const Jones &b) const
 Equality.
 
bool operator!= (const Jones &b) const
 Inequality.
 
std::complex< T > & operator() (unsigned ir, unsigned ic)
 Returns reference to the value of the matrix at j(ir,ic)
 
const std::complex< T > & operator() (unsigned ir, unsigned ic) const
 Returns const reference to the value of the matrix at j(ir,ic)
 
std::complex< T > & operator[] (unsigned n)
 Alternative access to elements.
 
const std::complex< T > & operator[] (unsigned n) const
 Alternative access to elements.
 
bool is_diagonal () const
 Return true if the off-diagonal elements are zero.
 
unsigned size () const
 Dimension of data.
 
p () const
 Degree of polarization.
 

Static Public Member Functions

static const Jonesidentity ()
 The identity matrix.
 

Public Attributes

std::complex< T > j00
 
std::complex< T > j01
 
std::complex< T > j10
 
std::complex< T > j11
 

Friends

template<typename U >
const friend Jones operator* (Jones a, std::complex< U > c)
 Binary multiplication of Jones<T> and std::complex<U>
 
template<typename U >
const friend Jones operator* (std::complex< U > c, Jones a)
 Binary multiplication of std::complex<U> and Jones<T>
 
const friend Jones operator* (Jones a, T c)
 Binary multiplication of Jones<T> and T.
 
const friend Jones operator* (T c, Jones a)
 Binary multiplication of T and Jones<T>
 
template<typename U >
const friend Jones operator/ (Jones a, U c)
 Binary division of Jones by any type.
 
const friend Jones operator- (Jones s)
 Negation operator returns negative of instance.
 

Detailed Description

template<typename T>
class Jones< T >

Jones matrices are 2x2 matrices with complex elements.


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

Generated using doxygen 1.8.14