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) 2010 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 Kamathvoid test_eigen2_bug_132() { 13c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath int size = 100; 14c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath MatrixXd A(size, size); 15c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath VectorXd b(size), c(size); 16c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath { 17c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath VectorXd y = A.transpose() * (b-c); // bug 132: infinite recursion in coeffRef 18c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath VectorXd z = (b-c).transpose() * A; // bug 132: infinite recursion in coeffRef 19c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath } 20c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 21c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath // the following ones weren't failing, but let's include them for completeness: 22c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath { 23c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath VectorXd y = A * (b-c); 24c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath VectorXd z = (b-c).transpose() * A.transpose(); 25c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath } 26c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath} 27