| // SPDX-FileCopyrightText: The Eigen Authors | |
| // SPDX-License-Identifier: MPL-2.0 | |
| // Consumer program shared by the build-system integration tests. It exists to | |
| // prove that the Eigen a scenario assembled is usable, so it exercises a | |
| // header, a template instantiation, and a computed result rather than only | |
| // including <Eigen/Dense>. The marker on the last line is what the driver | |
| // matches; a run that ends early fails the scenario. | |
| #include <Eigen/Dense> | |
| #include <cstdio> | |
| int main() { | |
| Eigen::Matrix3d m = Eigen::Matrix3d::Identity(); | |
| m(0, 1) = 2.0; | |
| m(2, 0) = -1.0; | |
| // Unit triangular up to the (2,0) entry, so the determinant is exactly one | |
| // in binary floating point and needs no tolerance. | |
| if (m.determinant() != 1.0) { | |
| std::printf("determinant was %f, expected 1\n", m.determinant()); | |
| return 1; | |
| } | |
| Eigen::Vector3d v = m * Eigen::Vector3d(1.0, 1.0, 1.0); | |
| if (v(0) != 3.0) { | |
| std::printf("product gave %f, expected 3\n", v(0)); | |
| return 1; | |
| } | |
| std::printf("eigen-ok\n"); | |
| return 0; | |
| } |