Classes | Macros | Functions
vnl_complex_traits.h File Reference

To allow templated algorithms to determine appropriate actions of conjugation, complexification etc. More...

#include <complex>
#include "vnl/vnl_export.h"
#include <vnl/vnl_bignum.h>
#include <vnl/vnl_rational.h>

Go to the source code of this file.

Classes

struct  vnl_complex_traits< T >
 
struct  vnl_complex_traits< float >
 
struct  vnl_complex_traits< double >
 
struct  vnl_complex_traits< long double >
 
struct  vnl_complex_traits< std::complex< float > >
 
struct  vnl_complex_traits< std::complex< double > >
 
struct  vnl_complex_traits< std::complex< long double > >
 
struct  vnl_complex_traits< vnl_bignum >
 
struct  vnl_complex_traits< std::complex< vnl_bignum > >
 
struct  vnl_complex_traits< vnl_rational >
 
struct  vnl_complex_traits< std::complex< vnl_rational > >
 

Macros

#define VCL_DEFINE_SPECIALIZATION_MACRO(T)
 
#define VCL_DEFINE_SPECIALIZATION_MACRO_SIGNED_UNSIGNED(T)
 

Functions

 VCL_DEFINE_SPECIALIZATION_MACRO_SIGNED_UNSIGNED (char)
 
 VCL_DEFINE_SPECIALIZATION_MACRO_SIGNED_UNSIGNED (short)
 
 VCL_DEFINE_SPECIALIZATION_MACRO_SIGNED_UNSIGNED (int)
 
 VCL_DEFINE_SPECIALIZATION_MACRO_SIGNED_UNSIGNED (long)
 
 VCL_DEFINE_SPECIALIZATION_MACRO_SIGNED_UNSIGNED (long long)
 
 VCL_DEFINE_SPECIALIZATION_MACRO (char)
 

Detailed Description

To allow templated algorithms to determine appropriate actions of conjugation, complexification etc.

Author
fsm, Oxford RRG, 26 Mar 1999
  Modifications
   LSB (Manchester) 26/3/01 Documentation tidied

Definition in file vnl_complex_traits.h.

Macro Definition Documentation

◆ VCL_DEFINE_SPECIALIZATION_MACRO

#define VCL_DEFINE_SPECIALIZATION_MACRO (   T)
Value:
template <> struct VNL_EXPORT vnl_complex_traits<T > \
{ \
enum { isreal = true }; \
static T conjugate(T x) { return x; } \
static std::complex<T> complexify(T x) { return std::complex<T >(x, (T)0); } \
}

Definition at line 23 of file vnl_complex_traits.h.

◆ VCL_DEFINE_SPECIALIZATION_MACRO_SIGNED_UNSIGNED

#define VCL_DEFINE_SPECIALIZATION_MACRO_SIGNED_UNSIGNED (   T)
Value:
VCL_DEFINE_SPECIALIZATION_MACRO(unsigned T)
#define VCL_DEFINE_SPECIALIZATION_MACRO(T)

Definition at line 30 of file vnl_complex_traits.h.

Function Documentation

◆ VCL_DEFINE_SPECIALIZATION_MACRO()

VCL_DEFINE_SPECIALIZATION_MACRO ( char  )

◆ VCL_DEFINE_SPECIALIZATION_MACRO_SIGNED_UNSIGNED() [1/5]

VCL_DEFINE_SPECIALIZATION_MACRO_SIGNED_UNSIGNED ( char  )

◆ VCL_DEFINE_SPECIALIZATION_MACRO_SIGNED_UNSIGNED() [2/5]

VCL_DEFINE_SPECIALIZATION_MACRO_SIGNED_UNSIGNED ( short  )

◆ VCL_DEFINE_SPECIALIZATION_MACRO_SIGNED_UNSIGNED() [3/5]

VCL_DEFINE_SPECIALIZATION_MACRO_SIGNED_UNSIGNED ( int  )

◆ VCL_DEFINE_SPECIALIZATION_MACRO_SIGNED_UNSIGNED() [4/5]

VCL_DEFINE_SPECIALIZATION_MACRO_SIGNED_UNSIGNED ( long  )

◆ VCL_DEFINE_SPECIALIZATION_MACRO_SIGNED_UNSIGNED() [5/5]

VCL_DEFINE_SPECIALIZATION_MACRO_SIGNED_UNSIGNED ( long long  )