aboutsummaryrefslogtreecommitdiffhomepage
path: root/unsupported/test/mpreal_support.cpp
diff options
context:
space:
mode:
authorGravatar Gael Guennebaud <g.gael@free.fr>2012-06-21 10:02:32 +0200
committerGravatar Gael Guennebaud <g.gael@free.fr>2012-06-21 10:02:32 +0200
commit5b5f3ecafa25aee1af27ea3503ad9e0e1ee49d04 (patch)
tree055a0f8199fb5a526b46d8bb4be2a4c1c5a1d7b9 /unsupported/test/mpreal_support.cpp
parent7380592bc23aa9d331b99bac22bbb5fb4c854639 (diff)
MPreal: extended unit test, remove useless internal overloads, add support for internal::cast (needed for printing)
Diffstat (limited to 'unsupported/test/mpreal_support.cpp')
-rw-r--r--unsupported/test/mpreal_support.cpp17
1 files changed, 17 insertions, 0 deletions
diff --git a/unsupported/test/mpreal_support.cpp b/unsupported/test/mpreal_support.cpp
index 53d388821..551af9db8 100644
--- a/unsupported/test/mpreal_support.cpp
+++ b/unsupported/test/mpreal_support.cpp
@@ -2,6 +2,7 @@
#include <Eigen/MPRealSupport>
#include <Eigen/LU>
#include <Eigen/Eigenvalues>
+#include <sstream>
using namespace mpfr;
using namespace std;
@@ -24,6 +25,15 @@ void test_mpreal_support()
MatrixXmp B = MatrixXmp::Random(s,s);
MatrixXmp S = A.adjoint() * A;
MatrixXmp X;
+
+ // Basic stuffs
+ VERIFY_IS_APPROX(A.real(), A);
+ VERIFY(Eigen::internal::isApprox(A.array().abs2().sum(), A.squaredNorm()));
+ VERIFY_IS_APPROX(A.array().exp(), exp(A.array()));
+ VERIFY_IS_APPROX(A.array().abs2().sqrt(), A.array().abs());
+ VERIFY_IS_APPROX(A.array().sin(), sin(A.array()));
+ VERIFY_IS_APPROX(A.array().cos(), cos(A.array()));
+
// Cholesky
X = S.selfadjointView<Lower>().llt().solve(B);
@@ -39,6 +49,13 @@ void test_mpreal_support()
VERIFY_IS_APPROX((S.selfadjointView<Lower>() * eig.eigenvectors()),
eig.eigenvectors() * eig.eigenvalues().asDiagonal());
}
+
+ {
+ MatrixXmp A(8,3); A.setRandom();
+ // test output (interesting things happen in this code)
+ std::stringstream stream;
+ stream << A;
+ }
}
extern "C" {