Add support for general matrix functions.

This does the job but it is only a first version. Further plans:
improved docs, more tests, improve code by refactoring, add convenience
functions for sine, cosine, sinh, cosh, and (eventually) add the matrix
logarithm.
This commit is contained in:
Jitse Niesen
2009-12-21 18:53:00 +00:00
parent 9f1fa6ea5e
commit f54a2a0484
5 changed files with 549 additions and 9 deletions

View File

@@ -0,0 +1,23 @@
#include <unsupported/Eigen/MatrixFunctions>
using namespace Eigen;
std::complex<double> expfn(std::complex<double> x, int)
{
return std::exp(x);
}
int main()
{
const double pi = std::acos(-1.0);
MatrixXd A(3,3);
A << 0, -pi/4, 0,
pi/4, 0, 0,
0, 0, 0;
std::cout << "The matrix A is:\n" << A << "\n\n";
MatrixXd B;
ei_matrix_function(A, expfn, &B);
std::cout << "The matrix exponential of A is:\n" << B << "\n\n";
}