00001 #ifndef vnl_complex_ops_h_ 00002 #define vnl_complex_ops_h_ 00003 // This is vxl/vnl/vnl_complex_ops.h 00004 00005 //: \file 00006 // \brief Classes for complex numbers 00007 // \author fsm@robots.ox.ac.uk 00008 00009 // Modifications 00010 // LSB (Manchester) 26/3/01 00011 00012 #include <vcl_complex.h> 00013 #include <vnl/vnl_vector.h> 00014 #include <vnl/vnl_matrix.h> 00015 00016 // 00017 template <class T> void vnl_complexify(T const *, T const *, vcl_complex<T> *, unsigned); 00018 template <class T> void vnl_complexify(T const *, vcl_complex<T> *, unsigned); 00019 00020 // 00021 template <class T> vnl_vector<vcl_complex<T> > vnl_complexify(vnl_vector<T> const &); 00022 template <class T> vnl_matrix<vcl_complex<T> > vnl_complexify(vnl_matrix<T> const &); 00023 00024 // 00025 template <class T> vnl_vector<T> abs (vnl_vector<vcl_complex<T> > const &); 00026 template <class T> vnl_vector<T> angle(vnl_vector<vcl_complex<T> > const &); 00027 template <class T> vnl_vector<T> real (vnl_vector<vcl_complex<T> > const &); 00028 template <class T> vnl_vector<T> imag (vnl_vector<vcl_complex<T> > const &); 00029 00030 // 00031 template <class T> vnl_matrix<T> abs (vnl_matrix<vcl_complex<T> > const &); 00032 template <class T> vnl_matrix<T> angle(vnl_matrix<vcl_complex<T> > const &); 00033 template <class T> vnl_matrix<T> real (vnl_matrix<vcl_complex<T> > const &); 00034 template <class T> vnl_matrix<T> imag (vnl_matrix<vcl_complex<T> > const &); 00035 00036 #endif // vnl_complex_ops_h_