00001 // This is core/vnl/vnl_matrix_exp.h 00002 #ifndef vnl_matrix_exp_h_ 00003 #define vnl_matrix_exp_h_ 00004 //: 00005 // \file 00006 // \brief Compute the exponential of a square matrix 00007 // 00008 // Compute the exponential of a square matrix, by summing its 00009 // exponential series $\exp(X) = \displaystyle\sum_{n \ge 0} X^n/n!$ 00010 // till a convergence requirement is met. 00011 // 00012 // Many improvements are possible. 00013 // 00014 // \author fsm 00015 // 00016 // \verbatim 00017 // Modifications: 00018 // 14-Jan-2007 Peter Vanroose - added vnl_matrix_fixed interface 00019 // \endverbatim 00020 00021 //: Compute the exponential of a square matrix - fiddly form 00022 // \relatesalso vnl_matrix 00023 // \relatesalso vnl_matrix_fixed 00024 template <class SquareMatrix> 00025 bool vnl_matrix_exp(SquareMatrix const &X, SquareMatrix &expX, double max_err); 00026 00027 //: Compute the exponential of a square matrix - easy form. 00028 // \relatesalso vnl_matrix 00029 // \relatesalso vnl_matrix_fixed 00030 template <class SquareMatrix> 00031 SquareMatrix vnl_matrix_exp(SquareMatrix const &X); 00032 00033 00034 #endif // vnl_matrix_exp_h_