core/vnl/vnl_fwd.h
Go to the documentation of this file.
00001 // This is core/vnl/vnl_fwd.h
00002 #ifndef vnl_fwd_h_
00003 #define vnl_fwd_h_
00004 
00005 //:
00006 // \file
00007 // \author fsm
00008 #include <vcl_compiler.h> // required to check for VCL_VC_6
00009 
00010 template <class T> struct vnl_complex_traits;
00011 template <class T> class vnl_numeric_traits;
00012 template <class T> class vnl_c_vector;
00013 
00014 template <class T> class vnl_vector;
00015 template <class T> class vnl_vector_ref;
00016 
00017 template <class T> class vnl_matrix;
00018 template <class T> class vnl_matrix_ref;
00019 
00020 #ifdef VCL_VC_6
00021 // VC 6.0 can't forward declare these without barfing.
00022 // Thereby missing the whole point....
00023 # include <vnl/vnl_vector_fixed.h>
00024 # include <vnl/vnl_matrix_fixed.h>
00025 // Could not make #including vec_fixed_ref.h and matrix_fixed_ref.h work under VC6 - compiler error
00026 // Just have to leave them out of vnl_fwd.h
00027 #else
00028   template <class T, unsigned int n> class vnl_vector_fixed;
00029   template <class T, unsigned int num_rows, unsigned int num_cols> class vnl_matrix_fixed;
00030   template <class T, unsigned int n> class vnl_vector_fixed_ref;
00031   template <class T, unsigned int num_rows, unsigned int num_cols> class vnl_matrix_fixed_ref;
00032   template <class T, unsigned int n> class vnl_vector_fixed_ref_const;
00033   template <class T, unsigned int num_rows, unsigned int num_cols> class vnl_matrix_fixed_ref_const;
00034 #endif
00035 
00036 template <class T> class vnl_quaternion;
00037 template <class Return, class Argument> class vnl_unary_function;
00038 template <class T> class vnl_diag_matrix;
00039 template <class T> class vnl_fortran_copy;
00040 template <class T> class vnl_identity;
00041 
00042 class vnl_cost_function;
00043 class vnl_cross_product_matrix;
00044 class vnl_double_2;
00045 class vnl_double_3;
00046 class vnl_double_4;
00047 class vnl_double_2x3;
00048 class vnl_double_3x2;
00049 typedef vnl_matrix_fixed<double,1,1> vnl_double_1x1;
00050 typedef vnl_matrix_fixed<double,1,2> vnl_double_1x2;
00051 typedef vnl_matrix_fixed<double,2,1> vnl_double_2x1;
00052 typedef vnl_matrix_fixed<double,2,2> vnl_double_2x2;
00053 typedef vnl_matrix_fixed<double,1,3> vnl_double_1x3;
00054 typedef vnl_matrix_fixed<double,3,1> vnl_double_3x1;
00055 typedef vnl_matrix_fixed<double,3,3> vnl_double_3x3;
00056 typedef vnl_matrix_fixed<double,3,4> vnl_double_3x4;
00057 typedef vnl_matrix_fixed<double,4,3> vnl_double_4x3;
00058 typedef vnl_matrix_fixed<double,4,4> vnl_double_4x4;
00059 class vnl_float_2;
00060 class vnl_float_3;
00061 class vnl_float_4;
00062 typedef vnl_matrix_fixed<float,1,2> vnl_float_1x2;
00063 typedef vnl_matrix_fixed<float,2,1> vnl_float_2x1;
00064 typedef vnl_matrix_fixed<float,2,2> vnl_float_2x2;
00065 typedef vnl_matrix_fixed<float,1,3> vnl_float_1x3;
00066 typedef vnl_matrix_fixed<float,3,1> vnl_float_3x1;
00067 typedef vnl_matrix_fixed<float,3,3> vnl_float_3x3;
00068 typedef vnl_matrix_fixed<float,3,4> vnl_float_3x4;
00069 typedef vnl_matrix_fixed<float,4,3> vnl_float_4x3;
00070 typedef vnl_matrix_fixed<float,4,4> vnl_float_4x4;
00071 class vnl_int_2;
00072 class vnl_int_3;
00073 class vnl_int_4;
00074 typedef vnl_matrix_fixed<int,2,2> vnl_int_2x2;
00075 struct vnl_identity_3x3;
00076 class vnl_least_squares_cost_function;
00077 class vnl_least_squares_function;
00078 class vnl_matlab_readhdr;
00079 class vnl_nonlinear_minimizer;
00080 
00081 #endif // vnl_fwd_h_