00001
00002 #ifndef vnl_fwd_h_
00003 #define vnl_fwd_h_
00004
00005
00006
00007
00008 #include <vcl_compiler.h>
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
00022
00023 # include <vnl/vnl_vector_fixed.h>
00024 # include <vnl/vnl_matrix_fixed.h>
00025
00026
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_