00001 #ifndef vnl_matrix_exp_h_ 00002 #define vnl_matrix_exp_h_ 00003 // This is vxl/vnl/vnl_matrix_exp.h 00004 00005 //: \file 00006 // \brief Compute the exponential of a square matrix 00007 // \author fsm@robots.ox.ac.uk 00008 // Compute the exponential of a square matrix, by summing its 00009 // exponential series $exp(X) = \sum_{n \ge 0} X^n/n!$ till a 00010 // convergence requirement is met. 00011 // 00012 // Many improvements are possible. 00013 00014 // Modifications LSB (Manchester) 23/1/01 00015 00016 00017 00018 #include <vnl/vnl_matrix.h> 00019 00020 //: Compute the exponential of a sqaure matrix - fiddly form 00021 template <class T> 00022 bool vnl_matrix_exp(vnl_matrix<T> const &X, vnl_matrix<T> &expX, double max_err); 00023 00024 00025 //: Compute the exponential of a sqaure matrix - easy form. 00026 template <class T> 00027 vnl_matrix<T> vnl_matrix_exp(vnl_matrix<T> const &X); 00028 00029 #endif // vnl_matrix_exp_h_