1c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath// This file is part of Eigen, a lightweight C++ template library 2c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath// for linear algebra. Eigen itself is part of the KDE project. 3c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath// 4c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath// Copyright (C) 2006-2008 Benoit Jacob <jacob.benoit.1@gmail.com> 5c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath// 6c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath// This Source Code Form is subject to the terms of the Mozilla 7c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath// Public License v. 2.0. If a copy of the MPL was not distributed 8c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath// with this file, You can obtain one at http://mozilla.org/MPL/2.0/. 9c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 10c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath#include "main.h" 11c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 12c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathtemplate<typename Scalar> void smallVectors() 13c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath{ 14c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath typedef Matrix<Scalar, 1, 2> V2; 15c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath typedef Matrix<Scalar, 3, 1> V3; 16c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath typedef Matrix<Scalar, 1, 4> V4; 17c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath Scalar x1 = ei_random<Scalar>(), 18c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath x2 = ei_random<Scalar>(), 19c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath x3 = ei_random<Scalar>(), 20c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath x4 = ei_random<Scalar>(); 21c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath V2 v2(x1, x2); 22c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath V3 v3(x1, x2, x3); 23c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath V4 v4(x1, x2, x3, x4); 24c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath VERIFY_IS_APPROX(x1, v2.x()); 25c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath VERIFY_IS_APPROX(x1, v3.x()); 26c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath VERIFY_IS_APPROX(x1, v4.x()); 27c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath VERIFY_IS_APPROX(x2, v2.y()); 28c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath VERIFY_IS_APPROX(x2, v3.y()); 29c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath VERIFY_IS_APPROX(x2, v4.y()); 30c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath VERIFY_IS_APPROX(x3, v3.z()); 31c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath VERIFY_IS_APPROX(x3, v4.z()); 32c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath VERIFY_IS_APPROX(x4, v4.w()); 33c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath} 34c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 35c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathvoid test_eigen2_smallvectors() 36c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath{ 37c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath for(int i = 0; i < g_repeat; i++) { 38c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath CALL_SUBTEST( smallVectors<int>() ); 39c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath CALL_SUBTEST( smallVectors<float>() ); 40c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath CALL_SUBTEST( smallVectors<double>() ); 41c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath } 42c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath} 43